PageSourceSearch

https://www.darpa.mil/themes/custom/darpa_uswds/assets/dist/js/top_tabs.bundle.js?tlulo3

js darpa.mil collected 2026-09-24 07:03:31 UTC 27,656 bytes, 262 lines download raw bytes

1/******/ (() => { // webpackBootstrap
2/******/ 	"use strict";
3/******/ 	var __webpack_modules__ = ({
4
5/***/ "./assets/js/packages/top_tabs/styles/styles.css":
6/*!*******************************************************!*\
7  !*** ./assets/js/packages/top_tabs/styles/styles.css ***!
8  \*******************************************************/
9/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10
11__webpack_require__.r(__webpack_exports__);
12// extracted by mini-css-extract-plugin
13
14
15/***/ }),
16
vendor: 792 bytes, lines 17-47
17/***/ "./node_modules/react-dom/client.js":
18/*!******************************************!*\
19  !*** ./node_modules/react-dom/client.js ***!
20  \******************************************/
21/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
22
23
24
25var m = __webpack_require__(/*! react-dom */ "react-dom");
26if (false) {} else {
27  var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
28  exports.createRoot = function(c, o) {
29    i.usingClientEntryPoint = true;
30    try {
31      return m.createRoot(c, o);
32    } finally {
33      i.usingClientEntryPoint = false;
34    }
35  };
36  exports.hydrateRoot = function(c, h, o) {
37    i.usingClientEntryPoint = true;
38    try {
39      return m.hydrateRoot(c, h, o);
40    } finally {
41      i.usingClientEntryPoint = false;
42    }
43  };
44}
45
46
47/***/ })
vendor: 4,130 bytes, lines 47-148
47,
48
49/***/ "react":
50/*!************************!*\
51  !*** external "React" ***!
52  \************************/
53/***/ ((module) => {
54
55module.exports = React;
56
57/***/ }),
58
59/***/ "react-dom":
60/*!***************************!*\
61  !*** external "ReactDOM" ***!
62  \***************************/
63/***/ ((module) => {
64
65module.exports = ReactDOM;
66
67/***/ })
68
69/******/ 	});
70/************************************************************************/
71/******/ 	// The module cache
72/******/ 	var __webpack_module_cache__ = {};
73/******/ 	
74/******/ 	// The require function
75/******/ 	function __webpack_require__(moduleId) {
76/******/ 		// Check if module is in cache
77/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
78/******/ 		if (cachedModule !== undefined) {
79/******/ 			return cachedModule.exports;
80/******/ 		}
81/******/ 		// Create a new module (and put it into the cache)
82/******/ 		var module = __webpack_module_cache__[moduleId] = {
83/******/ 			// no module.id needed
84/******/ 			// no module.loaded needed
85/******/ 			exports: {}
86/******/ 		};
87/******/ 	
88/******/ 		// Execute the module function
89/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
90/******/ 	
91/******/ 		// Return the exports of the module
92/******/ 		return module.exports;
93/******/ 	}
94/******/ 	
95/************************************************************************/
96/******/ 	/* webpack/runtime/compat get default export */
97/******/ 	(() => {
98/******/ 		// getDefaultExport function for compatibility with non-harmony modules
99/******/ 		__webpack_require__.n = (module) => {
100/******/ 			var getter = module && module.__esModule ?
101/******/ 				() => (module['default']) :
102/******/ 				() => (module);
103/******/ 			__webpack_require__.d(getter, { a: getter });
104/******/ 			return getter;
105/******/ 		};
106/******/ 	})();
107/******/ 	
108/******/ 	/* webpack/runtime/define property getters */
109/******/ 	(() => {
110/******/ 		// define getter functions for harmony exports
111/******/ 		__webpack_require__.d = (exports, definition) => {
112/******/ 			for(var key in definition) {
113/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
114/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
115/******/ 				}
116/******/ 			}
117/******/ 		};
118/******/ 	})();
119/******/ 	
120/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
121/******/ 	(() => {
122/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
123/******/ 	})();
124/******/ 	
125/******/ 	/* webpack/runtime/make namespace object */
126/******/ 	(() => {
127/******/ 		// define __esModule on exports
128/******/ 		__webpack_require__.r = (exports) => {
129/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
130/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
131/******/ 			}
132/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
133/******/ 		};
134/******/ 	})();
135/******/ 	
136/************************************************************************/
137var __webpack_exports__ = {};
138/*!*************************************************!*\
139  !*** ./assets/js/packages/top_tabs/top_tabs.js ***!
140  \*************************************************/
141__webpack_require__.r(__webpack_exports__);
142/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
143/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
144/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom/client */ "./node_modules/react-dom/client.js");
145/* harmony import */ var _styles_styles_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./styles/styles.css */ "./assets/js/packages/top_tabs/styles/styles.css");
146var _window$drupalSetting;
147function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
148function _nonIterableRest() { throw new TypeError("Invalid attempt to de
148structure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
149function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
150function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
151function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
152function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
153
154
155
156var settings = ((_window$drupalSetting = window.drupalSettings) === null || _window$drupalSetting === void 0 || (_window$drupalSetting = _window$drupalSetting.darpa) === null || _window$drupalSetting === void 0 ? void 0 : _window$drupalSetting.pageData) || {};
157var TopTabs = function TopTabs(_ref) {
158  var data = _ref.data;
159  var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0),
160    _useState2 = _slicedToArray(_useState, 2),
161    activeTab = _useState2[0],
162    setActiveTab = _useState2[1];
163  if (!data || data.length === 0) {
164    return null; // Don't render anything if there's no data
165  }
166  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("ul", {
167    className: "usa-button-group display-flex flex-row flex-justify-center margin-bottom-5",
168    role: "tablist"
169  }, data.map(function (item, i) {
170    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", {
171      className: "usa-button-group__item ".concat(activeTab === i ? "active" : "", " "),
172      role: "presentation",
173      key: i
174    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", {
175      className: "usa-button usa-button--outline width-auto padding-x-0",
176      onClick: function onClick() {
177        return setActiveTab(i);
178      },
179      "data-bs-toggle": "tab",
180      "data-bs-target": "#home-tab-pane",
181      type: "button",
182      role: "tab",
183      "aria-controls": "home-tab-pane",
184      "aria-selected": "true"
185    }, item.title));
186  })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(TabPanel, {
187    item: data[activeTab]
188  }));
189};
190var TabPanel = function TabPanel(_ref2) {
191  var _item$media, _item$media2, _item$media3;
192  var item = _ref2.item;
193  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
194    className: "tab-content top-tabs-content display-flex flex-column tablet:flex-row",
195    "aria-labelledby": "home-tab"
196  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
197    className: "tab-content-left-column flex-1 margin-bottom-2 tablet:margin-bottom-0 tablet:margin-right-2 desktop:margin-right-4 ",
198    dangerouslySetInnerHTML: {
199      __html: item.body
200    }
201  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
202    className: "tab-content-right-column flex-1 tablet:margin-left-2 desktop:margin-left-4"
203  }, (item === null || item === void 0 || (_item$media = item.media) === null || _item$media === void 0 ? void 0 : _item$media.type) === 'remote_video' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(VideoContent, {
204    item: item
205  }), (item === null || item === void 0 || (_item$media2 = item.media) === null || _item$media2 === void 0 ? void 0 : _item$media2.type) === 'image' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ImageContent, {
206    item: item
207  }), (item === null || item === void 0 || (_item$media3 = item.media) === null || _item$media3 === void 0 ? void 0 : _item$media3.type) === 'iframe_embed' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
208    dangerouslySetInnerHTML: {
209      __html: item.media.field_media_iframe
210    }
211  })));
212};
213var ImageContent = function ImageContent(_ref3) {
214  var item = _ref3.item;
215  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("figure", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("img", {
216    className: 'display-block margin-left-auto',
217    src: item.media.src,
218    alt: item.title
219  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("figcaption", {
220    className: 'text-left'
221  }, item.media.caption && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", {
222    dangerouslySetInnerHTML: {
223      __html: item.media.caption
224    }
225  }), item.media.credit && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", {
226    className: 'photo-credit'
227  }, " Source: ", item.media.credit)));
228};
229var VideoContent = function VideoContent(_ref4) {
230  var item = _ref4.item;
231  // Solves issue: Refused to display 'https://www.youtube.com/' in a frame because it set 'X-Frame-Options' to 'sameorigin'.
232  var getYouTubeEmbedUrl = function getYouTubeEmbedUrl(url) {
233    var videoId = new URL(url).searchParams.get('v');
234    return "https://www.youtube.com/embed/".concat(videoId);
235  };
236  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("iframe", {
237    className: 'media-oembed-content',
238    src: getYouTubeEmbedUrl(item.media.field_media_oembed_video),
239    title: item.media.title,
240    width: '100%',
241    height: 'auto',
242    loading: 'lazy',
243    style: {
244      aspectRatio: '16/9',
245      maxHeight: '580px'
246    },
247    frameborder: "0",
248    allow: 'accelerometer; autoplay; clipboard-white; encrypted-media; gyroscope; picture-in-picture; web-share',
249    referrerPolicy: 'strict-origin-when-cross-origin'
250  }));
251};
252document.addEventListener('DOMContentLoaded', function () {
253  var container = document.getElementById('react-top-tabs');
254  if (container) {
255    (0,react_dom_client__WEBPACK_IMPORTED_MODULE_1__.createRoot)(container).render( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(TopTabs, {
256      data: settings.paragraph__top_tab
257    }));
258  }
259});
260/******/ })()
261;
262//# sourceMappingURL=data:application/json;charset=utf-8;base64,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DQUFFO0lBQ2pEQyxXQUFXLEVBQUMsR0FBRztJQUNmQyxLQUFLLEVBQUUscUdBQXNHO0lBQzdHQyxjQUFjLEVBQUU7RUFBa0MsQ0FDekQsQ0FDRCxDQUFDO0FBRVAsQ0FBQztBQUVEQyxRQUFRLENBQUNDLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFLFlBQU07RUFDbEQsSUFBTUMsU0FBUyxHQUFHRixRQUFRLENBQUNHLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQztFQUMzRCxJQUFJRCxTQUFTLEVBQUU7SUFDYmhFLDREQUFVLENBQUNnRSxTQUFTLENBQUMsQ0FBQ0UsTUFBTSxlQUFDdkUsMERBQUEsQ0FBQ1ksT0FBTztNQUFDRSxJQUFJLEVBQUVSLFFBQVEsQ0FBQ2tFO0lBQW1CLENBQUMsQ0FBQyxDQUFDO0VBQzdFO0FBQ0YsQ0FBQyxDQUFDLEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9teS1zdWJ0aGVtZS8uL2Fzc2V0cy9qcy9wYWNrYWdlcy90b3BfdGFicy9zdHlsZXMvc3R5bGVzLmNzcz9kNGI0Iiwid2VicGFjazovL215LXN1YnRoZW1lLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9jbGllbnQuanMiLCJ3ZWJwYWNrOi8vbXktc3VidGhlbWUvZXh0ZXJuYWwgdmFyIFwiUmVhY3RcIiIsIndlYnBhY2s6Ly9teS1zdWJ0aGVtZS9leHRlcm5hbCB2YXIgXCJSZWFjdERPTVwiIiwid2VicGFjazovL215LXN1YnRoZW1lL3dlYn
262BhY2svYm9vdHN0cmFwIiwid2VicGFjazovL215LXN1YnRoZW1lL3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL215LXN1YnRoZW1lL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9teS1zdWJ0aGVtZS93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL215LXN1YnRoZW1lL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vbXktc3VidGhlbWUvLi9hc3NldHMvanMvcGFja2FnZXMvdG9wX3RhYnMvdG9wX3RhYnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQge307IiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgbSA9IHJlcXVpcmUoJ3JlYWN0LWRvbScpO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgZXhwb3J0cy5jcmVhdGVSb290ID0gbS5jcmVhdGVSb290O1xuICBleHBvcnRzLmh5ZHJhdGVSb290ID0gbS5oeWRyYXRlUm9vdDtcbn0gZWxzZSB7XG4gIHZhciBpID0gbS5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRDtcbiAgZXhwb3J0cy5jcmVhdGVSb290ID0gZnVuY3Rpb24oYywgbykge1xuICAgIGkudXNpbmdDbGllbnRFbnRyeVBvaW50ID0gdHJ1ZTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIG0uY3JlYXRlUm9vdChjLCBvKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaS51c2luZ0NsaWVudEVudHJ5UG9pbnQgPSBmYWxzZTtcbiAgICB9XG4gIH07XG4gIGV4cG9ydHMuaHlkcmF0ZVJvb3QgPSBmdW5jdGlvbihjLCBoLCBvKSB7XG4gICAgaS51c2luZ0NsaWVudEVudHJ5UG9pbnQgPSB0cnVlO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbS5oeWRyYXRlUm9vdChjLCBoLCBvKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaS51c2luZ0NsaWVudEVudHJ5UG9pbnQgPSBmYWxzZTtcbiAgICB9XG4gIH07XG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IFJlYWN0OyIsIm1vZHVsZS5leHBvcnRzID0gUmVhY3RET007IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHQvLyBubyBtb2R1bGUuaWQgbmVlZGVkXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYn
262BhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsImltcG9ydCBSZWFjdCwgeyB1c2VSZWYsIHVzZUVmZmVjdCwgdXNlU3RhdGUsIHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlUm9vdCB9IGZyb20gXCJyZWFjdC1kb20vY2xpZW50XCI7XG5pbXBvcnQgJy4vc3R5bGVzL3N0eWxlcy5jc3MnO1xuXG5jb25zdCBzZXR0aW5ncyA9IHdpbmRvdy5kcnVwYWxTZXR0aW5ncz8uZGFycGE/LnBhZ2VEYXRhIHx8IHt9O1xuXG5jb25zdCBUb3BUYWJzID0gKHtkYXRhfSkgPT4ge1xuICBjb25zdCBbYWN0aXZlVGFiLCBzZXRBY3RpdmVUYWJdID0gdXNlU3RhdGUoMCk7XG5cbiAgaWYoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDAgKXtcbiAgICByZXR1cm4gbnVsbDsgLy8gRG9uJ3QgcmVuZGVyIGFueXRoaW5nIGlmIHRoZXJlJ3Mgbm8gZGF0YVxuICB9XG5cbiAgcmV0dXJuICAgKFxuICAgIDw+XG4gICAgICA8dWwgY2xhc3NOYW1lPVwidXNhLWJ1dHRvbi1ncm91cCBkaXNwbGF5LWZsZXggZmxleC1yb3cgZmxleC1qdXN0aWZ5LWNlbnRlciBtYXJnaW4tYm90dG9tLTVcIiByb2xlPVwidGFibGlzdFwiPlxuICAgICAgICB7ZGF0YS5tYXAoKGl0ZW0sIGkpID0+IChcbiAgICAgICAgICA8bGkgY2x
262hc3NOYW1lPXtgdXNhLWJ1dHRvbi1ncm91cF9faXRlbSAke2FjdGl2ZVRhYiA9PT0gaSA/IFwiYWN0aXZlXCIgOiBcIlwifSBgfSByb2xlPVwicHJlc2VudGF0aW9uXCIga2V5PXtpfT5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwidXNhLWJ1dHRvbiB1c2EtYnV0dG9uLS1vdXRsaW5lIHdpZHRoLWF1dG8gcGFkZGluZy14LTBcIiBvbkNsaWNrPXsoKSA9PiBzZXRBY3RpdmVUYWIoaSl9IGRhdGEtYnMtdG9nZ2xlPVwidGFiXCIgZGF0YS1icy10YXJnZXQ9XCIjaG9tZS10YWItcGFuZVwiIHR5cGU9XCJidXR0b25cIiByb2xlPVwidGFiXCIgYXJpYS1jb250cm9scz1cImhvbWUtdGFiLXBhbmVcIiBhcmlhLXNlbGVjdGVkPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICB7aXRlbS50aXRsZX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICkpfVxuICAgICAgPC91bD5cblxuICAgICAgPFRhYlBhbmVsIGl0ZW09e2RhdGFbYWN0aXZlVGFiXX0gLz5cbiAgICA8Lz5cbiAgKVxufVxuXG5jb25zdCBUYWJQYW5lbCA9ICh7aXRlbX0pID0+IChcbiAgPGRpdiBjbGFzc05hbWU9XCJ0YWItY29udGVudCB0b3AtdGFicy1jb250ZW50IGRpc3BsYXktZmxleCBmbGV4LWNvbHVtbiB0YWJsZXQ6ZmxleC1yb3dcIiBhcmlhLWxhYmVsbGVkYnk9XCJob21lLXRhYlwiPlxuICAgIDxkaXYgY2xhc3NOYW1lPVwidGFiLWNvbnRlbnQtbGVmdC1jb2x1bW4gZmxleC0xIG1hcmdpbi1ib3R0b20tMiB0YWJsZXQ6bWFyZ2luLWJvdHRvbS0wIHRhYmxldDptYXJnaW4tcmlnaHQtMiBkZXNrdG9wOm1hcmdpbi1yaWdodC00IFwiIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7IF9faHRtbDogaXRlbS5ib2R5IH19IC8+XG4gICAgPGRpdiBjbGFzc05hbWU9XCJ0YWItY29udGVudC1yaWdodC1jb2x1bW4gZmxleC0xIHRhYmxldDptYXJnaW4tbGVmdC0yIGRlc2t0b3A6bWFyZ2luLWxlZnQtNFwiPlxuICAgICAge2l0ZW0/Lm1lZGlhPy50eXBlID09PSAncmVtb3RlX3ZpZGVvJyAmJiA8VmlkZW9Db250ZW50IGl0ZW09e2l0ZW19IC8+fVxuICAgICAge2l0ZW0/Lm1lZGlhPy50eXBlID09PSAnaW1hZ2UnICYmIDxJbWFnZUNvbnRlbnQgaXRlbT17aXRlbX0gLz59XG4gICAgICB7aXRlbT8ubWVkaWE/LnR5cGUgPT09ICdpZnJhbWVfZW1iZWQnICYmIDxkaXYgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3sgX19odG1sOiBpdGVtLm1lZGlhLmZpZWxkX21lZGlhX2lmcmFtZSB9fSAvPn1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4pO1xuXG5jb25zdCBJbWFnZUNvbnRlbnQgPSAoe2l0ZW19KSA9PiAoXG4gIDxmaWd1cmU+XG4gICAgPGltZyBjbGFzc05hbWU9eydkaXNwbGF5LWJsb2NrIG1hcmdpbi1sZWZ0LWF1dG8nfSBzcmM9e2l0ZW0ubWVkaWEuc3JjfSBhbHQ9e2l0ZW0udGl0bGV9IC8+XG4gICAgPGZpZ2NhcHRpb24gY2xhc3NOYW1lPXsndGV4dC1sZWZ0J30+XG4gICAgICB7aXRlbS5tZWRpYS5jYXB0aW9uICYmIDxzcGFuIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7IF9faHRtbDogaXRlbS5tZWRpYS5jYXB0aW9uIH19Lz59XG4gICAgICB7aXRlbS5tZWRpYS5jcmVkaXQgJiYgPHNwYW4gY2xhc3NOYW1lPXsncGhvdG8tY3JlZGl0J30+IFNvdXJjZToge2l0ZW0ubWVkaWEuY3JlZGl0fTwvc3Bhbj59XG4gICAgPC9maWdjYXB0aW9uPlxuICA8L2ZpZ3VyZT5cbik7XG5cbmNvbnN0IFZpZGVvQ29udGVudCA9ICh7aXRlbX0pID0+IHtcbiAgLy8gU29sdmVzIGlzc3VlOiBSZWZ1c2VkIHRvIGRpc3BsYXkgJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tLycgaW4gYSBmcmFtZSBiZWNhdXNlIGl0IHNldCAnWC1GcmFtZS1PcHRpb25zJyB0byAnc2FtZW9yaWdpbicuXG4gIGNvbnN0IGdldFlvdVR1YmVFbWJlZFVybCA9ICh1cmwpID0+IHtcbiAgICBjb25zdCB2aWRlb0lkID0gbmV3IFVSTCh1cmwpLnNlYXJjaFBhcmFtcy5nZXQoJ3YnKTtcbiAgICByZXR1cm4gYGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyR7dmlkZW9JZH1gO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxpZnJhbWUgY2xhc3NOYW1lPXsnbWVkaWEtb2VtYmVkLWNvbnRlbnQnfSBzcmM9e2dldFlvdVR1YmVFbWJlZFVybChpdGVtLm1lZGlhLmZpZWxkX21lZGlhX29lbWJlZF92aWRlbyl9XG4gICAgICAgICAgICAgIHRpdGxlPXtpdGVtLm1lZGlhLnRpdGxlfSB3aWR0aD17JzEwMCUnfSBoZWlnaHQ9eydhdXRvJ30gbG9hZGluZz17J2xhenknfVxuICAgICAgICAgICAgICBzdHlsZT17e2FzcGVjdFJhdGlvOiAnMTYvOScsIG1heEhlaWdodDogJzU4MHB4J319XG4gICAgICAgICAgICAgIGZyYW1lYm9yZGVyPVwiMFwiXG4gICAgICAgICAgICAgIGFsbG93PXsnYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13aGl0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZTsgd2ViLXNoYXJlJ31cbiAgICAgICAgICAgICAgcmVmZXJyZXJQb2xpY3k9eydzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luJ31cbiAgICAgIC8+XG4gICAgPC8+XG4gIClcbn1cblxuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsICgpID0+IHtcbiAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlYWN0LXRvcC10YWJzJyk7XG4gIGlmIChjb250YWluZXIpIHtcbiAgICBjcmVhdGVSb290KGNvbnRhaW5lcikucmVuZGVyKDxUb3BUYWJzIGRhdGE9e3NldHRpbmdzLnBhcmFncmFwaF9fdG9wX3RhYn0vPik7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbIlJlYWN0IiwidXNlUmVmIiwidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJ1c2VDYWxsYmFjayIsImNyZWF0ZVJvb3QiLCJzZXR0aW5ncyIsIl93aW5kb3ckZHJ1cGFsU2V0dGluZyIsIndpbmRvdyIsImRydXBhbFNldHRpbmdzIiwiZGFycGEiLCJwYWdlRGF0YSIsIlRvcFRhYnMiLCJfcmVmIiwiZGF0YSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImFjdGl2ZVRhYiIsInNldEFjdGl2ZVRhYiIsImxlbmd0aCIsIm
262NyZWF0ZUVsZW1lbnQiLCJGcmFnbWVudCIsImNsYXNzTmFtZSIsInJvbGUiLCJtYXAiLCJpdGVtIiwiaSIsImNvbmNhdCIsImtleSIsIm9uQ2xpY2siLCJ0eXBlIiwidGl0bGUiLCJUYWJQYW5lbCIsIl9yZWYyIiwiX2l0ZW0kbWVkaWEiLCJfaXRlbSRtZWRpYTIiLCJfaXRlbSRtZWRpYTMiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsImJvZHkiLCJtZWRpYSIsIlZpZGVvQ29udGVudCIsIkltYWdlQ29udGVudCIsImZpZWxkX21lZGlhX2lmcmFtZSIsIl9yZWYzIiwic3JjIiwiYWx0IiwiY2FwdGlvbiIsImNyZWRpdCIsIl9yZWY0IiwiZ2V0WW91VHViZUVtYmVkVXJsIiwidXJsIiwidmlkZW9JZCIsIlVSTCIsInNlYXJjaFBhcmFtcyIsImdldCIsImZpZWxkX21lZGlhX29lbWJlZF92aWRlbyIsIndpZHRoIiwiaGVpZ2h0IiwibG9hZGluZyIsInN0eWxlIiwiYXNwZWN0UmF0aW8iLCJtYXhIZWlnaHQiLCJmcmFtZWJvcmRlciIsImFsbG93IiwicmVmZXJyZXJQb2xpY3kiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJjb250YWluZXIiLCJnZXRFbGVtZW50QnlJZCIsInJlbmRlciIsInBhcmFncmFwaF9fdG9wX3RhYiJdLCJzb3VyY2VSb290IjoiIn0=

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.