PageSourceSearch

https://www.toyota.com/etc.clientlibs/maps/clientlibs/clientlib-gl…ook.min.3004d28564cad23484af4514cc103ef0.js

js toyota.com collected 2026-09-24 07:49:25 UTC 16,076 bytes, 143 lines download raw bytes

1import { d as defineCustomElements, S as SERVICE_URL_DEFAULT, g as geti18nServicePath, T, h } from "../clientlibs/clientlib-dependencies/resources/index.BIf-6FI-.js";
2defineCustomElements(window, {
3  resourcesUrl: "/etc.clientlibs/maps/clientlibs/clientlib-dependencies/resources/"
4});
5const FRAGMENT_REGEX = /#(.*)/;
6const MAPS_ACS_FRAGMENT_REGEX = /#maps:(.+)/;
7const MAPS_MODAL_SELECTOR = "a.maps-modal, .maps-modal a, .maps-modal[link]";
8const MAPS_ACS_FRAGMENT_SELECTOR = 'a[href*="#maps:"]';
9const resolveEventTarget = (event, selector) => {
10  let { target } = event;
11  if (!(target instanceof HTMLElement) || !target.matches(selector)) {
12    target = target.closest(selector);
13    if (!(target instanceof HTMLElement)) {
14      return null;
15    }
16  }
17  return target;
18};
19const getMapsUrl = (el) => {
20  if (el instanceof HTMLAnchorElement) {
21    return el.href;
22  }
23  return el.getAttribute("link");
24};
25const loadMapsExperience = async (configId) => {
26  const mapsContentFragmentExperience = `${SERVICE_URL_DEFAULT}${configId}`;
27  try {
28    const experienceResponse = await fetch(mapsContentFragmentExperience);
29    const experienceData = await experienceResponse.json();
30    const i18nDealersServiceUrl = geti18nServicePath(experienceData.i18n);
31    const i18nDealersResponse = await fetch(i18nDealersServiceUrl);
32    const i18nDealersData = await i18nDealersResponse.json();
33    let i18nCollisionCenterData = {};
34    const i18nCollisionCenterPath = experienceData.collisionCenter_i18n;
35    if (i18nCollisionCenterPath) {
36      const i18nCollisionCenterServiceUrl = geti18nServicePath(
37        i18nCollisionCenterPath
38      );
39      const i18nCollisionCenterResponse = await fetch(
40        i18nCollisionCenterServiceUrl
41      );
42      i18nCollisionCenterData = await i18nCollisionCenterResponse.json();
43    }
44    let i18nChargingStationsData = {};
45    const i18nChargingStationsPath = experienceData.chargingStation_i18n;
46    if (i18nChargingStationsPath) {
47      const i18nChargingStationsServiceUrl = geti18nServicePath(
48        i18nChargingStationsPath
49      );
50      const i18nChargingStationsResponse = await fetch(
51        i18nChargingStationsServiceUrl
52      );
53      i18nChargingStationsData = await i18nChargingStationsResponse.json();
54    }
55    const hamburger = document.getElementsByClassName("hamburger active");
56    if (hamburger.length) {
57      hamburger[0].click();
58    }
59    T({
60      experienceData,
61      i18nChargingStations: i18nChargingStationsData,
62      i18nCollisionCenters: i18nCollisionCenterData,
63      i18nDealers: i18nDealersData
64    });
65  } catch (error) {
66    console.error("Maps ~ error, using AEM fallback from maps-ui:", error);
67    T({
68      experienceData: h.i18n,
69      i18nDealers: h.i18n
70    });
71  }
72};
73const attachMapsHook = ({ eventType, target, selector }) => {
74  target.addEventListener(eventType, async (event) => {
75    const el = resolveEventTarget(event, selector);
76    if (!el) {
77      return;
78    }
79    event.preventDefault();
80    event.stopPropagation();
81    const url = getMapsUrl(el);
82    const match = url?.match(FRAGMENT_REGEX);
83    if (!match) {
84      throw new Error("Maps URL does not include a valid config fragment");
85    }
86    globalThis.tcom_v2?.analytics?.fireWithContext?.("aa-link", el);
87    await loadMapsExperience(match[1]);
88  });
89};
90const attachMapsACSFragmentHook = ({ eventType, target }) => {
91  target.addEventListener(eventType, async (event) => {
92    const el = resolveEventTarget(event, MAPS_ACS_FRAGMENT_SELECTOR);
93    if (!el) {
94      return;
95    }
96    event.preventDefault();
97    event.stopPropagation();
98    const match = el.href.match(MAPS_ACS_FRAGMENT_REGEX);
99    if (!match) {
100      throw new Error("Maps URL does not include a valid #maps:fragment");
101    }
102    globalThis.tcom_v2?.analytics?.fireWithContext?.("aa-link", el);
103    await loadMapsExperience(match[1]);
104  });
105};
106const tcomHeader = document.getElementById("tcom-header");
107if (tcomHeader) {
108  attachMapsHook({
109    eventType: "click",
110    target: tcomHeader,
111    selector: MAPS_MODAL_SELECTOR
112  });
113  attachMapsACSFragmentHook({ eventType: "click", target: tcomHeader });
114}
115const tcomBody = document.querySelectorAll("body.page");
116tcomBody.forEach((body) => {
117  attachMapsHook({
118    eventType: "click",
119    selector: MAPS_MODAL_SELECTOR,
120    target: body
121  });
122  attachMapsACSFragmentHook({ eventType: "click", target: body });
123});
124const tcomFooterLinks = document.querySelectorAll(".footer-links");
125tcomFooterLinks.forEach((footerElement) => {
126  attachMapsHook({
127    eventType: "click",
128    target: footerElement,
129    selector: MAPS_MODAL_SELECTOR
130  });
131  attachMapsACSFragmentHook({ eventType: "click", target: footerElement });
132});
133const tcomShoppingBelt = document.querySelectorAll(
134  ".tcom-shopping-tools-panel"
135);
136tcomShoppingBelt.forEach((beltItem) => {
137  attachMapsHook({
138    eventType: "click",
139    target: beltItem,
140    selector: MAPS_MODAL_SELECTOR
141  });
142});
143//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsaG9vay5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21haW4vd2VicGFjay9jb21wb25lbnRzL2dsb2JhbC1ob29rL2pzL2dsb2JhbC1ob29rLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7
143IGRlZmluZUN1c3RvbUVsZW1lbnRzIH0gZnJvbSBcImRwY3MtdGNvbS12aXMvbG9hZGVyXCI7XG5cbmRlZmluZUN1c3RvbUVsZW1lbnRzKHdpbmRvdywge1xuICByZXNvdXJjZXNVcmw6XG4gICAgXCIvZXRjLmNsaWVudGxpYnMvbWFwcy9jbGllbnRsaWJzL2NsaWVudGxpYi1kZXBlbmRlbmNpZXMvcmVzb3VyY2VzL1wiLFxufSk7XG5cbmNvbnN0IEZSQUdNRU5UX1JFR0VYID0gLyMoLiopLztcbmNvbnN0IE1BUFNfQUNTX0ZSQUdNRU5UX1JFR0VYID0gLyNtYXBzOiguKykvO1xuXG5pbXBvcnQgeyBhZW1GYWxsYmFja0NvbmZpZywgbG9hZGVyIH0gZnJvbSBcIm1hcHMtdWlcIjtcblxuaW1wb3J0IHtcbiAgU0VSVklDRV9VUkxfREVGQVVMVCxcbiAgZ2V0aTE4blNlcnZpY2VQYXRoLFxufSBmcm9tIFwiLi4vLi4vLi4vaGVscGVycy9nZXRpMThuU2VydmljZVBhdGhcIjtcblxuY29uc3QgTUFQU19NT0RBTF9TRUxFQ1RPUiA9IFwiYS5tYXBzLW1vZGFsLCAubWFwcy1tb2RhbCBhLCAubWFwcy1tb2RhbFtsaW5rXVwiO1xuY29uc3QgTUFQU19BQ1NfRlJBR01FTlRfU0VMRUNUT1IgPSAnYVtocmVmKj1cIiNtYXBzOlwiXSc7XG5cbmNvbnN0IHJlc29sdmVFdmVudFRhcmdldCA9IChldmVudCwgc2VsZWN0b3IpID0+IHtcbiAgbGV0IHsgdGFyZ2V0IH0gPSBldmVudDtcblxuICBpZiAoISh0YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkgfHwgIXRhcmdldC5tYXRjaGVzKHNlbGVjdG9yKSkge1xuICAgIHRhcmdldCA9IHRhcmdldC5jbG9zZXN0KHNlbGVjdG9yKTtcblxuICAgIGlmICghKHRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn07XG5cbmNvbnN0IGdldE1hcHNVcmwgPSAoZWwpID0+IHtcbiAgaWYgKGVsIGluc3RhbmNlb2YgSFRNTEFuY2hvckVsZW1lbnQpIHtcbiAgICByZXR1cm4gZWwuaHJlZjtcbiAgfVxuXG4gIHJldHVybiBlbC5nZXRBdHRyaWJ1dGUoXCJsaW5rXCIpO1xufTtcblxuY29uc3QgbG9hZE1hcHNFeHBlcmllbmNlID0gYXN5bmMgKGNvbmZpZ0lkKSA9PiB7XG4gIGNvbnN0IG1hcHNDb250ZW50RnJhZ21lbnRFeHBlcmllbmNlID0gYCR7U0VSVklDRV9VUkxfREVGQVVMVH0ke2NvbmZpZ0lkfWA7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBleHBlcmllbmNlUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChtYXBzQ29udGVudEZyYWdtZW50RXhwZXJpZW5jZSk7XG4gICAgY29uc3QgZXhwZXJpZW5jZURhdGEgPSBhd2FpdCBleHBlcmllbmNlUmVzcG9uc2UuanNvbigpO1xuXG4gICAgY29uc3QgaTE4bkRlYWxlcnNTZXJ2aWNlVXJsID0gZ2V0aTE4blNlcnZpY2VQYXRoKGV4cGVyaWVuY2VEYXRhLmkxOG4pO1xuICAgIGNvbnN0IGkxOG5EZWFsZXJzUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChpMThuRGVhbGVyc1NlcnZpY2VVcmwpO1xuICAgIGNvbnN0IGkxOG5EZWFsZXJzRGF0YSA9IGF3YWl0IGkxOG5EZWFsZXJzUmVzcG9uc2UuanNvbigpO1xuXG4gICAgbGV0IGkxOG5Db2xsaXNpb25DZW50ZXJEYXRhID0ge307XG4gICAgY29uc3QgaTE4bkNvbGxpc2lvbkNlbnRlclBhdGggPSBleHBlcmllbmNlRGF0YS5jb2xsaXNpb25DZW50ZXJfaTE4bjtcblxuICAgIGlmIChpMThuQ29sbGlzaW9uQ2VudGVyUGF0aCkge1xuICAgICAgY29uc3QgaTE4bkNvbGxpc2lvbkNlbnRlclNlcnZpY2VVcmwgPSBnZXRpMThuU2VydmljZVBhdGgoXG4gICAgICAgIGkxOG5Db2xsaXNpb25DZW50ZXJQYXRoLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGkxOG5Db2xsaXNpb25DZW50ZXJSZXNwb25zZSA9IGF3YWl0IGZldGNoKFxuICAgICAgICBpMThuQ29sbGlzaW9uQ2VudGVyU2VydmljZVVybCxcbiAgICAgICk7XG5cbiAgICAgIGkxOG5Db2xsaXNpb25DZW50ZXJEYXRhID0gYXdhaXQgaTE4bkNvbGxpc2lvbkNlbnRlclJlc3BvbnNlLmpzb24oKTtcbiAgICB9XG5cbiAgICBsZXQgaTE4bkNoYXJnaW5nU3RhdGlvbnNEYXRhID0ge307XG4gICAgY29uc3QgaTE4bkNoYXJnaW5nU3RhdGlvbnNQYXRoID0gZXhwZXJpZW5jZURhdGEuY2hhcmdpbmdTdGF0aW9uX2kxOG47XG5cbiAgICBpZiAoaTE4bkNoYXJnaW5nU3RhdGlvbnNQYXRoKSB7XG4gICAgICBjb25zdCBpMThuQ2hhcmdpbmdTdGF0aW9uc1NlcnZpY2VVcmwgPSBnZXRpMThuU2VydmljZVBhdGgoXG4gICAgICAgIGkxOG5DaGFyZ2luZ1N0YXRpb25zUGF0aCxcbiAgICAgICk7XG4gICAgICBjb25zdCBpMThuQ2hhcmdpbmdTdGF0aW9uc1Jlc3BvbnNlID0gYXdhaXQgZmV0Y2goXG4gICAgICAgIGkxOG5DaGFyZ2luZ1N0YXRpb25zU2VydmljZVVybCxcbiAgICAgICk7XG5cbiAgICAgIGkxOG5DaGFyZ2luZ1N0YXRpb25zRGF0YSA9IGF3YWl0IGkxOG5DaGFyZ2luZ1N0YXRpb25zUmVzcG9uc2UuanNvbigpO1xuICAgIH1cblxuICAgIGNvbnN0IGhhbWJ1cmdlciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJoYW1idXJnZXIgYWN0aXZlXCIpO1xuXG4gICAgaWYgKGhhbWJ1cmdlci5sZW5ndGgpIHtcbiAgICAgIGhhbWJ1cmdlclswXS5jbGljaygpO1xuICAgIH1cblxuICAgIGxvYWRlcih7XG4gICAgICBleHBlcmllbmNlRGF0YTogZXhwZXJpZW5jZURhdGEsXG4gICAgICBpMThuQ2hhcmdpbmdTdGF0aW9uczogaTE4bkNoYXJnaW5nU3RhdGlvbnNEYXRhLFxuICAgICAgaTE4bkNvbGxpc2lvbkNlbnRlcnM6IGkxOG5Db2xsaXNpb25DZW50ZXJEYXRhLFxuICAgICAgaTE4bkRlYWxlcnM6IGkxOG5EZWFsZXJzRGF0YSxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKFwiTWFwcyB+IGVycm9yLCB1c2luZyBBRU0gZmFsbGJhY2sgZnJvbSBtYXBzLXVpOlwiLCBlcnJvcik7XG4gICAgbG9hZGVyKHtcbiAgICAgIGV4cGVyaWVuY2VEYXRhOiBhZW1GYWxsYmFja0NvbmZpZy5pMThuLFxuICAgICAgaTE4bkRlYWxlcnM6IGFlbUZhbGxiYWNrQ29uZmlnLmkxOG4sXG4gICAgfSk7XG4gIH1cbn07XG5cbmNvbnN0IGF0dGFjaE1hcHNIb29rID0gKHsgZXZlbnRUeXBlLCB0YXJnZXQsIHNlbGVjdG9yIH0pID0+IHtcbiAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBhc3luYyAoZXZlbnQpID0+IHtcbiAgICBjb25zdCBlbCA9IHJlc29sdmVFdmVudFRhcmdldChldmVudCwgc2VsZWN0b3IpO1xuXG4gICAgaWYgKCFlbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbn
143REZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBjb25zdCB1cmwgPSBnZXRNYXBzVXJsKGVsKTtcblxuICAgIGNvbnN0IG1hdGNoID0gdXJsPy5tYXRjaChGUkFHTUVOVF9SRUdFWCk7XG5cbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNYXBzIFVSTCBkb2VzIG5vdCBpbmNsdWRlIGEgdmFsaWQgY29uZmlnIGZyYWdtZW50XCIpO1xuICAgIH1cblxuICAgIGdsb2JhbFRoaXMudGNvbV92Mj8uYW5hbHl0aWNzPy5maXJlV2l0aENvbnRleHQ/LihcImFhLWxpbmtcIiwgZWwpO1xuXG4gICAgYXdhaXQgbG9hZE1hcHNFeHBlcmllbmNlKG1hdGNoWzFdKTtcbiAgfSk7XG59O1xuXG5jb25zdCBhdHRhY2hNYXBzQUNTRnJhZ21lbnRIb29rID0gKHsgZXZlbnRUeXBlLCB0YXJnZXQgfSkgPT4ge1xuICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGFzeW5jIChldmVudCkgPT4ge1xuICAgIGNvbnN0IGVsID0gcmVzb2x2ZUV2ZW50VGFyZ2V0KGV2ZW50LCBNQVBTX0FDU19GUkFHTUVOVF9TRUxFQ1RPUik7XG5cbiAgICBpZiAoIWVsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGNvbnN0IG1hdGNoID0gZWwuaHJlZi5tYXRjaChNQVBTX0FDU19GUkFHTUVOVF9SRUdFWCk7XG5cbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNYXBzIFVSTCBkb2VzIG5vdCBpbmNsdWRlIGEgdmFsaWQgI21hcHM6ZnJhZ21lbnRcIik7XG4gICAgfVxuXG4gICAgZ2xvYmFsVGhpcy50Y29tX3YyPy5hbmFseXRpY3M/LmZpcmVXaXRoQ29udGV4dD8uKFwiYWEtbGlua1wiLCBlbCk7XG5cbiAgICBhd2FpdCBsb2FkTWFwc0V4cGVyaWVuY2UobWF0Y2hbMV0pO1xuICB9KTtcbn07XG5cbmNvbnN0IHRjb21IZWFkZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInRjb20taGVhZGVyXCIpO1xuaWYgKHRjb21IZWFkZXIpIHtcbiAgYXR0YWNoTWFwc0hvb2soe1xuICAgIGV2ZW50VHlwZTogXCJjbGlja1wiLFxuICAgIHRhcmdldDogdGNvbUhlYWRlcixcbiAgICBzZWxlY3RvcjogTUFQU19NT0RBTF9TRUxFQ1RPUixcbiAgfSk7XG4gIGF0dGFjaE1hcHNBQ1NGcmFnbWVudEhvb2soeyBldmVudFR5cGU6IFwiY2xpY2tcIiwgdGFyZ2V0OiB0Y29tSGVhZGVyIH0pO1xufVxuXG5jb25zdCB0Y29tQm9keSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJib2R5LnBhZ2VcIik7XG50Y29tQm9keS5mb3JFYWNoKChib2R5KSA9PiB7XG4gIGF0dGFjaE1hcHNIb29rKHtcbiAgICBldmVudFR5cGU6IFwiY2xpY2tcIixcbiAgICBzZWxlY3RvcjogTUFQU19NT0RBTF9TRUxFQ1RPUixcbiAgICB0YXJnZXQ6IGJvZHksXG4gIH0pO1xuICBhdHRhY2hNYXBzQUNTRnJhZ21lbnRIb29rKHsgZXZlbnRUeXBlOiBcImNsaWNrXCIsIHRhcmdldDogYm9keSB9KTtcbn0pO1xuXG5jb25zdCB0Y29tRm9vdGVyTGlua3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmZvb3Rlci1saW5rc1wiKTtcbnRjb21Gb290ZXJMaW5rcy5mb3JFYWNoKChmb290ZXJFbGVtZW50KSA9PiB7XG4gIGF0dGFjaE1hcHNIb29rKHtcbiAgICBldmVudFR5cGU6IFwiY2xpY2tcIixcbiAgICB0YXJnZXQ6IGZvb3RlckVsZW1lbnQsXG4gICAgc2VsZWN0b3I6IE1BUFNfTU9EQUxfU0VMRUNUT1IsXG4gIH0pO1xuICBhdHRhY2hNYXBzQUNTRnJhZ21lbnRIb29rKHsgZXZlbnRUeXBlOiBcImNsaWNrXCIsIHRhcmdldDogZm9vdGVyRWxlbWVudCB9KTtcbn0pO1xuXG5jb25zdCB0Y29tU2hvcHBpbmdCZWx0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcbiAgXCIudGNvbS1zaG9wcGluZy10b29scy1wYW5lbFwiLFxuKTtcblxudGNvbVNob3BwaW5nQmVsdC5mb3JFYWNoKChiZWx0SXRlbSkgPT4ge1xuICBhdHRhY2hNYXBzSG9vayh7XG4gICAgZXZlbnRUeXBlOiBcImNsaWNrXCIsXG4gICAgdGFyZ2V0OiBiZWx0SXRlbSxcbiAgICBzZWxlY3RvcjogTUFQU19NT0RBTF9TRUxFQ1RPUixcbiAgfSk7XG59KTtcbiJdLCJuYW1lcyI6WyJsb2FkZXIiLCJhZW1GYWxsYmFja0NvbmZpZyJdLCJtYXBwaW5ncyI6IjtBQUVBLHFCQUFxQixRQUFRO0FBQUEsRUFDM0IsY0FDRTtBQUNKLENBQUM7QUFFRCxNQUFNLGlCQUFpQjtBQUN2QixNQUFNLDBCQUEwQjtBQVNoQyxNQUFNLHNCQUFzQjtBQUM1QixNQUFNLDZCQUE2QjtBQUVuQyxNQUFNLHFCQUFxQixDQUFDLE9BQU8sYUFBYTtBQUM5QyxNQUFJLEVBQUUsT0FBTSxJQUFLO0FBRWpCLE1BQUksRUFBRSxrQkFBa0IsZ0JBQWdCLENBQUMsT0FBTyxRQUFRLFFBQVEsR0FBRztBQUNqRSxhQUFTLE9BQU8sUUFBUSxRQUFRO0FBRWhDLFFBQUksRUFBRSxrQkFBa0IsY0FBYztBQUNwQyxhQUFPO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFFQSxTQUFPO0FBQ1Q7QUFFQSxNQUFNLGFBQWEsQ0FBQyxPQUFPO0FBQ3pCLE1BQUksY0FBYyxtQkFBbUI7QUFDbkMsV0FBTyxHQUFHO0FBQUEsRUFDWjtBQUVBLFNBQU8sR0FBRyxhQUFhLE1BQU07QUFDL0I7QUFFQSxNQUFNLHFCQUFxQixPQUFPLGFBQWE7QUFDN0MsUUFBTSxnQ0FBZ0MsR0FBRyxtQkFBbUIsR0FBRyxRQUFRO0FBRXZFLE1BQUk7QUFDRixVQUFNLHFCQUFxQixNQUFNLE1BQU0sNkJBQTZCO0FBQ3BFLFVBQU0saUJBQWlCLE1BQU0sbUJBQW1CLEtBQUk7QUFFcEQsVUFBT
143Sx3QkFBd0IsbUJBQW1CLGVBQWUsSUFBSTtBQUNwRSxVQUFNLHNCQUFzQixNQUFNLE1BQU0scUJBQXFCO0FBQzdELFVBQU0sa0JBQWtCLE1BQU0sb0JBQW9CLEtBQUk7QUFFdEQsUUFBSSwwQkFBMEIsQ0FBQTtBQUM5QixVQUFNLDBCQUEwQixlQUFlO0FBRS9DLFFBQUkseUJBQXlCO0FBQzNCLFlBQU0sZ0NBQWdDO0FBQUEsUUFDcEM7QUFBQSxNQUNSO0FBQ00sWUFBTSw4QkFBOEIsTUFBTTtBQUFBLFFBQ3hDO0FBQUEsTUFDUjtBQUVNLGdDQUEwQixNQUFNLDRCQUE0QixLQUFJO0FBQUEsSUFDbEU7QUFFQSxRQUFJLDJCQUEyQixDQUFBO0FBQy9CLFVBQU0sMkJBQTJCLGVBQWU7QUFFaEQsUUFBSSwwQkFBMEI7QUFDNUIsWUFBTSxpQ0FBaUM7QUFBQSxRQUNyQztBQUFBLE1BQ1I7QUFDTSxZQUFNLCtCQUErQixNQUFNO0FBQUEsUUFDekM7QUFBQSxNQUNSO0FBRU0saUNBQTJCLE1BQU0sNkJBQTZCLEtBQUk7QUFBQSxJQUNwRTtBQUVBLFVBQU0sWUFBWSxTQUFTLHVCQUF1QixrQkFBa0I7QUFFcEUsUUFBSSxVQUFVLFFBQVE7QUFDcEIsZ0JBQVUsQ0FBQyxFQUFFLE1BQUs7QUFBQSxJQUNwQjtBQUVBQSxNQUFPO0FBQUEsTUFDTDtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsTUFDdEIsc0JBQXNCO0FBQUEsTUFDdEIsYUFBYTtBQUFBLElBQ25CLENBQUs7QUFBQSxFQUNILFNBQVMsT0FBTztBQUNkLFlBQVEsTUFBTSxrREFBa0QsS0FBSztBQUNyRUEsTUFBTztBQUFBLE1BQ0wsZ0JBQWdCQyxFQUFrQjtBQUFBLE1BQ2xDLGFBQWFBLEVBQWtCO0FBQUEsSUFDckMsQ0FBSztBQUFBLEVBQ0g7QUFDRjtBQUVBLE1BQU0saUJBQWlCLENBQUMsRUFBRSxXQUFXLFFBQVEsU0FBUSxNQUFPO0FBQzFELFNBQU8saUJBQWlCLFdBQVcsT0FBTyxVQUFVO0FBQ2xELFVBQU0sS0FBSyxtQkFBbUIsT0FBTyxRQUFRO0FBRTdDLFFBQUksQ0FBQyxJQUFJO0FBQ1A7QUFBQSxJQUNGO0FBRUEsVUFBTSxlQUFjO0FBQ3BCLFVBQU0sZ0JBQWU7QUFFckIsVUFBTSxNQUFNLFdBQVcsRUFBRTtBQUV6QixVQUFNLFFBQVEsS0FBSyxNQUFNLGNBQWM7QUFFdkMsUUFBSSxDQUFDLE9BQU87QUFDVixZQUFNLElBQUksTUFBTSxtREFBbUQ7QUFBQSxJQUNyRTtBQUVBLGVBQVcsU0FBUyxXQUFXLGtCQUFrQixXQUFXLEVBQUU7QUFFOUQsVUFBTSxtQkFBbUIsTUFBTSxDQUFDLENBQUM7QUFBQSxFQUNuQyxDQUFDO0FBQ0g7QUFFQSxNQUFNLDRCQUE0QixDQUFDLEVBQUUsV0FBVyxhQUFhO0FBQzNELFNBQU8saUJBQWlCLFdBQVcsT0FBTyxVQUFVO0FBQ2xELFVBQU0sS0FBSyxtQkFBbUIsT0FBTywwQkFBMEI7QUFFL0QsUUFBSSxDQUFDLElBQUk7QUFDUDtBQUFBLElBQ0Y7QUFFQSxVQUFNLGVBQWM7QUFDcEIsVUFBTSxnQkFBZTtBQUVyQixVQUFNLFFBQVEsR0FBRyxLQUFLLE1BQU0sdUJBQXVCO0FBRW5ELFFBQUksQ0FBQyxPQUFPO0FBQ1YsWUFBTSxJQUFJLE1BQU0sa0RBQWtEO0FBQUEsSUFDcEU7QUFFQSxlQUFXLFNBQVMsV0FBVyxrQkFBa0IsV0FBVyxFQUFFO0FBRTlELFVBQU0sbUJBQW1CLE1BQU0sQ0FBQyxDQUFDO0FBQUEsRUFDbkMsQ0FBQztBQUNIO0FBRUEsTUFBTSxhQUFhLFNBQVMsZUFBZSxhQUFhO0FBQ3hELElBQUksWUFBWTtBQUNkLGlCQUFlO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxRQUFRO0FBQUEsSUFDUixVQUFVO0FBQUEsRUFDZCxDQUFHO0FBQ0QsNEJBQTBCLEVBQUUsV0FBVyxTQUFTLFFBQVEsV0FBVSxDQUFFO0FBQ3RFO0FBRUEsTUFBTSxXQUFXLFNBQVMsaUJBQWlCLFdBQVc7QUFDdEQsU0FBUyxRQUFRLENBQUMsU0FBUztBQUN6QixpQkFBZTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsUUFBUTtBQUFBLEVBQ1osQ0FBRztBQUNELDRCQUEwQixFQUFFLFdBQVcsU0FBUyxRQUFRLEtBQUksQ0FBRTtBQUNoRSxDQUFDO0FBRUQsTUFBTSxrQkFBa0IsU0FBUyxpQkFBaUIsZUFBZTtBQUNqRSxnQkFBZ0IsUUFBUSxDQUFDLGtCQUFrQjtBQUN6QyxpQkFBZTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsVUFBVTtBQUFBLEVBQ2QsQ0FBRztBQUNELDRCQUEwQixFQUFFLFdBQVcsU0FBUyxRQUFRLGNBQWEsQ0FBRTtBQUN6RSxDQUFDO0FBRUQsTUFBTSxtQkFBbUIsU0FBUztBQUFBLEVBQ2hDO0FBQ0Y7QUFFQSxpQkFBaUIsUUFBUSxDQUFDLGFBQWE7QUFDckMsaUJBQWU7QUFBQSxJQUNiLFdBQVc7QUFBQSxJQUNYLFFBQVE7QUFBQSxJQUNSLFVBQVU7QUFBQSxFQUNkLENBQUc7QUFDSCxDQUFDOyJ9

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.