(self["webpackChunkiride"] = self["webpackChunkiride"] || []).push([["assets_js_components_googlemaps_js-assets_js_components_jquery-timeentry_jquery_plugin_min_js-c4e896"],{ /***/ "./assets/js/components/googlemaps.js": /*!********************************************!*\ !*** ./assets/js/components/googlemaps.js ***! \********************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var core_js_modules_es_array_for_each_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.for-each.js */ "./node_modules/core-js/modules/es.array.for-each.js"); /* harmony import */ var core_js_modules_es_array_for_each_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_for_each_js__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.map.js */ "./node_modules/core-js/modules/es.array.map.js"); /* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ "./node_modules/core-js/modules/es.function.name.js"); /* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ "./node_modules/core-js/modules/web.dom-collections.for-each.js"); /* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_4__); /** * Created by PhpStorm * User: daniele * Date: 11/06/21 * Time: 13:36 */ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ buildGoogleMaps: function buildGoogleMaps(googlemap) { var latitudine = $(googlemap).data("latitudine"); var longitudine = $(googlemap).data("longitudine"); var markers = $(googlemap).data("markers"); var zoom = $(googlemap).data("zoom"); var viewSearchBox = $(googlemap).data("viewsearchbox"); var map = new google.maps.Map($(googlemap)[0], { zoom: zoom, center: { lat: getFloat(latitudine), lng: getFloat(longitudine) } }); if (viewSearchBox) { // Create the search box and link it to the UI element. var input = $("#" + $(googlemap).attr("id") + "_pac_input")[0]; var searchBox = new google.maps.places.SearchBox(input); map.controls[google.maps.ControlPosition.TOP_LEFT].push(input); // Bias the SearchBox results towards current map's viewport. map.addListener("bounds_changed", function () { searchBox.setBounds(map.getBounds()); }); var s_markers = []; // Listen for the event fired when the user selects a prediction and retrieve // more details for that place. searchBox.addListener("places_changed", function () { var places = searchBox.getPlaces(); if (!places.length) { return; } // Clear out the old markers. s_markers.forEach(function (marker) { marker.setMap(null); }); s_markers = []; // For each place, get the icon, name and location. var bounds = new google.maps.LatLngBounds(); places.forEach(function (place) { if (!place.geometry || !place.geometry.location) { console.log("Returned place contains no geometry"); return; } var icon = { url: place.icon, size: new google.maps.Size(71, 71), origin: new google.maps.Point(0, 0), anchor: new google.maps.Point(17, 34), scaledSize: new google.maps.Size(25, 25) }; // Create a marker for each place. s_markers.push(new google.maps.Marker({ map: map, icon: icon, title: place.name, position: place.geometry.location })); if (place.geometry.viewport) { // Only geocodes have viewport. bounds.union(place.geometry.viewport); } else { bounds.extend(place.geometry.location); } }); map.fitBounds(bounds); }); } var geocoder; markers.map(function (marker) { var opts = { map: map }; if (marker.label) opts.label = marker.label; if (marker.title) opts.title = marker.title; if (marker.color) opts.icon = { url: "https://maps.google.com/mapfiles/ms/icons/" + marker.color + "-dot.png" }; var setInfoWindow; if (marker.text) setInfoWindow = function setInfoWindow(gmarker) { var info = new google.maps.InfoWindow({ content: marker.text }); info.addListener("closeclick", function () { $(".ui-tooltip").hide(); }); gmarker.addListener("click", function () { info.open({ anchor: gmarker, map: map, shouldFocus: false }); }); }; if (!marker.address) { opts.position = { lat: getFloat(marker.lat), lng: getFloat(marker.lng) }; var gmarker = new google.maps.Marker(opts); if (setInfoWindow) setInfoWindow(gmarker); return; } geocoder = new google.maps.Geocoder(); geocoder.geocode({ address: marker.address }, function (results, status) { if (status !== 'OK') { console.log('Geocode was not successful for the following reason: ' + status); return; } opts.position = results[0].geometry.location; var gmarker = new google.maps.Marker(opts); if (setInfoWindow) setInfoWindow(gmarker); }); }); } }); /***/ }), /***/ "./assets/js/components/jquery-timeentry/jquery.plugin.min.js": /*!********************************************************************!*\ !*** ./assets/js/components/jquery-timeentry/jquery.plugin.min.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js"); __webpack_require__(/*! core-js/modules/es.symbol.description.js */ "./node_modules/core-js/modules/es.symbol.description.js"); __webpack_require__(/*! core-js/modules/es.symbol.iterator.js */ "./node_modules/core-js/modules/es.symbol.iterator.js"); __webpack_require__(/*! core-js/modules/es.array.concat.js */ "./node_modules/core-js/modules/es.array.concat.js"); __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js"); __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js"); __webpack_require__(/*! core-js/modules/es.function.name.js */ "./node_modules/core-js/modules/es.function.name.js"); __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js"); __webpack_require__(/*! core-js/modules/es.string.iterator.js */ "./node_modules/core-js/modules/es.string.iterator.js"); __webpack_require__(/*! core-js/modules/es.string.match.js */ "./node_modules/core-js/modules/es.string.match.js"); __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js"); __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); /** Abstract base class for collection plugins v1.0.1. Written by Keith Wood (kbwood{at}iinet.com.au) December 2013. Licensed under the MIT (https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt) license. */ (function () { var j = false; window.JQClass = function () {}; JQClass.classes = {}; JQClass.extend = function extender(f) { var g = this.prototype; j = true; var h = new this(); j = false; for (var i in f) { h[i] = typeof f[i] == 'function' && typeof g[i] == 'function' ? function (d, e) { return function () { var b = this._super; this._super = function (a) { return g[d].apply(this, a || []); }; var c = e.apply(this, arguments); this._super = b; return c; }; }(i, f[i]) : f[i]; } function JQClass() { if (!j && this._init) { this._init.apply(this, arguments); } } JQClass.prototype = h; JQClass.prototype.constructor = JQClass; JQClass.extend = extender; return JQClass; }; })(); (function ($) { JQClass.classes.JQPlugin = JQClass.extend({ name: 'plugin', defaultOptions: {}, regionalOptions: {}, _getters: [], _getMarker: function _getMarker() { return 'is-' + this.name; }, _init: function _init() { $.extend(this.defaultOptions, this.regionalOptions && this.regionalOptions[''] || {}); var c = camelCase(this.name); $[c] = this; $.fn[c] = function (a) { var b = Array.prototype.slice.call(arguments, 1); if ($[c]._isNotChained(a, b)) { return $[c][a].apply($[c], [this[0]].concat(b)); } return this.each(function () { if (typeof a === 'string') { if (a[0] === '_' || !$[c][a]) { throw 'Unknown method: ' + a; } $[c][a].apply($[c], [this].concat(b)); } else { $[c]._attach(this, a); } }); }; }, setDefaults: function setDefaults(a) { $.extend(this.defaultOptions, a || {}); }, _isNotChained: function _isNotChained(a, b) { if (a === 'option' && (b.length === 0 || b.length === 1 && typeof b[0] === 'string')) { return true; } return $.inArray(a, this._getters) > -1; }, _attach: function _attach(a, b) { a = $(a); if (a.hasClass(this._getMarker())) { return; } a.addClass(this._getMarker()); b = $.extend({}, this.defaultOptions, this._getMetadata(a), b || {}); var c = $.extend({ name: this.name, elem: a, options: b }, this._instSettings(a, b)); a.data(this.name, c); this._postAttach(a, c); this.option(a, b); }, _instSettings: function _instSettings(a, b) { return {}; }, _postAttach: function _postAttach(a, b) {}, _getMetadata: function _getMetadata(d) { try { var f = d.data(this.name.toLowerCase()) || ''; f = f.replace(/'/g, '"'); f = f.replace(/([a-zA-Z0-9]+):/g, function (a, b, i) { var c = f.substring(0, i).match(/"/g); return !c || c.length % 2 === 0 ? '"' + b + '":' : b + ':'; }); f = $.parseJSON('{' + f + '}'); for (var g in f) { var h = f[g]; if (typeof h === 'string' && h.match(/^new Date\((.*)\)$/)) { f[g] = eval(h); } } return f; } catch (e) { return {}; } }, _getInst: function _getInst(a) { return $(a).data(this.name) || {}; }, option: function option(a, b, c) { a = $(a); var d = a.data(this.name); if (!b || typeof b === 'string' && c == null) { var e = (d || {}).options; return e && b ? e[b] : e; } if (!a.hasClass(this._getMarker())) { return; } var e = b || {}; if (typeof b === 'string') { e = {}; e[b] = c; } this._optionsChanged(a, d, e); $.extend(d.options, e); }, _optionsChanged: function _optionsChanged(a, b, c) {}, destroy: function destroy(a) { a = $(a); if (!a.hasClass(this._getMarker())) { return; } this._preDestroy(a, this._getInst(a)); a.removeData(this.name).removeClass(this._getMarker()); }, _preDestroy: function _preDestroy(a, b) {} }); function camelCase(c) { return c.replace(/-([a-z])/g, function (a, b) { return b.toUpperCase(); }); } $.JQPlugin = { createPlugin: function createPlugin(a, b) { if (_typeof(a) === 'object') { b = a; a = 'JQPlugin'; } a = camelCase(a); var c = camelCase(b.name); JQClass.classes[c] = JQClass.classes[a].extend(b); new JQClass.classes[c](); } }; })(jQuery); /***/ }), /***/ "./assets/js/components/jquery-timeentry/jquery.timeentry.min.js": /*!***********************************************************************!*\ !*** ./assets/js/components/jquery-timeentry/jquery.timeentry.min.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js"); __webpack_require__(/*! core-js/modules/es.symbol.description.js */ "./node_modules/core-js/modules/es.symbol.description.js"); __webpack_require__(/*! core-js/modules/es.symbol.iterator.js */ "./node_modules/core-js/modules/es.symbol.iterator.js"); __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js"); __webpack_require__(/*! core-js/modules/es.array.index-of.js */ "./node_modules/core-js/modules/es.array.index-of.js"); __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js"); __webpack_require__(/*! core-js/modules/es.array.map.js */ "./node_modules/core-js/modules/es.array.map.js"); __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js"); __webpack_require__(/*! core-js/modules/es.date.to-string.js */ "./node_modules/core-js/modules/es.date.to-string.js"); __webpack_require__(/*! core-js/modules/es.function.name.js */ "./node_modules/core-js/modules/es.function.name.js"); __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); __webpack_require__(/*! core-js/modules/es.parse-int.js */ "./node_modules/core-js/modules/es.parse-int.js"); __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js"); __webpack_require__(/*! core-js/modules/es.string.iterator.js */ "./node_modules/core-js/modules/es.string.iterator.js"); __webpack_require__(/*! core-js/modules/es.string.split.js */ "./node_modules/core-js/modules/es.string.split.js"); __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); __webpack_require__(/*! core-js/modules/web.timers.js */ "./node_modules/core-js/modules/web.timers.js"); /* http://keith-wood.name/timeEntry.html Time entry for jQuery v2.0.1. Written by Keith Wood (kbwood{at}iinet.com.au) June 2007. Available under the MIT (https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt) license. Please attribute the author if you use it. */ (function ($) { var n = 'timeEntry'; $.JQPlugin.createPlugin({ name: n, defaultOptions: { appendText: '', showSeconds: false, unlimitedHours: false, timeSteps: [1, 1, 1], initialField: null, noSeparatorEntry: false, tabToExit: false, useMouseWheel: true, defaultTime: null, minTime: null, maxTime: null, spinnerImage: 'spinnerDefault.png', spinnerSize: [20, 20, 8], spinnerBigImage: '', spinnerBigSize: [40, 40, 16], spinnerIncDecOnly: false, spinnerRepeat: [500, 250], beforeShow: null, beforeSetTime: null }, regionalOptions: { '': { show24Hours: false, separator: ':', ampmPrefix: '', ampmNames: ['AM', 'PM'], spinnerTexts: ['Now', 'Previous field', 'Next field', 'Increment', 'Decrement'] } }, _getters: ['getOffset', 'getTime', 'isDisabled'], _appendClass: n + '-append', _controlClass: n + '-control', _expandClass: n + '-expand', _disabledInputs: [], _instSettings: function _instSettings(a, b) { return { _field: 0, _selectedHour: 0, _selectedMinute: 0, _selectedSecond: 0 }; }, _postAttach: function _postAttach(b, c) { b.on('focus.' + c.name, this._doFocus).on('blur.' + c.name, this._doBlur).on('click.' + c.name, this._doClick).on('keydown.' + c.name, this._doKeyDown).on('keypress.' + c.name, this._doKeyPress).on('paste.' + c.name, function (a) { setTimeout(function () { o._parseTime(c); }, 1); }); }, _optionsChanged: function _optionsChanged(a, b, c) { var d = this._extractTime(b); $.extend(b.options, c); b.options.show24Hours = b.options.show24Hours || b.options.unlimitedHours; b._field = 0; if (d) { this._setTime(b, new Date(0, 0, 0, d[0], d[1], d[2])); } a.next('span.' + this._appendClass).remove(); a.parent().find('span.' + this._controlClass).remove(); if ($.fn.mousewheel) { a.unmousewheel(); } var e = !b.options.spinnerImage ? null : $(''); a.after(b.options.appendText ? '' + b.options.appendText + '' : '').after(e || ''); if (b.options.useMouseWheel && $.fn.mousewheel) { a.mousewheel(this._doMouseWheel); } if (e) { e.mousedown(this._handleSpinner).mouseup(this._endSpinner).mouseover(this._expandSpinner).mouseout(this._endSpinner).mousemove(this._describeSpinner); } }, enable: function enable(a) { this._enableDisable(a, false); }, disable: function disable(a) { this._enableDisable(a, true); }, _enableDisable: function _enableDisable(b, c) { var d = this._getInst(b); if (!d) { return; } b.disabled = c; if (b.nextSibling && b.nextSibling.nodeName.toLowerCase() === 'span') { this._changeSpinner(d, b.nextSibling, c ? 5 : -1); } this._disabledInputs = $.map(this._disabledInputs, function (a) { return a === b ? null : a; }); if (c) { this._disabledInputs.push(b); } }, isDisabled: function isDisabled(a) { return $.inArray(a, this._disabledInputs) > -1; }, _preDestroy: function _preDestroy(b, c) { b = $(b).off('.' + n); if ($.fn.mousewheel) { b.unmousewheel(); } this._disabledInputs = $.map(this._disabledInputs, function (a) { return a === b[0] ? null : a; }); b.siblings('.' + this._appendClass + ',.' + this._controlClass).remove(); }, setTime: function setTime(a, b) { var c = this._getInst(a); if (c) { if (b === null || b === '') { $(a).val(''); } else { this._setTime(c, b ? $.isArray(b) ? b : _typeof(b) === 'object' ? new Date(b.getTime()) : b : null); } } }, getTime: function getTime(a) { var b = this._getInst(a); var c = b ? this._extractTime(b) : null; return !c ? null : new Date(0, 0, 0, c[0], c[1], c[2]); }, getOffset: function getOffset(a) { var b = this._getInst(a); var c = b ? this._extractTime(b) : null; return !c ? 0 : (c[0] * 3600 + c[1] * 60 + c[2]) * 1000; }, _doFocus: function _doFocus(a) { var b = a.nodeName && a.nodeName.toLowerCase() === 'input' ? a : this; if (o._lastInput === b || o.isDisabled(b)) { o._focussed = false; return; } var c = o._getInst(b); o._focussed = true; o._lastInput = b; o._blurredInput = null; $.extend(c.options, $.isFunction(c.options.beforeShow) ? c.options.beforeShow.apply(b, [b]) : {}); o._parseTime(c, a.nodeName ? null : a); setTimeout(function () { o._showField(c); }, 10); }, _doBlur: function _doBlur(a) { o._blurredInput = o._lastInput; o._lastInput = null; }, _doClick: function _doClick(a) { var b = a.target; var c = o._getInst(b); var d = c._field; if (!o._focussed) { c._field = o._getSelection(c, b, a); } if (d !== c._field) { c._lastChr = ''; } o._showField(c); o._focussed = false; }, _getSelection: function _getSelection(b, c, d) { var e = 0; var f = [b.elem.val().split(b.options.separator)[0].length, 2, 2]; if (c.selectionStart !== null) { var g = 0; for (var h = 0; h <= Math.max(1, b._secondField, b._ampmField); h++) { g += h !== b._ampmField ? f[h] + b.options.separator.length : b.options.ampmPrefix.length + b.options.ampmNames[0].length; e = h; if (c.selectionStart < g) { break; } } } else if (c.createTextRange && d != null) { var i = $(d.srcElement); var j = c.createTextRange(); var k = function k(a) { return { thin: 2, medium: 4, thick: 6 }[a] || a; }; var l = d.clientX + document.documentElement.scrollLeft - (i.offset().left + parseInt(k(i.css('border-left-width')), 10)) - j.offsetLeft; for (var h = 0; h <= Math.max(1, b._secondField, b._ampmField); h++) { var g = h !== b._ampmField ? h * fieldSize + 2 : b._ampmField * fieldSize + b.options.ampmPrefix.length + b.options.ampmNames[0].length; j.collapse(); j.moveEnd('character', g); e = h; if (l < j.boundingWidth) { break; } } } return e; }, _doKeyDown: function _doKeyDown(a) { if (a.keyCode >= 48) { return true; } var b = o._getInst(a.target); switch (a.keyCode) { case 9: return b.options.tabToExit ? true : a.shiftKey ? o._changeField(b, -1, true) : o._changeField(b, +1, true); case 35: if (a.ctrlKey) { o._setValue(b, ''); } else { b._field = Math.max(1, b._secondField, b._ampmField); o._adjustField(b, 0); } break; case 36: if (a.ctrlKey) { o._setTime(b); } else { b._field = 0; o._adjustField(b, 0); } break; case 37: o._changeField(b, -1, false); break; case 38: o._adjustField(b, +1); break; case 39: o._changeField(b, +1, false); break; case 40: o._adjustField(b, -1); break; case 46: o._setValue(b, ''); break; case 8: b._lastChr = ''; default: return true; } return false; }, _doKeyPress: function _doKeyPress(a) { var b = String.fromCharCode(a.charCode === undefined ? a.keyCode : a.charCode); if (b < ' ') { return true; } var c = o._getInst(a.target); o._handleKeyPress(c, b); return false; }, _handleKeyPress: function _handleKeyPress(a, b) { if (b === a.options.separator) { this._changeField(a, +1, false); } else if (b >= '0' && b <= '9') { var c = parseInt(b, 10); var d = parseInt(a._lastChr + b, 10); var e = a._field !== 0 ? a._selectedHour : a.options.unlimitedHours ? d : a.options.show24Hours ? d < 24 ? d : c : (d >= 1 && d <= 12 ? d : c > 0 ? c : a._selectedHour) % 12 + (a._selectedHour >= 12 ? 12 : 0); var f = a._field !== 1 ? a._selectedMinute : d < 60 ? d : c; var g = a._field !== a._secondField ? a._selectedSecond : d < 60 ? d : c; var h = this._constrainTime(a, [e, f, g]); this._setTime(a, a.options.unlimitedHours ? h : new Date(0, 0, 0, h[0], h[1], h[2])); if (a.options.noSeparatorEntry && a._lastChr) { this._changeField(a, +1, false); } else { a._lastChr = a.options.unlimitedHours && a._field === 0 ? a._lastChr + b : b; } } else if (!a.options.show24Hours) { b = b.toLowerCase(); if (b === a.options.ampmNames[0].substring(0, 1).toLowerCase() && a._selectedHour >= 12 || b === a.options.ampmNames[1].substring(0, 1).toLowerCase() && a._selectedHour < 12) { var i = a._field; a._field = a._ampmField; this._adjustField(a, +1); a._field = i; this._showField(a); } } }, _doMouseWheel: function _doMouseWheel(a, b) { if (o.isDisabled(a.target)) { return; } var c = o._getInst(a.target); c.elem.focus(); if (!c.elem.val()) { o._parseTime(c); } o._adjustField(c, b); a.preventDefault(); }, _expandSpinner: function _expandSpinner(b) { var c = o._getSpinnerTarget(b); var d = o._getInst(o._getInput(c)); if (o.isDisabled(d.elem[0])) { return; } if (d.options.spinnerBigImage) { d._expanded = true; var e = $(c).offset(); var f = null; $(c).parents().each(function () { var a = $(this); if (a.css('position') === 'relative' || a.css('position') === 'absolute') { f = a.offset(); } return !f; }); $('
').mousedown(o._handleSpinner).mouseup(o._endSpinner).mouseout(o._endExpand).mousemove(o._describeSpinner).insertAfter(c); } }, _getInput: function _getInput(a) { return $(a).siblings('.' + this._getMarker())[0]; }, _describeSpinner: function _describeSpinner(a) { var b = o._getSpinnerTarget(a); var c = o._getInst(o._getInput(b)); b.title = c.options.spinnerTexts[o._getSpinnerRegion(c, a)]; }, _handleSpinner: function _handleSpinner(a) { var b = o._getSpinnerTarget(a); var c = o._getInput(b); if (o.isDisabled(c)) { return; } if (c === o._blurredInput) { o._lastInput = c; o._blurredInput = null; } var d = o._getInst(c); o._doFocus(c); var e = o._getSpinnerRegion(d, a); o._changeSpinner(d, b, e); o._actionSpinner(d, e); o._timer = null; o._handlingSpinner = true; if (e >= 3 && d.options.spinnerRepeat[0]) { o._timer = setTimeout(function () { o._repeatSpinner(d, e); }, d.options.spinnerRepeat[0]); $(b).one('mouseout', o._releaseSpinner).one('mouseup', o._releaseSpinner); } }, _actionSpinner: function _actionSpinner(a, b) { if (!a.elem.val()) { o._parseTime(a); } switch (b) { case 0: this._setTime(a); break; case 1: this._changeField(a, -1, false); break; case 2: this._changeField(a, +1, false); break; case 3: this._adjustField(a, +1); break; case 4: this._adjustField(a, -1); break; } }, _repeatSpinner: function _repeatSpinner(a, b) { if (!o._timer) { return; } o._lastInput = o._blurredInput; this._actionSpinner(a, b); this._timer = setTimeout(function () { o._repeatSpinner(a, b); }, a.options.spinnerRepeat[1]); }, _releaseSpinner: function _releaseSpinner(a) { clearTimeout(o._timer); o._timer = null; }, _endExpand: function _endExpand(a) { o._timer = null; var b = o._getSpinnerTarget(a); var c = o._getInput(b); var d = o._getInst(c); $(b).remove(); d._expanded = false; }, _endSpinner: function _endSpinner(a) { o._timer = null; var b = o._getSpinnerTarget(a); var c = o._getInput(b); var d = o._getInst(c); if (!o.isDisabled(c)) { o._changeSpinner(d, b, -1); } if (o._handlingSpinner) { o._lastInput = o._blurredInput; } if (o._lastInput && o._handlingSpinner) { o._showField(d); } o._handlingSpinner = false; }, _getSpinnerTarget: function _getSpinnerTarget(a) { return a.target || a.srcElement; }, _getSpinnerRegion: function _getSpinnerRegion(a, b) { var c = this._getSpinnerTarget(b); var d = $(c).offset(); var e = [document.documentElement.scrollLeft || document.body.scrollLeft, document.documentElement.scrollTop || document.body.scrollTop]; var f = a.options.spinnerIncDecOnly ? 99 : b.clientX + e[0] - d.left; var g = b.clientY + e[1] - d.top; var h = a.options[a._expanded ? 'spinnerBigSize' : 'spinnerSize']; var i = a.options.spinnerIncDecOnly ? 99 : h[0] - 1 - f; var j = h[1] - 1 - g; if (h[2] > 0 && Math.abs(f - i) <= h[2] && Math.abs(g - j) <= h[2]) { return 0; } var k = Math.min(f, g, i, j); return k === f ? 1 : k === i ? 2 : k === g ? 3 : 4; }, _changeSpinner: function _changeSpinner(a, b, c) { $(b).css('background-position', '-' + (c + 1) * a.options[a._expanded ? 'spinnerBigSize' : 'spinnerSize'][0] + 'px 0px'); }, _parseTime: function _parseTime(a, b) { var c = this._extractTime(a); if (c) { a._selectedHour = c[0]; a._selectedMinute = c[1]; a._selectedSecond = c[2]; } else { var d = this._constrainTime(a); a._selectedHour = d[0]; a._selectedMinute = d[1]; a._selectedSecond = a.options.showSeconds ? d[2] : 0; } a._secondField = a.options.showSeconds ? 2 : -1; a._ampmField = a.options.show24Hours ? -1 : a.options.showSeconds ? 3 : 2; a._lastChr = ''; var e = function e() { if (a.elem.val() !== '') { o._showTime(a); } }; if (typeof a.options.initialField === 'number') { a._field = Math.max(0, Math.min(Math.max(1, a._secondField, a._ampmField), a.options.initialField)); e(); } else { setTimeout(function () { a._field = o._getSelection(a, a.elem[0], b); e(); }, 0); } }, _extractTime: function _extractTime(a, b) { b = b || a.elem.val(); var c = b.split(a.options.separator); if (a.options.separator === '' && b !== '') { c[0] = b.substring(0, 2); c[1] = b.substring(2, 4); c[2] = b.substring(4, 6); } if (c.length >= 2) { var d = !a.options.show24Hours && b.indexOf(a.options.ampmNames[0]) > -1; var e = !a.options.show24Hours && b.indexOf(a.options.ampmNames[1]) > -1; var f = parseInt(c[0], 10); f = isNaN(f) ? 0 : f; f = ((d || e) && f === 12 ? 0 : f) + (e ? 12 : 0); var g = parseInt(c[1], 10); g = isNaN(g) ? 0 : g; var h = c.length >= 3 ? parseInt(c[2], 10) : 0; h = isNaN(h) || !a.options.showSeconds ? 0 : h; return this._constrainTime(a, [f, g, h]); } return null; }, _constrainTime: function _constrainTime(a, b) { var c = b !== null && b !== undefined; if (!c) { var d = this._determineTime(a.options.defaultTime, a) || new Date(); b = [d.getHours(), d.getMinutes(), d.getSeconds()]; } var e = false; for (var i = 0; i < a.options.timeSteps.length; i++) { if (e) { b[i] = 0; } else if (a.options.timeSteps[i] > 1) { b[i] = Math.round(b[i] / a.options.timeSteps[i]) * a.options.timeSteps[i]; e = true; } } return b; }, _showTime: function _showTime(a) { var b = (a.options.unlimitedHours ? a._selectedHour : this._formatNumber(a.options.show24Hours ? a._selectedHour : (a._selectedHour + 11) % 12 + 1)) + a.options.separator + this._formatNumber(a._selectedMinute) + (a.options.showSeconds ? a.options.separator + this._formatNumber(a._selectedSecond) : '') + (a.options.show24Hours ? '' : a.options.ampmPrefix + a.options.ampmNames[a._selectedHour < 12 ? 0 : 1]); this._setValue(a, b); this._showField(a); }, _showField: function _showField(a) { var b = a.elem[0]; if (a.elem.is(':hidden') || o._lastInput !== b) { return; } var c = [a.elem.val().split(a.options.separator)[0].length, 2, 2]; var d = 0; var e = 0; while (e < a._field) { d += c[e] + (e === Math.max(1, a._secondField) ? 0 : a.options.separator.length); e++; } var f = d + (a._field !== a._ampmField ? c[e] : a.options.ampmPrefix.length + a.options.ampmNames[0].length); if (b.setSelectionRange) { b.setSelectionRange(d, f); } else if (b.createTextRange) { var g = b.createTextRange(); g.moveStart('character', d); g.moveEnd('character', f - a.elem.val().length); g.select(); } if (!b.disabled) { b.focus(); } }, _formatNumber: function _formatNumber(a) { return (a < 10 ? '0' : '') + a; }, _setValue: function _setValue(a, b) { if (b !== a.elem.val()) { a.elem.val(b).trigger('change'); } }, _changeField: function _changeField(a, b, c) { var d = a.elem.val() === '' || a._field === (b === -1 ? 0 : Math.max(1, a._secondField, a._ampmField)); if (!d) { a._field += b; } this._showField(a); a._lastChr = ''; return d && c; }, _adjustField: function _adjustField(a, b) { if (a.elem.val() === '') { b = 0; } if (a.options.unlimitedHours) { this._setTime(a, [a._selectedHour + (a._field === 0 ? b * a.options.timeSteps[0] : 0), a._selectedMinute + (a._field === 1 ? b * a.options.timeSteps[1] : 0), a._selectedSecond + (a._field === a._secondField ? b * a.options.timeSteps[2] : 0)]); } else { this._setTime(a, new Date(0, 0, 0, a._selectedHour + (a._field === 0 ? b * a.options.timeSteps[0] : 0) + (a._field === a._ampmField ? b * 12 : 0), a._selectedMinute + (a._field === 1 ? b * a.options.timeSteps[1] : 0), a._selectedSecond + (a._field === a._secondField ? b * a.options.timeSteps[2] : 0))); } }, _setTime: function _setTime(a, b) { if (a.options.unlimitedHours && $.isArray(b)) { var c = b; } else { b = this._determineTime(b, a); var c = b ? [b.getHours(), b.getMinutes(), b.getSeconds()] : null; } c = this._constrainTime(a, c); b = new Date(0, 0, 0, c[0], c[1], c[2]); var b = this._normaliseTime(b); var d = this._normaliseTime(this._determineTime(a.options.minTime, a)); var e = this._normaliseTime(this._determineTime(a.options.maxTime, a)); if (a.options.unlimitedHours) { while (c[2] < 0) { c[2] += 60; c[1]--; } while (c[2] > 59) { c[2] -= 60; c[1]++; } while (c[1] < 0) { c[1] += 60; c[0]--; } while (c[1] > 59) { c[1] -= 60; c[0]++; } d = a.options.minTime != null && $.isArray(a.options.minTime) ? a.options.minTime : [0, 0, 0]; if (c[0] < d[0]) { c = d.slice(0, 3); } else if (c[0] === d[0]) { if (c[1] < d[1]) { c[1] = d[1]; c[2] = d[2]; } else if (c[1] === d[1]) { if (c[2] < d[2]) { c[2] = d[2]; } } } if (a.options.maxTime != null && $.isArray(a.options.maxTime)) { if (c[0] > a.options.maxTime[0]) { c = a.options.maxTime.slice(0, 3); } else if (c[0] === a.options.maxTime[0]) { if (c[1] > a.options.maxTime[1]) { c[1] = a.options.maxTime[1]; c[2] = a.options.maxTime[2]; } else if (c[1] === a.options.maxTime[1]) { if (c[2] > a.options.maxTime[2]) { c[2] = a.options.maxTime[2]; } } } } } else { if (d && e && d > e) { if (b < d && b > e) { b = Math.abs(b - d) < Math.abs(b - e) ? d : e; } } else { b = d && b < d ? d : e && b > e ? e : b; } c[0] = b.getHours(); c[1] = b.getMinutes(); c[2] = b.getSeconds(); } if ($.isFunction(a.options.beforeSetTime)) { b = a.options.beforeSetTime.apply(a.elem[0], [this.getTime(a.elem[0]), b, d, e]); c[0] = b.getHours(); c[1] = b.getMinutes(); c[2] = b.getSeconds(); } a._selectedHour = c[0]; a._selectedMinute = c[1]; a._selectedSecond = c[2]; this._showTime(a); }, _determineTime: function _determineTime(i, j) { var k = function k(a) { var b = new Date(); b.setTime(b.getTime() + a * 1000); return b; }; var l = function l(a) { var b = o._extractTime(j, a); var c = new Date(); var d = b ? b[0] : c.getHours(); var e = b ? b[1] : c.getMinutes(); var f = b ? b[2] : c.getSeconds(); if (!b) { var g = /([+-]?[0-9]+)\s*(s|S|m|M|h|H)?/g; var h = g.exec(a); while (h) { switch (h[2] || 's') { case 's': case 'S': f += parseInt(h[1], 10); break; case 'm': case 'M': e += parseInt(h[1], 10); break; case 'h': case 'H': d += parseInt(h[1], 10); break; } h = g.exec(a); } } c = new Date(0, 0, 10, d, e, f, 0); if (/^!/.test(a)) { if (c.getDate() > 10) { c = new Date(0, 0, 10, 23, 59, 59); } else if (c.getDate() < 10) { c = new Date(0, 0, 10, 0, 0, 0); } } return c; }; var m = function m(a) { return new Date(0, 0, 0, a[0], a[1] || 0, a[2] || 0, 0); }; return i ? typeof i === 'string' ? l(i) : typeof i === 'number' ? k(i) : $.isArray(i) ? m(i) : i : null; }, _normaliseTime: function _normaliseTime(a) { if (!a) { return null; } a.setFullYear(1900); a.setMonth(0); a.setDate(0); return a; } }); var o = $.timeEntry; })(jQuery); /***/ }), /***/ "./assets/js/components/jquery-uploadfile/js/jquery.uploadfile.min.js": /*!****************************************************************************!*\ !*** ./assets/js/components/jquery-uploadfile/js/jquery.uploadfile.min.js ***! \****************************************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js"); __webpack_require__(/*! core-js/modules/es.array.index-of.js */ "./node_modules/core-js/modules/es.array.index-of.js"); __webpack_require__(/*! core-js/modules/es.array.splice.js */ "./node_modules/core-js/modules/es.array.splice.js"); __webpack_require__(/*! core-js/modules/es.date.to-string.js */ "./node_modules/core-js/modules/es.date.to-string.js"); __webpack_require__(/*! core-js/modules/es.function.name.js */ "./node_modules/core-js/modules/es.function.name.js"); __webpack_require__(/*! core-js/modules/es.number.to-fixed.js */ "./node_modules/core-js/modules/es.number.to-fixed.js"); __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); __webpack_require__(/*! core-js/modules/es.parse-int.js */ "./node_modules/core-js/modules/es.parse-int.js"); __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js"); __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js"); __webpack_require__(/*! core-js/modules/es.string.split.js */ "./node_modules/core-js/modules/es.string.split.js"); __webpack_require__(/*! core-js/modules/web.timers.js */ "./node_modules/core-js/modules/web.timers.js"); /*! * jQuery Upload File Plugin * version: 4.0.1 * @requires jQuery v1.5 or later & form plugin * Copyright (c) 2013 Ravishanker Kusuma * http://hayageek.com/ */ !function (e) { void 0 == e.fn.ajaxForm && e.getScript(("https:" == document.location.protocol ? "https://" : "http://") + "malsup.github.io/jquery.form.js"); var a = {}; a.fileapi = void 0 !== e("").get(0).files, a.formdata = void 0 !== window.FormData, e.fn.uploadFile = function (t) { function r() { S || (S = !0, function e() { if (0 == x.length && 0 == D.length) w.afterUploadAll(C), S = !1;else { if (D.length < w.sequentialCount) { var a = x.shift(); void 0 != a && (D.push(a), a.submit()); } window.setTimeout(e, 100); } }()); } function o(a, t, r) { r.on("dragenter", function (a) { a.stopPropagation(), a.preventDefault(), e(this).addClass(t.dragDropHoverClass); }), r.on("dragover", function (a) { a.stopPropagation(), a.preventDefault(); var r = e(this); r.hasClass(t.dragDropContainerClass) && !r.hasClass(t.dragDropHoverClass) && r.addClass(t.dragDropHoverClass); }), r.on("drop", function (r) { r.preventDefault(), e(this).removeClass(t.dragDropHoverClass), a.errorLog.html(""); var o = r.originalEvent.dataTransfer.files; return !t.multiple && o.length > 1 ? void (t.showError && e("
" + t.multiDragErrorStr + "
").appendTo(a.errorLog)) : void (0 != t.onSelect(o) && l(t, a, o)); }), r.on("dragleave", function () { e(this).removeClass(t.dragDropHoverClass); }), e(document).on("dragenter", function (e) { e.stopPropagation(), e.preventDefault(); }), e(document).on("dragover", function (a) { a.stopPropagation(), a.preventDefault(); var r = e(this); r.hasClass(t.dragDropContainerClass) || r.removeClass(t.dragDropHoverClass); }), e(document).on("drop", function (a) { a.stopPropagation(), a.preventDefault(), e(this).removeClass(t.dragDropHoverClass); }); } function s(e) { var a = "", t = e / 1024; if (parseInt(t) > 1024) { var r = t / 1024; a = r.toFixed(2) + " MB"; } else a = t.toFixed(2) + " KB"; return a; } function i(a) { var t = []; t = "string" == jQuery.type(a) ? a.split("&") : e.param(a).split("&"); var r, o, s = t.length, i = []; for (r = 0; s > r; r++) t[r] = t[r].replace(/\+/g, " "), o = t[r].split("="), i.push([decodeURIComponent(o[0]), decodeURIComponent(o[1])]); return i; } function l(a, t, r) { for (var o = 0; o < r.length; o++) if (n(t, a, r[o].name)) { if (a.allowDuplicates || !d(t, r[o].name)) { if (-1 != a.maxFileSize && r[o].size > a.maxFileSize) a.showError && e("
" + r[o].name + " " + a.sizeErrorStr + s(a.maxFileSize) + "
").appendTo(t.errorLog);else if (-1 != a.maxFileCount && t.selectedFiles >= a.maxFileCount) a.showError && e("
" + r[o].name + " " + a.maxFileCountErrorStr + a.maxFileCount + "
").appendTo(t.errorLog);else { t.selectedFiles++, t.existingFileNames.push(r[o].name); var l = a, p = new FormData(), u = a.fileName.replace("[]", ""); p.append(u, r[o]); var c = a.formData; if (c) for (var h = i(c), f = 0; f < h.length; f++) h[f] && p.append(h[f][0], h[f][1]); l.fileData = p; var w = new m(t, a), g = ""; g = a.showFileCounter ? t.fileCounter + a.fileCounterStyle + r[o].name : r[o].name, a.showFileSize && (g += " (" + s(r[o].size) + ")"), w.filename.html(g); var C = e("
"); C.appendTo("body"); var b = []; b.push(r[o].name), v(C, l, w, b, t, r[o]), t.fileCounter++; } } else a.showError && e("
" + r[o].name + " " + a.duplicateErrorStr + "
").appendTo(t.errorLog); } else a.showError && e("
" + r[o].name + " " + a.extErrorStr + a.allowedTypes + "
").appendTo(t.errorLog); } function n(e, a, t) { var r = a.allowedTypes.toLowerCase().split(","), o = t.split(".").pop().toLowerCase(); return "*" != a.allowedTypes && jQuery.inArray(o, r) < 0 ? !1 : !0; } function d(e, a) { var t = !1; if (e.existingFileNames.length) for (var r = 0; r < e.existingFileNames.length; r++) (e.existingFileNames[r] == a || w.duplicateStrict && e.existingFileNames[r].toLowerCase() == a.toLowerCase()) && (t = !0); return t; } function p(e, a) { if (e.existingFileNames.length) for (var t = 0; t < a.length; t++) { var r = e.existingFileNames.indexOf(a[t]); -1 != r && e.existingFileNames.splice(r, 1); } } function u(e, a) { if (e) { a.show(); var t = new FileReader(); t.onload = function (e) { a.attr("src", e.target.result); }, t.readAsDataURL(e); } } function c(a, t) { if (a.showFileCounter) { var r = e(t.container).find(".ajax-file-upload-filename").length; t.fileCounter = r + 1, e(t.container).find(".ajax-file-upload-filename").each(function () { var t = e(this).html().split(a.fileCounterStyle), o = (parseInt(t[0]) - 1, r + a.fileCounterStyle + t[1]); e(this).html(o), r--; }); } } function h(t, r, o, s) { var i = "ajax-upload-id-" + new Date().getTime(), d = e("
"), p = ""; o.multiple && (o.fileName.indexOf("[]") != o.fileName.length - 2 && (o.fileName += "[]"), p = ""); var u = e(p).appendTo(d); u.change(function () { t.errorLog.html(""); var i = (o.allowedTypes.toLowerCase().split(","), []); if (this.files) { for (g = 0; g < this.files.length; g++) i.push(this.files[g].name); if (0 == o.onSelect(this.files)) return; } else { var p = e(this).val(), u = []; if (i.push(p), !n(t, o, p)) return void (o.showError && e("
" + p + " " + o.extErrorStr + o.allowedTypes + "
").appendTo(t.errorLog)); if (u.push({ name: p, size: "NA" }), 0 == o.onSelect(u)) return; } if (c(o, t), s.unbind("click"), d.hide(), h(t, r, o, s), d.addClass(r), o.serialize && a.fileapi && a.formdata) { d.removeClass(r); var f = this.files; d.remove(), l(o, t, f); } else { for (var w = "", g = 0; g < i.length; g++) w += o.showFileCounter ? t.fileCounter + o.fileCounterStyle + i[g] + "
" : i[g] + "
", t.fileCounter++; if (-1 != o.maxFileCount && t.selectedFiles + i.length > o.maxFileCount) return void (o.showError && e("
" + w + " " + o.maxFileCountErrorStr + o.maxFileCount + "
").appendTo(t.errorLog)); t.selectedFiles += i.length; var C = new m(t, o); C.filename.html(w), C.filename.html(""), v(d, o, C, i, t, null); } }), o.nestedForms ? (d.css({ margin: 0, padding: 0 }), s.css({ position: "relative", overflow: "hidden", cursor: "default" }), u.css({ position: "absolute", cursor: "pointer", top: "0px", width: "100%", height: "100%", left: "0px", "z-index": "100", opacity: "0.0", filter: "alpha(opacity=0)", "-ms-filter": "alpha(opacity=0)", "-khtml-opacity": "0.0", "-moz-opacity": "0.0" }), d.appendTo(s)) : (d.appendTo(e("body")), d.css({ margin: 0, padding: 0, display: "block", position: "absolute", left: "-250px" }), -1 != navigator.appVersion.indexOf("MSIE ") ? s.attr("for", i) : s.click(function () { u.click(); })); } function f(a, t) { return this.statusbar = e("
").width(t.statusBarWidth), this.preview = e("").width(t.previewWidth).height(t.previewHeight).appendTo(this.statusbar).hide(), this.filename = e("
").appendTo(this.statusbar), this.progressDiv = e("
").appendTo(this.statusbar).hide(), this.progressbar = e("
").appendTo(this.progressDiv), this.abort = e("
" + t.abortStr + "
").appendTo(this.statusbar).hide(), this.cancel = e("
" + t.cancelStr + "
").appendTo(this.statusbar).hide(), this.done = e("
" + t.doneStr + "
").appendTo(this.statusbar).hide(), this.download = e("
" + t.downloadStr + "
").appendTo(this.statusbar).hide(), this.del = e("
" + t.deletelStr + "
").appendTo(this.statusbar).hide(), this.abort.addClass("ajax-file-upload-red"), this.done.addClass("ajax-file-upload-green"), this.download.addClass("ajax-file-upload-green"), this.cancel.addClass("ajax-file-upload-red"), this.del.addClass("ajax-file-upload-red"), this; } function m(a, t) { var r = null; return r = t.customProgressBar ? new t.customProgressBar(a, t) : new f(a, t), r.abort.addClass(a.formGroup), r.abort.addClass(t.abortButtonClass), r.cancel.addClass(a.formGroup), r.cancel.addClass(t.cancelButtonClass), t.extraHTML && (r.extraHTML = e("
" + t.extraHTML() + "
").insertAfter(r.filename)), e(a.container).append(r.statusbar), r; } function v(t, o, s, l, n, d) { var h = { cache: !1, contentType: !1, processData: !1, forceSync: !1, type: o.method, data: o.formData, formData: o.fileData, dataType: o.returnType, beforeSubmit: function beforeSubmit(a, r, d) { if (0 != o.onSubmit.call(this, l)) { if (o.dynamicFormData) { var u = i(o.dynamicFormData()); if (u) for (var h = 0; h < u.length; h++) u[h] && (void 0 != o.fileData ? d.formData.append(u[h][0], u[h][1]) : d.data[u[h][0]] = u[h][1]); } return o.extraHTML && e(s.extraHTML).find("input,select,textarea").each(function () { void 0 != o.fileData ? d.formData.append(e(this).attr("name"), e(this).val()) : d.data[e(this).attr("name")] = e(this).val(); }), !0; } return s.statusbar.append("
" + o.uploadErrorStr + "
"), s.cancel.show(), t.remove(), s.cancel.click(function () { x.pop(), p(n, l), s.statusbar.remove(), o.onCancel.call(n, l, s), n.selectedFiles -= l.length, c(o, n); }), !1; }, beforeSend: function beforeSend(e) { s.progressDiv.show(), s.cancel.hide(), s.done.hide(), o.showAbort && (s.abort.show(), s.abort.click(function () { p(n, l), e.abort(), n.selectedFiles -= l.length; })), s.progressbar.width(a.formdata ? "1%" : "5%"); }, uploadProgress: function uploadProgress(e, a, t, r) { r > 98 && (r = 98); var i = r + "%"; r > 1 && s.progressbar.width(i), o.showProgress && (s.progressbar.html(i), s.progressbar.css("text-align", "center")); }, success: function success(a, r, i) { if (s.cancel.remove(), D.pop(), "json" == o.returnType && "object" == e.type(a) && a.hasOwnProperty(o.customErrorKeyStr)) { s.abort.hide(); var d = a[o.customErrorKeyStr]; return o.onError.call(this, l, 200, d, s), o.showStatusAfterError ? (s.progressDiv.hide(), s.statusbar.append("ERROR: " + d + "")) : (s.statusbar.hide(), s.statusbar.remove()), n.selectedFiles -= l.length, void t.remove(); } n.responses.push(a), s.progressbar.width("100%"), o.showProgress && (s.progressbar.html("100%"), s.progressbar.css("text-align", "center")), s.abort.hide(), o.onSuccess.call(this, l, a, i, s), o.showStatusAfterSuccess ? (o.showDone ? (s.done.show(), s.done.click(function () { s.statusbar.hide("slow"), s.statusbar.remove(); })) : s.done.hide(), o.showDelete ? (s.del.show(), s.del.click(function () { s.statusbar.hide().remove(), o.deleteCallback && o.deleteCallback.call(this, a, s), n.selectedFiles -= l.length, c(o, n); })) : s.del.hide()) : (s.statusbar.hide("slow"), s.statusbar.remove()), o.showDownload && (s.download.show(), s.download.click(function () { o.downloadCallback && o.downloadCallback(a); })), t.remove(); }, error: function error(e, a, r) { s.cancel.remove(), D.pop(), s.abort.hide(), "abort" == e.statusText ? (s.statusbar.hide("slow").remove(), c(o, n)) : (o.onError.call(this, l, a, r, s), o.showStatusAfterError ? (s.progressDiv.hide(), s.statusbar.append("ERROR: " + r + "")) : (s.statusbar.hide(), s.statusbar.remove()), n.selectedFiles -= l.length), t.remove(); } }; o.showPreview && null != d && "image" == d.type.toLowerCase().split("/").shift() && u(d, s.preview), o.autoSubmit ? o.sequential ? (t.ajaxForm(h), x.push(t), r()) : t.ajaxSubmit(h) : (o.showCancel && (s.cancel.show(), s.cancel.click(function () { x.pop(), p(n, l), t.remove(), s.statusbar.remove(), o.onCancel.call(n, l, s), n.selectedFiles -= l.length, c(o, n); })), t.ajaxForm(h)); } var w = e.extend({ url: "", method: "POST", enctype: "multipart/form-data", returnType: null, allowDuplicates: !0, duplicateStrict: !1, allowedTypes: "*", acceptFiles: "*", fileName: "file", formData: !1, dynamicFormData: !1, maxFileSize: -1, maxFileCount: -1, multiple: !0, dragDrop: !0, autoSubmit: !0, showCancel: !0, showAbort: !0, showDone: !1, showDelete: !1, showError: !0, showStatusAfterSuccess: !0, showStatusAfterError: !0, showFileCounter: !0, fileCounterStyle: "). ", showFileSize: !0, showProgress: !1, nestedForms: !0, showDownload: !1, onLoad: function onLoad() {}, onSelect: function onSelect() { return !0; }, onSubmit: function onSubmit() {}, onSuccess: function onSuccess() {}, onError: function onError() {}, onCancel: function onCancel() {}, downloadCallback: !1, deleteCallback: !1, afterUploadAll: !1, serialize: !0, sequential: !1, sequentialCount: 2, customProgressBar: !1, abortButtonClass: "ajax-file-upload-abort", cancelButtonClass: "ajax-file-upload-cancel", dragDropContainerClass: "ajax-upload-dragdrop", dragDropHoverClass: "state-hover", errorClass: "ajax-file-upload-error", uploadButtonClass: "ajax-file-upload", dragDropStr: "Drag & Drop Files", uploadStr: "Upload", abortStr: "Abort", cancelStr: "Cancel", deletelStr: "Delete", doneStr: "Done", multiDragErrorStr: "Multiple File Drag & Drop is not allowed.", extErrorStr: "is not allowed. Allowed extensions: ", duplicateErrorStr: "is not allowed. File already exists.", sizeErrorStr: "is not allowed. Allowed Max size: ", uploadErrorStr: "Upload is not allowed", maxFileCountErrorStr: " is not allowed. Maximum allowed files are:", downloadStr: "Download", customErrorKeyStr: "jquery-upload-file-error", showQueueDiv: !1, statusBarWidth: 400, dragdropWidth: 400, showPreview: !1, previewHeight: "auto", previewWidth: "100%", extraHTML: !1 }, t); this.fileCounter = 1, this.selectedFiles = 0; var g = "ajax-file-upload-" + new Date().getTime(); this.formGroup = g, this.errorLog = e("
"), this.responses = [], this.existingFileNames = [], a.formdata || (w.dragDrop = !1), a.formdata || (w.multiple = !1), e(this).html(""); var C = this, b = e("
" + w.uploadStr + "
"); e(b).addClass(w.uploadButtonClass), function F() { if (e.fn.ajaxForm) { if (w.dragDrop) { var a = e('
').width(w.dragdropWidth); e(C).append(a), e(a).append(b), e(a).append(e(w.dragDropStr)), o(C, w, a); } else e(C).append(b); e(C).append(C.errorLog), C.container = w.showQueueDiv ? e("#" + w.showQueueDiv) : e("
").insertAfter(e(C)), w.onLoad.call(this, C), h(C, g, w, b); } else window.setTimeout(F, 10); }(), this.startUpload = function () { e("." + this.formGroup).each(function () { e(this).is("form") && x.push(e(this)); }), r(); }, this.getFileCount = function () { return C.selectedFiles; }, this.stopUpload = function () { e("." + w.abortButtonClass).each(function () { e(this).hasClass(C.formGroup) && e(this).click(); }), e("." + w.cancelButtonClass).each(function () { e(this).hasClass(C.formGroup) && e(this).click(); }); }, this.cancelAll = function () { e("." + w.cancelButtonClass).each(function () { e(this).hasClass(C.formGroup) && e(this).click(); }); }, this.update = function (a) { w = e.extend(w, a); }, this.reset = function (e) { C.fileCounter = 1, C.selectedFiles = 0, C.errorLog.html(""), 0 != e && C.container.html(""); }, this.remove = function () { C.container.html(""), e(C).remove(); }, this.createProgress = function (e) { var a = new m(this, w); a.progressDiv.show(), a.progressbar.width("100%"); var t = ""; t = w.showFileCounter ? C.fileCounter + w.fileCounterStyle + e : e, a.filename.html(t), C.fileCounter++, C.selectedFiles++, w.showPreview && (a.preview.attr("src", w.filename), a.preview.show()), w.showDownload && (a.download.show(), a.download.click(function () { w.downloadCallback && w.downloadCallback.call(C, [e]); })), a.del.show(), a.del.click(function () { a.statusbar.hide().remove(); var t = [e]; w.deleteCallback && w.deleteCallback.call(this, t, a), C.selectedFiles -= 1, c(w, C); }); }, this.getResponses = function () { return this.responses; }; var x = [], D = [], S = !1; return this; }; }(jQuery); /***/ }), /***/ "./assets/js/components/login.js": /*!***************************************!*\ !*** ./assets/js/components/login.js ***! \***************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /** * Created by PhpStorm * User: daniele * Date: 17/12/20 * Time: 09:28 */ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ passwordEvents: function passwordEvents() { $("#togglePasswordLink").on('click', function (event) { event.preventDefault(); if ($('#password').attr("type") === "text") { $('#password').attr('type', 'password'); $('#togglePassword').addClass("fa-eye-slash"); $('#togglePassword').removeClass("fa-eye"); } else if ($('#password').attr("type") === "password") { $('#password').attr('type', 'text'); $('#togglePassword').removeClass("fa-eye-slash"); $('#togglePassword').addClass("fa-eye"); } }); }, loginSubmit: function loginSubmit(opts) { if (opts && typeof opts.onBeforeSubmit === "function") opts.onBeforeSubmit(); var self = this; $("#login").click(function () { if ($("#codicecliente").val() === "" || $("#username").val() === "" || $("#password").val() === "") return; $.ajax({ url: "ajax.php?object=IWUser&tipoview=login&JSON", type: "post", data: $("#form").serialize(), dataType: "json", success: function success(json) { self.loginOnAjaxSuccess({ json: json, opts: opts }); } }); }); }, loginOnAjaxSuccess: function loginOnAjaxSuccess(opts) { var json = opts.json; if (opts.opts && typeof opts.opts.onSuccessCallback === "function") opts.opts.onSuccessCallback(json); if (!json.ret) { alert('Credenziali errate: ritentare

Invalid Username or password: try again'); return; } var pagedefault = json.pagedefault; if (json.url) pagedefault = json.url; if (!pagedefault) pagedefault = document.location.href;else pagedefault = "index.php?" + pagedefault; if (strpos(pagedefault, "?") > 0) pagedefault += "&__sck__=1";else pagedefault += "?__sck__=1"; window.location.href = pagedefault; }, openModalRecuperoPwd: function openModalRecuperoPwd() { var self = this; $("#lost-password-link").on("click", function () { $("#recupero-pwd-button").show(); $("#recupero_pwd_username").val(""); $("#recupero-pwd-button .spinner-border, .loading-recupero-pwd").hide(); $("#span-recupero-pwd-button").show(); var $button = $("#recupero-pwd-button"); $button.prop("disabled", false); $button.off(); $button.on("click", function () { self.getEmailRecuperoPassword(); }); $button.show(); $("#recupero-pwd-output-actions .output-actions").html(""); $("#recupero-pwd-output-actions").hide(); $("#popup-recupero-pwd").modal("show"); }); }, getEmailRecuperoPassword: function getEmailRecuperoPassword() { var $form = $("#recupero-pwd-form"); var form = $form[0]; var validation = form.checkValidity(); form.classList.add('was-validated'); if (!validation) return; $("#span-recupero-pwd-button").hide(); $("#recupero-pwd-button .spinner-border, .loading-recupero-pwd").show(); var self = this; var company = $("#recupero_pwd_company").val(); var username = $("#recupero_pwd_username").val(); $.ajax({ url: "/recupero-password", type: "post", dataType: "json", data: { tipoview: "getEmailRecuperoPwd", company: company, username: username }, success: function success(json) { $("#recupero-pwd-output-actions .output-actions").html(json.data.msg); $("#recupero-pwd-output-actions").show(); var $button = $("#recupero-pwd-button"); if (!json.data.ret) { $button.prop("disabled", true); $button.hide(); return; } $("#recupero-pwd-button .spinner-border, .loading-recupero-pwd").hide(); $("#span-recupero-pwd-button").show(); $button.show(); $button.off(); $button.on("click", function () { self.sendEmailRecuperoPassword(company, username); }); } }); }, sendEmailRecuperoPassword: function sendEmailRecuperoPassword(company, username) { $("#span-recupero-pwd-button").hide(); $("#recupero-pwd-button .spinner-border, .loading-recupero-pwd").show(); $.ajax({ url: "/recupero-password", type: "post", dataType: "json", data: { tipoview: "sendEmailRecuperoPwd", company: company, username: username }, success: function success(json) { $("#recupero-pwd-output-actions .output-actions").html(json.data.msg ? json.data.msg : json.data.out); $("#recupero-pwd-output-actions").show(); if (!json.msg) { $("#recupero-pwd-button").hide(); return; } $("#recupero-pwd-button .spinner-border, .loading-recupero-pwd").hide(); $("#span-recupero-pwd-button").show(); } }); }, checkEmailRecuperoPwd: function checkEmailRecuperoPwd() { var self = this; getHtmlFromAjax({ url: "ajax.php?JSON", divname: "dialog_recupero_password", data: { object: "IWUser", tipoview: "viewDialogSetEmailForPwdReset" }, onSuccess: function onSuccess() { dialogShow("dialog_recupero_password", function (ret) { if (!ret) return; $.ajax({ url: "view.php", dataType: "json", type: "post", data: { OP_FROM_AJAX: 1, JSON: 1, object: "IWUser", tipoview: "saveEmailRecuperoPwd", email: $("#email_for_pwd_reset").val() }, success: function success(json) { ajaxSubmitOnSuccessFunction(json, true); if (!json.ret) self.checkEmailRecuperoPwd(); } }); }); } }); } }); /***/ }), /***/ "./include/js/date.js": /*!****************************!*\ !*** ./include/js/date.js ***! \****************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { __webpack_require__(/*! core-js/modules/es.array.index-of.js */ "./node_modules/core-js/modules/es.array.index-of.js"); __webpack_require__(/*! core-js/modules/es.array.map.js */ "./node_modules/core-js/modules/es.array.map.js"); __webpack_require__(/*! core-js/modules/es.date.to-string.js */ "./node_modules/core-js/modules/es.date.to-string.js"); __webpack_require__(/*! core-js/modules/es.number.constructor.js */ "./node_modules/core-js/modules/es.number.constructor.js"); __webpack_require__(/*! core-js/modules/es.number.is-integer.js */ "./node_modules/core-js/modules/es.number.is-integer.js"); __webpack_require__(/*! core-js/modules/es.object.keys.js */ "./node_modules/core-js/modules/es.object.keys.js"); __webpack_require__(/*! core-js/modules/es.parse-int.js */ "./node_modules/core-js/modules/es.parse-int.js"); /** * Created by PhpStorm * User: daniele * Date: 15/05/20 * Time: 12.52 */ module.exports = { /** * Prende in ingresso una data in formato ita e la trasforma in jap * @param {string} data_it * @returns {string} */ Date__jap: function Date__jap(data_it) { if (!data_it) return ""; var date_format = $("#DPC_DEFAULT_FORMAT").val(); if (date_format === "yy/mm/dd") return data_it; return moment(data_it, date_format === "dd/mm/yy" ? "DD/MM/YYYY" : "MM/DD/YYYY").format("YYYY/MM/DD"); }, /** * Prende in ingresso una data in formato jap e la trasforma in ita * @param {string} data_jap * @returns {string} */ Date__it: function Date__it(data_jap) { if (!data_jap) return ""; var date_format = $("#DPC_DEFAULT_FORMAT").val(); if (date_format === "yy/mm/dd") return data_jap; return moment(data_jap, "YYYY/MM/DD").format(date_format === "dd/mm/yy" ? "DD/MM/YYYY" : "MM/DD/YYYY"); }, /** * ritorna l'ora corrente in formato HH.MM * @returns {string} * @constructor */ Date__OraNow: function Date__OraNow(view_secondi) { return moment().format(view_secondi ? "HH.mm.ss" : "HH.mm"); }, //ritorna il giorno giuliano a 3 caratteri fissi, passando una data in japp Date__ggiuliano: function Date__ggiuliano(data_jap) { var adesso = new Date(data_jap.substr(0, 4), parseInt(data_jap.substr(5, 2), 10) - 1, data_jap.substr(8, 2), 4, 0, 0); var anno = adesso.getFullYear(); var inizioanno = new Date(anno, 0, 0); var GG = String(Math.floor((adesso - inizioanno) / 86400000)); return str_pad(GG, 3, "0", "STR_PAD_LEFT"); }, /** * Aggiunge alla data_jap un numero di giorni. Restituisce una data_jap * @param data_jap * @param ngiorni * @param conta_da_fine_mese * @param usa_calendario_commerciale * @returns {string} * @constructor */ Date__add: function Date__add(data_jap, ngiorni, conta_da_fine_mese, usa_calendario_commerciale) { ngiorni = getFloat(ngiorni); if (Number.isInteger(ngiorni / 30) && !conta_da_fine_mese && usa_calendario_commerciale) return Date__sommamesi(data_jap, ngiorni / 30); if (conta_da_fine_mese) { data_jap = data_jap.substr(0, 8) + "15"; } var d = moment(data_jap, "YYYY/MM/DD"); if (ngiorni > 0) d.add(ngiorni, "days");else d.subtract(Math.abs(ngiorni), "days"); if (conta_da_fine_mese) d.endOf("month"); return d.format("YYYY/MM/DD"); }, /** * funzione che somma x mesi alla data passata come parametro. * torna lo stesso giorno di x mesi dopo; se per caso il giorno è impossibile (es. 31/06) ritorna il primo giorno successivo * dipsonibile (es. 01/07) * @param {string} data_jap * @param {int} nmesi * @returns {string} */ Date__sommamesi: function Date__sommamesi(data_jap, nmesi) { var d = moment(data_jap, "YYYY/MM/DD"); d.add(nmesi, "months"); return d.format("YYYY/MM/DD"); }, /** * Ritorna la data odierna * @returns {string} */ Date__now: function Date__now() { return moment().format("YYYY/MM/DD"); }, /** * Aggiunge tot minuti e secondi all'orario passato. Ritorna un orario solo HH.MM * @param {string} orario * @param {string} mm * @param {number} ss * @returns {string} */ minutiAdd: function minutiAdd(orario, mm, ss) { if (ss == null) ss = 0; var h = getFloat(orario.substr(0, 2)); var m = getFloat(orario.substr(3, 2)); ss = mm * 60 + ss; var d = new Date(2000, 1, 1, h, m, 0, 0); var t = d.getTime(); t += ss * 1000; d.setTime(t); var h2 = d.getHours(); var m2 = d.getMinutes(); if (h2 <= 9) h2 = "0" + h2; if (m2 <= 9) m2 = "0" + m2; return h2 + "." + m2; }, /** * Ritorna true se è un orario valido nel formato HH.MM col carattere '.' come separatore * @param {string} s * @returns {boolean} */ isOrario: function isOrario(s) { var i = s.indexOf('.'); if (i == -1) return false; if (i == 1) s = "0" + s; if (parseInt(s.substr(0, 2), 10) > 23) return false; if (parseInt(s.substr(3, 2), 10) > 59) return false; return true; }, getParamsForDatepicker: function getParamsForDatepicker(params) { var date_format = $("#DPC_DEFAULT_FORMAT").val(); var format; switch (date_format) { case "dd/mm/yy": format = "dd/mm/yyyy"; break; case "mm/dd/yy": format = "mm/dd/yyyy"; break; default: format = "yyyy/mm/dd"; break; } var standard_params = { format: format, autoclose: true, todayHighlight: true, language: $("#LANG").val(), clearBtn: true }; if (params) { Object.keys(params).map(function (key) { standard_params[key] = params[key]; }); } return standard_params; }, bsDatePickerInit: function bsDatePickerInit() { var self = this; $(".input-group.date").datepicker(self.getParamsForDatepicker()); }, bsDatePickerRangeInit: function bsDatePickerRangeInit(params) { var self = this; $('.input-daterange input').each(function () { $(this).datepicker(self.getParamsForDatepicker(params)); }); } }; /***/ }), /***/ "./include/js/pack/0050.autocomplete-events.js": /*!*****************************************************!*\ !*** ./include/js/pack/0050.autocomplete-events.js ***! \*****************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { __webpack_require__(/*! core-js/modules/es.function.bind.js */ "./node_modules/core-js/modules/es.function.bind.js"); /** * Created by Daniele on 06/07/16. */ (function ($) { $.fn.autocompleteOnFocusEvent = function () { $(this).focus(function () { $(this).select(); $(this).one("mouseup", function (ev) { ev.preventDefault(); }); }); }; $.fn.autocompleteSearchAllOnDblClick = function () { $(this).bind("dblclick", function () { if (!$(this).attr("readonly")) { var $this = $(this); var $hidden = $("#" + $(this).attr("id") + "_hidden"); $this.val(""); $hidden.val(0); $this.keyup(); $this.val("%"); $this.keyup(); $this.val(""); } }); }; })(jQuery); $(document).ready(function () { $(".searchBox_codearticolo").autocompleteOnFocusEvent(); $(".searchBox_articolo").autocompleteOnFocusEvent(); $(".searchBox_user").autocompleteOnFocusEvent(); $(".searchBox_pdc").autocompleteOnFocusEvent(); $(".searchBox_banca").autocompleteOnFocusEvent(); $(".searchBox_pagamento").autocompleteOnFocusEvent(); $(".searchBox_comuni").autocompleteOnFocusEvent(); $(".searchBox_CDC").autocompleteOnFocusEvent(); $(".searchBox_commesse").autocompleteOnFocusEvent(); $(".searchBox_iva").autocompleteOnFocusEvent(); $(".searchBox_causalecontabile_codice").autocompleteOnFocusEvent(); $(".searchBox_causalecontabile").autocompleteOnFocusEvent(); $(".searchBox_lotto").autocompleteOnFocusEvent(); $(".searchBox_mag").autocompleteOnFocusEvent(); $(".searchBox_user").autocompleteSearchAllOnDblClick(); $(".searchBox_articolo").autocompleteSearchAllOnDblClick(); $(".searchBox_iva").autocompleteSearchAllOnDblClick(); $(".searchBox_causalecontabile_codice").autocompleteSearchAllOnDblClick(); $(".searchBox_commesse").autocompleteSearchAllOnDblClick(); }); /***/ }), /***/ "./include/js/pack/0170.jquery.simplecurrency.js": /*!*******************************************************!*\ !*** ./include/js/pack/0170.jquery.simplecurrency.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { __webpack_require__(/*! core-js/modules/es.array.index-of.js */ "./node_modules/core-js/modules/es.array.index-of.js"); __webpack_require__(/*! core-js/modules/es.function.bind.js */ "./node_modules/core-js/modules/es.function.bind.js"); __webpack_require__(/*! core-js/modules/es.number.constructor.js */ "./node_modules/core-js/modules/es.number.constructor.js"); __webpack_require__(/*! core-js/modules/es.number.to-fixed.js */ "./node_modules/core-js/modules/es.number.to-fixed.js"); __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js"); __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js"); /* * jQuery SimpleCurrency plugin * Version 1.0 (3-MAY-2009) * * Examples at: http://www.roncosoftware.it/jquery.simplecurrency * Copyright Giovanni Ronco * Licensed under LGPL */ /* This is an automatic script that trasform the normal input-field in a currency-field. Just attach to the text-field css class="Currency" This field (for example with id="curr1") must have a hidden-field near with id="curr1_hidden". This hidden-field contains a real float number that you can use... Must exists 4 hidden fields in the top of the page: In every currency-field it's possibile to override symbol or decimals, adding "symbol" or "decimals" proprerty (this is no XHTML strict) examples: normal: with symbol overload: with decimals overload: */ var CURRENCY__SYMBOL = ""; var CURRENCY__DECIMALS = 2; var CURRENCY__DECIMAL_SEPARATOR = "."; var CURRENCY__THOUSANDS_SEPARATOR = ","; $(document).ready(function () { CURRENCY__SYMBOL = $("#CURRENCY__SYMBOL").val(); //CURRENCY__DECIMALS=$("#CURRENCY__DECIMALS").val(); CURRENCY__DECIMAL_SEPARATOR = $("#CURRENCY__DECIMAL_SEPARATOR").val(); CURRENCY__THOUSANDS_SEPARATOR = $("#CURRENCY__THOUSANDS_SEPARATOR").val(); $(".Currency").prop("autocomplete", "off"); $(".Currency").bind("keydown focus blur", function (e) { //********* var objID = e.target.id; var objID_hidden = objID + "_hidden"; var mCURRENCY__SYMBOL = CURRENCY__SYMBOL; var mCURRENCY__DECIMALS = CURRENCY__DECIMALS; var s, n; //overload eventuali del simbolo e del numero di decimali if ($("#" + objID).prop("symbol") != undefined) mCURRENCY__SYMBOL = $("#" + objID).prop("symbol"); if ($("#" + objID).attr("decimals") != undefined) mCURRENCY__DECIMALS = $("#" + objID).attr("decimals"); if (e.type == "keydown") { var keynum; if (window.event) keynum = e.keyCode;else if (e.which) keynum = e.which; if (keynum == 188) { e.keyCode = 190; e.which = 190; } //la virgola � disabilitata //tastierino numerico.... if (keynum == 110) { keynum = 190; return true; } //questo � il punto if (keynum >= 96 && keynum <= 105) keynum -= 48; //*************************** var keychar = String.fromCharCode(keynum); if (keynum == 188) keychar = ','; if (keynum == 190) keychar = '.'; if (keynum == 109) keychar = '-'; if (keynum == 173) keychar = '-'; if (keynum == 8 || keynum == 37 || keynum == 39 || keynum == 9 || keynum == 36 || keynum == 35) return true; var numbers = "0123456789"; if (numbers.indexOf(keychar) > -1) return true; if (keychar == CURRENCY__DECIMAL_SEPARATOR && $("#" + objID).val().indexOf(CURRENCY__DECIMAL_SEPARATOR) == -1) return true; if (keychar == '-' && $("#" + objID).val().indexOf('-') == -1) return true; return false; } if (e.type == "focus") { //var mCURRENCY__DECIMALS=CURRENCY__DECIMALS; s = getFloat($("#" + objID_hidden).val()); n = new Number(s); $("#" + objID).val(n.toFixed(mCURRENCY__DECIMALS)); $("#" + objID).select(); $("#" + objID).one('mouseup', function (ev) { ev.preventDefault(); }); } if (e.type == "blur") { //overload eventuali del simbolo e del numero di decimali if ($("#" + objID).prop("symbol") != undefined) mCURRENCY__SYMBOL = $("#" + objID).prop("symbol"); if ($("#" + objID).prop("decimals") != undefined) mCURRENCY__DECIMALS = $("#" + objID).prop("decimals"); s = $("#" + objID).val(); s = s.replace(mCURRENCY__SYMBOL, '.'); //quando compilo il campo QUALSIASI SIA LA LINGUA COMPILO USANDO IL . COME SEPARATORE DECIMALE //s=s.replace(CURRENCY__THOUSANDS_SEPARATOR,''); //s=s.replace(CURRENCY__DECIMAL_SEPARATOR,'.'); n = getFloat(s); $("#" + objID_hidden).val(n); $("#" + objID).updateCurrency(); $("#" + objID_hidden).change(); } }); //******** }); $.fn.updateCurrency = function () { var objID = $(this).prop("id"); var objID_hidden = objID + "_hidden"; var mCURRENCY__SYMBOL = $("#CURRENCY__SYMBOL").val(); var mCURRENCY__DECIMALS = getFloat($("#" + objID).attr("decimals")) == 0 ? CURRENCY__DECIMALS : getFloat($("#" + objID).attr("decimals")); var if_zero_empty = false; //overload eventuali del simbolo e del numero di decimali if ($("#" + objID).prop("if_zero_empty") != undefined) if_zero_empty = true; if ($("#" + objID).prop("symbol") != undefined) mCURRENCY__SYMBOL = $("#" + objID).prop("symbol"); var n = getFloat($("#" + objID_hidden).val()); var sign = n < 0 ? "- " : ""; var n2 = number_format(Math.abs(n), mCURRENCY__DECIMALS, CURRENCY__DECIMAL_SEPARATOR, CURRENCY__THOUSANDS_SEPARATOR); if (n == 0 && if_zero_empty) $("#" + objID).val("");else $("#" + objID).val(sign + mCURRENCY__SYMBOL + " " + n2); }; /***/ }), /***/ "./include/js/pack/0180.jquery.selectboxes.js": /*!****************************************************!*\ !*** ./include/js/pack/0180.jquery.selectboxes.js ***! \****************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js"); __webpack_require__(/*! core-js/modules/es.symbol.description.js */ "./node_modules/core-js/modules/es.symbol.description.js"); __webpack_require__(/*! core-js/modules/es.symbol.iterator.js */ "./node_modules/core-js/modules/es.symbol.iterator.js"); __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js"); __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js"); __webpack_require__(/*! core-js/modules/es.array.sort.js */ "./node_modules/core-js/modules/es.array.sort.js"); __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); __webpack_require__(/*! core-js/modules/es.regexp.constructor.js */ "./node_modules/core-js/modules/es.regexp.constructor.js"); __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js"); __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ "./node_modules/core-js/modules/es.regexp.to-string.js"); __webpack_require__(/*! core-js/modules/es.string.iterator.js */ "./node_modules/core-js/modules/es.string.iterator.js"); __webpack_require__(/*! core-js/modules/es.string.match.js */ "./node_modules/core-js/modules/es.string.match.js"); __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } /* * * Copyright (c) 2006-2009 Sam Collett (http://www.texotela.co.uk) * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. * * Version 2.2.4 * Demo: http://www.texotela.co.uk/code/jquery/select/ * * $LastChangedDate$ * $Rev$ * */ ; (function ($) { /** * Adds (single/multiple) options to a select box (or series of select boxes) * * @name addOption * @author Sam Collett (http://www.texotela.co.uk) * @type jQuery * @example $("#myselect").addOption("Value", "Text"); // add single value (will be selected) * @example $("#myselect").addOption("Value 2", "Text 2", false); // add single value (won't be selected) * @example $("#myselect").addOption({"foo":"bar","bar":"baz"}, false); // add multiple values, but don't select * */ $.fn.addOption = function () { var add = function add(el, v, t, sO) { var option = document.createElement("option"); option.value = v, option.text = t; // get options var o = el.options; // get number of options var oL = o.length; if (!el.cache) { el.cache = {}; // loop through existing options, adding to cache for (var i = 0; i < oL; i++) { el.cache[o[i].value] = i; } } // add to cache if it isn't already if (typeof el.cache[v] == "undefined") el.cache[v] = oL; el.options[el.cache[v]] = option; if (sO) { option.selected = true; } }; var a = arguments; if (a.length == 0) return this; // select option when added? default is true var sO = true; // multiple items var m = false; // other variables var items, v, t; if (_typeof(a[0]) == "object") { m = true; items = a[0]; } if (a.length >= 2) { if (typeof a[1] == "boolean") sO = a[1];else if (typeof a[2] == "boolean") sO = a[2]; if (!m) { v = a[0]; t = a[1]; } } this.each(function () { if (this.nodeName.toLowerCase() != "select") return; if (m) { for (var item in items) { add(this, item, items[item], sO); } } else { add(this, v, t, sO); } }); return this; }; /** * Add options via ajax * * @name ajaxAddOption * @author Sam Collett (http://www.texotela.co.uk) * @type jQuery * @param String url Page to get options from (must be valid JSON) * @param Object params (optional) Any parameters to send with the request * @param Boolean select (optional) Select the added options, default true * @param Function fn (optional) Call this function with the select object as param after completion * @param Array args (optional) Array with params to pass to the function afterwards * @example $("#myselect").ajaxAddOption("myoptions.php"); * @example $("#myselect").ajaxAddOption("myoptions.php", {"code" : "007"}); * @example $("#myselect").ajaxAddOption("myoptions.php", {"code" : "007"}, false, sortoptions, [{"dir": "desc"}]); * */ $.fn.ajaxAddOption = function (url, params, select, fn, args) { if (typeof url != "string") return this; if (_typeof(params) != "object") params = {}; if (typeof select != "boolean") select = true; this.each(function () { var el = this; $.getJSON(url, params, function (r) { $(el).addOption(r, select); if (typeof fn == "function") { if (_typeof(args) == "object") { fn.apply(el, args); } else { fn.call(el); } } }); }); return this; }; /** * Removes an option (by value or index) from a select box (or series of select boxes) * * @name removeOption * @author Sam Collett (http://www.texotela.co.uk) * @type jQuery * @param String|RegExp|Number what Option to remove * @param Boolean selectedOnly (optional) Remove only if it has been selected (default false) * @example $("#myselect").removeOption("Value"); // remove by value * @example $("#myselect").removeOption(/^val/i); // remove options with a value starting with 'val' * @example $("#myselect").removeOption(/./); // remove all options * @example $("#myselect").removeOption(/./, true); // remove all options that have been selected * @example $("#myselect").removeOption(0); // remove by index * @example $("#myselect").removeOption(["myselect_1","myselect_2"]); // values contained in passed array * */ $.fn.removeOption = function () { var a = arguments; if (a.length == 0) return this; var ta = _typeof(a[0]); var v, index; // has to be a string or regular expression (object in IE, function in Firefox) if (ta == "string" || ta == "object" || ta == "function") { v = a[0]; // if an array, remove items if (v.constructor == Array) { var l = v.length; for (var i = 0; i < l; i++) { this.removeOption(v[i], a[1]); } return this; } } else if (ta == "number") index = a[0];else return this; this.each(function () { if (this.nodeName.toLowerCase() != "select") return; // clear cache if (this.cache) this.cache = null; // does the option need to be removed? var remove = false; // get options var o = this.options; if (!!v) { // get number of options var oL = o.length; for (var i = oL - 1; i >= 0; i--) { if (v.constructor == RegExp) { if (o[i].value.match(v)) { remove = true; } } else if (o[i].value == v) { remove = true; } // if the option is only to be removed if selected if (remove && a[1] === true) remove = o[i].selected; if (remove) { o[i] = null; } remove = false; } } else { // only remove if selected? if (a[1] === true) { remove = o[index].selected; } else { remove = true; } if (remove) { this.remove(index); } } }); return this; }; /** * Sort options (ascending or descending) in a select box (or series of select boxes) * * @name sortOptions * @author Sam Collett (http://www.texotela.co.uk) * @type jQuery * @param Boolean ascending (optional) Sort ascending (true/undefined), or descending (false) * @example // ascending * $("#myselect").sortOptions(); // or $("#myselect").sortOptions(true); * @example // descending * $("#myselect").sortOptions(false); * */ $.fn.sortOptions = function (ascending) { // get selected values first var sel = $(this).selectedValues(); var a = typeof ascending == "undefined" ? true : !!ascending; this.each(function () { if (this.nodeName.toLowerCase() != "select") return; // get options var o = this.options; // get number of options var oL = o.length; // create an array for sorting var sA = []; // loop through options, adding to sort array for (var i = 0; i < oL; i++) { sA[i] = { v: o[i].value, t: o[i].text }; } // sort items in array sA.sort(function (o1, o2) { // option text is made lowercase for case insensitive sorting o1t = o1.t.toLowerCase(), o2t = o2.t.toLowerCase(); // if options are the same, no sorting is needed if (o1t == o2t) return 0; if (a) { return o1t < o2t ? -1 : 1; } else { return o1t > o2t ? -1 : 1; } }); // change the options to match the sort array for (var i = 0; i < oL; i++) { o[i].text = sA[i].t; o[i].value = sA[i].v; } }).selectOptions(sel, true); // select values, clearing existing ones return this; }; /** * Selects an option by value * * @name selectOptions * @author Mathias Bank (http://www.mathias-bank.de), original function * @author Sam Collett (http://www.texotela.co.uk), addition of regular expression matching * @type jQuery * @param String|RegExp|Array value Which options should be selected * can be a string or regular expression, or an array of strings / regular expressions * @param Boolean clear Clear existing selected options, default false * @example $("#myselect").selectOptions("val1"); // with the value 'val1' * @example $("#myselect").selectOptions(["val1","val2","val3"]); // with the values 'val1' 'val2' 'val3' * @example $("#myselect").selectOptions(/^val/i); // with the value starting with 'val', case insensitive * */ $.fn.selectOptions = function (value, clear) { var v = value; var vT = _typeof(value); // handle arrays if (vT == "object" && v.constructor == Array) { var $this = this; $.each(v, function () { $this.selectOptions(this, clear); }); } ; var c = clear || false; // has to be a string or regular expression (object in IE, function in Firefox) if (vT != "string" && vT != "function" && vT != "object") return this; this.each(function () { if (this.nodeName.toLowerCase() != "select") return this; // get options var o = this.options; // get number of options var oL = o.length; for (var i = 0; i < oL; i++) { if (v.constructor == RegExp) { if (o[i].value.match(v)) { o[i].selected = true; } else if (c) { o[i].selected = false; } } else { if (o[i].value == v) { o[i].selected = true; } else if (c) { o[i].selected = false; } } } }); return this; }; /** * Copy options to another select * * @name copyOptions * @author Sam Collett (http://www.texotela.co.uk) * @type jQuery * @param String to Element to copy to * @param String which (optional) Specifies which options should be copied - 'all' or 'selected'. Default is 'selected' * @example $("#myselect").copyOptions("#myselect2"); // copy selected options from 'myselect' to 'myselect2' * @example $("#myselect").copyOptions("#myselect2","selected"); // same as above * @example $("#myselect").copyOptions("#myselect2","all"); // copy all options from 'myselect' to 'myselect2' * */ $.fn.copyOptions = function (to, which) { var w = which || "selected"; if ($(to).size() == 0) return this; this.each(function () { if (this.nodeName.toLowerCase() != "select") return this; // get options var o = this.options; // get number of options var oL = o.length; for (var i = 0; i < oL; i++) { if (w == "all" || w == "selected" && o[i].selected) { $(to).addOption(o[i].value, o[i].text); } } }); return this; }; /** * Checks if a select box has an option with the supplied value * * @name containsOption * @author Sam Collett (http://www.texotela.co.uk) * @type Boolean|jQuery * @param String|RegExp value Which value to check for. Can be a string or regular expression * @param Function fn (optional) Function to apply if an option with the given value is found. * Use this if you don't want to break the chaining * @example if($("#myselect").containsOption("val1")) alert("Has an option with the value 'val1'"); * @example if($("#myselect").containsOption(/^val/i)) alert("Has an option with the value starting with 'val'"); * @example $("#myselect").containsOption("val1", copyoption).doSomethingElseWithSelect(); // calls copyoption (user defined function) for any options found, chain is continued * */ $.fn.containsOption = function (value, fn) { var found = false; var v = value; var vT = _typeof(v); var fT = _typeof(fn); // has to be a string or regular expression (object in IE, function in Firefox) if (vT != "string" && vT != "function" && vT != "object") return fT == "function" ? this : found; this.each(function () { if (this.nodeName.toLowerCase() != "select") return this; // option already found if (found && fT != "function") return false; // get options var o = this.options; // get number of options var oL = o.length; for (var i = 0; i < oL; i++) { if (v.constructor == RegExp) { if (o[i].value.match(v)) { found = true; if (fT == "function") fn.call(o[i], i); } } else { if (o[i].value == v) { found = true; if (fT == "function") fn.call(o[i], i); } } } }); return fT == "function" ? this : found; }; /** * Returns values which have been selected * * @name selectedValues * @author Sam Collett (http://www.texotela.co.uk) * @type Array * @example $("#myselect").selectedValues(); * */ $.fn.selectedValues = function () { var v = []; this.selectedOptions().each(function () { v[v.length] = this.value; }); return v; }; /** * Returns text which has been selected * * @name selectedTexts * @author Sam Collett (http://www.texotela.co.uk) * @type Array * @example $("#myselect").selectedTexts(); * */ $.fn.selectedTexts = function () { var t = []; this.selectedOptions().each(function () { t[t.length] = this.text; }); return t; }; /** * Returns options which have been selected * * @name selectedOptions * @author Sam Collett (http://www.texotela.co.uk) * @type jQuery * @example $("#myselect").selectedOptions(); * */ $.fn.selectedOptions = function () { return this.find("option:selected"); }; })(jQuery); /***/ }), /***/ "./include/js/pack/0290.iridegallery.js": /*!**********************************************!*\ !*** ./include/js/pack/0290.iridegallery.js ***! \**********************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js"); __webpack_require__(/*! core-js/modules/es.symbol.description.js */ "./node_modules/core-js/modules/es.symbol.description.js"); $.fn.iwgallery = function (options) { var opts = $.extend({}, $.fn.iwgallery.defaults, options); this.divGallery = $(""); this.divHiddens = $("
"); this.divFiles = $("
"); this.buildImage = function (img) { return ""; }; this.buildHidden = function (idupload) { return ""; }; this.buildFileLink = function (img) { var $removeLink = $("X"); var obj = this; $removeLink.on("click", function () { var current; var images = []; for (var i = 0; i < obj.apiGallery.getNumItems(); i++) { current = obj.apiGallery.getItem(i); if (getFloat(current.idupload) === getFloat(img.idupload)) continue; images.push(current); } if (typeof opts.onChangeGallery === "function") opts.onChangeGallery(images); obj.buildGallery(images); }); var div = $(""); div.append($removeLink); div.append("] "); return div; }; this.buildGallery = function (images) { var imgsToAppend = '', hiddens = ''; this.divFiles.html(""); var img; for (var i = 0; i < images.length; i++) { img = images[i]; imgsToAppend += this.buildImage(img); hiddens += this.buildHidden(img.idupload); if (!getFloat(img.idupload)) continue; this.divFiles.append(this.buildFileLink(img)); } this.divGallery.html(imgsToAppend); this.apiGallery = this.divGallery.unitegallery({ gallery_theme: "compact", theme_panel_position: "right", theme_hide_panel_under_width: 1000, gallery_width: opts.galleryWidth, gallery_height: opts.galleryHeight, slider_scale_mode: "fit" }); this.divHiddens.html(hiddens); if (this.apiGallery.getNumItems() <= 1) $("#" + this.divGallery.attr("id") + " .ug-panel-handle-tip").click(); }; var obj = this; var div_upload = $("
"); div_upload.uploadFile({ url: "ajax.php?JSON&object=UploadedFile&tipoview=jqueryPluginUploadInGallery&is_crypted=1", allowedTypes: 'jpg,jpeg,png,bmp,gif,tiff', dragDropStr: opts.dragDropString, extErrorStr: opts.extErrorString, uploadStr: opts.uploadString, showDownload: true, showDelete: true, onSuccess: function onSuccess(files, data) { var idupload = getFloat(data[1]); if (idupload === 0) return; var images = []; var img; for (var i = 0; i < obj.apiGallery.getNumItems(); i++) { img = obj.apiGallery.getItem(i); if (img.idupload === 0) continue; images.push(img); } var path = "include/show_files.php?idupload=" + idupload + "&token=" + opts.token; images.push({ urlImage: path, description: files, idupload: idupload }); if (typeof opts.onChangeGallery === "function") opts.onChangeGallery(images); obj.buildGallery(images); } }); this.append(this.divGallery); this.append(opts.labelString + "
"); this.append(div_upload); this.append(this.divHiddens); this.append(this.divFiles); this.buildGallery(opts.images); }; $.fn.iwgallery.defaults = { labelString: "", codcliente: "", images: [], dragDropString: "", extErrorString: "", uploadString: "", galleryWidth: 900, galleryHeight: 500, token: "", sessId: "", onChangeGallery: null }; /***/ }), /***/ "./assets/js/components/jquery-timeentry/jquery.timeentry.css": /*!********************************************************************!*\ !*** ./assets/js/components/jquery-timeentry/jquery.timeentry.css ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }), /***/ "./assets/js/components/jquery-uploadfile/css/uploadfile.css": /*!*******************************************************************!*\ !*** ./assets/js/components/jquery-uploadfile/css/uploadfile.css ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }), /***/ "./css/jquery.qtip.css": /*!*****************************!*\ !*** ./css/jquery.qtip.css ***! \*****************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }), /***/ "./node_modules/moment/locale sync recursive ^\\.\\/.*$": /*!***************************************************!*\ !*** ./node_modules/moment/locale/ sync ^\.\/.*$ ***! \***************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var map = { "./af": "./node_modules/moment/locale/af.js", "./af.js": "./node_modules/moment/locale/af.js", "./ar": "./node_modules/moment/locale/ar.js", "./ar-dz": "./node_modules/moment/locale/ar-dz.js", "./ar-dz.js": "./node_modules/moment/locale/ar-dz.js", "./ar-kw": "./node_modules/moment/locale/ar-kw.js", "./ar-kw.js": "./node_modules/moment/locale/ar-kw.js", "./ar-ly": "./node_modules/moment/locale/ar-ly.js", "./ar-ly.js": "./node_modules/moment/locale/ar-ly.js", "./ar-ma": "./node_modules/moment/locale/ar-ma.js", "./ar-ma.js": "./node_modules/moment/locale/ar-ma.js", "./ar-ps": "./node_modules/moment/locale/ar-ps.js", "./ar-ps.js": "./node_modules/moment/locale/ar-ps.js", "./ar-sa": "./node_modules/moment/locale/ar-sa.js", "./ar-sa.js": "./node_modules/moment/locale/ar-sa.js", "./ar-tn": "./node_modules/moment/locale/ar-tn.js", "./ar-tn.js": "./node_modules/moment/locale/ar-tn.js", "./ar.js": "./node_modules/moment/locale/ar.js", "./az": "./node_modules/moment/locale/az.js", "./az.js": "./node_modules/moment/locale/az.js", "./be": "./node_modules/moment/locale/be.js", "./be.js": "./node_modules/moment/locale/be.js", "./bg": "./node_modules/moment/locale/bg.js", "./bg.js": "./node_modules/moment/locale/bg.js", "./bm": "./node_modules/moment/locale/bm.js", "./bm.js": "./node_modules/moment/locale/bm.js", "./bn": "./node_modules/moment/locale/bn.js", "./bn-bd": "./node_modules/moment/locale/bn-bd.js", "./bn-bd.js": "./node_modules/moment/locale/bn-bd.js", "./bn.js": "./node_modules/moment/locale/bn.js", "./bo": "./node_modules/moment/locale/bo.js", "./bo.js": "./node_modules/moment/locale/bo.js", "./br": "./node_modules/moment/locale/br.js", "./br.js": "./node_modules/moment/locale/br.js", "./bs": "./node_modules/moment/locale/bs.js", "./bs.js": "./node_modules/moment/locale/bs.js", "./ca": "./node_modules/moment/locale/ca.js", "./ca.js": "./node_modules/moment/locale/ca.js", "./cs": "./node_modules/moment/locale/cs.js", "./cs.js": "./node_modules/moment/locale/cs.js", "./cv": "./node_modules/moment/locale/cv.js", "./cv.js": "./node_modules/moment/locale/cv.js", "./cy": "./node_modules/moment/locale/cy.js", "./cy.js": "./node_modules/moment/locale/cy.js", "./da": "./node_modules/moment/locale/da.js", "./da.js": "./node_modules/moment/locale/da.js", "./de": "./node_modules/moment/locale/de.js", "./de-at": "./node_modules/moment/locale/de-at.js", "./de-at.js": "./node_modules/moment/locale/de-at.js", "./de-ch": "./node_modules/moment/locale/de-ch.js", "./de-ch.js": "./node_modules/moment/locale/de-ch.js", "./de.js": "./node_modules/moment/locale/de.js", "./dv": "./node_modules/moment/locale/dv.js", "./dv.js": "./node_modules/moment/locale/dv.js", "./el": "./node_modules/moment/locale/el.js", "./el.js": "./node_modules/moment/locale/el.js", "./en-au": "./node_modules/moment/locale/en-au.js", "./en-au.js": "./node_modules/moment/locale/en-au.js", "./en-ca": "./node_modules/moment/locale/en-ca.js", "./en-ca.js": "./node_modules/moment/locale/en-ca.js", "./en-gb": "./node_modules/moment/locale/en-gb.js", "./en-gb.js": "./node_modules/moment/locale/en-gb.js", "./en-ie": "./node_modules/moment/locale/en-ie.js", "./en-ie.js": "./node_modules/moment/locale/en-ie.js", "./en-il": "./node_modules/moment/locale/en-il.js", "./en-il.js": "./node_modules/moment/locale/en-il.js", "./en-in": "./node_modules/moment/locale/en-in.js", "./en-in.js": "./node_modules/moment/locale/en-in.js", "./en-nz": "./node_modules/moment/locale/en-nz.js", "./en-nz.js": "./node_modules/moment/locale/en-nz.js", "./en-sg": "./node_modules/moment/locale/en-sg.js", "./en-sg.js": "./node_modules/moment/locale/en-sg.js", "./eo": "./node_modules/moment/locale/eo.js", "./eo.js": "./node_modules/moment/locale/eo.js", "./es": "./node_modules/moment/locale/es.js", "./es-do": "./node_modules/moment/locale/es-do.js", "./es-do.js": "./node_modules/moment/locale/es-do.js", "./es-mx": "./node_modules/moment/locale/es-mx.js", "./es-mx.js": "./node_modules/moment/locale/es-mx.js", "./es-us": "./node_modules/moment/locale/es-us.js", "./es-us.js": "./node_modules/moment/locale/es-us.js", "./es.js": "./node_modules/moment/locale/es.js", "./et": "./node_modules/moment/locale/et.js", "./et.js": "./node_modules/moment/locale/et.js", "./eu": "./node_modules/moment/locale/eu.js", "./eu.js": "./node_modules/moment/locale/eu.js", "./fa": "./node_modules/moment/locale/fa.js", "./fa.js": "./node_modules/moment/locale/fa.js", "./fi": "./node_modules/moment/locale/fi.js", "./fi.js": "./node_modules/moment/locale/fi.js", "./fil": "./node_modules/moment/locale/fil.js", "./fil.js": "./node_modules/moment/locale/fil.js", "./fo": "./node_modules/moment/locale/fo.js", "./fo.js": "./node_modules/moment/locale/fo.js", "./fr": "./node_modules/moment/locale/fr.js", "./fr-ca": "./node_modules/moment/locale/fr-ca.js", "./fr-ca.js": "./node_modules/moment/locale/fr-ca.js", "./fr-ch": "./node_modules/moment/locale/fr-ch.js", "./fr-ch.js": "./node_modules/moment/locale/fr-ch.js", "./fr.js": "./node_modules/moment/locale/fr.js", "./fy": "./node_modules/moment/locale/fy.js", "./fy.js": "./node_modules/moment/locale/fy.js", "./ga": "./node_modules/moment/locale/ga.js", "./ga.js": "./node_modules/moment/locale/ga.js", "./gd": "./node_modules/moment/locale/gd.js", "./gd.js": "./node_modules/moment/locale/gd.js", "./gl": "./node_modules/moment/locale/gl.js", "./gl.js": "./node_modules/moment/locale/gl.js", "./gom-deva": "./node_modules/moment/locale/gom-deva.js", "./gom-deva.js": "./node_modules/moment/locale/gom-deva.js", "./gom-latn": "./node_modules/moment/locale/gom-latn.js", "./gom-latn.js": "./node_modules/moment/locale/gom-latn.js", "./gu": "./node_modules/moment/locale/gu.js", "./gu.js": "./node_modules/moment/locale/gu.js", "./he": "./node_modules/moment/locale/he.js", "./he.js": "./node_modules/moment/locale/he.js", "./hi": "./node_modules/moment/locale/hi.js", "./hi.js": "./node_modules/moment/locale/hi.js", "./hr": "./node_modules/moment/locale/hr.js", "./hr.js": "./node_modules/moment/locale/hr.js", "./hu": "./node_modules/moment/locale/hu.js", "./hu.js": "./node_modules/moment/locale/hu.js", "./hy-am": "./node_modules/moment/locale/hy-am.js", "./hy-am.js": "./node_modules/moment/locale/hy-am.js", "./id": "./node_modules/moment/locale/id.js", "./id.js": "./node_modules/moment/locale/id.js", "./is": "./node_modules/moment/locale/is.js", "./is.js": "./node_modules/moment/locale/is.js", "./it": "./node_modules/moment/locale/it.js", "./it-ch": "./node_modules/moment/locale/it-ch.js", "./it-ch.js": "./node_modules/moment/locale/it-ch.js", "./it.js": "./node_modules/moment/locale/it.js", "./ja": "./node_modules/moment/locale/ja.js", "./ja.js": "./node_modules/moment/locale/ja.js", "./jv": "./node_modules/moment/locale/jv.js", "./jv.js": "./node_modules/moment/locale/jv.js", "./ka": "./node_modules/moment/locale/ka.js", "./ka.js": "./node_modules/moment/locale/ka.js", "./kk": "./node_modules/moment/locale/kk.js", "./kk.js": "./node_modules/moment/locale/kk.js", "./km": "./node_modules/moment/locale/km.js", "./km.js": "./node_modules/moment/locale/km.js", "./kn": "./node_modules/moment/locale/kn.js", "./kn.js": "./node_modules/moment/locale/kn.js", "./ko": "./node_modules/moment/locale/ko.js", "./ko.js": "./node_modules/moment/locale/ko.js", "./ku": "./node_modules/moment/locale/ku.js", "./ku-kmr": "./node_modules/moment/locale/ku-kmr.js", "./ku-kmr.js": "./node_modules/moment/locale/ku-kmr.js", "./ku.js": "./node_modules/moment/locale/ku.js", "./ky": "./node_modules/moment/locale/ky.js", "./ky.js": "./node_modules/moment/locale/ky.js", "./lb": "./node_modules/moment/locale/lb.js", "./lb.js": "./node_modules/moment/locale/lb.js", "./lo": "./node_modules/moment/locale/lo.js", "./lo.js": "./node_modules/moment/locale/lo.js", "./lt": "./node_modules/moment/locale/lt.js", "./lt.js": "./node_modules/moment/locale/lt.js", "./lv": "./node_modules/moment/locale/lv.js", "./lv.js": "./node_modules/moment/locale/lv.js", "./me": "./node_modules/moment/locale/me.js", "./me.js": "./node_modules/moment/locale/me.js", "./mi": "./node_modules/moment/locale/mi.js", "./mi.js": "./node_modules/moment/locale/mi.js", "./mk": "./node_modules/moment/locale/mk.js", "./mk.js": "./node_modules/moment/locale/mk.js", "./ml": "./node_modules/moment/locale/ml.js", "./ml.js": "./node_modules/moment/locale/ml.js", "./mn": "./node_modules/moment/locale/mn.js", "./mn.js": "./node_modules/moment/locale/mn.js", "./mr": "./node_modules/moment/locale/mr.js", "./mr.js": "./node_modules/moment/locale/mr.js", "./ms": "./node_modules/moment/locale/ms.js", "./ms-my": "./node_modules/moment/locale/ms-my.js", "./ms-my.js": "./node_modules/moment/locale/ms-my.js", "./ms.js": "./node_modules/moment/locale/ms.js", "./mt": "./node_modules/moment/locale/mt.js", "./mt.js": "./node_modules/moment/locale/mt.js", "./my": "./node_modules/moment/locale/my.js", "./my.js": "./node_modules/moment/locale/my.js", "./nb": "./node_modules/moment/locale/nb.js", "./nb.js": "./node_modules/moment/locale/nb.js", "./ne": "./node_modules/moment/locale/ne.js", "./ne.js": "./node_modules/moment/locale/ne.js", "./nl": "./node_modules/moment/locale/nl.js", "./nl-be": "./node_modules/moment/locale/nl-be.js", "./nl-be.js": "./node_modules/moment/locale/nl-be.js", "./nl.js": "./node_modules/moment/locale/nl.js", "./nn": "./node_modules/moment/locale/nn.js", "./nn.js": "./node_modules/moment/locale/nn.js", "./oc-lnc": "./node_modules/moment/locale/oc-lnc.js", "./oc-lnc.js": "./node_modules/moment/locale/oc-lnc.js", "./pa-in": "./node_modules/moment/locale/pa-in.js", "./pa-in.js": "./node_modules/moment/locale/pa-in.js", "./pl": "./node_modules/moment/locale/pl.js", "./pl.js": "./node_modules/moment/locale/pl.js", "./pt": "./node_modules/moment/locale/pt.js", "./pt-br": "./node_modules/moment/locale/pt-br.js", "./pt-br.js": "./node_modules/moment/locale/pt-br.js", "./pt.js": "./node_modules/moment/locale/pt.js", "./ro": "./node_modules/moment/locale/ro.js", "./ro.js": "./node_modules/moment/locale/ro.js", "./ru": "./node_modules/moment/locale/ru.js", "./ru.js": "./node_modules/moment/locale/ru.js", "./sd": "./node_modules/moment/locale/sd.js", "./sd.js": "./node_modules/moment/locale/sd.js", "./se": "./node_modules/moment/locale/se.js", "./se.js": "./node_modules/moment/locale/se.js", "./si": "./node_modules/moment/locale/si.js", "./si.js": "./node_modules/moment/locale/si.js", "./sk": "./node_modules/moment/locale/sk.js", "./sk.js": "./node_modules/moment/locale/sk.js", "./sl": "./node_modules/moment/locale/sl.js", "./sl.js": "./node_modules/moment/locale/sl.js", "./sq": "./node_modules/moment/locale/sq.js", "./sq.js": "./node_modules/moment/locale/sq.js", "./sr": "./node_modules/moment/locale/sr.js", "./sr-cyrl": "./node_modules/moment/locale/sr-cyrl.js", "./sr-cyrl.js": "./node_modules/moment/locale/sr-cyrl.js", "./sr.js": "./node_modules/moment/locale/sr.js", "./ss": "./node_modules/moment/locale/ss.js", "./ss.js": "./node_modules/moment/locale/ss.js", "./sv": "./node_modules/moment/locale/sv.js", "./sv.js": "./node_modules/moment/locale/sv.js", "./sw": "./node_modules/moment/locale/sw.js", "./sw.js": "./node_modules/moment/locale/sw.js", "./ta": "./node_modules/moment/locale/ta.js", "./ta.js": "./node_modules/moment/locale/ta.js", "./te": "./node_modules/moment/locale/te.js", "./te.js": "./node_modules/moment/locale/te.js", "./tet": "./node_modules/moment/locale/tet.js", "./tet.js": "./node_modules/moment/locale/tet.js", "./tg": "./node_modules/moment/locale/tg.js", "./tg.js": "./node_modules/moment/locale/tg.js", "./th": "./node_modules/moment/locale/th.js", "./th.js": "./node_modules/moment/locale/th.js", "./tk": "./node_modules/moment/locale/tk.js", "./tk.js": "./node_modules/moment/locale/tk.js", "./tl-ph": "./node_modules/moment/locale/tl-ph.js", "./tl-ph.js": "./node_modules/moment/locale/tl-ph.js", "./tlh": "./node_modules/moment/locale/tlh.js", "./tlh.js": "./node_modules/moment/locale/tlh.js", "./tr": "./node_modules/moment/locale/tr.js", "./tr.js": "./node_modules/moment/locale/tr.js", "./tzl": "./node_modules/moment/locale/tzl.js", "./tzl.js": "./node_modules/moment/locale/tzl.js", "./tzm": "./node_modules/moment/locale/tzm.js", "./tzm-latn": "./node_modules/moment/locale/tzm-latn.js", "./tzm-latn.js": "./node_modules/moment/locale/tzm-latn.js", "./tzm.js": "./node_modules/moment/locale/tzm.js", "./ug-cn": "./node_modules/moment/locale/ug-cn.js", "./ug-cn.js": "./node_modules/moment/locale/ug-cn.js", "./uk": "./node_modules/moment/locale/uk.js", "./uk.js": "./node_modules/moment/locale/uk.js", "./ur": "./node_modules/moment/locale/ur.js", "./ur.js": "./node_modules/moment/locale/ur.js", "./uz": "./node_modules/moment/locale/uz.js", "./uz-latn": "./node_modules/moment/locale/uz-latn.js", "./uz-latn.js": "./node_modules/moment/locale/uz-latn.js", "./uz.js": "./node_modules/moment/locale/uz.js", "./vi": "./node_modules/moment/locale/vi.js", "./vi.js": "./node_modules/moment/locale/vi.js", "./x-pseudo": "./node_modules/moment/locale/x-pseudo.js", "./x-pseudo.js": "./node_modules/moment/locale/x-pseudo.js", "./yo": "./node_modules/moment/locale/yo.js", "./yo.js": "./node_modules/moment/locale/yo.js", "./zh-cn": "./node_modules/moment/locale/zh-cn.js", "./zh-cn.js": "./node_modules/moment/locale/zh-cn.js", "./zh-hk": "./node_modules/moment/locale/zh-hk.js", "./zh-hk.js": "./node_modules/moment/locale/zh-hk.js", "./zh-mo": "./node_modules/moment/locale/zh-mo.js", "./zh-mo.js": "./node_modules/moment/locale/zh-mo.js", "./zh-tw": "./node_modules/moment/locale/zh-tw.js", "./zh-tw.js": "./node_modules/moment/locale/zh-tw.js" }; function webpackContext(req) { var id = webpackContextResolve(req); return __webpack_require__(id); } function webpackContextResolve(req) { if(!__webpack_require__.o(map, req)) { var e = new Error("Cannot find module '" + req + "'"); e.code = 'MODULE_NOT_FOUND'; throw e; } return map[req]; } webpackContext.keys = function webpackContextKeys() { return Object.keys(map); }; webpackContext.resolve = webpackContextResolve; module.exports = webpackContext; webpackContext.id = "./node_modules/moment/locale sync recursive ^\\.\\/.*$"; /***/ }) }]); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzX2pzX2NvbXBvbmVudHNfZ29vZ2xlbWFwc19qcy1hc3NldHNfanNfY29tcG9uZW50c19qcXVlcnktdGltZWVudHJ5X2pxdWVyeV9wbHVnaW5fbWluX2pzLWM0ZTg5Ni5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGlFQUFlO0VBQ1hBLGVBQWUsRUFBRSxTQUFBQSxnQkFBVUMsU0FBUyxFQUFFO0lBQ2xDLElBQU1DLFVBQVUsR0FBR0MsQ0FBQyxDQUFDRixTQUFTLENBQUMsQ0FBQ0csSUFBSSxDQUFDLFlBQVksQ0FBQztJQUNsRCxJQUFNQyxXQUFXLEdBQUdGLENBQUMsQ0FBQ0YsU0FBUyxDQUFDLENBQUNHLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDcEQsSUFBTUUsT0FBTyxHQUFHSCxDQUFDLENBQUNGLFNBQVMsQ0FBQyxDQUFDRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzVDLElBQU1HLElBQUksR0FBR0osQ0FBQyxDQUFDRixTQUFTLENBQUMsQ0FBQ0csSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN0QyxJQUFNSSxhQUFhLEdBQUdMLENBQUMsQ0FBQ0YsU0FBUyxDQUFDLENBQUNHLElBQUksQ0FBQyxlQUFlLENBQUM7SUFFeEQsSUFBTUssR0FBRyxHQUFHLElBQUlDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDQyxHQUFHLENBQUNULENBQUMsQ0FBQ0YsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7TUFDN0NNLElBQUksRUFBRUEsSUFBSTtNQUNWTSxNQUFNLEVBQUU7UUFBQ0MsR0FBRyxFQUFFQyxRQUFRLENBQUNiLFVBQVUsQ0FBQztRQUFFYyxHQUFHLEVBQUVELFFBQVEsQ0FBQ1YsV0FBVztNQUFDO0lBQ2xFLENBQUMsQ0FBQztJQUVGLElBQUdHLGFBQWEsRUFBRTtNQUNkO01BQ0EsSUFBTVMsS0FBSyxHQUFHZCxDQUFDLENBQUMsR0FBRyxHQUFHQSxD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Q0FBQyxDQUFDO0VBQUNELE9BQU8sQ0FBQ3RCLE1BQU0sR0FBQyxTQUFTd0IsUUFBUUEsQ0FBQ0MsQ0FBQyxFQUFDO0lBQUMsSUFBSUMsQ0FBQyxHQUFDLElBQUksQ0FBQ0MsU0FBUztJQUFDUCxDQUFDLEdBQUMsSUFBSTtJQUFDLElBQUlRLENBQUMsR0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQUNSLENBQUMsR0FBQyxLQUFLO0lBQUMsS0FBSSxJQUFJUyxDQUFDLElBQUlKLENBQUMsRUFBQztNQUFDRyxDQUFDLENBQUNDLENBQUMsQ0FBQyxHQUFDLE9BQU9KLENBQUMsQ0FBQ0ksQ0FBQyxDQUFDLElBQUUsVUFBVSxJQUFFLE9BQU9ILENBQUMsQ0FBQ0csQ0FBQyxDQUFDLElBQUUsVUFBVSxHQUFFLFVBQVNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDO1FBQUMsT0FBTyxZQUFVO1VBQUMsSUFBSUMsQ0FBQyxHQUFDLElBQUksQ0FBQ0MsTUFBTTtVQUFDLElBQUksQ0FBQ0EsTUFBTSxHQUFDLFVBQVNDLENBQUMsRUFBQztZQUFDLE9BQU9SLENBQUMsQ0FBQ0ksQ0FBQyxDQUFDLENBQUNLLEtBQUssQ0FBQyxJQUFJLEVBQUNELENBQUMsSUFBRSxFQUFFLENBQUM7VUFBQSxDQUFDO1VBQUMsSUFBSUUsQ0FBQyxHQUFDTCxDQUFDLENBQUNJLEtBQUssQ0FBQyxJQUFJLEVBQUNFLFNBQVMsQ0FBQztVQUFDLElBQUksQ0FBQ0osTUFBTSxHQUFDRCxDQUFDO1VBQUMsT0FBT0ksQ0FBQztRQUFBLENBQUM7TUFBQSxDQUFDLENBQUVQLENBQUMsRUFBQ0osQ0FBQyxDQUFDSSxDQUFDLENBQUMsQ0FBQyxHQUFDSixDQUFDLENBQUNJLENBQUMsQ0FBQztJQUFBO0lBQUMsU0FBU1AsT0FBT0EsQ0FBQSxFQUFFO01BQUMsSUFBRyxDQUFDRixDQUFDLElBQUUsSUFBSSxDQUFDa0IsS0FBSyxFQUFDO1FBQUMsSUFBSSxDQUFDQSxLQUFLLENBQUNILEtBQUssQ0FBQyxJQUFJLEVBQUNFLFNBQVMsQ0FBQztNQUFBO0lBQUM7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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9pcmlkZS8uL2Fzc2V0cy9qcy9jb21wb25lbnRzL2dvb2dsZW1hcHMuanMiLCJ3ZWJwYWNrOi8vaXJpZGUvLi9hc3NldHMvanMvY29tcG9uZW50cy9qcXVlcnktdGltZWVudHJ5L2pxdWVyeS5wbHVnaW4ubWluLmpzIiwid2VicGFjazovL2lyaWRlLy4vYXNzZXRzL2pzL2NvbXBvbmVudHMvanF1ZXJ5LXRpbWVlbnRyeS9qcXVlcnkudGltZWVudHJ5Lm1pbi5qcyIsIndlYnBhY2s6Ly9pcmlkZS8uL2Fzc2V0cy9qcy9jb21wb25lbnRzL2pxdWVyeS11cGxvYWRmaWxlL2pzL2pxdWVyeS51cGxvYWRmaWxlLm1pbi5qcyIsIndlYnBhY2s6Ly9pcmlkZS8uL2Fzc2V0cy9qcy9jb21wb25lbnRzL2xvZ2luLmpzIiwid2VicGFjazovL2lyaWRlLy4vaW5jbHVkZS9qcy9kYXRlLmpzIiwid2VicGFjazovL2lyaWRlLy4vaW5jbHVkZS9qcy9wYWNrLzAwNTAuYXV0b2NvbXBsZXRlLWV2ZW50cy5qcyIsIndlYnBhY2s6Ly9pcmlkZS8uL2luY2x1ZGUvanMvcGFjay8wMTcwLmpxdWVyeS5zaW1wbGVjdXJyZW5jeS5qcyIsIndlYnBhY2s6Ly9pcmlkZS8uL2luY2x1ZGUvanMvcGFjay8wMTgwLmpxdWVyeS5zZWxlY3Rib3hlcy5qcyIsIndlYnBhY2s6Ly9pcmlkZS8uL2luY2x1ZGUvanMvcGFjay8wMjkwLmlyaWRlZ2FsbGVyeS5qcyIsIndlYnBhY2s6Ly9pcmlkZS8uL2Fzc2V0cy9qcy9jb21wb25lbnRzL2pxdWVyeS10aW1lZW50cnkvanF1ZXJ5LnRpbWVlbnRyeS5jc3M/ZTFkYiIsIndlYnBhY2s6Ly9pcmlkZS8uL2Fzc2V0cy9qcy9jb21wb25lbnRzL2pxdWVyeS11cGxvYWRmaWxlL2Nzcy91cGxvYWRmaWxlLmNzcz9hMTlkIiwid2VicGFjazovL2lyaWRlLy4vY3NzL2pxdWVyeS5xdGlwLmNzcz8xODhjIiwid2VicGFjazovL2lyaWRlLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvIHN5bmMgXlxcLlxcLy4qJCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENyZWF0ZWQgYnkgUGhwU3Rvcm1cbiAqIFVzZXI6IGRhbmllbGVcbiAqIERhdGU6IDExLzA2LzIxXG4gKiBUaW1lOiAxMzozNlxuICovXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICBidWlsZEdvb2dsZU1hcHM6IGZ1bmN0aW9uIChnb29nbGVtYXApIHtcbiAgICAgICAgY29uc3QgbGF0aXR1ZGluZSA9ICQoZ29vZ2xlbWFwKS5kYXRhKFwibGF0aXR1ZGluZVwiKTtcbiAgICAgICAgY29uc3QgbG9uZ2l0dWRpbmUgPSAkKGdvb2dsZW1hcCkuZGF0YShcImxvbmdpdHVkaW5lXCIpO1xuICAgICAgICBjb25zdCBtYXJrZXJzID0gJChnb29nbGVtYXApLmRhdGEoXCJtYXJrZXJzXCIpO1xuICAgICAgICBjb25zdCB6b29tID0gJChnb29nbGVtYXApLmRhdGEoXCJ6b29tXCIpO1xuICAgICAgICBjb25zdCB2aWV3U2VhcmNoQm94ID0gJChnb29nbGVtYXApLmRhdGEoXCJ2aWV3c2VhcmNoYm94XCIpO1xuXG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBnb29nbGUubWFwcy5NYXAoJChnb29nbGVtYXApWzBdLCB7XG4gICAgICAgICAgICB6b29tOiB6b29tLFxuICAgICAgICAgICAgY2VudGVyOiB7bGF0OiBnZXRGbG9hdChsYXRpdHVkaW5lKSwgbG5nOiBnZXRGbG9hdChsb25naXR1ZGluZSl9LFxuICAgICAgICB9KTtcblxuICAgICAgICBpZih2aWV3U2VhcmNoQm94KSB7XG4gICAgICAgICAgICAvLyBDcmVhdGUgdGhlIHNlYXJjaCBib3ggYW5kIGxpbmsgaXQgdG8gdGhlIFVJIGVsZW1lbnQuXG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9ICQoXCIjXCIgKyAkKGdvb2dsZW1hcCkuYXR0cihcImlkXCIpICsgXCJfcGFjX2lucHV0XCIpWzBdO1xuICAgICAgICAgICAgY29uc3Qgc2VhcmNoQm94ID0gbmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5TZWFyY2hCb3goaW5wdXQpO1xuXG4gICAgICAgICAgICBtYXAuY29udHJvbHNbZ29vZ2xlLm1hcHMuQ29udHJvbFBvc2l0aW9uLlRPUF9MRUZUXS5wdXNoKGlucHV0KTtcbiAgICAgICAgICAgIC8vIEJpYXMgdGhlIFNlYXJjaEJveCByZXN1bHRzIHRvd2FyZHMgY3VycmVudCBtYXAncyB2aWV3cG9ydC5cbiAgICAgICAgICAgIG1hcC5hZGRMaXN0ZW5lcihcImJvdW5kc19jaGFuZ2VkXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICBzZWFyY2hCb3guc2V0Qm91bmRzKG1hcC5nZXRCb3VuZHMoKSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgbGV0IHNfbWFya2VycyA9IFtdO1xuXG4gICAgICAgICAgICAvLyBMaXN0ZW4gZm9yIHRoZSBldmVudCBmaXJlZCB3aGVuIHRoZSB1c2VyIHNlbGVjdHMgYSBwcmVkaWN0aW9uIGFuZCByZXRyaWV2ZVxuICAgICAgICAgICAgLy8gbW9yZSBkZXRhaWxzIGZvciB0aGF0IHBsYWNlLlxuICAgICAgICAgICAgc2VhcmNoQm94LmFkZExpc3RlbmVyKFwicGxhY2VzX2NoYW5nZWRcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBsYWNlcyA9IHNlYXJjaEJveC5nZXRQbGFjZXMoKTtcblxuICAgICAgICAgICAgICAgIGlmICghcGxhY2VzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gQ2xlYXIgb3V0IHRoZSBvbGQgbWFya2Vycy5cbiAgICAgICAgICAgICAgICBzX21hcmtlcnMuZm9yRWFjaCgobWFya2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmtlci5zZXRNYXAobnVsbCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgc19tYXJrZXJzID0gW107XG5cbiAgICAgICAgICAgICAgICAvLyBGb3IgZWFjaCBwbGFjZSwgZ2V0IHRoZSBpY29uLCBuYW1lIGFuZCBsb2NhdGlvbi5cbiAgICAgICAgICAgICAgICBjb25zdCBib3VuZHMgPSBuZXcgZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzKCk7XG5cbiAgICAgICAgICAgICAgICBwbGFjZXMuZm9yRWFjaCgocGxhY2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFwbGFjZS5nZW9tZXRyeSB8fCAhcGxhY2UuZ2VvbWV0cnkubG9jYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiUmV0dXJuZWQgcGxhY2UgY29udGFpbnMgbm8gZ2VvbWV0cnlcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpY29uID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBwbGFjZS5pY29uLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogbmV3IGdvb2dsZS5tYXBzLlNpemUoNzEsIDcxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbjogbmV3IGdvb2dsZS5tYXBzLlBvaW50KDAsIDApLFxuICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yOiBuZXcgZ29vZ2xlLm1hcHMuUG9pbnQoMTcsIDM0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlZFNpemU6IG5ldyBnb29nbGUubWFwcy5TaXplKDI1LCAyNSksXG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbWFya2VyIGZvciBlYWNoIHBsYWNlLlxuICAgICAgICAgICAgICAgICAgICBzX21hcmtlcnMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBnb29nbGUubWFwcy5NYXJrZXIoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBwbGFjZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBwbGFjZS5nZW9tZXRyeS5sb2NhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwbGFjZS5nZW9tZXRyeS52aWV3cG9ydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gT25seSBnZW9jb2RlcyBoYXZlIHZpZXdwb3J0LlxuICAgICAgICAgICAgICAgICAgICAgICAgYm91bmRzLnVuaW9uKHBsYWNlLmdlb21ldHJ5LnZpZXdwb3J0KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdW5kcy5leHRlbmQocGxhY2UuZ2VvbWV0cnkubG9jYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbWFwLmZpdEJvdW5kcyhib3VuZHMpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBnZW9jb2RlcjtcblxuICAgICAgICBtYXJrZXJzLm1hcCgobWFya2VyKSA9PiB7XG4gICAgICAgICAgICBsZXQgb3B0cyA9IHtcbiAgICAgICAgICAgICAgICBtYXA6IG1hcFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmKG1hcmtlci5sYWJlbCkgb3B0cy5sYWJlbCA9IG1hcmtlci5sYWJlbDtcbiAgICAgICAgICAgIGlmKG1hcmtlci50aXRsZSkgb3B0cy50aXRsZSA9IG1hcmtlci50aXRsZTtcbiAgICAgICAgICAgIGlmKG1hcmtlci5jb2xvcikgb3B0cy5pY29uID0ge1xuICAgICAgICAgICAgICAgIHVybDogXCJodHRwczovL21hcHMuZ29vZ2xlLmNvbS9tYXBmaWxlcy9tcy9pY29ucy9cIisgbWFya2VyLmNvbG9yICsgXCItZG90LnBuZ1wiXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsZXQgc2V0SW5mb1dpbmRvdztcbiAgICAgICAgICAgIGlmKG1hcmtlci50ZXh0KSBzZXRJbmZvV2luZG93ID0gKGdtYXJrZXIpID0+e1xuICAgICAgICAgICAgICAgIGxldCBpbmZvID0gbmV3IGdvb2dsZS5tYXBzLkluZm9XaW5kb3coeyBjb250ZW50OiBtYXJrZXIudGV4dCB9KTtcbiAgICAgICAgICAgICAgICBpbmZvLmFkZExpc3RlbmVyKFwiY2xvc2VjbGlja1wiLCAoKSA9PiB7ICQoXCIudWktdG9vbHRpcFwiKS5oaWRlKCk7IH0pO1xuICAgICAgICAgICAgICAgIGdtYXJrZXIuYWRkTGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7IGluZm8ub3Blbih7YW5jaG9yOiBnbWFya2VyLCBtYXAsIHNob3VsZEZvY3VzOiBmYWxzZX0pIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZighbWFya2VyLmFkZHJlc3Mpe1xuICAgICAgICAgICAgICAgIG9wdHMucG9zaXRpb24gPSB7bGF0OiBnZXRGbG9hdChtYXJrZXIubGF0KSwgbG5nOiBnZXRGbG9hdChtYXJrZXIubG5nKX07XG4gICAgICAgICAgICAgICAgbGV0IGdtYXJrZXIgPSBuZXcgZ29vZ2xlLm1hcHMuTWFya2VyKG9wdHMpO1xuICAgICAgICAgICAgICAgIGlmKHNldEluZm9XaW5kb3cpIHNldEluZm9XaW5kb3coZ21hcmtlcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBnZW9jb2RlciA9IG5ldyBnb29nbGUubWFwcy5HZW9jb2RlcigpO1xuICAgICAgICAgICAgZ2VvY29kZXIuZ2VvY29kZSh7YWRkcmVzczogbWFya2VyLmFkZHJlc3N9LCBmdW5jdGlvbiAocmVzdWx0cywgc3RhdHVzKXtcbiAgICAgICAgICAgICAgICBpZiAoc3RhdHVzICE9PSAnT0snKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdHZW9jb2RlIHdhcyBub3Qgc3VjY2Vzc2Z1bCBmb3IgdGhlIGZvbGxvd2luZyByZWFzb246ICcgKyBzdGF0dXMpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG9wdHMucG9zaXRpb24gPSByZXN1bHRzWzBdLmdlb21ldHJ5LmxvY2F0aW9uXG4gICAgICAgICAgICAgICAgbGV0IGdtYXJrZXIgPSBuZXcgZ29vZ2xlLm1hcHMuTWFya2VyKG9wdHMpO1xuICAgICAgICAgICAgICAgIGlmKHNldEluZm9XaW5kb3cpIHNldEluZm9XaW5kb3coZ21hcmtlcik7XG4gICAgICAgICAgICB9KVxuICAgICAgICB9KTtcbiAgICB9XG59IiwiLyoqIEFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGNvbGxlY3Rpb24gcGx1Z2lucyB2MS4wLjEuXG5cdFdyaXR0ZW4gYnkgS2VpdGggV29vZCAoa2J3b29ke2F0fWlpbmV0LmNvbS5hdSkgRGVjZW1iZXIgMjAxMy5cblx0TGljZW5zZWQgdW5kZXIgdGhlIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnkvYmxvYi9tYXN0ZXIvTUlULUxJQ0VOU0UudHh0KSBsaWNlbnNlLiAqL1xuKGZ1bmN0aW9uKCl7dmFyIGo9ZmFsc2U7d2luZG93LkpRQ2xhc3M9ZnVuY3Rpb24oKXt9O0pRQ2xhc3MuY2xhc3Nlcz17fTtKUUNsYXNzLmV4dGVuZD1mdW5jdGlvbiBleHRlbmRlcihmKXt2YXIgZz10aGlzLnByb3RvdHlwZTtqPXRydWU7dmFyIGg9bmV3IHRoaXMoKTtqPWZhbHNlO2Zvcih2YXIgaSBpbiBmKXtoW2ldPXR5cGVvZiBmW2ldPT0nZnVuY3Rpb24nJiZ0eXBlb2YgZ1tpXT09J2Z1bmN0aW9uJz8oZnVuY3Rpb24oZCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYj10aGlzLl9zdXBlcjt0aGlzLl9zdXBlcj1mdW5jdGlvbihhKXtyZXR1cm4gZ1tkXS5hcHBseSh0aGlzLGF8fFtdKX07dmFyIGM9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5fc3VwZXI9YjtyZXR1cm4gY319KShpLGZbaV0pOmZbaV19ZnVuY3Rpb24gSlFDbGFzcygpe2lmKCFqJiZ0aGlzLl9pbml0KXt0aGlzLl9pbml0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19SlFDbGFzcy5wcm90b3R5cGU9aDtKUUNsYXNzLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1KUUNsYXNzO0pRQ2xhc3MuZXh0ZW5kPWV4dGVuZGVyO3JldHVybiBKUUNsYXNzfX0pKCk7KGZ1bmN0aW9uKCQpe0pRQ2xhc3MuY2xhc3Nlcy5KUVBsdWdpbj1KUUNsYXNzLmV4dGVuZCh7bmFtZToncGx1Z2luJyxkZWZhdWx0T3B0aW9uczp7fSxyZWdpb25hbE9wdGlvbnM6e30sX2dldHRlcnM6W10sX2dldE1hcmtlcjpmdW5jdGlvbigpe3JldHVybidpcy0nK3RoaXMubmFtZX0sX2luaXQ6ZnVuY3Rpb24oKXskLmV4dGVuZCh0aGlzLmRlZmF1bHRPcHRpb25zLCh0aGlzLnJlZ2lvbmFsT3B0aW9ucyYmdGhpcy5yZWdpb25hbE9wdGlvbnNbJyddKXx8e30pO3ZhciBjPWNhbWVsQ2FzZSh0aGlzLm5hbWUpOyRbY109dGhpczskLmZuW2NdPWZ1bmN0aW9uKGEpe3ZhciBiPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtpZigkW2NdLl9pc05vdENoYWluZWQoYSxiKSl7cmV0dXJuICRbY11bYV0uYXBwbHkoJFtjXSxbdGhpc1swXV0uY29uY2F0KGIpKX1yZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYodHlwZW9mIGE9PT0nc3RyaW5nJyl7aWYoYVswXT09PSdfJ3x8ISRbY11bYV0pe3Rocm93J1Vua25vd24gbWV0aG9kOiAnK2E7fSRbY11bYV0uYXBwbHkoJFtjXSxbdGhpc10uY29uY2F0KGIpKX1lbHNleyRbY10uX2F0dGFjaCh0aGlzLGEpfX0pfX0sc2V0RGVmYXVsdHM6ZnVuY3Rpb24oYSl7JC5leHRlbmQodGhpcy5kZWZhdWx0T3B0aW9ucyxhfHx7fSl9LF9pc05vdENoYWluZWQ6ZnVuY3Rpb24oYSxiKXtpZihhPT09J29wdGlvbicmJihiLmxlbmd0aD09PTB8fChiLmxlbmd0aD09PTEmJnR5cGVvZiBiWzBdPT09J3N0cmluZycpKSl7cmV0dXJuIHRydWV9cmV0dXJuICQuaW5BcnJheShhLHRoaXMuX2dldHRlcnMpPi0xfSxfYXR0YWNoOmZ1bmN0aW9uKGEsYil7YT0kKGEpO2lmKGEuaGFzQ2xhc3ModGhpcy5fZ2V0TWFya2VyKCkpKXtyZXR1cm59YS5hZGRDbGFzcyh0aGlzLl9nZXRNYXJrZXIoKSk7Yj0kLmV4dGVuZCh7fSx0aGlzLmRlZmF1bHRPcHRpb25zLHRoaXMuX2dldE1ldGFkYXRhKGEpLGJ8fHt9KTt2YXIgYz0kLmV4dGVuZCh7bmFtZTp0aGlzLm5hbWUsZWxlbTphLG9wdGlvbnM6Yn0sdGhpcy5faW5zdFNldHRpbmdzKGEsYikpO2EuZGF0YSh0aGlzLm5hbWUsYyk7dGhpcy5fcG9zdEF0dGFjaChhLGMpO3RoaXMub3B0aW9uKGEsYil9LF9pbnN0U2V0dGluZ3M6ZnVuY3Rpb24oYSxiKXtyZXR1cm57fX0sX3Bvc3RBdHRhY2g6ZnVuY3Rpb24oYSxiKXt9LF9nZXRNZXRhZGF0YTpmdW5jdGlvbihkKXt0cnl7dmFyIGY9ZC5kYXRhKHRoaXMubmFtZS50b0xvd2VyQ2FzZSgpKXx8Jyc7Zj1mLnJlcGxhY2UoLycvZywnXCInKTtmPWYucmVwbGFjZSgvKFthLXpBLVowLTldKyk6L2csZnVuY3Rpb24oYSxiLGkpe3ZhciBjPWYuc3Vic3RyaW5nKDAsaSkubWF0Y2goL1wiL2cpO3JldHVybighY3x8Yy5sZW5ndGglMj09PTA/J1wiJytiKydcIjonOmIrJzonKX0pO2Y9JC5wYXJzZUpTT04oJ3snK2YrJ30nKTtmb3IodmFyIGcgaW4gZil7dmFyIGg9ZltnXTtpZih0eXBlb2YgaD09PSdzdHJpbmcnJiZoLm1hdGNoKC9ebmV3IERhdGVcXCgoLiopXFwpJC8pKXtmW2ddPWV2YWwoaCl9fXJldHVybiBmfWNhdGNoKGUpe3JldHVybnt9fX0sX2dldEluc3Q6ZnVuY3Rpb24oYSl7cmV0dXJuICQoYSkuZGF0YSh0aGlzLm5hbWUpfHx7fX0sb3B0aW9uOmZ1bmN0aW9uKGEsYixjKXthPSQoYSk7dmFyIGQ9YS5kYXRhKHRoaXMubmFtZSk7aWYoIWJ8fCh0eXBlb2YgYj09PSdzdHJpbmcnJiZjPT1udWxsKSl7dmFyIGU9KGR8fHt9KS5vcHRpb25zO3JldHVybihlJiZiP2VbYl06ZSl9aWYoIWEuaGFzQ2xhc3ModGhpcy5fZ2V0TWFya2VyKCkpKXtyZXR1cm59dmFyIGU9Ynx8e307aWYodHlwZW9mIGI9PT0nc3RyaW5nJyl7ZT17fTtlW2JdPWN9dGhpcy5fb3B0aW9uc0NoYW5nZWQoYSxkLGUpOyQuZXh0ZW5kKGQub3B0aW9ucyxlKX0sX29wdGlvbnNDaGFuZ2VkOmZ1bmN0aW9uKGEsYixjKXt9LGRlc3Ryb3k6ZnVuY3Rpb24oYSl7YT0kKGEpO2lmKCFhLmhhc0NsYXNzKHRoaXMuX2dldE1hcmtlcigpKSl7cmV0dXJufXRoaXMuX3ByZURlc3Ryb3koYSx0aGlzLl9nZXRJbnN0KGEpKTthLnJlbW92ZURhdGEodGhpcy5uYW1lKS5yZW1vdmVDbGFzcyh0aGlzLl9nZXRNYXJrZXIoKSl9LF9wcmVEZXN0cm95OmZ1bmN0aW9uKGEsYil7fX0pO2Z1bmN0aW9uIGNhbWVsQ2FzZShjKXtyZXR1cm4gYy5yZXBsYWNlKC8tKFthLXpdKS9nLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGIudG9VcHBlckNhc2UoKX0pfSQuSlFQbHVnaW49e2NyZWF0ZVBsdWdpbjpmdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhPT09J29iamVjdCcpe2I9YTthPSdKUVBsdWdpbid9YT1jYW1lbENhc2UoYSk7dmFyIGM9Y2FtZWxDYXNlKGIubmFtZSk7SlFDbGFzcy5jbGFzc2VzW2NdPUpRQ2xhc3MuY2xhc3Nlc1thXS5leHRlbmQoYik7bmV3IEpRQ2xhc3MuY2xhc3Nlc1tjXSgpfX19KShqUXVlcnkpOyIsIi8qIGh0dHA6Ly9rZWl0aC13b29kLm5hbWUvdGltZUVudHJ5Lmh0bWxcbiAgIFRpbWUgZW50cnkgZm9yIGpRdWVyeSB2Mi4wLjEuXG4gICBXcml0dGVuIGJ5IEtlaXRoIFdvb2QgKGtid29vZHthdH1paW5ldC5jb20uYXUpIEp1bmUgMjAwNy5cbiAgIEF2YWlsYWJsZSB1bmRlciB0aGUgTUlUIChodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L2pxdWVyeS9ibG9iL21hc3Rlci9NSVQtTElDRU5TRS50eHQpIGxpY2Vuc2UuXG4gICBQbGVhc2UgYXR0cmlidXRlIHRoZSBhdXRob3IgaWYgeW91IHVzZSBpdC4gKi9cbihmdW5jdGlvbigkKXt2YXIgbj0ndGltZUVudHJ5JzskLkpRUGx1Z2luLmNyZWF0ZVBsdWdpbih7bmFtZTpuLGRlZmF1bHRPcHRpb25zOnthcHBlbmRUZXh0OicnLHNob3dTZWNvbmRzOmZhbHNlLHVubGltaXRlZEhvdXJzOmZhbHNlLHRpbWVTdGVwczpbMSwxLDFdLGluaXRpYWxGaWVsZDpudWxsLG5vU2VwYXJhdG9yRW50cnk6ZmFsc2UsdGFiVG9FeGl0OmZhbHNlLHVzZU1vdXNlV2hlZWw6dHJ1ZSxkZWZhdWx0VGltZTpudWxsLG1pblRpbWU6bnVsbCxtYXhUaW1lOm51bGwsc3Bpbm5lckltYWdlOidzcGlubmVyRGVmYXVsdC5wbmcnLHNwaW5uZXJTaXplOlsyMCwyMCw4XSxzcGlubmVyQmlnSW1hZ2U6Jycsc3Bpbm5lckJpZ1NpemU6WzQwLDQwLDE2XSxzcGlubmVySW5jRGVjT25seTpmYWxzZSxzcGlubmVyUmVwZWF0Ols1MDAsMjUwXSxiZWZvcmVTaG93Om51bGwsYmVmb3JlU2V0VGltZTpudWxsfSxyZWdpb25hbE9wdGlvbnM6eycnOntzaG93MjRIb3VyczpmYWxzZSxzZXBhcmF0b3I6JzonLGFtcG1QcmVmaXg6JycsYW1wbU5hbWVzOlsnQU0nLCdQTSddLHNwaW5uZXJUZXh0czpbJ05vdycsJ1ByZXZpb3VzIGZpZWxkJywnTmV4dCBmaWVsZCcsJ0luY3JlbWVudCcsJ0RlY3JlbWVudCddfX0sX2dldHRlcnM6WydnZXRPZmZzZXQnLCdnZXRUaW1lJywnaXNEaXNhYmxlZCddLF9hcHBlbmRDbGFzczpuKyctYXBwZW5kJyxfY29udHJvbENsYXNzOm4rJy1jb250cm9sJyxfZXhwYW5kQ2xhc3M6bisnLWV4cGFuZCcsX2Rpc2FibGVkSW5wdXRzOltdLF9pbnN0U2V0dGluZ3M6ZnVuY3Rpb24oYSxiKXtyZXR1cm57X2ZpZWxkOjAsX3NlbGVjdGVkSG91cjowLF9zZWxlY3RlZE1pbnV0ZTowLF9zZWxlY3RlZFNlY29uZDowfX0sX3Bvc3RBdHRhY2g6ZnVuY3Rpb24oYixjKXtiLm9uKCdmb2N1cy4nK2MubmFtZSx0aGlzLl9kb0ZvY3VzKS5vbignYmx1ci4nK2MubmFtZSx0aGlzLl9kb0JsdXIpLm9uKCdjbGljay4nK2MubmFtZSx0aGlzLl9kb0NsaWNrKS5vbigna2V5ZG93bi4nK2MubmFtZSx0aGlzLl9kb0tleURvd24pLm9uKCdrZXlwcmVzcy4nK2MubmFtZSx0aGlzLl9kb0tleVByZXNzKS5vbigncGFzdGUuJytjLm5hbWUsZnVuY3Rpb24oYSl7c2V0VGltZW91dChmdW5jdGlvbigpe28uX3BhcnNlVGltZShjKX0sMSl9KX0sX29wdGlvbnNDaGFuZ2VkOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLl9leHRyYWN0VGltZShiKTskLmV4dGVuZChiLm9wdGlvbnMsYyk7Yi5vcHRpb25zLnNob3cyNEhvdXJzPWIub3B0aW9ucy5zaG93MjRIb3Vyc3x8Yi5vcHRpb25zLnVubGltaXRlZEhvdXJzO2IuX2ZpZWxkPTA7aWYoZCl7dGhpcy5fc2V0VGltZShiLG5ldyBEYXRlKDAsMCwwLGRbMF0sZFsxXSxkWzJdKSl9YS5uZXh0KCdzcGFuLicrdGhpcy5fYXBwZW5kQ2xhc3MpLnJlbW92ZSgpO2EucGFyZW50KCkuZmluZCgnc3Bhbi4nK3RoaXMuX2NvbnRyb2xDbGFzcykucmVtb3ZlKCk7aWYoJC5mbi5tb3VzZXdoZWVsKXthLnVubW91c2V3aGVlbCgpfXZhciBlPSghYi5vcHRpb25zLnNwaW5uZXJJbWFnZT9udWxsOiQoJzxzcGFuIGNsYXNzPVwiJyt0aGlzLl9jb250cm9sQ2xhc3MrJ1wiIHN0eWxlPVwiZGlzcGxheTogaW5saW5lLWJsb2NrOyAnKydiYWNrZ3JvdW5kOiB1cmwoXFwnJytiLm9wdGlvbnMuc3Bpbm5lckltYWdlKydcXCcpIDAgMCBuby1yZXBlYXQ7IHdpZHRoOiAnK2Iub3B0aW9ucy5zcGlubmVyU2l6ZVswXSsncHg7IGhlaWdodDogJytiLm9wdGlvbnMuc3Bpbm5lclNpemVbMV0rJ3B4O1wiPjwvc3Bhbj4nKSk7YS5hZnRlcihiLm9wdGlvbnMuYXBwZW5kVGV4dD8nPHNwYW4gY2xhc3M9XCInK3RoaXMuX2FwcGVuZENsYXNzKydcIj4nK2Iub3B0aW9ucy5hcHBlbmRUZXh0Kyc8L3NwYW4+JzonJykuYWZ0ZXIoZXx8JycpO2lmKGIub3B0aW9ucy51c2VNb3VzZVdoZWVsJiYkLmZuLm1vdXNld2hlZWwpe2EubW91c2V3aGVlbCh0aGlzLl9kb01vdXNlV2hlZWwpfWlmKGUpe2UubW91c2Vkb3duKHRoaXMuX2hhbmRsZVNwaW5uZXIpLm1vdXNldXAodGhpcy5fZW5kU3Bpbm5lcikubW91c2VvdmVyKHRoaXMuX2V4cGFuZFNwaW5uZXIpLm1vdXNlb3V0KHRoaXMuX2VuZFNwaW5uZXIpLm1vdXNlbW92ZSh0aGlzLl9kZXNjcmliZVNwaW5uZXIpfX0sZW5hYmxlOmZ1bmN0aW9uKGEpe3RoaXMuX2VuYWJsZURpc2FibGUoYSxmYWxzZSl9LGRpc2FibGU6ZnVuY3Rpb24oYSl7dGhpcy5fZW5hYmxlRGlzYWJsZShhLHRydWUpfSxfZW5hYmxlRGlzYWJsZTpmdW5jdGlvbihiLGMpe3ZhciBkPXRoaXMuX2dldEluc3QoYik7aWYoIWQpe3JldHVybn1iLmRpc2FibGVkPWM7aWYoYi5uZXh0U2libGluZyYmYi5uZXh0U2libGluZy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09J3NwYW4nKXt0aGlzLl9jaGFuZ2VTcGlubmVyKGQsYi5uZXh0U2libGluZywoYz81Oi0xKSl9dGhpcy5fZGlzYWJsZWRJbnB1dHM9JC5tYXAodGhpcy5fZGlzYWJsZWRJbnB1dHMsZnVuY3Rpb24oYSl7cmV0dXJuKGE9PT1iP251bGw6YSl9KTtpZihjKXt0aGlzLl9kaXNhYmxlZElucHV0cy5wdXNoKGIpfX0saXNEaXNhYmxlZDpmdW5jdGlvbihhKXtyZXR1cm4gJC5pbkFycmF5KGEsdGhpcy5fZGlzYWJsZWRJbnB1dHMpPi0xfSxfcHJlRGVzdHJveTpmdW5jdGlvbihiLGMpe2I9JChiKS5vZmYoJy4nK24pO2lmKCQuZm4ubW91c2V3aGVlbCl7Yi51bm1vdXNld2hlZWwoKX10aGlzLl9kaXNhYmxlZElucHV0cz0kLm1hcCh0aGlzLl9kaXNhYmxlZElucHV0cyxmdW5jdGlvbihhKXtyZXR1cm4oYT09PWJbMF0/bnVsbDphKX0pO2Iuc2libGluZ3MoJy4nK3RoaXMuX2FwcGVuZENsYXNzKycsLicrdGhpcy5fY29udHJvbENsYXNzKS5yZW1vdmUoKX0sc2V0VGltZTpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuX2dldEluc3QoYSk7aWYoYyl7aWYoYj09PW51bGx8fGI9PT0nJyl7JChhKS52YWwoJycpfWVsc2V7dGhpcy5fc2V0VGltZShjLGI/KCQuaXNBcnJheShiKT9iOih0eXBlb2YgYj09PSdvYmplY3QnP25ldyBEYXRlKGIuZ2V0VGltZSgpKTpiKSk6bnVsbCl9fX0sZ2V0VGltZTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLl9nZXRJbnN0KGEpO3ZhciBjPShiP3RoaXMuX2V4dHJhY3RUaW1lKGIpOm51bGwpO3JldHVybighYz9udWxsOm5ldyBEYXRlKDAsMCwwLGNbMF0sY1sxXSxjWzJdKSl9LGdldE9mZnNldDpmdW5jdGlvbihhKXt2YXIgYj10aGlzLl9nZXRJbnN0KGEpO3ZhciBjPShiP3RoaXMuX2V4dHJhY3RUaW1lKGIpOm51bGwpO3JldHVybighYz8wOihjWzBdKjM2MDArY1sxXSo2MCtjWzJdKSoxMDAwKX0sX2RvRm9jdXM6ZnVuY3Rpb24oYSl7dmFyIGI9KGEubm9kZU5hbWUmJmEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PSdpbnB1dCc/YTp0aGlzKTtpZihvLl9sYXN0SW5wdXQ9PT1ifHxvLmlzRGlzYWJsZWQoYikpe28uX2ZvY3Vzc2VkPWZhbHNlO3JldHVybn12YXIgYz1vLl9nZXRJbnN0KGIpO28uX2ZvY3Vzc2VkPXRydWU7by5fbGFzdElucHV0PWI7by5fYmx1cnJlZElucHV0PW51bGw7JC5leHRlbmQoYy5vcHRpb25zLCgkLmlzRnVuY3Rpb24oYy5vcHRpb25zLmJlZm9yZVNob3cpP2Mub3B0aW9ucy5iZWZvcmVTaG93LmFwcGx5KGIsW2JdKTp7fSkpO28uX3BhcnNlVGltZShjLGEubm9kZU5hbWU/bnVsbDphKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7by5fc2hvd0ZpZWxkKGMpfSwxMCl9LF9kb0JsdXI6ZnVuY3Rpb24oYSl7by5fYmx1cnJlZElucHV0PW8uX2xhc3RJbnB1dDtvLl9sYXN0SW5wdXQ9bnVsbH0sX2RvQ2xpY2s6ZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQ7dmFyIGM9by5fZ2V0SW5zdChiKTt2YXIgZD1jLl9maWVsZDtpZighby5fZm9jdXNzZWQpe2MuX2ZpZWxkPW8uX2dldFNlbGVjdGlvbihjLGIsYSl9aWYoZCE9PWMuX2ZpZWxkKXtjLl9sYXN0Q2hyPScnfW8uX3Nob3dGaWVsZChjKTtvLl9mb2N1c3NlZD1mYWxzZX0sX2dldFNlbGVjdGlvbjpmdW5jdGlvbihiLGMsZCl7dmFyIGU9MDt2YXIgZj1bYi5lbGVtLnZhbCgpLnNwbGl0KGIub3B0aW9ucy5zZXBhcmF0b3IpWzBdLmxlbmd0aCwyLDJdO2lmKGMuc2VsZWN0aW9uU3RhcnQhPT1udWxsKXt2YXIgZz0wO2Zvcih2YXIgaD0wO2g8PU1hdGgubWF4KDEsYi5fc2Vjb25kRmllbGQsYi5fYW1wbUZpZWxkKTtoKyspe2crPShoIT09Yi5fYW1wbUZpZWxkP2ZbaF0rYi5vcHRpb25zLnNlcGFyYXRvci5sZW5ndGg6Yi5vcHRpb25zLmFtcG1QcmVmaXgubGVuZ3RoK2Iub3B0aW9ucy5hbXBtTmFtZXNbMF0ubGVuZ3RoKTtlPWg7aWYoYy5zZWxlY3Rpb25TdGFydDxnKXticmVha319fWVsc2UgaWYoYy5jcmVhdGVUZXh0UmFuZ2UmJmQhPW51bGwpe3ZhciBpPSQoZC5zcmNFbGVtZW50KTt2YXIgaj1jLmNyZWF0ZVRleHRSYW5nZSgpO3ZhciBrPWZ1bmN0aW9uKGEpe3JldHVybnt0aGluOjIsbWVkaXVtOjQsdGhpY2s6Nn1bYV18fGF9O3ZhciBsPWQuY2xpZW50WCtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdC0oaS5vZmZzZXQoKS5sZWZ0K3BhcnNlSW50KGsoaS5jc3MoJ2JvcmRlci1sZWZ0LXdpZHRoJykpLDEwKSktai5vZmZzZXRMZWZ0O2Zvcih2YXIgaD0wO2g8PU1hdGgubWF4KDEsYi5fc2Vjb25kRmllbGQsYi5fYW1wbUZpZWxkKTtoKyspe3ZhciBnPShoIT09Yi5fYW1wbUZpZWxkPyhoKmZpZWxkU2l6ZSkrMjooYi5fYW1wbUZpZWxkKmZpZWxkU2l6ZSkrYi5vcHRpb25zLmFtcG1QcmVmaXgubGVuZ3RoK2Iub3B0aW9ucy5hbXBtTmFtZXNbMF0ubGVuZ3RoKTtqLmNvbGxhcHNlKCk7ai5tb3ZlRW5kKCdjaGFyYWN0ZXInLGcpO2U9aDtpZihsPGouYm91bmRpbmdXaWR0aCl7YnJlYWt9fX1yZXR1cm4gZX0sX2RvS2V5RG93bjpmdW5jdGlvbihhKXtpZihhLmtleUNvZGU+PTQ4KXtyZXR1cm4gdHJ1ZX12YXIgYj1vLl9nZXRJbnN0KGEudGFyZ2V0KTtzd2l0Y2goYS5rZXlDb2RlKXtjYXNlIDk6cmV0dXJuKGIub3B0aW9ucy50YWJUb0V4aXQ/dHJ1ZTooYS5zaGlmdEtleT9vLl9jaGFuZ2VGaWVsZChiLC0xLHRydWUpOm8uX2NoYW5nZUZpZWxkKGIsKzEsdHJ1ZSkpKTtjYXNlIDM1OmlmKGEuY3RybEtleSl7by5fc2V0VmFsdWUoYiwnJyl9ZWxzZXtiLl9maWVsZD1NYXRoLm1heCgxLGIuX3NlY29uZEZpZWxkLGIuX2FtcG1GaWVsZCk7by5fYWRqdXN0RmllbGQoYiwwKX1icmVhaztjYXNlIDM2OmlmKGEuY3RybEtleSl7by5fc2V0VGltZShiKX1lbHNle2IuX2ZpZWxkPTA7by5fYWRqdXN0RmllbGQoYiwwKX1icmVhaztjYXNlIDM3Om8uX2NoYW5nZUZpZWxkKGIsLTEsZmFsc2UpO2JyZWFrO2Nhc2UgMzg6by5fYWRqdXN0RmllbGQoYiwrMSk7YnJlYWs7Y2FzZSAzOTpvLl9jaGFuZ2VGaWVsZChiLCsxLGZhbHNlKTticmVhaztjYXNlIDQwOm8uX2FkanVzdEZpZWxkKGIsLTEpO2JyZWFrO2Nhc2UgNDY6by5fc2V0VmFsdWUoYiwnJyk7YnJlYWs7Y2FzZSA4OmIuX2xhc3RDaHI9Jyc7ZGVmYXVsdDpyZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9LF9kb0tleVByZXNzOmZ1bmN0aW9uKGEpe3ZhciBiPVN0cmluZy5mcm9tQ2hhckNvZGUoYS5jaGFyQ29kZT09PXVuZGVmaW5lZD9hLmtleUNvZGU6YS5jaGFyQ29kZSk7aWYoYjwnICcpe3JldHVybiB0cnVlfXZhciBjPW8uX2dldEluc3QoYS50YXJnZXQpO28uX2hhbmRsZUtleVByZXNzKGMsYik7cmV0dXJuIGZhbHNlfSxfaGFuZGxlS2V5UHJlc3M6ZnVuY3Rpb24oYSxiKXtpZihiPT09YS5vcHRpb25zLnNlcGFyYXRvcil7dGhpcy5fY2hhbmdlRmllbGQoYSwrMSxmYWxzZSl9ZWxzZSBpZihiPj0nMCcmJmI8PSc5Jyl7dmFyIGM9cGFyc2VJbnQoYiwxMCk7dmFyIGQ9cGFyc2VJbnQoYS5fbGFzdENocitiLDEwKTt2YXIgZT0oYS5fZmllbGQhPT0wP2EuX3NlbGVjdGVkSG91cjooYS5vcHRpb25zLnVubGltaXRlZEhvdXJzP2Q6KGEub3B0aW9ucy5zaG93MjRIb3Vycz8oZDwyND9kOmMpOihkPj0xJiZkPD0xMj9kOihjPjA/YzphLl9zZWxlY3RlZEhvdXIpKSUxMisoYS5fc2VsZWN0ZWRIb3VyPj0xMj8xMjowKSkpKTt2YXIgZj0oYS5fZmllbGQhPT0xP2EuX3NlbGVjdGVkTWludXRlOihkPDYwP2Q6YykpO3ZhciBnPShhLl9maWVsZCE9PWEuX3NlY29uZEZpZWxkP2EuX3NlbGVjdGVkU2Vjb25kOihkPDYwP2Q6YykpO3ZhciBoPXRoaXMuX2NvbnN0cmFpblRpbWUoYSxbZSxmLGddKTt0aGlzLl9zZXRUaW1lKGEsKGEub3B0aW9ucy51bmxpbWl0ZWRIb3Vycz9oOm5ldyBEYXRlKDAsMCwwLGhbMF0saFsxXSxoWzJdKSkpO2lmKGEub3B0aW9ucy5ub1NlcGFyYXRvckVudHJ5JiZhLl9sYXN0Q2hyKXt0aGlzLl9jaGFuZ2VGaWVsZChhLCsxLGZhbHNlKX1lbHNle2EuX2xhc3RDaHI9KGEub3B0aW9ucy51bmxpbWl0ZWRIb3VycyYmYS5fZmllbGQ9PT0wP2EuX2xhc3RDaHIrYjpiKX19ZWxzZSBpZighYS5vcHRpb25zLnNob3cyNEhvdXJzKXtiPWIudG9Mb3dlckNhc2UoKTtpZigoYj09PWEub3B0aW9ucy5hbXBtTmFtZXNbMF0uc3Vic3RyaW5nKDAsMSkudG9Mb3dlckNhc2UoKSYmYS5fc2VsZWN0ZWRIb3VyPj0xMil8fChiPT09YS5vcHRpb25zLmFtcG1OYW1lc1sxXS5zdWJzdHJpbmcoMCwxKS50b0xvd2VyQ2FzZSgpJiZhLl9zZWxlY3RlZEhvdXI8MTIpKXt2YXIgaT1hLl9maWVsZDthLl9maWVsZD1hLl9hbXBtRmllbGQ7dGhpcy5fYWRqdXN0RmllbGQoYSwrMSk7YS5fZmllbGQ9aTt0aGlzLl9zaG93RmllbGQoYSl9fX0sX2RvTW91c2VXaGVlbDpmdW5jdGlvbihhLGIpe2lmKG8uaXNEaXNhYmxlZChhLnRhcmdldCkpe3JldHVybn12YXIgYz1vLl9nZXRJbnN0KGEudGFyZ2V0KTtjLmVsZW0uZm9jdXMoKTtpZighYy5lbGVtLnZhbCgpKXtvLl9wYXJzZVRpbWUoYyl9by5fYWRqdXN0RmllbGQoYyxiKTthLnByZXZlbnREZWZhdWx0KCl9LF9leHBhbmRTcGlubmVyOmZ1bmN0aW9uKGIpe3ZhciBjPW8uX2dldFNwaW5uZXJUYXJnZXQoYik7dmFyIGQ9by5fZ2V0SW5zdChvLl9nZXRJbnB1dChjKSk7aWYoby5pc0Rpc2FibGVkKGQuZWxlbVswXSkpe3JldHVybn1pZihkLm9wdGlvbnMuc3Bpbm5lckJpZ0ltYWdlKXtkLl9leHBhbmRlZD10cnVlO3ZhciBlPSQoYykub2Zmc2V0KCk7dmFyIGY9bnVsbDskKGMpLnBhcmVudHMoKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGE9JCh0aGlzKTtpZihhLmNzcygncG9zaXRpb24nKT09PSdyZWxhdGl2ZSd8fGEuY3NzKCdwb3NpdGlvbicpPT09J2Fic29sdXRlJyl7Zj1hLm9mZnNldCgpfXJldHVybiFmfSk7JCgnPGRpdiBjbGFzcz1cIicrby5fZXhwYW5kQ2xhc3MrJ1wiIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAnKyhlLmxlZnQtKGQub3B0aW9ucy5zcGlubmVyQmlnU2l6ZVswXS1kLm9wdGlvbnMuc3Bpbm5lclNpemVbMF0pLzItKGY/Zi5sZWZ0OjApKSsncHg7IHRvcDogJysoZS50b3AtKGQub3B0aW9ucy5zcGlubmVyQmlnU2l6ZVsxXS1kLm9wdGlvbnMuc3Bpbm5lclNpemVbMV0pLzItKGY/Zi50b3A6MCkpKydweDsgd2lkdGg6ICcrZC5vcHRpb25zLnNwaW5uZXJCaWdTaXplWzBdKydweDsgaGVpZ2h0OiAnK2Qub3B0aW9ucy5zcGlubmVyQmlnU2l6ZVsxXSsncHg7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnK2Qub3B0aW9ucy5zcGlubmVyQmlnSW1hZ2UrJykgbm8tcmVwZWF0IDBweCAwcHg7IHotaW5kZXg6IDEwO1wiPjwvZGl2PicpLm1vdXNlZG93bihvLl9oYW5kbGVTcGlubmVyKS5tb3VzZXVwKG8uX2VuZFNwaW5uZXIpLm1vdXNlb3V0KG8uX2VuZEV4cGFuZCkubW91c2Vtb3ZlKG8uX2Rlc2NyaWJlU3Bpbm5lcikuaW5zZXJ0QWZ0ZXIoYyl9fSxfZ2V0SW5wdXQ6ZnVuY3Rpb24oYSl7cmV0dXJuICQoYSkuc2libGluZ3MoJy4nK3RoaXMuX2dldE1hcmtlcigpKVswXX0sX2Rlc2NyaWJlU3Bpbm5lcjpmdW5jdGlvbihhKXt2YXIgYj1vLl9nZXRTcGlubmVyVGFyZ2V0KGEpO3ZhciBjPW8uX2dldEluc3Qoby5fZ2V0SW5wdXQoYikpO2IudGl0bGU9Yy5vcHRpb25zLnNwaW5uZXJUZXh0c1tvLl9nZXRTcGlubmVyUmVnaW9uKGMsYSldfSxfaGFuZGxlU3Bpbm5lcjpmdW5jdGlvbihhKXt2YXIgYj1vLl9nZXRTcGlubmVyVGFyZ2V0KGEpO3ZhciBjPW8uX2dldElucHV0KGIpO2lmKG8uaXNEaXNhYmxlZChjKSl7cmV0dXJufWlmKGM9PT1vLl9ibHVycmVkSW5wdXQpe28uX2xhc3RJbnB1dD1jO28uX2JsdXJyZWRJbnB1dD1udWxsfXZhciBkPW8uX2dldEluc3QoYyk7by5fZG9Gb2N1cyhjKTt2YXIgZT1vLl9nZXRTcGlubmVyUmVnaW9uKGQsYSk7by5fY2hhbmdlU3Bpbm5lcihkLGIsZSk7by5fYWN0aW9uU3Bpbm5lcihkLGUpO28uX3RpbWVyPW51bGw7by5faGFuZGxpbmdTcGlubmVyPXRydWU7aWYoZT49MyYmZC5vcHRpb25zLnNwaW5uZXJSZXBlYXRbMF0pe28uX3RpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtvLl9yZXBlYXRTcGlubmVyKGQsZSl9LGQub3B0aW9ucy5zcGlubmVyUmVwZWF0WzBdKTskKGIpLm9uZSgnbW91c2VvdXQnLG8uX3JlbGVhc2VTcGlubmVyKS5vbmUoJ21vdXNldXAnLG8uX3JlbGVhc2VTcGlubmVyKX19LF9hY3Rpb25TcGlubmVyOmZ1bmN0aW9uKGEsYil7aWYoIWEuZWxlbS52YWwoKSl7by5fcGFyc2VUaW1lKGEpfXN3aXRjaChiKXtjYXNlIDA6dGhpcy5fc2V0VGltZShhKTticmVhaztjYXNlIDE6dGhpcy5fY2hhbmdlRmllbGQoYSwtMSxmYWxzZSk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NoYW5nZUZpZWxkKGEsKzEsZmFsc2UpO2JyZWFrO2Nhc2UgMzp0aGlzLl9hZGp1c3RGaWVsZChhLCsxKTticmVhaztjYXNlIDQ6dGhpcy5fYWRqdXN0RmllbGQoYSwtMSk7YnJlYWt9fSxfcmVwZWF0U3Bpbm5lcjpmdW5jdGlvbihhLGIpe2lmKCFvLl90aW1lcil7cmV0dXJufW8uX2xhc3RJbnB1dD1vLl9ibHVycmVkSW5wdXQ7dGhpcy5fYWN0aW9uU3Bpbm5lcihhLGIpO3RoaXMuX3RpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtvLl9yZXBlYXRTcGlubmVyKGEsYil9LGEub3B0aW9ucy5zcGlubmVyUmVwZWF0WzFdKX0sX3JlbGVhc2VTcGlubmVyOmZ1bmN0aW9uKGEpe2NsZWFyVGltZW91dChvLl90aW1lcik7by5fdGltZXI9bnVsbH0sX2VuZEV4cGFuZDpmdW5jdGlvbihhKXtvLl90aW1lcj1udWxsO3ZhciBiPW8uX2dldFNwaW5uZXJUYXJnZXQoYSk7dmFyIGM9by5fZ2V0SW5wdXQoYik7dmFyIGQ9by5fZ2V0SW5zdChjKTskKGIpLnJlbW92ZSgpO2QuX2V4cGFuZGVkPWZhbHNlfSxfZW5kU3Bpbm5lcjpmdW5jdGlvbihhKXtvLl90aW1lcj1udWxsO3ZhciBiPW8uX2dldFNwaW5uZXJUYXJnZXQoYSk7dmFyIGM9by5fZ2V0SW5wdXQoYik7dmFyIGQ9by5fZ2V0SW5zdChjKTtpZighby5pc0Rpc2FibGVkKGMpKXtvLl9jaGFuZ2VTcGlubmVyKGQsYiwtMSl9aWYoby5faGFuZGxpbmdTcGlubmVyKXtvLl9sYXN0SW5wdXQ9by5fYmx1cnJlZElucHV0fWlmKG8uX2xhc3RJbnB1dCYmby5faGFuZGxpbmdTcGlubmVyKXtvLl9zaG93RmllbGQoZCl9by5faGFuZGxpbmdTcGlubmVyPWZhbHNlfSxfZ2V0U3Bpbm5lclRhcmdldDpmdW5jdGlvbihhKXtyZXR1cm4gYS50YXJnZXR8fGEuc3JjRWxlbWVudH0sX2dldFNwaW5uZXJSZWdpb246ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLl9nZXRTcGlubmVyVGFyZ2V0KGIpO3ZhciBkPSQoYykub2Zmc2V0KCk7dmFyIGU9W2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0fHxkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3BdO3ZhciBmPShhLm9wdGlvbnMuc3Bpbm5lckluY0RlY09ubHk/OTk6Yi5jbGllbnRYK2VbMF0tZC5sZWZ0KTt2YXIgZz1iLmNsaWVudFkrZVsxXS1kLnRvcDt2YXIgaD1hLm9wdGlvbnNbYS5fZXhwYW5kZWQ/J3NwaW5uZXJCaWdTaXplJzonc3Bpbm5lclNpemUnXTt2YXIgaT0oYS5vcHRpb25zLnNwaW5uZXJJbmNEZWNPbmx5Pzk5OmhbMF0tMS1mKTt2YXIgaj1oWzFdLTEtZztpZihoWzJdPjAmJk1hdGguYWJzKGYtaSk8PWhbMl0mJk1hdGguYWJzKGctaik8PWhbMl0pe3JldHVybiAwfXZhciBrPU1hdGgubWluKGYsZyxpLGopO3JldHVybihrPT09Zj8xOihrPT09aT8yOihrPT09Zz8zOjQpKSl9LF9jaGFuZ2VTcGlubmVyOmZ1bmN0aW9uKGEsYixjKXskKGIpLmNzcygnYmFja2dyb3VuZC1wb3NpdGlvbicsJy0nKygoYysxKSphLm9wdGlvbnNbYS5fZXhwYW5kZWQ/J3NwaW5uZXJCaWdTaXplJzonc3Bpbm5lclNpemUnXVswXSkrJ3B4IDBweCcpfSxfcGFyc2VUaW1lOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5fZXh0cmFjdFRpbWUoYSk7aWYoYyl7YS5fc2VsZWN0ZWRIb3VyPWNbMF07YS5fc2VsZWN0ZWRNaW51dGU9Y1sxXTthLl9zZWxlY3RlZFNlY29uZD1jWzJdfWVsc2V7dmFyIGQ9dGhpcy5fY29uc3RyYWluVGltZShhKTthLl9zZWxlY3RlZEhvdXI9ZFswXTthLl9zZWxlY3RlZE1pbnV0ZT1kWzFdO2EuX3NlbGVjdGVkU2Vjb25kPShhLm9wdGlvbnMuc2hvd1NlY29uZHM/ZFsyXTowKX1hLl9zZWNvbmRGaWVsZD0oYS5vcHRpb25zLnNob3dTZWNvbmRzPzI6LTEpO2EuX2FtcG1GaWVsZD0oYS5vcHRpb25zLnNob3cyNEhvdXJzPy0xOihhLm9wdGlvbnMuc2hvd1NlY29uZHM/MzoyKSk7YS5fbGFzdENocj0nJzt2YXIgZT1mdW5jdGlvbigpe2lmKGEuZWxlbS52YWwoKSE9PScnKXtvLl9zaG93VGltZShhKX19O2lmKHR5cGVvZiBhLm9wdGlvbnMuaW5pdGlhbEZpZWxkPT09J251bWJlcicpe2EuX2ZpZWxkPU1hdGgubWF4KDAsTWF0aC5taW4oTWF0aC5tYXgoMSxhLl9zZWNvbmRGaWVsZCxhLl9hbXBtRmllbGQpLGEub3B0aW9ucy5pbml0aWFsRmllbGQpKTtlKCl9ZWxzZXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5fZmllbGQ9by5fZ2V0U2VsZWN0aW9uKGEsYS5lbGVtWzBdLGIpO2UoKX0sMCl9fSxfZXh0cmFjdFRpbWU6ZnVuY3Rpb24oYSxiKXtiPWJ8fGEuZWxlbS52YWwoKTt2YXIgYz1iLnNwbGl0KGEub3B0aW9ucy5zZXBhcmF0b3IpO2lmKGEub3B0aW9ucy5zZXBhcmF0b3I9PT0nJyYmYiE9PScnKXtjWzBdPWIuc3Vic3RyaW5nKDAsMik7Y1sxXT1iLnN1YnN0cmluZygyLDQpO2NbMl09Yi5zdWJzdHJpbmcoNCw2KX1pZihjLmxlbmd0aD49Mil7dmFyIGQ9IWEub3B0aW9ucy5zaG93MjRIb3VycyYmKGIuaW5kZXhPZihhLm9wdGlvbnMuYW1wbU5hbWVzWzBdKT4tMSk7dmFyIGU9IWEub3B0aW9ucy5zaG93MjRIb3VycyYmKGIuaW5kZXhPZihhLm9wdGlvbnMuYW1wbU5hbWVzWzFdKT4tMSk7dmFyIGY9cGFyc2VJbnQoY1swXSwxMCk7Zj0oaXNOYU4oZik/MDpmKTtmPSgoZHx8ZSkmJmY9PT0xMj8wOmYpKyhlPzEyOjApO3ZhciBnPXBhcnNlSW50KGNbMV0sMTApO2c9KGlzTmFOKGcpPzA6Zyk7dmFyIGg9KGMubGVuZ3RoPj0zP3BhcnNlSW50KGNbMl0sMTApOjApO2g9KGlzTmFOKGgpfHwhYS5vcHRpb25zLnNob3dTZWNvbmRzPzA6aCk7cmV0dXJuIHRoaXMuX2NvbnN0cmFpblRpbWUoYSxbZixnLGhdKX1yZXR1cm4gbnVsbH0sX2NvbnN0cmFpblRpbWU6ZnVuY3Rpb24oYSxiKXt2YXIgYz0oYiE9PW51bGwmJmIhPT11bmRlZmluZWQpO2lmKCFjKXt2YXIgZD10aGlzLl9kZXRlcm1pbmVUaW1lKGEub3B0aW9ucy5kZWZhdWx0VGltZSxhKXx8bmV3IERhdGUoKTtiPVtkLmdldEhvdXJzKCksZC5nZXRNaW51dGVzKCksZC5nZXRTZWNvbmRzKCldfXZhciBlPWZhbHNlO2Zvcih2YXIgaT0wO2k8YS5vcHRpb25zLnRpbWVTdGVwcy5sZW5ndGg7aSsrKXtpZihlKXtiW2ldPTB9ZWxzZSBpZihhLm9wdGlvbnMudGltZVN0ZXBzW2ldPjEpe2JbaV09TWF0aC5yb3VuZChiW2ldL2Eub3B0aW9ucy50aW1lU3RlcHNbaV0pKmEub3B0aW9ucy50aW1lU3RlcHNbaV07ZT10cnVlfX1yZXR1cm4gYn0sX3Nob3dUaW1lOmZ1bmN0aW9uKGEpe3ZhciBiPShhLm9wdGlvbnMudW5saW1pdGVkSG91cnM/YS5fc2VsZWN0ZWRIb3VyOnRoaXMuX2Zvcm1hdE51bWJlcihhLm9wdGlvbnMuc2hvdzI0SG91cnM/YS5fc2VsZWN0ZWRIb3VyOigoYS5fc2VsZWN0ZWRIb3VyKzExKSUxMikrMSkpK2Eub3B0aW9ucy5zZXBhcmF0b3IrdGhpcy5fZm9ybWF0TnVtYmVyKGEuX3NlbGVjdGVkTWludXRlKSsoYS5vcHRpb25zLnNob3dTZWNvbmRzP2Eub3B0aW9ucy5zZXBhcmF0b3IrdGhpcy5fZm9ybWF0TnVtYmVyKGEuX3NlbGVjdGVkU2Vjb25kKTonJykrKGEub3B0aW9ucy5zaG93MjRIb3Vycz8nJzphLm9wdGlvbnMuYW1wbVByZWZpeCthLm9wdGlvbnMuYW1wbU5hbWVzWyhhLl9zZWxlY3RlZEhvdXI8MTI/MDoxKV0pO3RoaXMuX3NldFZhbHVlKGEsYik7dGhpcy5fc2hvd0ZpZWxkKGEpfSxfc2hvd0ZpZWxkOmZ1bmN0aW9uKGEpe3ZhciBiPWEuZWxlbVswXTtpZihhLmVsZW0uaXMoJzpoaWRkZW4nKXx8by5fbGFzdElucHV0IT09Yil7cmV0dXJufXZhciBjPVthLmVsZW0udmFsKCkuc3BsaXQoYS5vcHRpb25zLnNlcGFyYXRvcilbMF0ubGVuZ3RoLDIsMl07dmFyIGQ9MDt2YXIgZT0wO3doaWxlKGU8YS5fZmllbGQpe2QrPWNbZV0rKGU9PT1NYXRoLm1heCgxLGEuX3NlY29uZEZpZWxkKT8wOmEub3B0aW9ucy5zZXBhcmF0b3IubGVuZ3RoKTtlKyt9dmFyIGY9ZCsoYS5fZmllbGQhPT1hLl9hbXBtRmllbGQ/Y1tlXTphLm9wdGlvbnMuYW1wbVByZWZpeC5sZW5ndGgrYS5vcHRpb25zLmFtcG1OYW1lc1swXS5sZW5ndGgpO2lmKGIuc2V0U2VsZWN0aW9uUmFuZ2Upe2Iuc2V0U2VsZWN0aW9uUmFuZ2UoZCxmKX1lbHNlIGlmKGIuY3JlYXRlVGV4dFJhbmdlKXt2YXIgZz1iLmNyZWF0ZVRleHRSYW5nZSgpO2cubW92ZVN0YXJ0KCdjaGFyYWN0ZXInLGQpO2cubW92ZUVuZCgnY2hhcmFjdGVyJyxmLWEuZWxlbS52YWwoKS5sZW5ndGgpO2cuc2VsZWN0KCl9aWYoIWIuZGlzYWJsZWQpe2IuZm9jdXMoKX19LF9mb3JtYXROdW1iZXI6ZnVuY3Rpb24oYSl7cmV0dXJuKGE8MTA/JzAnOicnKSthfSxfc2V0VmFsdWU6ZnVuY3Rpb24oYSxiKXtpZihiIT09YS5lbGVtLnZhbCgpKXthLmVsZW0udmFsKGIpLnRyaWdnZXIoJ2NoYW5nZScpfX0sX2NoYW5nZUZpZWxkOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD0oYS5lbGVtLnZhbCgpPT09Jyd8fGEuX2ZpZWxkPT09KGI9PT0tMT8wOk1hdGgubWF4KDEsYS5fc2Vjb25kRmllbGQsYS5fYW1wbUZpZWxkKSkpO2lmKCFkKXthLl9maWVsZCs9Yn10aGlzLl9zaG93RmllbGQoYSk7YS5fbGFzdENocj0nJztyZXR1cm4oZCYmYyl9LF9hZGp1c3RGaWVsZDpmdW5jdGlvbihhLGIpe2lmKGEuZWxlbS52YWwoKT09PScnKXtiPTB9aWYoYS5vcHRpb25zLnVubGltaXRlZEhvdXJzKXt0aGlzLl9zZXRUaW1lKGEsW2EuX3NlbGVjdGVkSG91cisoYS5fZmllbGQ9PT0wP2IqYS5vcHRpb25zLnRpbWVTdGVwc1swXTowKSxhLl9zZWxlY3RlZE1pbnV0ZSsoYS5fZmllbGQ9PT0xP2IqYS5vcHRpb25zLnRpbWVTdGVwc1sxXTowKSxhLl9zZWxlY3RlZFNlY29uZCsoYS5fZmllbGQ9PT1hLl9zZWNvbmRGaWVsZD9iKmEub3B0aW9ucy50aW1lU3RlcHNbMl06MCldKX1lbHNle3RoaXMuX3NldFRpbWUoYSxuZXcgRGF0ZSgwLDAsMCxhLl9zZWxlY3RlZEhvdXIrKGEuX2ZpZWxkPT09MD9iKmEub3B0aW9ucy50aW1lU3RlcHNbMF06MCkrKGEuX2ZpZWxkPT09YS5fYW1wbUZpZWxkP2IqMTI6MCksYS5fc2VsZWN0ZWRNaW51dGUrKGEuX2ZpZWxkPT09MT9iKmEub3B0aW9ucy50aW1lU3RlcHNbMV06MCksYS5fc2VsZWN0ZWRTZWNvbmQrKGEuX2ZpZWxkPT09YS5fc2Vjb25kRmllbGQ/YiphLm9wdGlvbnMudGltZVN0ZXBzWzJdOjApKSl9fSxfc2V0VGltZTpmdW5jdGlvbihhLGIpe2lmKGEub3B0aW9ucy51bmxpbWl0ZWRIb3VycyYmJC5pc0FycmF5KGIpKXt2YXIgYz1ifWVsc2V7Yj10aGlzLl9kZXRlcm1pbmVUaW1lKGIsYSk7dmFyIGM9KGI/W2IuZ2V0SG91cnMoKSxiLmdldE1pbnV0ZXMoKSxiLmdldFNlY29uZHMoKV06bnVsbCl9Yz10aGlzLl9jb25zdHJhaW5UaW1lKGEsYyk7Yj1uZXcgRGF0ZSgwLDAsMCxjWzBdLGNbMV0sY1syXSk7dmFyIGI9dGhpcy5fbm9ybWFsaXNlVGltZShiKTt2YXIgZD10aGlzLl9ub3JtYWxpc2VUaW1lKHRoaXMuX2RldGVybWluZVRpbWUoYS5vcHRpb25zLm1pblRpbWUsYSkpO3ZhciBlPXRoaXMuX25vcm1hbGlzZVRpbWUodGhpcy5fZGV0ZXJtaW5lVGltZShhLm9wdGlvbnMubWF4VGltZSxhKSk7aWYoYS5vcHRpb25zLnVubGltaXRlZEhvdXJzKXt3aGlsZShjWzJdPDApe2NbMl0rPTYwO2NbMV0tLX13aGlsZShjWzJdPjU5KXtjWzJdLT02MDtjWzFdKyt9d2hpbGUoY1sxXTwwKXtjWzFdKz02MDtjWzBdLS19d2hpbGUoY1sxXT41OSl7Y1sxXS09NjA7Y1swXSsrfWQ9KGEub3B0aW9ucy5taW5UaW1lIT1udWxsJiYkLmlzQXJyYXkoYS5vcHRpb25zLm1pblRpbWUpKT9hLm9wdGlvbnMubWluVGltZTpbMCwwLDBdO2lmKGNbMF08ZFswXSl7Yz1kLnNsaWNlKDAsMyl9ZWxzZSBpZihjWzBdPT09ZFswXSl7aWYoY1sxXTxkWzFdKXtjWzFdPWRbMV07Y1syXT1kWzJdfWVsc2UgaWYoY1sxXT09PWRbMV0pe2lmKGNbMl08ZFsyXSl7Y1syXT1kWzJdfX19aWYoYS5vcHRpb25zLm1heFRpbWUhPW51bGwmJiQuaXNBcnJheShhLm9wdGlvbnMubWF4VGltZSkpe2lmKGNbMF0+YS5vcHRpb25zLm1heFRpbWVbMF0pe2M9YS5vcHRpb25zLm1heFRpbWUuc2xpY2UoMCwzKX1lbHNlIGlmKGNbMF09PT1hLm9wdGlvbnMubWF4VGltZVswXSl7aWYoY1sxXT5hLm9wdGlvbnMubWF4VGltZVsxXSl7Y1sxXT1hLm9wdGlvbnMubWF4VGltZVsxXTtjWzJdPWEub3B0aW9ucy5tYXhUaW1lWzJdfWVsc2UgaWYoY1sxXT09PWEub3B0aW9ucy5tYXhUaW1lWzFdKXtpZihjWzJdPmEub3B0aW9ucy5tYXhUaW1lWzJdKXtjWzJdPWEub3B0aW9ucy5tYXhUaW1lWzJdfX19fX1lbHNle2lmKGQmJmUmJmQ+ZSl7aWYoYjxkJiZiPmUpe2I9KE1hdGguYWJzKGItZCk8TWF0aC5hYnMoYi1lKT9kOmUpfX1lbHNle2I9KGQmJmI8ZD9kOihlJiZiPmU/ZTpiKSl9Y1swXT1iLmdldEhvdXJzKCk7Y1sxXT1iLmdldE1pbnV0ZXMoKTtjWzJdPWIuZ2V0U2Vjb25kcygpfWlmKCQuaXNGdW5jdGlvbihhLm9wdGlvbnMuYmVmb3JlU2V0VGltZSkpe2I9YS5vcHRpb25zLmJlZm9yZVNldFRpbWUuYXBwbHkoYS5lbGVtWzBdLFt0aGlzLmdldFRpbWUoYS5lbGVtWzBdKSxiLGQsZV0pO2NbMF09Yi5nZXRIb3VycygpO2NbMV09Yi5nZXRNaW51dGVzKCk7Y1syXT1iLmdldFNlY29uZHMoKX1hLl9zZWxlY3RlZEhvdXI9Y1swXTthLl9zZWxlY3RlZE1pbnV0ZT1jWzFdO2EuX3NlbGVjdGVkU2Vjb25kPWNbMl07dGhpcy5fc2hvd1RpbWUoYSl9LF9kZXRlcm1pbmVUaW1lOmZ1bmN0aW9uKGksail7dmFyIGs9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IERhdGUoKTtiLnNldFRpbWUoYi5nZXRUaW1lKCkrYSoxMDAwKTtyZXR1cm4gYn07dmFyIGw9ZnVuY3Rpb24oYSl7dmFyIGI9by5fZXh0cmFjdFRpbWUoaixhKTt2YXIgYz1uZXcgRGF0ZSgpO3ZhciBkPShiP2JbMF06Yy5nZXRIb3VycygpKTt2YXIgZT0oYj9iWzFdOmMuZ2V0TWludXRlcygpKTt2YXIgZj0oYj9iWzJdOmMuZ2V0U2Vjb25kcygpKTtpZighYil7dmFyIGc9LyhbKy1dP1swLTldKylcXHMqKHN8U3xtfE18aHxIKT8vZzt2YXIgaD1nLmV4ZWMoYSk7d2hpbGUoaCl7c3dpdGNoKGhbMl18fCdzJyl7Y2FzZSdzJzpjYXNlJ1MnOmYrPXBhcnNlSW50KGhbMV0sMTApO2JyZWFrO2Nhc2UnbSc6Y2FzZSdNJzplKz1wYXJzZUludChoWzFdLDEwKTticmVhaztjYXNlJ2gnOmNhc2UnSCc6ZCs9cGFyc2VJbnQoaFsxXSwxMCk7YnJlYWt9aD1nLmV4ZWMoYSl9fWM9bmV3IERhdGUoMCwwLDEwLGQsZSxmLDApO2lmKC9eIS8udGVzdChhKSl7aWYoYy5nZXREYXRlKCk+MTApe2M9bmV3IERhdGUoMCwwLDEwLDIzLDU5LDU5KX1lbHNlIGlmKGMuZ2V0RGF0ZSgpPDEwKXtjPW5ldyBEYXRlKDAsMCwxMCwwLDAsMCl9fXJldHVybiBjfTt2YXIgbT1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IERhdGUoMCwwLDAsYVswXSxhWzFdfHwwLGFbMl18fDAsMCl9O3JldHVybihpPyh0eXBlb2YgaT09PSdzdHJpbmcnP2woaSk6KHR5cGVvZiBpPT09J251bWJlcic/ayhpKTooJC5pc0FycmF5KGkpP20oaSk6aSkpKTpudWxsKX0sX25vcm1hbGlzZVRpbWU6ZnVuY3Rpb24oYSl7aWYoIWEpe3JldHVybiBudWxsfWEuc2V0RnVsbFllYXIoMTkwMCk7YS5zZXRNb250aCgwKTthLnNldERhdGUoMCk7cmV0dXJuIGF9fSk7dmFyIG89JC50aW1lRW50cnl9KShqUXVlcnkpOyIsIi8qIVxuICogalF1ZXJ5IFVwbG9hZCBGaWxlIFBsdWdpblxuICogdmVyc2lvbjogNC4wLjFcbiAqIEByZXF1aXJlcyBqUXVlcnkgdjEuNSBvciBsYXRlciAmIGZvcm0gcGx1Z2luXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMgUmF2aXNoYW5rZXIgS3VzdW1hXG4gKiBodHRwOi8vaGF5YWdlZWsuY29tL1xuICovXG4hZnVuY3Rpb24oZSl7dm9pZCAwPT1lLmZuLmFqYXhGb3JtJiZlLmdldFNjcmlwdCgoXCJodHRwczpcIj09ZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2w/XCJodHRwczovL1wiOlwiaHR0cDovL1wiKStcIm1hbHN1cC5naXRodWIuaW8vanF1ZXJ5LmZvcm0uanNcIik7dmFyIGE9e307YS5maWxlYXBpPXZvaWQgMCE9PWUoXCI8aW5wdXQgdHlwZT0nZmlsZScvPlwiKS5nZXQoMCkuZmlsZXMsYS5mb3JtZGF0YT12b2lkIDAhPT13aW5kb3cuRm9ybURhdGEsZS5mbi51cGxvYWRGaWxlPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIHIoKXtTfHwoUz0hMCxmdW5jdGlvbiBlKCl7aWYoMD09eC5sZW5ndGgmJjA9PUQubGVuZ3RoKXcuYWZ0ZXJVcGxvYWRBbGwoQyksUz0hMTtlbHNle2lmKEQubGVuZ3RoPHcuc2VxdWVudGlhbENvdW50KXt2YXIgYT14LnNoaWZ0KCk7dm9pZCAwIT1hJiYoRC5wdXNoKGEpLGEuc3VibWl0KCkpfXdpbmRvdy5zZXRUaW1lb3V0KGUsMTAwKX19KCkpfWZ1bmN0aW9uIG8oYSx0LHIpe3Iub24oXCJkcmFnZW50ZXJcIixmdW5jdGlvbihhKXthLnN0b3BQcm9wYWdhdGlvbigpLGEucHJldmVudERlZmF1bHQoKSxlKHRoaXMpLmFkZENsYXNzKHQuZHJhZ0Ryb3BIb3ZlckNsYXNzKX0pLHIub24oXCJkcmFnb3ZlclwiLGZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCksYS5wcmV2ZW50RGVmYXVsdCgpO3ZhciByPWUodGhpcyk7ci5oYXNDbGFzcyh0LmRyYWdEcm9wQ29udGFpbmVyQ2xhc3MpJiYhci5oYXNDbGFzcyh0LmRyYWdEcm9wSG92ZXJDbGFzcykmJnIuYWRkQ2xhc3ModC5kcmFnRHJvcEhvdmVyQ2xhc3MpfSksci5vbihcImRyb3BcIixmdW5jdGlvbihyKXtyLnByZXZlbnREZWZhdWx0KCksZSh0aGlzKS5yZW1vdmVDbGFzcyh0LmRyYWdEcm9wSG92ZXJDbGFzcyksYS5lcnJvckxvZy5odG1sKFwiXCIpO3ZhciBvPXIub3JpZ2luYWxFdmVudC5kYXRhVHJhbnNmZXIuZmlsZXM7cmV0dXJuIXQubXVsdGlwbGUmJm8ubGVuZ3RoPjE/dm9pZCh0LnNob3dFcnJvciYmZShcIjxkaXYgY2xhc3M9J1wiK3QuZXJyb3JDbGFzcytcIic+XCIrdC5tdWx0aURyYWdFcnJvclN0citcIjwvZGl2PlwiKS5hcHBlbmRUbyhhLmVycm9yTG9nKSk6dm9pZCgwIT10Lm9uU2VsZWN0KG8pJiZsKHQsYSxvKSl9KSxyLm9uKFwiZHJhZ2xlYXZlXCIsZnVuY3Rpb24oKXtlKHRoaXMpLnJlbW92ZUNsYXNzKHQuZHJhZ0Ryb3BIb3ZlckNsYXNzKX0pLGUoZG9jdW1lbnQpLm9uKFwiZHJhZ2VudGVyXCIsZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKSxlLnByZXZlbnREZWZhdWx0KCl9KSxlKGRvY3VtZW50KS5vbihcImRyYWdvdmVyXCIsZnVuY3Rpb24oYSl7YS5zdG9wUHJvcGFnYXRpb24oKSxhLnByZXZlbnREZWZhdWx0KCk7dmFyIHI9ZSh0aGlzKTtyLmhhc0NsYXNzKHQuZHJhZ0Ryb3BDb250YWluZXJDbGFzcyl8fHIucmVtb3ZlQ2xhc3ModC5kcmFnRHJvcEhvdmVyQ2xhc3MpfSksZShkb2N1bWVudCkub24oXCJkcm9wXCIsZnVuY3Rpb24oYSl7YS5zdG9wUHJvcGFnYXRpb24oKSxhLnByZXZlbnREZWZhdWx0KCksZSh0aGlzKS5yZW1vdmVDbGFzcyh0LmRyYWdEcm9wSG92ZXJDbGFzcyl9KX1mdW5jdGlvbiBzKGUpe3ZhciBhPVwiXCIsdD1lLzEwMjQ7aWYocGFyc2VJbnQodCk+MTAyNCl7dmFyIHI9dC8xMDI0O2E9ci50b0ZpeGVkKDIpK1wiIE1CXCJ9ZWxzZSBhPXQudG9GaXhlZCgyKStcIiBLQlwiO3JldHVybiBhfWZ1bmN0aW9uIGkoYSl7dmFyIHQ9W107dD1cInN0cmluZ1wiPT1qUXVlcnkudHlwZShhKT9hLnNwbGl0KFwiJlwiKTplLnBhcmFtKGEpLnNwbGl0KFwiJlwiKTt2YXIgcixvLHM9dC5sZW5ndGgsaT1bXTtmb3Iocj0wO3M+cjtyKyspdFtyXT10W3JdLnJlcGxhY2UoL1xcKy9nLFwiIFwiKSxvPXRbcl0uc3BsaXQoXCI9XCIpLGkucHVzaChbZGVjb2RlVVJJQ29tcG9uZW50KG9bMF0pLGRlY29kZVVSSUNvbXBvbmVudChvWzFdKV0pO3JldHVybiBpfWZ1bmN0aW9uIGwoYSx0LHIpe2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKWlmKG4odCxhLHJbb10ubmFtZSkpaWYoYS5hbGxvd0R1cGxpY2F0ZXN8fCFkKHQscltvXS5uYW1lKSlpZigtMSE9YS5tYXhGaWxlU2l6ZSYmcltvXS5zaXplPmEubWF4RmlsZVNpemUpYS5zaG93RXJyb3ImJmUoXCI8ZGl2IGNsYXNzPSdcIithLmVycm9yQ2xhc3MrXCInPjxiPlwiK3Jbb10ubmFtZStcIjwvYj4gXCIrYS5zaXplRXJyb3JTdHIrcyhhLm1heEZpbGVTaXplKStcIjwvZGl2PlwiKS5hcHBlbmRUbyh0LmVycm9yTG9nKTtlbHNlIGlmKC0xIT1hLm1heEZpbGVDb3VudCYmdC5zZWxlY3RlZEZpbGVzPj1hLm1heEZpbGVDb3VudClhLnNob3dFcnJvciYmZShcIjxkaXYgY2xhc3M9J1wiK2EuZXJyb3JDbGFzcytcIic+PGI+XCIrcltvXS5uYW1lK1wiPC9iPiBcIithLm1heEZpbGVDb3VudEVycm9yU3RyK2EubWF4RmlsZUNvdW50K1wiPC9kaXY+XCIpLmFwcGVuZFRvKHQuZXJyb3JMb2cpO2Vsc2V7dC5zZWxlY3RlZEZpbGVzKyssdC5leGlzdGluZ0ZpbGVOYW1lcy5wdXNoKHJbb10ubmFtZSk7dmFyIGw9YSxwPW5ldyBGb3JtRGF0YSx1PWEuZmlsZU5hbWUucmVwbGFjZShcIltdXCIsXCJcIik7cC5hcHBlbmQodSxyW29dKTt2YXIgYz1hLmZvcm1EYXRhO2lmKGMpZm9yKHZhciBoPWkoYyksZj0wO2Y8aC5sZW5ndGg7ZisrKWhbZl0mJnAuYXBwZW5kKGhbZl1bMF0saFtmXVsxXSk7bC5maWxlRGF0YT1wO3ZhciB3PW5ldyBtKHQsYSksZz1cIlwiO2c9YS5zaG93RmlsZUNvdW50ZXI/dC5maWxlQ291bnRlcithLmZpbGVDb3VudGVyU3R5bGUrcltvXS5uYW1lOnJbb10ubmFtZSxhLnNob3dGaWxlU2l6ZSYmKGcrPVwiIChcIitzKHJbb10uc2l6ZSkrXCIpXCIpLHcuZmlsZW5hbWUuaHRtbChnKTt2YXIgQz1lKFwiPGZvcm0gc3R5bGU9J2Rpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOmFic29sdXRlO2xlZnQ6IDE1MHB4OycgY2xhc3M9J1wiK3QuZm9ybUdyb3VwK1wiJyBtZXRob2Q9J1wiK2EubWV0aG9kK1wiJyBhY3Rpb249J1wiK2EudXJsK1wiJyBlbmN0eXBlPSdcIithLmVuY3R5cGUrXCInPjwvZm9ybT5cIik7Qy5hcHBlbmRUbyhcImJvZHlcIik7dmFyIGI9W107Yi5wdXNoKHJbb10ubmFtZSksdihDLGwsdyxiLHQscltvXSksdC5maWxlQ291bnRlcisrfWVsc2UgYS5zaG93RXJyb3ImJmUoXCI8ZGl2IGNsYXNzPSdcIithLmVycm9yQ2xhc3MrXCInPjxiPlwiK3Jbb10ubmFtZStcIjwvYj4gXCIrYS5kdXBsaWNhdGVFcnJvclN0citcIjwvZGl2PlwiKS5hcHBlbmRUbyh0LmVycm9yTG9nKTtlbHNlIGEuc2hvd0Vycm9yJiZlKFwiPGRpdiBjbGFzcz0nXCIrYS5lcnJvckNsYXNzK1wiJz48Yj5cIityW29dLm5hbWUrXCI8L2I+IFwiK2EuZXh0RXJyb3JTdHIrYS5hbGxvd2VkVHlwZXMrXCI8L2Rpdj5cIikuYXBwZW5kVG8odC5lcnJvckxvZyl9ZnVuY3Rpb24gbihlLGEsdCl7dmFyIHI9YS5hbGxvd2VkVHlwZXMudG9Mb3dlckNhc2UoKS5zcGxpdChcIixcIiksbz10LnNwbGl0KFwiLlwiKS5wb3AoKS50b0xvd2VyQ2FzZSgpO3JldHVyblwiKlwiIT1hLmFsbG93ZWRUeXBlcyYmalF1ZXJ5LmluQXJyYXkobyxyKTwwPyExOiEwfWZ1bmN0aW9uIGQoZSxhKXt2YXIgdD0hMTtpZihlLmV4aXN0aW5nRmlsZU5hbWVzLmxlbmd0aClmb3IodmFyIHI9MDtyPGUuZXhpc3RpbmdGaWxlTmFtZXMubGVuZ3RoO3IrKykoZS5leGlzdGluZ0ZpbGVOYW1lc1tyXT09YXx8dy5kdXBsaWNhdGVTdHJpY3QmJmUuZXhpc3RpbmdGaWxlTmFtZXNbcl0udG9Mb3dlckNhc2UoKT09YS50b0xvd2VyQ2FzZSgpKSYmKHQ9ITApO3JldHVybiB0fWZ1bmN0aW9uIHAoZSxhKXtpZihlLmV4aXN0aW5nRmlsZU5hbWVzLmxlbmd0aClmb3IodmFyIHQ9MDt0PGEubGVuZ3RoO3QrKyl7dmFyIHI9ZS5leGlzdGluZ0ZpbGVOYW1lcy5pbmRleE9mKGFbdF0pOy0xIT1yJiZlLmV4aXN0aW5nRmlsZU5hbWVzLnNwbGljZShyLDEpfX1mdW5jdGlvbiB1KGUsYSl7aWYoZSl7YS5zaG93KCk7dmFyIHQ9bmV3IEZpbGVSZWFkZXI7dC5vbmxvYWQ9ZnVuY3Rpb24oZSl7YS5hdHRyKFwic3JjXCIsZS50YXJnZXQucmVzdWx0KX0sdC5yZWFkQXNEYXRhVVJMKGUpfX1mdW5jdGlvbiBjKGEsdCl7aWYoYS5zaG93RmlsZUNvdW50ZXIpe3ZhciByPWUodC5jb250YWluZXIpLmZpbmQoXCIuYWpheC1maWxlLXVwbG9hZC1maWxlbmFtZVwiKS5sZW5ndGg7dC5maWxlQ291bnRlcj1yKzEsZSh0LmNvbnRhaW5lcikuZmluZChcIi5hamF4LWZpbGUtdXBsb2FkLWZpbGVuYW1lXCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLmh0bWwoKS5zcGxpdChhLmZpbGVDb3VudGVyU3R5bGUpLG89KHBhcnNlSW50KHRbMF0pLTEscithLmZpbGVDb3VudGVyU3R5bGUrdFsxXSk7ZSh0aGlzKS5odG1sKG8pLHItLX0pfX1mdW5jdGlvbiBoKHQscixvLHMpe3ZhciBpPVwiYWpheC11cGxvYWQtaWQtXCIrKG5ldyBEYXRlKS5nZXRUaW1lKCksZD1lKFwiPGZvcm0gbWV0aG9kPSdcIitvLm1ldGhvZCtcIicgYWN0aW9uPSdcIitvLnVybCtcIicgZW5jdHlwZT0nXCIrby5lbmN0eXBlK1wiJz48L2Zvcm0+XCIpLHA9XCI8aW5wdXQgdHlwZT0nZmlsZScgaWQ9J1wiK2krXCInIG5hbWU9J1wiK28uZmlsZU5hbWUrXCInIGFjY2VwdD0nXCIrby5hY2NlcHRGaWxlcytcIicvPlwiO28ubXVsdGlwbGUmJihvLmZpbGVOYW1lLmluZGV4T2YoXCJbXVwiKSE9by5maWxlTmFtZS5sZW5ndGgtMiYmKG8uZmlsZU5hbWUrPVwiW11cIikscD1cIjxpbnB1dCB0eXBlPSdmaWxlJyBpZD0nXCIraStcIicgbmFtZT0nXCIrby5maWxlTmFtZStcIicgYWNjZXB0PSdcIitvLmFjY2VwdEZpbGVzK1wiJyBtdWx0aXBsZS8+XCIpO3ZhciB1PWUocCkuYXBwZW5kVG8oZCk7dS5jaGFuZ2UoZnVuY3Rpb24oKXt0LmVycm9yTG9nLmh0bWwoXCJcIik7dmFyIGk9KG8uYWxsb3dlZFR5cGVzLnRvTG93ZXJDYXNlKCkuc3BsaXQoXCIsXCIpLFtdKTtpZih0aGlzLmZpbGVzKXtmb3IoZz0wO2c8dGhpcy5maWxlcy5sZW5ndGg7ZysrKWkucHVzaCh0aGlzLmZpbGVzW2ddLm5hbWUpO2lmKDA9PW8ub25TZWxlY3QodGhpcy5maWxlcykpcmV0dXJufWVsc2V7dmFyIHA9ZSh0aGlzKS52YWwoKSx1PVtdO2lmKGkucHVzaChwKSwhbih0LG8scCkpcmV0dXJuIHZvaWQoby5zaG93RXJyb3ImJmUoXCI8ZGl2IGNsYXNzPSdcIitvLmVycm9yQ2xhc3MrXCInPjxiPlwiK3ArXCI8L2I+IFwiK28uZXh0RXJyb3JTdHIrby5hbGxvd2VkVHlwZXMrXCI8L2Rpdj5cIikuYXBwZW5kVG8odC5lcnJvckxvZykpO2lmKHUucHVzaCh7bmFtZTpwLHNpemU6XCJOQVwifSksMD09by5vblNlbGVjdCh1KSlyZXR1cm59aWYoYyhvLHQpLHMudW5iaW5kKFwiY2xpY2tcIiksZC5oaWRlKCksaCh0LHIsbyxzKSxkLmFkZENsYXNzKHIpLG8uc2VyaWFsaXplJiZhLmZpbGVhcGkmJmEuZm9ybWRhdGEpe2QucmVtb3ZlQ2xhc3Mocik7dmFyIGY9dGhpcy5maWxlcztkLnJlbW92ZSgpLGwobyx0LGYpfWVsc2V7Zm9yKHZhciB3PVwiXCIsZz0wO2c8aS5sZW5ndGg7ZysrKXcrPW8uc2hvd0ZpbGVDb3VudGVyP3QuZmlsZUNvdW50ZXIrby5maWxlQ291bnRlclN0eWxlK2lbZ10rXCI8YnI+XCI6aVtnXStcIjxicj5cIix0LmZpbGVDb3VudGVyKys7aWYoLTEhPW8ubWF4RmlsZUNvdW50JiZ0LnNlbGVjdGVkRmlsZXMraS5sZW5ndGg+by5tYXhGaWxlQ291bnQpcmV0dXJuIHZvaWQoby5zaG93RXJyb3ImJmUoXCI8ZGl2IGNsYXNzPSdcIitvLmVycm9yQ2xhc3MrXCInPjxiPlwiK3crXCI8L2I+IFwiK28ubWF4RmlsZUNvdW50RXJyb3JTdHIrby5tYXhGaWxlQ291bnQrXCI8L2Rpdj5cIikuYXBwZW5kVG8odC5lcnJvckxvZykpO3Quc2VsZWN0ZWRGaWxlcys9aS5sZW5ndGg7dmFyIEM9bmV3IG0odCxvKTtDLmZpbGVuYW1lLmh0bWwodyksQy5maWxlbmFtZS5odG1sKFwiXCIpLHYoZCxvLEMsaSx0LG51bGwpfX0pLG8ubmVzdGVkRm9ybXM/KGQuY3NzKHttYXJnaW46MCxwYWRkaW5nOjB9KSxzLmNzcyh7cG9zaXRpb246XCJyZWxhdGl2ZVwiLG92ZXJmbG93OlwiaGlkZGVuXCIsY3Vyc29yOlwiZGVmYXVsdFwifSksdS5jc3Moe3Bvc2l0aW9uOlwiYWJzb2x1dGVcIixjdXJzb3I6XCJwb2ludGVyXCIsdG9wOlwiMHB4XCIsd2lkdGg6XCIxMDAlXCIsaGVpZ2h0OlwiMTAwJVwiLGxlZnQ6XCIwcHhcIixcInotaW5kZXhcIjpcIjEwMFwiLG9wYWNpdHk6XCIwLjBcIixmaWx0ZXI6XCJhbHBoYShvcGFjaXR5PTApXCIsXCItbXMtZmlsdGVyXCI6XCJhbHBoYShvcGFjaXR5PTApXCIsXCIta2h0bWwtb3BhY2l0eVwiOlwiMC4wXCIsXCItbW96LW9wYWNpdHlcIjpcIjAuMFwifSksZC5hcHBlbmRUbyhzKSk6KGQuYXBwZW5kVG8oZShcImJvZHlcIikpLGQuY3NzKHttYXJnaW46MCxwYWRkaW5nOjAsZGlzcGxheTpcImJsb2NrXCIscG9zaXRpb246XCJhYnNvbHV0ZVwiLGxlZnQ6XCItMjUwcHhcIn0pLC0xIT1uYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKFwiTVNJRSBcIik/cy5hdHRyKFwiZm9yXCIsaSk6cy5jbGljayhmdW5jdGlvbigpe3UuY2xpY2soKX0pKX1mdW5jdGlvbiBmKGEsdCl7cmV0dXJuIHRoaXMuc3RhdHVzYmFyPWUoXCI8ZGl2IGNsYXNzPSdhamF4LWZpbGUtdXBsb2FkLXN0YXR1c2Jhcic+PC9kaXY+XCIpLndpZHRoKHQuc3RhdHVzQmFyV2lkdGgpLHRoaXMucHJldmlldz1lKFwiPGltZyBjbGFzcz0nYWpheC1maWxlLXVwbG9hZC1wcmV2aWV3JyAvPlwiKS53aWR0aCh0LnByZXZpZXdXaWR0aCkuaGVpZ2h0KHQucHJldmlld0hlaWdodCkuYXBwZW5kVG8odGhpcy5zdGF0dXNiYXIpLmhpZGUoKSx0aGlzLmZpbGVuYW1lPWUoXCI8ZGl2IGNsYXNzPSdhamF4LWZpbGUtdXBsb2FkLWZpbGVuYW1lJz48L2Rpdj5cIikuYXBwZW5kVG8odGhpcy5zdGF0dXNiYXIpLHRoaXMucHJvZ3Jlc3NEaXY9ZShcIjxkaXYgY2xhc3M9J2FqYXgtZmlsZS11cGxvYWQtcHJvZ3Jlc3MnPlwiKS5hcHBlbmRUbyh0aGlzLnN0YXR1c2JhcikuaGlkZSgpLHRoaXMucHJvZ3Jlc3NiYXI9ZShcIjxkaXYgY2xhc3M9J2FqYXgtZmlsZS11cGxvYWQtYmFyJz48L2Rpdj5cIikuYXBwZW5kVG8odGhpcy5wcm9ncmVzc0RpdiksdGhpcy5hYm9ydD1lKFwiPGRpdj5cIit0LmFib3J0U3RyK1wiPC9kaXY+XCIpLmFwcGVuZFRvKHRoaXMuc3RhdHVzYmFyKS5oaWRlKCksdGhpcy5jYW5jZWw9ZShcIjxkaXY+XCIrdC5jYW5jZWxTdHIrXCI8L2Rpdj5cIikuYXBwZW5kVG8odGhpcy5zdGF0dXNiYXIpLmhpZGUoKSx0aGlzLmRvbmU9ZShcIjxkaXY+XCIrdC5kb25lU3RyK1wiPC9kaXY+XCIpLmFwcGVuZFRvKHRoaXMuc3RhdHVzYmFyKS5oaWRlKCksdGhpcy5kb3dubG9hZD1lKFwiPGRpdj5cIit0LmRvd25sb2FkU3RyK1wiPC9kaXY+XCIpLmFwcGVuZFRvKHRoaXMuc3RhdHVzYmFyKS5oaWRlKCksdGhpcy5kZWw9ZShcIjxkaXY+XCIrdC5kZWxldGVsU3RyK1wiPC9kaXY+XCIpLmFwcGVuZFRvKHRoaXMuc3RhdHVzYmFyKS5oaWRlKCksdGhpcy5hYm9ydC5hZGRDbGFzcyhcImFqYXgtZmlsZS11cGxvYWQtcmVkXCIpLHRoaXMuZG9uZS5hZGRDbGFzcyhcImFqYXgtZmlsZS11cGxvYWQtZ3JlZW5cIiksdGhpcy5kb3dubG9hZC5hZGRDbGFzcyhcImFqYXgtZmlsZS11cGxvYWQtZ3JlZW5cIiksdGhpcy5jYW5jZWwuYWRkQ2xhc3MoXCJhamF4LWZpbGUtdXBsb2FkLXJlZFwiKSx0aGlzLmRlbC5hZGRDbGFzcyhcImFqYXgtZmlsZS11cGxvYWQtcmVkXCIpLHRoaXN9ZnVuY3Rpb24gbShhLHQpe3ZhciByPW51bGw7cmV0dXJuIHI9dC5jdXN0b21Qcm9ncmVzc0Jhcj9uZXcgdC5jdXN0b21Qcm9ncmVzc0JhcihhLHQpOm5ldyBmKGEsdCksci5hYm9ydC5hZGRDbGFzcyhhLmZvcm1Hcm91cCksci5hYm9ydC5hZGRDbGFzcyh0LmFib3J0QnV0dG9uQ2xhc3MpLHIuY2FuY2VsLmFkZENsYXNzKGEuZm9ybUdyb3VwKSxyLmNhbmNlbC5hZGRDbGFzcyh0LmNhbmNlbEJ1dHRvbkNsYXNzKSx0LmV4dHJhSFRNTCYmKHIuZXh0cmFIVE1MPWUoXCI8ZGl2IGNsYXNzPSdleHRyYWh0bWwnPlwiK3QuZXh0cmFIVE1MKCkrXCI8L2Rpdj5cIikuaW5zZXJ0QWZ0ZXIoci5maWxlbmFtZSkpLGUoYS5jb250YWluZXIpLmFwcGVuZChyLnN0YXR1c2Jhcikscn1mdW5jdGlvbiB2KHQsbyxzLGwsbixkKXt2YXIgaD17Y2FjaGU6ITEsY29udGVudFR5cGU6ITEscHJvY2Vzc0RhdGE6ITEsZm9yY2VTeW5jOiExLHR5cGU6by5tZXRob2QsZGF0YTpvLmZvcm1EYXRhLGZvcm1EYXRhOm8uZmlsZURhdGEsZGF0YVR5cGU6by5yZXR1cm5UeXBlLGJlZm9yZVN1Ym1pdDpmdW5jdGlvbihhLHIsZCl7aWYoMCE9by5vblN1Ym1pdC5jYWxsKHRoaXMsbCkpe2lmKG8uZHluYW1pY0Zvcm1EYXRhKXt2YXIgdT1pKG8uZHluYW1pY0Zvcm1EYXRhKCkpO2lmKHUpZm9yKHZhciBoPTA7aDx1Lmxlbmd0aDtoKyspdVtoXSYmKHZvaWQgMCE9by5maWxlRGF0YT9kLmZvcm1EYXRhLmFwcGVuZCh1W2hdWzBdLHVbaF1bMV0pOmQuZGF0YVt1W2hdWzBdXT11W2hdWzFdKX1yZXR1cm4gby5leHRyYUhUTUwmJmUocy5leHRyYUhUTUwpLmZpbmQoXCJpbnB1dCxzZWxlY3QsdGV4dGFyZWFcIikuZWFjaChmdW5jdGlvbigpe3ZvaWQgMCE9by5maWxlRGF0YT9kLmZvcm1EYXRhLmFwcGVuZChlKHRoaXMpLmF0dHIoXCJuYW1lXCIpLGUodGhpcykudmFsKCkpOmQuZGF0YVtlKHRoaXMpLmF0dHIoXCJuYW1lXCIpXT1lKHRoaXMpLnZhbCgpfSksITB9cmV0dXJuIHMuc3RhdHVzYmFyLmFwcGVuZChcIjxkaXYgY2xhc3M9J1wiK28uZXJyb3JDbGFzcytcIic+XCIrby51cGxvYWRFcnJvclN0citcIjwvZGl2PlwiKSxzLmNhbmNlbC5zaG93KCksdC5yZW1vdmUoKSxzLmNhbmNlbC5jbGljayhmdW5jdGlvbigpe3gucG9wKCkscChuLGwpLHMuc3RhdHVzYmFyLnJlbW92ZSgpLG8ub25DYW5jZWwuY2FsbChuLGwscyksbi5zZWxlY3RlZEZpbGVzLT1sLmxlbmd0aCxjKG8sbil9KSwhMX0sYmVmb3JlU2VuZDpmdW5jdGlvbihlKXtzLnByb2dyZXNzRGl2LnNob3coKSxzLmNhbmNlbC5oaWRlKCkscy5kb25lLmhpZGUoKSxvLnNob3dBYm9ydCYmKHMuYWJvcnQuc2hvdygpLHMuYWJvcnQuY2xpY2soZnVuY3Rpb24oKXtwKG4sbCksZS5hYm9ydCgpLG4uc2VsZWN0ZWRGaWxlcy09bC5sZW5ndGh9KSkscy5wcm9ncmVzc2Jhci53aWR0aChhLmZvcm1kYXRhP1wiMSVcIjpcIjUlXCIpfSx1cGxvYWRQcm9ncmVzczpmdW5jdGlvbihlLGEsdCxyKXtyPjk4JiYocj05OCk7dmFyIGk9citcIiVcIjtyPjEmJnMucHJvZ3Jlc3NiYXIud2lkdGgoaSksby5zaG93UHJvZ3Jlc3MmJihzLnByb2dyZXNzYmFyLmh0bWwoaSkscy5wcm9ncmVzc2Jhci5jc3MoXCJ0ZXh0LWFsaWduXCIsXCJjZW50ZXJcIikpfSxzdWNjZXNzOmZ1bmN0aW9uKGEscixpKXtpZihzLmNhbmNlbC5yZW1vdmUoKSxELnBvcCgpLFwianNvblwiPT1vLnJldHVyblR5cGUmJlwib2JqZWN0XCI9PWUudHlwZShhKSYmYS5oYXNPd25Qcm9wZXJ0eShvLmN1c3RvbUVycm9yS2V5U3RyKSl7cy5hYm9ydC5oaWRlKCk7dmFyIGQ9YVtvLmN1c3RvbUVycm9yS2V5U3RyXTtyZXR1cm4gby5vbkVycm9yLmNhbGwodGhpcyxsLDIwMCxkLHMpLG8uc2hvd1N0YXR1c0FmdGVyRXJyb3I/KHMucHJvZ3Jlc3NEaXYuaGlkZSgpLHMuc3RhdHVzYmFyLmFwcGVuZChcIjxzcGFuIGNsYXNzPSdcIitvLmVycm9yQ2xhc3MrXCInPkVSUk9SOiBcIitkK1wiPC9zcGFuPlwiKSk6KHMuc3RhdHVzYmFyLmhpZGUoKSxzLnN0YXR1c2Jhci5yZW1vdmUoKSksbi5zZWxlY3RlZEZpbGVzLT1sLmxlbmd0aCx2b2lkIHQucmVtb3ZlKCl9bi5yZXNwb25zZXMucHVzaChhKSxzLnByb2dyZXNzYmFyLndpZHRoKFwiMTAwJVwiKSxvLnNob3dQcm9ncmVzcyYmKHMucHJvZ3Jlc3NiYXIuaHRtbChcIjEwMCVcIikscy5wcm9ncmVzc2Jhci5jc3MoXCJ0ZXh0LWFsaWduXCIsXCJjZW50ZXJcIikpLHMuYWJvcnQuaGlkZSgpLG8ub25TdWNjZXNzLmNhbGwodGhpcyxsLGEsaSxzKSxvLnNob3dTdGF0dXNBZnRlclN1Y2Nlc3M/KG8uc2hvd0RvbmU/KHMuZG9uZS5zaG93KCkscy5kb25lLmNsaWNrKGZ1bmN0aW9uKCl7cy5zdGF0dXNiYXIuaGlkZShcInNsb3dcIikscy5zdGF0dXNiYXIucmVtb3ZlKCl9KSk6cy5kb25lLmhpZGUoKSxvLnNob3dEZWxldGU/KHMuZGVsLnNob3coKSxzLmRlbC5jbGljayhmdW5jdGlvbigpe3Muc3RhdHVzYmFyLmhpZGUoKS5yZW1vdmUoKSxvLmRlbGV0ZUNhbGxiYWNrJiZvLmRlbGV0ZUNhbGxiYWNrLmNhbGwodGhpcyxhLHMpLG4uc2VsZWN0ZWRGaWxlcy09bC5sZW5ndGgsYyhvLG4pfSkpOnMuZGVsLmhpZGUoKSk6KHMuc3RhdHVzYmFyLmhpZGUoXCJzbG93XCIpLHMuc3RhdHVzYmFyLnJlbW92ZSgpKSxvLnNob3dEb3dubG9hZCYmKHMuZG93bmxvYWQuc2hvdygpLHMuZG93bmxvYWQuY2xpY2soZnVuY3Rpb24oKXtvLmRvd25sb2FkQ2FsbGJhY2smJm8uZG93bmxvYWRDYWxsYmFjayhhKX0pKSx0LnJlbW92ZSgpfSxlcnJvcjpmdW5jdGlvbihlLGEscil7cy5jYW5jZWwucmVtb3ZlKCksRC5wb3AoKSxzLmFib3J0LmhpZGUoKSxcImFib3J0XCI9PWUuc3RhdHVzVGV4dD8ocy5zdGF0dXNiYXIuaGlkZShcInNsb3dcIikucmVtb3ZlKCksYyhvLG4pKTooby5vbkVycm9yLmNhbGwodGhpcyxsLGEscixzKSxvLnNob3dTdGF0dXNBZnRlckVycm9yPyhzLnByb2dyZXNzRGl2LmhpZGUoKSxzLnN0YXR1c2Jhci5hcHBlbmQoXCI8c3BhbiBjbGFzcz0nXCIrby5lcnJvckNsYXNzK1wiJz5FUlJPUjogXCIrcitcIjwvc3Bhbj5cIikpOihzLnN0YXR1c2Jhci5oaWRlKCkscy5zdGF0dXNiYXIucmVtb3ZlKCkpLG4uc2VsZWN0ZWRGaWxlcy09bC5sZW5ndGgpLHQucmVtb3ZlKCl9fTtvLnNob3dQcmV2aWV3JiZudWxsIT1kJiZcImltYWdlXCI9PWQudHlwZS50b0xvd2VyQ2FzZSgpLnNwbGl0KFwiL1wiKS5zaGlmdCgpJiZ1KGQscy5wcmV2aWV3KSxvLmF1dG9TdWJtaXQ/by5zZXF1ZW50aWFsPyh0LmFqYXhGb3JtKGgpLHgucHVzaCh0KSxyKCkpOnQuYWpheFN1Ym1pdChoKTooby5zaG93Q2FuY2VsJiYocy5jYW5jZWwuc2hvdygpLHMuY2FuY2VsLmNsaWNrKGZ1bmN0aW9uKCl7eC5wb3AoKSxwKG4sbCksdC5yZW1vdmUoKSxzLnN0YXR1c2Jhci5yZW1vdmUoKSxvLm9uQ2FuY2VsLmNhbGwobixsLHMpLG4uc2VsZWN0ZWRGaWxlcy09bC5sZW5ndGgsYyhvLG4pfSkpLHQuYWpheEZvcm0oaCkpfXZhciB3PWUuZXh0ZW5kKHt1cmw6XCJcIixtZXRob2Q6XCJQT1NUXCIsZW5jdHlwZTpcIm11bHRpcGFydC9mb3JtLWRhdGFcIixyZXR1cm5UeXBlOm51bGwsYWxsb3dEdXBsaWNhdGVzOiEwLGR1cGxpY2F0ZVN0cmljdDohMSxhbGxvd2VkVHlwZXM6XCIqXCIsYWNjZXB0RmlsZXM6XCIqXCIsZmlsZU5hbWU6XCJmaWxlXCIsZm9ybURhdGE6ITEsZHluYW1pY0Zvcm1EYXRhOiExLG1heEZpbGVTaXplOi0xLG1heEZpbGVDb3VudDotMSxtdWx0aXBsZTohMCxkcmFnRHJvcDohMCxhdXRvU3VibWl0OiEwLHNob3dDYW5jZWw6ITAsc2hvd0Fib3J0OiEwLHNob3dEb25lOiExLHNob3dEZWxldGU6ITEsc2hvd0Vycm9yOiEwLHNob3dTdGF0dXNBZnRlclN1Y2Nlc3M6ITAsc2hvd1N0YXR1c0FmdGVyRXJyb3I6ITAsc2hvd0ZpbGVDb3VudGVyOiEwLGZpbGVDb3VudGVyU3R5bGU6XCIpLiBcIixzaG93RmlsZVNpemU6ITAsc2hvd1Byb2dyZXNzOiExLG5lc3RlZEZvcm1zOiEwLHNob3dEb3dubG9hZDohMSxvbkxvYWQ6ZnVuY3Rpb24oKXt9LG9uU2VsZWN0OmZ1bmN0aW9uKCl7cmV0dXJuITB9LG9uU3VibWl0OmZ1bmN0aW9uKCl7fSxvblN1Y2Nlc3M6ZnVuY3Rpb24oKXt9LG9uRXJyb3I6ZnVuY3Rpb24oKXt9LG9uQ2FuY2VsOmZ1bmN0aW9uKCl7fSxkb3dubG9hZENhbGxiYWNrOiExLGRlbGV0ZUNhbGxiYWNrOiExLGFmdGVyVXBsb2FkQWxsOiExLHNlcmlhbGl6ZTohMCxzZXF1ZW50aWFsOiExLHNlcXVlbnRpYWxDb3VudDoyLGN1c3RvbVByb2dyZXNzQmFyOiExLGFib3J0QnV0dG9uQ2xhc3M6XCJhamF4LWZpbGUtdXBsb2FkLWFib3J0XCIsY2FuY2VsQnV0dG9uQ2xhc3M6XCJhamF4LWZpbGUtdXBsb2FkLWNhbmNlbFwiLGRyYWdEcm9wQ29udGFpbmVyQ2xhc3M6XCJhamF4LXVwbG9hZC1kcmFnZHJvcFwiLGRyYWdEcm9wSG92ZXJDbGFzczpcInN0YXRlLWhvdmVyXCIsZXJyb3JDbGFzczpcImFqYXgtZmlsZS11cGxvYWQtZXJyb3JcIix1cGxvYWRCdXR0b25DbGFzczpcImFqYXgtZmlsZS11cGxvYWRcIixkcmFnRHJvcFN0cjpcIjxzcGFuPjxiPkRyYWcgJiBEcm9wIEZpbGVzPC9iPjwvc3Bhbj5cIix1cGxvYWRTdHI6XCJVcGxvYWRcIixhYm9ydFN0cjpcIkFib3J0XCIsY2FuY2VsU3RyOlwiQ2FuY2VsXCIsZGVsZXRlbFN0cjpcIkRlbGV0ZVwiLGRvbmVTdHI6XCJEb25lXCIsbXVsdGlEcmFnRXJyb3JTdHI6XCJNdWx0aXBsZSBGaWxlIERyYWcgJiBEcm9wIGlzIG5vdCBhbGxvd2VkLlwiLGV4dEVycm9yU3RyOlwiaXMgbm90IGFsbG93ZWQuIEFsbG93ZWQgZXh0ZW5zaW9uczogXCIsZHVwbGljYXRlRXJyb3JTdHI6XCJpcyBub3QgYWxsb3dlZC4gRmlsZSBhbHJlYWR5IGV4aXN0cy5cIixzaXplRXJyb3JTdHI6XCJpcyBub3QgYWxsb3dlZC4gQWxsb3dlZCBNYXggc2l6ZTogXCIsdXBsb2FkRXJyb3JTdHI6XCJVcGxvYWQgaXMgbm90IGFsbG93ZWRcIixtYXhGaWxlQ291bnRFcnJvclN0cjpcIiBpcyBub3QgYWxsb3dlZC4gTWF4aW11bSBhbGxvd2VkIGZpbGVzIGFyZTpcIixkb3dubG9hZFN0cjpcIkRvd25sb2FkXCIsY3VzdG9tRXJyb3JLZXlTdHI6XCJqcXVlcnktdXBsb2FkLWZpbGUtZXJyb3JcIixzaG93UXVldWVEaXY6ITEsc3RhdHVzQmFyV2lkdGg6NDAwLGRyYWdkcm9wV2lkdGg6NDAwLHNob3dQcmV2aWV3OiExLHByZXZpZXdIZWlnaHQ6XCJhdXRvXCIscHJldmlld1dpZHRoOlwiMTAwJVwiLGV4dHJhSFRNTDohMX0sdCk7dGhpcy5maWxlQ291bnRlcj0xLHRoaXMuc2VsZWN0ZWRGaWxlcz0wO3ZhciBnPVwiYWpheC1maWxlLXVwbG9hZC1cIisobmV3IERhdGUpLmdldFRpbWUoKTt0aGlzLmZvcm1Hcm91cD1nLHRoaXMuZXJyb3JMb2c9ZShcIjxkaXY+PC9kaXY+XCIpLHRoaXMucmVzcG9uc2VzPVtdLHRoaXMuZXhpc3RpbmdGaWxlTmFtZXM9W10sYS5mb3JtZGF0YXx8KHcuZHJhZ0Ryb3A9ITEpLGEuZm9ybWRhdGF8fCh3Lm11bHRpcGxlPSExKSxlKHRoaXMpLmh0bWwoXCJcIik7dmFyIEM9dGhpcyxiPWUoXCI8ZGl2PlwiK3cudXBsb2FkU3RyK1wiPC9kaXY+XCIpO2UoYikuYWRkQ2xhc3Mody51cGxvYWRCdXR0b25DbGFzcyksZnVuY3Rpb24gRigpe2lmKGUuZm4uYWpheEZvcm0pe2lmKHcuZHJhZ0Ryb3Ape3ZhciBhPWUoJzxkaXYgY2xhc3M9XCInK3cuZHJhZ0Ryb3BDb250YWluZXJDbGFzcysnXCIgc3R5bGU9XCJ2ZXJ0aWNhbC1hbGlnbjp0b3A7XCI+PC9kaXY+Jykud2lkdGgody5kcmFnZHJvcFdpZHRoKTtlKEMpLmFwcGVuZChhKSxlKGEpLmFwcGVuZChiKSxlKGEpLmFwcGVuZChlKHcuZHJhZ0Ryb3BTdHIpKSxvKEMsdyxhKX1lbHNlIGUoQykuYXBwZW5kKGIpO2UoQykuYXBwZW5kKEMuZXJyb3JMb2cpLEMuY29udGFpbmVyPXcuc2hvd1F1ZXVlRGl2P2UoXCIjXCIrdy5zaG93UXVldWVEaXYpOmUoXCI8ZGl2IGNsYXNzPSdhamF4LWZpbGUtdXBsb2FkLWNvbnRhaW5lcic+PC9kaXY+XCIpLmluc2VydEFmdGVyKGUoQykpLHcub25Mb2FkLmNhbGwodGhpcyxDKSxoKEMsZyx3LGIpfWVsc2Ugd2luZG93LnNldFRpbWVvdXQoRiwxMCl9KCksdGhpcy5zdGFydFVwbG9hZD1mdW5jdGlvbigpe2UoXCIuXCIrdGhpcy5mb3JtR3JvdXApLmVhY2goZnVuY3Rpb24oKXtlKHRoaXMpLmlzKFwiZm9ybVwiKSYmeC5wdXNoKGUodGhpcykpfSkscigpfSx0aGlzLmdldEZpbGVDb3VudD1mdW5jdGlvbigpe3JldHVybiBDLnNlbGVjdGVkRmlsZXN9LHRoaXMuc3RvcFVwbG9hZD1mdW5jdGlvbigpe2UoXCIuXCIrdy5hYm9ydEJ1dHRvbkNsYXNzKS5lYWNoKGZ1bmN0aW9uKCl7ZSh0aGlzKS5oYXNDbGFzcyhDLmZvcm1Hcm91cCkmJmUodGhpcykuY2xpY2soKX0pLGUoXCIuXCIrdy5jYW5jZWxCdXR0b25DbGFzcykuZWFjaChmdW5jdGlvbigpe2UodGhpcykuaGFzQ2xhc3MoQy5mb3JtR3JvdXApJiZlKHRoaXMpLmNsaWNrKCl9KX0sdGhpcy5jYW5jZWxBbGw9ZnVuY3Rpb24oKXtlKFwiLlwiK3cuY2FuY2VsQnV0dG9uQ2xhc3MpLmVhY2goZnVuY3Rpb24oKXtlKHRoaXMpLmhhc0NsYXNzKEMuZm9ybUdyb3VwKSYmZSh0aGlzKS5jbGljaygpfSl9LHRoaXMudXBkYXRlPWZ1bmN0aW9uKGEpe3c9ZS5leHRlbmQodyxhKX0sdGhpcy5yZXNldD1mdW5jdGlvbihlKXtDLmZpbGVDb3VudGVyPTEsQy5zZWxlY3RlZEZpbGVzPTAsQy5lcnJvckxvZy5odG1sKFwiXCIpLDAhPWUmJkMuY29udGFpbmVyLmh0bWwoXCJcIil9LHRoaXMucmVtb3ZlPWZ1bmN0aW9uKCl7Qy5jb250YWluZXIuaHRtbChcIlwiKSxlKEMpLnJlbW92ZSgpfSx0aGlzLmNyZWF0ZVByb2dyZXNzPWZ1bmN0aW9uKGUpe3ZhciBhPW5ldyBtKHRoaXMsdyk7YS5wcm9ncmVzc0Rpdi5zaG93KCksYS5wcm9ncmVzc2Jhci53aWR0aChcIjEwMCVcIik7dmFyIHQ9XCJcIjt0PXcuc2hvd0ZpbGVDb3VudGVyP0MuZmlsZUNvdW50ZXIrdy5maWxlQ291bnRlclN0eWxlK2U6ZSxhLmZpbGVuYW1lLmh0bWwodCksQy5maWxlQ291bnRlcisrLEMuc2VsZWN0ZWRGaWxlcysrLHcuc2hvd1ByZXZpZXcmJihhLnByZXZpZXcuYXR0cihcInNyY1wiLHcuZmlsZW5hbWUpLGEucHJldmlldy5zaG93KCkpLHcuc2hvd0Rvd25sb2FkJiYoYS5kb3dubG9hZC5zaG93KCksYS5kb3dubG9hZC5jbGljayhmdW5jdGlvbigpe3cuZG93bmxvYWRDYWxsYmFjayYmdy5kb3dubG9hZENhbGxiYWNrLmNhbGwoQyxbZV0pfSkpLGEuZGVsLnNob3coKSxhLmRlbC5jbGljayhmdW5jdGlvbigpe2Euc3RhdHVzYmFyLmhpZGUoKS5yZW1vdmUoKTt2YXIgdD1bZV07dy5kZWxldGVDYWxsYmFjayYmdy5kZWxldGVDYWxsYmFjay5jYWxsKHRoaXMsdCxhKSxDLnNlbGVjdGVkRmlsZXMtPTEsYyh3LEMpfSl9LHRoaXMuZ2V0UmVzcG9uc2VzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVzcG9uc2VzfTt2YXIgeD1bXSxEPVtdLFM9ITE7cmV0dXJuIHRoaXN9fShqUXVlcnkpOyIsIi8qKlxuICogQ3JlYXRlZCBieSBQaHBTdG9ybVxuICogVXNlcjogZGFuaWVsZVxuICogRGF0ZTogMTcvMTIvMjBcbiAqIFRpbWU6IDA5OjI4XG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIHBhc3N3b3JkRXZlbnRzOiBmdW5jdGlvbiAoKXtcbiAgICAgICAgJChcIiN0b2dnbGVQYXNzd29yZExpbmtcIikub24oJ2NsaWNrJywgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZigkKCcjcGFzc3dvcmQnKS5hdHRyKFwidHlwZVwiKSA9PT0gXCJ0ZXh0XCIpe1xuICAgICAgICAgICAgICAgICQoJyNwYXNzd29yZCcpLmF0dHIoJ3R5cGUnLCAncGFzc3dvcmQnKTtcbiAgICAgICAgICAgICAgICAkKCcjdG9nZ2xlUGFzc3dvcmQnKS5hZGRDbGFzcyggXCJmYS1leWUtc2xhc2hcIiApO1xuICAgICAgICAgICAgICAgICQoJyN0b2dnbGVQYXNzd29yZCcpLnJlbW92ZUNsYXNzKCBcImZhLWV5ZVwiICk7XG4gICAgICAgICAgICB9ZWxzZSBpZigkKCcjcGFzc3dvcmQnKS5hdHRyKFwidHlwZVwiKSA9PT0gXCJwYXNzd29yZFwiKXtcbiAgICAgICAgICAgICAgICAkKCcjcGFzc3dvcmQnKS5hdHRyKCd0eXBlJywgJ3RleHQnKTtcbiAgICAgICAgICAgICAgICAkKCcjdG9nZ2xlUGFzc3dvcmQnKS5yZW1vdmVDbGFzcyggXCJmYS1leWUtc2xhc2hcIiApO1xuICAgICAgICAgICAgICAgICQoJyN0b2dnbGVQYXNzd29yZCcpLmFkZENsYXNzKCBcImZhLWV5ZVwiICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0sXG5cbiAgICBsb2dpblN1Ym1pdDogZnVuY3Rpb24gKG9wdHMpe1xuICAgICAgICBpZihvcHRzICYmIHR5cGVvZiBvcHRzLm9uQmVmb3JlU3VibWl0ID09PSBcImZ1bmN0aW9uXCIpIG9wdHMub25CZWZvcmVTdWJtaXQoKTtcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgICAgICQoXCIjbG9naW5cIikuY2xpY2soZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKCQoXCIjY29kaWNlY2xpZW50ZVwiKS52YWwoKSA9PT0gXCJcIiB8fCAkKFwiI3VzZXJuYW1lXCIpLnZhbCgpID09PSBcIlwiIHx8ICQoXCIjcGFzc3dvcmRcIikudmFsKCkgPT09IFwiXCIpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgICAgICAkLmFqYXgoe1xuICAgICAgICAgICAgICAgIHVybDogXCJhamF4LnBocD9vYmplY3Q9SVdVc2VyJnRpcG92aWV3PWxvZ2luJkpTT05cIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcInBvc3RcIixcbiAgICAgICAgICAgICAgICBkYXRhOiAkKFwiI2Zvcm1cIikuc2VyaWFsaXplKCksXG4gICAgICAgICAgICAgICAgZGF0YVR5cGU6IFwianNvblwiLFxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChqc29uKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGYubG9naW5PbkFqYXhTdWNjZXNzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGpzb246IGpzb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRzOiBvcHRzXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9LFxuXG4gICAgbG9naW5PbkFqYXhTdWNjZXNzOiBmdW5jdGlvbiAob3B0cyl7XG4gICAgICAgIGxldCBqc29uID0gb3B0cy5qc29uO1xuICAgICAgICBpZihvcHRzLm9wdHMgJiYgdHlwZW9mIG9wdHMub3B0cy5vblN1Y2Nlc3NDYWxsYmFjayA9PT0gXCJmdW5jdGlvblwiKSBvcHRzLm9wdHMub25TdWNjZXNzQ2FsbGJhY2soanNvbik7XG5cbiAgICAgICAgaWYgKCFqc29uLnJldCkge1xuICAgICAgICAgICAgYWxlcnQoJ0NyZWRlbnppYWxpIGVycmF0ZTogcml0ZW50YXJlPGJyPjxicj5JbnZhbGlkIFVzZXJuYW1lIG9yIHBhc3N3b3JkOiB0cnkgYWdhaW4nKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcGFnZWRlZmF1bHQgPSBqc29uLnBhZ2VkZWZhdWx0O1xuICAgICAgICBpZihqc29uLnVybCkgcGFnZWRlZmF1bHQgPSBqc29uLnVybDtcbiAgICAgICAgaWYoIXBhZ2VkZWZhdWx0KSBwYWdlZGVmYXVsdCA9IGRvY3VtZW50LmxvY2F0aW9uLmhyZWY7XG4gICAgICAgIGVsc2UgcGFnZWRlZmF1bHQgPSBcImluZGV4LnBocD9cIiArIHBhZ2VkZWZhdWx0O1xuICAgICAgICBpZihzdHJwb3MocGFnZWRlZmF1bHQsIFwiP1wiKSA+IDApIHBhZ2VkZWZhdWx0ICs9IFwiJl9fc2NrX189MVwiO1xuICAgICAgICBlbHNlIHBhZ2VkZWZhdWx0ICs9IFwiP19fc2NrX189MVwiO1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHBhZ2VkZWZhdWx0O1xuICAgIH0sXG5cbiAgICBvcGVuTW9kYWxSZWN1cGVyb1B3ZDogZnVuY3Rpb24gKCl7XG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgICAgICAkKFwiI2xvc3QtcGFzc3dvcmQtbGlua1wiKS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpe1xuICAgICAgICAgICAgJChcIiNyZWN1cGVyby1wd2QtYnV0dG9uXCIpLnNob3coKTtcbiAgICAgICAgICAgICQoXCIjcmVjdXBlcm9fcHdkX3VzZXJuYW1lXCIpLnZhbChcIlwiKTtcbiAgICAgICAgICAgICQoXCIjcmVjdXBlcm8tcHdkLWJ1dHRvbiAuc3Bpbm5lci1ib3JkZXIsIC5sb2FkaW5nLXJlY3VwZXJvLXB3ZFwiKS5oaWRlKCk7XG4gICAgICAgICAgICAkKFwiI3NwYW4tcmVjdXBlcm8tcHdkLWJ1dHRvblwiKS5zaG93KCk7XG4gICAgICAgICAgICBjb25zdCAkYnV0dG9uID0gJChcIiNyZWN1cGVyby1wd2QtYnV0dG9uXCIpO1xuICAgICAgICAgICAgJGJ1dHRvbi5wcm9wKFwiZGlzYWJsZWRcIiwgZmFsc2UpO1xuICAgICAgICAgICAgJGJ1dHRvbi5vZmYoKTtcbiAgICAgICAgICAgICRidXR0b24ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKXtcbiAgICAgICAgICAgICAgICBzZWxmLmdldEVtYWlsUmVjdXBlcm9QYXNzd29yZCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAkYnV0dG9uLnNob3coKTtcbiAgICAgICAgICAgICQoXCIjcmVjdXBlcm8tcHdkLW91dHB1dC1hY3Rpb25zIC5vdXRwdXQtYWN0aW9uc1wiKS5odG1sKFwiXCIpO1xuICAgICAgICAgICAgJChcIiNyZWN1cGVyby1wd2Qtb3V0cHV0LWFjdGlvbnNcIikuaGlkZSgpO1xuXG4gICAgICAgICAgICAkKFwiI3BvcHVwLXJlY3VwZXJvLXB3ZFwiKS5tb2RhbChcInNob3dcIik7XG4gICAgICAgIH0pXG4gICAgfSxcblxuICAgIGdldEVtYWlsUmVjdXBlcm9QYXNzd29yZDogZnVuY3Rpb24gKCl7XG4gICAgICAgIGNvbnN0ICRmb3JtID0gJChcIiNyZWN1cGVyby1wd2QtZm9ybVwiKTtcbiAgICAgICAgY29uc3QgZm9ybSA9ICRmb3JtWzBdO1xuICAgICAgICBjb25zdCB2YWxpZGF0aW9uID0gZm9ybS5jaGVja1ZhbGlkaXR5KCk7XG4gICAgICAgIGZvcm0uY2xhc3NMaXN0LmFkZCgnd2FzLXZhbGlkYXRlZCcpO1xuXG4gICAgICAgIGlmKCF2YWxpZGF0aW9uKSByZXR1cm47XG5cbiAgICAgICAgJChcIiNzcGFuLXJlY3VwZXJvLXB3ZC1idXR0b25cIikuaGlkZSgpO1xuICAgICAgICAkKFwiI3JlY3VwZXJvLXB3ZC1idXR0b24gLnNwaW5uZXItYm9yZGVyLCAubG9hZGluZy1yZWN1cGVyby1wd2RcIikuc2hvdygpO1xuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICAgICAgY29uc3QgY29tcGFueSA9ICQoXCIjcmVjdXBlcm9fcHdkX2NvbXBhbnlcIikudmFsKCk7XG4gICAgICAgIGNvbnN0IHVzZXJuYW1lID0gJChcIiNyZWN1cGVyb19wd2RfdXNlcm5hbWVcIikudmFsKCk7XG5cbiAgICAgICAgJC5hamF4KHtcbiAgICAgICAgICAgIHVybDogXCIvcmVjdXBlcm8tcGFzc3dvcmRcIixcbiAgICAgICAgICAgIHR5cGU6IFwicG9zdFwiLFxuICAgICAgICAgICAgZGF0YVR5cGU6IFwianNvblwiLFxuICAgICAgICAgICAgZGF0YToge3RpcG92aWV3OiBcImdldEVtYWlsUmVjdXBlcm9Qd2RcIiwgY29tcGFueTogY29tcGFueSwgdXNlcm5hbWU6IHVzZXJuYW1lfSxcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChqc29uKXtcbiAgICAgICAgICAgICAgICAkKFwiI3JlY3VwZXJvLXB3ZC1vdXRwdXQtYWN0aW9ucyAub3V0cHV0LWFjdGlvbnNcIikuaHRtbChqc29uLmRhdGEubXNnKTtcbiAgICAgICAgICAgICAgICAkKFwiI3JlY3VwZXJvLXB3ZC1vdXRwdXQtYWN0aW9uc1wiKS5zaG93KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgJGJ1dHRvbiA9ICQoXCIjcmVjdXBlcm8tcHdkLWJ1dHRvblwiKTtcbiAgICAgICAgICAgICAgICBpZighanNvbi5kYXRhLnJldCl7XG4gICAgICAgICAgICAgICAgICAgICRidXR0b24ucHJvcChcImRpc2FibGVkXCIsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAkYnV0dG9uLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICQoXCIjcmVjdXBlcm8tcHdkLWJ1dHRvbiAuc3Bpbm5lci1ib3JkZXIsIC5sb2FkaW5nLXJlY3VwZXJvLXB3ZFwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgJChcIiNzcGFuLXJlY3VwZXJvLXB3ZC1idXR0b25cIikuc2hvdygpO1xuICAgICAgICAgICAgICAgICRidXR0b24uc2hvdygpO1xuICAgICAgICAgICAgICAgICRidXR0b24ub2ZmKCk7XG4gICAgICAgICAgICAgICAgJGJ1dHRvbi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpe1xuICAgICAgICAgICAgICAgICAgICBzZWxmLnNlbmRFbWFpbFJlY3VwZXJvUGFzc3dvcmQoY29tcGFueSwgdXNlcm5hbWUpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgfSxcblxuICAgIHNlbmRFbWFpbFJlY3VwZXJvUGFzc3dvcmQ6IGZ1bmN0aW9uKGNvbXBhbnksIHVzZXJuYW1lKXtcbiAgICAgICAgJChcIiNzcGFuLXJlY3VwZXJvLXB3ZC1idXR0b25cIikuaGlkZSgpO1xuICAgICAgICAkKFwiI3JlY3VwZXJvLXB3ZC1idXR0b24gLnNwaW5uZXItYm9yZGVyLCAubG9hZGluZy1yZWN1cGVyby1wd2RcIikuc2hvdygpO1xuXG4gICAgICAgICQuYWpheCh7XG4gICAgICAgICAgICB1cmw6IFwiL3JlY3VwZXJvLXBhc3N3b3JkXCIsXG4gICAgICAgICAgICB0eXBlOiBcInBvc3RcIixcbiAgICAgICAgICAgIGRhdGFUeXBlOiBcImpzb25cIixcbiAgICAgICAgICAgIGRhdGE6IHt0aXBvdmlldzogXCJzZW5kRW1haWxSZWN1cGVyb1B3ZFwiLCBjb21wYW55OiBjb21wYW55LCB1c2VybmFtZTogdXNlcm5hbWV9LFxuICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKGpzb24pe1xuICAgICAgICAgICAgICAgICQoXCIjcmVjdXBlcm8tcHdkLW91dHB1dC1hY3Rpb25zIC5vdXRwdXQtYWN0aW9uc1wiKS5odG1sKGpzb24uZGF0YS5tc2cgPyBqc29uLmRhdGEubXNnIDoganNvbi5kYXRhLm91dCk7XG4gICAgICAgICAgICAgICAgJChcIiNyZWN1cGVyby1wd2Qtb3V0cHV0LWFjdGlvbnNcIikuc2hvdygpO1xuICAgICAgICAgICAgICAgIGlmKCFqc29uLm1zZykge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3JlY3VwZXJvLXB3ZC1idXR0b25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJChcIiNyZWN1cGVyby1wd2QtYnV0dG9uIC5zcGlubmVyLWJvcmRlciwgLmxvYWRpbmctcmVjdXBlcm8tcHdkXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAkKFwiI3NwYW4tcmVjdXBlcm8tcHdkLWJ1dHRvblwiKS5zaG93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgfSxcblxuICAgIGNoZWNrRW1haWxSZWN1cGVyb1B3ZDogZnVuY3Rpb24gKCl7XG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgICAgICBnZXRIdG1sRnJvbUFqYXgoe1xuICAgICAgICAgICAgdXJsOiBcImFqYXgucGhwP0pTT05cIixcbiAgICAgICAgICAgIGRpdm5hbWU6IFwiZGlhbG9nX3JlY3VwZXJvX3Bhc3N3b3JkXCIsXG4gICAgICAgICAgICBkYXRhOiB7b2JqZWN0OiBcIklXVXNlclwiLCB0aXBvdmlldzogXCJ2aWV3RGlhbG9nU2V0RW1haWxGb3JQd2RSZXNldFwifSxcbiAgICAgICAgICAgIG9uU3VjY2VzczogZnVuY3Rpb24gKCl7XG4gICAgICAgICAgICAgICAgZGlhbG9nU2hvdyhcImRpYWxvZ19yZWN1cGVyb19wYXNzd29yZFwiLCBmdW5jdGlvbiAocmV0KXtcbiAgICAgICAgICAgICAgICAgICAgaWYoIXJldCkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgICAgICQuYWpheCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IFwidmlldy5waHBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFUeXBlOiBcImpzb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwicG9zdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge09QX0ZST01fQUpBWDoxLCBKU09OOiAxLCBvYmplY3Q6IFwiSVdVc2VyXCIsIHRpcG92aWV3OiBcInNhdmVFbWFpbFJlY3VwZXJvUHdkXCIsIGVtYWlsOiAkKFwiI2VtYWlsX2Zvcl9wd2RfcmVzZXRcIikudmFsKCl9LFxuICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKGpzb24pe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFqYXhTdWJtaXRPblN1Y2Nlc3NGdW5jdGlvbihqc29uLCB0cnVlKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFqc29uLnJldCkgc2VsZi5jaGVja0VtYWlsUmVjdXBlcm9Qd2QoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cbn0iLCIvKipcbiAqIENyZWF0ZWQgYnkgUGhwU3Rvcm1cbiAqIFVzZXI6IGRhbmllbGVcbiAqIERhdGU6IDE1LzA1LzIwXG4gKiBUaW1lOiAxMi41MlxuICovXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICAvKipcbiAgICAgKiBQcmVuZGUgaW4gaW5ncmVzc28gdW5hIGRhdGEgaW4gZm9ybWF0byBpdGEgZSBsYSB0cmFzZm9ybWEgaW4gamFwXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGRhdGFfaXRcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgICAqL1xuICAgIERhdGVfX2phcDogZnVuY3Rpb24gKGRhdGFfaXQpIHtcbiAgICAgICAgaWYoIWRhdGFfaXQpIHJldHVybiBcIlwiO1xuXG4gICAgICAgIHZhciBkYXRlX2Zvcm1hdD0kKFwiI0RQQ19ERUZBVUxUX0ZPUk1BVFwiKS52YWwoKTtcbiAgICAgICAgaWYoIGRhdGVfZm9ybWF0ID09PSBcInl5L21tL2RkXCIgKSByZXR1cm4gZGF0YV9pdDtcblxuICAgICAgICByZXR1cm4gbW9tZW50KGRhdGFfaXQsIGRhdGVfZm9ybWF0ID09PSBcImRkL21tL3l5XCIgPyBcIkREL01NL1lZWVlcIiA6IFwiTU0vREQvWVlZWVwiKS5mb3JtYXQoXCJZWVlZL01NL0REXCIpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBQcmVuZGUgaW4gaW5ncmVzc28gdW5hIGRhdGEgaW4gZm9ybWF0byBqYXAgZSBsYSB0cmFzZm9ybWEgaW4gaXRhXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGRhdGFfamFwXG4gICAgICogQHJldHVybnMge3N0cmluZ31cbiAgICAgKi9cbiAgICBEYXRlX19pdDogZnVuY3Rpb24gKGRhdGFfamFwKVxuICAgIHtcbiAgICAgICAgaWYoIWRhdGFfamFwKSByZXR1cm4gXCJcIjtcbiAgICAgICAgdmFyIGRhdGVfZm9ybWF0PSQoXCIjRFBDX0RFRkFVTFRfRk9STUFUXCIpLnZhbCgpO1xuICAgICAgICBpZiggZGF0ZV9mb3JtYXQgPT09IFwieXkvbW0vZGRcIiApIHJldHVybiBkYXRhX2phcDtcblxuICAgICAgICByZXR1cm4gbW9tZW50KGRhdGFfamFwLCBcIllZWVkvTU0vRERcIikuZm9ybWF0KGRhdGVfZm9ybWF0ID09PSBcImRkL21tL3l5XCIgPyBcIkREL01NL1lZWVlcIiA6IFwiTU0vREQvWVlZWVwiKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogcml0b3JuYSBsJ29yYSBjb3JyZW50ZSBpbiBmb3JtYXRvIEhILk1NXG4gICAgICogQHJldHVybnMge3N0cmluZ31cbiAgICAgKiBAY29uc3RydWN0b3JcbiAgICAgKi9cbiAgICBEYXRlX19PcmFOb3c6IGZ1bmN0aW9uKHZpZXdfc2Vjb25kaSlcbiAgICB7XG4gICAgICAgIHJldHVybiBtb21lbnQoKS5mb3JtYXQodmlld19zZWNvbmRpID8gXCJISC5tbS5zc1wiIDogXCJISC5tbVwiKTtcbiAgICB9LFxuXG4gICAgLy9yaXRvcm5hIGlsIGdpb3JubyBnaXVsaWFubyBhIDMgY2FyYXR0ZXJpIGZpc3NpLCBwYXNzYW5kbyB1bmEgZGF0YSBpbiBqYXBwXG4gICAgRGF0ZV9fZ2dpdWxpYW5vOiBmdW5jdGlvbihkYXRhX2phcCkge1xuICAgICAgICB2YXIgYWRlc3NvID0gbmV3IERhdGUoICAgIGRhdGFfamFwLnN1YnN0cigwLDQpLCAgIHBhcnNlSW50KGRhdGFfamFwLnN1YnN0cig1LDIpLDEwKS0xLCAgIGRhdGFfamFwLnN1YnN0cig4LDIpICAsNCwwLDAgKTtcbiAgICAgICAgdmFyIGFubm8gPSBhZGVzc28uZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgdmFyIGluaXppb2Fubm8gPSBuZXcgRGF0ZShhbm5vLCAwLCAwKTtcbiAgICAgICAgdmFyICBHRyA9IFN0cmluZyhNYXRoLmZsb29yKChhZGVzc28gLSBpbml6aW9hbm5vKSAvIDg2NDAwMDAwKSk7XG5cbiAgICAgICAgcmV0dXJuIHN0cl9wYWQoR0csIDMsIFwiMFwiLCBcIlNUUl9QQURfTEVGVFwiKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQWdnaXVuZ2UgYWxsYSBkYXRhX2phcCB1biBudW1lcm8gZGkgZ2lvcm5pLiBSZXN0aXR1aXNjZSB1bmEgZGF0YV9qYXBcbiAgICAgKiBAcGFyYW0gZGF0YV9qYXBcbiAgICAgKiBAcGFyYW0gbmdpb3JuaVxuICAgICAqIEBwYXJhbSBjb250YV9kYV9maW5lX21lc2VcbiAgICAgKiBAcGFyYW0gdXNhX2NhbGVuZGFyaW9fY29tbWVyY2lhbGVcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgICAqIEBjb25zdHJ1Y3RvclxuICAgICAqL1xuICAgIERhdGVfX2FkZDogZnVuY3Rpb24oZGF0YV9qYXAsbmdpb3JuaSxjb250YV9kYV9maW5lX21lc2UsIHVzYV9jYWxlbmRhcmlvX2NvbW1lcmNpYWxlKVxuICAgIHtcbiAgICAgICAgbmdpb3JuaSA9IGdldEZsb2F0KG5naW9ybmkpO1xuICAgICAgICBpZihOdW1iZXIuaXNJbnRlZ2VyKG5naW9ybmkgLyAzMCkgJiYgIWNvbnRhX2RhX2ZpbmVfbWVzZSAmJiB1c2FfY2FsZW5kYXJpb19jb21tZXJjaWFsZSkgcmV0dXJuIERhdGVfX3NvbW1hbWVzaShkYXRhX2phcCwgbmdpb3JuaSAvIDMwKTtcblxuICAgICAgICBpZihjb250YV9kYV9maW5lX21lc2UpIHtcbiAgICAgICAgICAgIGRhdGFfamFwID0gZGF0YV9qYXAuc3Vic3RyKDAsIDgpICsgXCIxNVwiO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGQgPSBtb21lbnQoZGF0YV9qYXAsIFwiWVlZWS9NTS9ERFwiKTtcblxuICAgICAgICBpZihuZ2lvcm5pID4gMClcbiAgICAgICAgICAgIGQuYWRkKG5naW9ybmksIFwiZGF5c1wiKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgZC5zdWJ0cmFjdChNYXRoLmFicyhuZ2lvcm5pKSwgXCJkYXlzXCIpO1xuXG4gICAgICAgIGlmKGNvbnRhX2RhX2ZpbmVfbWVzZSkgZC5lbmRPZihcIm1vbnRoXCIpO1xuXG4gICAgICAgIHJldHVybiBkLmZvcm1hdChcIllZWVkvTU0vRERcIik7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGZ1bnppb25lIGNoZSBzb21tYSB4IG1lc2kgYWxsYSBkYXRhIHBhc3NhdGEgY29tZSBwYXJhbWV0cm8uXG4gICAgICogdG9ybmEgbG8gc3Rlc3NvIGdpb3JubyBkaSB4IG1lc2kgZG9wbzsgc2UgcGVyIGNhc28gaWwgZ2lvcm5vIMOoIGltcG9zc2liaWxlIChlcy4gMzEvMDYpIHJpdG9ybmEgaWwgcHJpbW8gZ2lvcm5vIHN1Y2Nlc3Npdm9cbiAgICAgKiBkaXBzb25pYmlsZSAoZXMuIDAxLzA3KVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBkYXRhX2phcFxuICAgICAqIEBwYXJhbSB7aW50fSBubWVzaVxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAgICovXG4gICAgRGF0ZV9fc29tbWFtZXNpOmZ1bmN0aW9uKGRhdGFfamFwLG5tZXNpKVxuICAgIHtcbiAgICAgICAgdmFyIGQgPSBtb21lbnQoZGF0YV9qYXAsIFwiWVlZWS9NTS9ERFwiKTtcbiAgICAgICAgZC5hZGQobm1lc2ksIFwibW9udGhzXCIpO1xuICAgICAgICByZXR1cm4gZC5mb3JtYXQoXCJZWVlZL01NL0REXCIpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBSaXRvcm5hIGxhIGRhdGEgb2RpZXJuYVxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAgICovXG4gICAgRGF0ZV9fbm93OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG1vbWVudCgpLmZvcm1hdChcIllZWVkvTU0vRERcIik7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIEFnZ2l1bmdlIHRvdCBtaW51dGkgZSBzZWNvbmRpIGFsbCdvcmFyaW8gcGFzc2F0by4gUml0b3JuYSB1biBvcmFyaW8gc29sbyBISC5NTVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcmFyaW9cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbW1cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3NcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgICAqL1xuICAgIG1pbnV0aUFkZDogZnVuY3Rpb24ob3JhcmlvLG1tLHNzKVxuICAgIHtcbiAgICAgICAgaWYoc3M9PW51bGwpIHNzPTA7XG4gICAgICAgIHZhciBoPWdldEZsb2F0KG9yYXJpby5zdWJzdHIoMCwyKSk7XG4gICAgICAgIHZhciBtPWdldEZsb2F0KG9yYXJpby5zdWJzdHIoMywyKSk7XG5cbiAgICAgICAgc3M9bW0qNjArc3M7XG5cbiAgICAgICAgdmFyIGQ9bmV3IERhdGUoMjAwMCwgMSwgMSwgaCwgbSwgMCwgMCk7XG4gICAgICAgIHZhciB0PWQuZ2V0VGltZSgpO1xuICAgICAgICB0Kz1zcyoxMDAwO1xuICAgICAgICBkLnNldFRpbWUodCk7XG4gICAgICAgIHZhciBoMj1kLmdldEhvdXJzKCk7XG4gICAgICAgIHZhciBtMj1kLmdldE1pbnV0ZXMoKTtcblxuICAgICAgICBpZihoMjw9OSkgaDI9XCIwXCIraDI7XG4gICAgICAgIGlmKG0yPD05KSBtMj1cIjBcIittMjtcblxuICAgICAgICByZXR1cm4gKGgyK1wiLlwiK20yKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogUml0b3JuYSB0cnVlIHNlIMOoIHVuIG9yYXJpbyB2YWxpZG8gbmVsIGZvcm1hdG8gSEguTU0gY29sIGNhcmF0dGVyZSAnLicgY29tZSBzZXBhcmF0b3JlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHNcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBpc09yYXJpbzogZnVuY3Rpb24ocylcbiAgICB7XG4gICAgICAgIHZhciBpPXMuaW5kZXhPZignLicpO1xuICAgICAgICBpZihpPT0tMSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIGlmKGk9PTEpIHM9XCIwXCIrcztcbiAgICAgICAgaWYoIHBhcnNlSW50KHMuc3Vic3RyKDAsMiksMTApPjIzICkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiggcGFyc2VJbnQocy5zdWJzdHIoMywyKSwxMCk+NTkgKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSxcblxuICAgIGdldFBhcmFtc0ZvckRhdGVwaWNrZXI6IGZ1bmN0aW9uIChwYXJhbXMpe1xuICAgICAgICB2YXIgZGF0ZV9mb3JtYXQgPSAkKFwiI0RQQ19ERUZBVUxUX0ZPUk1BVFwiKS52YWwoKTtcbiAgICAgICAgdmFyIGZvcm1hdDtcbiAgICAgICAgc3dpdGNoIChkYXRlX2Zvcm1hdCl7XG4gICAgICAgICAgICBjYXNlIFwiZGQvbW0veXlcIjogZm9ybWF0ID0gXCJkZC9tbS95eXl5XCI7IGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIm1tL2RkL3l5XCI6IGZvcm1hdCA9IFwibW0vZGQveXl5eVwiOyBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6IGZvcm1hdCA9IFwieXl5eS9tbS9kZFwiOyBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBzdGFuZGFyZF9wYXJhbXMgPSB7XG4gICAgICAgICAgICBmb3JtYXQ6IGZvcm1hdCxcbiAgICAgICAgICAgIGF1dG9jbG9zZTogdHJ1ZSxcbiAgICAgICAgICAgIHRvZGF5SGlnaGxpZ2h0OiB0cnVlLFxuICAgICAgICAgICAgbGFuZ3VhZ2U6ICQoXCIjTEFOR1wiKS52YWwoKSxcbiAgICAgICAgICAgIGNsZWFyQnRuOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgICBpZihwYXJhbXMpe1xuICAgICAgICAgICAgT2JqZWN0LmtleXMocGFyYW1zKS5tYXAoIGtleSA9PiB7XG4gICAgICAgICAgICAgICAgc3RhbmRhcmRfcGFyYW1zW2tleV0gPSBwYXJhbXNba2V5XTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3RhbmRhcmRfcGFyYW1zO1xuICAgIH0sXG5cbiAgICBic0RhdGVQaWNrZXJJbml0OiBmdW5jdGlvbiAoKXtcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgICAgICQoXCIuaW5wdXQtZ3JvdXAuZGF0ZVwiKS5kYXRlcGlja2VyKHNlbGYuZ2V0UGFyYW1zRm9yRGF0ZXBpY2tlcigpKTtcbiAgICB9LFxuXG4gICAgYnNEYXRlUGlja2VyUmFuZ2VJbml0OiBmdW5jdGlvbiAocGFyYW1zKXtcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgICAgICAkKCcuaW5wdXQtZGF0ZXJhbmdlIGlucHV0JykuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICQodGhpcykuZGF0ZXBpY2tlcihzZWxmLmdldFBhcmFtc0ZvckRhdGVwaWNrZXIocGFyYW1zKSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn0iLCIvKipcbiAqIENyZWF0ZWQgYnkgRGFuaWVsZSBvbiAwNi8wNy8xNi5cbiAqL1xuKGZ1bmN0aW9uKCQpe1xuICAgICQuZm4uYXV0b2NvbXBsZXRlT25Gb2N1c0V2ZW50ID0gZnVuY3Rpb24oKXtcbiAgICAgICAgJCh0aGlzKS5mb2N1cyhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAkKHRoaXMpLnNlbGVjdCgpO1xuICAgICAgICAgICAgJCh0aGlzKS5vbmUoXCJtb3VzZXVwXCIsZnVuY3Rpb24oZXYpeyBldi5wcmV2ZW50RGVmYXVsdCgpOyB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICAkLmZuLmF1dG9jb21wbGV0ZVNlYXJjaEFsbE9uRGJsQ2xpY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICQodGhpcykuYmluZChcImRibGNsaWNrXCIsZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBpZighJCh0aGlzKS5hdHRyKFwicmVhZG9ubHlcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zdCAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgY29uc3QgJGhpZGRlbiA9ICQoXCIjXCIgKyAkKHRoaXMpLmF0dHIoXCJpZFwiKSArIFwiX2hpZGRlblwiKTtcbiAgICAgICAgICAgICAgICAkdGhpcy52YWwoXCJcIik7XG4gICAgICAgICAgICAgICAgJGhpZGRlbi52YWwoMCk7XG4gICAgICAgICAgICAgICAgJHRoaXMua2V5dXAoKTtcbiAgICAgICAgICAgICAgICAkdGhpcy52YWwoXCIlXCIpO1xuICAgICAgICAgICAgICAgICR0aGlzLmtleXVwKCk7XG4gICAgICAgICAgICAgICAgJHRoaXMudmFsKFwiXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59KShqUXVlcnkpO1xuXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHtcbiAgICAkKFwiLnNlYXJjaEJveF9jb2RlYXJ0aWNvbG9cIikuYXV0b2NvbXBsZXRlT25Gb2N1c0V2ZW50KCk7XG4gICAgJChcIi5zZWFyY2hCb3hfYXJ0aWNvbG9cIikuYXV0b2NvbXBsZXRlT25Gb2N1c0V2ZW50KCk7XG4gICAgJChcIi5zZWFyY2hCb3hfdXNlclwiKS5hdXRvY29tcGxldGVPbkZvY3VzRXZlbnQoKTtcbiAgICAkKFwiLnNlYXJjaEJveF9wZGNcIikuYXV0b2NvbXBsZXRlT25Gb2N1c0V2ZW50KCk7XG4gICAgJChcIi5zZWFyY2hCb3hfYmFuY2FcIikuYXV0b2NvbXBsZXRlT25Gb2N1c0V2ZW50KCk7XG4gICAgJChcIi5zZWFyY2hCb3hfcGFnYW1lbnRvXCIpLmF1dG9jb21wbGV0ZU9uRm9jdXNFdmVudCgpO1xuICAgICQoXCIuc2VhcmNoQm94X2NvbXVuaVwiKS5hdXRvY29tcGxldGVPbkZvY3VzRXZlbnQoKTtcbiAgICAkKFwiLnNlYXJjaEJveF9DRENcIikuYXV0b2NvbXBsZXRlT25Gb2N1c0V2ZW50KCk7XG4gICAgJChcIi5zZWFyY2hCb3hfY29tbWVzc2VcIikuYXV0b2NvbXBsZXRlT25Gb2N1c0V2ZW50KCk7XG4gICAgJChcIi5zZWFyY2hCb3hfaXZhXCIpLmF1dG9jb21wbGV0ZU9uRm9jdXNFdmVudCgpO1xuICAgICQoXCIuc2VhcmNoQm94X2NhdXNhbGVjb250YWJpbGVfY29kaWNlXCIpLmF1dG9jb21wbGV0ZU9uRm9jdXNFdmVudCgpO1xuICAgICQoXCIuc2VhcmNoQm94X2NhdXNhbGVjb250YWJpbGVcIikuYXV0b2NvbXBsZXRlT25Gb2N1c0V2ZW50KCk7XG4gICAgJChcIi5zZWFyY2hCb3hfbG90dG9cIikuYXV0b2NvbXBsZXRlT25Gb2N1c0V2ZW50KCk7XG4gICAgJChcIi5zZWFyY2hCb3hfbWFnXCIpLmF1dG9jb21wbGV0ZU9uRm9jdXNFdmVudCgpO1xuXG4gICAgJChcIi5zZWFyY2hCb3hfdXNlclwiKS5hdXRvY29tcGxldGVTZWFyY2hBbGxPbkRibENsaWNrKCk7XG5cbiAgICAkKFwiLnNlYXJjaEJveF9hcnRpY29sb1wiKS5hdXRvY29tcGxldGVTZWFyY2hBbGxPbkRibENsaWNrKCk7XG5cbiAgICAkKFwiLnNlYXJjaEJveF9pdmFcIikuYXV0b2NvbXBsZXRlU2VhcmNoQWxsT25EYmxDbGljaygpO1xuXG4gICAgJChcIi5zZWFyY2hCb3hfY2F1c2FsZWNvbnRhYmlsZV9jb2RpY2VcIikuYXV0b2NvbXBsZXRlU2VhcmNoQWxsT25EYmxDbGljaygpO1xuXG4gICAgJChcIi5zZWFyY2hCb3hfY29tbWVzc2VcIikuYXV0b2NvbXBsZXRlU2VhcmNoQWxsT25EYmxDbGljaygpO1xufSk7IiwiLypcclxuICogalF1ZXJ5IFNpbXBsZUN1cnJlbmN5IHBsdWdpblxyXG4gKiBWZXJzaW9uIDEuMCAoMy1NQVktMjAwOSlcclxuICogXHJcbiAqIEV4YW1wbGVzIGF0OiBodHRwOi8vd3d3LnJvbmNvc29mdHdhcmUuaXQvanF1ZXJ5LnNpbXBsZWN1cnJlbmN5XHJcbiAqIENvcHlyaWdodCBHaW92YW5uaSBSb25jb1xyXG4gKiBMaWNlbnNlZCB1bmRlciBMR1BMXHJcbiAqL1xyXG4vKiBcclxuXHJcblRoaXMgaXMgYW4gYXV0b21hdGljIHNjcmlwdCB0aGF0IHRyYXNmb3JtIHRoZSBub3JtYWwgaW5wdXQtZmllbGQgaW4gYSBjdXJyZW5jeS1maWVsZC4gSnVzdCBhdHRhY2ggdG8gdGhlIFxyXG50ZXh0LWZpZWxkIGNzcyBjbGFzcz1cIkN1cnJlbmN5XCJcclxuXHJcblRoaXMgZmllbGQgKGZvciBleGFtcGxlIHdpdGggaWQ9XCJjdXJyMVwiKSBtdXN0IGhhdmUgYSBoaWRkZW4tZmllbGQgbmVhciB3aXRoIGlkPVwiY3VycjFfaGlkZGVuXCIuIFRoaXMgaGlkZGVuLWZpZWxkIGNvbnRhaW5zIFxyXG5hIHJlYWwgZmxvYXQgbnVtYmVyIHRoYXQgeW91IGNhbiB1c2UuLi5cclxuXHJcbk11c3QgZXhpc3RzIDQgaGlkZGVuIGZpZWxkcyBpbiB0aGUgdG9wIG9mIHRoZSBwYWdlOlxyXG48aW5wdXQgdHlwZT1cImhpZGRlblwiIGlkPVwiQ1VSUkVOQ1lfX1NZTUJPTFwiIHZhbHVlPVwi4oKsXCI+XHJcbjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgaWQ9XCJDVVJSRU5DWV9fREVDSU1BTF9TRVBBUkFUT1JcIiB2YWx1ZT1cIi5cIj5cclxuPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBpZD1cIkNVUlJFTkNZX19USE9VU0FORFNfU0VQQVJBVE9SXCIgdmFsdWU9XCIsXCI+IFxyXG48aW5wdXQgdHlwZT1cImhpZGRlblwiIGlkPVwiQ1VSUkVOQ1lfX0RFQ0lNQUxTXCIgdmFsdWU9XCIyXCI+IFxyXG5cclxuSW4gZXZlcnkgY3VycmVuY3ktZmllbGQgaXQncyBwb3NzaWJpbGUgdG8gb3ZlcnJpZGUgc3ltYm9sIG9yIGRlY2ltYWxzLCBhZGRpbmcgXCJzeW1ib2xcIiBvciBcImRlY2ltYWxzXCIgXHJcbnByb3ByZXJ0eSAodGhpcyBpcyBubyBYSFRNTCBzdHJpY3QpXHJcblxyXG5leGFtcGxlczpcclxuXHJcbm5vcm1hbDogPGlucHV0IG5hbWU9XCJldXJvMVwiIHR5cGU9XCJ0ZXh0XCIgaWQ9XCJldXJvMVwiIGNsYXNzPVwiQ3VycmVuY3lcIj5cclxud2l0aCBzeW1ib2wgb3ZlcmxvYWQ6IDxpbnB1dCBuYW1lPVwiZXVybzJcIiB0eXBlPVwidGV4dFwiIGlkPVwiZXVybzJcIiBjbGFzcz1cIkN1cnJlbmN5XCIgc3ltYm9sPVwiJFwiPlxyXG53aXRoIGRlY2ltYWxzIG92ZXJsb2FkOiA8aW5wdXQgbmFtZT1cImV1cm8zXCIgdHlwZT1cInRleHRcIiBpZD1cImV1cm8zXCIgY2xhc3M9XCJDdXJyZW5jeVwiIGRlY2ltYWxzPVwiNVwiPlxyXG5cclxuKi9cclxudmFyIENVUlJFTkNZX19TWU1CT0w9XCJcIjtcclxudmFyIENVUlJFTkNZX19ERUNJTUFMUz0yO1xyXG52YXIgQ1VSUkVOQ1lfX0RFQ0lNQUxfU0VQQVJBVE9SPVwiLlwiO1xyXG52YXIgQ1VSUkVOQ1lfX1RIT1VTQU5EU19TRVBBUkFUT1I9XCIsXCI7XHJcblxyXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpXHJcbntcclxuXHRDVVJSRU5DWV9fU1lNQk9MPSQoXCIjQ1VSUkVOQ1lfX1NZTUJPTFwiKS52YWwoKTtcclxuXHQvL0NVUlJFTkNZX19ERUNJTUFMUz0kKFwiI0NVUlJFTkNZX19ERUNJTUFMU1wiKS52YWwoKTtcclxuXHRDVVJSRU5DWV9fREVDSU1BTF9TRVBBUkFUT1I9JChcIiNDVVJSRU5DWV9fREVDSU1BTF9TRVBBUkFUT1JcIikudmFsKCk7XHJcblx0Q1VSUkVOQ1lfX1RIT1VTQU5EU19TRVBBUkFUT1I9JChcIiNDVVJSRU5DWV9fVEhPVVNBTkRTX1NFUEFSQVRPUlwiKS52YWwoKTtcclxuXHRcclxuXHQkKFwiLkN1cnJlbmN5XCIpLnByb3AoXCJhdXRvY29tcGxldGVcIixcIm9mZlwiKTtcclxuXHQkKFwiLkN1cnJlbmN5XCIpLmJpbmQoXCJrZXlkb3duIGZvY3VzIGJsdXJcIiwgZnVuY3Rpb24oZSlcclxuXHR7XHJcblx0XHQvLyoqKioqKioqKlxyXG5cdFx0dmFyIG9iaklEPWUudGFyZ2V0LmlkO1xyXG5cdFx0dmFyIG9iaklEX2hpZGRlbj1vYmpJRCtcIl9oaWRkZW5cIjtcclxuXHRcdHZhciBtQ1VSUkVOQ1lfX1NZTUJPTD1DVVJSRU5DWV9fU1lNQk9MO1xyXG5cdFx0dmFyIG1DVVJSRU5DWV9fREVDSU1BTFM9Q1VSUkVOQ1lfX0RFQ0lNQUxTO1xyXG4gICAgICAgIHZhciBzLG47XHJcblx0XHRcclxuXHRcdC8vb3ZlcmxvYWQgZXZlbnR1YWxpIGRlbCBzaW1ib2xvIGUgZGVsIG51bWVybyBkaSBkZWNpbWFsaVxyXG5cdFx0aWYoICQoXCIjXCIrb2JqSUQpLnByb3AoXCJzeW1ib2xcIikhPXVuZGVmaW5lZCApXHJcblx0XHRcdG1DVVJSRU5DWV9fU1lNQk9MPSQoXCIjXCIrb2JqSUQpLnByb3AoXCJzeW1ib2xcIik7XHJcblx0XHRpZiggJChcIiNcIitvYmpJRCkuYXR0cihcImRlY2ltYWxzXCIpIT11bmRlZmluZWQgKVxyXG5cdFx0XHRtQ1VSUkVOQ1lfX0RFQ0lNQUxTPSQoXCIjXCIrb2JqSUQpLmF0dHIoXCJkZWNpbWFsc1wiKTtcclxuXHRcdFx0XHRcclxuXHRcdGlmKGUudHlwZT09XCJrZXlkb3duXCIpXHJcblx0XHR7XHJcblx0XHRcdHZhciBrZXludW07XHJcblx0XHRcdGlmKHdpbmRvdy5ldmVudCkgXHJcblx0XHRcdFx0a2V5bnVtPWUua2V5Q29kZTtcclxuXHRcdFx0ZWxzZSBpZihlLndoaWNoKSBcclxuXHRcdFx0XHRrZXludW09ZS53aGljaDtcclxuXHRcclxuXHRcdFx0aWYoa2V5bnVtPT0xODgpeyBlLmtleUNvZGU9MTkwOyBlLndoaWNoPTE5MDt9XHQvL2xhIHZpcmdvbGEg77+9IGRpc2FiaWxpdGF0YVxyXG5cclxuXHRcdFx0Ly90YXN0aWVyaW5vIG51bWVyaWNvLi4uLlxyXG5cdFx0XHRpZihrZXludW09PTExMCl7IGtleW51bT0xOTA7IHJldHVybiB0cnVlOyB9XHRcdC8vcXVlc3RvIO+/vSBpbCBwdW50b1xyXG5cdFx0XHRpZihrZXludW0+PTk2ICYmIGtleW51bTw9MTA1KSBrZXludW0tPTQ4O1xyXG5cdFx0XHQvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuXHRcdFx0dmFyIGtleWNoYXI9U3RyaW5nLmZyb21DaGFyQ29kZShrZXludW0pO1x0XHJcblx0XHRcdGlmKGtleW51bT09MTg4KSBrZXljaGFyPScsJzsgXHJcblx0XHRcdGlmKGtleW51bT09MTkwKSBrZXljaGFyPScuJztcclxuXHRcdFx0aWYoa2V5bnVtPT0xMDkpIGtleWNoYXI9Jy0nO1xyXG4gICAgICAgICAgICBpZihrZXludW09PTE3Mykga2V5Y2hhcj0nLSc7XHJcblxyXG5cdFx0XHRpZihrZXludW09PTh8fGtleW51bT09Mzd8fGtleW51bT09Mzl8fGtleW51bT09OXx8a2V5bnVtPT0zNnx8a2V5bnVtPT0zNSlcclxuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHR2YXIgbnVtYmVycz1cIjAxMjM0NTY3ODlcIjtcclxuXHRcdFx0aWYobnVtYmVycy5pbmRleE9mKGtleWNoYXIpPi0xKVxyXG5cdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cclxuXHRcdFx0aWYoXHRrZXljaGFyPT1DVVJSRU5DWV9fREVDSU1BTF9TRVBBUkFUT1IgJiYgJChcIiNcIitvYmpJRCkudmFsKCkuaW5kZXhPZihDVVJSRU5DWV9fREVDSU1BTF9TRVBBUkFUT1IpPT0tMSlcclxuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHJcblx0XHRcdGlmKFx0a2V5Y2hhcj09Jy0nICYmICQoXCIjXCIrb2JqSUQpLnZhbCgpLmluZGV4T2YoJy0nKT09LTEpXHJcblx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblxyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblx0XHRcdFxyXG5cdFx0aWYoZS50eXBlPT1cImZvY3VzXCIpXHJcblx0XHR7XHJcblx0XHRcdC8vdmFyIG1DVVJSRU5DWV9fREVDSU1BTFM9Q1VSUkVOQ1lfX0RFQ0lNQUxTO1xyXG5cdFx0XHJcblx0XHRcdHM9Z2V0RmxvYXQoICQoXCIjXCIrb2JqSURfaGlkZGVuKS52YWwoKSApO1xyXG5cdFx0XHRuPW5ldyBOdW1iZXIocyk7XHJcblx0XHRcdCQoXCIjXCIrb2JqSUQpLnZhbCggbi50b0ZpeGVkKG1DVVJSRU5DWV9fREVDSU1BTFMpICk7XHJcblx0XHRcdCQoXCIjXCIrb2JqSUQpLnNlbGVjdCgpO1xyXG4gICAgICAgICAgICAkKFwiI1wiK29iaklEKS5vbmUoJ21vdXNldXAnLCBmdW5jdGlvbihldikge1xyXG4gICAgICAgICAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgfSk7XHJcblx0XHR9XHJcblx0XHRcdFxyXG5cdFx0aWYoZS50eXBlPT1cImJsdXJcIilcclxuXHRcdHtcclxuXHRcdFx0Ly9vdmVybG9hZCBldmVudHVhbGkgZGVsIHNpbWJvbG8gZSBkZWwgbnVtZXJvIGRpIGRlY2ltYWxpXHJcblx0XHRcdGlmKCAkKFwiI1wiK29iaklEKS5wcm9wKFwic3ltYm9sXCIpIT11bmRlZmluZWQgKVxyXG5cdFx0XHRcdG1DVVJSRU5DWV9fU1lNQk9MPSQoXCIjXCIrb2JqSUQpLnByb3AoXCJzeW1ib2xcIik7XHJcblx0XHRcdGlmKCAkKFwiI1wiK29iaklEKS5wcm9wKFwiZGVjaW1hbHNcIikhPXVuZGVmaW5lZCApXHJcblx0XHRcdFx0bUNVUlJFTkNZX19ERUNJTUFMUz0kKFwiI1wiK29iaklEKS5wcm9wKFwiZGVjaW1hbHNcIik7XHJcblx0XHRcclxuXHRcdFx0cz0kKFwiI1wiK29iaklEKS52YWwoKTtcclxuXHJcblx0XHRcdHM9cy5yZXBsYWNlKG1DVVJSRU5DWV9fU1lNQk9MLCcuJyk7XHJcblx0XHRcdC8vcXVhbmRvIGNvbXBpbG8gaWwgY2FtcG8gUVVBTFNJQVNJIFNJQSBMQSBMSU5HVUEgQ09NUElMTyBVU0FORE8gSUwgLiBDT01FIFNFUEFSQVRPUkUgREVDSU1BTEVcclxuXHRcdFx0Ly9zPXMucmVwbGFjZShDVVJSRU5DWV9fVEhPVVNBTkRTX1NFUEFSQVRPUiwnJyk7XHJcblx0XHRcdC8vcz1zLnJlcGxhY2UoQ1VSUkVOQ1lfX0RFQ0lNQUxfU0VQQVJBVE9SLCcuJyk7XHJcblx0XHRcdG49Z2V0RmxvYXQoIHMgKTtcclxuXHRcdFx0JChcIiNcIitvYmpJRF9oaWRkZW4pLnZhbCggbiApO1xyXG5cdFx0XHQkKFwiI1wiK29iaklEKS51cGRhdGVDdXJyZW5jeSgpO1xyXG5cdFx0XHQkKFwiI1wiK29iaklEX2hpZGRlbikuY2hhbmdlKCk7XHJcblx0XHR9XHJcblx0fSk7XHJcbi8vKioqKioqKipcclxufSk7XHJcblxyXG4kLmZuLnVwZGF0ZUN1cnJlbmN5ID0gZnVuY3Rpb24oKSBcclxue1xyXG5cdHZhciBvYmpJRD0kKHRoaXMpLnByb3AoXCJpZFwiKTtcclxuXHR2YXIgb2JqSURfaGlkZGVuPW9iaklEK1wiX2hpZGRlblwiO1xyXG5cdHZhciBtQ1VSUkVOQ1lfX1NZTUJPTD0kKFwiI0NVUlJFTkNZX19TWU1CT0xcIikudmFsKCk7XHJcblx0dmFyIG1DVVJSRU5DWV9fREVDSU1BTFM9Z2V0RmxvYXQoJChcIiNcIitvYmpJRCkuYXR0cihcImRlY2ltYWxzXCIpKT09MCA/IENVUlJFTkNZX19ERUNJTUFMUyA6IGdldEZsb2F0KCQoXCIjXCIrb2JqSUQpLmF0dHIoXCJkZWNpbWFsc1wiKSk7XHJcblx0dmFyIGlmX3plcm9fZW1wdHk9ZmFsc2U7XHJcblx0Ly9vdmVybG9hZCBldmVudHVhbGkgZGVsIHNpbWJvbG8gZSBkZWwgbnVtZXJvIGRpIGRlY2ltYWxpXHJcblx0aWYoICQoXCIjXCIrb2JqSUQpLnByb3AoXCJpZl96ZXJvX2VtcHR5XCIpIT11bmRlZmluZWQgKVxyXG5cdFx0aWZfemVyb19lbXB0eT10cnVlO1xyXG5cdGlmKCAkKFwiI1wiK29iaklEKS5wcm9wKFwic3ltYm9sXCIpIT11bmRlZmluZWQgKVxyXG5cdFx0bUNVUlJFTkNZX19TWU1CT0w9JChcIiNcIitvYmpJRCkucHJvcChcInN5bWJvbFwiKTtcclxuXHRcdFx0XHRcclxuXHR2YXIgbj1nZXRGbG9hdCggJChcIiNcIitvYmpJRF9oaWRkZW4pLnZhbCgpICk7XHJcblx0dmFyIHNpZ249KG48MCA/IFwiLSBcIiA6IFwiXCIpO1xyXG5cdHZhciBuMj1udW1iZXJfZm9ybWF0KE1hdGguYWJzKG4pLG1DVVJSRU5DWV9fREVDSU1BTFMsQ1VSUkVOQ1lfX0RFQ0lNQUxfU0VQQVJBVE9SLENVUlJFTkNZX19USE9VU0FORFNfU0VQQVJBVE9SKTtcclxuXHJcblx0aWYoIG49PTAgJiYgaWZfemVyb19lbXB0eSApIFxyXG5cdFx0JChcIiNcIitvYmpJRCkudmFsKFwiXCIpO1xyXG5cdGVsc2VcclxuXHRcdCQoXCIjXCIrb2JqSUQpLnZhbChzaWduKyBtQ1VSUkVOQ1lfX1NZTUJPTCtcIiBcIituMiApO1xyXG5cdFxyXG59OyIsIi8qXHJcbiAqXHJcbiAqIENvcHlyaWdodCAoYykgMjAwNi0yMDA5IFNhbSBDb2xsZXR0IChodHRwOi8vd3d3LnRleG90ZWxhLmNvLnVrKVxyXG4gKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgKGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwKVxyXG4gKiBhbmQgR1BMIChodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2dwbC1saWNlbnNlLnBocCkgbGljZW5zZXMuXHJcbiAqXHJcbiAqIFZlcnNpb24gMi4yLjRcclxuICogRGVtbzogaHR0cDovL3d3dy50ZXhvdGVsYS5jby51ay9jb2RlL2pxdWVyeS9zZWxlY3QvXHJcbiAqXHJcbiAqICRMYXN0Q2hhbmdlZERhdGUkXHJcbiAqICRSZXYkXHJcbiAqXHJcbiAqL1xyXG4gXHJcbjsoZnVuY3Rpb24oJCkge1xyXG4gXHJcbi8qKlxyXG4gKiBBZGRzIChzaW5nbGUvbXVsdGlwbGUpIG9wdGlvbnMgdG8gYSBzZWxlY3QgYm94IChvciBzZXJpZXMgb2Ygc2VsZWN0IGJveGVzKVxyXG4gKlxyXG4gKiBAbmFtZSAgICAgYWRkT3B0aW9uXHJcbiAqIEBhdXRob3IgICBTYW0gQ29sbGV0dCAoaHR0cDovL3d3dy50ZXhvdGVsYS5jby51aylcclxuICogQHR5cGUgICAgIGpRdWVyeVxyXG4gKiBAZXhhbXBsZSAgJChcIiNteXNlbGVjdFwiKS5hZGRPcHRpb24oXCJWYWx1ZVwiLCBcIlRleHRcIik7IC8vIGFkZCBzaW5nbGUgdmFsdWUgKHdpbGwgYmUgc2VsZWN0ZWQpXHJcbiAqIEBleGFtcGxlICAkKFwiI215c2VsZWN0XCIpLmFkZE9wdGlvbihcIlZhbHVlIDJcIiwgXCJUZXh0IDJcIiwgZmFsc2UpOyAvLyBhZGQgc2luZ2xlIHZhbHVlICh3b24ndCBiZSBzZWxlY3RlZClcclxuICogQGV4YW1wbGUgICQoXCIjbXlzZWxlY3RcIikuYWRkT3B0aW9uKHtcImZvb1wiOlwiYmFyXCIsXCJiYXJcIjpcImJhelwifSwgZmFsc2UpOyAvLyBhZGQgbXVsdGlwbGUgdmFsdWVzLCBidXQgZG9uJ3Qgc2VsZWN0XHJcbiAqXHJcbiAqL1xyXG4kLmZuLmFkZE9wdGlvbiA9IGZ1bmN0aW9uKClcclxue1xyXG5cdHZhciBhZGQgPSBmdW5jdGlvbihlbCwgdiwgdCwgc08pXHJcblx0e1xyXG5cdFx0dmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJvcHRpb25cIik7XHJcblx0XHRvcHRpb24udmFsdWUgPSB2LCBvcHRpb24udGV4dCA9IHQ7XHJcblx0XHQvLyBnZXQgb3B0aW9uc1xyXG5cdFx0dmFyIG8gPSBlbC5vcHRpb25zO1xyXG5cdFx0Ly8gZ2V0IG51bWJlciBvZiBvcHRpb25zXHJcblx0XHR2YXIgb0wgPSBvLmxlbmd0aDtcclxuXHRcdGlmKCFlbC5jYWNoZSlcclxuXHRcdHtcclxuXHRcdFx0ZWwuY2FjaGUgPSB7fTtcclxuXHRcdFx0Ly8gbG9vcCB0aHJvdWdoIGV4aXN0aW5nIG9wdGlvbnMsIGFkZGluZyB0byBjYWNoZVxyXG5cdFx0XHRmb3IodmFyIGkgPSAwOyBpIDwgb0w7IGkrKylcclxuXHRcdFx0e1xyXG5cdFx0XHRcdGVsLmNhY2hlW29baV0udmFsdWVdID0gaTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0Ly8gYWRkIHRvIGNhY2hlIGlmIGl0IGlzbid0IGFscmVhZHlcclxuXHRcdGlmKHR5cGVvZiBlbC5jYWNoZVt2XSA9PSBcInVuZGVmaW5lZFwiKSBlbC5jYWNoZVt2XSA9IG9MO1xyXG5cdFx0ZWwub3B0aW9uc1tlbC5jYWNoZVt2XV0gPSBvcHRpb247XHJcblx0XHRpZihzTylcclxuXHRcdHtcclxuXHRcdFx0b3B0aW9uLnNlbGVjdGVkID0gdHJ1ZTtcclxuXHRcdH1cclxuXHR9O1xyXG5cdFxyXG5cdHZhciBhID0gYXJndW1lbnRzO1xyXG5cdGlmKGEubGVuZ3RoID09IDApIHJldHVybiB0aGlzO1xyXG5cdC8vIHNlbGVjdCBvcHRpb24gd2hlbiBhZGRlZD8gZGVmYXVsdCBpcyB0cnVlXHJcblx0dmFyIHNPID0gdHJ1ZTtcclxuXHQvLyBtdWx0aXBsZSBpdGVtc1xyXG5cdHZhciBtID0gZmFsc2U7XHJcblx0Ly8gb3RoZXIgdmFyaWFibGVzXHJcblx0dmFyIGl0ZW1zLCB2LCB0O1xyXG5cdGlmKHR5cGVvZihhWzBdKSA9PSBcIm9iamVjdFwiKVxyXG5cdHtcclxuXHRcdG0gPSB0cnVlO1xyXG5cdFx0aXRlbXMgPSBhWzBdO1xyXG5cdH1cclxuXHRpZihhLmxlbmd0aCA+PSAyKVxyXG5cdHtcclxuXHRcdGlmKHR5cGVvZihhWzFdKSA9PSBcImJvb2xlYW5cIikgc08gPSBhWzFdO1xyXG5cdFx0ZWxzZSBpZih0eXBlb2YoYVsyXSkgPT0gXCJib29sZWFuXCIpIHNPID0gYVsyXTtcclxuXHRcdGlmKCFtKVxyXG5cdFx0e1xyXG5cdFx0XHR2ID0gYVswXTtcclxuXHRcdFx0dCA9IGFbMV07XHJcblx0XHR9XHJcblx0fVxyXG5cdHRoaXMuZWFjaChcclxuXHRcdGZ1bmN0aW9uKClcclxuXHRcdHtcclxuXHRcdFx0aWYodGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpICE9IFwic2VsZWN0XCIpIHJldHVybjtcclxuXHRcdFx0aWYobSlcclxuXHRcdFx0e1xyXG5cdFx0XHRcdGZvcih2YXIgaXRlbSBpbiBpdGVtcylcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHRhZGQodGhpcywgaXRlbSwgaXRlbXNbaXRlbV0sIHNPKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0ZWxzZVxyXG5cdFx0XHR7XHJcblx0XHRcdFx0YWRkKHRoaXMsIHYsIHQsIHNPKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdCk7XHJcblx0cmV0dXJuIHRoaXM7XHJcbn07XHJcblxyXG4vKipcclxuICogQWRkIG9wdGlvbnMgdmlhIGFqYXhcclxuICpcclxuICogQG5hbWUgICAgIGFqYXhBZGRPcHRpb25cclxuICogQGF1dGhvciAgIFNhbSBDb2xsZXR0IChodHRwOi8vd3d3LnRleG90ZWxhLmNvLnVrKVxyXG4gKiBAdHlwZSAgICAgalF1ZXJ5XHJcbiAqIEBwYXJhbSAgICBTdHJpbmcgdXJsICAgICAgUGFnZSB0byBnZXQgb3B0aW9ucyBmcm9tIChtdXN0IGJlIHZhbGlkIEpTT04pXHJcbiAqIEBwYXJhbSAgICBPYmplY3QgcGFyYW1zICAgKG9wdGlvbmFsKSBBbnkgcGFyYW1ldGVycyB0byBzZW5kIHdpdGggdGhlIHJlcXVlc3RcclxuICogQHBhcmFtICAgIEJvb2xlYW4gc2VsZWN0ICAob3B0aW9uYWwpIFNlbGVjdCB0aGUgYWRkZWQgb3B0aW9ucywgZGVmYXVsdCB0cnVlXHJcbiAqIEBwYXJhbSAgICBGdW5jdGlvbiBmbiAgICAgKG9wdGlvbmFsKSBDYWxsIHRoaXMgZnVuY3Rpb24gd2l0aCB0aGUgc2VsZWN0IG9iamVjdCBhcyBwYXJhbSBhZnRlciBjb21wbGV0aW9uXHJcbiAqIEBwYXJhbSAgICBBcnJheSBhcmdzICAgICAgKG9wdGlvbmFsKSBBcnJheSB3aXRoIHBhcmFtcyB0byBwYXNzIHRvIHRoZSBmdW5jdGlvbiBhZnRlcndhcmRzXHJcbiAqIEBleGFtcGxlICAkKFwiI215c2VsZWN0XCIpLmFqYXhBZGRPcHRpb24oXCJteW9wdGlvbnMucGhwXCIpO1xyXG4gKiBAZXhhbXBsZSAgJChcIiNteXNlbGVjdFwiKS5hamF4QWRkT3B0aW9uKFwibXlvcHRpb25zLnBocFwiLCB7XCJjb2RlXCIgOiBcIjAwN1wifSk7XHJcbiAqIEBleGFtcGxlICAkKFwiI215c2VsZWN0XCIpLmFqYXhBZGRPcHRpb24oXCJteW9wdGlvbnMucGhwXCIsIHtcImNvZGVcIiA6IFwiMDA3XCJ9LCBmYWxzZSwgc29ydG9wdGlvbnMsIFt7XCJkaXJcIjogXCJkZXNjXCJ9XSk7XHJcbiAqXHJcbiAqL1xyXG4kLmZuLmFqYXhBZGRPcHRpb24gPSBmdW5jdGlvbih1cmwsIHBhcmFtcywgc2VsZWN0LCBmbiwgYXJncylcclxue1xyXG5cdGlmKHR5cGVvZih1cmwpICE9IFwic3RyaW5nXCIpIHJldHVybiB0aGlzO1xyXG5cdGlmKHR5cGVvZihwYXJhbXMpICE9IFwib2JqZWN0XCIpIHBhcmFtcyA9IHt9O1xyXG5cdGlmKHR5cGVvZihzZWxlY3QpICE9IFwiYm9vbGVhblwiKSBzZWxlY3QgPSB0cnVlO1xyXG5cdHRoaXMuZWFjaChcclxuXHRcdGZ1bmN0aW9uKClcclxuXHRcdHtcclxuXHRcdFx0dmFyIGVsID0gdGhpcztcclxuXHRcdFx0JC5nZXRKU09OKHVybCxcclxuXHRcdFx0XHRwYXJhbXMsXHJcblx0XHRcdFx0ZnVuY3Rpb24ocilcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHQkKGVsKS5hZGRPcHRpb24ociwgc2VsZWN0KTtcclxuXHRcdFx0XHRcdGlmKHR5cGVvZiBmbiA9PSBcImZ1bmN0aW9uXCIpXHJcblx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdGlmKHR5cGVvZiBhcmdzID09IFwib2JqZWN0XCIpXHJcblx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRmbi5hcHBseShlbCwgYXJncyk7XHJcblx0XHRcdFx0XHRcdH0gXHJcblx0XHRcdFx0XHRcdGVsc2VcclxuXHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdGZuLmNhbGwoZWwpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHQpO1xyXG5cdFx0fVxyXG5cdCk7XHJcblx0cmV0dXJuIHRoaXM7XHJcbn07XHJcblxyXG4vKipcclxuICogUmVtb3ZlcyBhbiBvcHRpb24gKGJ5IHZhbHVlIG9yIGluZGV4KSBmcm9tIGEgc2VsZWN0IGJveCAob3Igc2VyaWVzIG9mIHNlbGVjdCBib3hlcylcclxuICpcclxuICogQG5hbWUgICAgIHJlbW92ZU9wdGlvblxyXG4gKiBAYXV0aG9yICAgU2FtIENvbGxldHQgKGh0dHA6Ly93d3cudGV4b3RlbGEuY28udWspXHJcbiAqIEB0eXBlICAgICBqUXVlcnlcclxuICogQHBhcmFtICAgIFN0cmluZ3xSZWdFeHB8TnVtYmVyIHdoYXQgIE9wdGlvbiB0byByZW1vdmVcclxuICogQHBhcmFtICAgIEJvb2xlYW4gc2VsZWN0ZWRPbmx5ICAgICAgIChvcHRpb25hbCkgUmVtb3ZlIG9ubHkgaWYgaXQgaGFzIGJlZW4gc2VsZWN0ZWQgKGRlZmF1bHQgZmFsc2UpICAgXHJcbiAqIEBleGFtcGxlICAkKFwiI215c2VsZWN0XCIpLnJlbW92ZU9wdGlvbihcIlZhbHVlXCIpOyAvLyByZW1vdmUgYnkgdmFsdWVcclxuICogQGV4YW1wbGUgICQoXCIjbXlzZWxlY3RcIikucmVtb3ZlT3B0aW9uKC9edmFsL2kpOyAvLyByZW1vdmUgb3B0aW9ucyB3aXRoIGEgdmFsdWUgc3RhcnRpbmcgd2l0aCAndmFsJ1xyXG4gKiBAZXhhbXBsZSAgJChcIiNteXNlbGVjdFwiKS5yZW1vdmVPcHRpb24oLy4vKTsgLy8gcmVtb3ZlIGFsbCBvcHRpb25zXHJcbiAqIEBleGFtcGxlICAkKFwiI215c2VsZWN0XCIpLnJlbW92ZU9wdGlvbigvLi8sIHRydWUpOyAvLyByZW1vdmUgYWxsIG9wdGlvbnMgdGhhdCBoYXZlIGJlZW4gc2VsZWN0ZWRcclxuICogQGV4YW1wbGUgICQoXCIjbXlzZWxlY3RcIikucmVtb3ZlT3B0aW9uKDApOyAvLyByZW1vdmUgYnkgaW5kZXhcclxuICogQGV4YW1wbGUgICQoXCIjbXlzZWxlY3RcIikucmVtb3ZlT3B0aW9uKFtcIm15c2VsZWN0XzFcIixcIm15c2VsZWN0XzJcIl0pOyAvLyB2YWx1ZXMgY29udGFpbmVkIGluIHBhc3NlZCBhcnJheVxyXG4gKlxyXG4gKi9cclxuJC5mbi5yZW1vdmVPcHRpb24gPSBmdW5jdGlvbigpXHJcbntcclxuXHR2YXIgYSA9IGFyZ3VtZW50cztcclxuXHRpZihhLmxlbmd0aCA9PSAwKSByZXR1cm4gdGhpcztcclxuXHR2YXIgdGEgPSB0eXBlb2YoYVswXSk7XHJcblx0dmFyIHYsIGluZGV4O1xyXG5cdC8vIGhhcyB0byBiZSBhIHN0cmluZyBvciByZWd1bGFyIGV4cHJlc3Npb24gKG9iamVjdCBpbiBJRSwgZnVuY3Rpb24gaW4gRmlyZWZveClcclxuXHRpZih0YSA9PSBcInN0cmluZ1wiIHx8IHRhID09IFwib2JqZWN0XCIgfHwgdGEgPT0gXCJmdW5jdGlvblwiIClcclxuXHR7XHJcblx0XHR2ID0gYVswXTtcclxuXHRcdC8vIGlmIGFuIGFycmF5LCByZW1vdmUgaXRlbXNcclxuXHRcdGlmKHYuY29uc3RydWN0b3IgPT0gQXJyYXkpXHJcblx0XHR7XHJcblx0XHRcdHZhciBsID0gdi5sZW5ndGg7XHJcblx0XHRcdGZvcih2YXIgaSA9IDA7IGk8bDsgaSsrKVxyXG5cdFx0XHR7XHJcblx0XHRcdFx0dGhpcy5yZW1vdmVPcHRpb24odltpXSwgYVsxXSk7IFxyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiB0aGlzO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRlbHNlIGlmKHRhID09IFwibnVtYmVyXCIpIGluZGV4ID0gYVswXTtcclxuXHRlbHNlIHJldHVybiB0aGlzO1xyXG5cdHRoaXMuZWFjaChcclxuXHRcdGZ1bmN0aW9uKClcclxuXHRcdHtcclxuXHRcdFx0aWYodGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpICE9IFwic2VsZWN0XCIpIHJldHVybjtcclxuXHRcdFx0Ly8gY2xlYXIgY2FjaGVcclxuXHRcdFx0aWYodGhpcy5jYWNoZSkgdGhpcy5jYWNoZSA9IG51bGw7XHJcblx0XHRcdC8vIGRvZXMgdGhlIG9wdGlvbiBuZWVkIHRvIGJlIHJlbW92ZWQ/XHJcblx0XHRcdHZhciByZW1vdmUgPSBmYWxzZTtcclxuXHRcdFx0Ly8gZ2V0IG9wdGlvbnNcclxuXHRcdFx0dmFyIG8gPSB0aGlzLm9wdGlvbnM7XHJcblx0XHRcdGlmKCEhdilcclxuXHRcdFx0e1xyXG5cdFx0XHRcdC8vIGdldCBudW1iZXIgb2Ygb3B0aW9uc1xyXG5cdFx0XHRcdHZhciBvTCA9IG8ubGVuZ3RoO1xyXG5cdFx0XHRcdGZvcih2YXIgaT1vTC0xOyBpPj0wOyBpLS0pXHJcblx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0aWYodi5jb25zdHJ1Y3RvciA9PSBSZWdFeHApXHJcblx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdGlmKG9baV0udmFsdWUubWF0Y2godikpXHJcblx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRyZW1vdmUgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRlbHNlIGlmKG9baV0udmFsdWUgPT0gdilcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0cmVtb3ZlID0gdHJ1ZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdC8vIGlmIHRoZSBvcHRpb24gaXMgb25seSB0byBiZSByZW1vdmVkIGlmIHNlbGVjdGVkXHJcblx0XHRcdFx0XHRpZihyZW1vdmUgJiYgYVsxXSA9PT0gdHJ1ZSkgcmVtb3ZlID0gb1tpXS5zZWxlY3RlZDtcclxuXHRcdFx0XHRcdGlmKHJlbW92ZSlcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0b1tpXSA9IG51bGw7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRyZW1vdmUgPSBmYWxzZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0ZWxzZVxyXG5cdFx0XHR7XHJcblx0XHRcdFx0Ly8gb25seSByZW1vdmUgaWYgc2VsZWN0ZWQ/XHJcblx0XHRcdFx0aWYoYVsxXSA9PT0gdHJ1ZSlcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHRyZW1vdmUgPSBvW2luZGV4XS5zZWxlY3RlZDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0ZWxzZVxyXG5cdFx0XHRcdHtcclxuXHRcdFx0XHRcdHJlbW92ZSA9IHRydWU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmKHJlbW92ZSlcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHR0aGlzLnJlbW92ZShpbmRleCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0KTtcclxuXHRyZXR1cm4gdGhpcztcclxufTtcclxuXHJcbi8qKlxyXG4gKiBTb3J0IG9wdGlvbnMgKGFzY2VuZGluZyBvciBkZXNjZW5kaW5nKSBpbiBhIHNlbGVjdCBib3ggKG9yIHNlcmllcyBvZiBzZWxlY3QgYm94ZXMpXHJcbiAqXHJcbiAqIEBuYW1lICAgICBzb3J0T3B0aW9uc1xyXG4gKiBAYXV0aG9yICAgU2FtIENvbGxldHQgKGh0dHA6Ly93d3cudGV4b3RlbGEuY28udWspXHJcbiAqIEB0eXBlICAgICBqUXVlcnlcclxuICogQHBhcmFtICAgIEJvb2xlYW4gYXNjZW5kaW5nICAgKG9wdGlvbmFsKSBTb3J0IGFzY2VuZGluZyAodHJ1ZS91bmRlZmluZWQpLCBvciBkZXNjZW5kaW5nIChmYWxzZSlcclxuICogQGV4YW1wbGUgIC8vIGFzY2VuZGluZ1xyXG4gKiAkKFwiI215c2VsZWN0XCIpLnNvcnRPcHRpb25zKCk7IC8vIG9yICQoXCIjbXlzZWxlY3RcIikuc29ydE9wdGlvbnModHJ1ZSk7XHJcbiAqIEBleGFtcGxlICAvLyBkZXNjZW5kaW5nXHJcbiAqICQoXCIjbXlzZWxlY3RcIikuc29ydE9wdGlvbnMoZmFsc2UpO1xyXG4gKlxyXG4gKi9cclxuJC5mbi5zb3J0T3B0aW9ucyA9IGZ1bmN0aW9uKGFzY2VuZGluZylcclxue1xyXG5cdC8vIGdldCBzZWxlY3RlZCB2YWx1ZXMgZmlyc3RcclxuXHR2YXIgc2VsID0gJCh0aGlzKS5zZWxlY3RlZFZhbHVlcygpO1xyXG5cdHZhciBhID0gdHlwZW9mKGFzY2VuZGluZykgPT0gXCJ1bmRlZmluZWRcIiA/IHRydWUgOiAhIWFzY2VuZGluZztcclxuXHR0aGlzLmVhY2goXHJcblx0XHRmdW5jdGlvbigpXHJcblx0XHR7XHJcblx0XHRcdGlmKHRoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKSAhPSBcInNlbGVjdFwiKSByZXR1cm47XHJcblx0XHRcdC8vIGdldCBvcHRpb25zXHJcblx0XHRcdHZhciBvID0gdGhpcy5vcHRpb25zO1xyXG5cdFx0XHQvLyBnZXQgbnVtYmVyIG9mIG9wdGlvbnNcclxuXHRcdFx0dmFyIG9MID0gby5sZW5ndGg7XHJcblx0XHRcdC8vIGNyZWF0ZSBhbiBhcnJheSBmb3Igc29ydGluZ1xyXG5cdFx0XHR2YXIgc0EgPSBbXTtcclxuXHRcdFx0Ly8gbG9vcCB0aHJvdWdoIG9wdGlvbnMsIGFkZGluZyB0byBzb3J0IGFycmF5XHJcblx0XHRcdGZvcih2YXIgaSA9IDA7IGk8b0w7IGkrKylcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHNBW2ldID0ge1xyXG5cdFx0XHRcdFx0djogb1tpXS52YWx1ZSxcclxuXHRcdFx0XHRcdHQ6IG9baV0udGV4dFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHQvLyBzb3J0IGl0ZW1zIGluIGFycmF5XHJcblx0XHRcdHNBLnNvcnQoXHJcblx0XHRcdFx0ZnVuY3Rpb24obzEsIG8yKVxyXG5cdFx0XHRcdHtcclxuXHRcdFx0XHRcdC8vIG9wdGlvbiB0ZXh0IGlzIG1hZGUgbG93ZXJjYXNlIGZvciBjYXNlIGluc2Vuc2l0aXZlIHNvcnRpbmdcclxuXHRcdFx0XHRcdG8xdCA9IG8xLnQudG9Mb3dlckNhc2UoKSwgbzJ0ID0gbzIudC50b0xvd2VyQ2FzZSgpO1xyXG5cdFx0XHRcdFx0Ly8gaWYgb3B0aW9ucyBhcmUgdGhlIHNhbWUsIG5vIHNvcnRpbmcgaXMgbmVlZGVkXHJcblx0XHRcdFx0XHRpZihvMXQgPT0gbzJ0KSByZXR1cm4gMDtcclxuXHRcdFx0XHRcdGlmKGEpXHJcblx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdHJldHVybiBvMXQgPCBvMnQgPyAtMSA6IDE7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRlbHNlXHJcblx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdHJldHVybiBvMXQgPiBvMnQgPyAtMSA6IDE7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHQpO1xyXG5cdFx0XHQvLyBjaGFuZ2UgdGhlIG9wdGlvbnMgdG8gbWF0Y2ggdGhlIHNvcnQgYXJyYXlcclxuXHRcdFx0Zm9yKHZhciBpID0gMDsgaTxvTDsgaSsrKVxyXG5cdFx0XHR7XHJcblx0XHRcdFx0b1tpXS50ZXh0ID0gc0FbaV0udDtcclxuXHRcdFx0XHRvW2ldLnZhbHVlID0gc0FbaV0udjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdCkuc2VsZWN0T3B0aW9ucyhzZWwsIHRydWUpOyAvLyBzZWxlY3QgdmFsdWVzLCBjbGVhcmluZyBleGlzdGluZyBvbmVzXHJcblx0cmV0dXJuIHRoaXM7XHJcbn07XHJcbi8qKlxyXG4gKiBTZWxlY3RzIGFuIG9wdGlvbiBieSB2YWx1ZVxyXG4gKlxyXG4gKiBAbmFtZSAgICAgc2VsZWN0T3B0aW9uc1xyXG4gKiBAYXV0aG9yICAgTWF0aGlhcyBCYW5rIChodHRwOi8vd3d3Lm1hdGhpYXMtYmFuay5kZSksIG9yaWdpbmFsIGZ1bmN0aW9uXHJcbiAqIEBhdXRob3IgICBTYW0gQ29sbGV0dCAoaHR0cDovL3d3dy50ZXhvdGVsYS5jby51ayksIGFkZGl0aW9uIG9mIHJlZ3VsYXIgZXhwcmVzc2lvbiBtYXRjaGluZ1xyXG4gKiBAdHlwZSAgICAgalF1ZXJ5XHJcbiAqIEBwYXJhbSAgICBTdHJpbmd8UmVnRXhwfEFycmF5IHZhbHVlICBXaGljaCBvcHRpb25zIHNob3VsZCBiZSBzZWxlY3RlZFxyXG4gKiBjYW4gYmUgYSBzdHJpbmcgb3IgcmVndWxhciBleHByZXNzaW9uLCBvciBhbiBhcnJheSBvZiBzdHJpbmdzIC8gcmVndWxhciBleHByZXNzaW9uc1xyXG4gKiBAcGFyYW0gICAgQm9vbGVhbiBjbGVhciAgQ2xlYXIgZXhpc3Rpbmcgc2VsZWN0ZWQgb3B0aW9ucywgZGVmYXVsdCBmYWxzZVxyXG4gKiBAZXhhbXBsZSAgJChcIiNteXNlbGVjdFwiKS5zZWxlY3RPcHRpb25zKFwidmFsMVwiKTsgLy8gd2l0aCB0aGUgdmFsdWUgJ3ZhbDEnXHJcbiAqIEBleGFtcGxlICAkKFwiI215c2VsZWN0XCIpLnNlbGVjdE9wdGlvbnMoW1widmFsMVwiLFwidmFsMlwiLFwidmFsM1wiXSk7IC8vIHdpdGggdGhlIHZhbHVlcyAndmFsMScgJ3ZhbDInICd2YWwzJ1xyXG4gKiBAZXhhbXBsZSAgJChcIiNteXNlbGVjdFwiKS5zZWxlY3RPcHRpb25zKC9edmFsL2kpOyAvLyB3aXRoIHRoZSB2YWx1ZSBzdGFydGluZyB3aXRoICd2YWwnLCBjYXNlIGluc2Vuc2l0aXZlXHJcbiAqXHJcbiAqL1xyXG4kLmZuLnNlbGVjdE9wdGlvbnMgPSBmdW5jdGlvbih2YWx1ZSwgY2xlYXIpXHJcbntcclxuXHR2YXIgdiA9IHZhbHVlO1xyXG5cdHZhciB2VCA9IHR5cGVvZih2YWx1ZSk7XHJcblx0Ly8gaGFuZGxlIGFycmF5c1xyXG5cdGlmKHZUID09IFwib2JqZWN0XCIgJiYgdi5jb25zdHJ1Y3RvciA9PSBBcnJheSlcclxuXHR7XHJcblx0XHR2YXIgJHRoaXMgPSB0aGlzO1xyXG5cdFx0JC5lYWNoKHYsIGZ1bmN0aW9uKClcclxuXHRcdFx0e1xyXG4gICAgICBcdFx0XHRcdCR0aGlzLnNlbGVjdE9wdGlvbnModGhpcywgY2xlYXIpO1xyXG4gICAgXHRcdFx0fVxyXG5cdFx0KTtcclxuXHR9O1xyXG5cdHZhciBjID0gY2xlYXIgfHwgZmFsc2U7XHJcblx0Ly8gaGFzIHRvIGJlIGEgc3RyaW5nIG9yIHJlZ3VsYXIgZXhwcmVzc2lvbiAob2JqZWN0IGluIElFLCBmdW5jdGlvbiBpbiBGaXJlZm94KVxyXG5cdGlmKHZUICE9IFwic3RyaW5nXCIgJiYgdlQgIT0gXCJmdW5jdGlvblwiICYmIHZUICE9IFwib2JqZWN0XCIpIHJldHVybiB0aGlzO1xyXG5cdHRoaXMuZWFjaChcclxuXHRcdGZ1bmN0aW9uKClcclxuXHRcdHtcclxuXHRcdFx0aWYodGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpICE9IFwic2VsZWN0XCIpIHJldHVybiB0aGlzO1xyXG5cdFx0XHQvLyBnZXQgb3B0aW9uc1xyXG5cdFx0XHR2YXIgbyA9IHRoaXMub3B0aW9ucztcclxuXHRcdFx0Ly8gZ2V0IG51bWJlciBvZiBvcHRpb25zXHJcblx0XHRcdHZhciBvTCA9IG8ubGVuZ3RoO1xyXG5cdFx0XHRmb3IodmFyIGkgPSAwOyBpPG9MOyBpKyspXHJcblx0XHRcdHtcclxuXHRcdFx0XHRpZih2LmNvbnN0cnVjdG9yID09IFJlZ0V4cClcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHRpZihvW2ldLnZhbHVlLm1hdGNoKHYpKVxyXG5cdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRvW2ldLnNlbGVjdGVkID0gdHJ1ZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGVsc2UgaWYoYylcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0b1tpXS5zZWxlY3RlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRlbHNlXHJcblx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0aWYob1tpXS52YWx1ZSA9PSB2KVxyXG5cdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRvW2ldLnNlbGVjdGVkID0gdHJ1ZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGVsc2UgaWYoYylcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0b1tpXS5zZWxlY3RlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdCk7XHJcblx0cmV0dXJuIHRoaXM7XHJcbn07XHJcblxyXG4vKipcclxuICogQ29weSBvcHRpb25zIHRvIGFub3RoZXIgc2VsZWN0XHJcbiAqXHJcbiAqIEBuYW1lICAgICBjb3B5T3B0aW9uc1xyXG4gKiBAYXV0aG9yICAgU2FtIENvbGxldHQgKGh0dHA6Ly93d3cudGV4b3RlbGEuY28udWspXHJcbiAqIEB0eXBlICAgICBqUXVlcnlcclxuICogQHBhcmFtICAgIFN0cmluZyB0byAgRWxlbWVudCB0byBjb3B5IHRvXHJcbiAqIEBwYXJhbSAgICBTdHJpbmcgd2hpY2ggIChvcHRpb25hbCkgU3BlY2lmaWVzIHdoaWNoIG9wdGlvbnMgc2hvdWxkIGJlIGNvcGllZCAtICdhbGwnIG9yICdzZWxlY3RlZCcuIERlZmF1bHQgaXMgJ3NlbGVjdGVkJ1xyXG4gKiBAZXhhbXBsZSAgJChcIiNteXNlbGVjdFwiKS5jb3B5T3B0aW9ucyhcIiNteXNlbGVjdDJcIik7IC8vIGNvcHkgc2VsZWN0ZWQgb3B0aW9ucyBmcm9tICdteXNlbGVjdCcgdG8gJ215c2VsZWN0MidcclxuICogQGV4YW1wbGUgICQoXCIjbXlzZWxlY3RcIikuY29weU9wdGlvbnMoXCIjbXlzZWxlY3QyXCIsXCJzZWxlY3RlZFwiKTsgLy8gc2FtZSBhcyBhYm92ZVxyXG4gKiBAZXhhbXBsZSAgJChcIiNteXNlbGVjdFwiKS5jb3B5T3B0aW9ucyhcIiNteXNlbGVjdDJcIixcImFsbFwiKTsgLy8gY29weSBhbGwgb3B0aW9ucyBmcm9tICdteXNlbGVjdCcgdG8gJ215c2VsZWN0MidcclxuICpcclxuICovXHJcbiQuZm4uY29weU9wdGlvbnMgPSBmdW5jdGlvbih0bywgd2hpY2gpXHJcbntcclxuXHR2YXIgdyA9IHdoaWNoIHx8IFwic2VsZWN0ZWRcIjtcclxuXHRpZigkKHRvKS5zaXplKCkgPT0gMCkgcmV0dXJuIHRoaXM7XHJcblx0dGhpcy5lYWNoKFxyXG5cdFx0ZnVuY3Rpb24oKVxyXG5cdFx0e1xyXG5cdFx0XHRpZih0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT0gXCJzZWxlY3RcIikgcmV0dXJuIHRoaXM7XHJcblx0XHRcdC8vIGdldCBvcHRpb25zXHJcblx0XHRcdHZhciBvID0gdGhpcy5vcHRpb25zO1xyXG5cdFx0XHQvLyBnZXQgbnVtYmVyIG9mIG9wdGlvbnNcclxuXHRcdFx0dmFyIG9MID0gby5sZW5ndGg7XHJcblx0XHRcdGZvcih2YXIgaSA9IDA7IGk8b0w7IGkrKylcclxuXHRcdFx0e1xyXG5cdFx0XHRcdGlmKHcgPT0gXCJhbGxcIiB8fCAodyA9PSBcInNlbGVjdGVkXCIgJiYgb1tpXS5zZWxlY3RlZCkpXHJcblx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0JCh0bykuYWRkT3B0aW9uKG9baV0udmFsdWUsIG9baV0udGV4dCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0KTtcclxuXHRyZXR1cm4gdGhpcztcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDaGVja3MgaWYgYSBzZWxlY3QgYm94IGhhcyBhbiBvcHRpb24gd2l0aCB0aGUgc3VwcGxpZWQgdmFsdWVcclxuICpcclxuICogQG5hbWUgICAgIGNvbnRhaW5zT3B0aW9uXHJcbiAqIEBhdXRob3IgICBTYW0gQ29sbGV0dCAoaHR0cDovL3d3dy50ZXhvdGVsYS5jby51aylcclxuICogQHR5cGUgICAgIEJvb2xlYW58alF1ZXJ5XHJcbiAqIEBwYXJhbSAgICBTdHJpbmd8UmVnRXhwIHZhbHVlICBXaGljaCB2YWx1ZSB0byBjaGVjayBmb3IuIENhbiBiZSBhIHN0cmluZyBvciByZWd1bGFyIGV4cHJlc3Npb25cclxuICogQHBhcmFtICAgIEZ1bmN0aW9uIGZuICAgICAgICAgIChvcHRpb25hbCkgRnVuY3Rpb24gdG8gYXBwbHkgaWYgYW4gb3B0aW9uIHdpdGggdGhlIGdpdmVuIHZhbHVlIGlzIGZvdW5kLlxyXG4gKiBVc2UgdGhpcyBpZiB5b3UgZG9uJ3Qgd2FudCB0byBicmVhayB0aGUgY2hhaW5pbmdcclxuICogQGV4YW1wbGUgIGlmKCQoXCIjbXlzZWxlY3RcIikuY29udGFpbnNPcHRpb24oXCJ2YWwxXCIpKSBhbGVydChcIkhhcyBhbiBvcHRpb24gd2l0aCB0aGUgdmFsdWUgJ3ZhbDEnXCIpO1xyXG4gKiBAZXhhbXBsZSAgaWYoJChcIiNteXNlbGVjdFwiKS5jb250YWluc09wdGlvbigvXnZhbC9pKSkgYWxlcnQoXCJIYXMgYW4gb3B0aW9uIHdpdGggdGhlIHZhbHVlIHN0YXJ0aW5nIHdpdGggJ3ZhbCdcIik7XHJcbiAqIEBleGFtcGxlICAkKFwiI215c2VsZWN0XCIpLmNvbnRhaW5zT3B0aW9uKFwidmFsMVwiLCBjb3B5b3B0aW9uKS5kb1NvbWV0aGluZ0Vsc2VXaXRoU2VsZWN0KCk7IC8vIGNhbGxzIGNvcHlvcHRpb24gKHVzZXIgZGVmaW5lZCBmdW5jdGlvbikgZm9yIGFueSBvcHRpb25zIGZvdW5kLCBjaGFpbiBpcyBjb250aW51ZWRcclxuICpcclxuICovXHJcbiQuZm4uY29udGFpbnNPcHRpb24gPSBmdW5jdGlvbih2YWx1ZSwgZm4pXHJcbntcclxuXHR2YXIgZm91bmQgPSBmYWxzZTtcclxuXHR2YXIgdiA9IHZhbHVlO1xyXG5cdHZhciB2VCA9IHR5cGVvZih2KTtcclxuXHR2YXIgZlQgPSB0eXBlb2YoZm4pO1xyXG5cdC8vIGhhcyB0byBiZSBhIHN0cmluZyBvciByZWd1bGFyIGV4cHJlc3Npb24gKG9iamVjdCBpbiBJRSwgZnVuY3Rpb24gaW4gRmlyZWZveClcclxuXHRpZih2VCAhPSBcInN0cmluZ1wiICYmIHZUICE9IFwiZnVuY3Rpb25cIiAmJiB2VCAhPSBcIm9iamVjdFwiKSByZXR1cm4gZlQgPT0gXCJmdW5jdGlvblwiID8gdGhpczogZm91bmQ7XHJcblx0dGhpcy5lYWNoKFxyXG5cdFx0ZnVuY3Rpb24oKVxyXG5cdFx0e1xyXG5cdFx0XHRpZih0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT0gXCJzZWxlY3RcIikgcmV0dXJuIHRoaXM7XHJcblx0XHRcdC8vIG9wdGlvbiBhbHJlYWR5IGZvdW5kXHJcblx0XHRcdGlmKGZvdW5kICYmIGZUICE9IFwiZnVuY3Rpb25cIikgcmV0dXJuIGZhbHNlO1xyXG5cdFx0XHQvLyBnZXQgb3B0aW9uc1xyXG5cdFx0XHR2YXIgbyA9IHRoaXMub3B0aW9ucztcclxuXHRcdFx0Ly8gZ2V0IG51bWJlciBvZiBvcHRpb25zXHJcblx0XHRcdHZhciBvTCA9IG8ubGVuZ3RoO1xyXG5cdFx0XHRmb3IodmFyIGkgPSAwOyBpPG9MOyBpKyspXHJcblx0XHRcdHtcclxuXHRcdFx0XHRpZih2LmNvbnN0cnVjdG9yID09IFJlZ0V4cClcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHRpZiAob1tpXS52YWx1ZS5tYXRjaCh2KSlcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0Zm91bmQgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRpZihmVCA9PSBcImZ1bmN0aW9uXCIpIGZuLmNhbGwob1tpXSwgaSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGVsc2VcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHRpZiAob1tpXS52YWx1ZSA9PSB2KVxyXG5cdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRmb3VuZCA9IHRydWU7XHJcblx0XHRcdFx0XHRcdGlmKGZUID09IFwiZnVuY3Rpb25cIikgZm4uY2FsbChvW2ldLCBpKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHQpO1xyXG5cdHJldHVybiBmVCA9PSBcImZ1bmN0aW9uXCIgPyB0aGlzIDogZm91bmQ7XHJcbn07XHJcblxyXG4vKipcclxuICogUmV0dXJucyB2YWx1ZXMgd2hpY2ggaGF2ZSBiZWVuIHNlbGVjdGVkXHJcbiAqXHJcbiAqIEBuYW1lICAgICBzZWxlY3RlZFZhbHVlc1xyXG4gKiBAYXV0aG9yICAgU2FtIENvbGxldHQgKGh0dHA6Ly93d3cudGV4b3RlbGEuY28udWspXHJcbiAqIEB0eXBlICAgICBBcnJheVxyXG4gKiBAZXhhbXBsZSAgJChcIiNteXNlbGVjdFwiKS5zZWxlY3RlZFZhbHVlcygpO1xyXG4gKlxyXG4gKi9cclxuJC5mbi5zZWxlY3RlZFZhbHVlcyA9IGZ1bmN0aW9uKClcclxue1xyXG5cdHZhciB2ID0gW107XHJcblx0dGhpcy5zZWxlY3RlZE9wdGlvbnMoKS5lYWNoKFxyXG5cdFx0ZnVuY3Rpb24oKVxyXG5cdFx0e1xyXG5cdFx0XHR2W3YubGVuZ3RoXSA9IHRoaXMudmFsdWU7XHJcblx0XHR9XHJcblx0KTtcclxuXHRyZXR1cm4gdjtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZXR1cm5zIHRleHQgd2hpY2ggaGFzIGJlZW4gc2VsZWN0ZWRcclxuICpcclxuICogQG5hbWUgICAgIHNlbGVjdGVkVGV4dHNcclxuICogQGF1dGhvciAgIFNhbSBDb2xsZXR0IChodHRwOi8vd3d3LnRleG90ZWxhLmNvLnVrKVxyXG4gKiBAdHlwZSAgICAgQXJyYXlcclxuICogQGV4YW1wbGUgICQoXCIjbXlzZWxlY3RcIikuc2VsZWN0ZWRUZXh0cygpO1xyXG4gKlxyXG4gKi9cclxuJC5mbi5zZWxlY3RlZFRleHRzID0gZnVuY3Rpb24oKVxyXG57XHJcblx0dmFyIHQgPSBbXTtcclxuXHR0aGlzLnNlbGVjdGVkT3B0aW9ucygpLmVhY2goXHJcblx0XHRmdW5jdGlvbigpXHJcblx0XHR7XHJcblx0XHRcdHRbdC5sZW5ndGhdID0gdGhpcy50ZXh0O1xyXG5cdFx0fVxyXG5cdCk7XHJcblx0cmV0dXJuIHQ7XHJcbn07XHJcblxyXG4vKipcclxuICogUmV0dXJucyBvcHRpb25zIHdoaWNoIGhhdmUgYmVlbiBzZWxlY3RlZFxyXG4gKlxyXG4gKiBAbmFtZSAgICAgc2VsZWN0ZWRPcHRpb25zXHJcbiAqIEBhdXRob3IgICBTYW0gQ29sbGV0dCAoaHR0cDovL3d3dy50ZXhvdGVsYS5jby51aylcclxuICogQHR5cGUgICAgIGpRdWVyeVxyXG4gKiBAZXhhbXBsZSAgJChcIiNteXNlbGVjdFwiKS5zZWxlY3RlZE9wdGlvbnMoKTtcclxuICpcclxuICovXHJcbiQuZm4uc2VsZWN0ZWRPcHRpb25zID0gZnVuY3Rpb24oKVxyXG57XHJcblx0cmV0dXJuIHRoaXMuZmluZChcIm9wdGlvbjpzZWxlY3RlZFwiKTtcclxufTtcclxuXHJcbn0pKGpRdWVyeSk7IiwiJC5mbi5pd2dhbGxlcnkgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuXG4gICAgdmFyIG9wdHMgPSAkLmV4dGVuZCgge30sICQuZm4uaXdnYWxsZXJ5LmRlZmF1bHRzLCBvcHRpb25zICk7XG5cbiAgICB0aGlzLmRpdkdhbGxlcnkgPSAkKFwiPGRpdiBpZD0nXCIgKyB0aGlzLmF0dHIoXCJpZFwiKSArIFwiX2dhbGxlcnknPjwvZGl2PlwiKTtcbiAgICB0aGlzLmRpdkhpZGRlbnMgPSAkKFwiPGRpdiBpZD0nXCIgKyB0aGlzLmF0dHIoXCJpZFwiKSArIFwiX2Rpdl9oaWRkZW5zJz48L2Rpdj5cIik7XG4gICAgdGhpcy5kaXZGaWxlcyA9ICQoXCI8ZGl2IGlkPSdcIiArIHRoaXMuYXR0cihcImlkXCIpICsgXCJfZmlsZXNsaXN0Jz48L2Rpdj5cIik7XG5cblxuICAgIHRoaXMuYnVpbGRJbWFnZSA9IGZ1bmN0aW9uIChpbWcpIHtcbiAgICAgICAgcmV0dXJuIFwiPGltZyBzcmM9J1wiICsgaW1nLnVybEltYWdlICsgXCInIGRhdGEtaW1hZ2U9J1wiICsgaW1nLnVybEltYWdlICsgXCInIGRhdGEtZGVzY3JpcHRpb249J1wiICsgaW1nLmRlc2NyaXB0aW9uICtcIicgZGF0YS1pZHVwbG9hZD0nXCIrIGltZy5pZHVwbG9hZCArXCInPlwiO1xuICAgIH07XG5cbiAgICB0aGlzLmJ1aWxkSGlkZGVuID0gZnVuY3Rpb24gKGlkdXBsb2FkKSB7XG4gICAgICAgIHJldHVybiBcIjxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J1wiICsgdGhpcy5hdHRyKFwiaWRcIikgK1wiX2hpZGRlbnNbXScgdmFsdWU9J1wiICsgaWR1cGxvYWQgKyBcIic+XCI7XG4gICAgfTtcblxuICAgIHRoaXMuYnVpbGRGaWxlTGluayA9IGZ1bmN0aW9uIChpbWcpIHtcbiAgICAgICAgdmFyICRyZW1vdmVMaW5rID0gJChcIjxhIGhyZWY9J2phdmFzY3JpcHQ6dm9pZCgwKScgaWQ9J1wiICsgdGhpcy5hdHRyKFwiaWRcIikgK1wiX1wiICsgaW1nLmlkdXBsb2FkK1wiX2RlbGV0ZSc+WDwvYT5cIik7XG4gICAgICAgIHZhciBvYmogPSB0aGlzO1xuICAgICAgICAkcmVtb3ZlTGluay5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBjdXJyZW50O1xuICAgICAgICAgICAgdmFyIGltYWdlcyA9IFtdO1xuICAgICAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IG9iai5hcGlHYWxsZXJ5LmdldE51bUl0ZW1zKCk7IGkrKyl7XG4gICAgICAgICAgICAgICAgY3VycmVudCA9IG9iai5hcGlHYWxsZXJ5LmdldEl0ZW0oaSk7XG4gICAgICAgICAgICAgICAgaWYoZ2V0RmxvYXQoY3VycmVudC5pZHVwbG9hZCkgPT09IGdldEZsb2F0KGltZy5pZHVwbG9hZCkpIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGltYWdlcy5wdXNoKGN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYodHlwZW9mIG9wdHMub25DaGFuZ2VHYWxsZXJ5ID09PSBcImZ1bmN0aW9uXCIpIG9wdHMub25DaGFuZ2VHYWxsZXJ5KGltYWdlcyk7XG4gICAgICAgICAgICBvYmouYnVpbGRHYWxsZXJ5KGltYWdlcyk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgZGl2ID0gJChcIjxkaXYgaWQ9J1wiKyB0aGlzLmF0dHIoXCJpZFwiKSArIFwiX1wiICsgaW1nLmlkdXBsb2FkICsgIFwiX2RpdlJlbW92ZUxpbmsnPlwiICsgaW1nLmRlc2NyaXB0aW9uICsgXCIgWzwvZGl2PlwiKTtcbiAgICAgICAgZGl2LmFwcGVuZCgkcmVtb3ZlTGluayk7XG4gICAgICAgIGRpdi5hcHBlbmQoXCJdIFwiKTtcbiAgICAgICAgcmV0dXJuIGRpdjtcbiAgICB9O1xuXG4gICAgdGhpcy5idWlsZEdhbGxlcnkgPSBmdW5jdGlvbiAoaW1hZ2VzKSB7XG4gICAgICAgIHZhciBpbWdzVG9BcHBlbmQgPSAnJywgaGlkZGVucyA9ICcnO1xuICAgICAgICB0aGlzLmRpdkZpbGVzLmh0bWwoXCJcIik7XG5cbiAgICAgICAgdmFyIGltZztcbiAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGltYWdlcy5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICBpbWcgPSBpbWFnZXNbaV07XG4gICAgICAgICAgICBpbWdzVG9BcHBlbmQgKz0gdGhpcy5idWlsZEltYWdlKGltZyk7XG4gICAgICAgICAgICBoaWRkZW5zICs9IHRoaXMuYnVpbGRIaWRkZW4oaW1nLmlkdXBsb2FkKTtcbiAgICAgICAgICAgIGlmKCFnZXRGbG9hdChpbWcuaWR1cGxvYWQpKSBjb250aW51ZTtcbiAgICAgICAgICAgIHRoaXMuZGl2RmlsZXMuYXBwZW5kKHRoaXMuYnVpbGRGaWxlTGluayhpbWcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGl2R2FsbGVyeS5odG1sKGltZ3NUb0FwcGVuZCk7XG4gICAgICAgIHRoaXMuYXBpR2FsbGVyeSA9IHRoaXMuZGl2R2FsbGVyeS51bml0ZWdhbGxlcnkoe1xuICAgICAgICAgICAgZ2FsbGVyeV90aGVtZTogXCJjb21wYWN0XCIsXG4gICAgICAgICAgICB0aGVtZV9wYW5lbF9wb3NpdGlvbjogXCJyaWdodFwiLFxuICAgICAgICAgICAgdGhlbWVfaGlkZV9wYW5lbF91bmRlcl93aWR0aDogMTAwMCxcbiAgICAgICAgICAgIGdhbGxlcnlfd2lkdGg6IG9wdHMuZ2FsbGVyeVdpZHRoLFxuICAgICAgICAgICAgZ2FsbGVyeV9oZWlnaHQ6IG9wdHMuZ2FsbGVyeUhlaWdodCxcbiAgICAgICAgICAgIHNsaWRlcl9zY2FsZV9tb2RlOiBcImZpdFwiXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmRpdkhpZGRlbnMuaHRtbChoaWRkZW5zKTtcbiAgICAgICAgaWYodGhpcy5hcGlHYWxsZXJ5LmdldE51bUl0ZW1zKCkgPD0gMSkgJChcIiNcIiArIHRoaXMuZGl2R2FsbGVyeS5hdHRyKFwiaWRcIikgK1wiIC51Zy1wYW5lbC1oYW5kbGUtdGlwXCIpLmNsaWNrKCk7XG4gICAgfTtcblxuICAgIHZhciBvYmogPSB0aGlzO1xuICAgIHZhciBkaXZfdXBsb2FkID0gJChcIjxkaXYgaWQ9J1wiKyB0aGlzLmF0dHIoXCJpZFwiKSArXCJfdXBsb2FkJz48L2Rpdj5cIik7XG4gICAgZGl2X3VwbG9hZC51cGxvYWRGaWxlKHtcbiAgICAgICAgdXJsOiBcImFqYXgucGhwP0pTT04mb2JqZWN0PVVwbG9hZGVkRmlsZSZ0aXBvdmlldz1qcXVlcnlQbHVnaW5VcGxvYWRJbkdhbGxlcnkmaXNfY3J5cHRlZD0xXCIsXG4gICAgICAgIGFsbG93ZWRUeXBlczogJ2pwZyxqcGVnLHBuZyxibXAsZ2lmLHRpZmYnLFxuICAgICAgICBkcmFnRHJvcFN0cjogb3B0cy5kcmFnRHJvcFN0cmluZyxcbiAgICAgICAgZXh0RXJyb3JTdHI6IG9wdHMuZXh0RXJyb3JTdHJpbmcsXG4gICAgICAgIHVwbG9hZFN0cjogb3B0cy51cGxvYWRTdHJpbmcsXG4gICAgICAgIHNob3dEb3dubG9hZDogdHJ1ZSxcbiAgICAgICAgc2hvd0RlbGV0ZTogdHJ1ZSxcbiAgICAgICAgb25TdWNjZXNzOiBmdW5jdGlvbiAoZmlsZXMsIGRhdGEpIHtcbiAgICAgICAgICAgIHZhciBpZHVwbG9hZCA9IGdldEZsb2F0KGRhdGFbMV0pO1xuXG4gICAgICAgICAgICBpZiAoaWR1cGxvYWQgPT09IDApIHJldHVybjtcblxuICAgICAgICAgICAgdmFyIGltYWdlcyA9IFtdO1xuXG4gICAgICAgICAgICB2YXIgaW1nO1xuICAgICAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IG9iai5hcGlHYWxsZXJ5LmdldE51bUl0ZW1zKCk7IGkrKyl7XG4gICAgICAgICAgICAgICAgaW1nID0gb2JqLmFwaUdhbGxlcnkuZ2V0SXRlbShpKTtcbiAgICAgICAgICAgICAgICBpZihpbWcuaWR1cGxvYWQgPT09IDApIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGltYWdlcy5wdXNoKGltZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgcGF0aCA9IFwiaW5jbHVkZS9zaG93X2ZpbGVzLnBocD9pZHVwbG9hZD1cIiArIGlkdXBsb2FkICsgXCImdG9rZW49XCIgKyBvcHRzLnRva2VuO1xuICAgICAgICAgICAgaW1hZ2VzLnB1c2goe3VybEltYWdlOiBwYXRoLCBkZXNjcmlwdGlvbjogZmlsZXMsIGlkdXBsb2FkOiBpZHVwbG9hZH0pO1xuXG4gICAgICAgICAgICBpZih0eXBlb2Ygb3B0cy5vbkNoYW5nZUdhbGxlcnkgPT09IFwiZnVuY3Rpb25cIikgb3B0cy5vbkNoYW5nZUdhbGxlcnkoaW1hZ2VzKTtcbiAgICAgICAgICAgIG9iai5idWlsZEdhbGxlcnkoaW1hZ2VzKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5hcHBlbmQodGhpcy5kaXZHYWxsZXJ5KTtcbiAgICB0aGlzLmFwcGVuZChvcHRzLmxhYmVsU3RyaW5nICsgXCI8YnI+XCIpO1xuICAgIHRoaXMuYXBwZW5kKGRpdl91cGxvYWQpO1xuICAgIHRoaXMuYXBwZW5kKHRoaXMuZGl2SGlkZGVucyk7XG4gICAgdGhpcy5hcHBlbmQodGhpcy5kaXZGaWxlcyk7XG4gICAgdGhpcy5idWlsZEdhbGxlcnkob3B0cy5pbWFnZXMpO1xufTtcblxuJC5mbi5pd2dhbGxlcnkuZGVmYXVsdHMgPSAge1xuICAgIGxhYmVsU3RyaW5nOiBcIlwiLFxuICAgIGNvZGNsaWVudGU6IFwiXCIsXG4gICAgaW1hZ2VzOiBbXSxcbiAgICBkcmFnRHJvcFN0cmluZzogXCJcIixcbiAgICBleHRFcnJvclN0cmluZzogXCJcIixcbiAgICB1cGxvYWRTdHJpbmc6IFwiXCIsXG4gICAgZ2FsbGVyeVdpZHRoOiA5MDAsXG4gICAgZ2FsbGVyeUhlaWdodDogNTAwLFxuICAgIHRva2VuOiBcIlwiLFxuICAgIHNlc3NJZDogXCJcIixcbiAgICBvbkNoYW5nZUdhbGxlcnk6IG51bGxcbn07IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQge307IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQge307IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQge307IiwidmFyIG1hcCA9IHtcblx0XCIuL2FmXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9hZi5qc1wiLFxuXHRcIi4vYWYuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FmLmpzXCIsXG5cdFwiLi9hclwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXIuanNcIixcblx0XCIuL2FyLWR6XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9hci1kei5qc1wiLFxuXHRcIi4vYXItZHouanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLWR6LmpzXCIsXG5cdFwiLi9hci1rd1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXIta3cuanNcIixcblx0XCIuL2FyLWt3LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9hci1rdy5qc1wiLFxuXHRcIi4vYXItbHlcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLWx5LmpzXCIsXG5cdFwiLi9hci1seS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItbHkuanNcIixcblx0XCIuL2FyLW1hXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9hci1tYS5qc1wiLFxuXHRcIi4vYXItbWEuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLW1hLmpzXCIsXG5cdFwiLi9hci1wc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItcHMuanNcIixcblx0XCIuL2FyLXBzLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9hci1wcy5qc1wiLFxuXHRcIi4vYXItc2FcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLXNhLmpzXCIsXG5cdFwiLi9hci1zYS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItc2EuanNcIixcblx0XCIuL2FyLXRuXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9hci10bi5qc1wiLFxuXHRcIi4vYXItdG4uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLXRuLmpzXCIsXG5cdFwiLi9hci5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXIuanNcIixcblx0XCIuL2F6XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9hei5qc1wiLFxuXHRcIi4vYXouanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2F6LmpzXCIsXG5cdFwiLi9iZVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYmUuanNcIixcblx0XCIuL2JlLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9iZS5qc1wiLFxuXHRcIi4vYmdcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JnLmpzXCIsXG5cdFwiLi9iZy5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYmcuanNcIixcblx0XCIuL2JtXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ibS5qc1wiLFxuXHRcIi4vYm0uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JtLmpzXCIsXG5cdFwiLi9iblwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYm4uanNcIixcblx0XCIuL2JuLWJkXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ibi1iZC5qc1wiLFxuXHRcIi4vYm4tYmQuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JuLWJkLmpzXCIsXG5cdFwiLi9ibi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYm4uanNcIixcblx0XCIuL2JvXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9iby5qc1wiLFxuXHRcIi4vYm8uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JvLmpzXCIsXG5cdFwiLi9iclwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYnIuanNcIixcblx0XCIuL2JyLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ici5qc1wiLFxuXHRcIi4vYnNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JzLmpzXCIsXG5cdFwiLi9icy5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYnMuanNcIixcblx0XCIuL2NhXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9jYS5qc1wiLFxuXHRcIi4vY2EuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2NhLmpzXCIsXG5cdFwiLi9jc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvY3MuanNcIixcblx0XCIuL2NzLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9jcy5qc1wiLFxuXHRcIi4vY3ZcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2N2LmpzXCIsXG5cdFwiLi9jdi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvY3YuanNcIixcblx0XCIuL2N5XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9jeS5qc1wiLFxuXHRcIi4vY3kuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2N5LmpzXCIsXG5cdFwiLi9kYVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZGEuanNcIixcblx0XCIuL2RhLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9kYS5qc1wiLFxuXHRcIi4vZGVcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2RlLmpzXCIsXG5cdFwiLi9kZS1hdFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZGUtYXQuanNcIixcblx0XCIuL2RlLWF0LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9kZS1hdC5qc1wiLFxuXHRcIi4vZGUtY2hcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2RlLWNoLmpzXCIsXG5cdFwiLi9kZS1jaC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZGUtY2guanNcIixcblx0XCIuL2RlLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9kZS5qc1wiLFxuXHRcIi4vZHZcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2R2LmpzXCIsXG5cdFwiLi9kdi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZHYuanNcIixcblx0XCIuL2VsXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lbC5qc1wiLFxuXHRcIi4vZWwuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VsLmpzXCIsXG5cdFwiLi9lbi1hdVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tYXUuanNcIixcblx0XCIuL2VuLWF1LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lbi1hdS5qc1wiLFxuXHRcIi4vZW4tY2FcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLWNhLmpzXCIsXG5cdFwiLi9lbi1jYS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tY2EuanNcIixcblx0XCIuL2VuLWdiXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lbi1nYi5qc1wiLFxuXHRcIi4vZW4tZ2IuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLWdiLmpzXCIsXG5cdFwiLi9lbi1pZVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4taWUuanNcIixcblx0XCIuL2VuLWllLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lbi1pZS5qc1wiLFxuXHRcIi4vZW4taWxcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLWlsLmpzXCIsXG5cdFwiLi9lbi1pbC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4taWwuanNcIixcblx0XCIuL2VuLWluXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lbi1pbi5qc1wiLFxuXHRcIi4vZW4taW4uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLWluLmpzXCIsXG5cdFwiLi9lbi1uelwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tbnouanNcIixcblx0XCIuL2VuLW56LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lbi1uei5qc1wiLFxuXHRcIi4vZW4tc2dcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLXNnLmpzXCIsXG5cdFwiLi9lbi1zZy5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tc2cuanNcIixcblx0XCIuL2VvXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lby5qc1wiLFxuXHRcIi4vZW8uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VvLmpzXCIsXG5cdFwiLi9lc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXMuanNcIixcblx0XCIuL2VzLWRvXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lcy1kby5qc1wiLFxuXHRcIi4vZXMtZG8uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VzLWRvLmpzXCIsXG5cdFwiLi9lcy1teFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXMtbXguanNcIixcblx0XCIuL2VzLW14LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lcy1teC5qc1wiLFxuXHRcIi4vZXMtdXNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VzLXVzLmpzXCIsXG5cdFwiLi9lcy11cy5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXMtdXMuanNcIixcblx0XCIuL2VzLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lcy5qc1wiLFxuXHRcIi4vZXRcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2V0LmpzXCIsXG5cdFwiLi9ldC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXQuanNcIixcblx0XCIuL2V1XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ldS5qc1wiLFxuXHRcIi4vZXUuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2V1LmpzXCIsXG5cdFwiLi9mYVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZmEuanNcIixcblx0XCIuL2ZhLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9mYS5qc1wiLFxuXHRcIi4vZmlcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZpLmpzXCIsXG5cdFwiLi9maS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZmkuanNcIixcblx0XCIuL2ZpbFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZmlsLmpzXCIsXG5cdFwiLi9maWwuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZpbC5qc1wiLFxuXHRcIi4vZm9cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZvLmpzXCIsXG5cdFwiLi9mby5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZm8uanNcIixcblx0XCIuL2ZyXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9mci5qc1wiLFxuXHRcIi4vZnItY2FcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZyLWNhLmpzXCIsXG5cdFwiLi9mci1jYS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZnItY2EuanNcIixcblx0XCIuL2ZyLWNoXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9mci1jaC5qc1wiLFxuXHRcIi4vZnItY2guanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZyLWNoLmpzXCIsXG5cdFwiLi9mci5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZnIuanNcIixcblx0XCIuL2Z5XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9meS5qc1wiLFxuXHRcIi4vZnkuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2Z5LmpzXCIsXG5cdFwiLi9nYVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZ2EuanNcIixcblx0XCIuL2dhLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9nYS5qc1wiLFxuXHRcIi4vZ2RcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dkLmpzXCIsXG5cdFwiLi9nZC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZ2QuanNcIixcblx0XCIuL2dsXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9nbC5qc1wiLFxuXHRcIi4vZ2wuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dsLmpzXCIsXG5cdFwiLi9nb20tZGV2YVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZ29tLWRldmEuanNcIixcblx0XCIuL2dvbS1kZXZhLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9nb20tZGV2YS5qc1wiLFxuXHRcIi4vZ29tLWxhdG5cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dvbS1sYXRuLmpzXCIsXG5cdFwiLi9nb20tbGF0bi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZ29tLWxhdG4uanNcIixcblx0XCIuL2d1XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ndS5qc1wiLFxuXHRcIi4vZ3UuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2d1LmpzXCIsXG5cdFwiLi9oZVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvaGUuanNcIixcblx0XCIuL2hlLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9oZS5qc1wiLFxuXHRcIi4vaGlcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2hpLmpzXCIsXG5cdFwiLi9oaS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvaGkuanNcIixcblx0XCIuL2hyXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9oci5qc1wiLFxuXHRcIi4vaHIuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2hyLmpzXCIsXG5cdFwiLi9odVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvaHUuanNcIixcblx0XCIuL2h1LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9odS5qc1wiLFxuXHRcIi4vaHktYW1cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2h5LWFtLmpzXCIsXG5cdFwiLi9oeS1hbS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvaHktYW0uanNcIixcblx0XCIuL2lkXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9pZC5qc1wiLFxuXHRcIi4vaWQuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2lkLmpzXCIsXG5cdFwiLi9pc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvaXMuanNcIixcblx0XCIuL2lzLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9pcy5qc1wiLFxuXHRcIi4vaXRcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2l0LmpzXCIsXG5cdFwiLi9pdC1jaFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvaXQtY2guanNcIixcblx0XCIuL2l0LWNoLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9pdC1jaC5qc1wiLFxuXHRcIi4vaXQuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2l0LmpzXCIsXG5cdFwiLi9qYVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvamEuanNcIixcblx0XCIuL2phLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9qYS5qc1wiLFxuXHRcIi4vanZcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2p2LmpzXCIsXG5cdFwiLi9qdi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvanYuanNcIixcblx0XCIuL2thXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9rYS5qc1wiLFxuXHRcIi4va2EuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2thLmpzXCIsXG5cdFwiLi9ra1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUva2suanNcIixcblx0XCIuL2trLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ray5qc1wiLFxuXHRcIi4va21cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ttLmpzXCIsXG5cdFwiLi9rbS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUva20uanNcIixcblx0XCIuL2tuXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9rbi5qc1wiLFxuXHRcIi4va24uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2tuLmpzXCIsXG5cdFwiLi9rb1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUva28uanNcIixcblx0XCIuL2tvLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9rby5qc1wiLFxuXHRcIi4va3VcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2t1LmpzXCIsXG5cdFwiLi9rdS1rbXJcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2t1LWttci5qc1wiLFxuXHRcIi4va3Uta21yLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9rdS1rbXIuanNcIixcblx0XCIuL2t1LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9rdS5qc1wiLFxuXHRcIi4va3lcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2t5LmpzXCIsXG5cdFwiLi9reS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUva3kuanNcIixcblx0XCIuL2xiXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9sYi5qc1wiLFxuXHRcIi4vbGIuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2xiLmpzXCIsXG5cdFwiLi9sb1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbG8uanNcIixcblx0XCIuL2xvLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9sby5qc1wiLFxuXHRcIi4vbHRcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2x0LmpzXCIsXG5cdFwiLi9sdC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbHQuanNcIixcblx0XCIuL2x2XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9sdi5qc1wiLFxuXHRcIi4vbHYuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2x2LmpzXCIsXG5cdFwiLi9tZVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbWUuanNcIixcblx0XCIuL21lLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tZS5qc1wiLFxuXHRcIi4vbWlcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21pLmpzXCIsXG5cdFwiLi9taS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbWkuanNcIixcblx0XCIuL21rXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tay5qc1wiLFxuXHRcIi4vbWsuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21rLmpzXCIsXG5cdFwiLi9tbFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbWwuanNcIixcblx0XCIuL21sLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tbC5qc1wiLFxuXHRcIi4vbW5cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21uLmpzXCIsXG5cdFwiLi9tbi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbW4uanNcIixcblx0XCIuL21yXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tci5qc1wiLFxuXHRcIi4vbXIuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21yLmpzXCIsXG5cdFwiLi9tc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbXMuanNcIixcblx0XCIuL21zLW15XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tcy1teS5qc1wiLFxuXHRcIi4vbXMtbXkuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21zLW15LmpzXCIsXG5cdFwiLi9tcy5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbXMuanNcIixcblx0XCIuL210XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tdC5qc1wiLFxuXHRcIi4vbXQuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL210LmpzXCIsXG5cdFwiLi9teVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbXkuanNcIixcblx0XCIuL215LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9teS5qc1wiLFxuXHRcIi4vbmJcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25iLmpzXCIsXG5cdFwiLi9uYi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbmIuanNcIixcblx0XCIuL25lXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9uZS5qc1wiLFxuXHRcIi4vbmUuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25lLmpzXCIsXG5cdFwiLi9ubFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbmwuanNcIixcblx0XCIuL25sLWJlXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ubC1iZS5qc1wiLFxuXHRcIi4vbmwtYmUuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25sLWJlLmpzXCIsXG5cdFwiLi9ubC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbmwuanNcIixcblx0XCIuL25uXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ubi5qc1wiLFxuXHRcIi4vbm4uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25uLmpzXCIsXG5cdFwiLi9vYy1sbmNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL29jLWxuYy5qc1wiLFxuXHRcIi4vb2MtbG5jLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9vYy1sbmMuanNcIixcblx0XCIuL3BhLWluXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9wYS1pbi5qc1wiLFxuXHRcIi4vcGEtaW4uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3BhLWluLmpzXCIsXG5cdFwiLi9wbFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvcGwuanNcIixcblx0XCIuL3BsLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9wbC5qc1wiLFxuXHRcIi4vcHRcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3B0LmpzXCIsXG5cdFwiLi9wdC1iclwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvcHQtYnIuanNcIixcblx0XCIuL3B0LWJyLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9wdC1ici5qc1wiLFxuXHRcIi4vcHQuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3B0LmpzXCIsXG5cdFwiLi9yb1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvcm8uanNcIixcblx0XCIuL3JvLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9yby5qc1wiLFxuXHRcIi4vcnVcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3J1LmpzXCIsXG5cdFwiLi9ydS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvcnUuanNcIixcblx0XCIuL3NkXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zZC5qc1wiLFxuXHRcIi4vc2QuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NkLmpzXCIsXG5cdFwiLi9zZVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc2UuanNcIixcblx0XCIuL3NlLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zZS5qc1wiLFxuXHRcIi4vc2lcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NpLmpzXCIsXG5cdFwiLi9zaS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc2kuanNcIixcblx0XCIuL3NrXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zay5qc1wiLFxuXHRcIi4vc2suanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NrLmpzXCIsXG5cdFwiLi9zbFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc2wuanNcIixcblx0XCIuL3NsLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zbC5qc1wiLFxuXHRcIi4vc3FcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NxLmpzXCIsXG5cdFwiLi9zcS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc3EuanNcIixcblx0XCIuL3NyXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zci5qc1wiLFxuXHRcIi4vc3ItY3lybFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc3ItY3lybC5qc1wiLFxuXHRcIi4vc3ItY3lybC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc3ItY3lybC5qc1wiLFxuXHRcIi4vc3IuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NyLmpzXCIsXG5cdFwiLi9zc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc3MuanNcIixcblx0XCIuL3NzLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zcy5qc1wiLFxuXHRcIi4vc3ZcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3N2LmpzXCIsXG5cdFwiLi9zdi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc3YuanNcIixcblx0XCIuL3N3XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zdy5qc1wiLFxuXHRcIi4vc3cuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3N3LmpzXCIsXG5cdFwiLi90YVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGEuanNcIixcblx0XCIuL3RhLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90YS5qc1wiLFxuXHRcIi4vdGVcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RlLmpzXCIsXG5cdFwiLi90ZS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGUuanNcIixcblx0XCIuL3RldFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGV0LmpzXCIsXG5cdFwiLi90ZXQuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RldC5qc1wiLFxuXHRcIi4vdGdcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RnLmpzXCIsXG5cdFwiLi90Zy5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGcuanNcIixcblx0XCIuL3RoXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90aC5qc1wiLFxuXHRcIi4vdGguanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RoLmpzXCIsXG5cdFwiLi90a1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGsuanNcIixcblx0XCIuL3RrLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90ay5qc1wiLFxuXHRcIi4vdGwtcGhcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RsLXBoLmpzXCIsXG5cdFwiLi90bC1waC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGwtcGguanNcIixcblx0XCIuL3RsaFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGxoLmpzXCIsXG5cdFwiLi90bGguanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RsaC5qc1wiLFxuXHRcIi4vdHJcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RyLmpzXCIsXG5cdFwiLi90ci5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdHIuanNcIixcblx0XCIuL3R6bFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdHpsLmpzXCIsXG5cdFwiLi90emwuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3R6bC5qc1wiLFxuXHRcIi4vdHptXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90em0uanNcIixcblx0XCIuL3R6bS1sYXRuXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90em0tbGF0bi5qc1wiLFxuXHRcIi4vdHptLWxhdG4uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3R6bS1sYXRuLmpzXCIsXG5cdFwiLi90em0uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3R6bS5qc1wiLFxuXHRcIi4vdWctY25cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3VnLWNuLmpzXCIsXG5cdFwiLi91Zy1jbi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdWctY24uanNcIixcblx0XCIuL3VrXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91ay5qc1wiLFxuXHRcIi4vdWsuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3VrLmpzXCIsXG5cdFwiLi91clwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdXIuanNcIixcblx0XCIuL3VyLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91ci5qc1wiLFxuXHRcIi4vdXpcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3V6LmpzXCIsXG5cdFwiLi91ei1sYXRuXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91ei1sYXRuLmpzXCIsXG5cdFwiLi91ei1sYXRuLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91ei1sYXRuLmpzXCIsXG5cdFwiLi91ei5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdXouanNcIixcblx0XCIuL3ZpXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS92aS5qc1wiLFxuXHRcIi4vdmkuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3ZpLmpzXCIsXG5cdFwiLi94LXBzZXVkb1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUveC1wc2V1ZG8uanNcIixcblx0XCIuL3gtcHNldWRvLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS94LXBzZXVkby5qc1wiLFxuXHRcIi4veW9cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3lvLmpzXCIsXG5cdFwiLi95by5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUveW8uanNcIixcblx0XCIuL3poLWNuXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS96aC1jbi5qc1wiLFxuXHRcIi4vemgtY24uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3poLWNuLmpzXCIsXG5cdFwiLi96aC1oa1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvemgtaGsuanNcIixcblx0XCIuL3poLWhrLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS96aC1oay5qc1wiLFxuXHRcIi4vemgtbW9cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3poLW1vLmpzXCIsXG5cdFwiLi96aC1tby5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvemgtbW8uanNcIixcblx0XCIuL3poLXR3XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS96aC10dy5qc1wiLFxuXHRcIi4vemgtdHcuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3poLXR3LmpzXCJcbn07XG5cblxuZnVuY3Rpb24gd2VicGFja0NvbnRleHQocmVxKSB7XG5cdHZhciBpZCA9IHdlYnBhY2tDb250ZXh0UmVzb2x2ZShyZXEpO1xuXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhpZCk7XG59XG5mdW5jdGlvbiB3ZWJwYWNrQ29udGV4dFJlc29sdmUocmVxKSB7XG5cdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8obWFwLCByZXEpKSB7XG5cdFx0dmFyIGUgPSBuZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiICsgcmVxICsgXCInXCIpO1xuXHRcdGUuY29kZSA9ICdNT0RVTEVfTk9UX0ZPVU5EJztcblx0XHR0aHJvdyBlO1xuXHR9XG5cdHJldHVybiBtYXBbcmVxXTtcbn1cbndlYnBhY2tDb250ZXh0LmtleXMgPSBmdW5jdGlvbiB3ZWJwYWNrQ29udGV4dEtleXMoKSB7XG5cdHJldHVybiBPYmplY3Qua2V5cyhtYXApO1xufTtcbndlYnBhY2tDb250ZXh0LnJlc29sdmUgPSB3ZWJwYWNrQ29udGV4dFJlc29sdmU7XG5tb2R1bGUuZXhwb3J0cyA9IHdlYnBhY2tDb250ZXh0O1xud2VicGFja0NvbnRleHQuaWQgPSBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUgc3luYyByZWN1cnNpdmUgXlxcXFwuXFxcXC8uKiRcIjsiXSwibmFtZXMiOlsiYnVpbGRHb29nbGVNYXBzIiwiZ29vZ2xlbWFwIiwibGF0aXR1ZGluZSIsIiQiLCJkYXRhIiwibG9uZ2l0dWRpbmUiLCJtYXJrZXJzIiwiem9vbSIsInZpZXdTZWFyY2hCb3giLCJtYXAiLCJnb29nbGUiLCJtYXBzIiwiTWFwIiwiY2VudGVyIiwibGF0IiwiZ2V0RmxvYXQiLCJsbmciLCJpbnB1dCIsImF0dHIiLCJzZWFyY2hCb3giLCJwbGFjZXMiLCJTZWFyY2hCb3giLCJjb250cm9scyIsIkNvbnRyb2xQb3NpdGlvbiIsIlRPUF9MRUZUIiwicHVzaCIsImFkZExpc3RlbmVyIiwic2V0Qm91bmRzIiwiZ2V0Qm91bmRzIiwic19tYXJrZXJzIiwiZ2V0UGxhY2VzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIm1hcmtlciIsInNldE1hcCIsImJvdW5kcyIsIkxhdExuZ0JvdW5kcyIsInBsYWNlIiwiZ2VvbWV0cnkiLCJsb2NhdGlvbiIsImNvbnNvbGUiLCJsb2ciLCJpY29uIiwidXJsIiwic2l6ZSIsIlNpemUiLCJvcmlnaW4iLCJQb2ludCIsImFuY2hvciIsInNjYWxlZFNpemUiLCJNYXJrZXIiLCJ0aXRsZSIsIm5hbWUiLCJwb3NpdGlvbiIsInZpZXdwb3J0IiwidW5pb24iLCJleHRlbmQiLCJmaXRCb3VuZHMiLCJnZW9jb2RlciIsIm9wdHMiLCJsYWJlbCIsImNvbG9yIiwic2V0SW5mb1dpbmRvdyIsInRleHQiLCJnbWFya2VyIiwiaW5mbyIsIkluZm9XaW5kb3ciLCJjb250ZW50IiwiaGlkZSIsIm9wZW4iLCJzaG91bGRGb2N1cyIsImFkZHJlc3MiLCJHZW9jb2RlciIsImdlb2NvZGUiLCJyZXN1bHRzIiwic3RhdHVzIiwiaiIsIndpbmRvdyIsIkpRQ2xhc3MiLCJjbGFzc2VzIiwiZXh0ZW5kZXIiLCJmIiwiZyIsInByb3RvdHlwZSIsImgiLCJpIiwiZCIsImUiLCJiIiwiX3N1cGVyIiwiYSIsImFwcGx5IiwiYyIsImFyZ3VtZW50cyIsIl9pbml0IiwiY29uc3RydWN0b3IiLCJKUVBsdWdpbiIsImRlZmF1bHRPcHRpb25zIiwicmVnaW9uYWxPcHRpb25zIiwiX2dldHRlcnMiLCJfZ2V0TWFya2VyIiwiY2FtZWxDYXNlIiwiZm4iLCJBcnJheSIsInNsaWNlIiwiY2FsbCIsIl9pc05vdENoYWluZWQiLCJjb25jYXQiLCJlYWNoIiwiX2F0dGFjaCIsInNldERlZmF1bHRzIiwiaW5BcnJheSIsImhhc0NsYXNzIiwiYWRkQ2xhc3MiLCJfZ2V0TWV0YWRhdGEiLCJlbGVtIiwib3B0aW9ucyIsIl9pbnN0U2V0dGluZ3MiLCJfcG9zdEF0dGFjaCIsIm9wdGlvbiIsInRvTG93ZXJDYXNlIiwicmVwbGFjZSIsInN1YnN0cmluZyIsIm1hdGNoIiwicGFyc2VKU09OIiwiZXZhbCIsIl9nZXRJbnN0IiwiX29wdGlvbnNDaGFuZ2VkIiwiZGVzdHJveSIsIl9wcmVEZXN0cm95IiwicmVtb3ZlRGF0YSIsInJlbW92ZUNsYXNzIiwidG9VcHBlckNhc2UiLCJjcmVhdGVQbHVnaW4iLCJfdHlwZW9mIiwialF1ZXJ5IiwibiIsImFwcGVuZFRleHQiLCJzaG93U2Vjb25kcyIsInVubGltaXRlZEhvdXJzIiwidGltZVN0ZXBzIiwiaW5pdGlhbEZpZWxkIiwibm9TZXBhcmF0b3JFbnRyeSIsInRhYlRvRXhpdCIsInVzZU1vdXNlV2hlZWwiLCJkZWZhdWx0VGltZSIsIm1pblRpbWUiLCJtYXhUaW1lIiwic3Bpbm5lckltYWdlIiwic3Bpbm5lclNpemUiLCJzcGlubmVyQmlnSW1hZ2UiLCJzcGlubmVyQmlnU2l6ZSIsInNwaW5uZXJJbmNEZWNPbmx5Iiwic3Bpbm5lclJlcGVhdCIsImJlZm9yZVNob3ciLCJiZWZvcmVTZXRUaW1lIiwic2hvdzI0SG91cnMiLCJzZXBhcmF0b3IiLCJhbXBtUHJlZml4IiwiYW1wbU5hbWVzIiwic3Bpbm5lclRleHRzIiwiX2FwcGVuZENsYXNzIiwiX2NvbnRyb2xDbGFzcyIsIl9leHBhbmRDbGFzcyIsIl9kaXNhYmxlZElucHV0cyIsIl9maWVsZCIsIl9zZWxlY3RlZEhvdXIiLCJfc2VsZWN0ZWRNaW51dGUiLCJfc2VsZWN0ZWRTZWNvbmQiLCJvbiIsIl9kb0ZvY3VzIiwiX2RvQmx1ciIsIl9kb0NsaWNrIiwiX2RvS2V5RG93biIsIl9kb0tleVByZXNzIiwic2V0VGltZW91dCIsIm8iLCJfcGFyc2VUaW1lIiwiX2V4dHJhY3RUaW1lIiwiX3NldFRpbWUiLCJEYXRlIiwibmV4dCIsInJlbW92ZSIsInBhcmVudCIsImZpbmQiLCJtb3VzZXdoZWVsIiwidW5tb3VzZXdoZWVsIiwiYWZ0ZXIiLCJfZG9Nb3VzZVdoZWVsIiwibW91c2Vkb3duIiwiX2hhbmRsZVNwaW5uZXIiLCJtb3VzZXVwIiwiX2VuZFNwaW5uZXIiLCJtb3VzZW92ZXIiLCJfZXhwYW5kU3Bpbm5lciIsIm1vdXNlb3V0IiwibW91c2Vtb3ZlIiwiX2Rlc2NyaWJlU3Bpbm5lciIsImVuYWJsZSIsIl9lbmFibGVEaXNhYmxlIiwiZGlzYWJsZSIsImRpc2FibGVkIiwibmV4dFNpYmxpbmciLCJub2RlTmFtZSIsIl9jaGFuZ2VTcGlubmVyIiwiaXNEaXNhYmxlZCIsIm9mZiIsInNpYmxpbmdzIiwic2V0VGltZSIsInZhbCIsImlzQXJyYXkiLCJnZXRUaW1lIiwiZ2V0T2Zmc2V0IiwiX2xhc3RJbnB1dCIsIl9mb2N1c3NlZCIsIl9ibHVycmVkSW5wdXQiLCJpc0Z1bmN0aW9uIiwiX3Nob3dGaWVsZCIsInRhcmdldCIsIl9nZXRTZWxlY3Rpb24iLCJfbGFzdENociIsInNwbGl0Iiwic2VsZWN0aW9uU3RhcnQiLCJNYXRoIiwibWF4IiwiX3NlY29uZEZpZWxkIiwiX2FtcG1GaWVsZCIsImNyZWF0ZVRleHRSYW5nZSIsInNyY0VsZW1lbnQiLCJrIiwidGhpbiIsIm1lZGl1bSIsInRoaWNrIiwibCIsImNsaWVudFgiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsInNjcm9sbExlZnQiLCJvZmZzZXQiLCJsZWZ0IiwicGFyc2VJbnQiLCJjc3MiLCJvZmZzZXRMZWZ0IiwiZmllbGRTaXplIiwiY29sbGFwc2UiLCJtb3ZlRW5kIiwiYm91bmRpbmdXaWR0aCIsImtleUNvZGUiLCJzaGlmdEtleSIsIl9jaGFuZ2VGaWVsZCIsImN0cmxLZXkiLCJfc2V0VmFsdWUiLCJfYWRqdXN0RmllbGQiLCJTdHJpbmciLCJmcm9tQ2hhckNvZGUiLCJjaGFyQ29kZSIsInVuZGVmaW5lZCIsIl9oYW5kbGVLZXlQcmVzcyIsIl9jb25zdHJhaW5UaW1lIiwiZm9jdXMiLCJwcmV2ZW50RGVmYXVsdCIsIl9nZXRTcGlubmVyVGFyZ2V0IiwiX2dldElucHV0IiwiX2V4cGFuZGVkIiwicGFyZW50cyIsInRvcCIsIl9lbmRFeHBhbmQiLCJpbnNlcnRBZnRlciIsIl9nZXRTcGlubmVyUmVnaW9uIiwiX2FjdGlvblNwaW5uZXIiLCJfdGltZXIiLCJfaGFuZGxpbmdTcGlubmVyIiwiX3JlcGVhdFNwaW5uZXIiLCJvbmUiLCJfcmVsZWFzZVNwaW5uZXIiLCJjbGVhclRpbWVvdXQiLCJib2R5Iiwic2Nyb2xsVG9wIiwiY2xpZW50WSIsImFicyIsIm1pbiIsIl9zaG93VGltZSIsImluZGV4T2YiLCJpc05hTiIsIl9kZXRlcm1pbmVUaW1lIiwiZ2V0SG91cnMiLCJnZXRNaW51dGVzIiwiZ2V0U2Vjb25kcyIsInJvdW5kIiwiX2Zvcm1hdE51bWJlciIsImlzIiwic2V0U2VsZWN0aW9uUmFuZ2UiLCJtb3ZlU3RhcnQiLCJzZWxlY3QiLCJ0cmlnZ2VyIiwiX25vcm1hbGlzZVRpbWUiLCJleGVjIiwidGVzdCIsImdldERhdGUiLCJtIiwic2V0RnVsbFllYXIiLCJzZXRNb250aCIsInNldERhdGUiLCJ0aW1lRW50cnkiLCJhamF4Rm9ybSIsImdldFNjcmlwdCIsInByb3RvY29sIiwiZmlsZWFwaSIsImdldCIsImZpbGVzIiwiZm9ybWRhdGEiLCJGb3JtRGF0YSIsInVwbG9hZEZpbGUiLCJ0IiwiciIsIlMiLCJ4IiwiRCIsInciLCJhZnRlclVwbG9hZEFsbCIsIkMiLCJzZXF1ZW50aWFsQ291bnQiLCJzaGlmdCIsInN1Ym1pdCIsInN0b3BQcm9wYWdhdGlvbiIsImRyYWdEcm9wSG92ZXJDbGFzcyIsImRyYWdEcm9wQ29udGFpbmVyQ2xhc3MiLCJlcnJvckxvZyIsImh0bWwiLCJvcmlnaW5hbEV2ZW50IiwiZGF0YVRyYW5zZmVyIiwibXVsdGlwbGUiLCJzaG93RXJyb3IiLCJlcnJvckNsYXNzIiwibXVsdGlEcmFnRXJyb3JTdHIiLCJhcHBlbmRUbyIsIm9uU2VsZWN0IiwicyIsInRvRml4ZWQiLCJ0eXBlIiwicGFyYW0iLCJkZWNvZGVVUklDb21wb25lbnQiLCJhbGxvd0R1cGxpY2F0ZXMiLCJtYXhGaWxlU2l6ZSIsInNpemVFcnJvclN0ciIsIm1heEZpbGVDb3VudCIsInNlbGVjdGVkRmlsZXMiLCJtYXhGaWxlQ291bnRFcnJvclN0ciIsImV4aXN0aW5nRmlsZU5hbWVzIiwicCIsInUiLCJmaWxlTmFtZSIsImFwcGVuZCIsImZvcm1EYXRhIiwiZmlsZURhdGEiLCJzaG93RmlsZUNvdW50ZXIiLCJmaWxlQ291bnRlciIsImZpbGVDb3VudGVyU3R5bGUiLCJzaG93RmlsZVNpemUiLCJmaWxlbmFtZSIsImZvcm1Hcm91cCIsIm1ldGhvZCIsImVuY3R5cGUiLCJ2IiwiZHVwbGljYXRlRXJyb3JTdHIiLCJleHRFcnJvclN0ciIsImFsbG93ZWRUeXBlcyIsInBvcCIsImR1cGxpY2F0ZVN0cmljdCIsInNwbGljZSIsInNob3ciLCJGaWxlUmVhZGVyIiwib25sb2FkIiwicmVzdWx0IiwicmVhZEFzRGF0YVVSTCIsImNvbnRhaW5lciIsImFjY2VwdEZpbGVzIiwiY2hhbmdlIiwidW5iaW5kIiwic2VyaWFsaXplIiwibmVzdGVkRm9ybXMiLCJtYXJnaW4iLCJwYWRkaW5nIiwib3ZlcmZsb3ciLCJjdXJzb3IiLCJ3aWR0aCIsImhlaWdodCIsIm9wYWNpdHkiLCJmaWx0ZXIiLCJkaXNwbGF5IiwibmF2aWdhdG9yIiwiYXBwVmVyc2lvbiIsImNsaWNrIiwic3RhdHVzYmFyIiwic3RhdHVzQmFyV2lkdGgiLCJwcmV2aWV3IiwicHJldmlld1dpZHRoIiwicHJldmlld0hlaWdodCIsInByb2dyZXNzRGl2IiwicHJvZ3Jlc3NiYXIiLCJhYm9ydCIsImFib3J0U3RyIiwiY2FuY2VsIiwiY2FuY2VsU3RyIiwiZG9uZSIsImRvbmVTdHIiLCJkb3dubG9hZCIsImRvd25sb2FkU3RyIiwiZGVsIiwiZGVsZXRlbFN0ciIsImN1c3RvbVByb2dyZXNzQmFyIiwiYWJvcnRCdXR0b25DbGFzcyIsImNhbmNlbEJ1dHRvbkNsYXNzIiwiZXh0cmFIVE1MIiwiY2FjaGUiLCJjb250ZW50VHlwZSIsInByb2Nlc3NEYXRhIiwiZm9yY2VTeW5jIiwiZGF0YVR5cGUiLCJyZXR1cm5UeXBlIiwiYmVmb3JlU3VibWl0Iiwib25TdWJtaXQiLCJkeW5hbWljRm9ybURhdGEiLCJ1cGxvYWRFcnJvclN0ciIsIm9uQ2FuY2VsIiwiYmVmb3JlU2VuZCIsInNob3dBYm9ydCIsInVwbG9hZFByb2dyZXNzIiwic2hvd1Byb2dyZXNzIiwic3VjY2VzcyIsImhhc093blByb3BlcnR5IiwiY3VzdG9tRXJyb3JLZXlTdHIiLCJvbkVycm9yIiwic2hvd1N0YXR1c0FmdGVyRXJyb3IiLCJyZXNwb25zZXMiLCJvblN1Y2Nlc3MiLCJzaG93U3RhdHVzQWZ0ZXJTdWNjZXNzIiwic2hvd0RvbmUiLCJzaG93RGVsZXRlIiwiZGVsZXRlQ2FsbGJhY2siLCJzaG93RG93bmxvYWQiLCJkb3dubG9hZENhbGxiYWNrIiwiZXJyb3IiLCJzdGF0dXNUZXh0Iiwic2hvd1ByZXZpZXciLCJhdXRvU3VibWl0Iiwic2VxdWVudGlhbCIsImFqYXhTdWJtaXQiLCJzaG93Q2FuY2VsIiwiZHJhZ0Ryb3AiLCJvbkxvYWQiLCJ1cGxvYWRCdXR0b25DbGFzcyIsImRyYWdEcm9wU3RyIiwidXBsb2FkU3RyIiwic2hvd1F1ZXVlRGl2IiwiZHJhZ2Ryb3BXaWR0aCIsIkYiLCJzdGFydFVwbG9hZCIsImdldEZpbGVDb3VudCIsInN0b3BVcGxvYWQiLCJjYW5jZWxBbGwiLCJ1cGRhdGUiLCJyZXNldCIsImNyZWF0ZVByb2dyZXNzIiwiZ2V0UmVzcG9uc2VzIiwicGFzc3dvcmRFdmVudHMiLCJldmVudCIsImxvZ2luU3VibWl0Iiwib25CZWZvcmVTdWJtaXQiLCJzZWxmIiwiYWpheCIsImpzb24iLCJsb2dpbk9uQWpheFN1Y2Nlc3MiLCJvblN1Y2Nlc3NDYWxsYmFjayIsInJldCIsImFsZXJ0IiwicGFnZWRlZmF1bHQiLCJocmVmIiwic3RycG9zIiwib3Blbk1vZGFsUmVjdXBlcm9Qd2QiLCIkYnV0dG9uIiwicHJvcCIsImdldEVtYWlsUmVjdXBlcm9QYXNzd29yZCIsIm1vZGFsIiwiJGZvcm0iLCJmb3JtIiwidmFsaWRhdGlvbiIsImNoZWNrVmFsaWRpdHkiLCJjbGFzc0xpc3QiLCJhZGQiLCJjb21wYW55IiwidXNlcm5hbWUiLCJ0aXBvdmlldyIsIm1zZyIsInNlbmRFbWFpbFJlY3VwZXJvUGFzc3dvcmQiLCJvdXQiLCJjaGVja0VtYWlsUmVjdXBlcm9Qd2QiLCJnZXRIdG1sRnJvbUFqYXgiLCJkaXZuYW1lIiwib2JqZWN0IiwiZGlhbG9nU2hvdyIsIk9QX0ZST01fQUpBWCIsIkpTT04iLCJlbWFpbCIsImFqYXhTdWJtaXRPblN1Y2Nlc3NGdW5jdGlvbiIsIm1vZHVsZSIsImV4cG9ydHMiLCJEYXRlX19qYXAiLCJkYXRhX2l0IiwiZGF0ZV9mb3JtYXQiLCJtb21lbnQiLCJmb3JtYXQiLCJEYXRlX19pdCIsImRhdGFfamFwIiwiRGF0ZV9fT3JhTm93Iiwidmlld19zZWNvbmRpIiwiRGF0ZV9fZ2dpdWxpYW5vIiwiYWRlc3NvIiwic3Vic3RyIiwiYW5ubyIsImdldEZ1bGxZZWFyIiwiaW5pemlvYW5ubyIsIkdHIiwiZmxvb3IiLCJzdHJfcGFkIiwiRGF0ZV9fYWRkIiwibmdpb3JuaSIsImNvbnRhX2RhX2ZpbmVfbWVzZSIsInVzYV9jYWxlbmRhcmlvX2NvbW1lcmNpYWxlIiwiTnVtYmVyIiwiaXNJbnRlZ2VyIiwiRGF0ZV9fc29tbWFtZXNpIiwic3VidHJhY3QiLCJlbmRPZiIsIm5tZXNpIiwiRGF0ZV9fbm93IiwibWludXRpQWRkIiwib3JhcmlvIiwibW0iLCJzcyIsImgyIiwibTIiLCJpc09yYXJpbyIsImdldFBhcmFtc0ZvckRhdGVwaWNrZXIiLCJwYXJhbXMiLCJzdGFuZGFyZF9wYXJhbXMiLCJhdXRvY2xvc2UiLCJ0b2RheUhpZ2hsaWdodCIsImxhbmd1YWdlIiwiY2xlYXJCdG4iLCJPYmplY3QiLCJrZXlzIiwia2V5IiwiYnNEYXRlUGlja2VySW5pdCIsImRhdGVwaWNrZXIiLCJic0RhdGVQaWNrZXJSYW5nZUluaXQiLCJhdXRvY29tcGxldGVPbkZvY3VzRXZlbnQiLCJldiIsImF1dG9jb21wbGV0ZVNlYXJjaEFsbE9uRGJsQ2xpY2siLCJiaW5kIiwiJHRoaXMiLCIkaGlkZGVuIiwia2V5dXAiLCJyZWFkeSIsIkNVUlJFTkNZX19TWU1CT0wiLCJDVVJSRU5DWV9fREVDSU1BTFMiLCJDVVJSRU5DWV9fREVDSU1BTF9TRVBBUkFUT1IiLCJDVVJSRU5DWV9fVEhPVVNBTkRTX1NFUEFSQVRPUiIsIm9iaklEIiwiaWQiLCJvYmpJRF9oaWRkZW4iLCJtQ1VSUkVOQ1lfX1NZTUJPTCIsIm1DVVJSRU5DWV9fREVDSU1BTFMiLCJrZXludW0iLCJ3aGljaCIsImtleWNoYXIiLCJudW1iZXJzIiwidXBkYXRlQ3VycmVuY3kiLCJpZl96ZXJvX2VtcHR5Iiwic2lnbiIsIm4yIiwibnVtYmVyX2Zvcm1hdCIsImFkZE9wdGlvbiIsImVsIiwic08iLCJjcmVhdGVFbGVtZW50IiwidmFsdWUiLCJvTCIsInNlbGVjdGVkIiwiaXRlbXMiLCJpdGVtIiwiYWpheEFkZE9wdGlvbiIsImFyZ3MiLCJnZXRKU09OIiwicmVtb3ZlT3B0aW9uIiwidGEiLCJpbmRleCIsIlJlZ0V4cCIsInNvcnRPcHRpb25zIiwiYXNjZW5kaW5nIiwic2VsIiwic2VsZWN0ZWRWYWx1ZXMiLCJzQSIsInNvcnQiLCJvMSIsIm8yIiwibzF0IiwibzJ0Iiwic2VsZWN0T3B0aW9ucyIsImNsZWFyIiwidlQiLCJjb3B5T3B0aW9ucyIsInRvIiwiY29udGFpbnNPcHRpb24iLCJmb3VuZCIsImZUIiwic2VsZWN0ZWRPcHRpb25zIiwic2VsZWN0ZWRUZXh0cyIsIml3Z2FsbGVyeSIsImRlZmF1bHRzIiwiZGl2R2FsbGVyeSIsImRpdkhpZGRlbnMiLCJkaXZGaWxlcyIsImJ1aWxkSW1hZ2UiLCJpbWciLCJ1cmxJbWFnZSIsImRlc2NyaXB0aW9uIiwiaWR1cGxvYWQiLCJidWlsZEhpZGRlbiIsImJ1aWxkRmlsZUxpbmsiLCIkcmVtb3ZlTGluayIsIm9iaiIsImN1cnJlbnQiLCJpbWFnZXMiLCJhcGlHYWxsZXJ5IiwiZ2V0TnVtSXRlbXMiLCJnZXRJdGVtIiwib25DaGFuZ2VHYWxsZXJ5IiwiYnVpbGRHYWxsZXJ5IiwiZGl2IiwiaW1nc1RvQXBwZW5kIiwiaGlkZGVucyIsInVuaXRlZ2FsbGVyeSIsImdhbGxlcnlfdGhlbWUiLCJ0aGVtZV9wYW5lbF9wb3NpdGlvbiIsInRoZW1lX2hpZGVfcGFuZWxfdW5kZXJfd2lkdGgiLCJnYWxsZXJ5X3dpZHRoIiwiZ2FsbGVyeVdpZHRoIiwiZ2FsbGVyeV9oZWlnaHQiLCJnYWxsZXJ5SGVpZ2h0Iiwic2xpZGVyX3NjYWxlX21vZGUiLCJkaXZfdXBsb2FkIiwiZHJhZ0Ryb3BTdHJpbmciLCJleHRFcnJvclN0cmluZyIsInVwbG9hZFN0cmluZyIsInBhdGgiLCJ0b2tlbiIsImxhYmVsU3RyaW5nIiwiY29kY2xpZW50ZSIsInNlc3NJZCJdLCJzb3VyY2VSb290IjoiIn0=