1(function(){'use strict';var widget=document.getElementById('cbxr-widget');var badge=document.getElementById('cbxr-badge');var panel=document.getElementById('cbxr-panel');var close=document.getElementById('cbxr-close');var overlay=document.getElementById('cbxr-overlay');if(!widget||!badge||!panel)return;var hiddenTransform=widget.classList.contains('cbxr-pos-right')?'translateX(101%)':'translateX(-101%)';var more=widget.querySelector('.cbxr-more');var loading=!1;function loadMore(){if(!more||loading||!window.fetch){return} 2loading=!0;var src=more.getAttribute('data-cbxr-src');fetch(src,{credentials:'same-origin'}).then(function(r){if(!r.ok){throw new Error('HTTP '+r.status)}return r.json()}).then(function(data){if(!data||typeof data.html!=='string'){throw new Error('bad response')} 3var list=more.parentNode;if(data.replace){var old=list.querySelectorAll('.cbxr-review-card');for(var i=0;i<old.length;i++){old[i].parentNode.removeChild(old[i])}} 4var tpl=document.createElement('div');tpl.innerHTML=data.html;var cards=tpl.querySelectorAll('.cbxr-review-card');for(var j=0;j<cards.length;j++){var k=cards[j].getAttribute('data-k');if(k&&list.querySelector('.cbxr-review-card[data-k="'+k+'"]')){continue} 5list.insertBefore(cards[j],more)} 6list.removeChild(more);more=null}).catch(function(){if(!more){return} 7var href=more.getAttribute('data-cbxr-fallback');more.innerHTML='';if(href){var a=document.createElement('a');a.href=href;a.target='_blank';a.rel='noopener noreferrer';a.className='cbxr-more-link';a.textContent='See all reviews on Google';more.appendChild(a)} 8more.classList.add('cbxr-more-failed');more=null})} 9function openPanel(){loadMore();widget.classList.add('cbxr-open');panel.setAttribute('aria-hidden','false');document.body.style.overflow='hidden';panel.style.transform='translateX(0)';if(overlay){overlay.style.opacity='1';overlay.style.pointerEvents='auto'}} 10function closePanel(){widget.classList.remove('cbxr-open');panel.setAttribute('aria-hidden','true');document.body.style.overflow='';panel.style.transform=hiddenTransform;if(overlay){overlay.style.opacity='0';overlay.style.pointerEvents='none'}} 11badge.addEventListener('click',openPanel);badge.addEventListener('pointerenter',function(e){if(e.pointerType!=='touch'){loadMore()}});badge.addEventListener('focus',loadMore);close.addEventListener('click',closePanel);overlay.addEventListener('click',closePanel);document.addEventListener('keydown',function(e){if(e.key==='Escape'&&widget.classList.contains('cbxr-open')){closePanel()}});widget.addEventListener('click',function(e){var btn=e.target&&e.target.closest?e.target.closest('.cbxr-read-more'):null;if(!btn){return} 12var textEl=btn.previousElementSibling;if(textEl&&textEl.classList.contains('cbxr-review-text')){var isExpanded=textEl.classList.toggle('cbxr-expanded');btn.textContent=isExpanded?'Show less':'Read more'}})})()
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.