1"use strict";(self.webpackChunknodebb=self.webpackChunknodebb||[]).push([[37418,65928,87212],{60644:((h,g,f)=>{var p,i;p=[f(52473),f(68636),f(96352),f(25967)],i=(function(n,e,t,l){const c={};let u;c.init=function(s){u=s,y(),$(window).off("action:popstate",d).on("action:popstate",d)},c.onBackClicked=d;function y(){$('[component="category"]').on("click",'[component="topic/header"]',function(){const s=$(this).parents("[data-index]").attr("data-index"),r=$(window).scrollTop();$('[component="category/topic"]').each(function(o,a){if($(a).offset().top-r>0)return e.setItem("category:bookmark",$(a).attr("data-index")),e.setItem("category:bookmark:clicked",s),e.setItem("category:bookmark:offset",$(a).offset().top-r),!1})})}function d(s){const r=s&&ajaxify.data.template.unread;if(ajaxify.data.template.category||ajaxify.data.template.recent||ajaxify.data.template.popular||r){let o=e.getItem("category:bookmark"),a=e.getItem("category:bookmark:clicked");if(e.removeItem("category:bookmark"),e.removeItem("category:bookmark:clicked"),!utils.isNumber(o))return;if(o=Math.max(0,parseInt(o,10)||0),a=Math.max(0,parseInt(a,10)||0),config.usePagination){const m=Math.ceil((parseInt(o,10)+1)/config.topicsPerPage);parseInt(m,10)!==ajaxify.data.pagination.currentPage?l.loadPage(m,function(){c.scrollToTopic(o,a)}):c.scrollToTopic(o,a)}else{if(o===0){c.scrollToTopic(o,a);return}$('[component="category"]').empty(),u(Math.max(0,o-1)+1,function(){c.scrollToTopic(o,a)})}}}return c.highlightTopic=function(s){const r=n.get("category/topic","index",s);r.length&&!r.hasClass("highlight")&&(r.addClass("highlight"),setTimeout(function(){r.removeClass("highlight")},5e3))},c.scrollToTopic=function(s,r){if(!utils.isNumber(s))return;const o=n.get("category/topic","index",s);if(o.length){const a=e.getItem("category:bookmark:offset");e.removeItem("category:bookmark:offset"),$(window).scrollTop(o.offset().top-a),c.highlightTopic(r),t.update()}},c}).apply(g,p),i!==void 0&&(h.exports=i)}),68636:((h,g,f)=>{var p;p=(function(){function i(){this._store={},this._keys=[]}i.prototype.isMock=!0,i.prototype.setItem=function(t,l){t=String(t),this._keys.indexOf(t)===-1&&this._keys.push(t),this._store[t]=l},i.prototype.getItem=function(t){return t=String(t),this._keys.indexOf(t)===-1?null:this._store[t]},i.prototype.removeItem=function(t){t=String(t),this._keys=this._keys.filter(function(l){return l!==t}),this._store[t]=null},i.prototype.clear=function(){this._keys=[],this._store={}},i.prototype.key=function(t){return t=parseInt(t,10)||0,this._keys[t]},Object.defineProperty&&Object.defineProperty(i.prototype,"length",{get:function(){return this._keys.length}});let n;const e=Date.now().toString();try{if(n=window.localStorage,n.setItem(e,e),n.getItem(e)!==e)throw Error("localStorage behaved unexpectedly");return n.removeItem(e),n}catch(t){console.warn(t),console.warn("localStorage failed, falling back on sessionStorage");try{if(n=window.sessionStorage,n.setItem(e,e),n.getItem(e)!==e)throw Error("sessionStorage behaved unexpectedly");return n.removeItem(e),n}catch(l){return console.warn(l),console.warn("sessionStorage failed, falling back on memory storage"),new i}}}).call(g,f,g,h),p!==void 0&&(h.exports=p)})}]);
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.