1!function(){const stateMap=new WeakMap;let resizeTimer=null,isUpdating=!1,pendingUpdate=!1;function getPrimaryGroup(marquee){return marquee.querySelector('.match-footer-marquee-group:not([aria-hidden="true"])')||marquee.querySelector(".match-footer-marquee-group")}function getTrack(marquee){return marquee.querySelector(".match-footer-marquee-track")}function getState(marquee){let state=stateMap.get(marquee);return state||(state={rafId:0,lastTs:0,resumeTimer:0,dragging:!1,pointerId:null,startX:0,startOffset:0,moved:!1,bound:!1,offset:0,loopWidth:0,lastContentWidth:0,lastAvailableWidth:0,suppressClick:!1},stateMap.set(marquee,state)),state}function applyOffset(marquee,offset){const state=getState(marquee),track=getTrack(marquee);state.offset=function normalizeOffset(offset,loopWidth){return loopWidth<=0?0:((offset%=loopWidth)<0&&(offset+=loopWidth),offset)}(offset,state.loopWidth),track&&(track.style.transform="translate3d("+-state.offset+"px,0,0)")}function measureContentWidth(marquee,primary){const badges=primary.querySelector(".home-streamer-badges")||primary,items=badges.querySelectorAll("a, .stream-badge");if(items.length){const first=items[0].getBoundingClientRect(),last=items[items.length-1].getBoundingClientRect(),rowWidth=Math.abs(last.right-first.left);if(rowWidth>0)return rowWidth}return Math.max(badges.scrollWidth,badges.getBoundingClientRect().width,primary.scrollWidth)}function measureLoopWidth(marquee){const primary=getPrimaryGroup(marquee);return primary?Math.max(primary.getBoundingClientRect().width,measureContentWidth(0,primary)):0}function stopAutoScroll(marquee){const state=getState(marquee);state.rafId&&(cancelAnimationFrame(state.rafId),state.rafId=0),state.lastTs=0}function tick(marquee,ts){const state=getState(marquee);if(!marquee.classList.contains("is-scrolling"))return state.rafId=0,void(state.lastTs=0);if(marquee.classList.contains("is-user-controlling"))state.lastTs=ts;else{state.lastTs||(state.lastTs=ts);const dt=Math.min(64,ts-state.lastTs);if(state.lastTs=ts,state.loopWidth<=0&&(state.loopWidth=measureLoopWidth(marquee)),state.loopWidth>0){const speed=state.loopWidth/22e3;applyOffset(marquee,state.offset+speed*dt)}}state.rafId=requestAnimationFrame(function(nextTs){tick(marquee,nextTs)})}function startAutoScroll(marquee){const state=getState(marquee);state.rafId||marquee.classList.contains("is-scrolling")&&(state.lastTs=0,state.rafId=requestAnimationFrame(function(ts){tick(marquee,ts)}))}function pauseForUser(marquee){const state=getState(marquee);marquee.classList.add("is-user-controlling"),state.resumeTimer&&(clearTimeout(state.resumeTimer),state.resumeTimer=0)}function scheduleResume(marquee){const state=getState(marquee);state.resumeTimer&&clearTimeout(state.resumeTimer),state.resumeTimer=setTimeout(function(){state.resumeTimer=0,state.dragging=!1,state.pointerId=null,state.moved=!1,marquee.classList.remove("is-user-controlling","is-dragging"),startAutoScroll(marquee)},0)}function updateMatchFooterMarquee(marquee){const primary=getPrimaryGroup(marquee),track=getTrack(marquee);!function bindInteraction(marquee){const state=getState(marquee);function endPointer(e){if(null===state.pointerId||e.pointerId===state.pointerId||"pointerleave"===e.type){if(null!==state.pointerId)try{marquee.releasePointerCapture(state.pointerId)}catch(err){}state.dragging=!1,state.pointerId=null,state.moved=!1,marquee.classList.remove("is-dragging"),marquee.classList.contains("is-scrolling")&&scheduleResume(marquee)}}state.bound||(state.bound=!0,marquee.addEventListener("pointerdown",function(e){if(marquee.classList.contains("is-scrolling")&&("mouse"!==e.pointerType||0===e.button)){pauseForUser(marquee),state.dragging=!1,state.moved=!1,state.suppressClick=!1,state.pointerId=e.pointerId,state.startX=e.clientX,state.startOffset=state.offset;try{marquee.setPointerCapture(e.pointerId)}catch(err){}}}),marquee.addEventListener("pointermove",function(e){if(state.pointerId!==e.pointerId)return;const dx=e.clientX-state.startX;!state.moved&&Math.abs(dx)<4||(state.moved=!0,state.suppressClick=!0,state.dragging=!0,marquee.classList.add("is-dragging"),applyOffset(marquee,state.startOffset-dx),e.cancelable&&e.preventDefault())},{passive:!1}),marquee.addEventListener("pointerup",endPointer),marquee.addEventListener("pointercancel",endPointer),marquee.addEventListener("click",function(e){state.suppressClick&&(e.preventDefault(),e.stopPropagation(),state.suppressClick=!1)},!0),marquee.addEventListener("wheel",function(e){marquee.classList.contains("is-scrolling")&&(Math.abs(e.deltaX)<Math.abs(e.deltaY)||(pauseForUser(marquee),applyOffset(marquee,state.offset+e.deltaX),scheduleResume(marquee),e.cancelable&&e.preventDefault()))},{passive:!1}),marquee.addEventListener("mouseenter",function(){marquee.classList.contains("is-scrolling")&&(state.dragging||pauseForUser(marquee))}),marquee.addEventListener("mouseleave",function(e){marquee.classList.contains("is-scrolling")&&endPointer(e)}))}(marquee);const state=getState(marquee);if(!primary||!track)return stopAutoScroll(marquee),marquee.classList.remove("is-scrolling","is-user-controlling","is-dragging"),track&&(track.style.transform=""),state.offset=0,void(state.loopWidth=0);const wasScrolling=marquee.classList.contains("is-scrolling"),duplicate=marquee.querySelector('.match-footer-marquee-group[aria-hidden="true"]'),prevDupDisplay=dupl
1icate?duplicate.style.display:"";duplicate&&(duplicate.style.display="none"),marquee.classList.remove("is-scrolling"),track.style.transform="";const contentWidth=measureContentWidth(0,primary),availableWidth=marquee.clientWidth||marquee.getBoundingClientRect().width,needsScroll=availableWidth>0&&(contentWidth+20>=availableWidth||contentWidth>availableWidth);if(duplicate&&(duplicate.style.display=prevDupDisplay),wasScrolling===needsScroll&&Math.abs(state.lastContentWidth-contentWidth)<1&&Math.abs(state.lastAvailableWidth-availableWidth)<1&&needsScroll&&state.rafId)state.loopWidth=measureLoopWidth(marquee)||state.loopWidth;else{if(state.lastContentWidth=contentWidth,state.lastAvailableWidth=availableWidth,!needsScroll)return stopAutoScroll(marquee),marquee.classList.remove("is-scrolling","is-user-controlling","is-dragging"),track.style.transform="",state.offset=0,void(state.loopWidth=0);marquee.classList.add("is-scrolling"),state.loopWidth=measureLoopWidth(marquee),state.loopWidth<=0&&(state.loopWidth=contentWidth),applyOffset(marquee,wasScrolling?state.offset:0),startAutoScroll(marquee)}}function updateAllMatchFooterMarquees(root){if(isUpdating)pendingUpdate=!0;else{isUpdating=!0;try{(root&&root.querySelectorAll?root:document).querySelectorAll(".match-footer-marquee").forEach(updateMatchFooterMarquee)}finally{requestAnimationFrame(function(){isUpdating=!1,pendingUpdate&&(pendingUpdate=!1,updateAllMatchFooterMarquees(document))})}}}function scheduleUpdate(){resizeTimer&&clearTimeout(resizeTimer),resizeTimer=setTimeout(function(){updateAllMatchFooterMarquees(document)},200)}function boot(){updateAllMatchFooterMarquees(document),setTimeout(function(){updateAllMatchFooterMarquees(document)},300),setTimeout(function(){updateAllMatchFooterMarquees(document)},1e3)}if(window.updateMatchFooterMarquees=updateAllMatchFooterMarquees,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",boot):boot(),document.fonts&&document.fonts.ready&&document.fonts.ready.then(function(){updateAllMatchFooterMarquees(document)}).catch(function(){}),window.addEventListener("resize",scheduleUpdate),window.addEventListener("load",function(){updateAllMatchFooterMarquees(document)}),"function"==typeof window.ResizeObserver){const observer=new ResizeObserver(scheduleUpdate),observeTargets=function(){document.querySelectorAll(".match-list-limited, .match-footer-marquee").forEach(function(el){observer.observe(el)})};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",observeTargets):observeTargets()}}();
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.