1"use strict";(self.webpackChunknodebb=self.webpackChunknodebb||[]).push([[14037,15794,25432],{29869:L=>{L.exports=function(w,l,i){l.setGlobal("true",!0),l.setGlobal("false",!1);const k=24*60*60*1e3,R={displayMenuItem:K,buildMetaTag:H,buildLinkTag:F,stringify:ee,escape:v,stripTags:te,buildCategoryIcon:y,buildCategoryLabel:N,generateCategoryBackground:C,generateChildrenCategories:B,generateTopicClass:P,membershipBtn:z,spawnPrivilegeStates:J,localeToHTML:U,renderTopicImage:r,renderDigestAvatar:S,userAgentIcons:V,buildAvatar:Z,increment:E,generateWroteReplied:Y,generateRepliedTo:G,generateWrote:T,encodeURIComponent:Q,isoTimeToLocaleString:X,shouldHideReplyContainer:W,humanReadableNumber:q,formattedNumber:a,txEscape:s,generatePlaceholderWave:d,register:o,__escape:A};function A(e){return e}function K(e,t){const n=e.navigation[t];return!(!n||n.route.match("/users")&&e.user&&!e.user.privileges["view:users"]||n.route.match("/tags")&&e.user&&!e.user.privileges["view:tags"]||n.route.match("/groups")&&e.user&&!e.user.privileges["view:groups"])}function H(e){const t=e.name?'name="'+e.name+'" ':"",n=e.property?'property="'+e.property+'" ':"",f=e.content?'content="'+e.content.replace(/\n/g," ")+'" ':"";return"<meta "+t+n+f+`/> 2 `}function F(e){const t=["link","rel","as","type","href","sizes","title","crossorigin"],[n,f,x,u,c,g,I,m]=t.map(h=>e[h]?`${h}="${e[h]}" `:"");return"<link "+n+f+x+u+g+I+c+m+`/> 3 `}function ee(e){return JSON.stringify(e).replace(/&/gm,"&").replace(/</gm,"<").replace(/>/gm,">").replace(/"/g,""")}function v(e){return w.escapeHTML(e)}function te(e){return w.stripHTMLTags(e)}function y(e,t,n){return e?`<span class="icon d-inline-flex justify-content-center align-items-center align-middle ${n}" style="${C(e)} width:${t}; height: ${t}; font-size: ${parseInt(t,10)/2}px;">${e.icon?`<i class="fa fa-fw ${e.icon}"></i>`:""}</span>`:""}function N(e,t="a",n=""){if(!e)return"";const f=t==="a"?`href="${i}/category/${e.slug}"`:"";return`<${t} ${f} class="badge px-1 text-truncate text-decoration-none ${n}" style="color: ${e.color};background-color: ${e.bgColor};border-color: ${e.bgColor}!important; max-width: 70vw;"> 4 ${e.icon&&e.icon!=="fa-nbb-none"?`<i class="fa fa-fw ${e.icon}"></i>`:""} 5 ${e.name} 6 </${t}>`}function C(e){if(!e)return"";const t=[];return e.bgColor&&(t.push("background-color: "+e.bgColor),t.push(`border-color: ${e.bgColor}!important`)),e.color&&t.push("color: "+e.color),e.backgroundImage&&(t.push("background-image: url("+e.backgroundImage+")"),e.imageClass&&t.push("background-size: "+e.imageClass)),t.join("; ")+";"}function B(e){let t="";return!e||!e.children||!e.children.length||(e.children.forEach(function(n){if(n&&!n.isSection){const f=n.link?n.link:i+"/category/"+n.slug;t+='<span class="category-children-item float-start"><div role="presentation" class="icon float-start" style="'+C(n)+'"><i class="fa fa-fw '+n.icon+'"></i></div><a href="'+f+'"><small>'+n.name+"</small></a></span>"}}),t=t&&'<span class="category-children">'+t+"</span>"),t}function P(e){return["locked","pinned","deleted","unread","scheduled"].filter(n=>!!e[n]).join(" ")}function z(e,t=""){return e.isMember&&e.name!=="administrators"?`<button class="btn btn-danger ${t}" data-action="leave" data-group="${e.displayName}" ${e.disableLeave?" disabled":""}><i class="fa fa-times"></i> [[groups:membership.leave-group]]</button>`:e.isPending&&e.name!=="administrators"?`<button class="btn btn-warning disabled ${t}"><i class="fa fa-clock-o"></i> [[groups:membership.invitation-pending]]</button>`:e.isInvited?`<button class="btn btn-warning" data-action="rejectInvite" data-group="${e.displayName}">[[groups:membership.reject]]</button><button class="btn btn-success" data-action="acceptInvite" data-group="${e.name}"><i class="fa fa-plus"></i> [[groups:membership.accept-invitation]]</button>`:!e.disableJoinRequests&&e.name!=="administrators"?`<button class="btn btn-success ${t}" data-action="join" data-group="${e.displayName}"><i class="fa fa-plus"></i> [[groups:membership.join-group]]</button>`:""}function J(e,t,n,f){const x=[];for(const[u,c]of Object.entries(n))x.push({name:u,state:c,type:f[u]});return x.map(function(u){const c=["groups:moderate","groups:posts:upvote","groups:posts:downvote","groups:local:login","groups:group:create"],g=["groups:find","groups:read","groups:topics:read","groups:view:users","groups:view:tags","groups:view:groups"],I=["groups:moderate"];let m=["groups:view:users","groups:find","groups:read","groups:topics:read","groups:topics:create","groups:topics:reply","groups:topics:tag","groups:posts:edit","groups:posts:history","groups:posts:delete","groups:posts:upvote","groups:posts:downvote","groups:topics:delete"];e===-1&&(m=m.slice(3));const h=t==="guests"&&(c.includes(u.name)||u.name.startsWith("groups:admin:"))||t==="spiders"&&!g.includes(u.name)||t==="fediverse"&&!m.includes(u.name)||t==="Global Moderators"&&I.includes(u.name);return` 7 <td data-privilege="${u.name}" data-value="${u.state}" data-type="${u.type}"> 8 <div class="form-check text-center"> 9 <input class="form-check-input float-none${h?' d-none"':""}" autocomplete="off" type="checkbox"${u.state?" checked":""}${h?' disabled="disabled" aria-diabled="true"':""} /> 10 </div> 11 </td> 12 `}).join("")}function U(e,t){return e=e||t||"en-GB",e.replace("_","-")}function r(e){return e.thumb?'<img src="'+e.thumb+'" class="img-circle user-img" title="'+e.user.displayname+'" />':'<img component="user/picture" data-uid="'+e.user.uid+'" src="'+e.user.picture+'" class="user-img" title="'+e.user.displayname+'" />'}function S(e){return e.teaser?e.teaser.user.picture?'<img style="vertical-align: middle; width: 32px; height: 32px; border-radius: 50%;" src="'+e.teaser.user.picture+'" title="'+e.teaser.user.username+'" />':'<div style="vertical-align: middle; width: 32px; height: 32px; line-height: 32px; font-size: 16px; background-color: '+e.teaser.user["icon:bgColor"]+'; color: white; text-align: center; display: inline-block; border-radius: 50%;">'+e.teaser.user["icon:text"]+"</div>":e.user.picture?'<img style="vertical-align: middle; width: 32px; height: 32px; border-radius: 50%;" src="'+e.user.picture+'" title="'+e.user.username+'" />':'<div style="vertical-align: middle; width: 32px; height: 32px; line-height: 32px; font-size: 16px; background-color: '+e.user["icon:bgColor"]+'; color: white; text-align: center; display: inline-block; border-radius: 50%;">'+e.user["icon:text"]+"</div>"}function V(e){let t="";switch(e.platform){case"Linux":t+='<i class="fa fa-fw fa-linux"></i>';break;case"Microsoft Windows":t+='<i class="fa fa-fw fa-windows"></i>';break;case"Apple Mac":t+='<i class="fa fa-fw fa-apple"></i>';break;case"Android":t+='<i class="fa fa-fw fa-android"></i>';break;case"iPad":t+='<i class="fa fa-fw fa-tablet"></i>';break;case"iPod":case"iPhone":t+='<i class="fa fa-fw fa-mobile"></i>';break;default:t+='<i class="fa fa-fw fa-question-circle"></i>';break}switch(e.browser){case"Chrome":t+='<i class="fa fa-fw fa-chrome"></i>';break;case"Firefox":t+='<i class="fa fa-fw fa-firefox"></i>';break;case"Safari":t+='<i class="fa fa-fw fa-safari"></i>';break;case"IE":t+='<i class="fa fa-fw fa-internet-explorer"></i>';break;case"Edge":t+='<i class="fa fa-fw fa-edge"></i>';break;default:t+='<i class="fa fa-fw fa-question-circle"></i>';break}return t}function Z(e,t,n,f,x){e||(e=this),f=f||"";const u=new Map([["title",e.displayname],["data-uid",e.uid],["class",`avatar ${f}${n?" avatar-rounded":""}`]]),c=[`--avatar-size: ${t};`],g=m=>Array.from(m).reduce((h,[b,_])=>(h+=` ${b}="${_}"`,h),"");let I="";return e.picture&&(I+=`<img${g(u)} alt="${e.displayname}" loading="lazy" component="${x||"avatar/picture"}" src="${e.picture}" style="${c.join(" ")}" onError="this.remove()" itemprop="image" />`),I+=`<span${g(u)} component="${x||"avatar/icon"}" style="${c.join(" ")} background-color: ${e["icon:bgColor"]}">${e["icon:text"]}</span>`,I}function E(e,t){return String(e+parseInt(t,10))}function Y(e,t){return e.toPid?G(e,t):T(e,t)}function G(e,t){const n=e.parent&&e.parent.displayname?e.parent.displayname:"[[global:guest]]";return`[[topic:replied-to-user-${e.timestamp<Date.now()-t*k?"on":"ago"}, ${e.toPid}, ${i}/post/${encodeURIComponent(e.toPid)}, ${n}, ${i}/post/${encodeURIComponent(e.pid)}, ${e.timestampISO}]]`}function T(e,t){return`[[topic:wrote-${e.timestamp<Date.now()-t*k?"on":"ago"}, ${i}/post/${encodeURIComponent(e.pid)}, ${e.timestampISO}]]`}function Q(e){return encodeURIComponent(e)}
12function X(e,t="en-GB"){return new Date(e).toLocaleString([t],{dateStyle:"short",timeStyle:"short"}).replace(/,/g,",")}function W(e){return!!(e.replies.count<=0||e.replies.hasSingleImmediateReply)}function q(e,t=1){return w.makeNumberHumanReadable(e,t)}function a(e){return w.addCommas(e)}function s(e){return String(e).replace(/%/g,"%").replace(/,/g,",")}function d(e){return e.map(n=>n==="divider"?'<li class="dropdown-divider"></li>':` 13 <li class="dropdown-item placeholder-wave"> 14 <div class="placeholder" style="width: 20px;"></div> 15 <div class="placeholder col-${n}"></div> 16 </li>`).join("")}function o(){Object.keys(R).forEach(function(e){l.registerHelper(e,R[e])})}return R}},30076:(L,w,l)=>{var i,k;const R=l(29869);i=[l(77918),l(81335)],k=function(A,K){return R(A,K,config.relative_path)}.apply(w,i),k!==void 0&&(L.exports=k)},37971:(L,w,l)=>{l.r(w),l.d(w,{init:()=>J});var i=l(70106),k=l(81335),R=l.n(k),A=l(33530),K=l.n(A),H=l(29930),F=l(17459),ee=l.n(F),v=l(30076),te=l.n(v);i.t1.register(i.ZT,i.ju,i.PP,i.kc,i.No,i.FN,i.Bs,i.m_,i.dN,i.s$);const y={rooms:!1,graphs:!1};let N=!1;const C={rooms:{},traffic:{}},B={units:"hours",until:void 0},P={roomInterval:1e4,graphInterval:15e3,realtimeInterval:1500},z=[];$(window).on("action:ajaxify.start",function(){clearInterval(y.rooms),clearInterval(y.graphs),y.rooms=null,y.graphs=null,C.rooms=null,C.traffic=null,z.length=0});function J(){app.enterRoom("admin"),N=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),Q(),X(),Z(function(){socket.emit("admin.rooms.getAll",U),W()}),q()}function U(a,s){if(a)return H.error(a);JSON.stringify(C.rooms)!==JSON.stringify(s)&&(C.rooms=s,Y(s.onlineRegisteredCount,s.onlineGuestCount),G(s.users),T(s.topTenTopics),$("#active-users-loggedin").text((0,v.formattedNumber)(s.onlineRegisteredCount)),$("#active-users-guests").text((0,v.formattedNumber)(s.onlineGuestCount)),$("#active-users-total").text((0,v.formattedNumber)(s.onlineRegisteredCount+s.onlineGuestCount)),$("#active-users-connections").text((0,v.formattedNumber)(s.socketCount)))}const r={traffic:null,registered:null,presence:null,topics:null},S=["#bf616a","#5B90BF","#d08770","#ebcb8b","#a3be8c","#96b5b4","#8fa1b3","#b48ead","#ab7967","#46BFBD"];function V(a,s){let d=!1;a[0]==="#"&&(a=a.slice(1),d=!0);const o=parseInt(a,16);let e=(o>>16)+s;e>255?e=255:e<0&&(e=0);let t=(o>>8&255)+s;t>255?t=255:t<0&&(t=0);let n=(o&255)+s;return n>255?n=255:n<0&&(n=0),(d?"#":"")+(n|t<<8|e<<16).toString(16)}function Z(a){a=a||function(){};const s=document.getElementById("analytics-traffic"),d=document.getElementById("analytics-registered"),o=document.getElementById("analytics-presence"),e=document.getElementById("analytics-topics"),t=s.getContext("2d"),n=d.getContext("2d"),f=o.getContext("2d"),x=e.getContext("2d"),u=utils.getHoursArray();N&&(i.t1.defaults.plugins.tooltip.enabled=!1);const c=F.Translator.create();Promise.all([c.translateKey("admin/dashboard:graphs.page-views",[]),c.translateKey("admin/dashboard:graphs.page-views-registered",[]),c.translateKey("admin/dashboard:graphs.page-views-guest",[]),c.translateKey("admin/dashboard:graphs.page-views-bot",[]),c.translateKey("admin/dashboard:graphs.unique-visitors",[]),c.translateKey("admin/dashboard:graphs.registered-users",[]),c.translateKey("admin/dashboard:graphs.guest-users",[]),c.translateKey("admin/dashboard:on-categories",[]),c.translateKey("admin/dashboard:reading-posts",[]),c.translateKey("admin/dashboard:browsing-topics",[]),c.translateKey("admin/dashboard:recent",[]),c.translateKey("admin/dashboard:unread",[])]).then(function(g){const m={labels:u,datasets:[{label:g[0],fill:"origin",tension:.25,backgroundColor:"rgba(220,220,220,0.2)",borderColor:"rgba(220,220,220,1)",pointBackgroun
16dColor:"rgba(220,220,220,1)",pointHoverBackgroundColor:"#fff",pointBorderColor:"#fff",pointHoverBorderColor:"rgba(220,220,220,1)",data:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{label:g[1],fill:"origin",tension:.25,backgroundColor:"#ab464233",borderColor:"#ab4642",pointBackgroundColor:"#ab4642",pointHoverBackgroundColor:"#ab4642",pointBorderColor:"#fff",pointHoverBorderColor:"#ab4642",data:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{label:g[2],fill:"origin",tension:.25,backgroundColor:"#ba8baf33",borderColor:"#ba8baf",pointBackgroundColor:"#ba8baf",pointHoverBackgroundColor:"#ba8baf",pointBorderColor:"#fff",pointHoverBorderColor:"#ba8baf",data:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{label:g[3],fill:"origin",tension:.25,backgroundColor:"#f7ca8833",borderColor:"#f7ca88",pointBackgroundColor:"#f7ca88",pointHoverBackgroundColor:"#f7ca88",pointBorderColor:"#fff",pointHoverBorderColor:"#f7ca88",data:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{label:g[4],fill:"origin",tension:.25,backgroundColor:"rgba(151,187,205,0.2)",borderColor:"rgba(151,187,205,1)",pointBackgroun
16dColor:"rgba(151,187,205,1)",pointHoverBackgroundColor:"rgba(151,187,205,1)",pointBorderColor:"#fff",pointHoverBorderColor:"rgba(151,187,205,1)",data:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]};s.width=$(s).parent().width(),m.datasets[0].yAxisID="left-y-axis",m.datasets[1].yAxisID="left-y-axis",m.datasets[2].yAxisID="left-y-axis",m.datasets[3].yAxisID="left-y-axis",m.datasets[4].yAxisID="right-y-axis",r.traffic=new i.t1(t,{type:"line",data:m,options:{responsive:!0,scales:{"left-y-axis":{position:"left",type:"linear",title:{display:!0,text:g[0]},beginAtZero:!0},"right-y-axis":{position:"right",type:"linear",title:{display:!0,text:g[4]},beginAtZero:!0}},plugins:{legend:{position:"bottom"}},interaction:{intersect:!1,mode:"index"}}});const h={responsive:!0,plugins:{legend:{display:!1}}};r.registered=new i.t1(n,{type:"doughnut",data:{labels:g.slice(5,7),datasets:[{data:[1,1],backgroundColor:["#F7464A","#46BFBD"],hoverBackgroundColor:["#FF5A5E","#5AD3D1"]}]},options:h}),r.presence=new i.t1(f,{type:"doughnut",data:{labels:g.slice(7,12),datasets:[{data:[1,1,1,1,1],backgroundColor:["#F7464A","#46BFBD","#FDB45C","#949FB1","#9FB194"],hoverBackgroundColor:["#FF5A5E","#5AD3D1","#FFC870","#A8B3C5","#A8B3C5"]}]},options:h}),r.topics=new i.t1(x,{type:"doughnut",data:{labels:[],datasets:[{data:[],backgroundColor:[],hoverBackgroundColor:[]}]},options:h}),E(),$('[data-action="updateGraph"]:not([data-units="custom"])').on("click",function(){let b=new Date;const _=$(this).attr("data-amount");$(this).attr("data-units")==="days"&&b.setHours(0,0,0,0),b=b.getTime(),E($(this).attr("data-units"),b,_),Promise.resolve().then(function(){var M=[l(17459)];(function(j){j.translate("[[admin/dashboard:page-views-custom]]",function(p){$('[data-action="updateGraph"][data-units="custom"]').text(p)})}).apply(null,M)}).catch(l.oe)}),$('[data-action="updateGraph"][data-units="custom"]').on("click",function(){const b=$(this);k.render("admin/partials/pageviews-range-select",{}).then(function(_){const M=A.dialog({title:"[[admin/dashboard:page-views-custom]]",message:_,buttons:{submit:{label:"[[global:search]]",className:"btn-primary",callback:j}}}).on("shown.bs.modal",function(){const p=new Date,O=p.toISOString().slice(0,10);p.setDate(p.getDate()-1);const D=p.toISOString().slice(0,10);M.find("#startRange").val(b.attr("data-startRange")||D),M.find("#endRange").val(b.attr("data-endRange")||O)});function j(){const p=M.find("form").serializeObject(),O=/\d{4}-\d{2}-\d{2}/;if(!p.startRange&&!p.endRange){E("days");return}else if(!O.test(p.startRange)||!O.test(p.endRange))return M.find(".alert-danger").removeClass("hidden"),!1;let D=new Date(p.endRange);D.setDate(D.getDate()+1),D=D.getTime();const ae=(D-new Date(p.startRange).getTime())/(1e3*60*60*24);E("days",D,ae),b.attr("data-startRange",p.startRange),b.attr("data-endRange",p.endRange),b.html(p.startRange+" – "+p.endRange)}})}),a()})}function E(a,s,d){app.isFocused&&socket.emit("admin.analytics.get",{graph:"traffic",units:a||"hours",until:s,amount:d},function(o,e){if(o)return H.error(o);if(JSON.stringify(C.traffic)===JSON.stringify(e))return;C.traffic=e,a==="days"?r.traffic.data.xLabels=utils.getDaysArray(s,d):(r.traffic.data.xLabels=utils.getHoursArray(),$("#pageViewsThirty").html((0,v.formattedNumber)(e.summary.thirty)),$("#pageViewsSeven").html((0,v.formattedNumber)(e.summary.seven)),$("#pageViewsPastDay").html((0,v.formattedNumber)(e.pastDay))),r.traffic.data.datasets[0].data=e.pageviews,r.traffic.data.datasets[1].data=e.pageviewsRegistered,r.traffic.data.datasets[2].data=e.pageviewsGuest,r.traffic.data.datasets[3].data=e.pageviewsBot,r.traffic.data.datasets[4].data=e.uniqueVisitors,r.traffic.data.labels=r.traffic.data.xLabels,r.traffic.update(),B.units=a,B.until=s,B.amount=d;const t=$("#view-as-json"),n=$.param({units:a||"hours",until:s,count:d});t.attr("href",config.relative_path+"/api/admin/analytics?"+n)})}function Y(a,s){$("#analytics-legend .registered").parent().find(".count").text(a),$("#analytics-legend .guest").parent().find(".count").text(s),r.registered.data.datasets[0].data[0]=a,r.registered.data.datasets[0].data[1]=s,r.registered.update()}function G(a){$("#analytics-presence-legend .on-categories").parent().find(".count").text(a.categories),$("#analytics-presence-legend .reading-posts").parent().find(".count").text(a.topics),$("#analytics-presence-legend .browsing-topics").parent().find(".count").text(a.category),$("#analytics-presence-legend .recent").parent().find(".count").text(a.recent),$("#analytics-presence-legend .unread").parent().find(".count").text(a.unread),r.presence.data.datasets[0].data[0]=a.categories,r.presence.data.datasets[0].data[1]=a.topics,r.presence.data.datasets[0].data[2]=a.category,r.presence.data.datasets[0].data[3]=a.recent,r.presence.data.datasets[0].data[4]=a.unread,r.presence.update(
16)}function T(a){if(!a.length){F.translate("[[admin/dashboard:no-users-browsing]]",function(d){a=[{title:d,count:1}],T(a)});return}r.topics.data.labels=[],r.topics.data.datasets[0].data=[],r.topics.data.datasets[0].backgroundColor=[],r.topics.data.datasets[0].hoverBackgroundColor=[],a.forEach(function(d,o){r.topics.data.labels.push(d.title),r.topics.data.datasets[0].data.push(d.count),r.topics.data.datasets[0].backgroundColor.push(S[o]),r.topics.data.datasets[0].hoverBackgroundColor.push(V(S[o],10))});function s(){let d="";a.forEach(function(o,e){const t=o.tid?'<a title="'+o.title+'"href="'+config.relative_path+"/topic/"+o.tid+'" target="_blank"> '+o.title+"</a>":o.title,n=o.count==="0"?o.title:t;d+='<li><div style="background-color: '+S[e]+';"></div><span> ('+o.count+") "+n+"</span></li>"}),$("#topics-legend").translateHtml(d)}s(),r.topics.update()}function Q(){let a=localStorage.getItem("data-bs-theme")||"light";$("#toggle-dark-mode").prop("checked",a==="dark").on("click",function(){a=$(this).is(":checked")?"dark":"light",$("html").attr("data-bs-theme",a),localStorage.setItem("data-bs-theme",a)})}function X(){$("#toggle-realtime").on("click",function(){W($(this).is(":checked"))})}function W(a){clearInterval(y.rooms),clearInterval(y.graphs),y.rooms=setInterval(function(){app.isFocused&&socket.connected&&socket.emit("admin.rooms.getAll",U)},a?P.realtimeInterval:P.roomInterval),y.graphs=setInterval(function(){E(B.units,B.until,B.amount)},a?P.realtimeInterval:P.graphInterval)}function q(){const a=document.getElementById("analytics-panel"),s=$(a),d=s.find("#expand-analytics");let o,e;a.requestFullscreen?(o="requestFullscreen",e="exitFullscreen"):a.mozRequestFullScreen?(o="mozRequestFullScreen",e="mozCancelFullScreen"):a.webkitRequestFullscreen?(o="webkitRequestFullscreen",e="webkitCancelFullScreen"):a.msRequestFullscreen&&(o="msRequestFullscreen",e="msCancelFullScreen"),o&&d.on("click",function(){s.hasClass("fullscreen")?(document[e](),s.removeClass("fullscreen")):(a[o](),s.addClass("fullscreen"))})}}}]);
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.