PageSourceSearch

https://hoianheritage.net/themes/ngocsinhds/js/main.js?t=1770621000

js hoianheritage.net collected 2026-10-02 10:50:05 UTC 22,553 bytes, 513 lines download raw bytes

1var myTimerPage = "",
2    myTimersecField = "",
3    tip_active = !1,
4    ftip_active = !1,
5    tip_autoclose = !0,
6    ftip_autoclose = !0,
7    winX = 0,
8    winY = 0,
9    oldWinX = 0,
10    oldWinY = 0,
11    cRangeX = 0,
12    cRangeY = 0,
13    docX = 0,
14    docY = 0;
15
16function winResize() { oldWinX = winX;
17    oldWinY = winY;
18    winX = $(window).width();
19    winY = $(window).height();
20    docX = $(document).width();
21    docY = $(document).height();
22    cRangeX = Math.abs(winX - oldWinX);
23    cRangeY = Math.abs(winY - oldWinY); }
24
25function fix_banner_center() {
26    var a = Math.round((winX - 1330) / 2);
27    0 <= a ? ($("div.fix_banner_left").css("left", a + "px"), $("div.fix_banner_right").css("right", a + "px"), a = Math.round((winY - $("div.fix_banner_left").height()) / 2), 0 >= a && (a = 0), $("div.fix_banner_left").css("top", a + "px"), a = Math.round((winY - $("div.fix_banner_right").height()) / 2), 0 >= a && (a = 0), $("div.fix_banner_right").css("top", a + "px"), $("div.fix_banner_left").show(), $("div.fix_banner_right").show()) : ($("div.fix_banner_left").hide(), $("div.fix_banner_right").hide()) }
28
29function timeoutsesscancel() { clearInterval(myTimersecField);
30    $.ajax({ url: nv_base_siteurl + "index.php?second=statimg", cache: !1 }).done(function() { $("#timeoutsess").hide();
31        myTimerPage = setTimeout(function() { timeoutsessrun() }, nv_check_pass_mstime) }) }
32
33function timeoutsessrun() { clearInterval(myTimerPage);
34    document.getElementById("secField").innerHTML = 60;
35    jQuery("#timeoutsess").show();
36    var a = (new Date).getTime();
37    myTimersecField = setInterval(function() {
38        var b = (new Date).getTime(),
39            b = 60 - Math.round((b - a) / 1E3);
40        0 <= b ? document.getElementById("secField").innerHTML = b : -3 > b && (clearInterval(myTimersecField), $(window).unbind(), window.location.reload()) }, 1E3) }
41
42function locationReplace(url) {
43    if (history.pushState) { history.pushState(null, null, url); } 
44}
45
46var NVIsMobileMenu = false,gEInterval,siteMenu = $("#menu-site-default");
47function checkWidthMenu() {
48    NVIsMobileMenu = (theme_responsive && "absolute" == $("#menusite").css("position"));
49    NVIsMobileMenu ? (
50        $("li.dropdown ul", siteMenu).removeClass("dropdown-menu").addClass("dropdown-submenu"),
51        $("li.dropdown a", siteMenu).addClass("dropdown-mobile"),
52        $("ul li a.dropdown-toggle", siteMenu).addClass("dropdown-mobile"),
53        $("li.dropdown ul li a", siteMenu).removeClass("dropdown-mobile")
54    ) : (
55        $("li.dropdown ul", siteMenu).addClass("dropdown-menu").removeClass("dropdown-submenu"),
56        $("li.dropdown a", siteMenu).removeClass("dropdown-mobile"),
57        $("li.dropdown ul li a", siteMenu).removeClass("dropdown-mobile"),
58        $("ul li a.dropdown-toggle", siteMenu).removeClass("dropdown-mobile")
59    )
60}
61function checkAll(a) {
62    $(".checkAll", a).is(":checked") ? $(".checkSingle", a).not(":disabled").each(function() {
63        $(this).prop("checked", !0)
64    }) : $(".checkSingle", a).not(":disabled").each(function() {
65        $(this).prop("checked", !1)
66    });
67    return !1
68}
69
70function checkSingle(a) {
71    var b = 0,
72        c = 0;
73    $(".checkSingle", a).each(function() { $(this).is(":checked") ? b++ : c++ });
74    0 != b && 0 == c ? $(".checkAll", a).prop("checked", !0) : $(".checkAll", a).prop("checked", !1);
75    return !1 }
76
77function tipHide() { $("[data-toggle=tip]").attr("data-click", "y").removeClass("active");
78    $("#tip").hide();
79    tip_active = !1;
80    tipAutoClose(!0) }
81
82function ftipHide() { $("[data-toggle=ftip]").attr("data-click", "y").removeClass("active");
83    $("#ftip").hide();
84    ftip_active = !1;
85    ftipAutoClose(!0) }
86
87function tipAutoClose(a) {!0 != a && (a = !1);
88    tip_autoclose = a }
89
90function ftipAutoClose(a) {!0 != a && (a = !1);
91    ftip_autoclose = a }
92
93function tipShow(a, b, callback) {
94    tip_active && tipHide();
95    ftip_active && ftipHide();
96    $("[data-toggle=tip]").removeClass("active");
97    $(a).attr("data-click", "n").addClass("active");
98    if (typeof callback != "undefined") {
99        $("#tip").attr("data-content", b).show("fast", function() {
100            if (callback == "recaptchareset") {
101                if ($('[data-toggle=recaptcha]', this).length) {
102                    reCaptcha2Recreate(this);
103                    "undefined" != typeof grecaptcha ? reCaptcha2OnLoad() : reCaptcha2ApiLoad()
104                } else if ($("[data-recaptcha3]", this).length) {
105                    "undefined" != typeof grecaptcha ? reCaptcha3OnLoad() : reCaptcha3ApiLoad()
106                }
107            } else if (typeof window[callback] === "function") {
108                window[callback]()
109            }
110        });
111    } else {
112        $("#tip").attr("data-content", b).show("fast");
113    }
114    tip_active = 1;
115}
116
117function ftipShow(a, b, callback) {
118    if ($(a).is(".qrcode") && "no" == $(a).attr("data-load")) {
119        return qrcodeLoad(a), !1;
120    }
121    tip_active && tipHide();
122    ftip_active && ftipHide();
123    $("[data-toggle=ftip]").removeClass("active");
124    $(a).attr("data-click", "n").addClass("active");
125    if (typeof callback != "undefined") {
126        $("#ftip").attr("data-content", b).show("fast", function() {
127            if (callback == "recaptchareset") {
128                if ($('[data-toggle=recaptcha]', this).length) {
129                    reCaptcha2Recreate(this);
130                    "undefined" != typeof grecaptcha ? reCaptcha2OnLoad() : reCaptcha2ApiLoad()
131                } else if ($("[data-recaptcha3]", this).length) {
132                    "undefined" != typeof grecaptcha ? reCaptcha3OnLoad() : reCaptcha3ApiLoad()
133                }
134            } else if (typeof window[callback] === "function") {
135                window[callback]()
136            }
137        });
138    } else {
139        $("#ftip").attr("data-content", b).show("fast");
140    }
141    ftip_active = 1;
142}
143
144function openID_load(a) {
145    tip_active && tipHide();
146    ftip_active && ftipHide();
147    nv_open_browse($(a).attr("href"), "NVOPID", 550, 500, "resizable=no,scrollbars=1,toolbar=no,location=no,titlebar=no,menubar=0,location=no,status=no");
148    return !1
149}
150
151function openID_result() {
152    var resElement = $("#openidResult");
153    resElement.fadeIn();
154    setTimeout(function() {
155        if (resElement.data('redirect') != '') {
156            window.location.href = resElement.data('redirect');
157        } else if (resElement.data('result') == 'success') {
158            location.reload();
159        } else {
160            resElement.hide(0).html('').data('result', '').data('redirect', '');
161        }
162    }, 5000);
163}
164
165function qrcodeLoad(a) {
166    var b = new Image,
167        c = $(a).data("img");
168    $(b).load(function() { $(c).attr("src", b.src);
169        $(a).attr("data-load", "yes").click() });
170    b.src = nv_base_siteurl + "index.php?second=qr&u=" + encodeURIComponent($(a).data("url")) };
171
172function switchTab(a) {
173    if ($(a).is(".current")) return !1;
174    var b = $(a).data("switch").split(/\s*,\s*/),
175        c = $(a).data("obj");
176    $(c + " [data-switch]").removeClass("current");
177    $(a).addClass("current");
178    $(c + " " + b[0]).removeClass("hidden");
179    for (i = 1; i < b.length; i++) $(c + " " + b[i]).addClass("hidden") };
180
181function change_captcha(a) {
182    if ($('[data-toggle=recaptcha]').length) {
183        "undefined" != typeof grecaptcha ? reCaptcha2OnLoad() : reCaptcha2ApiLoad()
184    } else if ($("[data-recaptcha3]").length) {
185        "undefined" != typeof grecaptcha ? reCaptcha3OnLoad() : reCaptcha3ApiLoad()
186    }
187
188    if ($("img.captchaImg").length) {
189        $("img.captchaImg").attr("src", nv_base_siteurl + "index.php?scaptcha=captcha&nocache=" + nv_randomPassword(10));
190        "undefined" != typeof a && "" != a && $(a).val("");
191    }
192    return !1
193}
194
195function loginForm(redirect) {
196    if (nv_is_user == 1) {
197        return !1;
198    }
199    if (redirect != '') {
200        redirect = '&nv_redirect=' + redirect;
201    }
202    $.ajax({
203        type: 'POST',
204        url: nv_base_siteurl + 'index.php?' + nv_lang_variable + '=' + nv_lang_data + '&' + nv_name_variable + '=users&' + nv_fc_variable + '=login' + redirect,
205        cache: !1,
206        data: '&nv_ajax=1',
207        dataType: "html"
208    }).done(function(a) {
209        modalShow('', a, 'recaptchareset')
210    });
211    return !1
212}
213
214function modalShow(a, b, callback) {
215    "" != a && 'undefined' != typeof a && $("#sitemodal .modal-content").prepend('<div class="modal-header"><h2 class="modal-title">' + a + '</h2></div>');
216    $("#sitemodal").find(".modal-title").html(a);
217    $("#sitemodal").find(".modal-body").html(b);
218    var scrollTop = false;
219    if (typeof callback != "undefined") {
220        if (callback == "recaptchareset") {
221            scrollTop = $(window).scrollTop();
222            $('#sitemodal').on('show.bs.modal', function() {
223                if ($('[data-toggle=recaptcha]', this).length) {
224                    reCaptcha2Recreate(this);
225                    "undefined" != typeof grecaptcha ? reCaptcha2OnLoad() : reCaptcha2ApiLoad()
226                } else if ($("[data-recaptcha3]", this).length) {
227                    "undefined" != typeof grecaptcha ? reCaptcha3OnLoad() : reCaptcha3ApiLoad()
228                }
229            });
230        }
231    }
232    if (scrollTop) {
233        $("html,body").animate({
234            scrollTop: 0
235        }, 200, function() {
236            $("#sitemodal").modal({
237                backdrop: "static"
238            });
239        });
240        $('#sitemodal').on('hide.bs.modal', function() {
241            $("html,body").animate({
242                scrollTop: scrollTop
243            }, 200);
244        });
245    } else {
246        $("#sitemodal").modal({
247            backdrop: "static"
248        });
249    }
250    $('#sitemodal').on('hidden.bs.modal', function() {
251        $("#sitemodal .modal-content").find(".modal-header").remove();
252    });
253}
254
255function modalShowByObj(a, callback) {
256    var b = $(a).attr("title"),
257        c = $(a).html();
258    modalShow(b, c) }
259
260function initializeMap() {
261    var ele = 'company-map';
262    var map, marker, ca, cf, a, f, z;
263    ca = parseFloat($('#' + ele).data('clat'));
264    cf = parseFloat($('#' + ele).data('clng'));
265    a = parseFloat($('#' + ele).data('lat'));
266    f = parseFloat($('#' + ele).data('lng'));
267    z = parseInt($('#' + ele).data('zoom'));
268    map = new google.maps.Map(document.getElementById(ele), { zoom: z, center: { lat: ca, lng: cf } });
269    marker = new google.maps.Marker({ map: map, position: new google.maps.LatLng(a, f), draggable: false, animation: google.maps.Animation.DROP }); }
270$(function() {
271    winResize();
272    fix_banner_center();
273    $('a[href="#"], a[href=""]').attr("href", "javascript:void(0);");
274    $("#totop,#bttop,.bttop").click(function() { $("html,body").animate({ scrollTop: 0 }, 800);
275        return !1 });
276    $(".headerSearch button").on("click", function() {
277        if ("n" == $(this).attr("data-click")) return !1;
278        $(this).attr("data-click", "n");
279        var a = $(".headerSearch input"),
280            c = a.attr("maxlength"),
281            b = strip_tags(a.val()),
282            d = $(this).attr("data-minlength");
283        a.parent().removeClass("has-error"); "" == b || b.length < d || b.length > c ? (a.parent().addClass("has-error"), a.val(b).focus(), $(this).attr("data-click", "y")) : window.location.href = $(this).attr("data-url") + rawurlencode(b);
284        return !1 });
285    $(".headerSearch input").on("keypress", function(a) { 13 != a.which || a.shiftKey || (a.preventDefault(), $(".headerSearch button").trigger("click")) });
286    nv_is_user && (myTimerPage = setTimeout(function() { timeoutsessrun() }, nv_check_pass_mstime));
287    $("form.confirm-reload").change(function() { $(window).bind("beforeunload", function() {
288            return nv_msgbeforeunload }) });
289    $(".form-tooltip").tooltip({ selector: "[data-toggle=tooltip]", container: "body" });
290    $("[data-rel='tooltip'][data-content!='']").removeAttr("title").tooltip({ container: "body", html: !0, title: function() {
291            return ("" == $(this).data("img") ? "" : '<img class="img-thumbnail pull-left" src="' + $(this).data("img") + '" width="90" />') + $(this).data("content") } });
292    $(".nv_change_site_lang").change(function() { document.location = $(this).val() });
293    $("#menu-site-default a").hover(function() { $(this).attr("rel", $(this).attr("title"));
294        $(this).removeAttr("title") }, function() { $(this).attr("title", $(this).attr("rel"));
295        $(this).removeAttr("rel") });
296    $("[data-toggle=collapse]").click(function(a) { tipHide();
297        ftipHide();
298        $(".header-nav").is(".hidden-ss-block") ? setTimeout(function() { $(".header-nav").removeClass("hidden-ss-block") }, 500) : $(".header-nav").addClass("hidden-ss-block") });
299    $(document).on("keydown", function(a) { 27 === a.keyCode && (tip_active && tip_autoclose && tipHide(), ftip_active && ftip_autoclose && ftipHide()) });
300    $(document).on("click", function() { tip_active && tip_autoclose && tipHide();
301        ftip_active && ftip_autoclose && ftipHide() });
302    $("#tip, #ftip").on("click", function(a) { a.stopPropagation() });
303    $("[data-toggle=tip], [data-toggle=ftip]").click(function() {
304        var a = $(this).attr("data-target"),
305            d = $(a).html(),
306            b = $(this).attr("data-toggle"),
307            c = "tip" == b ? $("#tip").attr("data-content") : $("#ftip").attr("data-content");
308        var callback = $(this).data("callback");
309        a != c ? ("" != c && $('[data-target="' + c + '"]').attr("data-click", "y"), "tip" == b ? ($("#t
309ip .bg").html(d), tipShow(this, a, callback)) : ($("#ftip .bg").html(d), ftipShow(this, a, callback))) : "n" == $(this).attr("data-click") ? "tip" == b ? tipHide() : ftipHide() : "tip" == b ? tipShow(this, a, callback) : ftipShow(this, a, callback);
310        return !1
311    });
312    if ($('#company-address').length) { $('#company-map-modal').on('shown.bs.modal', function() {
313            if (!$('#googleMapAPI').length) {
314                var script = document.createElement('script');
315                script.type = 'text/javascript';
316                script.id = 'googleMapAPI';
317                script.src = 'https://maps.googleapis.com/maps/api/js?' + ($(this).data('apikey') != '' ? 'key=' + $(this).data('apikey') + '&' : '') + 'callback=initializeMap';
318                document.body.appendChild(script); } else { initializeMap(); } }) };
319    $("textarea").on("input propertychange", function() {
320        var a = $(this).prop("maxLength");
321        if (!a || "number" != typeof a) {
322            var a = $(this).attr("maxlength"),
323                b = $(this).val();
324            b.length > a && $(this).val(b.substr(0, a)) } });
325    $("[data-dismiss=alert]").on("click", function(a) { $(this).is(".close") && $(this).parent().remove() });
326    $("#openidBt").on("click", function() { openID_result();
327        return !1 });
328    $("[data-location]").on("click", function() { locationReplace($(this).data("location")) })
329});
330$(document).on({ 'show.bs.modal': function() {
331        var zIndex = 1040 + (10 * $('.modal:visible').length);
332        $(this).css('z-index', zIndex);
333        setTimeout(function() { $('.modal-backdrop').not('.modal-stack').css('z-index', zIndex - 1).addClass('modal-stack'); }, 0); }, 'hidden.bs.modal': function() {
334        if ($('.modal:visible').length > 0) { setTimeout(function() { $(document.body).addClass('modal-open'); }, 0); } } }, '.modal');
335$(window).on("resize", function() { winResize();
336    fix_banner_center();
337    if (150 < cRangeX || 150 < cRangeY) tipHide(), ftipHide() });
338$(window).on('load', function() {
339    (0 < $(".fb-share-button").length || 0 < $(".fb-like").length) && (1 > $("#fb-root").length && $("body").append('<div id="fb-root"></div>'), function(a, b, c) {
340        var d = a.getElementsByTagName(b)[0];
341        var fb_app_id = ($('[property="fb:app_id"]').length > 0) ? '&appId=' + $('[property="fb:app_id"]').attr("content") : '';
342        var fb_locale = ($('[property="og:locale"]').length > 0) ? $('[property="og:locale"]').attr("content") : ((nv_lang_data == "vi") ? 'vi_VN' : 'en_US');
343        a.getElementById(c) || (a = a.createElement(b), a.id = c, a.src = "//connect.facebook.net/" + fb_locale + "/all.js#xfbml=1" + fb_app_id, d.parentNode.insertBefore(a, d)); }(document, "script", "facebook-jssdk"));
344    0 < $(".g-plusone").length && (window.___gcfg = { lang: nv_lang_data }, function() {
345        var a = document.createElement("script");
346        a.type = "text/javascript";
347        a.async = !0;
348        a.src = "//apis.google.com/js/plusone.js";
349        var b = document.getElementsByTagName("script")[0];
350        b.parentNode.insertBefore(a, b); }());
351    0 < $(".twitter-share-button").length && function() {
352        var a = document.createElement("script");
353        a.type = "text/javascript";
354        a.src = "//platform.twitter.com/widgets.js";
355        var b = document.getElementsByTagName("script")[0];
356        b.parentNode.insertBefore(a, b); }(); });
357
358
359// Hide Cookie Notice Popup
360function cookie_notice_hide() {
361    nv_setCookie(nv_cookie_prefix + '_cn', '1', 365);
362    $(".cookie-notice").hide()
363}
364
365function isRecaptchaCheck() {
366    if (nv_recaptcha_sitekey == '') return 0;
367    return (nv_recaptcha_ver == 2 || nv_recaptcha_ver == 3) ? nv_recaptcha_ver : 0
368}
369
370function reCaptcha2Recreate(obj) {
371    $('[data-toggle=recaptcha]', $(obj)).each(function() {
372        var callFunc = $(this).data('callback'),
373            pnum = $(this).data('pnum'),
374            btnselector = $(this).data('btnselector'),
375            size = ($(this).data('size') && $(this).data('size') == 'compact') ? 'compact' : '';
376        var id = "recaptcha" + (new Date().getTime()) + nv_randomPassword(8);
377        if (callFunc) {
378            $(this).replaceWith('<div id="' + id + '" data-toggle="recaptcha" data-callback="' + callFunc + '" data-size="' + size + '"></div>');
379        } else {
380            $(this).replaceWith('<div id="' + id + '" data-toggle="recaptcha" data-pnum="' + pnum + '" data-btnselector="' + btnselector + '" data-size="' + size + '"></div>')
381        }
382    })
383}
384
385var reCaptcha2OnLoad = function() {
386    $('[data-toggle=recaptcha]').each(function() {
387        var id = $(this).attr('id'),
388            callFunc = $(this).data('callback'),
389            size = ($(this).data('size') && $(this).data('size') == 'compact') ? 'compact' : '';
390
391        if (typeof window[callFunc] === 'function') {
392            if (typeof reCapIDs[id] === "undefined") {
393                reCapIDs[id] = grecaptcha.render(id, {
394                    'sitekey': nv_recaptcha_sitekey,
395                    'type': nv_recaptcha_type,
396                    'size': size,
397                    'callback': callFunc
398                })
399            } else {
400                grecaptcha.reset(reCapIDs[id])
401            }
402        } else {
403            var pnum = parseInt($(this).data('pnum')),
404                btnselector = $(this).data('btnselector'),
405                btn = $('#' + id),
406                k = 1;
407
408            for (k; k <= pnum; k++) {
409                btn = btn.parent();
410            }
411            btn = $(btnselector, btn);
412            if (btn.length) {
413                btn.prop('disabled', true);
414            }
415
416            if (typeof reCapIDs[id] === "undefined") {
417                reCapIDs[id] = grecaptcha.render(id, {
418                    'sitekey': nv_recaptcha_sitekey,
419                    'type': nv_recaptcha_type,
420                    'size': size,
421                    'callback': function() {
422                        reCaptcha2Callback(id, false)
423                    },
424                    'expired-callback': function() {
425                        reCaptcha2Callback(id, true)
426                    },
427                    'error-callback': function() {
428                        reCaptcha2Callback(id, true)
429                    }
430                })
431            } else {
432                grecaptcha.reset(reCapIDs[id])
433            }
434        }
435    })
436}
437
438var reCaptcha2Callback = function(id, val) {
439    var btn = $('#' + id),
440        pnum = parseInt(btn.data('pnum')),
441        btnselector = btn.data('btnselector'),
442        k = 1;
443    for (k; k <= pnum; k++) {
444        btn = btn.parent();
445    }
446    btn = $(btnselector, btn);
447    if (btn.length) {
448        btn.prop('disabled', val);
449    }
450}
451
452// reCaptcha v2 load
453var reCaptcha2ApiLoad = function() {
454    if (isRecaptchaCheck() == 2) {
455        var a = document.createElement("script");
456        a.type = "text/javascript";
457        a.src = "//www.google.com/recaptcha/api.js?hl=" + nv_lang_interface + "&onload=reCaptcha2OnLoad&render=explicit";
458        document.getElementsByTagName("head")[0].appendChild(a)
459    }
460}
461
462// reCaptcha v3: reCaptcha3OnLoad
463var reCaptcha3OnLoad = function() {
464    grecaptcha.ready(function() {
465        $("[data-recaptcha3]").length && (clearInterval(gEInterval), grecaptcha.execute(nv_recaptcha_sitekey, {
466            action: "formSubmit"
467        }).then(function(a) {
468            $("[data-recaptcha3]").each(function() {
469                if ($("[name=g-recaptcha-response]", this).length) $("[name=g-recaptcha-response]", this).val(a);
470                else {
471                    var b = $('<input type="hidden" name="g-recaptcha-response" value="' + a + '"/>');
472                    $(this).append(b)
473                }
474            })
475        }), gEInterval = setTimeout(function() {
476            reCaptcha3OnLoad()
477        }, 12E4))
478    })
479}
480
481// reCaptcha v3 API load
482var reCaptcha3ApiLoad = function() {
483    if (isRecaptchaCheck() == 3) {
484        var a = document.createElement("script");
485        a.type = "text/javascript";
486        a.src = "//www.google.com/recaptcha/api.js?render=" + nv_recaptcha_sitekey + "&onload=reCaptcha3OnLoad";
487        document.getElementsByTagName("head")[0].appendChild(a)
488    }
489}
490
491
492
493// Run Captcha
494$(window).on('load', function() {
495    0 < $(".zalo-share-button, .zalo-follow-only-button, .zalo-follow-button, .zalo-chat-widget").length && function() {
496        var a = document.createElement("script");
497        a.type = "text/javascript";
498        a.src = "//sp.zalo.me/plugins/sdk.js";
499        var b = document.getElementsByTagName("script")[0];
500        b.parentNode.insertBefore(a, b);
501    }();
502    if ($('[data-toggle=recaptcha]').length) {
503        reCaptcha2ApiLoad()
504    } else if ($("[data-recaptcha3]").length) {
505        reCaptcha3ApiLoad()
506    }
507});
508
509// Add rel="noopener noreferrer nofollow" to all external links
510$('a[href^="http"]').not('a[href*="' + location.hostname + '"]').not('[rel*=dofollow
510]').attr({
511    //target: "_blank",
512    rel: "noopener noreferrer nofollow"
513});

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.