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.