1(self["webpackChunkhushcore"] = self["webpackChunkhushcore"] || []).push([["super-scripts"],{ 2
3/***/ "./resources/js/super-scripts.js": 4/*!***************************************!*\ 5 !*** ./resources/js/super-scripts.js ***! 6 \***************************************/ 7/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 8 9__webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ "./node_modules/core-js/modules/web.dom-collections.for-each.js"); 10 11__webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js"); 12 13window.addEventListener('DOMContentLoaded', function (event) { 14 console.log('hello'); 15 var mmt = document.querySelector('#mmt'); 16 17 if (mmt) { 18 mmt.addEventListener('click', function (e) { 19 document.body.classList.toggle('smm'); 20 console.log('show mobile menu'); 21 }); 22 } 23 24 var docSpecDownloads = document.querySelectorAll(".docs-and-specs ul li a"); 25 console.log('docSpecDownloads: ', docSpecDownloads); 26 docSpecDownloads.forEach(function (v, i) { 27 console.log('wafu: ', v + ', ' + i + ', ' + this); 28 var re = /(?:\.([^.]+))?$/; 29 var ext = re.exec(v)[1]; // "txt" 30 31 docSpecDownloads[i].classList.add(ext); 32 }); 33 var pdots = document.querySelectorAll(".pdot"); 34 35 if (pdots) { 36 pdots.forEach(function (v, i) { 37 pdots[i].addEventListener('click', function (e) { 38 var children = pdots[i].parentNode.querySelectorAll('.pdot'); 39 children.forEach(function (vv, ii) { 40 children[ii].classList.remove('active'); 41 }); 42 pdots[i].classList.add('active'); 43 }); 44 }); 45 } 46 47 /* 48 49 Reveal.initialize({ 50 controls: false, 51 progress: false, 52 loop: true, 53 center: true, 54 hash: true, 55 transition: 'fade', 56 // none/fade/slide/convex/concave/zoom 57 disableLayout: false, 58 // The "normal" size of the presentation, aspect ratio will 59 // be preserved when the presentation is scaled to fit different 60 // resolutions. Can be specified using percentage units. 61 width: 960, 62 height: 700, 63 // Factor of the display size that should remain empty around 64 // the content 65 margin: 0.04, 66 // Bounds for smallest/largest possible scale to apply to content 67 minScale: 0.2, 68 maxScale: 2.0 69 }); 70 71 72 const slideShowDots = document.querySelectorAll(".slideShowDots li"); 73 for (let i = 0; i < slideShowDots.length; i++) { 74 slideShowDots[i].addEventListener('click', e => { 75 changeSlide(e); 76 }); 77 } 78 79 const slideShowArrows = document.querySelectorAll(".slideShowArrow"); 80 for (let i = 0; i < slideShowArrows.length; i++) { 81 slideShowArrows[i].addEventListener('click', e => { 82 changeSlide(e); 83 }); 84 } 85 86 const changeSlide = (e) => { 87 const container = e.target.parentNode.parentNode, 88 slides = container.querySelectorAll(".slideShowSlides li"), 89 dots = container.querySelectorAll(".slideShowDots li"); 90 let x = 0, 91 s = 0; 92 93 // dots 94 if(e.target.tagName === 'LI'){ s = [].indexOf.call(e.target.parentNode.children, e.target); } 95 96 // both 97 for (let a = 0; a < dots.length; a++) { 98 if(e.target.tagName === 'DIV' && slides[a].classList.contains('active')){ x = a; } 99 dots[a].classList.remove('active'); 100 slides[a].classList.remove('active'); 101 } 102 103 // arrows 104 if(e.target.tagName === 'DIV'){ 105 if(e.target.classList.contains('next')){ if(x + 1 >= slides.length) { s = 0; } else { s = x + 1; } } 106 else { if(x - 1 < 0) { s = slides.length - 1; } else { s = x - 1; } } 107 } 108 dots[s].classList.add('active'); 109 slides[s].classList.add('active'); 110 } 111 112 */ 113}); 114 115/***/ }), 116
vendor: 415 bytes, lines 117-131
117/***/ "./node_modules/core-js/internals/a-function.js": 118/*!******************************************************!*\ 119 !*** ./node_modules/core-js/internals/a-function.js ***! 120 \******************************************************/ 121/***/ (function(module) { 122 123module.exports = function (it) { 124 if (typeof it != 'function') { 125 throw TypeError(String(it) + ' is not a function'); 126 } return it; 127}; 128 129 130/***/ }), 131
vendor: 563 bytes, lines 132-148
132/***/ "./node_modules/core-js/internals/an-object.js": 133/*!*****************************************************!*\ 134 !*** ./node_modules/core-js/internals/an-object.js ***! 135 \*****************************************************/ 136/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 137 138var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 139 140module.exports = function (it) { 141 if (!isObject(it)) { 142 throw TypeError(String(it) + ' is not an object'); 143 } return it; 144}; 145 146 147/***/ }), 148
vendor: 1,052 bytes, lines 149-171
149/***/ "./node_modules/core-js/internals/array-for-each.js": 150/*!**********************************************************!*\ 151 !*** ./node_modules/core-js/internals/array-for-each.js ***! 152 \**********************************************************/ 153/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 154 155"use strict"; 156 157var $forEach = (__webpack_require__(/*! ../internals/array-iteration */ "./node_modules/core-js/internals/array-iteration.js").forEach); 158var arrayMethodIsStrict = __webpack_require__(/*! ../internals/array-method-is-strict */ "./node_modules/core-js/internals/array-method-is-strict.js"); 159 160var STRICT_METHOD = arrayMethodIsStrict('forEach'); 161 162// `Array.prototype.forEach` method implementation 163// https://tc39.es/ecma262/#sec-array.prototype.foreach 164module.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) { 165 return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); 166// eslint-disable-next-line es/no-array-prototype-foreach -- safe 167} : [].forEach; 168 169 170/***/ }), 171
vendor: 1,844 bytes, lines 172-213
172/***/ "./node_modules/core-js/internals/array-includes.js": 173/*!**********************************************************!*\ 174 !*** ./node_modules/core-js/internals/array-includes.js ***! 175 \**********************************************************/ 176/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 177 178var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js"); 179var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js"); 180var toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ "./node_modules/core-js/internals/to-absolute-index.js"); 181 182// `Array.prototype.{ indexOf, includes }` methods implementation 183var createMethod = function (IS_INCLUDES) { 184 return function ($this, el, fromIndex) { 185 var O = toIndexedObject($this); 186 var length = toLength(O.length); 187 var index = toAbsoluteIndex(fromIndex, length); 188 var value; 189 // Array#includes uses SameValueZero equality algorithm 190 // eslint-disable-next-line no-self-compare -- NaN check 191 if (IS_INCLUDES && el != el) while (length > index) { 192 value = O[index++]; 193 // eslint-disable-next-line no-self-compare -- NaN check 194 if (value != value) return true; 195 // Array#indexOf ignores holes, Array#includes - not 196 } else for (;length > index; index++) { 197 if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; 198 } return !IS_INCLUDES && -1; 199 }; 200}; 201 202module.exports = { 203 // `Array.prototype.includes` method 204 // https://tc39.es/ecma262/#sec-array.prototype.includes 205 includes: createMethod(true), 206 // `Array.prototype.indexOf` method 207 // https://tc39.es/ecma262/#sec-array.prototype.indexof 208 indexOf: createMethod(false) 209}; 210 211 212/***/ }), 213
vendor: 3,489 bytes, lines 214-295
214/***/ "./node_modules/core-js/internals/array-iteration.js": 215/*!***********************************************************!*\ 216 !*** ./node_modules/core-js/internals/array-iteration.js ***! 217 \***********************************************************/ 218/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 219 220var bind = __webpack_require__(/*! ../internals/function-bind-context */ "./node_modules/core-js/internals/function-bind-context.js"); 221var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "./node_modules/core-js/internals/indexed-object.js"); 222var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js"); 223var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js"); 224var arraySpeciesCreate = __webpack_require__(/*! ../internals/array-species-create */ "./node_modules/core-js/internals/array-species-create.js"); 225 226var push = [].push; 227 228// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation 229var createMethod = function (TYPE) { 230 var IS_MAP = TYPE == 1; 231 var IS_FILTER = TYPE == 2; 232 var IS_SOME = TYPE == 3; 233 var IS_EVERY = TYPE == 4; 234 var IS_FIND_INDEX = TYPE == 6; 235 var IS_FILTER_OUT = TYPE == 7; 236 var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; 237 return function ($this, callbackfn, that, specificCreate) { 238 var O = toObject($this); 239 var self = IndexedObject(O); 240 var boundFunction = bind(callbackfn, that, 3); 241 var length = toLength(self.length); 242 var index = 0; 243 var create = specificCreate || arraySpeciesCreate; 244 var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined; 245 var value, result; 246 for (;length > index; index++) if (NO_HOLES || index in self) { 247 value = self[index]; 248 result = boundFunction(value, index, O); 249 if (TYPE) { 250 if (IS_MAP) target[index] = result; // map 251 else if (result) switch (TYPE) { 252 case 3: return true; // some 253 case 5: return value; // find 254 case 6: return index; // findIndex 255 case 2: push.call(target, value); // filter 256 } else switch (TYPE) { 257 case 4: return false; // every 258 case 7: push.call(target, value); // filterOut 259 } 260 } 261 } 262 return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; 263 }; 264}; 265 266module.exports = { 267 // `Array.prototype.forEach` method 268 // https://tc39.es/ecma262/#sec-array.prototype.foreach 269 forEach: createMethod(0), 270 // `Array.prototype.map` method 271 // https://tc39.es/ecma262/#sec-array.prototype.map 272 map: createMethod(1), 273 // `Array.prototype.filter` method 274 // https://tc39.es/ecma262/#sec-array.prototype.filter 275 filter: createMethod(2), 276 // `Array.prototype.some` method 277 // https://tc39.es/ecma262/#sec-array.prototype.some 278 some: createMethod(3), 279 // `Array.prototype.every` method 280 // https://tc39.es/ecma262/#sec-array.prototype.every 281 every: createMethod(4), 282 // `Array.prototype.find` method 283 // https://tc39.es/ecma262/#sec-array.prototype.find 284 find: createMethod(5), 285 // `Array.prototype.findIndex` method 286 // https://tc39.es/ecma262/#sec-array.prototype.findIndex 287 findIndex: createMethod(6), 288 // `Array.prototype.filterOut` method 289 // https://github.com/tc39/proposal-array-filtering 290 filterOut: createMethod(7) 291}; 292 293 294/***/ }), 295
vendor: 777 bytes, lines 296-316
296/***/ "./node_modules/core-js/internals/array-method-is-strict.js": 297/*!******************************************************************!*\ 298 !*** ./node_modules/core-js/internals/array-method-is-strict.js ***! 299 \******************************************************************/ 300/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 301 302"use strict"; 303 304var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 305 306module.exports = function (METHOD_NAME, argument) { 307 var method = [][METHOD_NAME]; 308 return !!method && fails(function () { 309 // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing 310 method.call(null, argument || function () { throw 1; }, 1); 311 }); 312}; 313 314 315/***/ }), 316
vendor: 1,278 bytes, lines 317-346
317/***/ "./node_modules/core-js/internals/array-species-create.js": 318/*!****************************************************************!*\ 319 !*** ./node_modules/core-js/internals/array-species-create.js ***! 320 \****************************************************************/ 321/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 322 323var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 324var isArray = __webpack_require__(/*! ../internals/is-array */ "./node_modules/core-js/internals/is-array.js"); 325var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 326 327var SPECIES = wellKnownSymbol('species'); 328 329// `ArraySpeciesCreate` abstract operation 330// https://tc39.es/ecma262/#sec-arrayspeciescreate 331module.exports = function (originalArray, length) { 332 var C; 333 if (isArray(originalArray)) { 334 C = originalArray.constructor; 335 // cross-realm fallback 336 if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; 337 else if (isObject(C)) { 338 C = C[SPECIES]; 339 if (C === null) C = undefined; 340 } 341 } return new (C === undefined ? Array : C)(length === 0 ? 0 : length); 342}; 343 344 345/***/ }), 346
vendor: 385 bytes, lines 347-361
347/***/ "./node_modules/core-js/internals/classof-raw.js": 348/*!*******************************************************!*\ 349 !*** ./node_modules/core-js/internals/classof-raw.js ***! 350 \*******************************************************/ 351/***/ (function(module) { 352 353var toString = {}.toString; 354 355module.exports = function (it) { 356 return toString.call(it).slice(8, -1); 357}; 358 359 360/***/ }), 361
vendor: 1,297 bytes, lines 362-385
362/***/ "./node_modules/core-js/internals/copy-constructor-properties.js": 363/*!***********************************************************************!*\ 364 !*** ./node_modules/core-js/internals/copy-constructor-properties.js ***! 365 \***********************************************************************/ 366/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 367 368var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); 369var ownKeys = __webpack_require__(/*! ../internals/own-keys */ "./node_modules/core-js/internals/own-keys.js"); 370var getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js"); 371var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js"); 372 373module.exports = function (target, source) { 374 var keys = ownKeys(source); 375 var defineProperty = definePropertyModule.f; 376 var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; 377 for (var i = 0; i < keys.length; i++) { 378 var key = keys[i]; 379 if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); 380 } 381}; 382 383 384/***/ }), 385
vendor: 1,067 bytes, lines 386-405
386/***/ "./node_modules/core-js/internals/create-non-enumerable-property.js": 387/*!**************************************************************************!*\ 388 !*** ./node_modules/core-js/internals/create-non-enumerable-property.js ***! 389 \**************************************************************************/ 390/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 391 392var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 393var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js"); 394var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js"); 395 396module.exports = DESCRIPTORS ? function (object, key, value) { 397 return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); 398} : function (object, key, value) { 399 object[key] = value; 400 return object; 401}; 402 403 404/***/ }), 405
vendor: 512 bytes, lines 406-423
406/***/ "./node_modules/core-js/internals/create-property-descriptor.js": 407/*!**********************************************************************!*\ 408 !*** ./node_modules/core-js/internals/create-property-descriptor.js ***! 409 \**********************************************************************/ 410/***/ (function(module) { 411 412module.exports = function (bitmap, value) { 413 return { 414 enumerable: !(bitmap & 1), 415 configurable: !(bitmap & 2), 416 writable: !(bitmap & 4), 417 value: value 418 }; 419}; 420 421 422/***/ }), 423
vendor: 695 bytes, lines 424-440
424/***/ "./node_modules/core-js/internals/descriptors.js": 425/*!*******************************************************!*\ 426 !*** ./node_modules/core-js/internals/descriptors.js ***! 427 \*******************************************************/ 428/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 429 430var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 431 432// Detect IE8's incomplete defineProperty implementation 433module.exports = !fails(function () { 434 // eslint-disable-next-line es/no-object-defineproperty -- required for testing 435 return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; 436}); 437 438 439/***/ }), 440
vendor: 841 bytes, lines 441-460
441/***/ "./node_modules/core-js/internals/document-create-element.js": 442/*!*******************************************************************!*\ 443 !*** ./node_modules/core-js/internals/document-create-element.js ***! 444 \*******************************************************************/ 445/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 446 447var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 448var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 449 450var document = global.document; 451// typeof document.createElement is 'object' in old IE 452var EXISTS = isObject(document) && isObject(document.createElement); 453 454module.exports = function (it) { 455 return EXISTS ? document.createElement(it) : {}; 456}; 457 458 459/***/ }), 460
vendor: 1,040 bytes, lines 461-505
461/***/ "./node_modules/core-js/internals/dom-iterables.js": 462/*!*********************************************************!*\ 463 !*** ./node_modules/core-js/internals/dom-iterables.js ***! 464 \*********************************************************/ 465/***/ (function(module) { 466 467// iterable DOM collections 468// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods 469module.exports = { 470 CSSRuleList: 0, 471 CSSStyleDeclaration: 0, 472 CSSValueList: 0, 473 ClientRectList: 0, 474 DOMRectList: 0, 475 DOMStringList: 0, 476 DOMTokenList: 1, 477 DataTransferItemList: 0, 478 FileList: 0, 479 HTMLAllCollection: 0, 480 HTMLCollection: 0, 481 HTMLFormElement: 0, 482 HTMLSelectElement: 0, 483 MediaList: 0, 484 MimeTypeArray: 0, 485 NamedNodeMap: 0, 486 NodeList: 1, 487 PaintRequestList: 0, 488 Plugin: 0, 489 PluginArray: 0, 490 SVGLengthList: 0, 491 SVGNumberList: 0, 492 SVGPathSegList: 0, 493 SVGPointList: 0, 494 SVGStringList: 0, 495 SVGTransformList: 0, 496 SourceBufferList: 0, 497 StyleSheetList: 0, 498 TextTrackCueList: 0, 499 TextTrackList: 0, 500 TouchList: 0 501}; 502 503 504/***/ }), 505
vendor: 535 bytes, lines 506-518
506/***/ "./node_modules/core-js/internals/engine-user-agent.js": 507/*!*************************************************************!*\ 508 !*** ./node_modules/core-js/internals/engine-user-agent.js ***! 509 \*************************************************************/ 510/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 511 512var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js"); 513 514module.exports = getBuiltIn('navigator', 'userAgent') || ''; 515 516 517/***/ }), 518
vendor: 1,032 bytes, lines 519-548
519/***/ "./node_modules/core-js/internals/engine-v8-version.js": 520/*!*************************************************************!*\ 521 !*** ./node_modules/core-js/internals/engine-v8-version.js ***! 522 \*************************************************************/ 523/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 524 525var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 526var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ "./node_modules/core-js/internals/engine-user-agent.js"); 527 528var process = global.process; 529var versions = process && process.versions; 530var v8 = versions && versions.v8; 531var match, version; 532 533if (v8) { 534 match = v8.split('.'); 535 version = match[0] < 4 ? 1 : match[0] + match[1]; 536} else if (userAgent) { 537 match = userAgent.match(/Edge\/(\d+)/); 538 if (!match || match[1] >= 74) { 539 match = userAgent.match(/Chrome\/(\d+)/); 540 if (match) version = match[1]; 541 } 542} 543 544module.exports = version && +version; 545 546 547/***/ }), 548
vendor: 465 bytes, lines 549-568
549/***/ "./node_modules/core-js/internals/enum-bug-keys.js": 550/*!*********************************************************!*\ 551 !*** ./node_modules/core-js/internals/enum-bug-keys.js ***! 552 \*********************************************************/ 553/***/ (function(module) { 554 555// IE8- don't enum bug keys 556module.exports = [ 557 'constructor', 558 'hasOwnProperty', 559 'isPrototypeOf', 560 'propertyIsEnumerable', 561 'toLocaleString', 562 'toString', 563 'valueOf' 564]; 565 566 567/***/ }), 568
vendor: 3,343 bytes, lines 569-632
569/***/ "./node_modules/core-js/internals/export.js": 570/*!**************************************************!*\ 571 !*** ./node_modules/core-js/internals/export.js ***! 572 \**************************************************/ 573/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 574 575var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 576var getOwnPropertyDescriptor = (__webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js").f); 577var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); 578var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); 579var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/core-js/internals/set-global.js"); 580var copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ "./node_modules/core-js/internals/copy-constructor-properties.js"); 581var isForced = __webpack_require__(/*! ../internals/is-forced */ "./node_modules/core-js/internals/is-forced.js"); 582 583/* 584 options.target - name of the target object 585 options.global - target is the global object 586 options.stat - export as static methods of target 587 options.proto - export as prototype methods of target 588 options.real - real prototype method for the `pure` version 589 options.forced - export even if the native feature is available 590 options.bind - bind methods to the target, required for the `pure` version 591 options.wrap - wrap constructors to preventing global pollution, required for the `pure` version 592 options.unsafe - use the simple assignment of property instead of delete + defineProperty 593 options.sham - add a flag to not completely full polyfills 594 options.enumerable - export as enumerable property 595 options.noTargetGet - prevent calling a getter on target 596*/ 597module.exports = function (options, source) { 598 var TARGET = options.target; 599 var GLOBAL = options.global; 600 var STATIC = options.stat; 601 var FORCED, target, key, targetProperty, sourceProperty, descriptor; 602 if (GLOBAL) { 603 target = global; 604 } else if (STATIC) { 605 target = global[TARGET] || setGlobal(TARGET, {}); 606 } else { 607 target = (global[TARGET] || {}).prototype; 608 } 609 if (target) for (key in source) { 610 sourceProperty = source[key]; 611 if (options.noTargetGet) { 612 descriptor = getOwnPropertyDescriptor(target, key); 613 targetProperty = descriptor && descriptor.value; 614 } else targetProperty = target[key]; 615 FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); 616 // contained in target 617 if (!FORCED && targetProperty !== undefined) { 618 if (typeof sourceProperty === typeof targetProperty) continue; 619 copyConstructorProperties(sourceProperty, targetProperty); 620 } 621 // add a flag to not completely full polyfills 622 if (options.sham || (targetProperty && targetProperty.sham)) { 623 createNonEnumerableProperty(sourceProperty, 'sham', true); 624 } 625 // extend global 626 redefine(target, key, sourceProperty, options); 627 } 628}; 629 630 631/***/ }), 632
vendor: 363 bytes, lines 633-649
633/***/ "./node_modules/core-js/internals/fails.js": 634/*!*************************************************!*\ 635 !*** ./node_modules/core-js/internals/fails.js ***! 636 \*************************************************/ 637/***/ (function(module) { 638 639module.exports = function (exec) { 640 try { 641 return !!exec(); 642 } catch (error) { 643 return true; 644 } 645}; 646 647 648/***/ }), 649
vendor: 1,031 bytes, lines 650-683
650/***/ "./node_modules/core-js/internals/function-bind-context.js": 651/*!*****************************************************************!*\ 652 !*** ./node_modules/core-js/internals/function-bind-context.js ***! 653 \*****************************************************************/ 654/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 655 656var aFunction = __webpack_require__(/*! ../internals/a-function */ "./node_modules/core-js/internals/a-function.js"); 657 658// optional / simple context binding 659module.exports = function (fn, that, length) { 660 aFunction(fn); 661 if (that === undefined) return fn; 662 switch (length) { 663 case 0: return function () { 664 return fn.call(that); 665 }; 666 case 1: return function (a) { 667 return fn.call(that, a); 668 }; 669 case 2: return function (a, b) { 670 return fn.call(that, a, b); 671 }; 672 case 3: return function (a, b, c) { 673 return fn.call(that, a, b, c); 674 }; 675 } 676 return function (/* ...args */) { 677 return fn.apply(that, arguments); 678 }; 679}; 680 681 682/***/ }), 683
vendor: 886 bytes, lines 684-704
684/***/ "./node_modules/core-js/internals/get-built-in.js": 685/*!********************************************************!*\ 686 !*** ./node_modules/core-js/internals/get-built-in.js ***! 687 \********************************************************/ 688/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 689 690var path = __webpack_require__(/*! ../internals/path */ "./node_modules/core-js/internals/path.js"); 691var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 692 693var aFunction = function (variable) { 694 return typeof variable == 'function' ? variable : undefined; 695}; 696 697module.exports = function (namespace, method) { 698 return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) 699 : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method]; 700}; 701 702 703/***/ }), 704
vendor: 926 bytes, lines 705-728
705/***/ "./node_modules/core-js/internals/global.js": 706/*!**************************************************!*\ 707 !*** ./node_modules/core-js/internals/global.js ***! 708 \**************************************************/ 709/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 710 711var check = function (it) { 712 return it && it.Math == Math && it; 713}; 714 715// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 716module.exports = 717 // eslint-disable-next-line es/no-global-this -- safe 718 check(typeof globalThis == 'object' && globalThis) || 719 check(typeof window == 'object' && window) || 720 // eslint-disable-next-line no-restricted-globals -- safe 721 check(typeof self == 'object' && self) || 722 check(typeof __webpack_require__.g == 'object' && __webpack_require__.g) || 723 // eslint-disable-next-line no-new-func -- fallback 724 (function () { return this; })() || Function('return this')(); 725 726 727/***/ }), 728
vendor: 564 bytes, lines 729-745
729/***/ "./node_modules/core-js/internals/has.js": 730/*!***********************************************!*\ 731 !*** ./node_modules/core-js/internals/has.js ***! 732 \***********************************************/ 733/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 734 735var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js"); 736 737var hasOwnProperty = {}.hasOwnProperty; 738 739module.exports = Object.hasOwn || function hasOwn(it, key) { 740 return hasOwnProperty.call(toObject(it), key); 741}; 742 743 744/***/ }), 745
vendor: 300 bytes, lines 746-756
746/***/ "./node_modules/core-js/internals/hidden-keys.js": 747/*!*******************************************************!*\ 748 !*** ./node_modules/core-js/internals/hidden-keys.js ***! 749 \*******************************************************/ 750/***/ (function(module) { 751 752module.exports = {}; 753 754 755/***/ }), 756
vendor: 482 bytes, lines 757-769
757/***/ "./node_modules/core-js/internals/html.js": 758/*!************************************************!*\ 759 !*** ./node_modules/core-js/internals/html.js ***! 760 \************************************************/ 761/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 762 763var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js"); 764 765module.exports = getBuiltIn('document', 'documentElement'); 766 767 768/***/ }), 769
vendor: 1,004 bytes, lines 770-790
770/***/ "./node_modules/core-js/internals/ie8-dom-define.js": 771/*!**********************************************************!*\ 772 !*** ./node_modules/core-js/internals/ie8-dom-define.js ***! 773 \**********************************************************/ 774/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 775 776var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 777var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 778var createElement = __webpack_require__(/*! ../internals/document-create-element */ "./node_modules/core-js/internals/document-create-element.js"); 779 780// Thank's IE8 for his funny defineProperty 781module.exports = !DESCRIPTORS && !fails(function () { 782 // eslint-disable-next-line es/no-object-defineproperty -- requied for testing 783 return Object.defineProperty(createElement('div'), 'a', { 784 get: function () { return 7; } 785 }).a != 7; 786}); 787 788 789/***/ }), 790
vendor: 977 bytes, lines 791-813
791/***/ "./node_modules/core-js/internals/indexed-object.js": 792/*!**********************************************************!*\ 793 !*** ./node_modules/core-js/internals/indexed-object.js ***! 794 \**********************************************************/ 795/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 796 797var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 798var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js"); 799 800var split = ''.split; 801 802// fallback for non-array-like ES3 and non-enumerable old V8 strings 803module.exports = fails(function () { 804 // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 805 // eslint-disable-next-line no-prototype-builtins -- safe 806 return !Object('z').propertyIsEnumerable(0); 807}) ? function (it) { 808 return classof(it) == 'String' ? split.call(it, '') : Object(it); 809} : Object; 810 811 812/***/ }), 813
vendor: 752 bytes, lines 814-835
814/***/ "./node_modules/core-js/internals/inspect-source.js": 815/*!**********************************************************!*\ 816 !*** ./node_modules/core-js/internals/inspect-source.js ***! 817 \**********************************************************/ 818/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 819 820var store = __webpack_require__(/*! ../internals/shared-store */ "./node_modules/core-js/internals/shared-store.js"); 821 822var functionToString = Function.toString; 823 824// this helper broken in `[email protected]`, so we can't use `shared` helper 825if (typeof store.inspectSource != 'function') { 826 store.inspectSource = function (it) { 827 return functionToString.call(it); 828 }; 829} 830 831module.exports = store.inspectSource; 832 833 834/***/ }), 835
vendor: 2,802 bytes, lines 836-912
836/***/ "./node_modules/core-js/internals/internal-state.js": 837/*!**********************************************************!*\ 838 !*** ./node_modules/core-js/internals/internal-state.js ***! 839 \**********************************************************/ 840/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 841 842var NATIVE_WEAK_MAP = __webpack_require__(/*! ../internals/native-weak-map */ "./node_modules/core-js/internals/native-weak-map.js"); 843var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 844var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 845var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); 846var objectHas = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); 847var shared = __webpack_require__(/*! ../internals/shared-store */ "./node_modules/core-js/internals/shared-store.js"); 848var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js"); 849var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js"); 850 851var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; 852var WeakMap = global.WeakMap; 853var set, get, has; 854 855var enforce = function (it) { 856 return has(it) ? get(it) : set(it, {}); 857}; 858 859var getterFor = function (TYPE) { 860 return function (it) { 861 var state; 862 if (!isObject(it) || (state = get(it)).type !== TYPE) { 863 throw TypeError('Incompatible receiver, ' + TYPE + ' required'); 864 } return state; 865 }; 866}; 867 868if (NATIVE_WEAK_MAP || shared.state) { 869 var store = shared.state || (shared.state = new WeakMap()); 870 var wmget = store.get; 871 var wmhas = store.has; 872 var wmset = store.set; 873 set = function (it, metadata) { 874 if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); 875 metadata.facade = it; 876 wmset.call(store, it, metadata); 877 return metadata; 878 }; 879 get = function (it) { 880 return wmget.call(store, it) || {}; 881 }; 882 has = function (it) { 883 return wmhas.call(store, it); 884 }; 885} else { 886 var STATE = sharedKey('state'); 887 hiddenKeys[STATE] = true; 888 set = function (it, metadata) { 889 if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); 890 metadata.facade = it; 891 createNonEnumerableProperty(it, STATE, metadata); 892 return metadata; 893 }; 894 get = function (it) { 895 return objectHas(it, STATE) ? it[STATE] : {}; 896 }; 897 has = function (it) { 898 return objectHas(it, STATE); 899 }; 900} 901 902module.exports = { 903 set: set, 904 get: get, 905 has: has, 906 enforce: enforce, 907 getterFor: getterFor 908}; 909 910 911/***/ }), 912
vendor: 656 bytes, lines 913-930
913/***/ "./node_modules/core-js/internals/is-array.js": 914/*!****************************************************!*\ 915 !*** ./node_modules/core-js/internals/is-array.js ***! 916 \****************************************************/ 917/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 918 919var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js"); 920 921// `IsArray` abstract operation 922// https://tc39.es/ecma262/#sec-isarray 923// eslint-disable-next-line es/no-array-isarray -- safe 924module.exports = Array.isArray || function isArray(arg) { 925 return classof(arg) == 'Array'; 926}; 927 928 929/***/ }), 930
vendor: 952 bytes, lines 931-961
931/***/ "./node_modules/core-js/internals/is-forced.js": 932/*!*****************************************************!*\ 933 !*** ./node_modules/core-js/internals/is-forced.js ***! 934 \*****************************************************/ 935/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 936 937var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 938 939var replacement = /#|\.prototype\./; 940 941var isForced = function (feature, detection) { 942 var value = data[normalize(feature)]; 943 return value == POLYFILL ? true 944 : value == NATIVE ? false 945 : typeof detection == 'function' ? fails(detection) 946 : !!detection; 947}; 948 949var normalize = isForced.normalize = function (string) { 950 return String(string).replace(replacement, '.').toLowerCase(); 951}; 952 953var data = isForced.data = {}; 954var NATIVE = isForced.NATIVE = 'N'; 955var POLYFILL = isForced.POLYFILL = 'P'; 956 957module.exports = isForced; 958 959 960/***/ }), 961
vendor: 381 bytes, lines 962-974
962/***/ "./node_modules/core-js/internals/is-object.js": 963/*!*****************************************************!*\ 964 !*** ./node_modules/core-js/internals/is-object.js ***! 965 \*****************************************************/ 966/***/ (function(module) { 967 968module.exports = function (it) { 969 return typeof it === 'object' ? it !== null : typeof it === 'function'; 970}; 971 972 973/***/ }), 974
vendor: 287 bytes, lines 975-985
975/***/ "./node_modules/core-js/internals/is-pure.js": 976/*!***************************************************!*\ 977 !*** ./node_modules/core-js/internals/is-pure.js ***! 978 \***************************************************/ 979/***/ (function(module) { 980 981module.exports = false; 982 983 984/***/ }), 985
vendor: 1,177 bytes, lines 986-1008
986/***/ "./node_modules/core-js/internals/native-symbol.js": 987/*!*********************************************************!*\ 988 !*** ./node_modules/core-js/internals/native-symbol.js ***! 989 \*********************************************************/ 990/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 991 992/* eslint-disable es/no-symbol -- required for testing */ 993var V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ "./node_modules/core-js/internals/engine-v8-version.js"); 994var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 995 996// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing 997module.exports = !!Object.getOwnPropertySymbols && !fails(function () { 998 var symbol = Symbol(); 999 // Chrome 38 Symbol has incorrect toString conversion 1000 // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances 1001 return !String(symbol) || !(Object(symbol) instanceof Symbol) || 1002 // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances 1003 !Symbol.sham && V8_VERSION && V8_VERSION < 41; 1004}); 1005 1006 1007/***/ }), 1008
vendor: 705 bytes, lines 1009-1024
1009/***/ "./node_modules/core-js/internals/native-weak-map.js": 1010/*!***********************************************************!*\ 1011 !*** ./node_modules/core-js/internals/native-weak-map.js ***! 1012 \***********************************************************/ 1013/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1014 1015var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 1016var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ "./node_modules/core-js/internals/inspect-source.js"); 1017 1018var WeakMap = global.WeakMap; 1019 1020module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap)); 1021 1022 1023/***/ }), 1024
vendor: 3,705 bytes, lines 1025-1112
1025/***/ "./node_modules/core-js/internals/object-create.js": 1026/*!*********************************************************!*\ 1027 !*** ./node_modules/core-js/internals/object-create.js ***! 1028 \*********************************************************/ 1029/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1030 1031var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 1032var defineProperties = __webpack_require__(/*! ../internals/object-define-properties */ "./node_modules/core-js/internals/object-define-properties.js"); 1033var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js"); 1034var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js"); 1035var html = __webpack_require__(/*! ../internals/html */ "./node_modules/core-js/internals/html.js"); 1036var documentCreateElement = __webpack_require__(/*! ../internals/document-create-element */ "./node_modules/core-js/internals/document-create-element.js"); 1037var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js"); 1038 1039var GT = '>'; 1040var LT = '<'; 1041var PROTOTYPE = 'prototype'; 1042var SCRIPT = 'script'; 1043var IE_PROTO = sharedKey('IE_PROTO'); 1044 1045var EmptyConstructor = function () { /* empty */ }; 1046 1047var scriptTag = function (content) { 1048 return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; 1049}; 1050 1051// Create object with fake `null` prototype: use ActiveX Object with cleared prototype 1052var NullProtoObjectViaActiveX = function (activeXDocument) { 1053 activeXDocument.write(scriptTag('')); 1054 activeXDocument.close(); 1055 var temp = activeXDocument.parentWindow.Object; 1056 activeXDocument = null; // avoid memory leak 1057 return temp; 1058}; 1059 1060// Create object with fake `null` prototype: use iframe Object with cleared prototype 1061var NullProtoObjectViaIFrame = function () { 1062 // Thrash, waste and sodomy: IE GC bug 1063 var iframe = documentCreateElement('iframe'); 1064 var JS = 'java' + SCRIPT + ':'; 1065 var iframeDocument; 1066 iframe.style.display = 'none'; 1067 html.appendChild(iframe); 1068 // https://github.com/zloirock/core-js/issues/475 1069 iframe.src = String(JS); 1070 iframeDocument = iframe.contentWindow.document; 1071 iframeDocument.open(); 1072 iframeDocument.write(scriptTag('document.F=Object')); 1073 iframeDocument.close(); 1074 return iframeDocument.F; 1075}; 1076 1077// Check for document.domain and active x support 1078// No need to use active x approach when document.domain is not set 1079// see https://github.com/es-shims/es5-shim/issues/150 1080// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 1081// avoid IE GC bug 1082var activeXDocument; 1083var NullProtoObject = function () { 1084 try { 1085 /* global ActiveXObject -- old IE */ 1086 activeXDocument = document.domain && new ActiveXObject('htmlfile'); 1087 } catch (error) { /* ignore */ } 1088 NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame(); 1089 var length = enumBugKeys.length; 1090 while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; 1091 return NullProtoObject(); 1092}; 1093 1094hiddenKeys[IE_PROTO] = true; 1095 1096// `Object.create` method 1097// https://tc39.es/ecma262/#sec-object.create 1098module.exports = Object.create || function create(O, Properties) { 1099 var result; 1100 if (O !== null) { 1101 EmptyConstructor[PROTOTYPE] = anObject(O); 1102 result = new EmptyConstructor(); 1103 EmptyConstructor[PROTOTYPE] = null; 1104 // add "__proto__" for Object.getPrototypeOf polyfill 1105 result[IE_PROTO] = O; 1106 } else result = NullProtoObject(); 1107 return Properties === undefined ? result : defineProperties(result, Properties); 1108}; 1109 1110 1111/***/ }), 1112
vendor: 1,361 bytes, lines 1113-1139
1113/***/ "./node_modules/core-js/internals/object-define-properties.js": 1114/*!********************************************************************!*\ 1115 !*** ./node_modules/core-js/internals/object-define-properties.js ***! 1116 \********************************************************************/ 1117/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1118 1119var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 1120var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js"); 1121var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 1122var objectKeys = __webpack_require__(/*! ../internals/object-keys */ "./node_modules/core-js/internals/object-keys.js"); 1123 1124// `Object.defineProperties` method 1125// https://tc39.es/ecma262/#sec-object.defineproperties 1126// eslint-disable-next-line es/no-object-defineproperties -- safe 1127module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { 1128 anObject(O); 1129 var keys = objectKeys(Properties); 1130 var length = keys.length; 1131 var index = 0; 1132 var key; 1133 while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]); 1134 return O; 1135}; 1136 1137 1138/***/ }), 1139
vendor: 1,487 bytes, lines 1140-1170
1140/***/ "./node_modules/core-js/internals/object-define-property.js": 1141/*!******************************************************************!*\ 1142 !*** ./node_modules/core-js/internals/object-define-property.js ***! 1143 \******************************************************************/ 1144/***/ (function(__unused_webpack_module, exports, __webpack_require__) { 1145 1146var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 1147var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ "./node_modules/core-js/internals/ie8-dom-define.js"); 1148var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 1149var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ "./node_modules/core-js/internals/to-primitive.js"); 1150 1151// eslint-disable-next-line es/no-object-defineproperty -- safe 1152var $defineProperty = Object.defineProperty; 1153 1154// `Object.defineProperty` method 1155// https://tc39.es/ecma262/#sec-object.defineproperty 1156exports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) { 1157 anObject(O); 1158 P = toPrimitive(P, true); 1159 anObject(Attributes); 1160 if (IE8_DOM_DEFINE) try { 1161 return $defineProperty(O, P, Attributes); 1162 } catch (error) { /* empty */ } 1163 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); 1164 if ('value' in Attributes) O[P] = Attributes.value; 1165 return O; 1166}; 1167 1168 1169/***/ }), 1170
vendor: 1,975 bytes, lines 1171-1201
1171/***/ "./node_modules/core-js/internals/object-get-own-property-descriptor.js": 1172/*!******************************************************************************!*\ 1173 !*** ./node_modules/core-js/internals/object-get-own-property-descriptor.js ***! 1174 \******************************************************************************/ 1175/***/ (function(__unused_webpack_module, exports, __webpack_require__) { 1176 1177var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 1178var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ "./node_modules/core-js/internals/object-property-is-enumerable.js"); 1179var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js"); 1180var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js"); 1181var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ "./node_modules/core-js/internals/to-primitive.js"); 1182var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); 1183var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ "./node_modules/core-js/internals/ie8-dom-define.js"); 1184 1185// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe 1186var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; 1187 1188// `Object.getOwnPropertyDescriptor` method 1189// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor 1190exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { 1191 O = toIndexedObject(O); 1192 P = toPrimitive(P, true); 1193 if (IE8_DOM_DEFINE) try { 1194 return $getOwnPropertyDescriptor(O, P); 1195 } catch (error) { /* empty */ } 1196 if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); 1197}; 1198 1199 1200/***/ }), 1201
vendor: 1,023 bytes, lines 1202-1222
1202/***/ "./node_modules/core-js/internals/object-get-own-property-names.js": 1203/*!*************************************************************************!*\ 1204 !*** ./node_modules/core-js/internals/object-get-own-property-names.js ***! 1205 \*************************************************************************/ 1206/***/ (function(__unused_webpack_module, exports, __webpack_require__) { 1207 1208var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ "./node_modules/core-js/internals/object-keys-internal.js"); 1209var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js"); 1210 1211var hiddenKeys = enumBugKeys.concat('length', 'prototype'); 1212 1213// `Object.getOwnPropertyNames` method 1214// https://tc39.es/ecma262/#sec-object.getownpropertynames 1215// eslint-disable-next-line es/no-object-getownpropertynames -- safe 1216exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { 1217 return internalObjectKeys(O, hiddenKeys); 1218}; 1219 1220 1221/***/ }), 1222
vendor: 498 bytes, lines 1223-1234
1223/***/ "./node_modules/core-js/internals/object-get-own-property-symbols.js": 1224/*!***************************************************************************!*\ 1225 !*** ./node_modules/core-js/internals/object-get-own-property-symbols.js ***! 1226 \***************************************************************************/ 1227/***/ (function(__unused_webpack_module, exports) { 1228 1229// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe 1230exports.f = Object.getOwnPropertySymbols; 1231 1232 1233/***/ }), 1234
vendor: 1,215 bytes, lines 1235-1261
1235/***/ "./node_modules/core-js/internals/object-keys-internal.js": 1236/*!****************************************************************!*\ 1237 !*** ./node_modules/core-js/internals/object-keys-internal.js ***! 1238 \****************************************************************/ 1239/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1240 1241var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); 1242var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js"); 1243var indexOf = (__webpack_require__(/*! ../internals/array-includes */ "./node_modules/core-js/internals/array-includes.js").indexOf); 1244var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js"); 1245 1246module.exports = function (object, names) { 1247 var O = toIndexedObject(object); 1248 var i = 0; 1249 var result = []; 1250 var key; 1251 for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key); 1252 // Don't enum bug & hidden keys 1253 while (names.length > i) if (has(O, key = names[i++])) { 1254 ~indexOf(result, key) || result.push(key); 1255 } 1256 return result; 1257}; 1258 1259 1260/***/ }), 1261
vendor: 821 bytes, lines 1262-1280
1262/***/ "./node_modules/core-js/internals/object-keys.js": 1263/*!*******************************************************!*\ 1264 !*** ./node_modules/core-js/internals/object-keys.js ***! 1265 \*******************************************************/ 1266/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1267 1268var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ "./node_modules/core-js/internals/object-keys-internal.js"); 1269var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js"); 1270 1271// `Object.keys` method 1272// https://tc39.es/ecma262/#sec-object.keys 1273// eslint-disable-next-line es/no-object-keys -- safe 1274module.exports = Object.keys || function keys(O) { 1275 return internalObjectKeys(O, enumBugKeys); 1276}; 1277 1278 1279/***/ }), 1280
vendor: 1,020 bytes, lines 1281-1305
1281/***/ "./node_modules/core-js/internals/object-property-is-enumerable.js": 1282/*!*************************************************************************!*\ 1283 !*** ./node_modules/core-js/internals/object-property-is-enumerable.js ***! 1284 \*************************************************************************/ 1285/***/ (function(__unused_webpack_module, exports) { 1286 1287"use strict"; 1288 1289var $propertyIsEnumerable = {}.propertyIsEnumerable; 1290// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe 1291var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; 1292 1293// Nashorn ~ JDK8 bug 1294var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1); 1295 1296// `Object.prototype.propertyIsEnumerable` method implementation 1297// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable 1298exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { 1299 var descriptor = getOwnPropertyDescriptor(this, V); 1300 return !!descriptor && descriptor.enumerable; 1301} : $propertyIsEnumerable; 1302 1303 1304/***/ }), 1305
vendor: 1,235 bytes, lines 1306-1326
1306/***/ "./node_modules/core-js/internals/own-keys.js": 1307/*!****************************************************!*\ 1308 !*** ./node_modules/core-js/internals/own-keys.js ***! 1309 \****************************************************/ 1310/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1311 1312var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js"); 1313var getOwnPropertyNamesModule = __webpack_require__(/*! ../internals/object-get-own-property-names */ "./node_modules/core-js/internals/object-get-own-property-names.js"); 1314var getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ "./node_modules/core-js/internals/object-get-own-property-symbols.js"); 1315var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 1316 1317// all object keys, includes non-enumerable and symbols 1318module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { 1319 var keys = getOwnPropertyNamesModule.f(anObject(it)); 1320 var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; 1321 return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; 1322}; 1323 1324 1325/***/ }), 1326
vendor: 431 bytes, lines 1327-1339
1327/***/ "./node_modules/core-js/internals/path.js": 1328/*!************************************************!*\ 1329 !*** ./node_modules/core-js/internals/path.js ***! 1330 \************************************************/ 1331/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1332 1333var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 1334 1335module.exports = global; 1336 1337 1338/***/ }), 1339
vendor: 2,316 bytes, lines 1340-1389
1340/***/ "./node_modules/core-js/internals/redefine.js": 1341/*!****************************************************!*\ 1342 !*** ./node_modules/core-js/internals/redefine.js ***! 1343 \****************************************************/ 1344/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1345 1346var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 1347var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); 1348var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); 1349var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/core-js/internals/set-global.js"); 1350var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ "./node_modules/core-js/internals/inspect-source.js"); 1351var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js"); 1352 1353var getInternalState = InternalStateModule.get; 1354var enforceInternalState = InternalStateModule.enforce; 1355var TEMPLATE = String(String).split('String'); 1356 1357(module.exports = function (O, key, value, options) { 1358 var unsafe = options ? !!options.unsafe : false; 1359 var simple = options ? !!options.enumerable : false; 1360 var noTargetGet = options ? !!options.noTargetGet : false; 1361 var state; 1362 if (typeof value == 'function') { 1363 if (typeof key == 'string' && !has(value, 'name')) { 1364 createNonEnumerableProperty(value, 'name', key); 1365 } 1366 state = enforceInternalState(value); 1367 if (!state.source) { 1368 state.source = TEMPLATE.join(typeof key == 'string' ? key : ''); 1369 } 1370 } 1371 if (O === global) { 1372 if (simple) O[key] = value; 1373 else setGlobal(key, value); 1374 return; 1375 } else if (!unsafe) { 1376 delete O[key]; 1377 } else if (!noTargetGet && O[key]) { 1378 simple = true; 1379 } 1380 if (simple) O[key] = value; 1381 else createNonEnumerableProperty(O, key, value); 1382// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative 1383})(Function.prototype, 'toString', function toString() { 1384 return typeof this == 'function' && getInternalState(this).source || inspectSource(this); 1385}); 1386 1387 1388/***/ }), 1389
vendor: 4,573 bytes, lines 1390-1511
1390/***/ "./node_modules/core-js/internals/regexp-exec.js": 1391/*!*******************************************************!*\ 1392 !*** ./node_modules/core-js/internals/regexp-exec.js ***! 1393 \*******************************************************/ 1394/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1395 1396"use strict"; 1397 1398/* eslint-disable regexp/no-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */ 1399/* eslint-disable regexp/no-useless-quantifier -- testing */ 1400var regexpFlags = __webpack_require__(/*! ../internals/regexp-flags */ "./node_modules/core-js/internals/regexp-flags.js"); 1401var stickyHelpers = __webpack_require__(/*! ../internals/regexp-sticky-helpers */ "./node_modules/core-js/internals/regexp-sticky-helpers.js"); 1402var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js"); 1403var create = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js"); 1404var getInternalState = (__webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js").get); 1405var UNSUPPORTED_DOT_ALL = __webpack_require__(/*! ../internals/regexp-unsupported-dot-all */ "./node_modules/core-js/internals/regexp-unsupported-dot-all.js"); 1406var UNSUPPORTED_NCG = __webpack_require__(/*! ../internals/regexp-unsupported-ncg */ "./node_modules/core-js/internals/regexp-unsupported-ncg.js"); 1407 1408var nativeExec = RegExp.prototype.exec; 1409var nativeReplace = shared('native-string-replace', String.prototype.replace); 1410 1411var patchedExec = nativeExec; 1412 1413var UPDATES_LAST_INDEX_WRONG = (function () { 1414 var re1 = /a/; 1415 var re2 = /b*/g; 1416 nativeExec.call(re1, 'a'); 1417 nativeExec.call(re2, 'a'); 1418 return re1.lastIndex !== 0 || re2.lastIndex !== 0; 1419})(); 1420 1421var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET; 1422 1423// nonparticipating capturing group, copied from es5-shim's String#split patch. 1424var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; 1425 1426var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG; 1427 1428if (PATCH) { 1429 // eslint-disable-next-line max-statements -- TODO 1430 patchedExec = function exec(str) { 1431 var re = this; 1432 var state = getInternalState(re); 1433 var raw = state.raw; 1434 var result, reCopy, lastIndex, match, i, object, group; 1435 1436 if (raw) { 1437 raw.lastIndex = re.lastIndex; 1438 result = patchedExec.call(raw, str); 1439 re.lastIndex = raw.lastIndex; 1440 return result; 1441 } 1442 1443 var groups = state.groups; 1444 var sticky = UNSUPPORTED_Y && re.sticky; 1445 var flags = regexpFlags.call(re); 1446 var source = re.source; 1447 var charsAdded = 0; 1448 var strCopy = str; 1449 1450 if (sticky) { 1451 flags = flags.replace('y', ''); 1452 if (flags.indexOf('g') === -1) { 1453 flags += 'g'; 1454 } 1455 1456 strCopy = String(str).slice(re.lastIndex); 1457 // Support anchored sticky behavior. 1458 if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) { 1459 source = '(?: ' + source + ')'; 1460 strCopy = ' ' + strCopy; 1461 charsAdded++; 1462 } 1463 // ^(? + rx + ) is needed, in combination with some str slicing, to 1464 // simulate the 'y' flag. 1465 reCopy = new RegExp('^(?:' + source + ')', flags); 1466 } 1467 1468 if (NPCG_INCLUDED) { 1469 reCopy = new RegExp('^' + source + '$(?!\\s)', flags); 1470 } 1471 if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; 1472 1473 match = nativeExec.call(sticky ? reCopy : re, strCopy); 1474 1475 if (sticky) { 1476 if (match) { 1477 match.input = match.input.slice(charsAdded); 1478 match[0] = match[0].slice(charsAdded); 1479 match.index = re.lastIndex; 1480 re.lastIndex += match[0].length; 1481 } else re.lastIndex = 0; 1482 } else if (UPDATES_LAST_INDEX_WRONG && match) { 1483 re.lastIndex = re.global ? match.index + match[0].length : lastIndex; 1484 } 1485 if (NPCG_INCLUDED && match && match.length > 1) { 1486 // Fix browsers whose `exec` methods don't consistently return `undefined` 1487 // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ 1488 nativeReplace.call(match[0], reCopy, function () { 1489 for (i = 1; i < arguments.length - 2; i++) { 1490 if (arguments[i] === undefined) match[i] = undefined; 1491 } 1492 }); 1493 } 1494 1495 if (match && groups) { 1496 match.groups = object = create(null); 1497 for (i = 0; i < groups.length; i++) { 1498 group = groups[i]; 1499 object[group[0]] = match[group[1]]; 1500 } 1501 } 1502 1503 return match; 1504 }; 1505} 1506 1507module.exports = patchedExec; 1508 1509 1510/***/ }), 1511
vendor: 881 bytes, lines 1512-1538
1512/***/ "./node_modules/core-js/internals/regexp-flags.js": 1513/*!********************************************************!*\ 1514 !*** ./node_modules/core-js/internals/regexp-flags.js ***! 1515 \********************************************************/ 1516/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1517 1518"use strict"; 1519 1520var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 1521 1522// `RegExp.prototype.flags` getter implementation 1523// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags 1524module.exports = function () { 1525 var that = anObject(this); 1526 var result = ''; 1527 if (that.global) result += 'g'; 1528 if (that.ignoreCase) result += 'i'; 1529 if (that.multiline) result += 'm'; 1530 if (that.dotAll) result += 's'; 1531 if (that.unicode) result += 'u'; 1532 if (that.sticky) result += 'y'; 1533 return result; 1534}; 1535 1536 1537/***/ }), 1538
vendor: 916 bytes, lines 1539-1567
1539/***/ "./node_modules/core-js/internals/regexp-sticky-helpers.js": 1540/*!*****************************************************************!*\ 1541 !*** ./node_modules/core-js/internals/regexp-sticky-helpers.js ***! 1542 \*****************************************************************/ 1543/***/ (function(__unused_webpack_module, exports, __webpack_require__) { 1544 1545var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 1546 1547// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError, 1548var RE = function (s, f) { 1549 return RegExp(s, f); 1550}; 1551 1552exports.UNSUPPORTED_Y = fails(function () { 1553 var re = RE('a', 'y'); 1554 re.lastIndex = 2; 1555 return re.exec('abcd') != null; 1556}); 1557 1558exports.BROKEN_CARET = fails(function () { 1559 // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 1560 var re = RE('^r', 'gy'); 1561 re.lastIndex = 2; 1562 return re.exec('str') != null; 1563}); 1564 1565 1566/***/ }), 1567
vendor: 708 bytes, lines 1568-1584
1568/***/ "./node_modules/core-js/internals/regexp-unsupported-dot-all.js": 1569/*!**********************************************************************!*\ 1570 !*** ./node_modules/core-js/internals/regexp-unsupported-dot-all.js ***! 1571 \**********************************************************************/ 1572/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1573 1574var fails = __webpack_require__(/*! ./fails */ "./node_modules/core-js/internals/fails.js"); 1575 1576module.exports = fails(function () { 1577 // babel-minify transpiles RegExp('.', 's') -> /./s and it causes SyntaxError 1578 var re = RegExp('.', (typeof '').charAt(0)); 1579 return !(re.dotAll && re.exec('\n') && re.flags === 's'); 1580}); 1581 1582 1583/***/ }), 1584
vendor: 719 bytes, lines 1585-1602
1585/***/ "./node_modules/core-js/internals/regexp-unsupported-ncg.js": 1586/*!******************************************************************!*\ 1587 !*** ./node_modules/core-js/internals/regexp-unsupported-ncg.js ***! 1588 \******************************************************************/ 1589/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1590 1591var fails = __webpack_require__(/*! ./fails */ "./node_modules/core-js/internals/fails.js"); 1592 1593module.exports = fails(function () { 1594 // babel-minify transpiles RegExp('.', 'g') -> /./g and it causes SyntaxError 1595 var re = RegExp('(?<a>b)', (typeof '').charAt(5)); 1596 return re.exec('b').groups.a !== 'b' || 1597 'b'.replace(re, '$<a>c') !== 'bc'; 1598}); 1599 1600 1601/***/ }), 1602
vendor: 552 bytes, lines 1603-1618
1603/***/ "./node_modules/core-js/internals/require-object-coercible.js": 1604/*!********************************************************************!*\ 1605 !*** ./node_modules/core-js/internals/require-object-coercible.js ***! 1606 \********************************************************************/ 1607/***/ (function(module) { 1608 1609// `RequireObjectCoercible` abstract operation 1610// https://tc39.es/ecma262/#sec-requireobjectcoercible 1611module.exports = function (it) { 1612 if (it == undefined) throw TypeError("Can't call method on " + it); 1613 return it; 1614}; 1615 1616 1617/***/ }), 1618
vendor: 774 bytes, lines 1619-1638
1619/***/ "./node_modules/core-js/internals/set-global.js": 1620/*!******************************************************!*\ 1621 !*** ./node_modules/core-js/internals/set-global.js ***! 1622 \******************************************************/ 1623/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1624 1625var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 1626var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); 1627 1628module.exports = function (key, value) { 1629 try { 1630 createNonEnumerableProperty(global, key, value); 1631 } catch (error) { 1632 global[key] = value; 1633 } return value; 1634}; 1635 1636 1637/***/ }), 1638
vendor: 639 bytes, lines 1639-1656
1639/***/ "./node_modules/core-js/internals/shared-key.js": 1640/*!******************************************************!*\ 1641 !*** ./node_modules/core-js/internals/shared-key.js ***! 1642 \******************************************************/ 1643/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1644 1645var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js"); 1646var uid = __webpack_require__(/*! ../internals/uid */ "./node_modules/core-js/internals/uid.js"); 1647 1648var keys = shared('keys'); 1649 1650module.exports = function (key) { 1651 return keys[key] || (keys[key] = uid(key)); 1652}; 1653 1654 1655/***/ }), 1656
vendor: 669 bytes, lines 1657-1673
1657/***/ "./node_modules/core-js/internals/shared-store.js": 1658/*!********************************************************!*\ 1659 !*** ./node_modules/core-js/internals/shared-store.js ***! 1660 \********************************************************/ 1661/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1662 1663var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 1664var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/core-js/internals/set-global.js"); 1665 1666var SHARED = '__core-js_shared__'; 1667var store = global[SHARED] || setGlobal(SHARED, {}); 1668 1669module.exports = store; 1670 1671 1672/***/ }), 1673
vendor: 790 bytes, lines 1674-1693
1674/***/ "./node_modules/core-js/internals/shared.js": 1675/*!**************************************************!*\ 1676 !*** ./node_modules/core-js/internals/shared.js ***! 1677 \**************************************************/ 1678/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1679 1680var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js"); 1681var store = __webpack_require__(/*! ../internals/shared-store */ "./node_modules/core-js/internals/shared-store.js"); 1682 1683(module.exports = function (key, value) { 1684 return store[key] || (store[key] = value !== undefined ? value : {}); 1685})('versions', []).push({ 1686 version: '3.15.2', 1687 mode: IS_PURE ? 'pure' : 'global', 1688 copyright: '© 2021 Denis Pushkarev (zloirock.ru)' 1689}); 1690 1691 1692/***/ }), 1693
vendor: 855 bytes, lines 1694-1715
1694/***/ "./node_modules/core-js/internals/to-absolute-index.js": 1695/*!*************************************************************!*\ 1696 !*** ./node_modules/core-js/internals/to-absolute-index.js ***! 1697 \*************************************************************/ 1698/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1699 1700var toInteger = __webpack_require__(/*! ../internals/to-integer */ "./node_modules/core-js/internals/to-integer.js"); 1701 1702var max = Math.max; 1703var min = Math.min; 1704 1705// Helper for a popular repeating case of the spec: 1706// Let integer be ? ToInteger(index). 1707// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). 1708module.exports = function (index, length) { 1709 var integer = toInteger(index); 1710 return integer < 0 ? max(integer + length, 0) : min(integer, length); 1711}; 1712 1713 1714/***/ }), 1715
vendor: 785 bytes, lines 1716-1732
1716/***/ "./node_modules/core-js/internals/to-indexed-object.js": 1717/*!*************************************************************!*\ 1718 !*** ./node_modules/core-js/internals/to-indexed-object.js ***! 1719 \*************************************************************/ 1720/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1721 1722// toObject with fallback for non-array-like ES3 strings 1723var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "./node_modules/core-js/internals/indexed-object.js"); 1724var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js"); 1725 1726module.exports = function (it) { 1727 return IndexedObject(requireObjectCoercible(it)); 1728}; 1729 1730 1731/***/ }), 1732
vendor: 524 bytes, lines 1733-1750
1733/***/ "./node_modules/core-js/internals/to-integer.js": 1734/*!******************************************************!*\ 1735 !*** ./node_modules/core-js/internals/to-integer.js ***! 1736 \******************************************************/ 1737/***/ (function(module) { 1738 1739var ceil = Math.ceil; 1740var floor = Math.floor; 1741 1742// `ToInteger` abstract operation 1743// https://tc39.es/ecma262/#sec-tointeger 1744module.exports = function (argument) { 1745 return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); 1746}; 1747 1748 1749/***/ }), 1750
vendor: 681 bytes, lines 1751-1769
1751/***/ "./node_modules/core-js/internals/to-length.js": 1752/*!*****************************************************!*\ 1753 !*** ./node_modules/core-js/internals/to-length.js ***! 1754 \*****************************************************/ 1755/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1756 1757var toInteger = __webpack_require__(/*! ../internals/to-integer */ "./node_modules/core-js/internals/to-integer.js"); 1758 1759var min = Math.min; 1760 1761// `ToLength` abstract operation 1762// https://tc39.es/ecma262/#sec-tolength 1763module.exports = function (argument) { 1764 return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 1765}; 1766 1767 1768/***/ }), 1769
vendor: 645 bytes, lines 1770-1786
1770/***/ "./node_modules/core-js/internals/to-object.js": 1771/*!*****************************************************!*\ 1772 !*** ./node_modules/core-js/internals/to-object.js ***! 1773 \*****************************************************/ 1774/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1775 1776var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js"); 1777 1778// `ToObject` abstract operation 1779// https://tc39.es/ecma262/#sec-toobject 1780module.exports = function (argument) { 1781 return Object(requireObjectCoercible(argument)); 1782}; 1783 1784 1785/***/ }), 1786
vendor: 1,167 bytes, lines 1787-1810
1787/***/ "./node_modules/core-js/internals/to-primitive.js": 1788/*!********************************************************!*\ 1789 !*** ./node_modules/core-js/internals/to-primitive.js ***! 1790 \********************************************************/ 1791/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1792 1793var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 1794 1795// `ToPrimitive` abstract operation 1796// https://tc39.es/ecma262/#sec-toprimitive 1797// instead of the ES6 spec version, we didn't implement @@toPrimitive case 1798// and the second argument - flag - preferred type is a string 1799module.exports = function (input, PREFERRED_STRING) { 1800 if (!isObject(input)) return input; 1801 var fn, val; 1802 if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; 1803 if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val; 1804 if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; 1805 throw TypeError("Can't convert object to primitive value"); 1806}; 1807 1808 1809/***/ }), 1810
vendor: 424 bytes, lines 1811-1826
1811/***/ "./node_modules/core-js/internals/uid.js": 1812/*!***********************************************!*\ 1813 !*** ./node_modules/core-js/internals/uid.js ***! 1814 \***********************************************/ 1815/***/ (function(module) { 1816 1817var id = 0; 1818var postfix = Math.random(); 1819 1820module.exports = function (key) { 1821 return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); 1822}; 1823 1824 1825/***/ }), 1826
vendor: 627 bytes, lines 1827-1842
1827/***/ "./node_modules/core-js/internals/use-symbol-as-uid.js": 1828/*!*************************************************************!*\ 1829 !*** ./node_modules/core-js/internals/use-symbol-as-uid.js ***! 1830 \*************************************************************/ 1831/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1832 1833/* eslint-disable es/no-symbol -- required for testing */ 1834var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ "./node_modules/core-js/internals/native-symbol.js"); 1835 1836module.exports = NATIVE_SYMBOL 1837 && !Symbol.sham 1838 && typeof Symbol.iterator == 'symbol'; 1839 1840 1841/***/ }), 1842
vendor: 1,580 bytes, lines 1843-1872
1843/***/ "./node_modules/core-js/internals/well-known-symbol.js": 1844/*!*************************************************************!*\ 1845 !*** ./node_modules/core-js/internals/well-known-symbol.js ***! 1846 \*************************************************************/ 1847/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1848 1849var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 1850var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js"); 1851var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); 1852var uid = __webpack_require__(/*! ../internals/uid */ "./node_modules/core-js/internals/uid.js"); 1853var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ "./node_modules/core-js/internals/native-symbol.js"); 1854var USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ "./node_modules/core-js/internals/use-symbol-as-uid.js"); 1855 1856var WellKnownSymbolsStore = shared('wks'); 1857var Symbol = global.Symbol; 1858var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; 1859 1860module.exports = function (name) { 1861 if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) { 1862 if (NATIVE_SYMBOL && has(Symbol, name)) { 1863 WellKnownSymbolsStore[name] = Symbol[name]; 1864 } else { 1865 WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); 1866 } 1867 } return WellKnownSymbolsStore[name]; 1868}; 1869 1870 1871/***/ }), 1872
vendor: 751 bytes, lines 1873-1892
1873/***/ "./node_modules/core-js/modules/es.regexp.exec.js": 1874/*!********************************************************!*\ 1875 !*** ./node_modules/core-js/modules/es.regexp.exec.js ***! 1876 \********************************************************/ 1877/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 1878 1879"use strict"; 1880 1881var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 1882var exec = __webpack_require__(/*! ../internals/regexp-exec */ "./node_modules/core-js/internals/regexp-exec.js"); 1883 1884// `RegExp.prototype.exec` method 1885// https://tc39.es/ecma262/#sec-regexp.prototype.exec 1886$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, { 1887 exec: exec 1888}); 1889 1890 1891/***/ }), 1892
vendor: 1,378 bytes, lines 1893-1916
1893/***/ "./node_modules/core-js/modules/web.dom-collections.for-each.js": 1894/*!**********************************************************************!*\ 1895 !*** ./node_modules/core-js/modules/web.dom-collections.for-each.js ***! 1896 \**********************************************************************/ 1897/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 1898 1899var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 1900var DOMIterables = __webpack_require__(/*! ../internals/dom-iterables */ "./node_modules/core-js/internals/dom-iterables.js"); 1901var forEach = __webpack_require__(/*! ../internals/array-for-each */ "./node_modules/core-js/internals/array-for-each.js"); 1902var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); 1903 1904for (var COLLECTION_NAME in DOMIterables) { 1905 var Collection = global[COLLECTION_NAME]; 1906 var CollectionPrototype = Collection && Collection.prototype; 1907 // some Chrome versions have non-configurable methods on DOMTokenList 1908 if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try { 1909 createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach); 1910 } catch (error) { 1911 CollectionPrototype.forEach = forEach; 1912 } 1913} 1914 1915 1916/***/ })
1916 1917 1918}, 1919/******/ function(__webpack_require__) { // webpackRuntimeModules 1920/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } 1921/******/ var __webpack_exports__ = (__webpack_exec__("./resources/js/super-scripts.js")); 1922/******/ } 1923]); 1924//# sourceMappingURL=data:application/json;charset=utf-8;base64,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sbUJBQU8sQ0FBQyx1RUFBcUI7QUFDMUMsVUFBVSxtQkFBTyxDQUFDLGlFQUFrQjtBQUNwQyxVQUFVLG1CQUFPLENBQUMsaUVBQWtCO0FBQ3BDLG9CQUFvQixtQkFBTyxDQUFDLHFGQUE0QjtBQUN4RCx3QkFBd0IsbUJBQU8sQ0FBQyw2RkFBZ0M7O0FBRWhFO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7Ozs7Ozs7Ozs7QUNuQmE7QUFDYixRQUFRLG1CQUFPLENBQUMsdUVBQXFCO0FBQ3JDLFdBQVcsbUJBQU8sQ0FBQyxpRkFBMEI7O0FBRTdDO0FBQ0E7QUFDQSxJQUFJLDBEQUEwRDtBQUM5RDtBQUNBLENBQUM7Ozs7Ozs7Ozs7O0FDUkQsYUFBYSxtQkFBTyxDQUFDLHVFQUFxQjtBQUMxQyxtQkFBbUIsbUJBQU8sQ0FBQyxxRkFBNEI7QUFDdkQsY0FBYyxtQkFBTyxDQUFDLHVGQUE2QjtBQUNuRCxrQ0FBa0MsbUJBQU8sQ0FBQyx1SEFBNkM7O0FBRXZGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9odXNoY29yZS8uL3Jlc291cmNlcy9qcy9zdXBlci1zY3JpcHRzLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2EtZnVuY3Rpb24uanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYW4tb2JqZWN0LmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LWZvci1lYWNoLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LWluY2x1ZGVzLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbi5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1tZXRob2QtaXMtc3RyaWN0LmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LXNwZWNpZXMtY3JlYXRlLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NsYXNzb2YtcmF3LmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NvcHktY29uc3RydWN0b3ItcHJvcGVydGllcy5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3IuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZGVzY3JpcHRvcnMuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZG9jdW1lbnQtY3JlYXRlLWVsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZG9tLWl0ZXJhYmxlcy5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lbmdpbmUtdXNlci1hZ2VudC5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lbmdpbmUtdjgtdmVyc2lvbi5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lbnVtLWJ1Zy1rZXlzLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2V4cG9ydC5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9mYWlscy5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLWNvbnRleHQuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2dsb2JhbC5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9oYXMuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaGlkZGVuLWtleXMuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaHRtbC5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pZTgtZG9tLWRlZmluZS5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pbmRleGVkLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pbnNwZWN0LXNvdXJjZS5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZS5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1hcnJheS5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1mb3JjZWQuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtb2JqZWN0LmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2lzLXB1cmUuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbmF0aXZlLXN5bWJvbC5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9uYXRpdmUtd2Vhay1tYXAuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWNyZWF0ZS5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnRpZXMuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWtleXMtaW50ZXJuYWwuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWtleXMuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LXByb3BlcnR5LWlzLWVudW1lcmFibGUuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb3duLWtleXMuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcGF0aC5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZWRlZmluZS5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZWdleHAtZXhlYy5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZWdleHAtZmxhZ3MuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcmVnZXhwLXN0aWNreS1oZWxwZXJzLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3JlZ2V4cC11bnN1cHBvcnRlZC1kb3QtYWxsLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3JlZ2V4cC11bnN1cHBvcnRlZC1uY2cuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3NldC1nbG9iYWwuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc2hhcmVkLWtleS5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zaGFyZWQtc3RvcmUuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc2hhcmVkLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4LmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0LmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLWludGVnZXIuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8tbGVuZ3RoLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1wcmltaXRpdmUuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdWlkLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3VzZS1zeW1ib2wtYXMtdWlkLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYy5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xs
1924ZWN0aW9ucy5mb3ItZWFjaC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIChldmVudCkgPT4ge1xuXHRjb25zb2xlLmxvZygnaGVsbG8nKTtcblx0XG5cdGxldCBtbXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbW10Jyk7XG5cdGlmKG1tdCl7XG5cdFx0bW10LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZSA9PiB7XG5cdFx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ3NtbScpO1xuXHRcdFx0Y29uc29sZS5sb2coJ3Nob3cgbW9iaWxlIG1lbnUnKTtcblx0XHR9KTtcblx0fVxuXHRcblx0Y29uc3QgZG9jU3BlY0Rvd25sb2FkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZG9jcy1hbmQtc3BlY3MgdWwgbGkgYVwiKTtcblx0Y29uc29sZS5sb2coJ2RvY1NwZWNEb3dubG9hZHM6ICcsIGRvY1NwZWNEb3dubG9hZHMpO1xuXHRkb2NTcGVjRG93bmxvYWRzLmZvckVhY2goXG5cdFx0XHRmdW5jdGlvbih2LCBpKSB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCd3YWZ1OiAnLCB2ICsgJywgJyArIGkgKyAnLCAnICsgdGhpcyk7XG5cdFx0XHRcdGxldCByZSA9IC8oPzpcXC4oW14uXSspKT8kLztcblx0XHRcdFx0bGV0IGV4dCA9IHJlLmV4ZWModilbMV07ICAgLy8gXCJ0eHRcIlxuXHRcdFx0XHRkb2NTcGVjRG93bmxvYWRzW2ldLmNsYXNzTGlzdC5hZGQoZXh0KTtcblx0XHRcdH1cblx0KTtcblx0XG5cdGNvbnN0IHBkb3RzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5wZG90XCIpO1xuXHRpZihwZG90cyl7XG5cdFx0cGRvdHMuZm9yRWFjaChmdW5jdGlvbih2LCBpKSB7XG5cdFx0XHRwZG90c1tpXS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGUgPT4ge1xuXHRcdFx0XHRsZXQgY2hpbGRyZW4gPSBwZG90c1tpXS5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3JBbGwoJy5wZG90Jyk7XG5cdFx0XHRcdGNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24odnYsIGlpKSB7XG5cdFx0XHRcdFx0Y2hpbGRyZW5baWldLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0cGRvdHNbaV0uY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXHRcblx0XG5cdFJldmVhbC5pbml0aWFsaXplKHtcblx0XHRjb250cm9sczogZmFsc2UsXG5cdFx0cHJvZ3Jlc3M6IGZhbHNlLFxuXHRcdGxvb3A6IHRydWUsXG5cdFx0Y2VudGVyOiB0cnVlLFxuXHRcdGhhc2g6IHRydWUsXG5cdFx0dHJhbnNpdGlvbjogJ2ZhZGUnLCAvLyBub25lL2ZhZGUvc2xpZGUvY29udmV4L2NvbmNhdmUvem9vbVxuXHRcdGRpc2FibGVMYXlvdXQ6IGZhbHNlLFxuXHRcdFxuXHRcdFxuXHRcdC8vIFRoZSBcIm5vcm1hbFwiIHNpemUgb2YgdGhlIHByZXNlbnRhdGlvbiwgYXNwZWN0IHJhdGlvIHdpbGxcblx0XHQvLyBiZSBwcmVzZXJ2ZWQgd2hlbiB0aGUgcHJlc2VudGF0aW9uIGlzIHNjYWxlZCB0byBmaXQgZGlmZmVyZW50XG5cdFx0Ly8gcmVzb2x1dGlvbnMuIENhbiBiZSBzcGVjaWZpZWQgdXNpbmcgcGVyY2VudGFnZSB1bml0cy5cblx0XHR3aWR0aDogOTYwLFxuXHRcdGhlaWdodDogNzAwLFxuXHRcdFxuXHRcdC8vIEZhY3RvciBvZiB0aGUgZGlzcGxheSBzaXplIHRoYXQgc2hvdWxkIHJlbWFpbiBlbXB0eSBhcm91bmRcblx0XHQvLyB0aGUgY29udGVudFxuXHRcdG1hcmdpbjogMC4wNCxcblx0XHRcblx0XHQvLyBCb3VuZHMgZm9yIHNtYWxsZXN0L2xhcmdlc3QgcG9zc2libGUgc2NhbGUgdG8gYXBwbHkgdG8gY29udGVudFxuXHRcdG1pblNjYWxlOiAwLjIsXG5cdFx0bWF4U2NhbGU6IDIuMFxuXHRcblx0XG5cdH0pO1xuXHRcblxuXHQvKlxuXG5cdGNvbnN0IHNsaWRlU2hvd0RvdHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNsaWRlU2hvd0RvdHMgbGlcIik7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgc2xpZGVTaG93RG90cy5sZW5ndGg7IGkrKykge1xuXHRcdHNsaWRlU2hvd0RvdHNbaV0uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBlID0+IHtcblx0XHRcdGNoYW5nZVNsaWRlKGUpO1xuXHRcdH0pO1xuXHR9XG5cdFxuXHRjb25zdCBzbGlkZVNob3dBcnJvd3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNsaWRlU2hvd0Fycm93XCIpO1xuXHRmb3IgKGxldCBpID0gMDsgaSA8IHNsaWRlU2hvd0Fycm93cy5sZW5ndGg7IGkrKykge1xuXHRcdHNsaWRlU2hvd0Fycm93c1tpXS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGUgPT4ge1xuXHRcdFx0Y2hhbmdlU2xpZGUoZSk7XG5cdFx0fSk7XG5cdH1cblx0XG5cdGNvbnN0IGNoYW5nZVNsaWRlID0gKGUpID0+IHtcblx0XHRjb25zdCBjb250YWluZXIgPSBlLnRhcmdldC5wYXJlbnROb2RlLnBhcmVudE5vZGUsXG5cdFx0XHRcdHNsaWRlcyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKFwiLnNsaWRlU2hvd1NsaWRlcyBsaVwiKSxcblx0XHRcdFx0ZG90cyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKFwiLnNsaWRlU2hvd0RvdHMgbGlcIik7XG5cdFx0bGV0IHggPSAwLFxuXHRcdFx0XHRzID0gMDtcblx0XHRcblx0XHQvLyBkb3RzXG5cdFx0aWYoZS50YXJnZXQudGFnTmFtZSA9PT0gJ0xJJyl7IHMgPSBbXS5pbmRleE9mLmNhbGwoZS50YXJnZXQucGFyZW50Tm9kZS5jaGlsZHJlbiwgZS50YXJnZXQpOyB9XG5cdFx0XG5cdFx0Ly8gYm90aFxuXHRcdGZvciAobGV0IGEgPSAwOyBhIDwgZG90cy5sZW5ndGg7IGErKykge1xuXHRcdFx0aWYoZS50YXJnZXQudGFnTmFtZSA9PT0gJ0RJVicgJiYgc2xpZGVzW2FdLmNsYXNzTGlzdC5jb250YWlucygnYWN0aXZlJykpeyB4ID0gYTsgfVxuXHRcdFx0ZG90c1thXS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTtcblx0XHRcdHNsaWRlc1thXS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTtcblx0XHR9XG5cdFx0XG5cdFx0Ly8gYXJyb3dzXG5cdFx0aWYoZS50YXJnZXQudGFnTmFtZSA9PT0gJ0RJVicpe1xuXHRcdFx0aWYoZS50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCduZXh0JykpeyBpZih4ICsgMSA+PSBzbGlkZXMubGVuZ3RoKSB7IHMgP
1924SAwOyB9IGVsc2UgeyBzID0geCArIDE7IH0gfVxuXHRcdFx0ZWxzZSB7IGlmKHggLSAxIDwgMCkgeyBzID0gc2xpZGVzLmxlbmd0aCAtIDE7IH0gZWxzZSB7IHMgPSB4IC0gMTsgfSB9XG5cdFx0fVxuXHRcdGRvdHNbc10uY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7XG5cdFx0c2xpZGVzW3NdLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpO1xuXHR9XG5cdFxuXHQgKi9cblx0XG5cdFxufSk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAodHlwZW9mIGl0ICE9ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoU3RyaW5nKGl0KSArICcgaXMgbm90IGEgZnVuY3Rpb24nKTtcbiAgfSByZXR1cm4gaXQ7XG59O1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoIWlzT2JqZWN0KGl0KSkge1xuICAgIHRocm93IFR5cGVFcnJvcihTdHJpbmcoaXQpICsgJyBpcyBub3QgYW4gb2JqZWN0Jyk7XG4gIH0gcmV0dXJuIGl0O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkZm9yRWFjaCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1pdGVyYXRpb24nKS5mb3JFYWNoO1xudmFyIGFycmF5TWV0aG9kSXNTdHJpY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWlzLXN0cmljdCcpO1xuXG52YXIgU1RSSUNUX01FVEhPRCA9IGFycmF5TWV0aG9kSXNTdHJpY3QoJ2ZvckVhY2gnKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5mb3JFYWNoYCBtZXRob2QgaW1wbGVtZW50YXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZvcmVhY2hcbm1vZHVsZS5leHBvcnRzID0gIVNUUklDVF9NRVRIT0QgPyBmdW5jdGlvbiBmb3JFYWNoKGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gIHJldHVybiAkZm9yRWFjaCh0aGlzLCBjYWxsYmFja2ZuLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tYXJyYXktcHJvdG90eXBlLWZvcmVhY2ggLS0gc2FmZVxufSA6IFtdLmZvckVhY2g7XG4iLCJ2YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4Jyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUueyBpbmRleE9mLCBpbmNsdWRlcyB9YCBtZXRob2RzIGltcGxlbWVudGF0aW9uXG52YXIgY3JlYXRlTWV0aG9kID0gZnVuY3Rpb24gKElTX0lOQ0xVREVTKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMsIGVsLCBmcm9tSW5kZXgpIHtcbiAgICB2YXIgTyA9IHRvSW5kZXhlZE9iamVjdCgkdGhpcyk7XG4gICAgdmFyIGxlbmd0aCA9IHRvTGVuZ3RoKE8ubGVuZ3RoKTtcbiAgICB2YXIgaW5kZXggPSB0b0Fic29sdXRlSW5kZXgoZnJvbUluZGV4LCBsZW5ndGgpO1xuICAgIHZhciB2YWx1ZTtcbiAgICAvLyBBcnJheSNpbmNsdWRlcyB1c2VzIFNhbWVWYWx1ZVplcm8gZXF1YWxpdHkgYWxnb3JpdGhtXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgICBpZiAoSVNfSU5DTFVERVMgJiYgZWwgIT0gZWwpIHdoaWxlIChsZW5ndGggPiBpbmRleCkge1xuICAgICAgdmFsdWUgPSBPW2luZGV4KytdO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgICAgIGlmICh2YWx1ZSAhPSB2YWx1ZSkgcmV0dXJuIHRydWU7XG4gICAgLy8gQXJyYXkjaW5kZXhPZiBpZ25vcmVzIGhvbGVzLCBBcnJheSNpbmNsdWRlcyAtIG5vdFxuICAgIH0gZWxzZSBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykge1xuICAgICAgaWYgKChJU19JTkNMVURFUyB8fCBpbmRleCBpbiBPKSAmJiBPW2luZGV4XSA9PT0gZWwpIHJldHVybiBJU19JTkNMVURFUyB8fCBpbmRleCB8fCAwO1xuICAgIH0gcmV0dXJuICFJU19JTkNMVURFUyAmJiAtMTtcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgQXJyYXkucHJvdG90eXBlLmluY2x1ZGVzYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuaW5jbHVkZXNcbiAgaW5jbHVkZXM6IGNyZWF0ZU1ldGhvZCh0cnVlKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5pbmRleE9mYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuaW5kZXhvZlxuICBpbmRleE9mOiBjcmVhdGVNZXRob2QoZmFsc2UpXG59O1xuIiwidmFyIGJpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0Jyk7XG52YXIgSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xudmFyIGFycmF5U3BlY2llc0NyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1zcGVjaWVzLWNyZWF0ZScpO1xuXG52YXIgcHVzaCA9IFtdLnB1c2g7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUueyBmb3JFYWNoLCBtYXAsIGZpbHRlciwgc29tZSwgZXZlcnksIGZpbmQsIGZpbmRJbmRleCwgZmlsdGVyT3V0IH1gIG1ldGhvZHMgaW1wbGVtZW50YXRpb25cbnZhciBjcmVhdGVNZXRob2QgPSBmdW5jdGlvbiAoVFlQRSkge1xuICB2YXIgSVNfTUFQID0gVFlQRSA9PSAxO1xuICB2YXIgSVNfRklMVEVSID0gVFlQRSA9PSAyO1xuICB2YXIgSVNfU09NRSA9IFRZUEUgPT0gMztcbiAgdmFyIElTX0VWRVJZID0gVFlQRSA9PSA0O1xuICB2YXIgSVNfRklORF9JTkRFWCA9I
1924FRZUEUgPT0gNjtcbiAgdmFyIElTX0ZJTFRFUl9PVVQgPSBUWVBFID09IDc7XG4gIHZhciBOT19IT0xFUyA9IFRZUEUgPT0gNSB8fCBJU19GSU5EX0lOREVYO1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBjYWxsYmFja2ZuLCB0aGF0LCBzcGVjaWZpY0NyZWF0ZSkge1xuICAgIHZhciBPID0gdG9PYmplY3QoJHRoaXMpO1xuICAgIHZhciBzZWxmID0gSW5kZXhlZE9iamVjdChPKTtcbiAgICB2YXIgYm91bmRGdW5jdGlvbiA9IGJpbmQoY2FsbGJhY2tmbiwgdGhhdCwgMyk7XG4gICAgdmFyIGxlbmd0aCA9IHRvTGVuZ3RoKHNlbGYubGVuZ3RoKTtcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIHZhciBjcmVhdGUgPSBzcGVjaWZpY0NyZWF0ZSB8fCBhcnJheVNwZWNpZXNDcmVhdGU7XG4gICAgdmFyIHRhcmdldCA9IElTX01BUCA/IGNyZWF0ZSgkdGhpcywgbGVuZ3RoKSA6IElTX0ZJTFRFUiB8fCBJU19GSUxURVJfT1VUID8gY3JlYXRlKCR0aGlzLCAwKSA6IHVuZGVmaW5lZDtcbiAgICB2YXIgdmFsdWUsIHJlc3VsdDtcbiAgICBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykgaWYgKE5PX0hPTEVTIHx8IGluZGV4IGluIHNlbGYpIHtcbiAgICAgIHZhbHVlID0gc2VsZltpbmRleF07XG4gICAgICByZXN1bHQgPSBib3VuZEZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgTyk7XG4gICAgICBpZiAoVFlQRSkge1xuICAgICAgICBpZiAoSVNfTUFQKSB0YXJnZXRbaW5kZXhdID0gcmVzdWx0OyAvLyBtYXBcbiAgICAgICAgZWxzZSBpZiAocmVzdWx0KSBzd2l0Y2ggKFRZUEUpIHtcbiAgICAgICAgICBjYXNlIDM6IHJldHVybiB0cnVlOyAgICAgICAgICAgICAgLy8gc29tZVxuICAgICAgICAgIGNhc2UgNTogcmV0dXJuIHZhbHVlOyAgICAgICAgICAgICAvLyBmaW5kXG4gICAgICAgICAgY2FzZSA2OiByZXR1cm4gaW5kZXg7ICAgICAgICAgICAgIC8vIGZpbmRJbmRleFxuICAgICAgICAgIGNhc2UgMjogcHVzaC5jYWxsKHRhcmdldCwgdmFsdWUpOyAvLyBmaWx0ZXJcbiAgICAgICAgfSBlbHNlIHN3aXRjaCAoVFlQRSkge1xuICAgICAgICAgIGNhc2UgNDogcmV0dXJuIGZhbHNlOyAgICAgICAgICAgICAvLyBldmVyeVxuICAgICAgICAgIGNhc2UgNzogcHVzaC5jYWxsKHRhcmdldCwgdmFsdWUpOyAvLyBmaWx0ZXJPdXRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gSVNfRklORF9JTkRFWCA/IC0xIDogSVNfU09NRSB8fCBJU19FVkVSWSA/IElTX0VWRVJZIDogdGFyZ2V0O1xuICB9O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZm9yRWFjaGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZvcmVhY2hcbiAgZm9yRWFjaDogY3JlYXRlTWV0aG9kKDApLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLm1hcGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLm1hcFxuICBtYXA6IGNyZWF0ZU1ldGhvZCgxKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5maWx0ZXJgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5maWx0ZXJcbiAgZmlsdGVyOiBjcmVhdGVNZXRob2QoMiksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuc29tZWAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLnNvbWVcbiAgc29tZTogY3JlYXRlTWV0aG9kKDMpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmV2ZXJ5YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZXZlcnlcbiAgZXZlcnk6IGNyZWF0ZU1ldGhvZCg0KSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5maW5kYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZmluZFxuICBmaW5kOiBjcmVhdGVNZXRob2QoNSksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZmluZEluZGV4YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZmluZEluZGV4XG4gIGZpbmRJbmRleDogY3JlYXRlTWV0aG9kKDYpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmZpbHRlck91dGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWFycmF5LWZpbHRlcmluZ1xuICBmaWx0ZXJPdXQ6IGNyZWF0ZU1ldGhvZCg3KVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChNRVRIT0RfTkFNRSwgYXJndW1lbnQpIHtcbiAgdmFyIG1ldGhvZCA9IFtdW01FVEhPRF9OQU1FXTtcbiAgcmV0dXJuICEhbWV0aG9kICYmIGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1jYWxsLG5vLXRocm93LWxpdGVyYWwgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgICBtZXRob2QuY2FsbChudWxsLCBhcmd1bWVudCB8fCBmdW5jdGlvbiAoKSB7IHRocm93IDE7IH0sIDEpO1xuICB9KTtcbn07XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1hcnJheScpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgU1BFQ0lFUyA9IHdlbGxLbm93blN5bWJvbCgnc3BlY2llcycpO1xuXG4vLyBgQXJyYXlTcGVjaWVzQ3JlYXRlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXlzcGVjaWVzY3JlYXRlXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvcmlnaW5hbEFycmF5LCBsZW5ndGgpIHtcbiAgdmFyIEM7XG4gIGlmIChpc0FycmF5KG9yaWdpbmFsQXJyYXkpKSB7XG4gICAgQyA9IG9yaWdpbmFsQXJyYXkuY29uc3RydWN0b3I7XG4gICAgLy8gY3Jvc3MtcmVhbG0gZmFsbGJhY2tcbiAgICBpZiAodHlwZW9mIEMgPT0gJ2Z1bmN0aW9uJyAmJiAoQyA9PT0gQXJyYXkgfHwgaXNBcnJheShDLnByb3RvdHlwZSkpKSBDID0gdW5kZWZpbmVkO1xuICAgIGVsc2UgaWYgKGlzT2JqZWN0KEMpKSB7XG4gICAgICBDID0gQ1tTUEVDSUVTXTtcbiAgICAgIGlmIChDID09PSBudWxsKSBDID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSByZXR1cm4gbmV3IChDID09PSB1bmRlZmluZWQgPyBBcnJheSA6IEMpKGxlbmd0aCA9PT0gMCA/IDAgOiBsZW5ndGgpO1xufTtcbiIsInZhciB0b1N0cmluZyA9IHt9LnRvU3RyaW5nO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdG9TdHJpbmcuY2FsbChpdCkuc2xpY2UoOCwgLTEpO1xufTtcbiIsInZhciBoYXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzJyk7XG52YXIgb3duS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vd24ta2V5cycpO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh0YXJnZXQsIHNvdXJjZSkge1xuICB2YXIga2V5cyA9IG93bktleXMoc291cmNlKTtcbiAgdmFyIGRlZmluZVByb3BlcnR5ID0gZGVmaW5lUHJvcGVydHlNb2R1bGUuZjtcbiAgdmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZS5mO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIga2V5ID0ga2V5c1tpXTtcbiAgICBpZiAoIWhhcyh0YXJnZXQsIGtleSkpIGRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTtcbiAgfVxufTtcbiIsInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcbnZhciBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBERVNDUklQVE9SUyA/IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIGRlZmluZVByb3BlcnR5TW9kdWxlLmYob2JqZWN0LCBrZXksIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcigxLCB2YWx1ZSkpO1xufSA6IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgcmV0dXJuIG9iamVjdDtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChiaXRtYXAsIHZhbHVlKSB7XG4gIHJldHVybi
1924B7XG4gICAgZW51bWVyYWJsZTogIShiaXRtYXAgJiAxKSxcbiAgICBjb25maWd1cmFibGU6ICEoYml0bWFwICYgMiksXG4gICAgd3JpdGFibGU6ICEoYml0bWFwICYgNCksXG4gICAgdmFsdWU6IHZhbHVlXG4gIH07XG59O1xuIiwidmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbi8vIERldGVjdCBJRTgncyBpbmNvbXBsZXRlIGRlZmluZVByb3BlcnR5IGltcGxlbWVudGF0aW9uXG5tb2R1bGUuZXhwb3J0cyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgMSwgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSlbMV0gIT0gNztcbn0pO1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcblxudmFyIGRvY3VtZW50ID0gZ2xvYmFsLmRvY3VtZW50O1xuLy8gdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgaXMgJ29iamVjdCcgaW4gb2xkIElFXG52YXIgRVhJU1RTID0gaXNPYmplY3QoZG9jdW1lbnQpICYmIGlzT2JqZWN0KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gRVhJU1RTID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdCkgOiB7fTtcbn07XG4iLCIvLyBpdGVyYWJsZSBET00gY29sbGVjdGlvbnNcbi8vIGZsYWcgLSBgaXRlcmFibGVgIGludGVyZmFjZSAtICdlbnRyaWVzJywgJ2tleXMnLCAndmFsdWVzJywgJ2ZvckVhY2gnIG1ldGhvZHNcbm1vZHVsZS5leHBvcnRzID0ge1xuICBDU1NSdWxlTGlzdDogMCxcbiAgQ1NTU3R5bGVEZWNsYXJhdGlvbjogMCxcbiAgQ1NTVmFsdWVMaXN0OiAwLFxuICBDbGllbnRSZWN0TGlzdDogMCxcbiAgRE9NUmVjdExpc3Q6IDAsXG4gIERPTVN0cmluZ0xpc3Q6IDAsXG4gIERPTVRva2VuTGlzdDogMSxcbiAgRGF0YVRyYW5zZmVySXRlbUxpc3Q6IDAsXG4gIEZpbGVMaXN0OiAwLFxuICBIVE1MQWxsQ29sbGVjdGlvbjogMCxcbiAgSFRNTENvbGxlY3Rpb246IDAsXG4gIEhUTUxGb3JtRWxlbWVudDogMCxcbiAgSFRNTFNlbGVjdEVsZW1lbnQ6IDAsXG4gIE1lZGlhTGlzdDogMCxcbiAgTWltZVR5cGVBcnJheTogMCxcbiAgTmFtZWROb2RlTWFwOiAwLFxuICBOb2RlTGlzdDogMSxcbiAgUGFpbnRSZXF1ZXN0TGlzdDogMCxcbiAgUGx1Z2luOiAwLFxuICBQbHVnaW5BcnJheTogMCxcbiAgU1ZHTGVuZ3RoTGlzdDogMCxcbiAgU1ZHTnVtYmVyTGlzdDogMCxcbiAgU1ZHUGF0aFNlZ0xpc3Q6IDAsXG4gIFNWR1BvaW50TGlzdDogMCxcbiAgU1ZHU3RyaW5nTGlzdDogMCxcbiAgU1ZHVHJhbnNmb3JtTGlzdDogMCxcbiAgU291cmNlQnVmZmVyTGlzdDogMCxcbiAgU3R5bGVTaGVldExpc3Q6IDAsXG4gIFRleHRUcmFja0N1ZUxpc3Q6IDAsXG4gIFRleHRUcmFja0xpc3Q6IDAsXG4gIFRvdWNoTGlzdDogMFxufTtcbiIsInZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEJ1aWx0SW4oJ25hdmlnYXRvcicsICd1c2VyQWdlbnQnKSB8fCAnJztcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgdXNlckFnZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VuZ2luZS11c2VyLWFnZW50Jyk7XG5cbnZhciBwcm9jZXNzID0gZ2xvYmFsLnByb2Nlc3M7XG52YXIgdmVyc2lvbnMgPSBwcm9jZXNzICYmIHByb2Nlc3MudmVyc2lvbnM7XG52YXIgdjggPSB2ZXJzaW9ucyAmJiB2ZXJzaW9ucy52ODtcbnZhciBtYXRjaCwgdmVyc2lvbjtcblxuaWYgKHY4KSB7XG4gIG1hdGNoID0gdjguc3BsaXQoJy4nKTtcbiAgdmVyc2lvbiA9IG1hdGNoWzBdIDwgNCA/IDEgOiBtYXRjaFswXSArIG1hdGNoWzFdO1xufSBlbHNlIGlmICh1c2VyQWdlbnQpIHtcbiAgbWF0Y2ggPSB1c2VyQWdlbnQubWF0Y2goL0VkZ2VcXC8oXFxkKykvKTtcbiAgaWYgKCFtYXRjaCB8fCBtYXRjaFsxXSA+PSA3NCkge1xuICAgIG1hdGNoID0gdXNlckFnZW50Lm1hdGNoKC9DaHJvbWVcXC8oXFxkKykvKTtcbiAgICBpZiAobWF0Y2gpIHZlcnNpb24gPSBtYXRjaFsxXTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHZlcnNpb24gJiYgK3ZlcnNpb247XG4iLCIvLyBJRTgtIGRvbid0IGVudW0gYnVnIGtleXNcbm1vZHVsZS5leHBvcnRzID0gW1xuICAnY29uc3RydWN0b3InLFxuICAnaGFzT3duUHJvcGVydHknLFxuICAnaXNQcm90b3R5cGVPZicsXG4gICdwcm9wZXJ0eUlzRW51bWVyYWJsZScsXG4gICd0b0xvY2FsZVN0cmluZycsXG4gICd0b1N0cmluZycsXG4gICd2YWx1ZU9mJ1xuXTtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3InKS5mO1xudmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHknKTtcbnZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWRlZmluZScpO1xudmFyIHNldEdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtZ2xvYmFsJyk7XG52YXIgY29weUNvbnN0cnVjdG9yUHJvcGVydGllcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jb3B5LWNvbnN0cnVjdG9yLXByb3BlcnRpZXMnKTtcbnZhciBpc0ZvcmNlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1mb3JjZWQnKTtcblxuLypcbiAgb3B0aW9ucy50YXJnZXQgICAgICAtIG5hbWUgb2YgdGhlIHRhcmdldCBvYmplY3RcbiAgb3B0aW9ucy5nbG9iYWwgICAgICAtIHRhcmdldCBpcyB0aGUgZ2xvYmFsIG9iamVjdFxuICBvcHRpb25zLnN0YXQgICAgICAgIC0gZXhwb3J0IGFzIHN0YXRpYyBtZXRob2RzIG9mIHRhcmdldFxuICBvcHRpb25zLnByb3RvICAgICAgIC0gZXhwb3J0IGFzIHByb3RvdHlwZSBtZXRob2RzIG9mIHRhcmdldFxuICBvcHRpb25zLnJlYWwgICAgICAgIC0gcmVhbCBwcm90b3R5cGUgbWV0aG9kIGZvciB0aGUgYHB1cmVgIHZlcnNpb25cbiAgb3B0aW9ucy5mb3JjZWQgICAgICAtIGV4cG9ydCBldmVuIGlmIHRoZSBuYXRpdmUgZmVhdHVyZSBpcyBhdmFpbGFibGVcbiAgb3B0aW9ucy5iaW5kICAgICAgICAtIGJpbmQgbWV0aG9kcyB0byB0aGUgdGFyZ2V0LCByZXF1aXJlZCBmb3IgdGhlIGBwdXJlYCB2ZXJzaW9uXG4gIG9wdGlvbnMud3JhcCAgICAgICAgLSB3cmFwIGNvbnN0cnVjdG9ycyB0byBwcmV2ZW50aW5nIGdsb2JhbCBwb2xsdXRpb24sIHJlcXVpcmVkIGZvciB0aGUgYHB1cmVgIHZlcnNpb25cbiAgb3B0aW9ucy51bnNhZmUgICAgICAtIHVzZSB0aGUgc2ltcGxlIGFzc2lnbm1lbnQgb2YgcHJvcGVydHkgaW5zdGVhZCBvZiBkZWxldGUgKyBkZWZpbmVQcm9wZXJ0eVxuICBvcHRpb25zLnNoYW0gICAgICAgIC0gYWRkIGEgZmxhZyB0byBub3QgY29tcGxldGVseSBmdWxsIHBvbHlmaWxsc1xuICBvcHRpb25zLmVudW1lcmFibGUgIC0gZXhwb3J0IGFzIGVudW1lcmFibGUgcHJvcGVydHlcbiAgb3B0aW9ucy5ub1RhcmdldEdldCAtIHByZXZlbnQgY2FsbGluZyBhIGdldHRlciBvbiB0YXJnZXRcbiovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvcHRpb25zLCBzb3VyY2UpIHtcbiAgdmFyIFRBUkdFVCA9IG9wdGlvbnMudGFyZ2V0O1xuICB2YXIgR0xPQkFMID0gb3B0aW9ucy5nbG9iYWw7XG4gIHZhciBTVEFUSUMgPSBvcHRpb25zLnN0YXQ7XG4gIHZhciBGT1JDRUQsIHRhcmdldCwga2V5LCB0YXJnZXRQcm9wZXJ0eSwgc291cmNlUHJv
1924cGVydHksIGRlc2NyaXB0b3I7XG4gIGlmIChHTE9CQUwpIHtcbiAgICB0YXJnZXQgPSBnbG9iYWw7XG4gIH0gZWxzZSBpZiAoU1RBVElDKSB7XG4gICAgdGFyZ2V0ID0gZ2xvYmFsW1RBUkdFVF0gfHwgc2V0R2xvYmFsKFRBUkdFVCwge30pO1xuICB9IGVsc2Uge1xuICAgIHRhcmdldCA9IChnbG9iYWxbVEFSR0VUXSB8fCB7fSkucHJvdG90eXBlO1xuICB9XG4gIGlmICh0YXJnZXQpIGZvciAoa2V5IGluIHNvdXJjZSkge1xuICAgIHNvdXJjZVByb3BlcnR5ID0gc291cmNlW2tleV07XG4gICAgaWYgKG9wdGlvbnMubm9UYXJnZXRHZXQpIHtcbiAgICAgIGRlc2NyaXB0b3IgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpO1xuICAgICAgdGFyZ2V0UHJvcGVydHkgPSBkZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IudmFsdWU7XG4gICAgfSBlbHNlIHRhcmdldFByb3BlcnR5ID0gdGFyZ2V0W2tleV07XG4gICAgRk9SQ0VEID0gaXNGb3JjZWQoR0xPQkFMID8ga2V5IDogVEFSR0VUICsgKFNUQVRJQyA/ICcuJyA6ICcjJykgKyBrZXksIG9wdGlvbnMuZm9yY2VkKTtcbiAgICAvLyBjb250YWluZWQgaW4gdGFyZ2V0XG4gICAgaWYgKCFGT1JDRUQgJiYgdGFyZ2V0UHJvcGVydHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHR5cGVvZiBzb3VyY2VQcm9wZXJ0eSA9PT0gdHlwZW9mIHRhcmdldFByb3BlcnR5KSBjb250aW51ZTtcbiAgICAgIGNvcHlDb25zdHJ1Y3RvclByb3BlcnRpZXMoc291cmNlUHJvcGVydHksIHRhcmdldFByb3BlcnR5KTtcbiAgICB9XG4gICAgLy8gYWRkIGEgZmxhZyB0byBub3QgY29tcGxldGVseSBmdWxsIHBvbHlmaWxsc1xuICAgIGlmIChvcHRpb25zLnNoYW0gfHwgKHRhcmdldFByb3BlcnR5ICYmIHRhcmdldFByb3BlcnR5LnNoYW0pKSB7XG4gICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoc291cmNlUHJvcGVydHksICdzaGFtJywgdHJ1ZSk7XG4gICAgfVxuICAgIC8vIGV4dGVuZCBnbG9iYWxcbiAgICByZWRlZmluZSh0YXJnZXQsIGtleSwgc291cmNlUHJvcGVydHksIG9wdGlvbnMpO1xuICB9XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZXhlYykge1xuICB0cnkge1xuICAgIHJldHVybiAhIWV4ZWMoKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufTtcbiIsInZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xuXG4vLyBvcHRpb25hbCAvIHNpbXBsZSBjb250ZXh0IGJpbmRpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGZuLCB0aGF0LCBsZW5ndGgpIHtcbiAgYUZ1bmN0aW9uKGZuKTtcbiAgaWYgKHRoYXQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZuO1xuICBzd2l0Y2ggKGxlbmd0aCkge1xuICAgIGNhc2UgMDogcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQpO1xuICAgIH07XG4gICAgY2FzZSAxOiByZXR1cm4gZnVuY3Rpb24gKGEpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEpO1xuICAgIH07XG4gICAgY2FzZSAyOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIpO1xuICAgIH07XG4gICAgY2FzZSAzOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIsIGMpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIsIGMpO1xuICAgIH07XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uICgvKiAuLi5hcmdzICovKSB7XG4gICAgcmV0dXJuIGZuLmFwcGx5KHRoYXQsIGFyZ3VtZW50cyk7XG4gIH07XG59O1xuIiwidmFyIHBhdGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcGF0aCcpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcblxudmFyIGFGdW5jdGlvbiA9IGZ1bmN0aW9uICh2YXJpYWJsZSkge1xuICByZXR1cm4gdHlwZW9mIHZhcmlhYmxlID09ICdmdW5jdGlvbicgPyB2YXJpYWJsZSA6IHVuZGVmaW5lZDtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5hbWVzcGFjZSwgbWV0aG9kKSB7XG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoIDwgMiA/IGFGdW5jdGlvbihwYXRoW25hbWVzcGFjZV0pIHx8IGFGdW5jdGlvbihnbG9iYWxbbmFtZXNwYWNlXSlcbiAgICA6IHBhdGhbbmFtZXNwYWNlXSAmJiBwYXRoW25hbWVzcGFjZV1bbWV0aG9kXSB8fCBnbG9iYWxbbmFtZXNwYWNlXSAmJiBnbG9iYWxbbmFtZXNwYWNlXVttZXRob2RdO1xufTtcbiIsInZhciBjaGVjayA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgJiYgaXQuTWF0aCA9PSBNYXRoICYmIGl0O1xufTtcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzg2I2lzc3VlY29tbWVudC0xMTU3NTkwMjhcbm1vZHVsZS5leHBvcnRzID1cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLWdsb2JhbC10aGlzIC0tIHNhZmVcbiAgY2hlY2sodHlwZW9mIGdsb2JhbFRoaXMgPT0gJ29iamVjdCcgJiYgZ2xvYmFsVGhpcykgfHxcbiAgY2hlY2sodHlwZW9mIHdpbmRvdyA9PSAnb2JqZWN0JyAmJiB3aW5kb3cpIHx8XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHMgLS0gc2FmZVxuICBjaGVjayh0eXBlb2Ygc2VsZiA9PSAnb2JqZWN0JyAmJiBzZWxmKSB8fFxuICBjaGVjayh0eXBlb2YgZ2xvYmFsID09ICdvYmplY3QnICYmIGdsb2JhbCkgfHxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5ldy1mdW5jIC0tIGZhbGxiYWNrXG4gIChmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9KSgpIHx8IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG4iLCJ2YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG5cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IHt9Lmhhc093blByb3BlcnR5O1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5oYXNPd24gfHwgZnVuY3Rpb24gaGFzT3duKGl0LCBrZXkpIHtcbiAgcmV0dXJuIGhhc093blByb3BlcnR5LmNhbGwodG9PYmplY3QoaXQpLCBrZXkpO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0ge307XG4iLCJ2YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRCdWlsdEluKCdkb2N1bWVudCcsICdkb2N1bWVudEVsZW1lbnQnKTtcbiIsInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgY3JlYXRlRWxlbWVudCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kb2N1bWVudC1jcmVhdGUtZWxlbWVudCcpO1xuXG4vLyBUaGFuaydzIElFOCBmb3IgaGlzIGZ1bm55IGRlZmluZVByb3BlcnR5XG5tb2R1bGUuZXhwb3J0cyA9ICFERVNDUklQVE9SUyAmJiAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHJlcXVpZWQgZm9yIHRlc3RpbmdcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjcmVhdGVFbGVtZW50KCdkaXYnKSwgJ2EnLCB7XG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9XG4gIH0pLmEgIT0gNztcbn0pO1xuIiwidmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xuXG52YXIgc3BsaXQgPSAnJy5zcGxpdDtcblxuLy8gZmFsbGJhY2sgZm9yIG5vbi1hcnJheS1saWtlIEVTMyBhbmQgbm9uLWVudW1lcmFibGUgb2xkIFY4IHN0cmluZ3Ncbm1vZHVsZS5leHBvcnRzID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyB0aHJvd3MgYW4gZXJyb3IgaW4gcmhpbm8s
1924IHNlZSBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9yaGluby9pc3N1ZXMvMzQ2XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnMgLS0gc2FmZVxuICByZXR1cm4gIU9iamVjdCgneicpLnByb3BlcnR5SXNFbnVtZXJhYmxlKDApO1xufSkgPyBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGNsYXNzb2YoaXQpID09ICdTdHJpbmcnID8gc3BsaXQuY2FsbChpdCwgJycpIDogT2JqZWN0KGl0KTtcbn0gOiBPYmplY3Q7XG4iLCJ2YXIgc3RvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLXN0b3JlJyk7XG5cbnZhciBmdW5jdGlvblRvU3RyaW5nID0gRnVuY3Rpb24udG9TdHJpbmc7XG5cbi8vIHRoaXMgaGVscGVyIGJyb2tlbiBpbiBgY29yZS1qc0AzLjQuMS0zLjQuNGAsIHNvIHdlIGNhbid0IHVzZSBgc2hhcmVkYCBoZWxwZXJcbmlmICh0eXBlb2Ygc3RvcmUuaW5zcGVjdFNvdXJjZSAhPSAnZnVuY3Rpb24nKSB7XG4gIHN0b3JlLmluc3BlY3RTb3VyY2UgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gZnVuY3Rpb25Ub1N0cmluZy5jYWxsKGl0KTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzdG9yZS5pbnNwZWN0U291cmNlO1xuIiwidmFyIE5BVElWRV9XRUFLX01BUCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9uYXRpdmUtd2Vhay1tYXAnKTtcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIG9iamVjdEhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLXN0b3JlJyk7XG52YXIgc2hhcmVkS2V5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1rZXknKTtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGRlbi1rZXlzJyk7XG5cbnZhciBPQkpFQ1RfQUxSRUFEWV9JTklUSUFMSVpFRCA9ICdPYmplY3QgYWxyZWFkeSBpbml0aWFsaXplZCc7XG52YXIgV2Vha01hcCA9IGdsb2JhbC5XZWFrTWFwO1xudmFyIHNldCwgZ2V0LCBoYXM7XG5cbnZhciBlbmZvcmNlID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBoYXMoaXQpID8gZ2V0KGl0KSA6IHNldChpdCwge30pO1xufTtcblxudmFyIGdldHRlckZvciA9IGZ1bmN0aW9uIChUWVBFKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoaXQpIHtcbiAgICB2YXIgc3RhdGU7XG4gICAgaWYgKCFpc09iamVjdChpdCkgfHwgKHN0YXRlID0gZ2V0KGl0KSkudHlwZSAhPT0gVFlQRSkge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICcgKyBUWVBFICsgJyByZXF1aXJlZCcpO1xuICAgIH0gcmV0dXJuIHN0YXRlO1xuICB9O1xufTtcblxuaWYgKE5BVElWRV9XRUFLX01BUCB8fCBzaGFyZWQuc3RhdGUpIHtcbiAgdmFyIHN0b3JlID0gc2hhcmVkLnN0YXRlIHx8IChzaGFyZWQuc3RhdGUgPSBuZXcgV2Vha01hcCgpKTtcbiAgdmFyIHdtZ2V0ID0gc3RvcmUuZ2V0O1xuICB2YXIgd21oYXMgPSBzdG9yZS5oYXM7XG4gIHZhciB3bXNldCA9IHN0b3JlLnNldDtcbiAgc2V0ID0gZnVuY3Rpb24gKGl0LCBtZXRhZGF0YSkge1xuICAgIGlmICh3bWhhcy5jYWxsKHN0b3JlLCBpdCkpIHRocm93IG5ldyBUeXBlRXJyb3IoT0JKRUNUX0FMUkVBRFlfSU5JVElBTElaRUQpO1xuICAgIG1ldGFkYXRhLmZhY2FkZSA9IGl0O1xuICAgIHdtc2V0LmNhbGwoc3RvcmUsIGl0LCBtZXRhZGF0YSk7XG4gICAgcmV0dXJuIG1ldGFkYXRhO1xuICB9O1xuICBnZXQgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gd21nZXQuY2FsbChzdG9yZSwgaXQpIHx8IHt9O1xuICB9O1xuICBoYXMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gd21oYXMuY2FsbChzdG9yZSwgaXQpO1xuICB9O1xufSBlbHNlIHtcbiAgdmFyIFNUQVRFID0gc2hhcmVkS2V5KCdzdGF0ZScpO1xuICBoaWRkZW5LZXlzW1NUQVRFXSA9IHRydWU7XG4gIHNldCA9IGZ1bmN0aW9uIChpdCwgbWV0YWRhdGEpIHtcbiAgICBpZiAob2JqZWN0SGFzKGl0LCBTVEFURSkpIHRocm93IG5ldyBUeXBlRXJyb3IoT0JKRUNUX0FMUkVBRFlfSU5JVElBTElaRUQpO1xuICAgIG1ldGFkYXRhLmZhY2FkZSA9IGl0O1xuICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShpdCwgU1RBVEUsIG1ldGFkYXRhKTtcbiAgICByZXR1cm4gbWV0YWRhdGE7XG4gIH07XG4gIGdldCA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiBvYmplY3RIYXMoaXQsIFNUQVRFKSA/IGl0W1NUQVRFXSA6IHt9O1xuICB9O1xuICBoYXMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gb2JqZWN0SGFzKGl0LCBTVEFURSk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBzZXQ6IHNldCxcbiAgZ2V0OiBnZXQsXG4gIGhhczogaGFzLFxuICBlbmZvcmNlOiBlbmZvcmNlLFxuICBnZXR0ZXJGb3I6IGdldHRlckZvclxufTtcbiIsInZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG5cbi8vIGBJc0FycmF5YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtaXNhcnJheVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLWFycmF5LWlzYXJyYXkgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uIGlzQXJyYXkoYXJnKSB7XG4gIHJldHVybiBjbGFzc29mKGFyZykgPT0gJ0FycmF5Jztcbn07XG4iLCJ2YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxudmFyIHJlcGxhY2VtZW50ID0gLyN8XFwucHJvdG90eXBlXFwuLztcblxudmFyIGlzRm9yY2VkID0gZnVuY3Rpb24gKGZlYXR1cmUsIGRldGVjdGlvbikge1xuICB2YXIgdmFsdWUgPSBkYXRhW25vcm1hbGl6ZShmZWF0dXJlKV07XG4gIHJldHVybi
1924B2YWx1ZSA9PSBQT0xZRklMTCA/IHRydWVcbiAgICA6IHZhbHVlID09IE5BVElWRSA/IGZhbHNlXG4gICAgOiB0eXBlb2YgZGV0ZWN0aW9uID09ICdmdW5jdGlvbicgPyBmYWlscyhkZXRlY3Rpb24pXG4gICAgOiAhIWRldGVjdGlvbjtcbn07XG5cbnZhciBub3JtYWxpemUgPSBpc0ZvcmNlZC5ub3JtYWxpemUgPSBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gIHJldHVybiBTdHJpbmcoc3RyaW5nKS5yZXBsYWNlKHJlcGxhY2VtZW50LCAnLicpLnRvTG93ZXJDYXNlKCk7XG59O1xuXG52YXIgZGF0YSA9IGlzRm9yY2VkLmRhdGEgPSB7fTtcbnZhciBOQVRJVkUgPSBpc0ZvcmNlZC5OQVRJVkUgPSAnTic7XG52YXIgUE9MWUZJTEwgPSBpc0ZvcmNlZC5QT0xZRklMTCA9ICdQJztcblxubW9kdWxlLmV4cG9ydHMgPSBpc0ZvcmNlZDtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0eXBlb2YgaXQgPT09ICdvYmplY3QnID8gaXQgIT09IG51bGwgOiB0eXBlb2YgaXQgPT09ICdmdW5jdGlvbic7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmYWxzZTtcbiIsIi8qIGVzbGludC1kaXNhYmxlIGVzL25vLXN5bWJvbCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZyAqL1xudmFyIFY4X1ZFUlNJT04gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW5naW5lLXY4LXZlcnNpb24nKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5c3ltYm9scyAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xubW9kdWxlLmV4cG9ydHMgPSAhIU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHN5bWJvbCA9IFN5bWJvbCgpO1xuICAvLyBDaHJvbWUgMzggU3ltYm9sIGhhcyBpbmNvcnJlY3QgdG9TdHJpbmcgY29udmVyc2lvblxuICAvLyBgZ2V0LW93bi1wcm9wZXJ0eS1zeW1ib2xzYCBwb2x5ZmlsbCBzeW1ib2xzIGNvbnZlcnRlZCB0byBvYmplY3QgYXJlIG5vdCBTeW1ib2wgaW5zdGFuY2VzXG4gIHJldHVybiAhU3RyaW5nKHN5bWJvbCkgfHwgIShPYmplY3Qoc3ltYm9sKSBpbnN0YW5jZW9mIFN5bWJvbCkgfHxcbiAgICAvLyBDaHJvbWUgMzgtNDAgc3ltYm9scyBhcmUgbm90IGluaGVyaXRlZCBmcm9tIERPTSBjb2xsZWN0aW9ucyBwcm90b3R5cGVzIHRvIGluc3RhbmNlc1xuICAgICFTeW1ib2wuc2hhbSAmJiBWOF9WRVJTSU9OICYmIFY4X1ZFUlNJT04gPCA0MTtcbn0pO1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBpbnNwZWN0U291cmNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luc3BlY3Qtc291cmNlJyk7XG5cbnZhciBXZWFrTWFwID0gZ2xvYmFsLldlYWtNYXA7XG5cbm1vZHVsZS5leHBvcnRzID0gdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgJiYgL25hdGl2ZSBjb2RlLy50ZXN0KGluc3BlY3RTb3VyY2UoV2Vha01hcCkpO1xuIiwidmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGRlZmluZVByb3BlcnRpZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0aWVzJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW51bS1idWcta2V5cycpO1xudmFyIGhpZGRlbktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGlkZGVuLWtleXMnKTtcbnZhciBodG1sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2h0bWwnKTtcbnZhciBkb2N1bWVudENyZWF0ZUVsZW1lbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZG9jdW1lbnQtY3JlYXRlLWVsZW1lbnQnKTtcbnZhciBzaGFyZWRLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLWtleScpO1xuXG52YXIgR1QgPSAnPic7XG52YXIgTFQgPSAnPCc7XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG52YXIgU0NSSVBUID0gJ3NjcmlwdCc7XG52YXIgSUVfUFJPVE8gPSBzaGFyZWRLZXkoJ0lFX1BST1RPJyk7XG5cbnZhciBFbXB0eUNvbnN0cnVjdG9yID0gZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9O1xuXG52YXIgc2NyaXB0VGFnID0gZnVuY3Rpb24gKGNvbnRlbnQpIHtcbiAgcmV0dXJuIExUICsgU0NSSVBUICsgR1QgKyBjb250ZW50ICsgTFQgKyAnLycgKyBTQ1JJUFQgKyBHVDtcbn07XG5cbi8vIENyZWF0ZSBvYmplY3Qgd2l0aCBmYWtlIGBudWxsYCBwcm90b3R5cGU6IHVzZSBBY3RpdmVYIE9iamVjdCB3aXRoIGNsZWFyZWQgcHJvdG90eXBlXG52YXIgTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWCA9IGZ1bmN0aW9uIChhY3RpdmVYRG9jdW1lbnQpIHtcbiAgYWN0aXZlWERvY3VtZW50LndyaXRlKHNjcmlwdFRhZygnJykpO1xuICBhY3RpdmVYRG9jdW1lbnQuY2xvc2UoKTtcbiAgdmFyIHRlbXAgPSBhY3RpdmVYRG9jdW1lbnQucGFyZW50V2luZG93Lk9iamVjdDtcbiAgYWN0aXZlWERvY3VtZW50ID0gbnVsbDsgLy8gYXZvaWQgbWVtb3J5IGxlYWtcbiAgcmV0dXJuIHRlbXA7XG59O1xuXG4vLyBDcmVhdGUgb2JqZWN0IHdpdGggZmFrZSBgbnVsbGAgcHJvdG90eXBlOiB1c2UgaWZyYW1lIE9iamVjdCB3aXRoIGNsZWFyZWQgcHJvdG90eXBlXG52YXIgTnVsbFByb3RvT2JqZWN0VmlhSUZyYW1lID0gZnVuY3Rpb24gKCkge1xuICAvLyBUaHJhc2gsIHdhc3RlIGFuZCBzb2RvbXk6IElFIEdDIGJ1Z1xuICB2YXIgaWZyYW1lID0gZG9jdW1lbnRDcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcbiAgdmFyIEpTID0gJ2phdmEnICsgU0NSSVBUICsgJzonO1xuICB2YXIgaWZyYW1lRG9jdW1lbnQ7XG4gIGlmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICBodG1sLmFwcGVuZENoaWxkKGlmcmFtZSk7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy80NzVcbiAgaWZyYW1lLnNyYyA9IFN0cmluZyhKUyk7XG4gIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7XG4gIGlmcmFtZURvY3VtZW50Lm9wZW4oKTtcbiAgaWZyYW1lRG9jdW1lbnQud3JpdGUoc2NyaXB0VGFnKCdkb2N1bWVudC5GPU9iamVjdCcpKTtcbiAgaWZyYW1lRG9jdW1lbnQuY2xvc2UoKTtcbiAgcmV0dXJuIGlmcmFtZURvY3VtZW50LkY7XG59O1xuXG4vLyBDaGVjayBmb3IgZG9jdW1lbnQuZG9tYWluIGFuZCBhY3RpdmUgeCBzdXBwb3J0XG4vLyBObyBuZWVkIHRvIHVzZSBhY3RpdmUgeCBhcHByb2FjaCB3aGVuIGRvY3VtZW50LmRvbWFpbiBpcyBub3Qgc2V0XG4vLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2VzLXNoaW1zL2VzNS1zaGltL2lzc3Vlcy8xNTBcbi8vIHZhcmlhdGlvbiBvZiBodHRwczovL2dpdGh1Yi5jb20va2l0Y2FtYnJpZGdlL2VzNS1zaGltL2NvbW1pdC80ZjczOGFjMDY2MzQ2XG4vLyBhdm9pZCBJRSBHQyBidWdcbnZhciBhY3RpdmVYRG9jdW1lbnQ7XG52YXIgTnVsbFByb3RvT2JqZWN0ID0gZnVuY3Rpb24gKCkge1xuICB0cnkge1xuICAgIC8qIGdsb2JhbCBBY3RpdmVYT2JqZWN0IC0tIG9sZCBJRSAqL1xuICAgIGFjdGl2ZVhEb2N1bWVudCA9IGRvY3VtZW50LmRvbWFpbiAmJiBuZXcgQWN0aXZlWE9iamVjdCgnaHRtbGZpbGUnKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogaWdub3JlICovIH1cbiAgTnVsbFByb3RvT2JqZWN0ID0gYWN0aXZlWERvY3VtZW50ID8gTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWChhY3RpdmVYRG9jdW1lbnQpIDogTnVsbFByb3RvT2JqZWN0VmlhSUZyYW1lKCk7XG4gIHZhciBsZW5ndGggPSBlbnVtQnVnS2V5cy5sZW5ndGg7XG4gIHdoaWxlIChsZW5ndGgtLSkgZGVsZXRlIE51bGxQcm90b09iamVjdFtQUk9UT1RZUEVdW2VudW1CdWdLZXlzW2xlbmd0aF1dO1xuICByZXR1cm4gTnVsbFByb3RvT2JqZWN0KCk7XG59O1xuXG5oaWRkZW5L
1924ZXlzW0lFX1BST1RPXSA9IHRydWU7XG5cbi8vIGBPYmplY3QuY3JlYXRlYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmNyZWF0ZVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuY3JlYXRlIHx8IGZ1bmN0aW9uIGNyZWF0ZShPLCBQcm9wZXJ0aWVzKSB7XG4gIHZhciByZXN1bHQ7XG4gIGlmIChPICE9PSBudWxsKSB7XG4gICAgRW1wdHlDb25zdHJ1Y3RvcltQUk9UT1RZUEVdID0gYW5PYmplY3QoTyk7XG4gICAgcmVzdWx0ID0gbmV3IEVtcHR5Q29uc3RydWN0b3IoKTtcbiAgICBFbXB0eUNvbnN0cnVjdG9yW1BST1RPVFlQRV0gPSBudWxsO1xuICAgIC8vIGFkZCBcIl9fcHJvdG9fX1wiIGZvciBPYmplY3QuZ2V0UHJvdG90eXBlT2YgcG9seWZpbGxcbiAgICByZXN1bHRbSUVfUFJPVE9dID0gTztcbiAgfSBlbHNlIHJlc3VsdCA9IE51bGxQcm90b09iamVjdCgpO1xuICByZXR1cm4gUHJvcGVydGllcyA9PT0gdW5kZWZpbmVkID8gcmVzdWx0IDogZGVmaW5lUHJvcGVydGllcyhyZXN1bHQsIFByb3BlcnRpZXMpO1xufTtcbiIsInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBvYmplY3RLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1rZXlzJyk7XG5cbi8vIGBPYmplY3QuZGVmaW5lUHJvcGVydGllc2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5kZWZpbmVwcm9wZXJ0aWVzXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnRpZXMgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBERVNDUklQVE9SUyA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzIDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyhPLCBQcm9wZXJ0aWVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICB2YXIga2V5cyA9IG9iamVjdEtleXMoUHJvcGVydGllcyk7XG4gIHZhciBsZW5ndGggPSBrZXlzLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIGtleTtcbiAgd2hpbGUgKGxlbmd0aCA+IGluZGV4KSBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mKE8sIGtleSA9IGtleXNbaW5kZXgrK10sIFByb3BlcnRpZXNba2V5XSk7XG4gIHJldHVybiBPO1xufTtcbiIsInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIElFOF9ET01fREVGSU5FID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2llOC1kb20tZGVmaW5lJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJpbWl0aXZlJyk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gc2FmZVxudmFyICRkZWZpbmVQcm9wZXJ0eSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcblxuLy8gYE9iamVjdC5kZWZpbmVQcm9wZXJ0eWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5kZWZpbmVwcm9wZXJ0eVxuZXhwb3J0cy5mID0gREVTQ1JJUFRPUlMgPyAkZGVmaW5lUHJvcGVydHkgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBQID0gdG9QcmltaXRpdmUoUCwgdHJ1ZSk7XG4gIGFuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuICRkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuICBpZiAoJ2dldCcgaW4gQXR0cmlidXRlcyB8fCAnc2V0JyBpbiBBdHRyaWJ1dGVzKSB0aHJvdyBUeXBlRXJyb3IoJ0FjY2Vzc29ycyBub3Qgc3VwcG9ydGVkJyk7XG4gIGlmICgndmFsdWUnIGluIEF0dHJpYnV0ZXMpIE9bUF0gPSBBdHRyaWJ1dGVzLnZhbHVlO1xuICByZXR1cm4gTztcbn07XG4iLCJ2YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBwcm9wZXJ0eUlzRW51bWVyYWJsZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtcHJvcGVydHktaXMtZW51bWVyYWJsZScpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByaW1pdGl2ZScpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciBJRThfRE9NX0RFRklORSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pZTgtZG9tLWRlZmluZScpO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5ZGVzY3JpcHRvciAtLSBzYWZlXG52YXIgJGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbi8vIGBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmdldG93bnByb3BlcnR5ZGVzY3JpcHRvclxuZXhwb3J0cy5mID0gREVTQ1JJUFRPUlMgPyAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIDogZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApIHtcbiAgTyA9IHRvSW5kZXhlZE9iamVjdChPKTtcbiAgUCA9IHRvUHJpbWl0aXZlKFAsIHRydWUpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKGhhcyhPLCBQKSkgcmV0dXJuIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcighcHJvcGVydHlJc0VudW1lcmFibGVNb2R1bGUuZi5jYWxsKE8sIFApLCBPW1BdKTtcbn07XG4iLCJ2YXIgaW50ZXJuYWxPYmplY3RLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1rZXlzLWludGVybmFsJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW51bS1idWcta2V5cycpO1xuXG52YXIgaGlkZGVuS2V5cyA9IGVudW1CdWdLZXlzLmNvbmNhdCgnbGVuZ3RoJywgJ3Byb3RvdHlwZScpO1xuXG4vLyBgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXNgIG1ldGhvZFxuLy8gaH
1924R0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZ2V0b3ducHJvcGVydHluYW1lc1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eW5hbWVzIC0tIHNhZmVcbmV4cG9ydHMuZiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uIGdldE93blByb3BlcnR5TmFtZXMoTykge1xuICByZXR1cm4gaW50ZXJuYWxPYmplY3RLZXlzKE8sIGhpZGRlbktleXMpO1xufTtcbiIsIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZ2V0b3ducHJvcGVydHlzeW1ib2xzIC0tIHNhZmVcbmV4cG9ydHMuZiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG4iLCJ2YXIgaGFzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcycpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIGluZGV4T2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaW5jbHVkZXMnKS5pbmRleE9mO1xudmFyIGhpZGRlbktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGlkZGVuLWtleXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykge1xuICB2YXIgTyA9IHRvSW5kZXhlZE9iamVjdChvYmplY3QpO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gTykgIWhhcyhoaWRkZW5LZXlzLCBrZXkpICYmIGhhcyhPLCBrZXkpICYmIHJlc3VsdC5wdXNoKGtleSk7XG4gIC8vIERvbid0IGVudW0gYnVnICYgaGlkZGVuIGtleXNcbiAgd2hpbGUgKG5hbWVzLmxlbmd0aCA+IGkpIGlmIChoYXMoTywga2V5ID0gbmFtZXNbaSsrXSkpIHtcbiAgICB+aW5kZXhPZihyZXN1bHQsIGtleSkgfHwgcmVzdWx0LnB1c2goa2V5KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcbiIsInZhciBpbnRlcm5hbE9iamVjdEtleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWtleXMtaW50ZXJuYWwnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnVtLWJ1Zy1rZXlzJyk7XG5cbi8vIGBPYmplY3Qua2V5c2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5rZXlzXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWtleXMgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3Qua2V5cyB8fCBmdW5jdGlvbiBrZXlzKE8pIHtcbiAgcmV0dXJuIGludGVybmFsT2JqZWN0S2V5cyhPLCBlbnVtQnVnS2V5cyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3IgLS0gc2FmZVxudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbi8vIE5hc2hvcm4gfiBKREs4IGJ1Z1xudmFyIE5BU0hPUk5fQlVHID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yICYmICEkcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh7IDE6IDIgfSwgMSk7XG5cbi8vIGBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlYCBtZXRob2QgaW1wbGVtZW50YXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eWlzZW51bWVyYWJsZVxuZXhwb3J0cy5mID0gTkFTSE9STl9CVUcgPyBmdW5jdGlvbiBwcm9wZXJ0eUlzRW51bWVyYWJsZShWKSB7XG4gIHZhciBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMsIFYpO1xuICByZXR1cm4gISFkZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IuZW51bWVyYWJsZTtcbn0gOiAkcHJvcGVydHlJc0VudW1lcmFibGU7XG4iLCJ2YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcbnZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzJyk7XG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcblxuLy8gYWxsIG9iamVjdCBrZXlzLCBpbmNsdWRlcyBub24tZW51bWVyYWJsZSBhbmQgc3ltYm9sc1xubW9kdWxlLmV4cG9ydHMgPSBnZXRCdWlsdEluKCdSZWZsZWN0JywgJ293bktleXMnKSB8fCBmdW5jdGlvbiBvd25LZXlzKGl0KSB7XG4gIHZhciBrZXlzID0gZ2V0T3duUHJvcGVydHlOYW1lc01vZHVsZS5mKGFuT2JqZWN0KGl0KSk7XG4gIHZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUuZjtcbiAgcmV0dXJuIGdldE93blByb3BlcnR5U3ltYm9scyA/IGtleXMuY29uY2F0KGdldE93blByb3BlcnR5U3ltYm9scyhpdCkpIDoga2V5cztcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdsb2JhbDtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciBzZXRHbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LWdsb2JhbCcpO1xudmFyIGluc3BlY3RTb3VyY2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW5zcGVjdC1zb3VyY2UnKTtcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG5cbnZhciBnZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5nZXQ7XG52YXIgZW5mb3JjZUludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9
1924kdWxlLmVuZm9yY2U7XG52YXIgVEVNUExBVEUgPSBTdHJpbmcoU3RyaW5nKS5zcGxpdCgnU3RyaW5nJyk7XG5cbihtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChPLCBrZXksIHZhbHVlLCBvcHRpb25zKSB7XG4gIHZhciB1bnNhZmUgPSBvcHRpb25zID8gISFvcHRpb25zLnVuc2FmZSA6IGZhbHNlO1xuICB2YXIgc2ltcGxlID0gb3B0aW9ucyA/ICEhb3B0aW9ucy5lbnVtZXJhYmxlIDogZmFsc2U7XG4gIHZhciBub1RhcmdldEdldCA9IG9wdGlvbnMgPyAhIW9wdGlvbnMubm9UYXJnZXRHZXQgOiBmYWxzZTtcbiAgdmFyIHN0YXRlO1xuICBpZiAodHlwZW9mIHZhbHVlID09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAodHlwZW9mIGtleSA9PSAnc3RyaW5nJyAmJiAhaGFzKHZhbHVlLCAnbmFtZScpKSB7XG4gICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkodmFsdWUsICduYW1lJywga2V5KTtcbiAgICB9XG4gICAgc3RhdGUgPSBlbmZvcmNlSW50ZXJuYWxTdGF0ZSh2YWx1ZSk7XG4gICAgaWYgKCFzdGF0ZS5zb3VyY2UpIHtcbiAgICAgIHN0YXRlLnNvdXJjZSA9IFRFTVBMQVRFLmpvaW4odHlwZW9mIGtleSA9PSAnc3RyaW5nJyA/IGtleSA6ICcnKTtcbiAgICB9XG4gIH1cbiAgaWYgKE8gPT09IGdsb2JhbCkge1xuICAgIGlmIChzaW1wbGUpIE9ba2V5XSA9IHZhbHVlO1xuICAgIGVsc2Ugc2V0R2xvYmFsKGtleSwgdmFsdWUpO1xuICAgIHJldHVybjtcbiAgfSBlbHNlIGlmICghdW5zYWZlKSB7XG4gICAgZGVsZXRlIE9ba2V5XTtcbiAgfSBlbHNlIGlmICghbm9UYXJnZXRHZXQgJiYgT1trZXldKSB7XG4gICAgc2ltcGxlID0gdHJ1ZTtcbiAgfVxuICBpZiAoc2ltcGxlKSBPW2tleV0gPSB2YWx1ZTtcbiAgZWxzZSBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoTywga2V5LCB2YWx1ZSk7XG4vLyBhZGQgZmFrZSBGdW5jdGlvbiN0b1N0cmluZyBmb3IgY29ycmVjdCB3b3JrIHdyYXBwZWQgbWV0aG9kcyAvIGNvbnN0cnVjdG9ycyB3aXRoIG1ldGhvZHMgbGlrZSBMb0Rhc2ggaXNOYXRpdmVcbn0pKEZ1bmN0aW9uLnByb3RvdHlwZSwgJ3RvU3RyaW5nJywgZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gIHJldHVybiB0eXBlb2YgdGhpcyA9PSAnZnVuY3Rpb24nICYmIGdldEludGVybmFsU3RhdGUodGhpcykuc291cmNlIHx8IGluc3BlY3RTb3VyY2UodGhpcyk7XG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIHJlZ2V4cC9uby1hc3NlcnRpb24tY2FwdHVyaW5nLWdyb3VwLCByZWdleHAvbm8tZW1wdHktZ3JvdXAsIHJlZ2V4cC9uby1sYXp5LWVuZHMgLS0gdGVzdGluZyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVnZXhwL25vLXVzZWxlc3MtcXVhbnRpZmllciAtLSB0ZXN0aW5nICovXG52YXIgcmVnZXhwRmxhZ3MgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLWZsYWdzJyk7XG52YXIgc3RpY2t5SGVscGVycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtc3RpY2t5LWhlbHBlcnMnKTtcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkJyk7XG52YXIgY3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1jcmVhdGUnKTtcbnZhciBnZXRJbnRlcm5hbFN0YXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJykuZ2V0O1xudmFyIFVOU1VQUE9SVEVEX0RPVF9BTEwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLXVuc3VwcG9ydGVkLWRvdC1hbGwnKTtcbnZhciBVTlNVUFBPUlRFRF9OQ0cgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLXVuc3VwcG9ydGVkLW5jZycpO1xuXG52YXIgbmF0aXZlRXhlYyA9IFJlZ0V4cC5wcm90b3R5cGUuZXhlYztcbnZhciBuYXRpdmVSZXBsYWNlID0gc2hhcmVkKCduYXRpdmUtc3RyaW5nLXJlcGxhY2UnLCBTdHJpbmcucHJvdG90eXBlLnJlcGxhY2UpO1xuXG52YXIgcGF0Y2hlZEV4ZWMgPSBuYXRpdmVFeGVjO1xuXG52YXIgVVBEQVRFU19MQVNUX0lOREVYX1dST05HID0gKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHJlMSA9IC9hLztcbiAgdmFyIHJlMiA9IC9iKi9nO1xuICBuYXRpdmVFeGVjLmNhbGwocmUxLCAnYScpO1xuICBuYXRpdmVFeGVjLmNhbGwocmUyLCAnYScpO1xuICByZXR1cm4gcmUxLmxhc3RJbmRleCAhPT0gMCB8fCByZTIubGFzdEluZGV4ICE9PSAwO1xufSkoKTtcblxudmFyIFVOU1VQUE9SVEVEX1kgPSBzdGlja3lIZWxwZXJzLlVOU1VQUE9SVEVEX1kgfHwgc3RpY2t5SGVscGVycy5CUk9LRU5fQ0FSRVQ7XG5cbi8vIG5vbnBhcnRpY2lwYXRpbmcgY2FwdHVyaW5nIGdyb3VwLCBjb3BpZWQgZnJvbSBlczUtc2hpbSdzIFN0cmluZyNzcGxpdCBwYXRjaC5cbnZhciBOUENHX0lOQ0xVREVEID0gLygpPz8vLmV4ZWMoJycpWzFdICE9PSB1bmRlZmluZWQ7XG5cbnZhciBQQVRDSCA9IFVQREFURVNfTEFTVF9JTkRFWF9XUk9ORyB8fCBOUENHX0lOQ0xVREVEIHx8IFVOU1VQUE9SVEVEX1kgfHwgVU5TVVBQT1JURURfRE9UX0FMTCB8fCBVTlNVUFBPUlRFRF9OQ0c7XG5cbmlmIChQQVRDSCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LXN0YXRlbWVudHMgLS0gVE9ET1xuICBwYXRjaGVkRXhlYyA9IGZ1bmN0aW9uIGV4ZWMoc3RyKSB7XG4gICAgdmFyIHJlID0gdGhpcztcbiAgICB2YXIgc3RhdGUgPSBnZXRJbnRlcm5hbFN0YXRlKHJlKTtcbiAgICB2YXIgcmF3ID0gc3RhdGUucmF3O1xuICAgIHZhciByZXN1bHQsIHJlQ29weSwgbGFzdEluZGV4LCBtYXRjaCwgaSwgb2JqZWN0LCBncm91cDtcblxuICAgIGlmIChyYXcpIHtcbiAgICAgIHJhdy5sYXN0SW5kZXggPSByZS5sYXN0SW5kZXg7XG4gICAgICByZXN1bHQgPSBwYXRjaGVkRXhlYy5jYWxsKHJhdywgc3RyKTtcbiAgICAgIHJlLmxhc3RJbmRleCA9IHJhdy5sYXN0SW5kZXg7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHZhciBncm91cHMgPSBzdGF0ZS5ncm91cHM7XG4gICAgdmFyIHN0aWNreSA9IFVOU1VQUE9SVEVEX1kgJiYgcmUuc3RpY2t5O1xuICAgIHZhciBmbGFncyA9IHJlZ2V4cEZsYWdzLmNhbGwocmUpO1xuICAgIHZhciBzb3VyY2UgPSByZS5zb3VyY2U7XG4gICAgdmFyIGNoYXJzQWRkZWQgPSAwO1xuICAgIHZhciBzdHJDb3B5ID0gc3RyO1xuXG4gICAgaWYgKHN0aWNreSkge1xuICAgICAgZmxhZ3MgPSBmbGFncy5yZXBsYWNlKCd5JywgJycpO1xuICAgICAgaWYgKGZsYWdzLmluZGV4T2YoJ2cnKSA9PT0gLTEpIHtcbiAgICAgICAgZmxhZ3MgKz0gJ2cnO1xuICAgICAgfVxuXG4gICAgICBzdHJDb3B5ID0gU3RyaW5nKHN0cikuc2xpY2UocmUubGFzdEluZGV4KTtcbiAgICAgIC8vIFN1cHBvcnQgYW5jaG9yZWQgc3RpY2t5IGJlaGF2aW9yLlxuICAgICAgaWYgKHJlLmxhc3RJbmRleCA+IDAgJiYgKCFyZS5tdWx0aWxpbmUgfHwgcmUubXVsdGlsaW5lICYmIHN0cltyZS5sYXN0SW5kZXggLSAxXSAhPT0gJ1xcbicpKSB7XG4gICAgICAgI
1924HNvdXJjZSA9ICcoPzogJyArIHNvdXJjZSArICcpJztcbiAgICAgICAgc3RyQ29weSA9ICcgJyArIHN0ckNvcHk7XG4gICAgICAgIGNoYXJzQWRkZWQrKztcbiAgICAgIH1cbiAgICAgIC8vIF4oPyArIHJ4ICsgKSBpcyBuZWVkZWQsIGluIGNvbWJpbmF0aW9uIHdpdGggc29tZSBzdHIgc2xpY2luZywgdG9cbiAgICAgIC8vIHNpbXVsYXRlIHRoZSAneScgZmxhZy5cbiAgICAgIHJlQ29weSA9IG5ldyBSZWdFeHAoJ14oPzonICsgc291cmNlICsgJyknLCBmbGFncyk7XG4gICAgfVxuXG4gICAgaWYgKE5QQ0dfSU5DTFVERUQpIHtcbiAgICAgIHJlQ29weSA9IG5ldyBSZWdFeHAoJ14nICsgc291cmNlICsgJyQoPyFcXFxccyknLCBmbGFncyk7XG4gICAgfVxuICAgIGlmIChVUERBVEVTX0xBU1RfSU5ERVhfV1JPTkcpIGxhc3RJbmRleCA9IHJlLmxhc3RJbmRleDtcblxuICAgIG1hdGNoID0gbmF0aXZlRXhlYy5jYWxsKHN0aWNreSA/IHJlQ29weSA6IHJlLCBzdHJDb3B5KTtcblxuICAgIGlmIChzdGlja3kpIHtcbiAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICBtYXRjaC5pbnB1dCA9IG1hdGNoLmlucHV0LnNsaWNlKGNoYXJzQWRkZWQpO1xuICAgICAgICBtYXRjaFswXSA9IG1hdGNoWzBdLnNsaWNlKGNoYXJzQWRkZWQpO1xuICAgICAgICBtYXRjaC5pbmRleCA9IHJlLmxhc3RJbmRleDtcbiAgICAgICAgcmUubGFzdEluZGV4ICs9IG1hdGNoWzBdLmxlbmd0aDtcbiAgICAgIH0gZWxzZSByZS5sYXN0SW5kZXggPSAwO1xuICAgIH0gZWxzZSBpZiAoVVBEQVRFU19MQVNUX0lOREVYX1dST05HICYmIG1hdGNoKSB7XG4gICAgICByZS5sYXN0SW5kZXggPSByZS5nbG9iYWwgPyBtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCA6IGxhc3RJbmRleDtcbiAgICB9XG4gICAgaWYgKE5QQ0dfSU5DTFVERUQgJiYgbWF0Y2ggJiYgbWF0Y2gubGVuZ3RoID4gMSkge1xuICAgICAgLy8gRml4IGJyb3dzZXJzIHdob3NlIGBleGVjYCBtZXRob2RzIGRvbid0IGNvbnNpc3RlbnRseSByZXR1cm4gYHVuZGVmaW5lZGBcbiAgICAgIC8vIGZvciBOUENHLCBsaWtlIElFOC4gTk9URTogVGhpcyBkb2Vzbicgd29yayBmb3IgLyguPyk/L1xuICAgICAgbmF0aXZlUmVwbGFjZS5jYWxsKG1hdGNoWzBdLCByZUNvcHksIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZm9yIChpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGggLSAyOyBpKyspIHtcbiAgICAgICAgICBpZiAoYXJndW1lbnRzW2ldID09PSB1bmRlZmluZWQpIG1hdGNoW2ldID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAobWF0Y2ggJiYgZ3JvdXBzKSB7XG4gICAgICBtYXRjaC5ncm91cHMgPSBvYmplY3QgPSBjcmVhdGUobnVsbCk7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgZ3JvdXBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGdyb3VwID0gZ3JvdXBzW2ldO1xuICAgICAgICBvYmplY3RbZ3JvdXBbMF1dID0gbWF0Y2hbZ3JvdXBbMV1dO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtYXRjaDtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwYXRjaGVkRXhlYztcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcblxuLy8gYFJlZ0V4cC5wcm90b3R5cGUuZmxhZ3NgIGdldHRlciBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1nZXQtcmVnZXhwLnByb3RvdHlwZS5mbGFnc1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciB0aGF0ID0gYW5PYmplY3QodGhpcyk7XG4gIHZhciByZXN1bHQgPSAnJztcbiAgaWYgKHRoYXQuZ2xvYmFsKSByZXN1bHQgKz0gJ2cnO1xuICBpZiAodGhhdC5pZ25vcmVDYXNlKSByZXN1bHQgKz0gJ2knO1xuICBpZiAodGhhdC5tdWx0aWxpbmUpIHJlc3VsdCArPSAnbSc7XG4gIGlmICh0aGF0LmRvdEFsbCkgcmVzdWx0ICs9ICdzJztcbiAgaWYgKHRoYXQudW5pY29kZSkgcmVzdWx0ICs9ICd1JztcbiAgaWYgKHRoYXQuc3RpY2t5KSByZXN1bHQgKz0gJ3knO1xuICByZXR1cm4gcmVzdWx0O1xufTtcbiIsInZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG4vLyBiYWJlbC1taW5pZnkgdHJhbnNwaWxlcyBSZWdFeHAoJ2EnLCAneScpIC0+IC9hL3kgYW5kIGl0IGNhdXNlcyBTeW50YXhFcnJvcixcbnZhciBSRSA9IGZ1bmN0aW9uIChzLCBmKSB7XG4gIHJldHVybiBSZWdFeHAocywgZik7XG59O1xuXG5leHBvcnRzLlVOU1VQUE9SVEVEX1kgPSBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHZhciByZSA9IFJFKCdhJywgJ3knKTtcbiAgcmUubGFzdEluZGV4ID0gMjtcbiAgcmV0dXJuIHJlLmV4ZWMoJ2FiY2QnKSAhPSBudWxsO1xufSk7XG5cbmV4cG9ydHMuQlJPS0VOX0NBUkVUID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM2ODdcbiAgdmFyIHJlID0gUkUoJ15yJywgJ2d5Jyk7XG4gIHJlLmxhc3RJbmRleCA9IDI7XG4gIHJldHVybiByZS5leGVjKCdzdHInKSAhPSBudWxsO1xufSk7XG4iLCJ2YXIgZmFpbHMgPSByZXF1aXJlKCcuL2ZhaWxzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBiYWJlbC1taW5pZnkgdHJhbnNwaWxlcyBSZWdFeHAoJy4nLCAncycpIC0+IC8uL3MgYW5kIGl0IGNhdXNlcyBTeW50YXhFcnJvclxuICB2YXIgcmUgPSBSZWdFeHAoJy4nLCAodHlwZW9mICcnKS5jaGFyQXQoMCkpO1xuICByZXR1cm4gIShyZS5kb3RBbGwgJiYgcmUuZXhlYygnXFxuJykgJiYgcmUuZmxhZ3MgPT09ICdzJyk7XG59KTtcbiIsInZhciBmYWlscyA9IHJlcXVpcmUoJy4vZmFpbHMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGJhYmVsLW1pbmlmeSB0cmFuc3BpbGVzIFJlZ0V4cCgnLicsICdnJykgLT4gLy4vZyBhbmQgaXQgY2F1c2VzIFN5bnRheEVycm9yXG4gIHZhciByZSA9IFJlZ0V4cCgnKD88YT5iKScsICh0eXBlb2YgJycpLmNoYXJBdCg1KSk7XG4gIHJldHVybi
1924ByZS5leGVjKCdiJykuZ3JvdXBzLmEgIT09ICdiJyB8fFxuICAgICdiJy5yZXBsYWNlKHJlLCAnJDxhPmMnKSAhPT0gJ2JjJztcbn0pO1xuIiwiLy8gYFJlcXVpcmVPYmplY3RDb2VyY2libGVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZXF1aXJlb2JqZWN0Y29lcmNpYmxlXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXQgPT0gdW5kZWZpbmVkKSB0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjYWxsIG1ldGhvZCBvbiBcIiArIGl0KTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gIHRyeSB7XG4gICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KGdsb2JhbCwga2V5LCB2YWx1ZSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgZ2xvYmFsW2tleV0gPSB2YWx1ZTtcbiAgfSByZXR1cm4gdmFsdWU7XG59O1xuIiwidmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdWlkJyk7XG5cbnZhciBrZXlzID0gc2hhcmVkKCdrZXlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4ga2V5c1trZXldIHx8IChrZXlzW2tleV0gPSB1aWQoa2V5KSk7XG59O1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBzZXRHbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LWdsb2JhbCcpO1xuXG52YXIgU0hBUkVEID0gJ19fY29yZS1qc19zaGFyZWRfXyc7XG52YXIgc3RvcmUgPSBnbG9iYWxbU0hBUkVEXSB8fCBzZXRHbG9iYWwoU0hBUkVELCB7fSk7XG5cbm1vZHVsZS5leHBvcnRzID0gc3RvcmU7XG4iLCJ2YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgc3RvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLXN0b3JlJyk7XG5cbihtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gIHJldHVybiBzdG9yZVtrZXldIHx8IChzdG9yZVtrZXldID0gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDoge30pO1xufSkoJ3ZlcnNpb25zJywgW10pLnB1c2goe1xuICB2ZXJzaW9uOiAnMy4xNS4yJyxcbiAgbW9kZTogSVNfUFVSRSA/ICdwdXJlJyA6ICdnbG9iYWwnLFxuICBjb3B5cmlnaHQ6ICfCqSAyMDIxIERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpJ1xufSk7XG4iLCJ2YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXInKTtcblxudmFyIG1heCA9IE1hdGgubWF4O1xudmFyIG1pbiA9IE1hdGgubWluO1xuXG4vLyBIZWxwZXIgZm9yIGEgcG9wdWxhciByZXBlYXRpbmcgY2FzZSBvZiB0aGUgc3BlYzpcbi8vIExldCBpbnRlZ2VyIGJlID8gVG9JbnRlZ2VyKGluZGV4KS5cbi8vIElmIGludGVnZXIgPCAwLCBsZXQgcmVzdWx0IGJlIG1heCgobGVuZ3RoICsgaW50ZWdlciksIDApOyBlbHNlIGxldCByZXN1bHQgYmUgbWluKGludGVnZXIsIGxlbmd0aCkuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpbmRleCwgbGVuZ3RoKSB7XG4gIHZhciBpbnRlZ2VyID0gdG9JbnRlZ2VyKGluZGV4KTtcbiAgcmV0dXJuIGludGVnZXIgPCAwID8gbWF4KGludGVnZXIgKyBsZW5ndGgsIDApIDogbWluKGludGVnZXIsIGxlbmd0aCk7XG59O1xuIiwiLy8gdG9PYmplY3Qgd2l0aCBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIHN0cmluZ3NcbnZhciBJbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luZGV4ZWQtb2JqZWN0Jyk7XG52YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIEluZGV4ZWRPYmplY3QocmVxdWlyZU9iamVjdENvZXJjaWJsZShpdCkpO1xufTtcbiIsInZhciBjZWlsID0gTWF0aC5jZWlsO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcblxuLy8gYFRvSW50ZWdlcmAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvaW50ZWdlclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuIGlzTmFOKGFyZ3VtZW50ID0gK2FyZ3VtZW50KSA/IDAgOiAoYXJndW1lbnQgPiAwID8gZmxvb3IgOiBjZWlsKShhcmd1bWVudCk7XG59O1xuIiwidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbnRlZ2VyJyk7XG5cbnZhciBtaW4gPSBNYXRoLm1pbjtcblxuLy8gYFRvTGVuZ3RoYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdG9sZW5ndGhcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHJldHVybiBhcmd1bWVudCA+IDAgPyBtaW4odG9JbnRlZ2VyKGFyZ3VtZW50KSwgMHgxRkZGRkZGRkZGRkZGRikgOiAwOyAvLyAyICoqIDUzIC0gMSA9PSA5MDA3MTk5MjU0NzQwOTkxXG59O1xuIiwidmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbi8vIGBUb09iamVjdGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvb2JqZWN0XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICByZXR1cm4gT2JqZWN0KHJlcXVpcmVPYmplY3RDb2VyY2libGUoYXJndW1lbnQpKTtcbn07XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG5cbi8vIGBUb1ByaW1pdGl2ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvcHJpbWl0aXZlXG4vLyBpbnN0ZWFkIG9mIHRoZSBFUzYgc3BlYyB2ZXJzaW9uLCB3ZSBkaWRuJ3QgaW1wbGVtZW50IEBAdG9QcmltaXRpdmUgY2FzZVxuLy8gYW5kIHRoZSBzZWNvbmQgYXJndW1lbnQgLSBmbGFnIC0gcHJlZmVycmVkIHR5cGUgaXMgYSBzdHJpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGlucHV0LCBQUkVGRVJSRURfU1RSSU5HKSB7XG4gIGlmICghaXNPYmplY3QoaW5wdXQpKSByZXR1cm4gaW5wdXQ7XG4gIHZhciBmbiwgdmFsO1xuICBpZiAoUFJFRkVSUkVEX1NUUklORyAmJiB0eXBlb2YgKGZuID0gaW5wdXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKHR5cGVvZiAoZm4gPSBpbnB1dC52YWx1ZU9mKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGlucHV0KSkpIHJldHVybi
1924B2YWw7XG4gIGlmICghUFJFRkVSUkVEX1NUUklORyAmJiB0eXBlb2YgKGZuID0gaW5wdXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpO1xufTtcbiIsInZhciBpZCA9IDA7XG52YXIgcG9zdGZpeCA9IE1hdGgucmFuZG9tKCk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gJ1N5bWJvbCgnICsgU3RyaW5nKGtleSA9PT0gdW5kZWZpbmVkID8gJycgOiBrZXkpICsgJylfJyArICgrK2lkICsgcG9zdGZpeCkudG9TdHJpbmcoMzYpO1xufTtcbiIsIi8qIGVzbGludC1kaXNhYmxlIGVzL25vLXN5bWJvbCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZyAqL1xudmFyIE5BVElWRV9TWU1CT0wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbmF0aXZlLXN5bWJvbCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE5BVElWRV9TWU1CT0xcbiAgJiYgIVN5bWJvbC5zaGFtXG4gICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT0gJ3N5bWJvbCc7XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VpZCcpO1xudmFyIE5BVElWRV9TWU1CT0wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbmF0aXZlLXN5bWJvbCcpO1xudmFyIFVTRV9TWU1CT0xfQVNfVUlEID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VzZS1zeW1ib2wtYXMtdWlkJyk7XG5cbnZhciBXZWxsS25vd25TeW1ib2xzU3RvcmUgPSBzaGFyZWQoJ3drcycpO1xudmFyIFN5bWJvbCA9IGdsb2JhbC5TeW1ib2w7XG52YXIgY3JlYXRlV2VsbEtub3duU3ltYm9sID0gVVNFX1NZTUJPTF9BU19VSUQgPyBTeW1ib2wgOiBTeW1ib2wgJiYgU3ltYm9sLndpdGhvdXRTZXR0ZXIgfHwgdWlkO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIGlmICghaGFzKFdlbGxLbm93blN5bWJvbHNTdG9yZSwgbmFtZSkgfHwgIShOQVRJVkVfU1lNQk9MIHx8IHR5cGVvZiBXZWxsS25vd25TeW1ib2xzU3RvcmVbbmFtZV0gPT0gJ3N0cmluZycpKSB7XG4gICAgaWYgKE5BVElWRV9TWU1CT0wgJiYgaGFzKFN5bWJvbCwgbmFtZSkpIHtcbiAgICAgIFdlbGxLbm93blN5bWJvbHNTdG9yZVtuYW1lXSA9IFN5bWJvbFtuYW1lXTtcbiAgICB9IGVsc2Uge1xuICAgICAgV2VsbEtub3duU3ltYm9sc1N0b3JlW25hbWVdID0gY3JlYXRlV2VsbEtub3duU3ltYm9sKCdTeW1ib2wuJyArIG5hbWUpO1xuICAgIH1cbiAgfSByZXR1cm4gV2VsbEtub3duU3ltYm9sc1N0b3JlW25hbWVdO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGV4ZWMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLWV4ZWMnKTtcblxuLy8gYFJlZ0V4cC5wcm90b3R5cGUuZXhlY2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXJlZ2V4cC5wcm90b3R5cGUuZXhlY1xuJCh7IHRhcmdldDogJ1JlZ0V4cCcsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IC8uLy5leGVjICE9PSBleGVjIH0sIHtcbiAgZXhlYzogZXhlY1xufSk7XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIERPTUl0ZXJhYmxlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kb20taXRlcmFibGVzJyk7XG52YXIgZm9yRWFjaCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1mb3ItZWFjaCcpO1xudmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHknKTtcblxuZm9yICh2YXIgQ09MTEVDVElPTl9OQU1FIGluIERPTUl0ZXJhYmxlcykge1xuICB2YXIgQ29sbGVjdGlvbiA9IGdsb2JhbFtDT0xMRUNUSU9OX05BTUVdO1xuICB2YXIgQ29sbGVjdGlvblByb3RvdHlwZSA9IENvbGxlY3Rpb24gJiYgQ29sbGVjdGlvbi5wcm90b3R5cGU7XG4gIC8vIHNvbWUgQ2hyb21lIHZlcnNpb25zIGhhdmUgbm9uLWNvbmZpZ3VyYWJsZSBtZXRob2RzIG9uIERPTVRva2VuTGlzdFxuICBpZiAoQ29sbGVjdGlvblByb3RvdHlwZSAmJiBDb2xsZWN0aW9uUHJvdG90eXBlLmZvckVhY2ggIT09IGZvckVhY2gpIHRyeSB7XG4gICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KENvbGxlY3Rpb25Qcm90b3R5cGUsICdmb3JFYWNoJywgZm9yRWFjaCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgQ29sbGVjdGlvblByb3RvdHlwZS5mb3JFYWNoID0gZm9yRWFjaDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJldmVudCIsImNvbnNvbGUiLCJsb2ciLCJtbXQiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJlIiwiYm9keSIsImNsYXNzTGlzdCIsInRvZ2dsZSIsImRvY1NwZWNEb3dubG9hZHMiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9yRWFjaCIsInYiLCJpIiwicmUiLCJleHQiLCJleGVjIiwiYWRkIiwicGRvdHMiLCJjaGlsZHJlbiIsInBhcmVudE5vZGUiLCJ2diIsImlpIiwicmVtb3ZlIiwiUmV2ZWFsIiwiaW5pdGlhbGl6ZSIsImNvbnRyb2xzIiwicHJvZ3Jlc3MiLCJsb29wIiwiY2VudGVyIiwiaGFzaCIsInRyYW5zaXRpb24iLCJkaXNhYmxlTGF5b3V0Iiwid2lkdGgiLCJoZWlnaHQiLCJtYXJnaW4iLCJtaW5TY2FsZSIsIm1heFNjYWxlIl0sInNvdXJjZVJvb3QiOiIifQ==
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.