PageSourceSearch

https://hinoki-clinic.com/wp-content/themes/theme/js/add0.js?ver=82d61a5af58b71b7d702b88b5625a58f

js hinoki-clinic.com collected 2026-10-05 04:38:46 UTC 24,117 bytes, 667 lines download raw bytes

1$(function(){
2  //R02
3  
4  //トップに戻る変更
5  
6    $('.pagetop').each(function(){
7      var txt = $(this).html();
8      $(this).html(txt.replace(/\▲ ページのトップに戻る/g,'<i class="material-icons">expand_less</i><span class="spf_word">TOP</span>'));
9    });
10  
11      var topBtn = $('.pagetop');    
12      topBtn.hide();
13      //スクロールが100に達したらボタン表示
14      $(window).scroll(function () {
15          if ($(this).scrollTop() > 100) {
16              topBtn.fadeIn();
17          } else {
18              topBtn.fadeOut();
19          }
20      });
21      //スクロールしてトップ
22      topBtn.click(function () {
23          $('body,html').animate({
24              scrollTop: 0
25          }, 500);
26          return false;
27      });
28  
29  // gNavの固定
30      var _window = $(window),
31          _header = $('#gNav'),
32          headerBottom;
33  
34      _window.on('scroll',function(){
35          headerBottom = $('#header').height();
36          if(_window.scrollTop() > headerBottom &&  _header.hasClass('is-fixed') == false){
37               _header.css({"top": '-100px'});
38              _header.addClass('is-fixed');
39              _header.animate({"top": 0},600);
40          }
41          else if(_window.scrollTop() < headerBottom &&  _header.hasClass('is-fixed') == true){
42              _header.removeClass('is-fixed');
43          }
44      });
45  
46      _window.trigger('scroll');
47  
48  
49  //お知らせの日時変更
50  
51    $('.info_date').each(function(){
52      var txt = $(this).html();
53      $(this).html(txt.replace(/\[/g,'').replace(/]/g,'').replace(/更新/g,'').replace(/ /g,''));
54    });
55  
56    $('.info_date').each(function(){
57      var txt = $(this).html();
58      $(this).html(txt.replace(/ /g,''));
59      var change = $(this).html(txt.replace(/ /g,''));
60      var chart = change.html().split(".");
61      change.html(chart[0] + '年' + chart[1] + '月' + chart[2] + '日');
62    });
63  
64  //診療時間にアイコン搭載
65      $('.header_week').each(function(){
66          var txt = $(this).html();
67          $(this).html(
68              txt.replace(/診療時間はこちら/g,'<i class="material-icons">chevron_right</i>  診療時間'));
69      });
70  });
71  //TELにアイコン搭載
72  //2019.06.03 change start
73  // $(function(){
74  //     $('.header_tel').each(function(){
75  //         var txt = $(this).html();
76  //         $(this).html(
77  //             txt.replace(/TEL/g,'<i class="material-icons">local_phone</i>'));
78  //     });
79  // });
80  
81  //2022.03.25 change start
82  //$(function(){
83  //    $('.header_tel').each(function(){
84  //        var txt = $(this).html();
85  //        var url = location.href;
86  //        var rep_atag = "";
87  //        if ( url.includes('?') ) {
88  //          params = url.split('?');
89  //          sparams = params[1].split("&");
90  //          var paramArray = [];
91  //          for ( i = 0; i < sparams.length; i++ ) {
92  //              sval = sparams[i].split("=");
93  //              paramArray.push(sval[0]);
94  //              paramArray[sval[0]] = sval[1];
95  //          }
96  //          if ( paramArray["mb_preview"] == "true") {
97  //              var rep_atag = "<a href=\"tel: #clinictel\" onclick=\"ga('send', 'event', 'click’, 'tel');ga('newTracker.send', 'event', 'click', 'tel');\">";
98  //          }
99  //        }
100  //
101  //        $(this).html(
102  //          txt.replace(/TEL/g,'<i class="material-icons">local_phone</i>' + rep_atag)
103  //        );
104  //    });
105  //});
106  $(function(){
107      $('.header_tel').each(function(){
108          var txt = $(this).html();
109          var url = location.href;
110          var rep_atag = "";
111          var pre_mb = "";
112          if ( url.includes('?') ) {
113            params = url.split('?');
114            sparams = params[1].split("&");
115            var paramArray = [];
116            for ( i = 0; i < sparams.length; i++ ) {
117                sval = sparams[i].split("=");
118                paramArray.push(sval[0]);
119                paramArray[sval[0]] = sval[1];
120            }
121            if ( paramArray["mb_preview"] == "true") {
122                rep_atag = "<a href=\"tel: #clinictel\" onclick=\"ga('send', 'event', 'click’, 'tel');ga('newTracker.send', 'event', 'click', 'tel');\">";
123                pre_mb = "mobile";
124            }
125          }
126  
127          const ua = navigator.userAgent;
128          if (ua.indexOf('iPhone') > -1 || (ua.indexOf('Android') > -1 && ua.indexOf('Mobile') > -1) || pre_mb == "mobile") {
129              // スマートフォン
130              var telnum = document.getElementById('telnum').value;
131            $(this).html(
132              "<a href=\"tel:" + telnum + "\" onclick=\"ga('send', 'event', 'click’, 'tel');ga('newTracker.send', 'event', 'click', 'el');\"><p class=\"tel\"><i class=\"material-icons\">local_phone</i></p></a>"
133            );
134          } else {
135            $(this).html(
136              txt.replace(/TEL/g,  '<i class="material-icons">local_phone</i>' + rep_atag)
137            );
138          }
139      });
140  });
141  //2022.03.25 change end
142  //2019.06.03 change end
143  
144  
145  //
146  $(function () {
147    $('#images').insertBefore('#contents');
148  });
149  //地図にアイコン搭載
150  $(function(){
151      $('.mapSec_tomappage').each(function(){
152          var txt = $(this).html();
153          $(this).html(
154              txt.replace(/大きい地図はこちら/g,'<i class="material-icons">location_on</i> 大きい地図はこちら'));
155      });
156  });
157  //スマホにメニューのアイコンを記載
158    $(function(){
159      $('#mobile a').each(function(){
160          var txt = $(this).html();
161          $(this).html(
162              txt.replace(/<img .*?src="(.*?)".*?>/g,'<i class="material-icons">menu</i>'));
163      });
164  });
165  
166  //$(function(){
167  //$('#footer').wrapAll('<div class="footercontents" />');
168  //});
169  
170  $(function(){
171  $('table').wrap('<div class="scroll-table" />');
172  });
173  
174  $(function(){
175  //以下まとめてfunction
176  
177    var headerWeek = $('.header_week p');
178    if (headerWeek.length != 0) {
179      headerWeek.html(headerWeek.html().replace(/\<br\>/gi,''));
180      headerWeek.find('i').appendTo(headerWeek.find('a'));
181    }
182    //var infoData = $('.infoSec .info_date');
183    //if (infoData.length != 0) {
184    //  infoData.html(infoData.html().replace(/\[|\]|\s/gi,''));
185    //}
186    $('#searchsubmit').attr('src','https://wevery.jp/wp-content/uploads/2019/05/icon_find.png');
187    //$('.flexslider .slides').append($('.caption-wrap'));
188    for(var i = 0; i < $('.flexslider .slides .ms-image').length; i++){
189      //alert($('.caption-wrap').eq(i).html());
190      $('.flexslider .slides .ms-image').append($('.caption-wrap').eq(i).val());
191    }
192    $('#footer').append($('#footer .address'));
193  
194  
195  
196    $('#header .header_tel .tel a').text('TEL');
197    //$('.banner.smart_phonebottom').before($('.banner.smart_phoneto
197p'));
198    $('#menu-main_menu').before('<div class="menu-side_top"></div>');
199  
200    //$('.menu-side_top #page_search').attr('id','page_search2');
201    //$('.menu-side_top #s').attr('id','s2');
202    //$('.menu-side_top #searchsubmit').attr('id','searchsubmit2');
203  
204    // 2020.08.06 change start
205    // safariだと上手くハンバーガメニューが動作しないため、クリックイベントの指定方法を変更
206    //  $('#mobile').on('click', function() {
207    //   if ($(this).hasClass('side-open')) {
208    //     $(this).delay(300).queue(function() {
209    //       $(this).removeClass('side-open').dequeue();
210    //       $('#header .header_tel').removeClass('side-open').dequeue();
211    //     });
212    //   } else {
213    //     $(this).addClass('side-open');
214    //     $('#header .header_tel').addClass('side-open');
215    //   }
216    // });
217    $(document).on('click', '#mobile', function() {
218      if ($(this).hasClass('side-open')) {
219        $(this).delay(300).queue(function() {
220          $(this).removeClass('side-open').dequeue();
221          $('#header .header_tel').removeClass('side-open').dequeue();
222        });
223      } else {
224        $(this).addClass('side-open');
225        $('#header .header_tel').addClass('side-open');
226        $('body').css({'overflow':'hidden','height':'100vh','position':''});
227      }
228    });
229    // 2020.07.31 change end
230  
231    $('#sidr .close').on('click', function() {
232      if ($('#mobile').hasClass('side-open')) {
233        $('#mobile').delay(300).queue(function() {
234          $('#mobile').removeClass('side-open').dequeue();
235          $('#header .header_tel').removeClass('side-open').dequeue();
236          $('body').css({'overflow':'','height':''});
237        });
238      }
239    });
240  
241    $('#sidr .menu_box h2').on('click', function() {
242      $(this).toggleClass('active').next().slideToggle(400);
243    });
244    $('#sidr ul#menu-main_menu > li').each(function(index, element){
245      if ($(this).find('.sub-menu').length > 0) {
246        $(this).children('a').after('<div class="accordion-elm">▼</div>');
247      }
248    });
249    $('#sidr ul#menu-main_menu > li .accordion-elm').on('click', function() {
250      $(this).toggleClass('active').next().slideToggle(400);
251    });
252  
253  //まとめてfunctionここまで
254  });
255  
256  //2022.03.08 del start function.phpに移動
257  //2019.09.03 add start
258  //--------------------------------------------
259  // main article内に「<p><a href="hogehoge.com"></p>」の形式があったら
260  // <a>に自動的に class="css_btn_class" を追加
261  //--------------------------------------------
262  //$(function(){
263  //  //正規表現を指定
264  //  //2021.03.01 change 1~2文字でもclassを指定できるように変更
265  //  //var match_str = new RegExp('^<a (.*)href=(.*)>([^<].+[^>])</a>$', 'gm');
266  //  var match_str = new RegExp('^<a (.*)href=(.*)>([^<]*[^>])</a>$', 'gm');
267  //  var match_str_except = new RegExp('</a>[^.*]<a(.*)', 'gm');
268  //  //pタグの中から、正規表現で一致する対象を検索
269  //  $('#main article p').each(function(index, element){
270  //    if($(element).html().match(match_str)){
271  //      //<a>が連続している場合に、間に他の文章がなければボタンにする
272  //      if(!$(element).html().match(match_str_except)){
273  //        //「class=css_btn_class」を付与
274  //        $(element).children('a').addClass('css_btn_class');
275  //      }
276  //    }
277  //  });
278  //});
279  //2019.09.03 add end
280  //2022.03.08 del end
281  
282  //detailsをIEに対応させる
283  window.onload = function(){
284  void (function (root, factory) {
285    if (typeof define === 'function' && define.amd) define(factory)
286    else if (typeof exports === 'object') module.exports = factory()
287    else factory()
288  }(this, function () {
289    var DETAILS = 'details'
290    var SUMMARY = 'summary'
291  
292    var supported = checkSupport()
293    if (supported) return
294  
295    // Add a classname
296    document.documentElement.className += ' no-details'
297  
298    window.addEventListener('click', clickHandler)
299  
300    injectStyle('details-polyfill-style',
301      'html.no-details ' + DETAILS + ':not([open]) > :not(' + SUMMARY + ') { display: none; }\n' +
302      'html.no-details ' + DETAILS + ' > ' + SUMMARY + ':before { content: "\u25b6"; display: inline-block; font-size: .8em; width: 1.5em; }\n' +
303      'html.no-details ' + DETAILS + '[open] > ' + SUMMARY + ':before { content: "\u25bc"; }')
304  
305    /*
306     * Click handler for `<summary>` tags
307     */
308  
309    function clickHandler (e) {
310      if (e.target.nodeName.toLowerCase() === 'summary') {
311        var details = e.target.parentNode
312        if (!details) return
313  
314        if (details.getAttribute('open')) {
315          details.open = false
316          details.removeAttribute('open')
317        } else {
318          details.open = true
319          details.setAttribute('open', 'open')
320        }
321      }
322    }
323  
324    /*
325     * Checks for support for `<details>`
326     */
327  
328    function checkSupport () {
329      var el = document.createElement(DETAILS)
330      if (!('open' in el)) return false
331  
332      el.innerHTML = '<' + SUMMARY + '>a</' + SUMMARY + '>b'
333      document.body.appendChild(el)
334  
335      var diff = el.offsetHeight
336      el.open = true
337      var result = (diff != el.offsetHeight)
338  
339      document.body.removeChild(el)
340      return result
341    }
342  
343    /*
344     * Injects styles (idempotent)
345     */
346  
347    function injectStyle (id, style) {
348      if (document.getElementById(id)) return
349  
350      var el = document.createElement('style')
351      el.id = id
352      el.innerHTML = style
353  
354      document.getElementsByTagName('head')[0].appendChild(el)
355    }
356  }))}; // eslint-disable-line semi
357  
358  $(function(){
359    $('.scroll-table').each(function(){
360          var txt = $(this).html();
361          $(this).html(
362              txt.replace(/<table>/g,'<div class="js-scrollable"><table>').replace(/<\/table>/g,'<\/table><\/div>'));
363      });
364  
365  new ScrollHint('.js-scrollable', {
366    i18n: {
367      scrollable: ''
368    }
369  });
370  });
371  
372  //横スクロール用**/
373  
374  (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ScrollHint = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
375  
376  
377  'use strict';
378  
379  function assign(target, firstSource) {
380    if (target === undefined || target === null) {
381      throw new TypeError('Cannot convert first argument to object');
382    }
383  
384    var to = Object(target);
385    for (var i = 1; i < arguments.length; i++) {
386      var nextSource = arguments[i];
387      if (nextSource === undefined || nextSource === null) {
388        continue;
389      }
390  
391      var keysArray = Object.keys(Object(nextSource));
392      for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {
393        var nextKey = keysArray[nextIndex];
394        var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
395        if (desc !== undefined && desc.enumerable) {
396          to[nextKey] = nextSource[nextKey];
397        }
398      }
399    }
400    return to;
401  }
402  
403  function polyfill() {
404    if (!Object.assign) {
405      Object.defineProperty(Object, 'assign', {
406        enumerable: false,
407        configurable: true,
408        writable: true,
409        value: assign
410      });
411    }
412  }
413  
414  module.exports = {
415    assign: assign,
416    polyfill: polyfill
417  };
418  
419  },{}],2:[function(require,module,exports){
420  'use strict';
421  
422  Object.defineProperty(exports, "__esModule", {
423    value: true
424  });
425  
426  var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
427  
428  var _es6ObjectAssign = require('es6-object-assign');
429  
430  var _util = require('./util');
431  
432  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
433  
434  var defaults = {
435    suggestClass: 'is-active',
436    scrollableClass: 'is-scrollable',
437    scrollableRightClass: 'is-right-scrollable',
438    scrollableLeftClass: 'is-left-scrollable',
439    scrollHintClass: 'scroll-hint',
440    scrollHintIconClass: 'scroll-hint-icon',
441    scrollHintIconAppendClass: '', // 'scroll-hint-icon-white'
442    scrollHintIconWrapClass: 'scroll-hint-icon-wrap',
443    scrollHintText: 'scroll-hint-text',
444    scrollHintBorderWidth: 10,
445    remainingTime: -1,
446    enableOverflowScrolling: true,
447    applyToParents: false,
448    suggestiveShadow: false,
449    i18n: {
450      scrollable: 'scrollable'
451    }
452  };
453  
454  var ScrollHint = function () {
455    function ScrollHint(ele, option) {
456      var _this = this;
457  
458      _classCallCheck(this, ScrollHint);
459  
460      this.opt = (0, _es6ObjectAssign.assign)({}, defaults, option);
461      this.items = [];
462      var elements = typeof ele === 'string' ? document.querySelectorAll(ele) : ele;
463      var applyToParents = this.opt.applyToParents;
464  
465      [].forEach.call(elements, function (element) {
466        if (applyToParents) {
467          element = element.parentElement;
468        }
469        element.style.position = 'relative';
470        element.style.overflow = 'auto';
471        if (_this.opt.enableOverflowScrolling) {
472          if ('overflowScrolling' in element.style) {
473            element.style.overflowScrolling = 'touch';
474          } else if ('webkitOverflowScrolling' in element.style) {
475            element.style.webkitOverflowScrolling = 'touch';
476          }
477        }
478        var item = {
479          element: element,
480          scrolledIn: false,
481          interacted: false
482        };
483        element.addEventListener('scroll', function () {
484          item.interacted = true;
485          _this.updateItem(item);
486        });
487        (0, _util.addClass)(element, _this.opt.scrollHintClass);
488        (0, _util.append)(element, '<div class="' + _this.opt.scrollHintIconWrapClass + '" data-target="scrollable-icon">\n        <span class="' + _this.opt.scrollHintIconClass + (_this.opt.scrollHintIconAppendClass ? ' ' + _this.opt.scrollHintIconAppendClass : '') + '">\n          <div class="' + _this.opt.scrollHintText + '">' + _this.opt.i18n.scrollable + '</div>\n        </span>\n      </div>');
489        _this.items.push(item);
490      });
491      window.addEventListener('scroll', function () {
492        _this.updateItems();
493      });
494      window.addEventListener('resize', function () {
495        _this.updateItems();
496      });
497      this.updateItems();
498    }
499  
500    _createClass(ScrollHint, [{
501      key: 'isScrollable',
502      value: function isScrollable(item) {
503        var element = item.element;
504  
505        return element.offsetHeight === element.scrollHeight && element.clientWidth < element.scrollWidth;
506      }
507    }, {
508      key: 'checkScrollableDir',
509      value: function checkScrollableDir(item) {
510        var _opt = this.opt,
511            scrollHintBorderWidth = _opt.scrollHintBorderWidth,
512            scrollableRightClass = _opt.scrollableRightClass,
513            scrollableLeftClass = _opt.scrollableLeftClass;
514        var element = item.element;
515  
516        var child = element.children[0];
517        var width = child.scrollWidth;
518        var parentWidth = element.offsetWidth;
519        var scrollLeft = element.scrollLeft;
520        if (parentWidth + scrollLeft < width - scrollHintBorderWidth) {
521          (0, _util.addClass)(element, scrollableRightClass);
522        } else {
523          (0, _util.removeClass)(element, scrollableRightClass);
524        }
525        if (parentWidth < width && scrollLeft > scrollHintBorderWidth) {
526          (0, _util.addClass)(element, scrollableLeftClass);
527        } else {
528          (0, _util.removeClass)(element, scrollableLeftClass);
529        }
530      }
531    }, {
532      key: 'needSuggest',
533      value: function needSuggest(item) {
534        var scrolledIn = item.scrolledIn,
535            interacted = item.interacted;
536  
537        return !interacted && scrolledIn && this.isScrollable(item);
538      }
539    }, {
540      key: 'updateItems',
541      value: function updateItems() {
542        var _this2 = this;
543  
544        [].forEach.call(this.items, function (item) {
545          _this2.updateItem(item);
546        });
547      }
548    }, {
549      key: 'updateStatus',
550      value: function updateStatus(item) {
551        var _this3 = this;
552  
553        var element = item.element,
554            scrolledIn = item.scrolledIn;
555  
556        if (scrolledIn) {
557          return;
558        }
559        if ((0, _util.getOffset)(element).top + element.offsetHeight / 2 < (0, _util.getScrollTop)() + window.innerHeight) {
560          item.scrolledIn = true;
561          if (this.opt.remainingTime !== -1) {
562            setTimeout(function () {
563              item.interacted = true;
564              _this3.updateItem(item);
565            }, this.opt.remainingTime);
566          }
567        }
568      }
569    }, {
570      key: 'updateItem',
571      value: function updateItem(item) {
572        var opt = this.opt;
573        var element = item.element;
574  
575        var target = element.querySelector('[data-target="scrollable-icon"]');
576        this.updateStatus(item);
577        if (this.isScrollable(item)) {
578          (0, _util.addClass)(element, opt.scrollableClass);
579        } else {
580          (0, _util.removeClass)(element, opt.scrollableClass);
581        }
582        if (this.needSuggest(item)) {
583          (0, _util.addClass)(target, opt.suggestClass);
584        } else {
585          (0, _util.removeClass)(target, opt.suggestClass);
586        }
587        if (opt.suggestiveShadow) {
588          this.checkScrollableDir(item);
589        }
590      }
591    }]);
592  
593    return ScrollHint;
594  }();
595  
596  exports.default = ScrollHint;
597  module.exports = exports['default'];
598  
599  },{"./util":3,"es6-object-assign":1}],3:[function(require,module,exports){
600  'use strict';
601  
602  Object.defineProperty(exports, "__esModule", {
603    value: true
604  });
605  var append = exports.append = function append(element, string) {
606    var div = document.createElement('div');
607    div.innerHTML = string;
608    while (div.children.length > 0) {
609      element.appendChild(div.children[0]);
610    }
611  };
612  
613  var addClass = exports.addClass = function addClass(element, className) {
614    if (element.classList) {
615      element.classList.add(className);
616    } else {
617      element.className += ' ' + className;
618    }
619  };
620  
621  var removeClass = exports.removeClass = function removeClass(element, className) {
622    if (element.classList) {
623      element.classList.remove(className);
624    } else {
625      element.className = element.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');
626    }
627  };
628  
629  var getScrollTop = exports.getScrollTop = function getScrollTop() {
630    return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
631  };
632  
633  var getScrollLeft = exports.getScrollLeft = function getScrollLeft() {
634    return window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;
635  };
636  
637  var getOffset = exports.getOffset = function getOffset(el) {
638    var rect = el.getBoundingClientRect();
639    return {
640      top: rect.top + getScrollTop(),
641      left: rect.left + getScrollLeft()
642    };
643  };
644  
645  },{}]},{},[2])(2)
646  });
647  
648  
649//お知らせの時間表示修正
650$(function(){
651  $('.info_date,.newsdate,.columndate').each(function() {
652    var str = $(this).html();
653    var res = str.split('日')[0]+'日';
654    $(this).html(res.replace('[', ''));
655  });
656});
657
658//地図のリンクボタンのテキスト修正
659$(function(){
660  $('.simplemap + p').each(function(){
661      var txt = $(this).html();
662      $(this).html(
663          txt.replace(/クリックしてGoogleMapを表示/g,'大きな地図はこちら'));
664  });
665});
666  
667  

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.