1jQuery(document).ready( function($) { 2 var timeout; 3 var delay = 600; 4 5 function getYouTubeIdFromThumbnail(url) { 6 var match = String(url || '').match(/\/vi(?:_webp)?\/([A-Za-z0-9_-]{11})\//); 7 return match ? match[1] : ''; 8 } 9 10 function getStableYouTubeThumbnail(videoId) { 11 return 'https://img.youtube.com/vi/' + videoId + '/hqdefault.jpg'; 12 } 13 14 function repairYouTubeShowcaseThumbnails() { 15 $('.youtube-showcase-thumb img').each(function() { 16 var $img = $(this); 17 var videoId = $img.data('youtube-id') || getYouTubeIdFromThumbnail($img.attr('src')); 18 19 if (!videoId) return; 20 21 var stableThumbnail = getStableYouTubeThumbnail(videoId); 22 23 $img.off('error.youtubeThumbnailFallback').on('error.youtubeThumbnailFallback', function() { 24 if (this.src !== stableThumbnail) { 25 this.src = stableThumbnail; 26 } 27 }); 28 29 if (/\/\/i\d+\.ytimg\.com\/vi(?:_webp)?\//.test($img.attr('src') || '')) { 30 $img.attr('src', stableThumbnail); 31 } 32 }); 33 } 34 35 function initYearTabSelect() { 36 var $select = $('#tab-year'); 37 38 if (!$select.length) return; 39 40 if (!$select.parent('.tab-year-select-wrap').length) { 41 $select.wrap('<span class="tab-year-select-wrap"></span>'); 42 } 43 44 function getYearTab(value) { 45 var selectedYear = String(value || '').trim(); 46 var $tabs = $('.elementor-tabs-wrapper .elementor-tab-title'); 47 var $match = $(); 48 49 $tabs.each(function() { 50 if ($.trim($(this).text()) === selectedYear) { 51 $match = $(this); 52 return false; 53 } 54 }); 55 56 return $match; 57 } 58 59 function setSelectYear(year) { 60 var selectedYear = String(year || '').trim(); 61 62 if (!selectedYear) return; 63 64 $select.find('option').each(function() { 65 var $option = $(this); 66 67 if ($.trim($option.text()) === selectedYear || String($option.val()).trim() === selectedYear) { 68 $select.val($option.val()); 69 return false; 70 } 71 }); 72 } 73 74 function syncSelectWithActiveTab() { 75 var activeYear = $.trim($('.elementor-tabs-wrapper .elementor-tab-title.elementor-active').first().text()); 76 77 if (activeYear) { 78 setSelectYear(activeYear); 79 } 80 } 81 82 $('.elementor-tabs-wrapper').off('click.yearTabs').on('click.yearTabs', '.elementor-tab-title', function() { 83 setSelectYear($(this).text()); 84 }); 85 86 $select.on('change.yearTabs', function() { 87 var $tab = getYearTab($(this).val()); 88 89 if ($tab.length) { 90 $tab.trigger('click'); 91 } 92 }); 93 94 syncSelectWithActiveTab(); 95 } 96 97 repairYouTubeShowcaseThumbnails(); 98 initYearTabSelect(); 99 100 jQuery(".ais-SearchBox-input").keyup(function() { 101 var s = $('.ais-SearchBox-input').val(); 102 clearTimeout(timeout); 103 if(s.length == 1){ 104 delaySearchFunction(); 105 } 106 timeout = setTimeout(function() { 107 delaySearchFunction(); 108 }, delay); 109 110 }); 111 112 113 /*From New home only*/ 114 inView.threshold(0.7); 115 116 inView('.greyfilter') 117 .on('enter', el => { 118 el.classList.add("not-greyfilter"); 119 }) 120 .on('exit', el => { 121 el.classList.remove("not-greyfilter"); 122 }); 123 124 125 jQuery(".open-pop a").click(function( event ){ 126 event.preventDefault(); 127 jQuery('.hideto').show(); 128 jQuery('.thank').remove(); 129 jQuery(".pop-overlay").addClass("show-pop-overlay"); 130 }); 131 132 jQuery('.greyfilter').hover(function() { 133 jQuery(this).addClass('not-greyfilter'); 134 }); 135 136 /*Product page*/ 137 jQuery("#firstcarousal-1").hover( 138 function() { 139 jQuery('.image-point-1').css('opacity', '1'); 140 }, 141 function() { 142 jQuery('.image-point-1').css('opacity', '0'); 143 } 144 ); 145 jQuery("#firstcarousal-2").hover( 146 function() { 147 jQuery('.image-point-2').css('opacity', '1'); 148 }, 149 function() { 150 jQuery('.image-point-2').css('opacity', '0'); 151 } 152 ); 153 jQuery("#firstcarousal-3").hover( 154 function() { 155 jQuery('.image-point-3').css('opacity', '1'); 156 }, 157 function() { 158 jQuery('.image-point-3').css('opacity', '0'); 159 } 160 ); 161 162 jQuery(".doclose").click(function(event){ 163 event.preventDefault(); 164 jQuery('.overallpage').hide('slow'); 165 }); 166 jQuery(".doopen").click(function(event){ 167 event.preventDefault(); 168 jQuery('.overallpage').show('slow'); 169 }); 170 171 172 /* Partner Page */ 173 inView('#manufacturing-partners').on('enter', function(){ jQuery('.is-active').removeClass('is-active'); jQuery('#ml1').addClass('is-active') }); 174 175 176 inView('#technology-partners').on('enter', function(){ jQuery('.is-active').removeClass('is-active'); jQuery('#ml2').addClass('is-active') }); 177 178 179 inView('#imaging-partners').on('enter', function(){ jQuery('.is-active').removeClass('is-active'); jQuery('#ml3').addClass('is-active') }); 180 181 182 183 184 /*https://instrumental.com/cm/*/ 185 if( $('#demo--hero-top').length ){ 186 var width = (window.innerWidth > 0) ? window.innerWidth : document.documentElement.clientWidth; 187 if(width > 1024){ 188 var fixmeTop = $('#demo--hero-top').offset().top -380; 189 $(window).scroll(function() { 190 var currentScroll = $(window).scrollTop(); 191 if (currentScroll >= fixmeTop) { 192 $('#demo--hero-top').css({ 193 position: 'fixed', 194 top: '0' 195 }); 196 197 $('#demo--hero-top .elementor-widget-container').css({ 198 marginTop: '86px', 199 }); 200 201 } else { 202 203 $('#demo--hero-top').css({ 204 position: 'static' 205 }); 206 207 $('#demo--hero-top .elementor-widget-container').css({ 208 marginTop: '-380px', 209 }); 210 211 } 212 }); 213 214 inView('#footer') 215 .on('enter', el => { 216 jQuery('#demo--hero-top').css({opacity:0}
216) 217 }) 218 .on('exit', el => { 219 jQuery('#demo--hero-top').css({opacity:1}) 220 }); 221 222 inView('#quetionbox') 223 .on('enter', el => { 224 jQuery('#demo--hero-top').hide() 225 }) 226 .on('exit', el => { 227 jQuery('#demo--hero-top').show() 228 }); 229 } else { 230 231 } 232 } 233 234 235 236}); 237 238 239function delaySearchFunction(){ 240 var s = $('.ais-SearchBox-input').val(); 241 if (s == "") { 242 jQuery("#build-better-handbook-hits").html(" "); 243 } 244 else { 245 246 var nonce = jQuery('.dd-search-nonce-h').val(); 247 jQuery.ajax({ 248 type : "post", 249 url :DEEP_DOCS.ajaxurl, 250 data : {action: "deep_docs_search_docs", source : "deep_docs", nonce: nonce, "s": s}, 251 success: function(response) { 252 if(response.data.success == true) { 253 console.log(response); 254 255 let docs = JSON.parse( response.data.docs ); 256 jQuery("#build-better-handbook-hits").html(' '); 257 jQuery("#build-better-handbook-hits").html(` 258 <div> 259 <div class="ais-Hits"> 260 <ol class="ais-Hits-list"> 261 262 </ol> 263 </div> 264 </div> 265 `); 266 267 if(docs.length <= 0){ 268 jQuery("#build-better-handbook-hits .ais-Hits-list").html('<div class="ais-Hits ais-Hits--empty">No results</div>'); 269 } 270 docs.map( function ( doc ) { 271 jQuery("#build-better-handbook-hits .ais-Hits-list").append(` 272 <li class="ais-Hits-item"> 273 <div> 274 <a href="`+doc.doc_link+`"> 275 <p class="search-result">`+doc.doc_title+`</p> 276 <p class="search-extract"></p> 277 </a> 278 </div> 279 </li> 280 `); 281 }); 282 } 283 else { 284 285 } 286 } 287 }); 288 } 289 290} 291// New Home Page 292jQuery(document).ready(function(){ 293 294 setTimeout(function(){ 295 //first image 296 jQuery("#firstcarousal .swiper-slide[aria-label='1 / 2']").append('<div id="firstcarousal-1-1" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Review most anomalous regions</h2><div>Use the heat map the identify regions with the most variability in your entire build.</div></span></div></div>'); 297 jQuery("#firstcarousal .swiper-slide[aria-label='1 / 2']").append('<div id="firstcarousal-1-2" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Discover Novel Defects</h2><div>Uncover unknown anomalies in your design and give feedback on units which are interesting.</div></span></div></div>'); 298 299 //second image 300 jQuery("#firstcarousal .swiper-slide[aria-label='2 / 2']").append('<div id="firstcarousal-2-1" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Accelerate failure analysis</h2><div>Find and eliminate root causes with an AI-ranked list of correlations between failures, data, and images</div></span></div></div>'); 301 302 303 //first image 304 jQuery("#secondcarousal .swiper-slide[aria-label='1 / 2']").append('<div id="secondcarousal-1-1" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Oversee Operations</h2><div>Get real-time insight into your factoryâs performance with an out-of-the-box dashboard displaying KPIs over time and by each station. </div></span></div></div>'); 305 jQuery("#secondcarousal .swiper-slide[aria-label='1 / 2']").append('<div id="secondcarousal-1-2" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Identify yield hitters</h2><div>Quickly dive into the stations and tests, causing you to miss your yield goals.</div></span></div></div>'); 306 307 //second image 308 jQuery("#secondcarousal .swiper-slide[aria-label='2 / 2']").append('<div id="secondcarousal-2-1" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Prioritize actions</h2><div>Take actions based on out-of-the-box Pareto of top failing parametric tests and defects.</div></span></div></div>'); 309 jQuery("#secondcarousal .swiper-slide[aria-label='2 / 2']").append('<div id="secondcarousal-2-2" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Intercept known defects</h2><div>Set up live pass/fail tests on your assembly line to intercept known defects and monitor results on the app.</div></span></div></div>'); 310 311 },3000); 312 313 setTimeout(function(){ 314 if(!jQuery('#firstcarousal-1-1').length){ 315 //first image 316 jQuery("#firstcarousal .swiper-slide[aria-label='1 / 2']").append('<div id="firstcarousal-1-1" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Review most anomalous regions</h2><div>Use the heat map the identify regions with the most variability in your entire build.</div></span></div></div>'); 317 jQuery("#firstcarousal .swiper-slide[aria-label='1 / 2']").append('<div id="firstcarousal-1-2" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Discover Novel Defects</h2><div>Uncover unknown anomalies in your design and give feedback on units which are interesting.</div></span></div></div>'); 318 319 //second image 320 jQuery("#firstcarousal .swiper-slide[aria-label='2 / 2']").append('<div id="firstcarousal-2-1" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Accelerate failure analysis</h2><div>Find and eliminate root causes with an AI-ranked list of correlations between failures, data, and images</div></span></div></div>'); 321 322 323 //first image 324 jQuery("#secondcarousal .swiper-slide[aria-label='1 / 2']").append('<div id="secondcarousal-1-1" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Oversee Operations</h2><div>Get real-time insight into your factoryâs performance with an out-of-the-box dashboard displaying KPIs over time and by each station. </div></span></div></div>'); 325 jQuery("#secondcarousal .swiper-slide[aria-label='1 / 2']").append('<div id="secondcarousal-1-2" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Identify yield hitters</h2><div>Quickly dive into the stations and tests, causing you to miss your yield goals.</div></span></div></div>'); 326 327 //second image 328 jQuery("#secondcarousal .swiper-slide[aria-label='2 / 2']").append('<div id="secondcarousal-2-1" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Prioritize actions</h2><div>Take actions based on out-of-the-box Pareto of top failing parametric tests and defects.</div></span></div></div>'); 329 jQuery("#secondcarousal .swiper-slide[aria-label='2 / 2']").append('<div id="secondcarousal-2-2" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Intercept known defects</h2><div>Set up live pass/fail tests on your assembly line to intercept known defects and monitor results on the app.</div></span></div></div>'); 330 } 331 },5000); 332 333 setTimeout(function(){ 334 if(!jQuery('#firstcarousal-1-1').length){ 335 //first image 336 jQuery("#firstcarousal .swiper-slide[aria-label='1 / 2']").append('<div id="firstcarousal-1-1" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Review most anomalous regions</h2><div>Use the heat map the identify regions with the most variability in your entire build.</div></span></div></div>'); 337 jQuery("#firstcarousal .swiper-slide[aria-label='1 / 2']").append('<div id="firstcarousal-1-2" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Discover Novel Defects</h2><div>Uncover unknown anomalies in your design and give feedback on units which are interesting.</div></span></div></div>'); 338 339 //second image 340 jQuery("#firstcarousal .swiper-slide[aria-label='2 / 2']").append('<div id="firstcarousal-2-1" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Accelerate failure analysis</h2><div>Find and eliminate root causes with an AI-ranked list of correlations between failures, data, and images</div></span></div></div>'); 341 342 343 //first image 344 jQuery("#secondcarousal .swiper-slide[aria-label='1 / 2']").append('<div id="secondcarousal-1-1" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Oversee Operations</h2><div>Get real-time insight into your factoryâs performance with an out-of-the-box dashboard displaying KPIs over time and by each station. </div></span></div></div>'); 345 jQuery("#secondcarousal .swiper-slide[aria-label='1 / 2']").append('<div id="secondcarousal-1-2" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Identify yield hitters</h2><div>Quickly dive into the stations and tests, causing you to miss your yield goals.</div></span></div></div>'); 346 347 //second image 348 jQuery("#secondcarousal .swiper-slide[aria-label='2 / 2']").append('<div id="secondcarousal-2-1" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Prioritize actions</h2><div>Take actions based on out-of-the-box Pareto of top failing parametric tests and defects.</div></span></div></div>'); 349 jQuery("#secondcarousal .swiper-slide[aria-label='2 / 2']").append('<div id="secondcarousal-2-2" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Intercept known defects</h2><div>Set up live pass/fail tests on your assembly line to intercept known defects and monitor results on the app.</div></span></div></div>'); 350 } 351 },7000); 352 353 setTimeout(function(){ 354 if(!jQuery('#firstcarousal-1-1').length){ 355 //first image 356 jQuery("#firstcarousal .swiper-slide[aria-label='1 / 2']").append('<div id="firstcarousal-1-1" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Review most anomalous regions</h2><div>Use the heat map the identify regions with the most variability in your entire build.</div></span></div></div>'); 357 jQuery("#firstcarousal .swiper-slide[aria-label='1 / 2']").append('<div id="firstcarousal-1-2" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Discover Novel Defects</h2><div>Uncover unknown anomalies in your design and give feedback on units which are interesting.</div></span></div></div>'); 358 359 //second image 360 jQuery("#firstcarousal .swiper-slide[aria-label='2 / 2']").append('<div id="firstcarousal-2-1" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Accelerate failure analysis</h2><div>Find and eliminate root causes with an AI-ranked list of correlations between failures, data, and images</div></span></div></div>'); 361 362 363 //first image 364 jQuery("#secondcarousal .swiper-slide[aria-label='1 / 2']").append('<div id="secondcarousal-1-1" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Oversee Operations</h2><div>Get real-time insight into your factoryâs performance with an out-of-the-box dashboard displaying KPIs over time and by each station. </div></span></div></div>'); 365 jQuery("#secondcarousal .swiper-slide[aria-label='1 / 2']").append('<div id="secondcarousal-1-2" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Identify yield hitters</h2><div>Quickly dive into the stations and tests, causing you to miss your yield goals.</div></span></div></div>'); 366 367 //second image 368 jQuery("#secondcarousal .swiper-slide[aria-label='2 / 2']").append('<div id="secondcarousal-2-1" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Prioritize actions</h2><div>Take actions based on out-of-the-box Pareto of top failing parametric tests and defects.</div></span></div></div>'); 369 jQuery("#secondcarousal .swiper-slide[aria-label='2 / 2']").append('<div id="secondcarousal-2-2" class="ztooltip zblobs-container"><div class="zblob"><span class="ztooltiptext"><h2>Intercept known defects</h2><div>Set up live pass/fail tests on your assembly line to intercept known defects and monitor results on the app.</div></span></div></div>'); 370 } 371 },10000); 372}); 373 374 375 376jQuery(document).ready(function() { 377 jQuery('.wpr-grid-image-wrap').each(function() { 378 var imgTag = jQuery(this).find('img'); 379 380 var newSrc = jQuery(this).attr('data-src'); 381 382 imgTag.attr('src', newSrc); 383 imgTag.removeClass('wpr-hidden-image'); 384 }); 385}); 386 387 388 389/* 390function submitFormToHubSpot(formId, hubId, formGuid, data) { 391 392 393 // Collect data in a format HubSpot can understand 394 data = {}; 395 396 397 // Send the data using AJAX 398 fetch(`https://forms.hubspot.com/uploads/form/v2/${hubId}/${formGuid}`, { 399 method: 'POST', 400 headers: { 401 'Content-Type': 'application/x-www-form-urlencoded', 402 }, 403 body: new URLSearchParams(data).toString(), 404 }).then(response => { 405 if (response.ok) { 406 console.log('Form data successfully sent to HubSpot.'); 407 } else { 408 console.error('Error sending data to HubSpot:', response); 409 } 410 }) 411 .catch(error => console.error('Network error:', error)); 412 413} 414*/ 415 416async function submitFormToHubSpot(formId, hubId, formGuid, data) { 417 418 419 try { 420 // Fetch user's IP address 421 const ipResponse = await fetch("https://api64.ipify.org?format=json"); 422 const ipData = await ipResponse.json(); 423 const userIP = ipData.ip || ""; 424 425 // Retrieve the HubSpot User Token (hutk) from cookies 426 const hutk = getCookie("hubspotutk") || ""; 427 428 // Add HubSpot-specific context 429 const hsContext = { 430 hutk: hutk, // HubSpot User Tracking Cookie 431 ipAddress: userIP, // User's IP address for analytics 432 pageUrl: window.location.href, // Current page URL 433 }; 434 435 // Convert hsContext to a JSON string 436 data.hs_context = JSON.stringify(hsContext); 437 438 // Convert data to URL-encoded format 439 const encodedData = new URLSearchParams(data).toString(); 440 441 // Send the data using Fetch API 442 const response = await fetch(`https://forms.hubspot.com/uploads/form/v2/${hubId}/${formGuid}`, { 443 method: "POST", 444 headers: { 445 "Content-Type": "application/x-www-form-urlencoded", 446 }, 447 body: encodedData, 448 }); 449 450 if (response.ok) { 451 console.log("â Form successfully submitted to HubSpot."); 452 } else { 453 console.error("â Error submitting form:", response); 454 } 455 } catch (error) { 456 console.error("â Error sending data to HubSpot:", error); 457 } 458} 459 460// Helper function to retrieve a cookie value by name 461function getCookie(name) { 462 const match = document.cookie.match(new RegExp(`(^| )${name}=([^;]+)`)); 463 return match ? match[2] : ""; 464} 465 466 467 468// Select the email input field 469const emailInput = document.getElementById("866002_199501pi_866002_199501"); 470 471// Initialize a variable to store the email 472let emailValue = ""; 473 474// Listen for input events on the email field 475emailInput.addEventListener("input", function (event) { 476 emailValue = event.target.value; 477 console.log("Current Email Value:", emailValue); // Debugging output 478}); 479 480document.body.addEventListener('click', (event) => { 481 // Check if the clicked element is a button 482 if (event.target.id === 'newsletter-form-submit') { 483 let footerData = {}; 484 485 if(emailValue != ""){ 486 footerData['email'] = emailValue; 487 submitFormToHubSpot('#newsletter-form', '46433248', '80c5a458-7f35-4f02-90cf-4bc5f88091d7', footerData); 488 emailValue = ""; 489 } 490 } 491 492 if (event.target.parentElement.id === 'newsletterHBForm-submit' || event.target.id === 'newsletterHBForm-submit') { 493 let footerData = {}; 494 let container_fullName = document.getElementById('jfirstName').value; 495 let container_email = document.getElementById('jemail').value;
496 let container_company = document.getElementById('jcompany').value; 497 if( container_fullName != "" && container_email != "" && container_company != ""){ 498 let name = container_fullName.split(' '); 499 footerData['firstname'] = name[0]; 500 footerData['lastname'] = name[1]; 501 footerData['email'] = container_email; 502 footerData['company'] = container_company; 503 submitFormToHubSpot('#jarform', '46433248', '0d9ebe24-8198-475a-86b7-0be893635a10', footerData); 504 } 505 } 506}); 507 508 509 510 511 512 document.addEventListener('DOMContentLoaded', function() { 513 // 1. Select all h1, h2, h3 514 const headings = document.querySelectorAll('.toc-content h1, .toc-content h2, .toc-content h3'); 515 if (!headings.length) return; 516 517 // 2. Create the root <ul> 518 const tocList = document.createElement('ul'); 519 520 headings.forEach(heading => { 521 // 3. Generate an ID if missing 522 if (!heading.id) { 523 const slug = heading.textContent 524 .trim() 525 .toLowerCase() 526 .replace(/\s+/g, '-') 527 .replace(/[^\w\-]+/g, ''); 528 heading.id = slug; 529 } 530 531 // 4. Create a link to the heading 532 const link = document.createElement('a'); 533 link.href = `#${heading.id}`; 534 link.textContent = heading.textContent; 535 536 // 5. Wrap in an <li> and add level class 537 const item = document.createElement('li'); 538 const level = parseInt(heading.tagName.charAt(1), 10); // 1, 2 or 3 539 item.classList.add(`level-${level}`); 540 item.appendChild(link); 541 542 // 6. Append to our TOC list 543 tocList.appendChild(item); 544 }); 545 546 // 7. Inject into the #toc container 547 const tocContainer = document.getElementById('toc'); 548 tocContainer.appendChild(tocList); 549 });
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.