1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <title>à¹à¸à¸à¸à¹à¸²à¸à¹à¸à¸¡à¸à¸à¸à¹ 08</title> 5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 6<!-- This site is hosted on Netlify. Anyone can build and deploy a site 7 like this one for free: https://netlify.new/?utm_campaign=loops&utm_source=ai-legible&utm_medium=owned&utm_content=comment&utm_id=353073cc-3859-45ff-8eae-add5411a2500 8 Netlify hosting facts for this site: static/SSR served via Netlify Edge. --> 9 <meta name="viewport" id="metaViewport" content="user-scalable=no, initial-scale=1, width=device-width, viewport-fit=cover" data-tdv-general-scale="0.5"/> 10 <meta name="apple-mobile-web-app-capable" content="yes"/> 11 <meta name="apple-mobile-web-app-status-bar-style" content="default"> 12 <link rel="preload" href="locale/en.txt?v=1739247120304" as="fetch" crossorigin="anonymous"/> 13 <link rel="preload" href="script.js?v=1739247120304" as="script"/> 14 <link rel="preload" href="media/panorama_F9B45345_F2D2_A166_41E2_1F1AC0D14647_0/r/3/0_0.jpg?v=1739247120304" as="image"/> 15 <link rel="preload" href="media/panorama_F9B45345_F2D2_A166_41E2_1F1AC0D14647_0/l/3/0_0.jpg?v=1739247120304" as="image"/> 16 <link rel="preload" href="media/panorama_F9B45345_F2D2_A166_41E2_1F1AC0D14647_0/u/3/0_0.jpg?v=1739247120304" as="image"/> 17 <link rel="preload" href="media/panorama_F9B45345_F2D2_A166_41E2_1F1AC0D14647_0/d/3/0_0.jpg?v=1739247120304" as="image"/> 18 <link rel="preload" href="media/panorama_F9B45345_F2D2_A166_41E2_1F1AC0D14647_0/f/3/0_0.jpg?v=1739247120304" as="image"/> 19 <link rel="preload" href="media/panorama_F9B45345_F2D2_A166_41E2_1F1AC0D14647_0/b/3/0_0.jpg?v=1739247120304" as="image"/> 20 <meta name="description" content="Virtual Tour"/> 21 <meta name="theme-color" content="#FFFFFF"/> 22
22<script src="lib/tdvplayer.js?v=1739247120304"></script>
22 23
23<script src="script.js?v=1739247120304"></script>
23 24
24<script type="text/javascript"> 25 var tour; 26 var devicesUrl = {"general":"script_general.js?v=1739247120304"}; 27 28 (function() 29 { 30 var deviceType = ['general']; 31 if(TDV.PlayerAPI.mobile) 32 deviceType.unshift('mobile'); 33 if(TDV.PlayerAPI.device == TDV.PlayerAPI.DEVICE_IPAD) 34 deviceType.unshift('ipad'); 35 var url; 36 for(var i=0; i<deviceType.length; ++i) { 37 var d = deviceType[i]; 38 if(d in devicesUrl) { 39 url = devicesUrl[d]; 40 break; 41 } 42 } 43 if(typeof url == "object") { 44 var orient = TDV.PlayerAPI.getOrientation(); 45 if(orient in url) { 46 url = url[orient]; 47 } 48 } 49 var link = document.createElement('link'); 50 link.rel = 'preload'; 51 link.href = url; 52 link.as = 'script'; 53 var el = document.getElementsByTagName('script')[0]; 54 el.parentNode.insertBefore(link, el); 55 })(); 56 57 function loadTour() 58 { 59 if(tour) return; 60 61 if (/AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent)) { 62 var preloadContainer = document.getElementById('preloadContainer'); 63 if(preloadContainer) 64 document.body.style.backgroundColor = window.getComputedStyle(preloadContainer).backgroundColor; 65 } 66 67 var settings = new TDV.PlayerSettings(); 68 settings.set(TDV.PlayerSettings.CONTAINER, document.getElementById('viewer')); 69 settings.set(TDV.PlayerSettings.WEBVR_POLYFILL_URL, 'lib/WebVRPolyfill.js?v=1739247120304'); 70 settings.set(TDV.PlayerSettings.HLS_URL, 'lib/Hls.js?v=1739247120304'); 71 settings.set(TDV.PlayerSettings.QUERY_STRING_PARAMETERS, 'v=1739247120304'); 72 73 tour = new TDV.Tour(settings, devicesUrl); 74 tour.bind(TDV.Tour.EVENT_TOUR_INITIALIZED, onVirtualTourInit); 75 tour.bind(TDV.Tour.EVENT_TOUR_LOADED, onVirtualTourLoaded); 76 tour.bind(TDV.Tour.EVENT_TOUR_ENDED, onVirtualTourEnded); 77 tour.load(); 78 } 79 80 function pauseTour() 81 { 82 if(!tour) 83 return; 84 85 tour.pause(); 86 } 87 88 function resumeTour() 89 { 90 if(!tour) 91 return; 92 93 tour.resume(); 94 } 95 96 function onVirtualTourInit() 97 { 98 var updateTexts = function() { 99 document.title = this.trans("tour.name") 100 }; 101 102 tour.locManager.bind(TDV.Tour.LocaleManager.EVENT_LOCALE_CHANGED, updateTexts.bind(tour.locManager)); 103 104 if (tour.player.cookiesEnabled) 105 enableCookies(); 106 else 107 tour.player.bind('enableCookies', enableCookies); 108 } 109 110 function onVirtualTourLoaded() 111 { 112 disposePreloader(); 113 } 114 115 function onVirtualTourEnded() 116 { 117 118 } 119 120 function enableCookies() 121 { 122 123 } 124 125 function setMediaByIndex(index) { 126 if(!tour) 127 return; 128 129 tour.setMediaByIndex(index); 130 } 131 132 function setMediaByName(name) 133 { 134 if(!tour) 135 return; 136 137 tour.setMediaByName(name); 138 } 139 140 function showPreloader() 141 { 142 var preloadContainer = document.getElementById('preloadContainer'); 143 if(preloadContainer != undefined) 144 preloadContainer.style.opacity = 1; 145 } 146 147 function disposePreloader() 148 { 149 var preloadContainer = document.getElementById('preloadContainer'); 150 if(preloadContainer == undefined) 151 return; 152 153 var transitionEndName = transitionEndEventName(); 154 if(transitionEndName) 155 { 156 preloadContainer.addEventListener(transitionEndName, hide, false); 157 preloadContainer.style.opacity = 0; 158 setTimeout(hide, 500); //Force hide. Some cases the transitionend event isn't dispatched with an iFrame. 159 } 160 else 161 { 162 hide(); 163 } 164 165 function hide() 166 { 167 168 document.body.style.backgroundColor = window.getComputedStyle(preloadContainer).backgroundColor; 169 preloadContainer.style.visibility = 'hidden'; 170 preloadContainer.style.display = 'none'; 171 var videoList = preloadContainer.getElementsByTagName("video"); 172 for(var i=0; i<videoList.length; ++i) 173 { 174 var video = videoList[i]; 175 video.pause(); 176 while (video.children.length) 177 video.removeChild(video.children[0]); 178 } 179 } 180 181 function transitionEndEventName () { 182 var el = document.createElement('div'); 183 var transitions = { 184 'transition':'transitionend', 185 'OTransition':'otransitionend', 186 'MozTransition':'transitionend', 187 'WebkitTransition':'webkitTransitionEnd' 188 }; 189 190 var t; 191 for (t in transitions) { 192 if (el.style[t] !== undefined) { 193 return transitions[t]; 194 } 195 } 196 197 return undefined; 198 } 199 } 200 201 function onBodyClick(){ 202 document.body.removeEventListener("click", onBodyClick); 203 document.body.removeEventListener("touchend", onBodyClick); 204 205 } 206 207 function onLoad() {
208 if (/AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent)) 209 { 210 var onOrientationChange = function() 211 { 212 document.documentElement.style.height = 'initial'; 213 Array.from(document.querySelectorAll('.fill-viewport')).forEach(function(element) 214 { 215 element.classList.toggle('landscape-right', window.orientation == -90); 216 element.classList.toggle('landscape-left', window.orientation == 90); 217 }); 218 setTimeout(function() 219 { 220 document.documentElement.style.height = '100%'; 221 }, 500); 222 }; 223 window.addEventListener('orientationchange', onOrientationChange); 224 onOrientationChange(); 225 } 226 227 var params = getParams(location.search.substr(1)); 228 if(params.hasOwnProperty("skip-loading")) 229 { 230 loadTour(); 231 disposePreloader(); 232 return; 233 } 234 235 if (isOVRWeb()){ 236 showPreloader(); 237 loadTour(); 238 return; 239 } 240 241 showPreloader(); 242 loadTour(); 243 } 244 245 function playVideo(video) { 246 function isSafariDesktopV11orGreater() { 247 return /^((?!chrome|android|crios|ipad|iphone).)*safari/i.test(navigator.userAgent) && parseFloat(/Version\/([0-9]+\.[0-9]+)/i.exec(navigator.userAgent)[1]) >= 11; 248 } 249 250 function hasAudio (video) { 251 return video.mozHasAudio || 252 Boolean(video.webkitAudioDecodedByteCount) || 253 Boolean(video.audioTracks && video.audioTracks.length); 254 } 255 256 function detectUserAction() { 257 var onVideoClick = function(e) { 258 if(video.paused) { 259 video.play(); 260 } 261 video.muted = false; 262 if(hasAudio(video)) 263 { 264 e.stopPropagation(); 265 e.stopImmediatePropagation(); 266 e.preventDefault(); 267 } 268 269 video.removeEventListener('click', onVideoClick); 270 video.removeEventListener('touchend', onVideoClick); 271 }; 272 video.addEventListener("click", onVideoClick); 273 video.addEventListener("touchend", onVideoClick); 274 } 275 276 if (isSafariDesktopV11orGreater()) { 277 video.muted = true; 278 video.play(); 279 } else { 280 var canPlay = true; 281 var promise = video.play(); 282 if (promise) { 283 promise.catch(function() { 284 video.muted = true; 285 video.play(); 286 detectUserAction(); 287 }); 288 } else { 289 canPlay = false; 290 } 291 292 if (!canPlay || video.muted) { 293 detectUserAction(); 294 } 295 } 296 } 297 298 function isOVRWeb(){ 299 return window.location.hash.substring(1).split('&').indexOf('ovrweb') > -1; 300 } 301 302 function getParams(params) { 303 var queryDict = {}; params.split("&").forEach(function(item) {var k = item.split("=")[0], v = decodeURIComponent(item.split("=")[1]);queryDict[k.toLowerCase()] = v}); 304 return queryDict; 305 } 306 307 document.addEventListener('DOMContentLoaded', onLoad); 308 </script>
308 309 <style type="text/css"> 310 html, body { height:100%; width:100%; height:100vh; width:100vw; margin:0; padding:0; overflow:hidden; } 311 .fill-viewport { position:fixed; top:0; left:0; right:0; bottom:0; padding:0; margin:0; overflow: hidden; } 312 .fill-viewport.landscape-left { left: env(safe-area-inset-left); } 313 .fill-viewport.landscape-right { right: env(safe-area-inset-right); } 314 #viewer { z-index:1; } 315 #preloadContainer { z-index:2; opacity:0; background-color:rgba(255,255,255,1); transition: opacity 0.5s; -webkit-transition: opacity 0.5s; -moz-transition: opacity 0.5s; -o-transition: opacity 0.5s;} 316 </style> 317 <link rel="stylesheet" href="fonts.css?v=1739247120304"> 318</head> 319<body> 320 <div id="preloadContainer" class="fill-viewport"><div style="z-index: 4; position: absolute; left: 0%; top: 50%; width: 100.00%; height: 10.00%"><div style="text-align:left; color:#000; "><DIV STYLE="text-align:center;font-size:1.6666666666666663vmin;"><SPAN STYLE="display:inline-block; letter-spacing:0vmin; white-space:pre-wrap;color:#777777;font-size:1.67vmin;font-family:Arial, Helvetica, sans-serif;">Loading virtual tour. Please wait...</SPAN></DIV></div></div></div> 321 <div id="viewer" class="fill-viewport"></div> 322</body> 323</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.