%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/projetos/radar.ongrace.com.br/
Upload File :
Create Path :
Current File : /var/www/projetos/radar.ongrace.com.br/0.js

(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[0],{

/***/ "./node_modules/clipboard/dist/clipboard.js":
/*!**************************************************!*\
  !*** ./node_modules/clipboard/dist/clipboard.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/*!\n * clipboard.js v2.0.8\n * https://clipboardjs.com/\n *\n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory();\n\telse {}\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 134:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n  \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/clipboard-action.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n/**\n * Inner class which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n */\n\nvar ClipboardAction = /*#__PURE__*/function () {\n  /**\n   * @param {Object} options\n   */\n  function ClipboardAction(options) {\n    _classCallCheck(this, ClipboardAction);\n\n    this.resolveOptions(options);\n    this.initSelection();\n  }\n  /**\n   * Defines base properties passed from constructor.\n   * @param {Object} options\n   */\n\n\n  _createClass(ClipboardAction, [{\n    key: \"resolveOptions\",\n    value: function resolveOptions() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      this.action = options.action;\n      this.container = options.container;\n      this.emitter = options.emitter;\n      this.target = options.target;\n      this.text = options.text;\n      this.trigger = options.trigger;\n      this.selectedText = '';\n    }\n    /**\n     * Decides which selection strategy is going to be applied based\n     * on the existence of `text` and `target` properties.\n     */\n\n  }, {\n    key: \"initSelection\",\n    value: function initSelection() {\n      if (this.text) {\n        this.selectFake();\n      } else if (this.target) {\n        this.selectTarget();\n      }\n    }\n    /**\n     * Creates a fake textarea element, sets its value from `text` property,\n     */\n\n  }, {\n    key: \"createFakeElement\",\n    value: function createFakeElement() {\n      var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n      this.fakeElem = document.createElement('textarea'); // Prevent zooming on iOS\n\n      this.fakeElem.style.fontSize = '12pt'; // Reset box model\n\n      this.fakeElem.style.border = '0';\n      this.fakeElem.style.padding = '0';\n      this.fakeElem.style.margin = '0'; // Move element out of screen horizontally\n\n      this.fakeElem.style.position = 'absolute';\n      this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n      var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n      this.fakeElem.style.top = \"\".concat(yPosition, \"px\");\n      this.fakeElem.setAttribute('readonly', '');\n      this.fakeElem.value = this.text;\n      return this.fakeElem;\n    }\n    /**\n     * Get's the value of fakeElem,\n     * and makes a selection on it.\n     */\n\n  }, {\n    key: \"selectFake\",\n    value: function selectFake() {\n      var _this = this;\n\n      var fakeElem = this.createFakeElement();\n\n      this.fakeHandlerCallback = function () {\n        return _this.removeFake();\n      };\n\n      this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n      this.container.appendChild(fakeElem);\n      this.selectedText = select_default()(fakeElem);\n      this.copyText();\n      this.removeFake();\n    }\n    /**\n     * Only removes the fake element after another click event, that way\n     * a user can hit `Ctrl+C` to copy because selection still exists.\n     */\n\n  }, {\n    key: \"removeFake\",\n    value: function removeFake() {\n      if (this.fakeHandler) {\n        this.container.removeEventListener('click', this.fakeHandlerCallback);\n        this.fakeHandler = null;\n        this.fakeHandlerCallback = null;\n      }\n\n      if (this.fakeElem) {\n        this.container.removeChild(this.fakeElem);\n        this.fakeElem = null;\n      }\n    }\n    /**\n     * Selects the content from element passed on `target` property.\n     */\n\n  }, {\n    key: \"selectTarget\",\n    value: function selectTarget() {\n      this.selectedText = select_default()(this.target);\n      this.copyText();\n    }\n    /**\n     * Executes the copy operation based on the current selection.\n     */\n\n  }, {\n    key: \"copyText\",\n    value: function copyText() {\n      var succeeded;\n\n      try {\n        succeeded = document.execCommand(this.action);\n      } catch (err) {\n        succeeded = false;\n      }\n\n      this.handleResult(succeeded);\n    }\n    /**\n     * Fires an event based on the copy operation result.\n     * @param {Boolean} succeeded\n     */\n\n  }, {\n    key: \"handleResult\",\n    value: function handleResult(succeeded) {\n      this.emitter.emit(succeeded ? 'success' : 'error', {\n        action: this.action,\n        text: this.selectedText,\n        trigger: this.trigger,\n        clearSelection: this.clearSelection.bind(this)\n      });\n    }\n    /**\n     * Moves focus away from `target` and back to the trigger, removes current selection.\n     */\n\n  }, {\n    key: \"clearSelection\",\n    value: function clearSelection() {\n      if (this.trigger) {\n        this.trigger.focus();\n      }\n\n      document.activeElement.blur();\n      window.getSelection().removeAllRanges();\n    }\n    /**\n     * Sets the `action` to be performed which can be either 'copy' or 'cut'.\n     * @param {String} action\n     */\n\n  }, {\n    key: \"destroy\",\n\n    /**\n     * Destroy lifecycle.\n     */\n    value: function destroy() {\n      this.removeFake();\n    }\n  }, {\n    key: \"action\",\n    set: function set() {\n      var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n      this._action = action;\n\n      if (this._action !== 'copy' && this._action !== 'cut') {\n        throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n      }\n    }\n    /**\n     * Gets the `action` property.\n     * @return {String}\n     */\n    ,\n    get: function get() {\n      return this._action;\n    }\n    /**\n     * Sets the `target` property using an element\n     * that will be have its content copied.\n     * @param {Element} target\n     */\n\n  }, {\n    key: \"target\",\n    set: function set(target) {\n      if (target !== undefined) {\n        if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n          if (this.action === 'copy' && target.hasAttribute('disabled')) {\n            throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n          }\n\n          if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n            throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n          }\n\n          this._target = target;\n        } else {\n          throw new Error('Invalid \"target\" value, use a valid Element');\n        }\n      }\n    }\n    /**\n     * Gets the `target` property.\n     * @return {String|HTMLElement}\n     */\n    ,\n    get: function get() {\n      return this._target;\n    }\n  }]);\n\n  return ClipboardAction;\n}();\n\n/* harmony default export */ var clipboard_action = (ClipboardAction);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction clipboard_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction clipboard_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction clipboard_createClass(Constructor, protoProps, staticProps) { if (protoProps) clipboard_defineProperties(Constructor.prototype, protoProps); if (staticProps) clipboard_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n  var attribute = \"data-clipboard-\".concat(suffix);\n\n  if (!element.hasAttribute(attribute)) {\n    return;\n  }\n\n  return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n  _inherits(Clipboard, _Emitter);\n\n  var _super = _createSuper(Clipboard);\n\n  /**\n   * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n   * @param {Object} options\n   */\n  function Clipboard(trigger, options) {\n    var _this;\n\n    clipboard_classCallCheck(this, Clipboard);\n\n    _this = _super.call(this);\n\n    _this.resolveOptions(options);\n\n    _this.listenClick(trigger);\n\n    return _this;\n  }\n  /**\n   * Defines if attributes would be resolved using internal setter functions\n   * or custom functions that were passed in the constructor.\n   * @param {Object} options\n   */\n\n\n  clipboard_createClass(Clipboard, [{\n    key: \"resolveOptions\",\n    value: function resolveOptions() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n      this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n      this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n      this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n    }\n    /**\n     * Adds a click event listener to the passed trigger.\n     * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n     */\n\n  }, {\n    key: \"listenClick\",\n    value: function listenClick(trigger) {\n      var _this2 = this;\n\n      this.listener = listen_default()(trigger, 'click', function (e) {\n        return _this2.onClick(e);\n      });\n    }\n    /**\n     * Defines a new `ClipboardAction` on each click event.\n     * @param {Event} e\n     */\n\n  }, {\n    key: \"onClick\",\n    value: function onClick(e) {\n      var trigger = e.delegateTarget || e.currentTarget;\n\n      if (this.clipboardAction) {\n        this.clipboardAction = null;\n      }\n\n      this.clipboardAction = new clipboard_action({\n        action: this.action(trigger),\n        target: this.target(trigger),\n        text: this.text(trigger),\n        container: this.container,\n        trigger: trigger,\n        emitter: this\n      });\n    }\n    /**\n     * Default `action` lookup function.\n     * @param {Element} trigger\n     */\n\n  }, {\n    key: \"defaultAction\",\n    value: function defaultAction(trigger) {\n      return getAttributeValue('action', trigger);\n    }\n    /**\n     * Default `target` lookup function.\n     * @param {Element} trigger\n     */\n\n  }, {\n    key: \"defaultTarget\",\n    value: function defaultTarget(trigger) {\n      var selector = getAttributeValue('target', trigger);\n\n      if (selector) {\n        return document.querySelector(selector);\n      }\n    }\n    /**\n     * Returns the support of the given action, or all actions if no action is\n     * given.\n     * @param {String} [action]\n     */\n\n  }, {\n    key: \"defaultText\",\n\n    /**\n     * Default `text` lookup function.\n     * @param {Element} trigger\n     */\n    value: function defaultText(trigger) {\n      return getAttributeValue('text', trigger);\n    }\n    /**\n     * Destroy lifecycle.\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.listener.destroy();\n\n      if (this.clipboardAction) {\n        this.clipboardAction.destroy();\n        this.clipboardAction = null;\n      }\n    }\n  }], [{\n    key: \"isSupported\",\n    value: function isSupported() {\n      var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n      var actions = typeof action === 'string' ? [action] : action;\n      var support = !!document.queryCommandSupported;\n      actions.forEach(function (action) {\n        support = support && !!document.queryCommandSupported(action);\n      });\n      return support;\n    }\n  }]);\n\n  return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n    var proto = Element.prototype;\n\n    proto.matches = proto.matchesSelector ||\n                    proto.mozMatchesSelector ||\n                    proto.msMatchesSelector ||\n                    proto.oMatchesSelector ||\n                    proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n    while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n        if (typeof element.matches === 'function' &&\n            element.matches(selector)) {\n          return element;\n        }\n        element = element.parentNode;\n    }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n    var listenerFn = listener.apply(this, arguments);\n\n    element.addEventListener(type, listenerFn, useCapture);\n\n    return {\n        destroy: function() {\n            element.removeEventListener(type, listenerFn, useCapture);\n        }\n    }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n    // Handle the regular Element usage\n    if (typeof elements.addEventListener === 'function') {\n        return _delegate.apply(null, arguments);\n    }\n\n    // Handle Element-less usage, it defaults to global delegation\n    if (typeof type === 'function') {\n        // Use `document` as the first parameter, then apply arguments\n        // This is a short way to .unshift `arguments` without running into deoptimizations\n        return _delegate.bind(null, document).apply(null, arguments);\n    }\n\n    // Handle Selector-based usage\n    if (typeof elements === 'string') {\n        elements = document.querySelectorAll(elements);\n    }\n\n    // Handle Array-like based usage\n    return Array.prototype.map.call(elements, function (element) {\n        return _delegate(element, selector, type, callback, useCapture);\n    });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n    return function(e) {\n        e.delegateTarget = closest(e.target, selector);\n\n        if (e.delegateTarget) {\n            callback.call(element, e);\n        }\n    }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n    return value !== undefined\n        && value instanceof HTMLElement\n        && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n    var type = Object.prototype.toString.call(value);\n\n    return value !== undefined\n        && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n        && ('length' in value)\n        && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n    return typeof value === 'string'\n        || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n    var type = Object.prototype.toString.call(value);\n\n    return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n    if (!target && !type && !callback) {\n        throw new Error('Missing required arguments');\n    }\n\n    if (!is.string(type)) {\n        throw new TypeError('Second argument must be a String');\n    }\n\n    if (!is.fn(callback)) {\n        throw new TypeError('Third argument must be a Function');\n    }\n\n    if (is.node(target)) {\n        return listenNode(target, type, callback);\n    }\n    else if (is.nodeList(target)) {\n        return listenNodeList(target, type, callback);\n    }\n    else if (is.string(target)) {\n        return listenSelector(target, type, callback);\n    }\n    else {\n        throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n    }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n    node.addEventListener(type, callback);\n\n    return {\n        destroy: function() {\n            node.removeEventListener(type, callback);\n        }\n    }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n    Array.prototype.forEach.call(nodeList, function(node) {\n        node.addEventListener(type, callback);\n    });\n\n    return {\n        destroy: function() {\n            Array.prototype.forEach.call(nodeList, function(node) {\n                node.removeEventListener(type, callback);\n            });\n        }\n    }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n    return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n    var selectedText;\n\n    if (element.nodeName === 'SELECT') {\n        element.focus();\n\n        selectedText = element.value;\n    }\n    else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n        var isReadOnly = element.hasAttribute('readonly');\n\n        if (!isReadOnly) {\n            element.setAttribute('readonly', '');\n        }\n\n        element.select();\n        element.setSelectionRange(0, element.value.length);\n\n        if (!isReadOnly) {\n            element.removeAttribute('readonly');\n        }\n\n        selectedText = element.value;\n    }\n    else {\n        if (element.hasAttribute('contenteditable')) {\n            element.focus();\n        }\n\n        var selection = window.getSelection();\n        var range = document.createRange();\n\n        range.selectNodeContents(element);\n        selection.removeAllRanges();\n        selection.addRange(range);\n\n        selectedText = selection.toString();\n    }\n\n    return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n  // Keep this empty so it's easier to inherit from\n  // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n  on: function (name, callback, ctx) {\n    var e = this.e || (this.e = {});\n\n    (e[name] || (e[name] = [])).push({\n      fn: callback,\n      ctx: ctx\n    });\n\n    return this;\n  },\n\n  once: function (name, callback, ctx) {\n    var self = this;\n    function listener () {\n      self.off(name, listener);\n      callback.apply(ctx, arguments);\n    };\n\n    listener._ = callback\n    return this.on(name, listener, ctx);\n  },\n\n  emit: function (name) {\n    var data = [].slice.call(arguments, 1);\n    var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n    var i = 0;\n    var len = evtArr.length;\n\n    for (i; i < len; i++) {\n      evtArr[i].fn.apply(evtArr[i].ctx, data);\n    }\n\n    return this;\n  },\n\n  off: function (name, callback) {\n    var e = this.e || (this.e = {});\n    var evts = e[name];\n    var liveEvents = [];\n\n    if (evts && callback) {\n      for (var i = 0, len = evts.length; i < len; i++) {\n        if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n          liveEvents.push(evts[i]);\n      }\n    }\n\n    // Remove event from queue to prevent memory leak\n    // Suggested by https://github.com/lazd\n    // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n    (liveEvents.length)\n      ? e[name] = liveEvents\n      : delete e[name];\n\n    return this;\n  }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(134);\n/******/ })()\n.default;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2xpcGJvYXJkL2Rpc3QvY2xpcGJvYXJkLmpzP2IzMTEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQXlEO0FBQzdEO0FBQ0EsTUFBTSxFQUs0QjtBQUNsQyxDQUFDO0FBQ0QsNkJBQTZCO0FBQzdCOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLHlCQUF5QixnQ0FBZ0M7QUFDekQsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsdUJBQXVCLDJCQUEyQiwyRUFBMkUsa0NBQWtDLG1CQUFtQixHQUFHLEVBQUUsT0FBTyxrQ0FBa0MsOEhBQThILEdBQUcsRUFBRSxxQkFBcUI7O0FBRXhYLGlEQUFpRCwwQ0FBMEMsMERBQTBELEVBQUU7O0FBRXZKLDJDQUEyQyxnQkFBZ0Isa0JBQWtCLE9BQU8sMkJBQTJCLHdEQUF3RCxnQ0FBZ0MsdURBQXVELDJEQUEyRCxFQUFFOztBQUUzVCw2REFBNkQsc0VBQXNFLDhEQUE4RCxvQkFBb0I7OztBQUdyTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxPQUFPO0FBQ3BCOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSx5REFBeUQ7O0FBRXpELDRDQUE0Qzs7QUFFNUM7QUFDQTtBQUNBLHVDQUF1Qzs7QUFFdkM7QUFDQSxnRUFBZ0U7O0FBRWhFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxRQUFRO0FBQ3ZCOztBQUVBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxPQUFPO0FBQ3RCOztBQUVBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFFBQVE7QUFDdkI7O0FBRUEsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FB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QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQSx5Q0FBeUM7QUFDekM7QUFDQTs7QUFFQSxXQUFXLFNBQVM7QUFDcEI7QUFDQTs7QUFFQTtBQUNBLEdBQUc7O0FBRUg7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTs7QUFFQTtBQUNBLHdDQUF3QyxTQUFTO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7OztBQUdBLE9BQU87O0FBRVAsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QiwwQkFBMEIsRUFBRTtBQUNyRCx5QkFBeUIsZUFBZTtBQUN4QywyQ0FBMkMsWUFBWTtBQUN2RDtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbURBQW1ELHlDQUF5QztBQUM1RjtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0Esd0RBQXdELHdEQUF3RDtBQUNoSCxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsQ0FBQyIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9jbGlwYm9hcmQvZGlzdC9jbGlwYm9hcmQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIGNsaXBib2FyZC5qcyB2Mi4wLjhcbiAqIGh0dHBzOi8vY2xpcGJvYXJkanMuY29tL1xuICpcbiAqIExpY2Vuc2VkIE1JVCDCqSBaZW5vIFJvY2hhXG4gKi9cbihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIkNsaXBib2FyZEpTXCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcIkNsaXBib2FyZEpTXCJdID0gZmFjdG9yeSgpO1xufSkodGhpcywgZnVuY3Rpb24oKSB7XG5yZXR1cm4gLyoqKioqKi8gKGZ1bmN0aW9uKCkgeyAvLyB3ZWJwYWNrQm9vdHN0cmFwXG4vKioqKioqLyBcdHZhciBfX3dlYnBhY2tfbW9kdWxlc19fID0gKHtcblxuLyoqKi8gMTM0OlxuLyoqKi8gKGZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG4vLyBFWFBPUlRTXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xuICBcImRlZmF1bHRcIjogZnVuY3Rpb24oKSB7IHJldHVybiAvKiBiaW5kaW5nICovIGNsaXBib2FyZDsgfVxufSk7XG5cbi8vIEVYVEVSTkFMIE1PRFVMRTogLi9ub2RlX21vZHVsZXMvdGlueS1lbWl0dGVyL2luZGV4LmpzXG52YXIgdGlueV9lbWl0dGVyID0gX193ZWJwYWNrX3JlcXVpcmVfXygyNzkpO1xudmFyIHRpbnlfZW1pdHRlcl9kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubih0aW55X2VtaXR0ZXIpO1xuLy8gRVhURVJOQUwgTU9EVUxFOiAuL25vZGVfbW9kdWxlcy9nb29kLWxpc3RlbmVyL3NyYy9saXN0ZW4uanNcbnZhciBsaXN0ZW4gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDM3MCk7XG52YXIgbGlzdGVuX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKGxpc3Rlbik7XG4vLyBFWFRFUk5BTCBNT0RVTEU6IC4vbm9kZV9tb2R1bGVzL3NlbGVjdC9zcmMvc2VsZWN0LmpzXG52YXIgc3JjX3NlbGVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oODE3KTtcbnZhciBzZWxlY3RfZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oc3JjX3NlbGVjdCk7XG47Ly8gQ09OQ0FURU5BVEVEIE1PRFVMRTogLi9zcmMvY2xpcGJvYXJkLWFjdGlvbi5qc1xuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cblxuLyoqXG4gKiBJbm5lciBjbGFzcyB3aGljaCBwZXJmb3JtcyBzZWxlY3Rpb24gZnJvbSBlaXRoZXIgYHRleHRgIG9yIGB0YXJnZXRgXG4gKiBwcm9wZXJ0aWVzIGFuZCB0aGVuIGV4ZWN1dGVzIGNvcHkgb3IgY3V0IG9wZXJhdGlvbnMuXG4gKi9cblxudmFyIENsaXBib2FyZEFjdGlvbiA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgKi9cbiAgZnVuY3Rpb24gQ2xpcGJvYXJkQWN0aW9uKG9wdGlvbnMpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ2xpcGJvYXJkQWN0aW9uKTtcblxuICAgIHRoaXMucmVzb2x2ZU9wdGlvbnMob3B0aW9ucyk7XG4gICAgdGhpcy5pbml0U2VsZWN0aW9uKCk7XG4gIH1cbiAgLyoqXG4gICAqIERlZmluZXMgYmFzZSBwcm9wZXJ0aWVzIHBhc3NlZCBmcm9tIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgKi9cblxuXG4gIF9jcmVhdGVDbGFzcyhDbGlwYm9hcmRBY3Rpb24sIFt7XG4gICAga2V5OiBcInJlc29sdmVPcHRpb25zXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlc29sdmVPcHRpb25zKCkge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICAgICAgdGhpcy5hY3Rpb24gPSBvcHRpb25zLmFjdGlvbjtcbiAgICAgIHRoaXMuY29udGFpbmVyID0gb3B0aW9ucy5jb250YWluZXI7XG4gICAgICB0aGlzLmVtaXR0ZXIgPSBvcHRpb25zLmVtaXR0ZXI7XG4gICAgICB0aGlzLnRhcmdldCA9IG9wdGlvbnMudGFyZ2V0O1xuICAgICAgdGhpcy50ZXh0ID0gb3B0aW9ucy50ZXh0O1xuICAgICAgdGhpcy50cmlnZ2VyID0gb3B0aW9ucy50cmlnZ2VyO1xuICAgICAgdGhpcy5zZWxlY3RlZFRleHQgPSAnJztcbiAgICB9XG4gICAgLyoqXG4gICAgICogRGVjaWRlcyB3aGljaCBzZWxlY3Rpb24gc3RyYXRlZ3kgaXMgZ29pbmcgdG8gYmUgYXBwbGllZCBiYXNlZFxuICAgICAqIG9uIHRoZSBleGlzdGVuY2Ugb2YgYHRleHRgIGFuZCBgdGFyZ2V0YCBwcm9wZXJ0aWVzLlxuICAgICAqL1xuXG4gIH0sIHtcbiAgICBrZXk6IFwiaW5pdFNlbGVjdGlvblwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpbml0U2VsZWN0aW9uKCkge1xuICAgICAgaWYgKHRoaXMudGV4dCkge1xuICAgICAgICB0aGlzLnNlbGVjdEZha2UoKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50YXJnZXQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RUYXJnZXQoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZha2UgdGV4dGFyZWEgZWxlbWVudCwgc2V0cyBpdHMgdmFsdWUgZnJvbSBgdGV4dGAgcHJvcGVydHksXG4gICAgICovXG5cbiAgfSwge1xuICAgIGtleTogXCJjcmVhdGVGYWtlRWxlbWVudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjcmVhdGVGYWtlRWxlbWVudCgpIHtcbiAgICAgIHZhciBpc1JUTCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RpcicpID09PSAncnRsJztcbiAgICAgIHRoaXMuZmFrZUVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpOyAvLyBQcmV2ZW50IHpvb21pbmcgb24gaU9TXG5cbiAgICAgIHRoaXMuZmFrZUVsZW0uc3R5bGUuZm9udFNpemUgPSAnMTJwdCc7IC8vIFJlc2V0IGJveCBtb2RlbFxuXG4gICAgICB0aGlzLmZha2VFbGVtLnN0eWxlLmJvcmRlciA9ICcwJztcbiAgICAgIHRoaXMuZmFrZUVsZW0uc3R5bGUucGFkZGluZyA9ICcwJztcbiAgICAgIHRoaXMuZmFrZUVsZW0uc3R5bGUubWFyZ2luID0gJzAnOyAvLyBNb3ZlIGVsZW1lbnQgb3V0IG9mIHNjcmVlbiBob3Jpem9udGFsbHlcblxuICAgICAgdGhpcy5mYWtlRWxlbS5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICB0aGlzLmZha2VFbGVtLnN0eWxlW2lzUlRMID8gJ3JpZ2h0JyA6ICdsZWZ0J10gPSAnLTk5OTlweCc7IC8vIE1vdmUgZWxlbWVudCB0byB0aGUgc2FtZSBwb3NpdGlvbiB2ZXJ0aWNhbGx5XG5cbiAgICAgIHZhciB5UG9zaXRpb24gPSB3aW5kb3cucGFnZVlPZmZzZXQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDtcbiAgICAgIHRoaXMuZmFrZUVsZW0uc3R5bGUudG9wID0gXCJcIi5jb25jYXQoeVBvc2l0aW9uLCBcInB4XCIpO1xuICAgICAgdGhpcy5mYWtlRWxlbS5zZXRBdHRyaWJ1dGUoJ3JlYWRvbmx5JywgJycpO1xuICAgICAgdGhpcy5mYWtlRWxlbS52YWx1ZSA9IHRoaXMudGV4dDtcbiAgICAgIHJldHVybiB0aGlzLmZha2VFbGVtO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXQncyB0aGUgdmFsdWUgb2YgZmFrZUVsZW0sXG4gICAgICogYW5kIG1ha2VzIGEgc2VsZWN0aW9uIG9uIGl0LlxuICAgICAqL1xuXG4gIH0sIHtcbiAgICBrZXk6IFwic2VsZWN0RmFrZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBzZWxlY3RGYWtlKCkge1xuICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgdmFyIGZha2VFbGVtID0gdGhpcy5jcmVhdGVGYWtlRWxlbWVudCgpO1xuXG4gICAgICB0aGlzLmZha2VIYW5kbGVyQ2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBfdGhpcy5yZW1vdmVGYWtlKCk7XG4gICAgICB9O1xuXG4gICAgICB0aGlzLmZha2VIYW5kbGVyID0gdGhpcy5jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmZha2VIYW5kbGVyQ2FsbGJhY2spIHx8IHRydWU7XG4gICAgICB0aGlzLmNvbnRhaW5lci5hcHBlbmRDaGlsZChmYWtlRWxlbSk7XG4gICAgICB0aGlzLnNlbGVjdGVkVGV4dCA9IHNlbGVjdF9kZWZhdWx0KCkoZmFrZUVsZW0pO1xuICAgICAgdGhpcy5jb3B5VGV4dCgpO1xuICAgICAgdGhpcy5yZW1vdmVGYWtlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE9ubHkgcmVtb3ZlcyB0aGUgZmFrZSBlbGVtZW50IGFmdGVyIGFub3RoZXIgY2xpY2sgZXZlbnQsIHRoYXQgd2F5XG4gICAgICogYSB1c2VyIGNhbiBoaXQgYEN0cmwrQ2AgdG8gY29weSBiZWNhdXNlIHNlbGVjdGlvbiBzdGlsbCBleGlzdHMuXG4gICAgICovXG5cbiAgfSwge1xuICAgIGtleTogXCJyZW1vdmVGYWtlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbW92ZUZha2UoKSB7XG4gICAgICBpZiAodGhpcy5mYWtlSGFuZGxlcikge1xuICAgICAgICB0aGlzLmNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuZmFrZUhhbmRsZXJDYWxsYmFjayk7XG4gICAgICAgIHRoaXMuZmFrZUhhbmRsZXIgPSBudWxsO1xuICAgICAgICB0aGlzLmZha2VIYW5kbGVyQ2FsbGJhY2sgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5mYWtlRWxlbSkge1xuICAgICAgICB0aGlzLmNvbnRhaW5lci5yZW1vdmVDaGlsZCh0aGlzLmZha2VFbGVtKTtcbiAgICAgICAgdGhpcy5mYWtlRWxlbSA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNlbGVjdHMgdGhlIGNvbnRlbnQgZnJvbSBlbGVtZW50IHBhc3NlZCBvbiBgdGFyZ2V0YCBwcm9wZXJ0eS5cbiAgICAgKi9cblxuICB9LCB7XG4gICAga2V5OiBcInNlbGVjdFRhcmdldFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBzZWxlY3RUYXJnZXQoKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVGV4dCA9IHNlbGVjdF9kZWZhdWx0KCkodGhpcy50YXJnZXQpO1xuICAgICAgdGhpcy5jb3B5VGV4dCgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBFeGVjdXRlcyB0aGUgY29weSBvcGVyYXRpb24gYmFzZWQgb24gdGhlIGN1cnJlbnQgc2VsZWN0aW9uLlxuICAgICAqL1xuXG4gIH0sIHtcbiAgICBrZXk6IFwiY29weVRleHRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29weVRleHQoKSB7XG4gICAgICB2YXIgc3VjY2VlZGVkO1xuXG4gICAgICB0cnkge1xuICAgICAgICBzdWNjZWVkZWQgPSBkb2N1bWVudC5leGVjQ29tbWFuZCh0aGlzLmFjdGlvbik7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgc3VjY2VlZGVkID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaGFuZGxlUmVzdWx0KHN1Y2NlZWRlZCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEZpcmVzIGFuIGV2ZW50IGJhc2VkIG9uIHRoZSBjb3B5IG9wZXJhdGlvbiByZXN1bHQuXG4gICAgICogQHBhcmFtIHtCb29sZWFufSBzdWNjZWVkZWRcbiAgICAgKi9cblxuICB9LCB7XG4gICAga2V5OiBcImhhbmRsZVJlc3VsdFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBoYW5kbGVSZXN1bHQoc3VjY2VlZGVkKSB7XG4gICAgICB0aGlzLmVtaXR0ZXIuZW1pdChzdWNjZWVkZWQgPyAnc3VjY2VzcycgOiAnZXJyb3InLCB7XG4gICAgICAgIGFjdGlvbjogdGhpcy5hY3Rpb24sXG4gICAgICAgIHRleHQ6IHRoaXMuc2VsZWN0ZWRUZXh0LFxuICAgICAgICB0cmlnZ2VyOiB0aGlzLnRyaWdnZXIsXG4gICAgICAgIGNsZWFyU2VsZWN0aW9uOiB0aGlzLmNsZWFyU2VsZWN0aW9uLmJpbmQodGhpcylcbiAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNb3ZlcyBmb2N1cyBhd2F5IGZyb20gYHRhcmdldGAgYW5kIGJhY2sgdG8gdGhlIHRyaWdnZXIsIHJlbW92ZXMgY3VycmVudCBzZWxlY3Rpb24uXG4gICAgICovXG5cbiAgfSwge1xuICAgIGtleTogXCJjbGVhclNlbGVjdGlvblwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjbGVhclNlbGVjdGlvbigpIHtcbiAgICAgIGlmICh0aGlzLnRyaWdnZXIpIHtcbiAgICAgICAgdGhpcy50cmlnZ2VyLmZvY3VzKCk7XG4gICAgICB9XG5cbiAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgYWN0aW9uYCB0byBiZSBwZXJmb3JtZWQgd2hpY2ggY2FuIGJlIGVpdGhlciAnY29weScgb3IgJ2N1dCcuXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IGFjdGlvblxuICAgICAqL1xuXG4gIH0sIHtcbiAgICBrZXk6IFwiZGVzdHJveVwiLFxuXG4gICAgLyoqXG4gICAgICogRGVzdHJveSBsaWZlY3ljbGUuXG4gICAgICovXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGRlc3Ryb3koKSB7XG4gICAgICB0aGlzLnJlbW92ZUZha2UoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiYWN0aW9uXCIsXG4gICAgc2V0OiBmdW5jdGlvbiBzZXQoKSB7XG4gICAgICB2YXIgYWN0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiAnY29weSc7XG4gICAgICB0aGlzLl9hY3Rpb24gPSBhY3Rpb247XG5cbiAgICAgIGlmICh0aGlzLl9hY3Rpb24gIT09ICdjb3B5JyAmJiB0aGlzLl9hY3Rpb24gIT09ICdjdXQnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBcImFjdGlvblwiIHZhbHVlLCB1c2UgZWl0aGVyIFwiY29weVwiIG9yIFwiY3V0XCInKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgYGFjdGlvbmAgcHJvcGVydHkuXG4gICAgICogQHJldHVybiB7U3RyaW5nfVxuICAgICAqL1xuICAgICxcbiAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICAgIHJldHVybiB0aGlzLl9hY3Rpb247XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGB0YXJnZXRgIHByb3BlcnR5IHVzaW5nIGFuIGVsZW1lbnRcbiAgICAgKiB0aGF0IHdpbGwgYmUgaGF2ZSBpdHMgY29udGVudCBjb3BpZWQuXG4gICAgICogQHBhcmFtIHtFbGVtZW50fSB0YXJnZXRcbiAgICAgKi9cblxuICB9LCB7XG4gICAga2V5OiBcInRhcmdldFwiLFxuICAgIHNldDogZnVuY3Rpb24gc2V0KHRhcmdldCkge1xuICAgICAgaWYgKHRhcmdldCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh0YXJnZXQgJiYgX3R5cGVvZih0YXJnZXQpID09PSAnb2JqZWN0JyAmJiB0YXJnZXQubm9kZVR5cGUgPT09IDEpIHtcbiAgICAgICAgICBpZiAodGhpcy5hY3Rpb24gPT09ICdjb3B5JyAmJiB0YXJnZXQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgXCJ0YXJnZXRcIiBhdHRyaWJ1dGUuIFBsZWFzZSB1c2UgXCJyZWFkb25seVwiIGluc3RlYWQgb2YgXCJkaXNhYmxlZFwiIGF0dHJpYnV0ZScpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLmFjdGlvbiA9PT0gJ2N1dCcgJiYgKHRhcmdldC5oYXNBdHRyaWJ1dGUoJ3JlYWRvbmx5JykgfHwgdGFyZ2V0Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBcInRhcmdldFwiIGF0dHJpYnV0ZS4gWW91IGNhblxcJ3QgY3V0IHRleHQgZnJvbSBlbGVtZW50cyB3aXRoIFwicmVhZG9ubHlcIiBvciBcImRpc2FibGVkXCIgYXR0cmlidXRlcycpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuX3RhcmdldCA9IHRhcmdldDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgXCJ0YXJnZXRcIiB2YWx1ZSwgdXNlIGEgdmFsaWQgRWxlbWVudCcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGB0YXJnZXRgIHByb3BlcnR5LlxuICAgICAqIEByZXR1cm4ge1N0cmluZ3xIVE1MRWxlbWVudH1cbiAgICAgKi9cbiAgICAsXG4gICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdGFyZ2V0O1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBDbGlwYm9hcmRBY3Rpb247XG59KCk7XG5cbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gdmFyIGNsaXBib2FyZF9hY3Rpb24gPSAoQ2xpcGJvYXJkQWN0aW9uKTtcbjsvLyBDT05DQVRFTkFURUQgTU9EVUxFOiAuL3NyYy9jbGlwYm9hcmQuanNcbmZ1bmN0aW9uIGNsaXBib2FyZF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IGNsaXBib2FyZF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgY2xpcGJvYXJkX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBjbGlwYm9hcmRfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gY2xpcGJvYXJkX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gY2xpcGJvYXJkX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBjbGlwYm9hcmRfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBjbGlwYm9hcmRfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGNsaXBib2FyZF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChjbGlwYm9hcmRfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxuXG5cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gcmV0cmlldmUgYXR0cmlidXRlIHZhbHVlLlxuICogQHBhcmFtIHtTdHJpbmd9IHN1ZmZpeFxuICogQHBhcmFtIHtFbGVtZW50fSBlbGVtZW50XG4gKi9cblxuZnVuY3Rpb24gZ2V0QXR0cmlidXRlVmFsdWUoc3VmZml4LCBlbGVtZW50KSB7XG4gIHZhciBhdHRyaWJ1dGUgPSBcImRhdGEtY2xpcGJvYXJkLVwiLmNvbmNhdChzdWZmaXgpO1xuXG4gIGlmICghZWxlbWVudC5oYXNBdHRyaWJ1dGUoYXR0cmlidXRlKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpO1xufVxuLyoqXG4gKiBCYXNlIGNsYXNzIHdoaWNoIHRha2VzIG9uZSBvciBtb3JlIGVsZW1lbnRzLCBhZGRzIGV2ZW50IGxpc3RlbmVycyB0byB0aGVtLFxuICogYW5kIGluc3RhbnRpYXRlcyBhIG5ldyBgQ2xpcGJvYXJkQWN0aW9uYCBvbiBlYWNoIGNsaWNrLlxuICovXG5cblxudmFyIENsaXBib2FyZCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX0VtaXR0ZXIpIHtcbiAgX2luaGVyaXRzKENsaXBib2FyZCwgX0VtaXR0ZXIpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoQ2xpcGJvYXJkKTtcblxuICAvKipcbiAgICogQHBhcmFtIHtTdHJpbmd8SFRNTEVsZW1lbnR8SFRNTENvbGxlY3Rpb258Tm9kZUxpc3R9IHRyaWdnZXJcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICovXG4gIGZ1bmN0aW9uIENsaXBib2FyZCh0cmlnZ2VyLCBvcHRpb25zKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgY2xpcGJvYXJkX2NsYXNzQ2FsbENoZWNrKHRoaXMsIENsaXBib2FyZCk7XG5cbiAgICBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpO1xuXG4gICAgX3RoaXMucmVzb2x2ZU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICBfdGhpcy5saXN0ZW5DbGljayh0cmlnZ2VyKTtcblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuICAvKipcbiAgICogRGVmaW5lcyBpZiBhdHRyaWJ1dGVzIHdvdWxkIGJlIHJlc29sdmVkIHVzaW5nIGludGVybmFsIHNldHRlciBmdW5jdGlvbnNcbiAgICogb3IgY3VzdG9tIGZ1bmN0aW9ucyB0aGF0IHdlcmUgcGFzc2VkIGluIHRoZSBjb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICovXG5cblxuICBjbGlwYm9hcmRfY3JlYXRlQ2xhc3MoQ2xpcGJvYXJkLCBbe1xuICAgIGtleTogXCJyZXNvbHZlT3B0aW9uc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZXNvbHZlT3B0aW9ucygpIHtcbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgICAgIHRoaXMuYWN0aW9uID0gdHlwZW9mIG9wdGlvbnMuYWN0aW9uID09PSAnZnVuY3Rpb24nID8gb3B0aW9ucy5hY3Rpb24gOiB0aGlzLmRlZmF1bHRBY3Rpb247XG4gICAgICB0aGlzLnRhcmdldCA9IHR5cGVvZiBvcHRpb25zLnRhcmdldCA9PT0gJ2Z1bmN0aW9uJyA/IG9wdGlvbnMudGFyZ2V0IDogdGhpcy5kZWZhdWx0VGFyZ2V0O1xuICAgICAgdGhpcy50ZXh0ID0gdHlwZW9mIG9wdGlvbnMudGV4dCA9PT0gJ2Z1bmN0aW9uJyA/IG9wdGlvbnMudGV4dCA6IHRoaXMuZGVmYXVsdFRleHQ7XG4gICAgICB0aGlzLmNvbnRhaW5lciA9IGNsaXBib2FyZF90eXBlb2Yob3B0aW9ucy5jb250YWluZXIpID09PSAnb2JqZWN0JyA/IG9wdGlvbnMuY29udGFpbmVyIDogZG9jdW1lbnQuYm9keTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWRkcyBhIGNsaWNrIGV2ZW50IGxpc3RlbmVyIHRvIHRoZSBwYXNzZWQgdHJpZ2dlci5cbiAgICAgKiBAcGFyYW0ge1N0cmluZ3xIVE1MRWxlbWVudHxIVE1MQ29sbGVjdGlvbnxOb2RlTGlzdH0gdHJpZ2dlclxuICAgICAqL1xuXG4gIH0sIHtcbiAgICBrZXk6IFwibGlzdGVuQ2xpY2tcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gbGlzdGVuQ2xpY2sodHJpZ2dlcikge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHRoaXMubGlzdGVuZXIgPSBsaXN0ZW5fZGVmYXVsdCgpKHRyaWdnZXIsICdjbGljaycsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIHJldHVybiBfdGhpczIub25DbGljayhlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGEgbmV3IGBDbGlwYm9hcmRBY3Rpb25gIG9uIGVhY2ggY2xpY2sgZXZlbnQuXG4gICAgICogQHBhcmFtIHtFdmVudH0gZVxuICAgICAqL1xuXG4gIH0sIHtcbiAgICBrZXk6IFwib25DbGlja1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBvbkNsaWNrKGUpIHtcbiAgICAgIHZhciB0cmlnZ2VyID0gZS5kZWxlZ2F0ZVRhcmdldCB8fCBlLmN1cnJlbnRUYXJnZXQ7XG5cbiAgICAgIGlmICh0aGlzLmNsaXBib2FyZEFjdGlvbikge1xuICAgICAgICB0aGlzLmNsaXBib2FyZEFjdGlvbiA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY2xpcGJvYXJkQWN0aW9uID0gbmV3IGNsaXBib2FyZF9hY3Rpb24oe1xuICAgICAgICBhY3Rpb246IHRoaXMuYWN0aW9uKHRyaWdnZXIpLFxuICAgICAgICB0YXJnZXQ6IHRoaXMudGFyZ2V0KHRyaWdnZXIpLFxuICAgICAgICB0ZXh0OiB0aGlzLnRleHQodHJpZ2dlciksXG4gICAgICAgIGNvbnRhaW5lcjogdGhpcy5jb250YWluZXIsXG4gICAgICAgIHRyaWdnZXI6IHRyaWdnZXIsXG4gICAgICAgIGVtaXR0ZXI6IHRoaXNcbiAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZWZhdWx0IGBhY3Rpb25gIGxvb2t1cCBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHRyaWdnZXJcbiAgICAgKi9cblxuICB9LCB7XG4gICAga2V5OiBcImRlZmF1bHRBY3Rpb25cIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZGVmYXVsdEFjdGlvbih0cmlnZ2VyKSB7XG4gICAgICByZXR1cm4gZ2V0QXR0cmlidXRlVmFsdWUoJ2FjdGlvbicsIHRyaWdnZXIpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZWZhdWx0IGB0YXJnZXRgIGxvb2t1cCBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHRyaWdnZXJcbiAgICAgKi9cblxuICB9LCB7XG4gICAga2V5OiBcImRlZmF1bHRUYXJnZXRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZGVmYXVsdFRhcmdldCh0cmlnZ2VyKSB7XG4gICAgICB2YXIgc2VsZWN0b3IgPSBnZXRBdHRyaWJ1dGVWYWx1ZSgndGFyZ2V0JywgdHJpZ2dlcik7XG5cbiAgICAgIGlmIChzZWxlY3Rvcikge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7XG4gICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHN1cHBvcnQgb2YgdGhlIGdpdmVuIGFjdGlvbiwgb3IgYWxsIGFjdGlvbnMgaWYgbm8gYWN0aW9uIGlzXG4gICAgICogZ2l2ZW4uXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IFthY3Rpb25dXG4gICAgICovXG5cbiAgfSwge1xuICAgIGtleTogXCJkZWZhdWx0VGV4dFwiLFxuXG4gICAgLyoqXG4gICAgICogRGVmYXVsdCBgdGV4dGAgbG9va3VwIGZ1bmN0aW9uLlxuICAgICAqIEBwYXJhbSB7RWxlbWVudH0gdHJpZ2dlclxuICAgICAqL1xuICAgIHZhbHVlOiBmdW5jdGlvbiBkZWZhdWx0VGV4dCh0cmlnZ2VyKSB7XG4gICAgICByZXR1cm4gZ2V0QXR0cmlidXRlVmFsdWUoJ3RleHQnLCB0cmlnZ2VyKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRGVzdHJveSBsaWZlY3ljbGUuXG4gICAgICovXG5cbiAgfSwge1xuICAgIGtleTogXCJkZXN0cm95XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGRlc3Ryb3koKSB7XG4gICAgICB0aGlzLmxpc3RlbmVyLmRlc3Ryb3koKTtcblxuICAgICAgaWYgKHRoaXMuY2xpcGJvYXJkQWN0aW9uKSB7XG4gICAgICAgIHRoaXMuY2xpcGJvYXJkQWN0aW9uLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5jbGlwYm9hcmRBY3Rpb24gPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfV0sIFt7XG4gICAga2V5OiBcImlzU3VwcG9ydGVkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGlzU3VwcG9ydGVkKCkge1xuICAgICAgdmFyIGFjdGlvbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogWydjb3B5JywgJ2N1dCddO1xuICAgICAgdmFyIGFjdGlvbnMgPSB0eXBlb2YgYWN0aW9uID09PSAnc3RyaW5nJyA/IFthY3Rpb25dIDogYWN0aW9uO1xuICAgICAgdmFyIHN1cHBvcnQgPSAhIWRvY3VtZW50LnF1ZXJ5Q29tbWFuZFN1cHBvcnRlZDtcbiAgICAgIGFjdGlvbnMuZm9yRWFjaChmdW5jdGlvbiAoYWN0aW9uKSB7XG4gICAgICAgIHN1cHBvcnQgPSBzdXBwb3J0ICYmICEhZG9jdW1lbnQucXVlcnlDb21tYW5kU3VwcG9ydGVkKGFjdGlvbik7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBzdXBwb3J0O1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBDbGlwYm9hcmQ7XG59KCh0aW55X2VtaXR0ZXJfZGVmYXVsdCgpKSk7XG5cbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gdmFyIGNsaXBib2FyZCA9IChDbGlwYm9hcmQpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gODI4OlxuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSkge1xuXG52YXIgRE9DVU1FTlRfTk9ERV9UWVBFID0gOTtcblxuLyoqXG4gKiBBIHBvbHlmaWxsIGZvciBFbGVtZW50Lm1hdGNoZXMoKVxuICovXG5pZiAodHlwZW9mIEVsZW1lbnQgIT09ICd1bmRlZmluZWQnICYmICFFbGVtZW50LnByb3RvdHlwZS5tYXRjaGVzKSB7XG4gICAgdmFyIHByb3RvID0gRWxlbWVudC5wcm90b3R5cGU7XG5cbiAgICBwcm90by5tYXRjaGVzID0gcHJvdG8ubWF0Y2hlc1NlbGVjdG9yIHx8XG4gICAgICAgICAgICAgICAgICAgIHByb3RvLm1vek1hdGNoZXNTZWxlY3RvciB8fFxuICAgICAgICAgICAgICAgICAgICBwcm90by5tc01hdGNoZXNTZWxlY3RvciB8fFxuICAgICAgICAgICAgICAgICAgICBwcm90by5vTWF0Y2hlc1NlbGVjdG9yIHx8XG4gICAgICAgICAgICAgICAgICAgIHByb3RvLndlYmtpdE1hdGNoZXNTZWxlY3Rvcjtcbn1cblxuLyoqXG4gKiBGaW5kcyB0aGUgY2xvc2VzdCBwYXJlbnQgdGhhdCBtYXRjaGVzIGEgc2VsZWN0b3IuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBlbGVtZW50XG4gKiBAcGFyYW0ge1N0cmluZ30gc2VsZWN0b3JcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufVxuICovXG5mdW5jdGlvbiBjbG9zZXN0IChlbGVtZW50LCBzZWxlY3Rvcikge1xuICAgIHdoaWxlIChlbGVtZW50ICYmIGVsZW1lbnQubm9kZVR5cGUgIT09IERPQ1VNRU5UX05PREVfVFlQRSkge1xuICAgICAgICBpZiAodHlwZW9mIGVsZW1lbnQubWF0Y2hlcyA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICAgICAgZWxlbWVudC5tYXRjaGVzKHNlbGVjdG9yKSkge1xuICAgICAgICAgIHJldHVybiBlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudE5vZGU7XG4gICAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNsb3Nlc3Q7XG5cblxuLyoqKi8gfSksXG5cbi8qKiovIDQzODpcbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fdW51c2VkX3dlYnBhY2tfZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG52YXIgY2xvc2VzdCA9IF9fd2VicGFja19yZXF1aXJlX18oODI4KTtcblxuLyoqXG4gKiBEZWxlZ2F0ZXMgZXZlbnQgdG8gYSBzZWxlY3Rvci5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IGVsZW1lbnRcbiAqIEBwYXJhbSB7U3RyaW5nfSBzZWxlY3RvclxuICogQHBhcmFtIHtTdHJpbmd9IHR5cGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXG4gKiBAcGFyYW0ge0Jvb2xlYW59IHVzZUNhcHR1cmVcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqL1xuZnVuY3Rpb24gX2RlbGVnYXRlKGVsZW1lbnQsIHNlbGVjdG9yLCB0eXBlLCBjYWxsYmFjaywgdXNlQ2FwdHVyZSkge1xuICAgIHZhciBsaXN0ZW5lckZuID0gbGlzdGVuZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lckZuLCB1c2VDYXB0dXJlKTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIGRlc3Ryb3k6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyRm4sIHVzZUNhcHR1cmUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIERlbGVnYXRlcyBldmVudCB0byBhIHNlbGVjdG9yLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudHxTdHJpbmd8QXJyYXl9IFtlbGVtZW50c11cbiAqIEBwYXJhbSB7U3RyaW5nfSBzZWxlY3RvclxuICogQHBhcmFtIHtTdHJpbmd9IHR5cGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXG4gKiBAcGFyYW0ge0Jvb2xlYW59IHVzZUNhcHR1cmVcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqL1xuZnVuY3Rpb24gZGVsZWdhdGUoZWxlbWVudHMsIHNlbGVjdG9yLCB0eXBlLCBjYWxsYmFjaywgdXNlQ2FwdHVyZSkge1xuICAgIC8vIEhhbmRsZSB0aGUgcmVndWxhciBFbGVtZW50IHVzYWdlXG4gICAgaWYgKHR5cGVvZiBlbGVtZW50cy5hZGRFdmVudExpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBfZGVsZWdhdGUuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgRWxlbWVudC1sZXNzIHVzYWdlLCBpdCBkZWZhdWx0cyB0byBnbG9iYWwgZGVsZWdhdGlvblxuICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBVc2UgYGRvY3VtZW50YCBhcyB0aGUgZmlyc3QgcGFyYW1ldGVyLCB0aGVuIGFwcGx5IGFyZ3VtZW50c1xuICAgICAgICAvLyBUaGlzIGlzIGEgc2hvcnQgd2F5IHRvIC51bnNoaWZ0IGBhcmd1bWVudHNgIHdpdGhvdXQgcnVubmluZyBpbnRvIGRlb3B0aW1pemF0aW9uc1xuICAgICAgICByZXR1cm4gX2RlbGVnYXRlLmJpbmQobnVsbCwgZG9jdW1lbnQpLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIFNlbGVjdG9yLWJhc2VkIHVzYWdlXG4gICAgaWYgKHR5cGVvZiBlbGVtZW50cyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgZWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGVsZW1lbnRzKTtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgQXJyYXktbGlrZSBiYXNlZCB1c2FnZVxuICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwoZWxlbWVudHMsIGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBfZGVsZWdhdGUoZWxlbWVudCwgc2VsZWN0b3IsIHR5cGUsIGNhbGxiYWNrLCB1c2VDYXB0dXJlKTtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBGaW5kcyBjbG9zZXN0IG1hdGNoIGFuZCBpbnZva2VzIGNhbGxiYWNrLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gZWxlbWVudFxuICogQHBhcmFtIHtTdHJpbmd9IHNlbGVjdG9yXG4gKiBAcGFyYW0ge1N0cmluZ30gdHlwZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufVxuICovXG5mdW5jdGlvbiBsaXN0ZW5lcihlbGVtZW50LCBzZWxlY3RvciwgdHlwZSwgY2FsbGJhY2spIHtcbiAgICByZXR1cm4gZnVuY3Rpb24oZSkge1xuICAgICAgICBlLmRlbGVnYXRlVGFyZ2V0ID0gY2xvc2VzdChlLnRhcmdldCwgc2VsZWN0b3IpO1xuXG4gICAgICAgIGlmIChlLmRlbGVnYXRlVGFyZ2V0KSB7XG4gICAgICAgICAgICBjYWxsYmFjay5jYWxsKGVsZW1lbnQsIGUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGRlbGVnYXRlO1xuXG5cbi8qKiovIH0pLFxuXG4vKioqLyA4Nzk6XG4vKioqLyAoZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsIGV4cG9ydHMpIHtcblxuLyoqXG4gKiBDaGVjayBpZiBhcmd1bWVudCBpcyBhIEhUTUwgZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsdWVcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKi9cbmV4cG9ydHMubm9kZSA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWRcbiAgICAgICAgJiYgdmFsdWUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudFxuICAgICAgICAmJiB2YWx1ZS5ub2RlVHlwZSA9PT0gMTtcbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgYXJndW1lbnQgaXMgYSBsaXN0IG9mIEhUTUwgZWxlbWVudHMuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHZhbHVlXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICovXG5leHBvcnRzLm5vZGVMaXN0ID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgICB2YXIgdHlwZSA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG5cbiAgICByZXR1cm4gdmFsdWUgIT09IHVuZGVmaW5lZFxuICAgICAgICAmJiAodHlwZSA9PT0gJ1tvYmplY3QgTm9kZUxpc3RdJyB8fCB0eXBlID09PSAnW29iamVjdCBIVE1MQ29sbGVjdGlvbl0nKVxuICAgICAgICAmJiAoJ2xlbmd0aCcgaW4gdmFsdWUpXG4gICAgICAgICYmICh2YWx1ZS5sZW5ndGggPT09IDAgfHwgZXhwb3J0cy5ub2RlKHZhbHVlWzBdKSk7XG59O1xuXG4vKipcbiAqIENoZWNrIGlmIGFyZ3VtZW50IGlzIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWx1ZVxuICogQHJldHVybiB7Qm9vbGVhbn1cbiAqL1xuZXhwb3J0cy5zdHJpbmcgPSBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnXG4gICAgICAgIHx8IHZhbHVlIGluc3RhbmNlb2YgU3RyaW5nO1xufTtcblxuLyoqXG4gKiBDaGVjayBpZiBhcmd1bWVudCBpcyBhIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWx1ZVxuICogQHJldHVybiB7Qm9vbGVhbn1cbiAqL1xuZXhwb3J0cy5mbiA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgdmFyIHR5cGUgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpO1xuXG4gICAgcmV0dXJuIHR5cGUgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSc7XG59O1xuXG5cbi8qKiovIH0pLFxuXG4vKioqLyAzNzA6XG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxudmFyIGlzID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4NzkpO1xudmFyIGRlbGVnYXRlID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0MzgpO1xuXG4vKipcbiAqIFZhbGlkYXRlcyBhbGwgcGFyYW1zIGFuZCBjYWxscyB0aGUgcmlnaHRcbiAqIGxpc3RlbmVyIGZ1bmN0aW9uIGJhc2VkIG9uIGl0cyB0YXJnZXQgdHlwZS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ3xIVE1MRWxlbWVudHxIVE1MQ29sbGVjdGlvbnxOb2RlTGlzdH0gdGFyZ2V0XG4gKiBAcGFyYW0ge1N0cmluZ30gdHlwZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqL1xuZnVuY3Rpb24gbGlzdGVuKHRhcmdldCwgdHlwZSwgY2FsbGJhY2spIHtcbiAgICBpZiAoIXRhcmdldCAmJiAhdHlwZSAmJiAhY2FsbGJhY2spIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHJlcXVpcmVkIGFyZ3VtZW50cycpO1xuICAgIH1cblxuICAgIGlmICghaXMuc3RyaW5nKHR5cGUpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1NlY29uZCBhcmd1bWVudCBtdXN0IGJlIGEgU3RyaW5nJyk7XG4gICAgfVxuXG4gICAgaWYgKCFpcy5mbihjYWxsYmFjaykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhpcmQgYXJndW1lbnQgbXVzdCBiZSBhIEZ1bmN0aW9uJyk7XG4gICAgfVxuXG4gICAgaWYgKGlzLm5vZGUodGFyZ2V0KSkge1xuICAgICAgICByZXR1cm4gbGlzdGVuTm9kZSh0YXJnZXQsIHR5cGUsIGNhbGxiYWNrKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoaXMubm9kZUxpc3QodGFyZ2V0KSkge1xuICAgICAgICByZXR1cm4gbGlzdGVuTm9kZUxpc3QodGFyZ2V0LCB0eXBlLCBjYWxsYmFjayk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzLnN0cmluZyh0YXJnZXQpKSB7XG4gICAgICAgIHJldHVybiBsaXN0ZW5TZWxlY3Rvcih0YXJnZXQsIHR5cGUsIGNhbGxiYWNrKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBTdHJpbmcsIEhUTUxFbGVtZW50LCBIVE1MQ29sbGVjdGlvbiwgb3IgTm9kZUxpc3QnKTtcbiAgICB9XG59XG5cbi8qKlxuICogQWRkcyBhbiBldmVudCBsaXN0ZW5lciB0byBhIEhUTUwgZWxlbWVudFxuICogYW5kIHJldHVybnMgYSByZW1vdmUgbGlzdGVuZXIgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gbm9kZVxuICogQHBhcmFtIHtTdHJpbmd9IHR5cGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKi9cbmZ1bmN0aW9uIGxpc3Rlbk5vZGUobm9kZSwgdHlwZSwgY2FsbGJhY2spIHtcbiAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIodHlwZSwgY2FsbGJhY2spO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgZGVzdHJveTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSwgY2FsbGJhY2spO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIEFkZCBhbiBldmVudCBsaXN0ZW5lciB0byBhIGxpc3Qgb2YgSFRNTCBlbGVtZW50c1xuICogYW5kIHJldHVybnMgYSByZW1vdmUgbGlzdGVuZXIgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIHtOb2RlTGlzdHxIVE1MQ29sbGVjdGlvbn0gbm9kZUxpc3RcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHJldHVybiB7T2JqZWN0fVxuICovXG5mdW5jdGlvbiBsaXN0ZW5Ob2RlTGlzdChub2RlTGlzdCwgdHlwZSwgY2FsbGJhY2spIHtcbiAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG5vZGVMaXN0LCBmdW5jdGlvbihub2RlKSB7XG4gICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBjYWxsYmFjayk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBkZXN0cm95OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwobm9kZUxpc3QsIGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgICAgICAgICAgICBub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSwgY2FsbGJhY2spO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogQWRkIGFuIGV2ZW50IGxpc3RlbmVyIHRvIGEgc2VsZWN0b3JcbiAqIGFuZCByZXR1cm5zIGEgcmVtb3ZlIGxpc3RlbmVyIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzZWxlY3RvclxuICogQHBhcmFtIHtTdHJpbmd9IHR5cGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKi9cbmZ1bmN0aW9uIGxpc3RlblNlbGVjdG9yKHNlbGVjdG9yLCB0eXBlLCBjYWxsYmFjaykge1xuICAgIHJldHVybiBkZWxlZ2F0ZShkb2N1bWVudC5ib2R5LCBzZWxlY3RvciwgdHlwZSwgY2FsbGJhY2spO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGxpc3RlbjtcblxuXG4vKioqLyB9KSxcblxuLyoqKi8gODE3OlxuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSkge1xuXG5mdW5jdGlvbiBzZWxlY3QoZWxlbWVudCkge1xuICAgIHZhciBzZWxlY3RlZFRleHQ7XG5cbiAgICBpZiAoZWxlbWVudC5ub2RlTmFtZSA9PT0gJ1NFTEVDVCcpIHtcbiAgICAgICAgZWxlbWVudC5mb2N1cygpO1xuXG4gICAgICAgIHNlbGVjdGVkVGV4dCA9IGVsZW1lbnQudmFsdWU7XG4gICAgfVxuICAgIGVsc2UgaWYgKGVsZW1lbnQubm9kZU5hbWUgPT09ICdJTlBVVCcgfHwgZWxlbWVudC5ub2RlTmFtZSA9PT0gJ1RFWFRBUkVBJykge1xuICAgICAgICB2YXIgaXNSZWFkT25seSA9IGVsZW1lbnQuaGFzQXR0cmlidXRlKCdyZWFkb25seScpO1xuXG4gICAgICAgIGlmICghaXNSZWFkT25seSkge1xuICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3JlYWRvbmx5JywgJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgZWxlbWVudC5zZWxlY3QoKTtcbiAgICAgICAgZWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZSgwLCBlbGVtZW50LnZhbHVlLmxlbmd0aCk7XG5cbiAgICAgICAgaWYgKCFpc1JlYWRPbmx5KSB7XG4gICAgICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgncmVhZG9ubHknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdGVkVGV4dCA9IGVsZW1lbnQudmFsdWU7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScpKSB7XG4gICAgICAgICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgICB2YXIgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuXG4gICAgICAgIHJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhlbGVtZW50KTtcbiAgICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpO1xuXG4gICAgICAgIHNlbGVjdGVkVGV4dCA9IHNlbGVjdGlvbi50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHJldHVybiBzZWxlY3RlZFRleHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2VsZWN0O1xuXG5cbi8qKiovIH0pLFxuXG4vKioqLyAyNzk6XG4vKioqLyAoZnVuY3Rpb24obW9kdWxlKSB7XG5cbmZ1bmN0aW9uIEUgKCkge1xuICAvLyBLZWVwIHRoaXMgZW1wdHkgc28gaXQncyBlYXNpZXIgdG8gaW5oZXJpdCBmcm9tXG4gIC8vICh2aWEgaHR0cHM6Ly9naXRodWIuY29tL2xpcHNtYWNrIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3Njb3R0Y29yZ2FuL3RpbnktZW1pdHRlci9pc3N1ZXMvMylcbn1cblxuRS5wcm90b3R5cGUgPSB7XG4gIG9uOiBmdW5jdGlvbiAobmFtZSwgY2FsbGJhY2ssIGN0eCkge1xuICAgIHZhciBlID0gdGhpcy5lIHx8ICh0aGlzLmUgPSB7fSk7XG5cbiAgICAoZVtuYW1lXSB8fCAoZVtuYW1lXSA9IFtdKSkucHVzaCh7XG4gICAgICBmbjogY2FsbGJhY2ssXG4gICAgICBjdHg6IGN0eFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG5cbiAgb25jZTogZnVuY3Rpb24gKG5hbWUsIGNhbGxiYWNrLCBjdHgpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgZnVuY3Rpb24gbGlzdGVuZXIgKCkge1xuICAgICAgc2VsZi5vZmYobmFtZSwgbGlzdGVuZXIpO1xuICAgICAgY2FsbGJhY2suYXBwbHkoY3R4LCBhcmd1bWVudHMpO1xuICAgIH07XG5cbiAgICBsaXN0ZW5lci5fID0gY2FsbGJhY2tcbiAgICByZXR1cm4gdGhpcy5vbihuYW1lLCBsaXN0ZW5lciwgY3R4KTtcbiAgfSxcblxuICBlbWl0OiBmdW5jdGlvbiAobmFtZSkge1xuICAgIHZhciBkYXRhID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgIHZhciBldnRBcnIgPSAoKHRoaXMuZSB8fCAodGhpcy5lID0ge30pKVtuYW1lXSB8fCBbXSkuc2xpY2UoKTtcbiAgICB2YXIgaSA9IDA7XG4gICAgdmFyIGxlbiA9IGV2dEFyci5sZW5ndGg7XG5cbiAgICBmb3IgKGk7IGkgPCBsZW47IGkrKykge1xuICAgICAgZXZ0QXJyW2ldLmZuLmFwcGx5KGV2dEFycltpXS5jdHgsIGRhdGEpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9LFxuXG4gIG9mZjogZnVuY3Rpb24gKG5hbWUsIGNhbGxiYWNrKSB7XG4gICAgdmFyIGUgPSB0aGlzLmUgfHwgKHRoaXMuZSA9IHt9KTtcbiAgICB2YXIgZXZ0cyA9IGVbbmFtZV07XG4gICAgdmFyIGxpdmVFdmVudHMgPSBbXTtcblxuICAgIGlmIChldnRzICYmIGNhbGxiYWNrKSB7XG4gICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gZXZ0cy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICBpZiAoZXZ0c1tpXS5mbiAhPT0gY2FsbGJhY2sgJiYgZXZ0c1tpXS5mbi5fICE9PSBjYWxsYmFjaylcbiAgICAgICAgICBsaXZlRXZlbnRzLnB1c2goZXZ0c1tpXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIGV2ZW50IGZyb20gcXVldWUgdG8gcHJldmVudCBtZW1vcnkgbGVha1xuICAgIC8vIFN1Z2dlc3RlZCBieSBodHRwczovL2dpdGh1Yi5jb20vbGF6ZFxuICAgIC8vIFJlZjogaHR0cHM6Ly9naXRodWIuY29tL3Njb3R0Y29yZ2FuL3RpbnktZW1pdHRlci9jb21taXQvYzZlYmZhYTliYzk3M2IzM2QxMTBhODRhMzA3NzQyYjdjZjk0Yzk1MyNjb21taXRjb21tZW50LTUwMjQ5MTBcblxuICAgIChsaXZlRXZlbnRzLmxlbmd0aClcbiAgICAgID8gZVtuYW1lXSA9IGxpdmVFdmVudHNcbiAgICAgIDogZGVsZXRlIGVbbmFtZV07XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBFO1xubW9kdWxlLmV4cG9ydHMuVGlueUVtaXR0ZXIgPSBFO1xuXG5cbi8qKiovIH0pXG5cbi8qKioqKiovIFx0fSk7XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdHZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4vKioqKioqLyBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcbi8qKioqKiovIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbi8qKioqKiovIFx0XHRpZihfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdKSB7XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXS5leHBvcnRzO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuLyoqKioqKi8gXHRcdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuLyoqKioqKi8gXHRcdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuLyoqKioqKi8gXHRcdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcbi8qKioqKiovIFx0XHRcdGV4cG9ydHM6IHt9XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4vKioqKioqLyBcdFx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4vKioqKioqLyBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuLyoqKioqKi8gXHR9XG4vKioqKioqLyBcdFxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQgKi9cbi8qKioqKiovIFx0IWZ1bmN0aW9uKCkge1xuLyoqKioqKi8gXHRcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4vKioqKioqLyBcdFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbi8qKioqKiovIFx0XHRcdFx0ZnVuY3Rpb24oKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4vKioqKioqLyBcdFx0XHRcdGZ1bmN0aW9uKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuLyoqKioqKi8gXHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gZ2V0dGVyO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0oKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyAqL1xuLyoqKioqKi8gXHQhZnVuY3Rpb24oKSB7XG4vKioqKioqLyBcdFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIGRlZmluaXRpb24pIHtcbi8qKioqKiovIFx0XHRcdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcbi8qKioqKiovIFx0XHRcdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0oKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQgKi9cbi8qKioqKiovIFx0IWZ1bmN0aW9uKCkge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iaiwgcHJvcCkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCk7IH1cbi8qKioqKiovIFx0fSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqLyBcdC8vIG1vZHVsZSBleHBvcnRzIG11c3QgYmUgcmV0dXJuZWQgZnJvbSBydW50aW1lIHNvIGVudHJ5IGlubGluaW5nIGlzIGRpc2FibGVkXG4vKioqKioqLyBcdC8vIHN0YXJ0dXBcbi8qKioqKiovIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4vKioqKioqLyBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzNCk7XG4vKioqKioqLyB9KSgpXG4uZGVmYXVsdDtcbn0pOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/clipboard/dist/clipboard.js\n");

/***/ }),

/***/ "./node_modules/vue-json-viewer/vue-json-viewer.js":
/*!*********************************************************!*\
  !*** ./node_modules/vue-json-viewer/vue-json-viewer.js ***!
  \*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("!function(e,t){ true?module.exports=t(__webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.common.js\"),__webpack_require__(/*! clipboard */ \"./node_modules/clipboard/dist/clipboard.js\")):undefined}(this,function(n,o){return a={},i.m=r=[function(e,t,n){\"use strict\";function o(e,t,n,o,i,r,a,s){var u,l,c=\"function\"==typeof e?e.options:e;return t&&(c.render=t,c.staticRenderFns=n,c._compiled=!0),o&&(c.functional=!0),r&&(c._scopeId=\"data-v-\"+r),a?c._ssrRegister=u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)}:i&&(u=s?function(){i.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:i),u&&(c.functional?(c._injectStyles=u,l=c.render,c.render=function(e,t){return u.call(t),l(e,t)}):(s=c.beforeCreate,c.beforeCreate=s?[].concat(s,u):[u])),{exports:e,options:c}}n.d(t,\"a\",function(){return o})},function(e,t,n){\"use strict\";n.r(t);var o,i=n(2),r=n.n(i);for(o in i)\"default\"!==o&&function(e){n.d(t,e,function(){return i[e]})}(o);t.default=r.a},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});a(n(29));var o=a(n(21)),i=a(n(41)),r=n(42);function a(e){return e&&e.__esModule?e:{default:e}}t.default={name:\"JsonViewer\",components:{JsonBox:o.default},props:{value:{type:[Object,Array,String,Number,Boolean,Function],required:!0},expanded:{type:Boolean,default:!1},expandDepth:{type:Number,default:1},copyable:{type:[Boolean,Object],default:!1},sort:{type:Boolean,default:!1},boxed:{type:Boolean,default:!1},theme:{type:String,default:\"jv-light\"},timeformat:{type:Function,default:function(e){return e.toLocaleString()}},previewMode:{type:Boolean,default:!1}},provide:function(){return{expandDepth:this.expandDepth,timeformat:this.timeformat}},data:function(){return{copied:!1,expandableCode:!1,expandCode:this.expanded}},computed:{jvClass:function(){return\"jv-container \"+this.theme+(this.boxed?\" boxed\":\"\")},copyText:function(){var e=this.copyable;return{copyText:e.copyText||\"copy\",copiedText:e.copiedText||\"copied!\",timeout:e.timeout||2e3,align:e.align}}},watch:{value:function(){this.onResized()}},mounted:function(){var t=this;this.debounceResized=(0,r.debounce)(this.debResized.bind(this),200),this.boxed&&this.$refs.jsonBox&&(this.onResized(),this.$refs.jsonBox.$el.addEventListener(\"resized\",this.onResized,!0)),this.copyable&&new i.default(this.$refs.clip,{container:this.$refs.viewer,text:function(){return JSON.stringify(t.value,null,2)}}).on(\"success\",function(e){t.onCopied(e)})},methods:{onResized:function(){this.debounceResized()},debResized:function(){var e=this;this.$nextTick(function(){e.$refs.jsonBox&&(250<=e.$refs.jsonBox.$el.clientHeight?e.expandableCode=!0:e.expandableCode=!1)})},onCopied:function(e){var t=this;this.copied||(this.copied=!0,setTimeout(function(){t.copied=!1},this.copyText.timeout),this.$emit(\"copied\",e))},toggleExpandCode:function(){this.expandCode=!this.expandCode}}}},function(e,t,n){\"use strict\";n.r(t);var o,i=n(4),r=n.n(i);for(o in i)\"default\"!==o&&function(e){n.d(t,e,function(){return i[e]})}(o);t.default=r.a},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},a=o(n(30)),s=o(n(31)),u=o(n(32)),l=o(n(33)),c=o(n(34)),d=o(n(35)),f=o(n(36)),p=o(n(37));function o(e){return e&&e.__esModule?e:{default:e}}t.default={name:\"JsonBox\",inject:[\"expandDepth\"],props:{value:{type:[Object,Array,String,Number,Boolean,Function,Date],default:null},keyName:{type:String,default:\"\"},sort:Boolean,depth:{type:Number,default:0},previewMode:Boolean},data:function(){return{expand:!0}},mounted:function(){this.expand=this.previewMode||!(this.depth>=this.expandDepth)},methods:{toggle:function(){this.expand=!this.expand;try{this.$el.dispatchEvent(new Event(\"resized\"))}catch(e){var t=document.createEvent(\"Event\");t.initEvent(\"resized\",!0,!1),this.$el.dispatchEvent(t)}}},render:function(e){var t=this,n=[],o=void 0;null===this.value||void 0===this.value?o=s.default:Array.isArray(this.value)?o=d.default:\"[object Date]\"===Object.prototype.toString.call(this.value)?o=p.default:\"object\"===r(this.value)?o=c.default:\"number\"==typeof this.value?o=u.default:\"string\"==typeof this.value?o=a.default:\"boolean\"==typeof this.value?o=l.default:\"function\"==typeof this.value&&(o=f.default);var i=this.keyName&&this.value&&(Array.isArray(this.value)||\"object\"===r(this.value)&&\"[object Date]\"!==Object.prototype.toString.call(this.value));return!this.previewMode&&i&&n.push(e(\"span\",{class:{\"jv-toggle\":!0,open:!!this.expand},on:{click:this.toggle}})),this.keyName&&n.push(e(\"span\",{class:{\"jv-key\":!0},domProps:{innerText:this.keyName+\":\"}})),n.push(e(o,{class:{\"jv-push\":!0},props:{jsonValue:this.value,keyName:this.keyName,sort:this.sort,depth:this.depth,expand:this.expand,previewMode:this.previewMode},on:{\"update:expand\":function(e){t.expand=e}}})),e(\"div\",{class:{\"jv-node\":!0,\"jv-key-node\":Boolean(this.keyName)&&!i,toggle:!this.previewMode&&i}},n)}}},function(e,t,n){\"use strict\";n.r(t);var o,i=n(6),r=n.n(i);for(o in i)\"default\"!==o&&function(e){n.d(t,e,function(){return i[e]})}(o);t.default=r.a},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=/^\\w+:\\/\\//;t.default={name:\"JsonString\",props:{jsonValue:{type:String,required:!0}},data:function(){return{expand:!0,canExtend:!1}},mounted:function(){this.$refs.itemRef.offsetHeight>this.$refs.holderRef.offsetHeight&&(this.canExtend=!0)},methods:{toggle:function(){this.expand=!this.expand}},render:function(e){var t=this.jsonValue,n=i.test(t),o=void 0;return this.expand?(o={class:{\"jv-item\":!0,\"jv-string\":!0},ref:\"itemRef\"}).domProps=n?{innerHTML:'\"'+(t='<a href=\"'+t+'\" target=\"_blank\" class=\"jv-link\">'+t+\"</a>\").toString()+'\"'}:{innerText:'\"'+t.toString()+'\"'}:o={class:{\"jv-ellipsis\":!0},on:{click:this.toggle},domProps:{innerText:\"...\"}},e(\"span\",{},[this.canExtend&&e(\"span\",{class:{\"jv-toggle\":!0,open:this.expand},on:{click:this.toggle}}),e(\"span\",{class:{\"jv-holder-node\":!0},ref:\"holderRef\"}),e(\"span\",o)])}}},function(e,t,n){\"use strict\";n.r(t);var o,i=n(8),r=n.n(i);for(o in i)\"default\"!==o&&function(e){n.d(t,e,function(){return i[e]})}(o);t.default=r.a},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default={name:\"JsonUndefined\",functional:!0,props:{jsonValue:{type:Object,default:null}},render:function(e,t){return e(\"span\",{class:{\"jv-item\":!0,\"jv-undefined\":!0},domProps:{innerText:null===t.props.jsonValue?\"null\":\"undefined\"}})}}},function(e,t,n){\"use strict\";n.r(t);var o,i=n(10),r=n.n(i);for(o in i)\"default\"!==o&&function(e){n.d(t,e,function(){return i[e]})}(o);t.default=r.a},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default={name:\"JsonNumber\",functional:!0,props:{jsonValue:{type:Number,required:!0}},render:function(e,t){var n=t.props,t=Number.isInteger(n.jsonValue);return e(\"span\",{class:{\"jv-item\":!0,\"jv-number\":!0,\"jv-number-integer\":t,\"jv-number-float\":!t},domProps:{innerText:n.jsonValue.toString()}})}}},function(e,t,n){\"use strict\";n.r(t);var o,i=n(12),r=n.n(i);for(o in i)\"default\"!==o&&function(e){n.d(t,e,function(){return i[e]})}(o);t.default=r.a},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default={name:\"JsonBoolean\",functional:!0,props:{jsonValue:Boolean},render:function(e,t){return e(\"span\",{class:{\"jv-item\":!0,\"jv-boolean\":!0},domProps:{innerText:t.props.jsonValue.toString()}})}}},function(e,t,n){\"use strict\";n.r(t);var o,i=n(14),r=n.n(i);for(o in i)\"default\"!==o&&function(e){n.d(t,e,function(){return i[e]})}(o);t.default=r.a},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o,i=n(21),r=(o=i)&&o.__esModule?o:{default:o};t.default={name:\"JsonObject\",props:{jsonValue:{type:Object,required:!0},keyName:{type:String,default:\"\"},depth:{type:Number,default:0},expand:Boolean,sort:Boolean,previewMode:Boolean},data:function(){return{value:{}}},computed:{ordered:function(){var t=this;if(!this.sort)return this.value;var n={};return Object.keys(this.value).sort().forEach(function(e){n[e]=t.value[e]}),n}},watch:{jsonValue:function(e){this.setValue(e)}},mounted:function(){this.setValue(this.jsonValue)},methods:{setValue:function(e){var t=this;setTimeout(function(){t.value=e},0)},toggle:function(){this.$emit(\"update:expand\",!this.expand),this.dispatchEvent()},dispatchEvent:function(){try{this.$el.dispatchEvent(new Event(\"resized\"))}catch(e){var t=document.createEvent(\"Event\");t.initEvent(\"resized\",!0,!1),this.$el.dispatchEvent(t)}}},render:function(e){var t,n=[];if(this.previewMode||this.keyName||n.push(e(\"span\",{class:{\"jv-toggle\":!0,open:!!this.expand},on:{click:this.toggle}})),n.push(e(\"span\",{class:{\"jv-item\":!0,\"jv-object\":!0},domProps:{innerText:\"{\"}})),this.expand)for(var o in this.ordered)this.ordered.hasOwnProperty(o)&&(t=this.ordered[o],n.push(e(r.default,{key:o,style:{display:this.expand?void 0:\"none\"},props:{sort:this.sort,keyName:o,depth:this.depth+1,value:t,previewMode:this.previewMode}})));return!this.expand&&Object.keys(this.value).length&&n.push(e(\"span\",{style:{display:this.expand?\"none\":void 0},class:{\"jv-ellipsis\":!0},on:{click:this.toggle},attrs:{title:\"click to reveal object content (keys: \"+Object.keys(this.ordered).join(\", \")+\")\"},domProps:{innerText:\"...\"}})),n.push(e(\"span\",{class:{\"jv-item\":!0,\"jv-object\":!0},domProps:{innerText:\"}\"}})),e(\"span\",n)}}},function(e,t,n){\"use strict\";n.r(t);var o,i=n(16),r=n.n(i);for(o in i)\"default\"!==o&&function(e){n.d(t,e,function(){return i[e]})}(o);t.default=r.a},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o,i=n(21),r=(o=i)&&o.__esModule?o:{default:o};t.default={name:\"JsonArray\",props:{jsonValue:{type:Array,required:!0},keyName:{type:String,default:\"\"},depth:{type:Number,default:0},sort:Boolean,expand:Boolean,previewMode:Boolean},data:function(){return{value:[]}},watch:{jsonValue:function(e){this.setValue(e)}},mounted:function(){this.setValue(this.jsonValue)},methods:{setValue:function(e){var t=this,n=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0;0===n&&(this.value=[]),setTimeout(function(){e.length>n&&(t.value.push(e[n]),t.setValue(e,n+1))},0)},toggle:function(){this.$emit(\"update:expand\",!this.expand);try{this.$el.dispatchEvent(new Event(\"resized\"))}catch(e){var t=document.createEvent(\"Event\");t.initEvent(\"resized\",!0,!1),this.$el.dispatchEvent(t)}}},render:function(n){var o=this,i=[];return this.previewMode||this.keyName||i.push(n(\"span\",{class:{\"jv-toggle\":!0,open:!!this.expand},on:{click:this.toggle}})),i.push(n(\"span\",{class:{\"jv-item\":!0,\"jv-array\":!0},domProps:{innerText:\"[\"}})),this.expand&&this.value.forEach(function(e,t){i.push(n(r.default,{key:t,style:{display:o.expand?void 0:\"none\"},props:{sort:o.sort,depth:o.depth+1,value:e,previewMode:o.previewMode}}))}),!this.expand&&this.value.length&&i.push(n(\"span\",{style:{display:void 0},class:{\"jv-ellipsis\":!0},on:{click:this.toggle},attrs:{title:\"click to reveal \"+this.value.length+\" hidden items\"},domProps:{innerText:\"...\"}})),i.push(n(\"span\",{class:{\"jv-item\":!0,\"jv-array\":!0},domProps:{innerText:\"]\"}})),n(\"span\",i)}}},function(e,t,n){\"use strict\";n.r(t);var o,i=n(18),r=n.n(i);for(o in i)\"default\"!==o&&function(e){n.d(t,e,function(){return i[e]})}(o);t.default=r.a},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default={name:\"JsonFunction\",functional:!0,props:{jsonValue:{type:Function,required:!0}},render:function(e,t){return e(\"span\",{class:{\"jv-item\":!0,\"jv-function\":!0},attrs:{title:t.props.jsonValue.toString()},domProps:{innerHTML:\"&lt;function&gt;\"}})}}},function(e,t,n){\"use strict\";n.r(t);var o,i=n(20),r=n.n(i);for(o in i)\"default\"!==o&&function(e){n.d(t,e,function(){return i[e]})}(o);t.default=r.a},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default={name:\"JsonDate\",inject:[\"timeformat\"],functional:!0,props:{jsonValue:{type:Date,required:!0}},render:function(e,t){var n=t.props,t=t.injections,n=n.jsonValue;return e(\"span\",{class:{\"jv-item\":!0,\"jv-string\":!0},domProps:{innerText:'\"'+(0,t.timeformat)(n)+'\"'}})}}},function(e,t,n){\"use strict\";n.r(t);var o,i=n(3);for(o in i)\"default\"!==o&&function(e){n.d(t,e,function(){return i[e]})}(o);n(38);var r=n(0),r=Object(r.a)(i.default,void 0,void 0,!1,null,null,null);r.options.__file=\"lib/json-box.vue\",t.default=r.exports},function(e,t,n){\"use strict\";function o(){var e=this,t=e.$createElement;return(t=e._self._c||t)(\"div\",{ref:\"viewer\",class:e.jvClass},[e.copyable?t(\"div\",{class:\"jv-tooltip \"+(e.copyText.align||\"right\")},[t(\"span\",{ref:\"clip\",staticClass:\"jv-button\",class:{copied:e.copied}},[e._t(\"copy\",[e._v(\"\\n        \"+e._s(e.copied?e.copyText.copiedText:e.copyText.copyText)+\"\\n      \")],{copied:e.copied})],2)]):e._e(),e._v(\" \"),t(\"div\",{staticClass:\"jv-code\",class:{open:e.expandCode,boxed:e.boxed}},[t(\"json-box\",{ref:\"jsonBox\",attrs:{value:e.value,sort:e.sort,\"preview-mode\":e.previewMode}})],1),e._v(\" \"),e.expandableCode&&e.boxed?t(\"div\",{staticClass:\"jv-more\",on:{click:e.toggleExpandCode}},[t(\"span\",{staticClass:\"jv-toggle\",class:{open:!!e.expandCode}})]):e._e()])}var i=[];o._withStripped=!0,n.d(t,\"a\",function(){return o}),n.d(t,\"b\",function(){return i})},function(e,t,n){var o=n(39);\"string\"==typeof o&&(o=[[e.i,o,\"\"]]);var i={hmr:!0,transform:void 0};n(25)(o,i);o.locals&&(e.exports=o.locals)},function(e,t,n){\"use strict\";e.exports=function(n){var u=[];return u.toString=function(){return this.map(function(e){var t=function(e,t){var n=e[1]||\"\",o=e[3];if(!o)return n;if(t&&\"function\"==typeof btoa){e=function(e){e=btoa(unescape(encodeURIComponent(JSON.stringify(e)))),e=\"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(e);return\"/*# \".concat(e,\" */\")}(o),t=o.sources.map(function(e){return\"/*# sourceURL=\".concat(o.sourceRoot||\"\").concat(e,\" */\")});return[n].concat(t).concat([e]).join(\"\\n\")}return[n].join(\"\\n\")}(e,n);return e[2]?\"@media \".concat(e[2],\" {\").concat(t,\"}\"):t}).join(\"\")},u.i=function(e,t,n){\"string\"==typeof e&&(e=[[null,e,\"\"]]);var o={};if(n)for(var i=0;i<this.length;i++){var r=this[i][0];null!=r&&(o[r]=!0)}for(var a=0;a<e.length;a++){var s=[].concat(e[a]);n&&o[s[0]]||(t&&(s[2]?s[2]=\"\".concat(t,\" and \").concat(s[2]):s[2]=t),u.push(s))}},u}},function(e,t,n){var o,i,r,u={},l=(o=function(){return window&&document&&document.all&&!window.atob},function(){return i=void 0===i?o.apply(this,arguments):i}),a=(r={},function(e){if(void 0===r[e]){var t=function(e){return document.querySelector(e)}.call(this,e);if(t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(e){t=null}r[e]=t}return r[e]}),s=null,c=0,d=[],f=n(40);function p(e,t){for(var n=0;n<e.length;n++){var o=e[n],i=u[o.id];if(i){i.refs++;for(var r=0;r<i.parts.length;r++)i.parts[r](o.parts[r]);for(;r<o.parts.length;r++)i.parts.push(g(o.parts[r],t))}else{for(var a=[],r=0;r<o.parts.length;r++)a.push(g(o.parts[r],t));u[o.id]={id:o.id,refs:1,parts:a}}}}function v(e,t){for(var n=[],o={},i=0;i<e.length;i++){var r=e[i],a=t.base?r[0]+t.base:r[0],r={css:r[1],media:r[2],sourceMap:r[3]};o[a]?o[a].parts.push(r):n.push(o[a]={id:a,parts:[r]})}return n}function h(e,t){var n=a(e.insertInto);if(!n)throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");var o=d[d.length-1];if(\"top\"===e.insertAt)o?o.nextSibling?n.insertBefore(t,o.nextSibling):n.appendChild(t):n.insertBefore(t,n.firstChild),d.push(t);else if(\"bottom\"===e.insertAt)n.appendChild(t);else{if(\"object\"!=typeof e.insertAt||!e.insertAt.before)throw new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");e=a(e.insertInto+\" \"+e.insertAt.before);n.insertBefore(t,e)}}function j(e){null!==e.parentNode&&(e.parentNode.removeChild(e),0<=(e=d.indexOf(e))&&d.splice(e,1))}function b(e){var t=document.createElement(\"style\");return e.attrs.type=\"text/css\",m(t,e.attrs),h(e,t),t}function m(t,n){Object.keys(n).forEach(function(e){t.setAttribute(e,n[e])})}function g(t,e){var n,o,i,r,a;if(e.transform&&t.css){if(!(r=e.transform(t.css)))return function(){};t.css=r}return i=e.singleton?(a=c++,n=s=s||b(e),o=w.bind(null,n,a,!1),w.bind(null,n,a,!0)):t.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(r=e,a=document.createElement(\"link\"),r.attrs.type=\"text/css\",r.attrs.rel=\"stylesheet\",m(a,r.attrs),h(r,a),o=function(e,t,n){var o=n.css,i=n.sourceMap,n=void 0===t.convertToAbsoluteUrls&&i;(t.convertToAbsoluteUrls||n)&&(o=f(o));i&&(o+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+\" */\");i=new Blob([o],{type:\"text/css\"}),o=e.href;e.href=URL.createObjectURL(i),o&&URL.revokeObjectURL(o)}.bind(null,n=a,e),function(){j(n),n.href&&URL.revokeObjectURL(n.href)}):(n=b(e),o=function(e,t){var n=t.css,t=t.media;t&&e.setAttribute(\"media\",t);if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}.bind(null,n),function(){j(n)}),o(t),function(e){e?e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap||o(t=e):i()}}e.exports=function(e,a){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");(a=a||{}).attrs=\"object\"==typeof a.attrs?a.attrs:{},a.singleton||\"boolean\"==typeof a.singleton||(a.singleton=l()),a.insertInto||(a.insertInto=\"head\"),a.insertAt||(a.insertAt=\"bottom\");var s=v(e,a);return p(s,a),function(e){for(var t=[],n=0;n<s.length;n++){var o=s[n];(i=u[o.id]).refs--,t.push(i)}e&&p(v(e,a),a);for(var i,n=0;n<t.length;n++)if(0===(i=t[n]).refs){for(var r=0;r<i.parts.length;r++)i.parts[r]();delete u[i.id]}}};var y,x=(y=[],function(e,t){return y[e]=t,y.filter(Boolean).join(\"\\n\")});function w(e,t,n,o){n=n?\"\":o.css;e.styleSheet?e.styleSheet.cssText=x(t,n):(o=document.createTextNode(n),(n=e.childNodes)[t]&&e.removeChild(n[t]),n.length?e.insertBefore(o,n[t]):e.appendChild(o))}},function(e,t,n){var o=n(44);\"string\"==typeof o&&(o=[[e.i,o,\"\"]]);var i={hmr:!0,transform:void 0};n(25)(o,i);o.locals&&(e.exports=o.locals)},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o,i=n(28),r=(o=i)&&o.__esModule?o:{default:o};t.default=Object.assign(r.default,{install:function(e){e.component(\"JsonViewer\",r.default)}})},function(e,t,n){\"use strict\";n.r(t);var o,i=n(22),r=n(1);for(o in r)\"default\"!==o&&function(e){n.d(t,e,function(){return r[e]})}(o);n(43);var a=n(0),i=Object(a.a)(r.default,i.a,i.b,!1,null,null,null);i.options.__file=\"lib/json-viewer.vue\",t.default=i.exports},function(e,t){e.exports=n},function(e,t,n){\"use strict\";n.r(t);var o,i=n(5);for(o in i)\"default\"!==o&&function(e){n.d(t,e,function(){return i[e]})}(o);var r=n(0),r=Object(r.a)(i.default,void 0,void 0,!1,null,null,null);r.options.__file=\"lib/types/json-string.vue\",t.default=r.exports},function(e,t,n){\"use strict\";n.r(t);var o,i=n(7);for(o in i)\"default\"!==o&&function(e){n.d(t,e,function(){return i[e]})}(o);var r=n(0),r=Object(r.a)(i.default,void 0,void 0,!1,null,null,null);r.options.__file=\"lib/types/json-undefined.vue\",t.default=r.exports},function(e,t,n){\"use strict\";n.r(t);var o,i=n(9);for(o in i)\"default\"!==o&&function(e){n.d(t,e,function(){return i[e]})}(o);var r=n(0),r=Object(r.a)(i.default,void 0,void 0,!1,null,null,null);r.options.__file=\"lib/types/json-number.vue\",t.default=r.exports},function(e,t,n){\"use strict\";n.r(t);var o,i=n(11);for(o in i)\"default\"!==o&&function(e){n.d(t,e,function(){return i[e]})}(o);var r=n(0),r=Object(r.a)(i.default,void 0,void 0,!1,null,null,null);r.options.__file=\"lib/types/json-boolean.vue\",t.default=r.exports},function(e,t,n){\"use strict\";n.r(t);var o,i=n(13);for(o in i)\"default\"!==o&&function(e){n.d(t,e,function(){return i[e]})}(o);var r=n(0),r=Object(r.a)(i.default,void 0,void 0,!1,null,null,null);r.options.__file=\"lib/types/json-object.vue\",t.default=r.exports},function(e,t,n){\"use strict\";n.r(t);var o,i=n(15);for(o in i)\"default\"!==o&&function(e){n.d(t,e,function(){return i[e]})}(o);var r=n(0),r=Object(r.a)(i.default,void 0,void 0,!1,null,null,null);r.options.__file=\"lib/types/json-array.vue\",t.default=r.exports},function(e,t,n){\"use strict\";n.r(t);var o,i=n(17);for(o in i)\"default\"!==o&&function(e){n.d(t,e,function(){return i[e]})}(o);var r=n(0),r=Object(r.a)(i.default,void 0,void 0,!1,null,null,null);r.options.__file=\"lib/types/json-function.vue\",t.default=r.exports},function(e,t,n){\"use strict\";n.r(t);var o,i=n(19);for(o in i)\"default\"!==o&&function(e){n.d(t,e,function(){return i[e]})}(o);var r=n(0),r=Object(r.a)(i.default,void 0,void 0,!1,null,null,null);r.options.__file=\"lib/types/json-date.vue\",t.default=r.exports},function(e,t,n){\"use strict\";n(23)},function(e,t,n){(t=n(24)(!1)).push([e.i,\".jv-node{position:relative}.jv-node:after{content:','}.jv-node:last-of-type:after{content:''}.jv-node.toggle{margin-left:13px !important}.jv-node .jv-node{margin-left:25px}\\n\",\"\"]),e.exports=t},function(e,t){e.exports=function(e){var t=\"undefined\"!=typeof window&&window.location;if(!t)throw new Error(\"fixUrls requires window.location\");if(!e||\"string\"!=typeof e)return e;var n=t.protocol+\"//\"+t.host,o=n+t.pathname.replace(/\\/[^\\/]*$/,\"/\");return e.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi,function(e,t){t=t.trim().replace(/^\"(.*)\"$/,function(e,t){return t}).replace(/^'(.*)'$/,function(e,t){return t});return/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/)/i.test(t)?e:(t=0===t.indexOf(\"//\")?t:0===t.indexOf(\"/\")?n+t:o+t.replace(/^\\.\\//,\"\"),\"url(\"+JSON.stringify(t)+\")\")})}},function(e,t){e.exports=o},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});t.debounce=function(o,i){var r=Date.now(),a=void 0;return function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];Date.now()-r<i&&a&&clearTimeout(a),a=setTimeout(function(){o.apply(void 0,t)},i),r=Date.now()}}},function(e,t,n){\"use strict\";n(26)},function(e,t,n){var o=n(24),i=n(45),n=n(46);t=o(!1);n=i(n);t.push([e.i,\".jv-container{box-sizing:border-box;position:relative}.jv-container.boxed{border:1px solid #eee;border-radius:6px}.jv-container.boxed:hover{box-shadow:0 2px 7px rgba(0,0,0,0.15);border-color:transparent;position:relative}.jv-container.jv-light{background:#fff;white-space:nowrap;color:#525252;font-size:14px;font-family:Consolas, Menlo, Courier, monospace}.jv-container.jv-light .jv-ellipsis{color:#999;background-color:#eee;display:inline-block;line-height:0.9;font-size:0.9em;padding:0px 4px 2px 4px;margin:0 4px;border-radius:3px;vertical-align:2px;cursor:pointer;-webkit-user-select:none;user-select:none}.jv-container.jv-light .jv-button{color:#49b3ff}.jv-container.jv-light .jv-key{color:#111111;margin-right:4px}.jv-container.jv-light .jv-item.jv-array{color:#111111}.jv-container.jv-light .jv-item.jv-boolean{color:#fc1e70}.jv-container.jv-light .jv-item.jv-function{color:#067bca}.jv-container.jv-light .jv-item.jv-number{color:#fc1e70}.jv-container.jv-light .jv-item.jv-object{color:#111111}.jv-container.jv-light .jv-item.jv-undefined{color:#e08331}.jv-container.jv-light .jv-item.jv-string{color:#42b983;word-break:break-word;white-space:normal}.jv-container.jv-light .jv-item.jv-string .jv-link{color:#0366d6}.jv-container.jv-light .jv-code .jv-toggle:before{padding:0px 2px;border-radius:2px}.jv-container.jv-light .jv-code .jv-toggle:hover:before{background:#eee}.jv-container .jv-code{overflow:hidden;padding:30px 20px}.jv-container .jv-code.boxed{max-height:300px}.jv-container .jv-code.open{max-height:initial !important;overflow:visible;overflow-x:auto;padding-bottom:45px}.jv-container .jv-toggle{background-image:url(\"+n+');background-repeat:no-repeat;background-size:contain;background-position:center center;cursor:pointer;width:10px;height:10px;margin-right:2px;display:inline-block;-webkit-transition:-webkit-transform 0.1s;transition:-webkit-transform 0.1s;transition:transform 0.1s;transition:transform 0.1s, -webkit-transform 0.1s}.jv-container .jv-toggle.open{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.jv-container .jv-more{position:absolute;z-index:1;bottom:0;left:0;right:0;height:40px;width:100%;text-align:center;cursor:pointer}.jv-container .jv-more .jv-toggle{position:relative;top:40%;z-index:2;color:#888;-webkit-transition:all 0.1s;transition:all 0.1s;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.jv-container .jv-more .jv-toggle.open{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.jv-container .jv-more:after{content:\"\";width:100%;height:100%;position:absolute;bottom:0;left:0;z-index:1;background:-webkit-linear-gradient(top, rgba(0,0,0,0) 20%, rgba(230,230,230,0.3) 100%);background:linear-gradient(to bottom, rgba(0,0,0,0) 20%, rgba(230,230,230,0.3) 100%);-webkit-transition:all 0.1s;transition:all 0.1s}.jv-container .jv-more:hover .jv-toggle{top:50%;color:#111}.jv-container .jv-more:hover:after{background:-webkit-linear-gradient(top, rgba(0,0,0,0) 20%, rgba(230,230,230,0.3) 100%);background:linear-gradient(to bottom, rgba(0,0,0,0) 20%, rgba(230,230,230,0.3) 100%)}.jv-container .jv-button{position:relative;cursor:pointer;display:inline-block;padding:5px;z-index:5}.jv-container .jv-button.copied{opacity:0.4;cursor:default}.jv-container .jv-tooltip{position:absolute}.jv-container .jv-tooltip.right{right:15px}.jv-container .jv-tooltip.left{left:15px}.jv-container .j-icon{font-size:12px}\\n',\"\"]),e.exports=t},function(e,t,n){\"use strict\";e.exports=function(e,t){return t=t||{},\"string\"!=typeof(e=e&&e.__esModule?e.default:e)?e:(/^['\"].*['\"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/[\"'() \\t\\n]/.test(e)||t.needQuotes?'\"'.concat(e.replace(/\"/g,'\\\\\"').replace(/\\n/g,\"\\\\n\"),'\"'):e)}},function(e,t){e.exports=\"data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2IiB3aWR0aD0iOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KIAo8cG9seWdvbiBwb2ludHM9IjAsMCA4LDggMCwxNiIKc3R5bGU9ImZpbGw6IzY2NjtzdHJva2U6cHVycGxlO3N0cm9rZS13aWR0aDowIiAvPgo8L3N2Zz4=\"}],i.c=a,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)i.d(n,o,function(e){return t[e]}.bind(null,o));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,\"a\",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p=\"\",i(i.s=27);function i(e){if(a[e])return a[e].exports;var t=a[e]={i:e,l:!1,exports:{}};return r[e].call(t.exports,t,t.exports,i),t.l=!0,t.exports}var r,a});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdnVlLWpzb24tdmlld2VyL3Z1ZS1qc29uLXZpZXdlci5qcz8zNDllIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGVBQWUsS0FBaUQsa0JBQWtCLG1CQUFPLENBQUMsa0RBQUssRUFBRSxtQkFBTyxDQUFDLDZEQUFXLEdBQUcsU0FBb0wsQ0FBQyxvQkFBb0IsV0FBVyx3QkFBd0IsYUFBYSw0QkFBNEIsMkNBQTJDLDBJQUEwSSwwUEFBMFAsb0JBQW9CLHVFQUF1RSwwRUFBMEUsd0JBQXdCLDJEQUEyRCxxQkFBcUIscUJBQXFCLFNBQVMsRUFBRSxpQkFBaUIsYUFBYSxPQUFPLHNCQUFzQixzQ0FBc0MsbUJBQW1CLFlBQVksRUFBRSxJQUFJLGNBQWMsaUJBQWlCLGFBQWEsc0NBQXNDLFNBQVMsRUFBRSxTQUFTLGtDQUFrQyxjQUFjLDBCQUEwQixXQUFXLFdBQVcsOEJBQThCLGtCQUFrQixRQUFRLE9BQU8sK0RBQStELFdBQVcsd0JBQXdCLGNBQWMsc0JBQXNCLFdBQVcsaUNBQWlDLE9BQU8sd0JBQXdCLFFBQVEsd0JBQXdCLFFBQVEsK0JBQStCLGFBQWEsa0NBQWtDLDJCQUEyQixjQUFjLHlCQUF5QixvQkFBb0IsT0FBTyx5REFBeUQsaUJBQWlCLE9BQU8sc0RBQXNELFdBQVcsbUJBQW1CLDBEQUEwRCxxQkFBcUIsb0JBQW9CLE9BQU8sc0dBQXNHLFFBQVEsaUJBQWlCLGtCQUFrQixvQkFBb0IsV0FBVywwT0FBME8sNENBQTRDLHVDQUF1QywyQkFBMkIsY0FBYyxFQUFFLFVBQVUscUJBQXFCLHVCQUF1Qix1QkFBdUIsV0FBVywwQkFBMEIsaUdBQWlHLEVBQUUsc0JBQXNCLFdBQVcsbURBQW1ELFlBQVksZ0RBQWdELDZCQUE2QixvQ0FBb0MsaUJBQWlCLGFBQWEsT0FBTyxzQkFBc0Isc0NBQXNDLG1CQUFtQixZQUFZLEVBQUUsSUFBSSxjQUFjLGlCQUFpQixhQUFhLHNDQUFzQyxTQUFTLEVBQUUsOEVBQThF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LGtEQUFrRCw4QkFBOEIsZ0NBQWdDLHdCQUF3Qix1QkFBdUIsa0JBQWtCLFVBQVUsU0FBUyxPQUFPLFFBQVEsWUFBWSxXQUFXLGtCQUFrQixlQUFlLGtDQUFrQyxrQkFBa0IsUUFBUSxVQUFVLFdBQVcsNEJBQTRCLG9CQUFvQixnQ0FBZ0Msd0JBQXdCLHVDQUF1QyxpQ0FBaUMseUJBQXlCLDZCQUE2QixXQUFXLFdBQVcsWUFBWSxrQkFBa0IsU0FBUyxPQUFPLFVBQVUsdUZBQXVGLHFGQUFxRiw0QkFBNEIsb0JBQW9CLHdDQUF3QyxRQUFRLFdBQVcsbUNBQW1DLHVGQUF1RixxRkFBcUYseUJBQXlCLGtCQUFrQixlQUFlLHFCQUFxQixZQUFZLFVBQVUsZ0NBQWdDLFlBQVksZUFBZSwwQkFBMEIsa0JBQWtCLGdDQUFnQyxXQUFXLCtCQUErQixVQUFVLHNCQUFzQixlQUFlLHFCQUFxQixpQkFBaUIsYUFBYSx3QkFBd0IsY0FBYyxxTkFBcU4sZUFBZSw4QkFBOEIscU5BQXFOLDRCQUE0QixxQ0FBcUMsb0JBQW9CLEVBQUUsaUJBQWlCLDRGQUE0RixlQUFlLHdDQUF3QyxTQUFTLEVBQUUsbUJBQW1CLDhCQUE4QixxREFBcUQsMEJBQTBCLDZDQUE2QyxzQkFBc0IsNkRBQTZELFlBQVksZUFBZSxTQUFTLGlCQUFpQixpQ0FBaUMsaUJBQWlCLFlBQVksVUFBVSxzQkFBc0IsbUJBQW1CLGlEQUFpRCxrQkFBa0IsY0FBYyw0QkFBNEIsWUFBWSxxQkFBcUIsMkRBQTJELFFBQVEiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdnVlLWpzb24tdmlld2VyL3Z1ZS1qc29uLXZpZXdlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIiFmdW5jdGlvbihlLHQpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcIm9iamVjdFwiPT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXQocmVxdWlyZShcInZ1ZVwiKSxyZXF1aXJlKFwiY2xpcGJvYXJkXCIpKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFtcInZ1ZVwiLFwiY2xpcGJvYXJkXCJdLHQpOlwib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzP2V4cG9ydHMuSnNvblZpZXc9dChyZXF1aXJlKFwidnVlXCIpLHJlcXVpcmUoXCJjbGlwYm9hcmRcIikpOmUuSnNvblZpZXc9dChlLnZ1ZSxlLmNsaXBib2FyZCl9KHRoaXMsZnVuY3Rpb24obixvKXtyZXR1cm4gYT17fSxpLm09cj1bZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG8oZSx0LG4sbyxpLHIsYSxzKXt2YXIgdSxsLGM9XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lLm9wdGlvbnM6ZTtyZXR1cm4gdCYmKGMucmVuZGVyPXQsYy5zdGF0aWNSZW5kZXJGbnM9bixjLl9jb21waWxlZD0hMCksbyYmKGMuZnVuY3Rpb25hbD0hMCksciYmKGMuX3Njb3BlSWQ9XCJkYXRhLXYtXCIrciksYT9jLl9zc3JSZWdpc3Rlcj11PWZ1bmN0aW9uKGUpeyhlPWV8fHRoaXMuJHZub2RlJiZ0aGlzLiR2bm9kZS5zc3JDb250ZXh0fHx0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuJHZub2RlJiZ0aGlzLnBhcmVudC4kdm5vZGUuc3NyQ29udGV4dCl8fFwidW5kZWZpbmVkXCI9PXR5cGVvZiBfX1ZVRV9TU1JfQ09OVEVYVF9ffHwoZT1fX1ZVRV9TU1JfQ09OVEVYVF9fKSxpJiZpLmNhbGwodGhpcyxlKSxlJiZlLl9yZWdpc3RlcmVkQ29tcG9uZW50cyYmZS5fcmVnaXN0ZXJlZENvbXBvbmVudHMuYWRkKGEpfTppJiYodT1zP2Z1bmN0aW9uKCl7aS5jYWxsKHRoaXMsKGMuZnVuY3Rpb25hbD90aGlzLnBhcmVudDp0aGlzKS4kcm9vdC4kb3B0aW9ucy5zaGFkb3dSb290KX06aSksdSYmKGMuZnVuY3Rpb25hbD8oYy5faW5qZWN0U3R5bGVzPXUsbD1jLnJlbmRlcixjLnJlbmRlcj1mdW5jdGlvbihlLHQpe3JldHVybiB1LmNhbGwodCksbChlLHQpfSk6KHM9Yy5iZWZvcmVDcmVhdGUsYy5iZWZvcmVDcmVhdGU9cz9bXS5jb25jYXQocyx1KTpbdV0pKSx7ZXhwb3J0czplLG9wdGlvbnM6Y319bi5kKHQsXCJhXCIsZnVuY3Rpb24oKXtyZXR1cm4gb30pfSxmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciBvLGk9bigyKSxyPW4ubihpKTtmb3IobyBpbiBpKVwiZGVmYXVsdFwiIT09byYmZnVuY3Rpb24oZSl7bi5kKHQsZSxmdW5jdGlvbigpe3JldHVybiBpW2VdfSl9KG8pO3QuZGVmYXVsdD1yLmF9LGZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTthKG4oMjkpKTt2YXIgbz1hKG4oMjEpKSxpPWEobig0MSkpLHI9big0Mik7ZnVuY3Rpb24gYShlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19dC5kZWZhdWx0PXtuYW1lOlwiSnNvblZpZXdlclwiLGNvbXBvbmVudHM6e0pzb25Cb3g6by5kZWZhdWx0fSxwcm9wczp7dmFsdWU6e3R5cGU6W09iamVjdCxBcnJheSxTdHJpbmcsTnVtYmVyLEJvb2xlYW4sRnVuY3Rpb25dLHJlcXVpcmVkOiEwfSxleHBhbmRlZDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LGV4cGFuZERlcHRoOnt0eXBlOk51bWJlcixkZWZhdWx0OjF9LGNvcHlhYmxlOnt0eXBlOltCb29sZWFuLE9iamVjdF0sZGVmYXVsdDohMX0sc29ydDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LGJveGVkOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0sdGhlbWU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJqdi1saWdodFwifSx0aW1lZm9ybWF0Ont0eXBlOkZ1bmN0aW9uLGRlZmF1bHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudG9Mb2NhbGVTdHJpbmcoKX19LHByZXZpZXdNb2RlOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX19LHByb3ZpZGU6ZnVuY3Rpb24oKXtyZXR1cm57ZXhwYW5kRGVwdGg6dGhpcy5leHBhbmREZXB0aCx0aW1lZm9ybWF0OnRoaXMudGltZWZvcm1hdH19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57Y29waWVkOiExLGV4cGFuZGFibGVDb2RlOiExLGV4cGFuZENvZGU6dGhpcy5leHBhbmRlZH19LGNvbXB1dGVkOntqdkNsYXNzOmZ1bmN0aW9uKCl7cmV0dXJuXCJqdi1jb250YWluZXIgXCIrdGhpcy50aGVtZSsodGhpcy5ib3hlZD9cIiBib3hlZFwiOlwiXCIpfSxjb3B5VGV4dDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuY29weWFibGU7cmV0dXJue2NvcHlUZXh0OmUuY29weVRleHR8fFwiY29weVwiLGNvcGllZFRleHQ6ZS5jb3BpZWRUZXh0fHxcImNvcGllZCFcIix0aW1lb3V0OmUudGltZW91dHx8MmUzLGFsaWduOmUuYWxpZ259fX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5vblJlc2l6ZWQoKX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuZGVib3VuY2VSZXNpemVkPSgwLHIuZGVib3VuY2UpKHRoaXMuZGViUmVzaXplZC5iaW5kKHRoaXMpLDIwMCksdGhpcy5ib3hlZCYmdGhpcy4kcmVmcy5qc29uQm94JiYodGhpcy5vblJlc2l6ZWQoKSx0aGlzLiRyZWZzLmpzb25Cb3guJGVsLmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVkXCIsdGhpcy5vblJlc2l6ZWQsITApKSx0aGlzLmNvcHlhYmxlJiZuZXcgaS5kZWZhdWx0KHRoaXMuJHJlZnMuY2xpcCx7Y29udGFpbmVyOnRoaXMuJHJlZnMudmlld2VyLHRleHQ6ZnVuY3Rpb24oKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodC52YWx1ZSxudWxsLDIpfX0pLm9uKFwic3VjY2Vzc1wiLGZ1bmN0aW9uKGUpe3Qub25Db3BpZWQoZSl9KX0sbWV0aG9kczp7b25SZXNpemVkOmZ1bmN0aW9uKCl7dGhpcy5kZWJvdW5jZVJlc2l6ZWQoKX0sZGViUmVzaXplZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtlLiRyZWZzLmpzb25Cb3gmJigyNTA8PWUuJHJlZnMuanNvbkJveC4kZWwuY2xpZW50SGVpZ2h0P2UuZXhwYW5kYWJsZUNvZGU9ITA6ZS5leHBhbmRhYmxlQ29kZT0hMSl9KX0sb25Db3BpZWQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLmNvcGllZHx8KHRoaXMuY29waWVkPSEwLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmNvcGllZD0hMX0sdGhpcy5jb3B5VGV4dC50aW1lb3V0KSx0aGlzLiRlbWl0KFwiY29waWVkXCIsZSkpfSx0b2dnbGVFeHBhbmRDb2RlOmZ1bmN0aW9uKCl7dGhpcy5leHBhbmRDb2RlPSF0aGlzLmV4cGFuZENvZGV9fX19LGZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIG8saT1uKDQpLHI9bi5uKGkpO2ZvcihvIGluIGkpXCJkZWZhdWx0XCIhPT1vJiZmdW5jdGlvbihlKXtuLmQodCxlLGZ1bmN0aW9uKCl7cmV0dXJuIGlbZV19KX0obyk7dC5kZWZhdWx0PXIuYX0sZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciByPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9LGE9byhuKDMwKSkscz1vKG4oMzEpKSx1PW8obigzMikpLGw9byhuKDMzKSksYz1vKG4oMzQpKSxkPW8obigzNSkpLGY9byhuKDM2KSkscD1vKG4oMzcpKTtmdW5jdGlvbiBvKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX10LmRlZmF1bHQ9e25hbWU6XCJKc29uQm94XCIsaW5qZWN0OltcImV4cGFuZERlcHRoXCJdLHByb3BzOnt2YWx1ZTp7dHlwZTpbT2JqZWN0LEFycmF5LFN0cmluZyxOdW1iZXIsQm9vbGVhbixGdW5jdGlvbixEYXRlXSxkZWZhdWx0Om51bGx9LGtleU5hbWU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJcIn0sc29ydDpCb29sZWFuLGRlcHRoOnt0eXBlOk51bWJlcixkZWZhdWx0OjB9LHByZXZpZXdNb2RlOkJvb2xlYW59LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57ZXhwYW5kOiEwfX0sbW91bnRlZDpmdW5jdGlvbigpe3RoaXMuZXhwYW5kPXRoaXMucHJldmlld01vZGV8fCEodGhpcy5kZXB0aD49dGhpcy5leHBhbmREZXB0aCl9LG1ldGhvZHM6e3RvZ2dsZTpmdW5jdGlvbigpe3RoaXMuZXhwYW5kPSF0aGlzLmV4cGFuZDt0cnl7dGhpcy4kZWwuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJyZXNpemVkXCIpKX1jYXRjaChlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFdmVudChcIkV2ZW50XCIpO3QuaW5pdEV2ZW50KFwicmVzaXplZFwiLCEwLCExKSx0aGlzLiRlbC5kaXNwYXRjaEV2ZW50KHQpfX19LHJlbmRlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49W10sbz12b2lkIDA7bnVsbD09PXRoaXMudmFsdWV8fHZvaWQgMD09PXRoaXMudmFsdWU/bz1zLmRlZmF1bHQ6QXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKT9vPWQuZGVmYXVsdDpcIltvYmplY3QgRGF0ZV1cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0aGlzLnZhbHVlKT9vPXAuZGVmYXVsdDpcIm9iamVjdFwiPT09cih0aGlzLnZhbHVlKT9vPWMuZGVmYXVsdDpcIm51bWJlclwiPT10eXBlb2YgdGhpcy52YWx1ZT9vPXUuZGVmYXVsdDpcInN0cmluZ1wiPT10eXBlb2YgdGhpcy52YWx1ZT9vPWEuZGVmYXVsdDpcImJvb2xlYW5cIj09dHlwZW9mIHRoaXMudmFsdWU/bz1sLmRlZmF1bHQ6XCJmdW5jdGlvblwiPT10eXBlb2YgdGhpcy52YWx1ZSYmKG89Zi5kZWZhdWx0KTt2YXIgaT10aGlzLmtleU5hbWUmJnRoaXMudmFsdWUmJihBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpfHxcIm9iamVjdFwiPT09cih0aGlzLnZhbHVlKSYmXCJbb2JqZWN0IERhdGVdXCIhPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGhpcy52YWx1ZSkpO3JldHVybiF0aGlzLnByZXZpZXdNb2RlJiZpJiZuLnB1c2goZShcInNwYW5cIix7Y2xhc3M6e1wianYtdG9nZ2xlXCI6ITAsb3BlbjohIXRoaXMuZXhwYW5kfSxvbjp7Y2xpY2s6dGhpcy50b2dnbGV9fSkpLHRoaXMua2V5TmFtZSYmbi5wdXNoKGUoXCJzcGFuXCIse2NsYXNzOntcImp2LWtleVwiOiEwfSxkb21Qcm9wczp7aW5uZXJUZXh0OnRoaXMua2V5TmFtZStcIjpcIn19KSksbi5wdXNoKGUobyx7Y2xhc3M6e1wianYtcHVzaFwiOiEwfSxwcm9wczp7anNvblZhbHVlOnRoaXMudmFsdWUsa2V5TmFtZTp0aGlzLmtleU5hbWUsc29ydDp0aGlzLnNvcnQsZGVwdGg6dGhpcy5kZXB0aCxleHBhbmQ6dGhpcy5leHBhbmQscHJldmlld01vZGU6dGhpcy5wcmV2aWV3TW9kZX0sb246e1widXBkYXRlOmV4cGFuZFwiOmZ1bmN0aW9uKGUpe3QuZXhwYW5kPWV9fX0pKSxlKFwiZGl2XCIse2NsYXNzOntcImp2LW5vZGVcIjohMCxcImp2LWtleS1ub2RlXCI6Qm9vbGVhbih0aGlzLmtleU5hbWUpJiYhaSx0b2dnbGU6IXRoaXMucHJldmlld01vZGUmJml9fSxuKX19fSxmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciBvLGk9big2KSxyPW4ubihpKTtmb3IobyBpbiBpKVwiZGVmYXVsdFwiIT09byYmZnVuY3Rpb24oZSl7bi5kKHQsZSxmdW5jdGlvbigpe3JldHVybiBpW2VdfSl9KG8pO3QuZGVmYXVsdD1yLmF9LGZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgaT0vXlxcdys6XFwvXFwvLzt0LmRlZmF1bHQ9e25hbWU6XCJKc29uU3RyaW5nXCIscHJvcHM6e2pzb25WYWx1ZTp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2V4cGFuZDohMCxjYW5FeHRlbmQ6ITF9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy4kcmVmcy5pdGVtUmVmLm9mZnNldEhlaWdodD50aGlzLiRyZWZzLmhvbGRlclJlZi5vZmZzZXRIZWlnaHQmJih0aGlzLmNhbkV4dGVuZD0hMCl9LG1ldGhvZHM6e3RvZ2dsZTpmdW5jdGlvbigpe3RoaXMuZXhwYW5kPSF0aGlzLmV4cGFuZH19LHJlbmRlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmpzb25WYWx1ZSxuPWkudGVzdCh0KSxvPXZvaWQgMDtyZXR1cm4gdGhpcy5leHBhbmQ/KG89e2NsYXNzOntcImp2LWl0ZW1cIjohMCxcImp2LXN0cmluZ1wiOiEwfSxyZWY6XCJpdGVtUmVmXCJ9KS5kb21Qcm9wcz1uP3tpbm5lckhUTUw6J1wiJysodD0nPGEgaHJlZj1cIicrdCsnXCIgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3M9XCJqdi1saW5rXCI+Jyt0K1wiPC9hPlwiKS50b1N0cmluZygpKydcIid9Ontpbm5lclRleHQ6J1wiJyt0LnRvU3RyaW5nKCkrJ1wiJ306bz17Y2xhc3M6e1wianYtZWxsaXBzaXNcIjohMH0sb246e2NsaWNrOnRoaXMudG9nZ2xlfSxkb21Qcm9wczp7aW5uZXJUZXh0OlwiLi4uXCJ9fSxlKFwic3BhblwiLHt9LFt0aGlzLmNhbkV4dGVuZCYmZShcInNwYW5cIix7Y2xhc3M6e1wianYtdG9nZ2xlXCI6ITAsb3Blbjp0aGlzLmV4cGFuZH0sb246e2NsaWNrOnRoaXMudG9nZ2xlfX0pLGUoXCJzcGFuXCIse2NsYXNzOntcImp2LWhvbGRlci1ub2RlXCI6ITB9LHJlZjpcImhvbGRlclJlZlwifSksZShcInNwYW5cIixvKV0pfX19LGZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIG8saT1uKDgpLHI9bi5uKGkpO2ZvcihvIGluIGkpXCJkZWZhdWx0XCIhPT1vJiZmdW5jdGlvbihlKXtuLmQodCxlLGZ1bmN0aW9uKCl7cmV0dXJuIGlbZV19KX0obyk7dC5kZWZhdWx0PXIuYX0sZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD17bmFtZTpcIkpzb25VbmRlZmluZWRcIixmdW5jdGlvbmFsOiEwLHByb3BzOntqc29uVmFsdWU6e3R5cGU6T2JqZWN0LGRlZmF1bHQ6bnVsbH19LHJlbmRlcjpmdW5jdGlvbihlLHQpe3JldHVybiBlKFwic3BhblwiLHtjbGFzczp7XCJqdi1pdGVtXCI6ITAsXCJqdi11bmRlZmluZWRcIjohMH0sZG9tUHJvcHM6e2lubmVyVGV4dDpudWxsPT09dC5wcm9wcy5qc29uVmFsdWU/XCJudWxsXCI6XCJ1bmRlZmluZWRcIn19KX19fSxmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciBvLGk9bigxMCkscj1uLm4oaSk7Zm9yKG8gaW4gaSlcImRlZmF1bHRcIiE9PW8mJmZ1bmN0aW9uKGUpe24uZCh0LGUsZnVuY3Rpb24oKXtyZXR1cm4gaVtlXX0pfShvKTt0LmRlZmF1bHQ9ci5hfSxmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXtuYW1lOlwiSnNvbk51bWJlclwiLGZ1bmN0aW9uYWw6ITAscHJvcHM6e2pzb25WYWx1ZTp7dHlwZTpOdW1iZXIscmVxdWlyZWQ6ITB9fSxyZW5kZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj10LnByb3BzLHQ9TnVtYmVyLmlzSW50ZWdlcihuLmpzb25WYWx1ZSk7cmV0dXJuIGUoXCJzcGFuXCIse2NsYXNzOntcImp2LWl0ZW1cIjohMCxcImp2LW51bWJlclwiOiEwLFwianYtbnVtYmVyLWludGVnZXJcIjp0LFwianYtbnVtYmVyLWZsb2F0XCI6IXR9LGRvbVByb3BzOntpbm5lclRleHQ6bi5qc29uVmFsdWUudG9TdHJpbmcoKX19KX19fSxmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciBvLGk9bigxMikscj1uLm4oaSk7Zm9yKG8gaW4gaSlcImRlZmF1bHRcIiE9PW8mJmZ1bmN0aW9uKGUpe24uZCh0LGUsZnVuY3Rpb24oKXtyZXR1cm4gaVtlXX0pfShvKTt0LmRlZmF1bHQ9ci5hfSxmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXtuYW1lOlwiSnNvbkJvb2xlYW5cIixmdW5jdGlvbmFsOiEwLHByb3BzOntqc29uVmFsdWU6Qm9vbGVhbn0scmVuZGVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUoXCJzcGFuXCIse2NsYXNzOntcImp2LWl0ZW1cIjohMCxcImp2LWJvb2xlYW5cIjohMH0sZG9tUHJvcHM6e2lubmVyVGV4dDp0LnByb3BzLmpzb25WYWx1ZS50b1N0cmluZygpfX0pfX19LGZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIG8saT1uKDE0KSxyPW4ubihpKTtmb3IobyBpbiBpKVwiZGVmYXVsdFwiIT09byYmZnVuY3Rpb24oZSl7bi5kKHQsZSxmdW5jdGlvbigpe3JldHVybiBpW2VdfSl9KG8pO3QuZGVmYXVsdD1yLmF9LGZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgbyxpPW4oMjEpLHI9KG89aSkmJm8uX19lc01vZHVsZT9vOntkZWZhdWx0Om99O3QuZGVmYXVsdD17bmFtZTpcIkpzb25PYmplY3RcIixwcm9wczp7anNvblZhbHVlOnt0eXBlOk9iamVjdCxyZXF1aXJlZDohMH0sa2V5TmFtZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcIlwifSxkZXB0aDp7dHlwZTpOdW1iZXIsZGVmYXVsdDowfSxleHBhbmQ6Qm9vbGVhbixzb3J0OkJvb2xlYW4scHJldmlld01vZGU6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3JldHVybnt2YWx1ZTp7fX19LGNvbXB1dGVkOntvcmRlcmVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZighdGhpcy5zb3J0KXJldHVybiB0aGlzLnZhbHVlO3ZhciBuPXt9O3JldHVybiBPYmplY3Qua2V5cyh0aGlzLnZhbHVlKS5zb3J0KCkuZm9yRWFjaChmdW5jdGlvbihlKXtuW2VdPXQudmFsdWVbZV19KSxufX0sd2F0Y2g6e2pzb25WYWx1ZTpmdW5jdGlvbihlKXt0aGlzLnNldFZhbHVlKGUpfX0sbW91bnRlZDpmdW5jdGlvbigpe3RoaXMuc2V0VmFsdWUodGhpcy5qc29uVmFsdWUpfSxtZXRob2RzOntzZXRWYWx1ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0LnZhbHVlPWV9LDApfSx0b2dnbGU6ZnVuY3Rpb24oKXt0aGlzLiRlbWl0KFwidXBkYXRlOmV4cGFuZFwiLCF0aGlzLmV4cGFuZCksdGhpcy5kaXNwYXRjaEV2ZW50KCl9LGRpc3BhdGNoRXZlbnQ6ZnVuY3Rpb24oKXt0cnl7dGhpcy4kZWwuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJyZXNpemVkXCIpKX1jYXRjaChlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFdmVudChcIkV2ZW50XCIpO3QuaW5pdEV2ZW50KFwicmVzaXplZFwiLCEwLCExKSx0aGlzLiRlbC5kaXNwYXRjaEV2ZW50KHQpfX19LHJlbmRlcjpmdW5jdGlvbihlKXt2YXIgdCxuPVtdO2lmKHRoaXMucHJldmlld01vZGV8fHRoaXMua2V5TmFtZXx8bi5wdXNoKGUoXCJzcGFuXCIse2NsYXNzOntcImp2LXRvZ2dsZVwiOiEwLG9wZW46ISF0aGlzLmV4cGFuZH0sb246e2NsaWNrOnRoaXMudG9nZ2xlfX0pKSxuLnB1c2goZShcInNwYW5cIix7Y2xhc3M6e1wianYtaXRlbVwiOiEwLFwianYtb2JqZWN0XCI6ITB9LGRvbVByb3BzOntpbm5lclRleHQ6XCJ7XCJ9fSkpLHRoaXMuZXhwYW5kKWZvcih2YXIgbyBpbiB0aGlzLm9yZGVyZWQpdGhpcy5vcmRlcmVkLmhhc093blByb3BlcnR5KG8pJiYodD10aGlzLm9yZGVyZWRbb10sbi5wdXNoKGUoci5kZWZhdWx0LHtrZXk6byxzdHlsZTp7ZGlzcGxheTp0aGlzLmV4cGFuZD92b2lkIDA6XCJub25lXCJ9LHByb3BzOntzb3J0OnRoaXMuc29ydCxrZXlOYW1lOm8sZGVwdGg6dGhpcy5kZXB0aCsxLHZhbHVlOnQscHJldmlld01vZGU6dGhpcy5wcmV2aWV3TW9kZX19KSkpO3JldHVybiF0aGlzLmV4cGFuZCYmT2JqZWN0LmtleXModGhpcy52YWx1ZSkubGVuZ3RoJiZuLnB1c2goZShcInNwYW5cIix7c3R5bGU6e2Rpc3BsYXk6dGhpcy5leHBhbmQ/XCJub25lXCI6dm9pZCAwfSxjbGFzczp7XCJqdi1lbGxpcHNpc1wiOiEwfSxvbjp7Y2xpY2s6dGhpcy50b2dnbGV9LGF0dHJzOnt0aXRsZTpcImNsaWNrIHRvIHJldmVhbCBvYmplY3QgY29udGVudCAoa2V5czogXCIrT2JqZWN0LmtleXModGhpcy5vcmRlcmVkKS5qb2luKFwiLCBcIikrXCIpXCJ9LGRvbVByb3BzOntpbm5lclRleHQ6XCIuLi5cIn19KSksbi5wdXNoKGUoXCJzcGFuXCIse2NsYXNzOntcImp2LWl0ZW1cIjohMCxcImp2LW9iamVjdFwiOiEwfSxkb21Qcm9wczp7aW5uZXJUZXh0OlwifVwifX0pKSxlKFwic3BhblwiLG4pfX19LGZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIG8saT1uKDE2KSxyPW4ubihpKTtmb3IobyBpbiBpKVwiZGVmYXVsdFwiIT09byYmZnVuY3Rpb24oZSl7bi5kKHQsZSxmdW5jdGlvbigpe3JldHVybiBpW2VdfSl9KG8pO3QuZGVmYXVsdD1yLmF9LGZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgbyxpPW4oMjEpLHI9KG89aSkmJm8uX19lc01vZHVsZT9vOntkZWZhdWx0Om99O3QuZGVmYXVsdD17bmFtZTpcIkpzb25BcnJheVwiLHByb3BzOntqc29uVmFsdWU6e3R5cGU6QXJyYXkscmVxdWlyZWQ6ITB9LGtleU5hbWU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJcIn0sZGVwdGg6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MH0sc29ydDpCb29sZWFuLGV4cGFuZDpCb29sZWFuLHByZXZpZXdNb2RlOkJvb2xlYW59LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57dmFsdWU6W119fSx3YXRjaDp7anNvblZhbHVlOmZ1bmN0aW9uKGUpe3RoaXMuc2V0VmFsdWUoZSl9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy5zZXRWYWx1ZSh0aGlzLmpzb25WYWx1ZSl9LG1ldGhvZHM6e3NldFZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MDswPT09biYmKHRoaXMudmFsdWU9W10pLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmxlbmd0aD5uJiYodC52YWx1ZS5wdXNoKGVbbl0pLHQuc2V0VmFsdWUoZSxuKzEpKX0sMCl9LHRvZ2dsZTpmdW5jdGlvbigpe3RoaXMuJGVtaXQoXCJ1cGRhdGU6ZXhwYW5kXCIsIXRoaXMuZXhwYW5kKTt0cnl7dGhpcy4kZWwuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJyZXNpemVkXCIpKX1jYXRjaChlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFdmVudChcIkV2ZW50XCIpO3QuaW5pdEV2ZW50KFwicmVzaXplZFwiLCEwLCExKSx0aGlzLiRlbC5kaXNwYXRjaEV2ZW50KHQpfX19LHJlbmRlcjpmdW5jdGlvbihuKXt2YXIgbz10aGlzLGk9W107cmV0dXJuIHRoaXMucHJldmlld01vZGV8fHRoaXMua2V5TmFtZXx8aS5wdXNoKG4oXCJzcGFuXCIse2NsYXNzOntcImp2LXRvZ2dsZVwiOiEwLG9wZW46ISF0aGlzLmV4cGFuZH0sb246e2NsaWNrOnRoaXMudG9nZ2xlfX0pKSxpLnB1c2gobihcInNwYW5cIix7Y2xhc3M6e1wianYtaXRlbVwiOiEwLFwianYtYXJyYXlcIjohMH0sZG9tUHJvcHM6e2lubmVyVGV4dDpcIltcIn19KSksdGhpcy5leHBhbmQmJnRoaXMudmFsdWUuZm9yRWFjaChmdW5jdGlvbihlLHQpe2kucHVzaChuKHIuZGVmYXVsdCx7a2V5OnQsc3R5bGU6e2Rpc3BsYXk6by5leHBhbmQ/dm9pZCAwOlwibm9uZVwifSxwcm9wczp7c29ydDpvLnNvcnQsZGVwdGg6by5kZXB0aCsxLHZhbHVlOmUscHJldmlld01vZGU6by5wcmV2aWV3TW9kZX19KSl9KSwhdGhpcy5leHBhbmQmJnRoaXMudmFsdWUubGVuZ3RoJiZpLnB1c2gobihcInNwYW5cIix7c3R5bGU6e2Rpc3BsYXk6dm9pZCAwfSxjbGFzczp7XCJqdi1lbGxpcHNpc1wiOiEwfSxvbjp7Y2xpY2s6dGhpcy50b2dnbGV9LGF0dHJzOnt0aXRsZTpcImNsaWNrIHRvIHJldmVhbCBcIit0aGlzLnZhbHVlLmxlbmd0aCtcIiBoaWRkZW4gaXRlbXNcIn0sZG9tUHJvcHM6e2lubmVyVGV4dDpcIi4uLlwifX0pKSxpLnB1c2gobihcInNwYW5cIix7Y2xhc3M6e1wianYtaXRlbVwiOiEwLFwianYtYXJyYXlcIjohMH0sZG9tUHJvcHM6e2lubmVyVGV4dDpcIl1cIn19KSksbihcInNwYW5cIixpKX19fSxmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciBvLGk9bigxOCkscj1uLm4oaSk7Zm9yKG8gaW4gaSlcImRlZmF1bHRcIiE9PW8mJmZ1bmN0aW9uKGUpe24uZCh0LGUsZnVuY3Rpb24oKXtyZXR1cm4gaVtlXX0pfShvKTt0LmRlZmF1bHQ9ci5hfSxmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXtuYW1lOlwiSnNvbkZ1bmN0aW9uXCIsZnVuY3Rpb25hbDohMCxwcm9wczp7anNvblZhbHVlOnt0eXBlOkZ1bmN0aW9uLHJlcXVpcmVkOiEwfX0scmVuZGVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUoXCJzcGFuXCIse2NsYXNzOntcImp2LWl0ZW1cIjohMCxcImp2LWZ1bmN0aW9uXCI6ITB9LGF0dHJzOnt0aXRsZTp0LnByb3BzLmpzb25WYWx1ZS50b1N0cmluZygpfSxkb21Qcm9wczp7aW5uZXJIVE1MOlwiJmx0O2Z1bmN0aW9uJmd0O1wifX0pfX19LGZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIG8saT1uKDIwKSxyPW4ubihpKTtmb3IobyBpbiBpKVwiZGVmYXVsdFwiIT09byYmZnVuY3Rpb24oZSl7bi5kKHQsZSxmdW5jdGlvbigpe3JldHVybiBpW2VdfSl9KG8pO3QuZGVmYXVsdD1yLmF9LGZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9e25hbWU6XCJKc29uRGF0ZVwiLGluamVjdDpbXCJ0aW1lZm9ybWF0XCJdLGZ1bmN0aW9uYWw6ITAscHJvcHM6e2pzb25WYWx1ZTp7dHlwZTpEYXRlLHJlcXVpcmVkOiEwfX0scmVuZGVyOmZ1bmN0aW9uKGUsdCl7dmFyIG49dC5wcm9wcyx0PXQuaW5qZWN0aW9ucyxuPW4uanNvblZhbHVlO3JldHVybiBlKFwic3BhblwiLHtjbGFzczp7XCJqdi1pdGVtXCI6ITAsXCJqdi1zdHJpbmdcIjohMH0sZG9tUHJvcHM6e2lubmVyVGV4dDonXCInKygwLHQudGltZWZvcm1hdCkobikrJ1wiJ319KX19fSxmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciBvLGk9bigzKTtmb3IobyBpbiBpKVwiZGVmYXVsdFwiIT09byYmZnVuY3Rpb24oZSl7bi5kKHQsZSxmdW5jdGlvbigpe3JldHVybiBpW2VdfSl9KG8pO24oMzgpO3ZhciByPW4oMCkscj1PYmplY3Qoci5hKShpLmRlZmF1bHQsdm9pZCAwLHZvaWQgMCwhMSxudWxsLG51bGwsbnVsbCk7ci5vcHRpb25zLl9fZmlsZT1cImxpYi9qc29uLWJveC52dWVcIix0LmRlZmF1bHQ9ci5leHBvcnRzfSxmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbygpe3ZhciBlPXRoaXMsdD1lLiRjcmVhdGVFbGVtZW50O3JldHVybih0PWUuX3NlbGYuX2N8fHQpKFwiZGl2XCIse3JlZjpcInZpZXdlclwiLGNsYXNzOmUuanZDbGFzc30sW2UuY29weWFibGU/dChcImRpdlwiLHtjbGFzczpcImp2LXRvb2x0aXAgXCIrKGUuY29weVRleHQuYWxpZ258fFwicmlnaHRcIil9LFt0KFwic3BhblwiLHtyZWY6XCJjbGlwXCIsc3RhdGljQ2xhc3M6XCJqdi1idXR0b25cIixjbGFzczp7Y29waWVkOmUuY29waWVkfX0sW2UuX3QoXCJjb3B5XCIsW2UuX3YoXCJcXG4gICAgICAgIFwiK2UuX3MoZS5jb3BpZWQ/ZS5jb3B5VGV4dC5jb3BpZWRUZXh0OmUuY29weVRleHQuY29weVRleHQpK1wiXFxuICAgICAgXCIpXSx7Y29waWVkOmUuY29waWVkfSldLDIpXSk6ZS5fZSgpLGUuX3YoXCIgXCIpLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJqdi1jb2RlXCIsY2xhc3M6e29wZW46ZS5leHBhbmRDb2RlLGJveGVkOmUuYm94ZWR9fSxbdChcImpzb24tYm94XCIse3JlZjpcImpzb25Cb3hcIixhdHRyczp7dmFsdWU6ZS52YWx1ZSxzb3J0OmUuc29ydCxcInByZXZpZXctbW9kZVwiOmUucHJldmlld01vZGV9fSldLDEpLGUuX3YoXCIgXCIpLGUuZXhwYW5kYWJsZUNvZGUmJmUuYm94ZWQ/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcImp2LW1vcmVcIixvbjp7Y2xpY2s6ZS50b2dnbGVFeHBhbmRDb2RlfX0sW3QoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwianYtdG9nZ2xlXCIsY2xhc3M6e29wZW46ISFlLmV4cGFuZENvZGV9fSldKTplLl9lKCldKX12YXIgaT1bXTtvLl93aXRoU3RyaXBwZWQ9ITAsbi5kKHQsXCJhXCIsZnVuY3Rpb24oKXtyZXR1cm4gb30pLG4uZCh0LFwiYlwiLGZ1bmN0aW9uKCl7cmV0dXJuIGl9KX0sZnVuY3Rpb24oZSx0LG4pe3ZhciBvPW4oMzkpO1wic3RyaW5nXCI9PXR5cGVvZiBvJiYobz1bW2UuaSxvLFwiXCJdXSk7dmFyIGk9e2htcjohMCx0cmFuc2Zvcm06dm9pZCAwfTtuKDI1KShvLGkpO28ubG9jYWxzJiYoZS5leHBvcnRzPW8ubG9jYWxzKX0sZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1mdW5jdGlvbihuKXt2YXIgdT1bXTtyZXR1cm4gdS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbihlKXt2YXIgdD1mdW5jdGlvbihlLHQpe3ZhciBuPWVbMV18fFwiXCIsbz1lWzNdO2lmKCFvKXJldHVybiBuO2lmKHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGJ0b2Epe2U9ZnVuY3Rpb24oZSl7ZT1idG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShlKSkpKSxlPVwic291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsXCIuY29uY2F0KGUpO3JldHVyblwiLyojIFwiLmNvbmNhdChlLFwiICovXCIpfShvKSx0PW8uc291cmNlcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuXCIvKiMgc291cmNlVVJMPVwiLmNvbmNhdChvLnNvdXJjZVJvb3R8fFwiXCIpLmNvbmNhdChlLFwiICovXCIpfSk7cmV0dXJuW25dLmNvbmNhdCh0KS5jb25jYXQoW2VdKS5qb2luKFwiXFxuXCIpfXJldHVybltuXS5qb2luKFwiXFxuXCIpfShlLG4pO3JldHVybiBlWzJdP1wiQG1lZGlhIFwiLmNvbmNhdChlWzJdLFwiIHtcIikuY29uY2F0KHQsXCJ9XCIpOnR9KS5qb2luKFwiXCIpfSx1Lmk9ZnVuY3Rpb24oZSx0LG4pe1wic3RyaW5nXCI9PXR5cGVvZiBlJiYoZT1bW251bGwsZSxcIlwiXV0pO3ZhciBvPXt9O2lmKG4pZm9yKHZhciBpPTA7aTx0aGlzLmxlbmd0aDtpKyspe3ZhciByPXRoaXNbaV1bMF07bnVsbCE9ciYmKG9bcl09ITApfWZvcih2YXIgYT0wO2E8ZS5sZW5ndGg7YSsrKXt2YXIgcz1bXS5jb25jYXQoZVthXSk7biYmb1tzWzBdXXx8KHQmJihzWzJdP3NbMl09XCJcIi5jb25jYXQodCxcIiBhbmQgXCIpLmNvbmNhdChzWzJdKTpzWzJdPXQpLHUucHVzaChzKSl9fSx1fX0sZnVuY3Rpb24oZSx0LG4pe3ZhciBvLGkscix1PXt9LGw9KG89ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93JiZkb2N1bWVudCYmZG9jdW1lbnQuYWxsJiYhd2luZG93LmF0b2J9LGZ1bmN0aW9uKCl7cmV0dXJuIGk9dm9pZCAwPT09aT9vLmFwcGx5KHRoaXMsYXJndW1lbnRzKTppfSksYT0ocj17fSxmdW5jdGlvbihlKXtpZih2b2lkIDA9PT1yW2VdKXt2YXIgdD1mdW5jdGlvbihlKXtyZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlKX0uY2FsbCh0aGlzLGUpO2lmKHQgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTElGcmFtZUVsZW1lbnQpdHJ5e3Q9dC5jb250ZW50RG9jdW1lbnQuaGVhZH1jYXRjaChlKXt0PW51bGx9cltlXT10fXJldHVybiByW2VdfSkscz1udWxsLGM9MCxkPVtdLGY9big0MCk7ZnVuY3Rpb24gcChlLHQpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgbz1lW25dLGk9dVtvLmlkXTtpZihpKXtpLnJlZnMrKztmb3IodmFyIHI9MDtyPGkucGFydHMubGVuZ3RoO3IrKylpLnBhcnRzW3JdKG8ucGFydHNbcl0pO2Zvcig7cjxvLnBhcnRzLmxlbmd0aDtyKyspaS5wYXJ0cy5wdXNoKGcoby5wYXJ0c1tyXSx0KSl9ZWxzZXtmb3IodmFyIGE9W10scj0wO3I8by5wYXJ0cy5sZW5ndGg7cisrKWEucHVzaChnKG8ucGFydHNbcl0sdCkpO3Vbby5pZF09e2lkOm8uaWQscmVmczoxLHBhcnRzOmF9fX19ZnVuY3Rpb24gdihlLHQpe2Zvcih2YXIgbj1bXSxvPXt9LGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIHI9ZVtpXSxhPXQuYmFzZT9yWzBdK3QuYmFzZTpyWzBdLHI9e2NzczpyWzFdLG1lZGlhOnJbMl0sc291cmNlTWFwOnJbM119O29bYV0/b1thXS5wYXJ0cy5wdXNoKHIpOm4ucHVzaChvW2FdPXtpZDphLHBhcnRzOltyXX0pfXJldHVybiBufWZ1bmN0aW9uIGgoZSx0KXt2YXIgbj1hKGUuaW5zZXJ0SW50byk7aWYoIW4pdGhyb3cgbmV3IEVycm9yKFwiQ291bGRuJ3QgZmluZCBhIHN0eWxlIHRhcmdldC4gVGhpcyBwcm9iYWJseSBtZWFucyB0aGF0IHRoZSB2YWx1ZSBmb3IgdGhlICdpbnNlcnRJbnRvJyBwYXJhbWV0ZXIgaXMgaW52YWxpZC5cIik7dmFyIG89ZFtkLmxlbmd0aC0xXTtpZihcInRvcFwiPT09ZS5pbnNlcnRBdClvP28ubmV4dFNpYmxpbmc/bi5pbnNlcnRCZWZvcmUodCxvLm5leHRTaWJsaW5nKTpuLmFwcGVuZENoaWxkKHQpOm4uaW5zZXJ0QmVmb3JlKHQsbi5maXJzdENoaWxkKSxkLnB1c2godCk7ZWxzZSBpZihcImJvdHRvbVwiPT09ZS5pbnNlcnRBdCluLmFwcGVuZENoaWxkKHQpO2Vsc2V7aWYoXCJvYmplY3RcIiE9dHlwZW9mIGUuaW5zZXJ0QXR8fCFlLmluc2VydEF0LmJlZm9yZSl0aHJvdyBuZXcgRXJyb3IoXCJbU3R5bGUgTG9hZGVyXVxcblxcbiBJbnZhbGlkIHZhbHVlIGZvciBwYXJhbWV0ZXIgJ2luc2VydEF0JyAoJ29wdGlvbnMuaW5zZXJ0QXQnKSBmb3VuZC5cXG4gTXVzdCBiZSAndG9wJywgJ2JvdHRvbScsIG9yIE9iamVjdC5cXG4gKGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJwYWNrLWNvbnRyaWIvc3R5bGUtbG9hZGVyI2luc2VydGF0KVxcblwiKTtlPWEoZS5pbnNlcnRJbnRvK1wiIFwiK2UuaW5zZXJ0QXQuYmVmb3JlKTtuLmluc2VydEJlZm9yZSh0LGUpfX1mdW5jdGlvbiBqKGUpe251bGwhPT1lLnBhcmVudE5vZGUmJihlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSksMDw9KGU9ZC5pbmRleE9mKGUpKSYmZC5zcGxpY2UoZSwxKSl9ZnVuY3Rpb24gYihlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7cmV0dXJuIGUuYXR0cnMudHlwZT1cInRleHQvY3NzXCIsbSh0LGUuYXR0cnMpLGgoZSx0KSx0fWZ1bmN0aW9uIG0odCxuKXtPYmplY3Qua2V5cyhuKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3Quc2V0QXR0cmlidXRlKGUsbltlXSl9KX1mdW5jdGlvbiBnKHQsZSl7dmFyIG4sbyxpLHIsYTtpZihlLnRyYW5zZm9ybSYmdC5jc3Mpe2lmKCEocj1lLnRyYW5zZm9ybSh0LmNzcykpKXJldHVybiBmdW5jdGlvbigpe307dC5jc3M9cn1yZXR1cm4gaT1lLnNpbmdsZXRvbj8oYT1jKyssbj1zPXN8fGIoZSksbz13LmJpbmQobnVsbCxuLGEsITEpLHcuYmluZChudWxsLG4sYSwhMCkpOnQuc291cmNlTWFwJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBVUkwmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFVSTC5jcmVhdGVPYmplY3RVUkwmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFVSTC5yZXZva2VPYmplY3RVUkwmJlwiZnVuY3Rpb25cIj09dHlwZW9mIEJsb2ImJlwiZnVuY3Rpb25cIj09dHlwZW9mIGJ0b2E/KHI9ZSxhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpLHIuYXR0cnMudHlwZT1cInRleHQvY3NzXCIsci5hdHRycy5yZWw9XCJzdHlsZXNoZWV0XCIsbShhLHIuYXR0cnMpLGgocixhKSxvPWZ1bmN0aW9uKGUsdCxuKXt2YXIgbz1uLmNzcyxpPW4uc291cmNlTWFwLG49dm9pZCAwPT09dC5jb252ZXJ0VG9BYnNvbHV0ZVVybHMmJmk7KHQuY29udmVydFRvQWJzb2x1dGVVcmxzfHxuKSYmKG89ZihvKSk7aSYmKG8rPVwiXFxuLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxcIitidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShpKSkpKStcIiAqL1wiKTtpPW5ldyBCbG9iKFtvXSx7dHlwZTpcInRleHQvY3NzXCJ9KSxvPWUuaHJlZjtlLmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTChpKSxvJiZVUkwucmV2b2tlT2JqZWN0VVJMKG8pfS5iaW5kKG51bGwsbj1hLGUpLGZ1bmN0aW9uKCl7aihuKSxuLmhyZWYmJlVSTC5yZXZva2VPYmplY3RVUkwobi5ocmVmKX0pOihuPWIoZSksbz1mdW5jdGlvbihlLHQpe3ZhciBuPXQuY3NzLHQ9dC5tZWRpYTt0JiZlLnNldEF0dHJpYnV0ZShcIm1lZGlhXCIsdCk7aWYoZS5zdHlsZVNoZWV0KWUuc3R5bGVTaGVldC5jc3NUZXh0PW47ZWxzZXtmb3IoO2UuZmlyc3RDaGlsZDspZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpO2UuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobikpfX0uYmluZChudWxsLG4pLGZ1bmN0aW9uKCl7aihuKX0pLG8odCksZnVuY3Rpb24oZSl7ZT9lLmNzcz09PXQuY3NzJiZlLm1lZGlhPT09dC5tZWRpYSYmZS5zb3VyY2VNYXA9PT10LnNvdXJjZU1hcHx8byh0PWUpOmkoKX19ZS5leHBvcnRzPWZ1bmN0aW9uKGUsYSl7aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIERFQlVHJiZERUJVRyYmXCJvYmplY3RcIiE9dHlwZW9mIGRvY3VtZW50KXRocm93IG5ldyBFcnJvcihcIlRoZSBzdHlsZS1sb2FkZXIgY2Fubm90IGJlIHVzZWQgaW4gYSBub24tYnJvd3NlciBlbnZpcm9ubWVudFwiKTsoYT1hfHx7fSkuYXR0cnM9XCJvYmplY3RcIj09dHlwZW9mIGEuYXR0cnM/YS5hdHRyczp7fSxhLnNpbmdsZXRvbnx8XCJib29sZWFuXCI9PXR5cGVvZiBhLnNpbmdsZXRvbnx8KGEuc2luZ2xldG9uPWwoKSksYS5pbnNlcnRJbnRvfHwoYS5pbnNlcnRJbnRvPVwiaGVhZFwiKSxhLmluc2VydEF0fHwoYS5pbnNlcnRBdD1cImJvdHRvbVwiKTt2YXIgcz12KGUsYSk7cmV0dXJuIHAocyxhKSxmdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sbj0wO248cy5sZW5ndGg7bisrKXt2YXIgbz1zW25dOyhpPXVbby5pZF0pLnJlZnMtLSx0LnB1c2goaSl9ZSYmcCh2KGUsYSksYSk7Zm9yKHZhciBpLG49MDtuPHQubGVuZ3RoO24rKylpZigwPT09KGk9dFtuXSkucmVmcyl7Zm9yKHZhciByPTA7cjxpLnBhcnRzLmxlbmd0aDtyKyspaS5wYXJ0c1tyXSgpO2RlbGV0ZSB1W2kuaWRdfX19O3ZhciB5LHg9KHk9W10sZnVuY3Rpb24oZSx0KXtyZXR1cm4geVtlXT10LHkuZmlsdGVyKEJvb2xlYW4pLmpvaW4oXCJcXG5cIil9KTtmdW5jdGlvbiB3KGUsdCxuLG8pe249bj9cIlwiOm8uY3NzO2Uuc3R5bGVTaGVldD9lLnN0eWxlU2hlZXQuY3NzVGV4dD14KHQsbik6KG89ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobiksKG49ZS5jaGlsZE5vZGVzKVt0XSYmZS5yZW1vdmVDaGlsZChuW3RdKSxuLmxlbmd0aD9lLmluc2VydEJlZm9yZShvLG5bdF0pOmUuYXBwZW5kQ2hpbGQobykpfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciBvPW4oNDQpO1wic3RyaW5nXCI9PXR5cGVvZiBvJiYobz1bW2UuaSxvLFwiXCJdXSk7dmFyIGk9e2htcjohMCx0cmFuc2Zvcm06dm9pZCAwfTtuKDI1KShvLGkpO28ubG9jYWxzJiYoZS5leHBvcnRzPW8ubG9jYWxzKX0sZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciBvLGk9bigyOCkscj0obz1pKSYmby5fX2VzTW9kdWxlP286e2RlZmF1bHQ6b307dC5kZWZhdWx0PU9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHtpbnN0YWxsOmZ1bmN0aW9uKGUpe2UuY29tcG9uZW50KFwiSnNvblZpZXdlclwiLHIuZGVmYXVsdCl9fSl9LGZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIG8saT1uKDIyKSxyPW4oMSk7Zm9yKG8gaW4gcilcImRlZmF1bHRcIiE9PW8mJmZ1bmN0aW9uKGUpe24uZCh0LGUsZnVuY3Rpb24oKXtyZXR1cm4gcltlXX0pfShvKTtuKDQzKTt2YXIgYT1uKDApLGk9T2JqZWN0KGEuYSkoci5kZWZhdWx0LGkuYSxpLmIsITEsbnVsbCxudWxsLG51bGwpO2kub3B0aW9ucy5fX2ZpbGU9XCJsaWIvanNvbi12aWV3ZXIudnVlXCIsdC5kZWZhdWx0PWkuZXhwb3J0c30sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9bn0sZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgbyxpPW4oNSk7Zm9yKG8gaW4gaSlcImRlZmF1bHRcIiE9PW8mJmZ1bmN0aW9uKGUpe24uZCh0LGUsZnVuY3Rpb24oKXtyZXR1cm4gaVtlXX0pfShvKTt2YXIgcj1uKDApLHI9T2JqZWN0KHIuYSkoaS5kZWZhdWx0LHZvaWQgMCx2b2lkIDAsITEsbnVsbCxudWxsLG51bGwpO3Iub3B0aW9ucy5fX2ZpbGU9XCJsaWIvdHlwZXMvanNvbi1zdHJpbmcudnVlXCIsdC5kZWZhdWx0PXIuZXhwb3J0c30sZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgbyxpPW4oNyk7Zm9yKG8gaW4gaSlcImRlZmF1bHRcIiE9PW8mJmZ1bmN0aW9uKGUpe24uZCh0LGUsZnVuY3Rpb24oKXtyZXR1cm4gaVtlXX0pfShvKTt2YXIgcj1uKDApLHI9T2JqZWN0KHIuYSkoaS5kZWZhdWx0LHZvaWQgMCx2b2lkIDAsITEsbnVsbCxudWxsLG51bGwpO3Iub3B0aW9ucy5fX2ZpbGU9XCJsaWIvdHlwZXMvanNvbi11bmRlZmluZWQudnVlXCIsdC5kZWZhdWx0PXIuZXhwb3J0c30sZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgbyxpPW4oOSk7Zm9yKG8gaW4gaSlcImRlZmF1bHRcIiE9PW8mJmZ1bmN0aW9uKGUpe24uZCh0LGUsZnVuY3Rpb24oKXtyZXR1cm4gaVtlXX0pfShvKTt2YXIgcj1uKDApLHI9T2JqZWN0KHIuYSkoaS5kZWZhdWx0LHZvaWQgMCx2b2lkIDAsITEsbnVsbCxudWxsLG51bGwpO3Iub3B0aW9ucy5fX2ZpbGU9XCJsaWIvdHlwZXMvanNvbi1udW1iZXIudnVlXCIsdC5kZWZhdWx0PXIuZXhwb3J0c30sZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgbyxpPW4oMTEpO2ZvcihvIGluIGkpXCJkZWZhdWx0XCIhPT1vJiZmdW5jdGlvbihlKXtuLmQodCxlLGZ1bmN0aW9uKCl7cmV0dXJuIGlbZV19KX0obyk7dmFyIHI9bigwKSxyPU9iamVjdChyLmEpKGkuZGVmYXVsdCx2b2lkIDAsdm9pZCAwLCExLG51bGwsbnVsbCxudWxsKTtyLm9wdGlvbnMuX19maWxlPVwibGliL3R5cGVzL2pzb24tYm9vbGVhbi52dWVcIix0LmRlZmF1bHQ9ci5leHBvcnRzfSxmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciBvLGk9bigxMyk7Zm9yKG8gaW4gaSlcImRlZmF1bHRcIiE9PW8mJmZ1bmN0aW9uKGUpe24uZCh0LGUsZnVuY3Rpb24oKXtyZXR1cm4gaVtlXX0pfShvKTt2YXIgcj1uKDApLHI9T2JqZWN0KHIuYSkoaS5kZWZhdWx0LHZvaWQgMCx2b2lkIDAsITEsbnVsbCxudWxsLG51bGwpO3Iub3B0aW9ucy5fX2ZpbGU9XCJsaWIvdHlwZXMvanNvbi1vYmplY3QudnVlXCIsdC5kZWZhdWx0PXIuZXhwb3J0c30sZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgbyxpPW4oMTUpO2ZvcihvIGluIGkpXCJkZWZhdWx0XCIhPT1vJiZmdW5jdGlvbihlKXtuLmQodCxlLGZ1bmN0aW9uKCl7cmV0dXJuIGlbZV19KX0obyk7dmFyIHI9bigwKSxyPU9iamVjdChyLmEpKGkuZGVmYXVsdCx2b2lkIDAsdm9pZCAwLCExLG51bGwsbnVsbCxudWxsKTtyLm9wdGlvbnMuX19maWxlPVwibGliL3R5cGVzL2pzb24tYXJyYXkudnVlXCIsdC5kZWZhdWx0PXIuZXhwb3J0c30sZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgbyxpPW4oMTcpO2ZvcihvIGluIGkpXCJkZWZhdWx0XCIhPT1vJiZmdW5jdGlvbihlKXtuLmQodCxlLGZ1bmN0aW9uKCl7cmV0dXJuIGlbZV19KX0obyk7dmFyIHI9bigwKSxyPU9iamVjdChyLmEpKGkuZGVmYXVsdCx2b2lkIDAsdm9pZCAwLCExLG51bGwsbnVsbCxudWxsKTtyLm9wdGlvbnMuX19maWxlPVwibGliL3R5cGVzL2pzb24tZnVuY3Rpb24udnVlXCIsdC5kZWZhdWx0PXIuZXhwb3J0c30sZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgbyxpPW4oMTkpO2ZvcihvIGluIGkpXCJkZWZhdWx0XCIhPT1vJiZmdW5jdGlvbihlKXtuLmQodCxlLGZ1bmN0aW9uKCl7cmV0dXJuIGlbZV19KX0obyk7dmFyIHI9bigwKSxyPU9iamVjdChyLmEpKGkuZGVmYXVsdCx2b2lkIDAsdm9pZCAwLCExLG51bGwsbnVsbCxudWxsKTtyLm9wdGlvbnMuX19maWxlPVwibGliL3R5cGVzL2pzb24tZGF0ZS52dWVcIix0LmRlZmF1bHQ9ci5leHBvcnRzfSxmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bigyMyl9LGZ1bmN0aW9uKGUsdCxuKXsodD1uKDI0KSghMSkpLnB1c2goW2UuaSxcIi5qdi1ub2Rle3Bvc2l0aW9uOnJlbGF0aXZlfS5qdi1ub2RlOmFmdGVye2NvbnRlbnQ6JywnfS5qdi1ub2RlOmxhc3Qtb2YtdHlwZTphZnRlcntjb250ZW50OicnfS5qdi1ub2RlLnRvZ2dsZXttYXJnaW4tbGVmdDoxM3B4ICFpbXBvcnRhbnR9Lmp2LW5vZGUgLmp2LW5vZGV7bWFyZ2luLWxlZnQ6MjVweH1cXG5cIixcIlwiXSksZS5leHBvcnRzPXR9LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PVwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5sb2NhdGlvbjtpZighdCl0aHJvdyBuZXcgRXJyb3IoXCJmaXhVcmxzIHJlcXVpcmVzIHdpbmRvdy5sb2NhdGlvblwiKTtpZighZXx8XCJzdHJpbmdcIiE9dHlwZW9mIGUpcmV0dXJuIGU7dmFyIG49dC5wcm90b2NvbCtcIi8vXCIrdC5ob3N0LG89bit0LnBhdGhuYW1lLnJlcGxhY2UoL1xcL1teXFwvXSokLyxcIi9cIik7cmV0dXJuIGUucmVwbGFjZSgvdXJsXFxzKlxcKCgoPzpbXikoXXxcXCgoPzpbXikoXSt8XFwoW14pKF0qXFwpKSpcXCkpKilcXCkvZ2ksZnVuY3Rpb24oZSx0KXt0PXQudHJpbSgpLnJlcGxhY2UoL15cIiguKilcIiQvLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR9KS5yZXBsYWNlKC9eJyguKiknJC8sZnVuY3Rpb24oZSx0KXtyZXR1cm4gdH0pO3JldHVybi9eKCN8ZGF0YTp8aHR0cDpcXC9cXC98aHR0cHM6XFwvXFwvfGZpbGU6XFwvXFwvXFwvKS9pLnRlc3QodCk/ZToodD0wPT09dC5pbmRleE9mKFwiLy9cIik/dDowPT09dC5pbmRleE9mKFwiL1wiKT9uK3Q6byt0LnJlcGxhY2UoL15cXC5cXC8vLFwiXCIpLFwidXJsKFwiK0pTT04uc3RyaW5naWZ5KHQpK1wiKVwiKX0pfX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9b30sZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3QuZGVib3VuY2U9ZnVuY3Rpb24obyxpKXt2YXIgcj1EYXRlLm5vdygpLGE9dm9pZCAwO3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9QXJyYXkoZSksbj0wO248ZTtuKyspdFtuXT1hcmd1bWVudHNbbl07RGF0ZS5ub3coKS1yPGkmJmEmJmNsZWFyVGltZW91dChhKSxhPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtvLmFwcGx5KHZvaWQgMCx0KX0saSkscj1EYXRlLm5vdygpfX19LGZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuKDI2KX0sZnVuY3Rpb24oZSx0LG4pe3ZhciBvPW4oMjQpLGk9big0NSksbj1uKDQ2KTt0PW8oITEpO249aShuKTt0LnB1c2goW2UuaSxcIi5qdi1jb250YWluZXJ7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlfS5qdi1jb250YWluZXIuYm94ZWR7Ym9yZGVyOjFweCBzb2xpZCAjZWVlO2JvcmRlci1yYWRpdXM6NnB4fS5qdi1jb250YWluZXIuYm94ZWQ6aG92ZXJ7Ym94LXNoYWRvdzowIDJweCA3cHggcmdiYSgwLDAsMCwwLjE1KTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7cG9zaXRpb246cmVsYXRpdmV9Lmp2LWNvbnRhaW5lci5qdi1saWdodHtiYWNrZ3JvdW5kOiNmZmY7d2hpdGUtc3BhY2U6bm93cmFwO2NvbG9yOiM1MjUyNTI7Zm9udC1zaXplOjE0cHg7Zm9udC1mYW1pbHk6Q29uc29sYXMsIE1lbmxvLCBDb3VyaWVyLCBtb25vc3BhY2V9Lmp2LWNvbnRhaW5lci5qdi1saWdodCAuanYtZWxsaXBzaXN7Y29sb3I6Izk5OTtiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7ZGlzcGxheTppbmxpbmUtYmxvY2s7bGluZS1oZWlnaHQ6MC45O2ZvbnQtc2l6ZTowLjllbTtwYWRkaW5nOjBweCA0cHggMnB4IDRweDttYXJnaW46MCA0cHg7Ym9yZGVyLXJhZGl1czozcHg7dmVydGljYWwtYWxpZ246MnB4O2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5qdi1jb250YWluZXIuanYtbGlnaHQgLmp2LWJ1dHRvbntjb2xvcjojNDliM2ZmfS5qdi1jb250YWluZXIuanYtbGlnaHQgLmp2LWtleXtjb2xvcjojMTExMTExO21hcmdpbi1yaWdodDo0cHh9Lmp2LWNvbnRhaW5lci5qdi1saWdodCAuanYtaXRlbS5qdi1hcnJheXtjb2xvcjojMTExMTExfS5qdi1jb250YWluZXIuanYtbGlnaHQgLmp2LWl0ZW0uanYtYm9vbGVhbntjb2xvcjojZmMxZTcwfS5qdi1jb250YWluZXIuanYtbGlnaHQgLmp2LWl0ZW0uanYtZnVuY3Rpb257Y29sb3I6IzA2N2JjYX0uanYtY29udGFpbmVyLmp2LWxpZ2h0IC5qdi1pdGVtLmp2LW51bWJlcntjb2xvcjojZmMxZTcwfS5qdi1jb250YWluZXIuanYtbGlnaHQgLmp2LWl0ZW0uanYtb2JqZWN0e2NvbG9yOiMxMTExMTF9Lmp2LWNvbnRhaW5lci5qdi1saWdodCAuanYtaXRlbS5qdi11bmRlZmluZWR7Y29sb3I6I2UwODMzMX0uanYtY29udGFpbmVyLmp2LWxpZ2h0IC5qdi1pdGVtLmp2LXN0cmluZ3tjb2xvcjojNDJiOTgzO3dvcmQtYnJlYWs6YnJlYWstd29yZDt3aGl0ZS1zcGFjZTpub3JtYWx9Lmp2LWNvbnRhaW5lci5qdi1saWdodCAuanYtaXRlbS5qdi1zdHJpbmcgLmp2LWxpbmt7Y29sb3I6IzAzNjZkNn0uanYtY29udGFpbmVyLmp2LWxpZ2h0IC5qdi1jb2RlIC5qdi10b2dnbGU6YmVmb3Jle3BhZGRpbmc6MHB4IDJweDtib3JkZXItcmFkaXVzOjJweH0uanYtY29udGFpbmVyLmp2LWxpZ2h0IC5qdi1jb2RlIC5qdi10b2dnbGU6aG92ZXI6YmVmb3Jle2JhY2tncm91bmQ6I2VlZX0uanYtY29udGFpbmVyIC5qdi1jb2Rle292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjMwcHggMjBweH0uanYtY29udGFpbmVyIC5qdi1jb2RlLmJveGVke21heC1oZWlnaHQ6MzAwcHh9Lmp2LWNvbnRhaW5lciAuanYtY29kZS5vcGVue21heC1oZWlnaHQ6aW5pdGlhbCAhaW1wb3J0YW50O292ZXJmbG93OnZpc2libGU7b3ZlcmZsb3cteDphdXRvO3BhZGRpbmctYm90dG9tOjQ1cHh9Lmp2LWNvbnRhaW5lciAuanYtdG9nZ2xle2JhY2tncm91bmQtaW1hZ2U6dXJsKFwiK24rJyk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb250YWluO2JhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtjdXJzb3I6cG9pbnRlcjt3aWR0aDoxMHB4O2hlaWdodDoxMHB4O21hcmdpbi1yaWdodDoycHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIDAuMXM7dHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAwLjFzO3RyYW5zaXRpb246dHJhbnNmb3JtIDAuMXM7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC4xcywgLXdlYmtpdC10cmFuc2Zvcm0gMC4xc30uanYtY29udGFpbmVyIC5qdi10b2dnbGUub3Blbnstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfS5qdi1jb250YWluZXIgLmp2LW1vcmV7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO2hlaWdodDo0MHB4O3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpjZW50ZXI7Y3Vyc29yOnBvaW50ZXJ9Lmp2LWNvbnRhaW5lciAuanYtbW9yZSAuanYtdG9nZ2xle3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDo0MCU7ei1pbmRleDoyO2NvbG9yOiM4ODg7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjFzO3RyYW5zaXRpb246YWxsIDAuMXM7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDkwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKX0uanYtY29udGFpbmVyIC5qdi1tb3JlIC5qdi10b2dnbGUub3Blbnstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyl9Lmp2LWNvbnRhaW5lciAuanYtbW9yZTphZnRlcntjb250ZW50OlwiXCI7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7ei1pbmRleDoxO2JhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDAsMCwwLDApIDIwJSwgcmdiYSgyMzAsMjMwLDIzMCwwLjMpIDEwMCUpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLDAsMCwwKSAyMCUsIHJnYmEoMjMwLDIzMCwyMzAsMC4zKSAxMDAlKTstd2Via2l0LXRyYW5zaXRpb246YWxsIDAuMXM7dHJhbnNpdGlvbjphbGwgMC4xc30uanYtY29udGFpbmVyIC5qdi1tb3JlOmhvdmVyIC5qdi10b2dnbGV7dG9wOjUwJTtjb2xvcjojMTExfS5qdi1jb250YWluZXIgLmp2LW1vcmU6aG92ZXI6YWZ0ZXJ7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMCwwLDAsMCkgMjAlLCByZ2JhKDIzMCwyMzAsMjMwLDAuMykgMTAwJSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsMCwwLDApIDIwJSwgcmdiYSgyMzAsMjMwLDIzMCwwLjMpIDEwMCUpfS5qdi1jb250YWluZXIgLmp2LWJ1dHRvbntwb3NpdGlvbjpyZWxhdGl2ZTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjVweDt6LWluZGV4OjV9Lmp2LWNvbnRhaW5lciAuanYtYnV0dG9uLmNvcGllZHtvcGFjaXR5OjAuNDtjdXJzb3I6ZGVmYXVsdH0uanYtY29udGFpbmVyIC5qdi10b29sdGlwe3Bvc2l0aW9uOmFic29sdXRlfS5qdi1jb250YWluZXIgLmp2LXRvb2x0aXAucmlnaHR7cmlnaHQ6MTVweH0uanYtY29udGFpbmVyIC5qdi10b29sdGlwLmxlZnR7bGVmdDoxNXB4fS5qdi1jb250YWluZXIgLmotaWNvbntmb250LXNpemU6MTJweH1cXG4nLFwiXCJdKSxlLmV4cG9ydHM9dH0sZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiB0PXR8fHt9LFwic3RyaW5nXCIhPXR5cGVvZihlPWUmJmUuX19lc01vZHVsZT9lLmRlZmF1bHQ6ZSk/ZTooL15bJ1wiXS4qWydcIl0kLy50ZXN0KGUpJiYoZT1lLnNsaWNlKDEsLTEpKSx0Lmhhc2gmJihlKz10Lmhhc2gpLC9bXCInKCkgXFx0XFxuXS8udGVzdChlKXx8dC5uZWVkUXVvdGVzPydcIicuY29uY2F0KGUucmVwbGFjZSgvXCIvZywnXFxcXFwiJykucmVwbGFjZSgvXFxuL2csXCJcXFxcblwiKSwnXCInKTplKX19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPVwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCb1pXbG5hSFE5SWpFMklpQjNhV1IwYUQwaU9DSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklqNEtJQW84Y0c5c2VXZHZiaUJ3YjJsdWRITTlJakFzTUNBNExEZ2dNQ3d4TmlJS2MzUjViR1U5SW1acGJHdzZJelkyTmp0emRISnZhMlU2Y0hWeWNHeGxPM04wY205clpTMTNhV1IwYURvd0lpQXZQZ284TDNOMlp6ND1cIn1dLGkuYz1hLGkuZD1mdW5jdGlvbihlLHQsbil7aS5vKGUsdCl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2VudW1lcmFibGU6ITAsZ2V0Om59KX0saS5yPWZ1bmN0aW9uKGUpe1widW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZTpcIk1vZHVsZVwifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9LGkudD1mdW5jdGlvbih0LGUpe2lmKDEmZSYmKHQ9aSh0KSksOCZlKXJldHVybiB0O2lmKDQmZSYmXCJvYmplY3RcIj09dHlwZW9mIHQmJnQmJnQuX19lc01vZHVsZSlyZXR1cm4gdDt2YXIgbj1PYmplY3QuY3JlYXRlKG51bGwpO2lmKGkucihuKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobixcImRlZmF1bHRcIix7ZW51bWVyYWJsZTohMCx2YWx1ZTp0fSksMiZlJiZcInN0cmluZ1wiIT10eXBlb2YgdClmb3IodmFyIG8gaW4gdClpLmQobixvLGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfS5iaW5kKG51bGwsbykpO3JldHVybiBufSxpLm49ZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIGUuZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gZX07cmV0dXJuIGkuZCh0LFwiYVwiLHQpLHR9LGkubz1mdW5jdGlvbihlLHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KX0saS5wPVwiXCIsaShpLnM9MjcpO2Z1bmN0aW9uIGkoZSl7aWYoYVtlXSlyZXR1cm4gYVtlXS5leHBvcnRzO3ZhciB0PWFbZV09e2k6ZSxsOiExLGV4cG9ydHM6e319O3JldHVybiByW2VdLmNhbGwodC5leHBvcnRzLHQsdC5leHBvcnRzLGkpLHQubD0hMCx0LmV4cG9ydHN9dmFyIHIsYX0pOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/vue-json-viewer/vue-json-viewer.js\n");

/***/ }),

/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js":
/*!********************************************************************!*\
  !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return normalizeComponent; });\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nfunction normalizeComponent (\n  scriptExports,\n  render,\n  staticRenderFns,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier, /* server only */\n  shadowMode /* vue-cli only */\n) {\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (render) {\n    options.render = render\n    options.staticRenderFns = staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = 'data-v-' + scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = shadowMode\n      ? function () {\n        injectStyles.call(\n          this,\n          (options.functional ? this.parent : this).$root.$options.shadowRoot\n        )\n      }\n      : injectStyles\n  }\n\n  if (hook) {\n    if (options.functional) {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functional component in vue file\n      var originalRender = options.render\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return originalRender(h, context)\n      }\n    } else {\n      // inject component registration as beforeCreate hook\n      var existing = options.beforeCreate\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    }\n  }\n\n  return {\n    exports: scriptExports,\n    options: options\n  }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzPzI4NzciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBOztBQUVBO0FBQ0E7QUFDQTs7QUFFZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGdsb2JhbHMgX19WVUVfU1NSX0NPTlRFWFRfXyAqL1xuXG4vLyBJTVBPUlRBTlQ6IERvIE5PVCB1c2UgRVMyMDE1IGZlYXR1cmVzIGluIHRoaXMgZmlsZSAoZXhjZXB0IGZvciBtb2R1bGVzKS5cbi8vIFRoaXMgbW9kdWxlIGlzIGEgcnVudGltZSB1dGlsaXR5IGZvciBjbGVhbmVyIGNvbXBvbmVudCBtb2R1bGUgb3V0cHV0IGFuZCB3aWxsXG4vLyBiZSBpbmNsdWRlZCBpbiB0aGUgZmluYWwgd2VicGFjayB1c2VyIGJ1bmRsZS5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbm9ybWFsaXplQ29tcG9uZW50IChcbiAgc2NyaXB0RXhwb3J0cyxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZ1bmN0aW9uYWxUZW1wbGF0ZSxcbiAgaW5qZWN0U3R5bGVzLFxuICBzY29wZUlkLFxuICBtb2R1bGVJZGVudGlmaWVyLCAvKiBzZXJ2ZXIgb25seSAqL1xuICBzaGFkb3dNb2RlIC8qIHZ1ZS1jbGkgb25seSAqL1xuKSB7XG4gIC8vIFZ1ZS5leHRlbmQgY29uc3RydWN0b3IgZXhwb3J0IGludGVyb3BcbiAgdmFyIG9wdGlvbnMgPSB0eXBlb2Ygc2NyaXB0RXhwb3J0cyA9PT0gJ2Z1bmN0aW9uJ1xuICAgID8gc2NyaXB0RXhwb3J0cy5vcHRpb25zXG4gICAgOiBzY3JpcHRFeHBvcnRzXG5cbiAgLy8gcmVuZGVyIGZ1bmN0aW9uc1xuICBpZiAocmVuZGVyKSB7XG4gICAgb3B0aW9ucy5yZW5kZXIgPSByZW5kZXJcbiAgICBvcHRpb25zLnN0YXRpY1JlbmRlckZucyA9IHN0YXRpY1JlbmRlckZuc1xuICAgIG9wdGlvbnMuX2NvbXBpbGVkID0gdHJ1ZVxuICB9XG5cbiAgLy8gZnVuY3Rpb25hbCB0ZW1wbGF0ZVxuICBpZiAoZnVuY3Rpb25hbFRlbXBsYXRlKSB7XG4gICAgb3B0aW9ucy5mdW5jdGlvbmFsID0gdHJ1ZVxuICB9XG5cbiAgLy8gc2NvcGVkSWRcbiAgaWYgKHNjb3BlSWQpIHtcbiAgICBvcHRpb25zLl9zY29wZUlkID0gJ2RhdGEtdi0nICsgc2NvcGVJZFxuICB9XG5cbiAgdmFyIGhvb2tcbiAgaWYgKG1vZHVsZUlkZW50aWZpZXIpIHsgLy8gc2VydmVyIGJ1aWxkXG4gICAgaG9vayA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgICAvLyAyLjMgaW5qZWN0aW9uXG4gICAgICBjb250ZXh0ID1cbiAgICAgICAgY29udGV4dCB8fCAvLyBjYWNoZWQgY2FsbFxuICAgICAgICAodGhpcy4kdm5vZGUgJiYgdGhpcy4kdm5vZGUuc3NyQ29udGV4dCkgfHwgLy8gc3RhdGVmdWxcbiAgICAgICAgKHRoaXMucGFyZW50ICYmIHRoaXMucGFyZW50LiR2bm9kZSAmJiB0aGlzLnBhcmVudC4kdm5vZGUuc3NyQ29udGV4dCkgLy8gZnVuY3Rpb25hbFxuICAgICAgLy8gMi4yIHdpdGggcnVuSW5OZXdDb250ZXh0OiB0cnVlXG4gICAgICBpZiAoIWNvbnRleHQgJiYgdHlwZW9mIF9fVlVFX1NTUl9DT05URVhUX18gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGNvbnRleHQgPSBfX1ZVRV9TU1JfQ09OVEVYVF9fXG4gICAgICB9XG4gICAgICAvLyBpbmplY3QgY29tcG9uZW50IHN0eWxlc1xuICAgICAgaWYgKGluamVjdFN0eWxlcykge1xuICAgICAgICBpbmplY3RTdHlsZXMuY2FsbCh0aGlzLCBjb250ZXh0KVxuICAgICAgfVxuICAgICAgLy8gcmVnaXN0ZXIgY29tcG9uZW50IG1vZHVsZSBpZGVudGlmaWVyIGZvciBhc3luYyBjaHVuayBpbmZlcnJlbmNlXG4gICAgICBpZiAoY29udGV4dCAmJiBjb250ZXh0Ll9yZWdpc3RlcmVkQ29tcG9uZW50cykge1xuICAgICAgICBjb250ZXh0Ll9yZWdpc3RlcmVkQ29tcG9uZW50cy5hZGQobW9kdWxlSWRlbnRpZmllcilcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gdXNlZCBieSBzc3IgaW4gY2FzZSBjb21wb25lbnQgaXMgY2FjaGVkIGFuZCBiZWZvcmVDcmVhdGVcbiAgICAvLyBuZXZlciBnZXRzIGNhbGxlZFxuICAgIG9wdGlvbnMuX3NzclJlZ2lzdGVyID0gaG9va1xuICB9IGVsc2UgaWYgKGluamVjdFN0eWxlcykge1xuICAgIGhvb2sgPSBzaGFkb3dNb2RlXG4gICAgICA/IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaW5qZWN0U3R5bGVzLmNhbGwoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICAob3B0aW9ucy5mdW5jdGlvbmFsID8gdGhpcy5wYXJlbnQgOiB0aGlzKS4kcm9vdC4kb3B0aW9ucy5zaGFkb3dSb290XG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIDogaW5qZWN0U3R5bGVzXG4gIH1cblxuICBpZiAoaG9vaykge1xuICAgIGlmIChvcHRpb25zLmZ1bmN0aW9uYWwpIHtcbiAgICAgIC8vIGZvciB0ZW1wbGF0ZS1vbmx5IGhvdC1yZWxvYWQgYmVjYXVzZSBpbiB0aGF0IGNhc2UgdGhlIHJlbmRlciBmbiBkb2Vzbid0XG4gICAgICAvLyBnbyB0aHJvdWdoIHRoZSBub3JtYWxpemVyXG4gICAgICBvcHRpb25zLl9pbmplY3RTdHlsZXMgPSBob29rXG4gICAgICAvLyByZWdpc3RlciBmb3IgZnVuY3Rpb25hbCBjb21wb25lbnQgaW4gdnVlIGZpbGVcbiAgICAgIHZhciBvcmlnaW5hbFJlbmRlciA9IG9wdGlvbnMucmVuZGVyXG4gICAgICBvcHRpb25zLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcldpdGhTdHlsZUluamVjdGlvbiAoaCwgY29udGV4dCkge1xuICAgICAgICBob29rLmNhbGwoY29udGV4dClcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsUmVuZGVyKGgsIGNvbnRleHQpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGluamVjdCBjb21wb25lbnQgcmVnaXN0cmF0aW9uIGFzIGJlZm9yZUNyZWF0ZSBob29rXG4gICAgICB2YXIgZXhpc3RpbmcgPSBvcHRpb25zLmJlZm9yZUNyZWF0ZVxuICAgICAgb3B0aW9ucy5iZWZvcmVDcmVhdGUgPSBleGlzdGluZ1xuICAgICAgICA/IFtdLmNvbmNhdChleGlzdGluZywgaG9vaylcbiAgICAgICAgOiBbaG9va11cbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGV4cG9ydHM6IHNjcmlwdEV4cG9ydHMsXG4gICAgb3B0aW9uczogb3B0aW9uc1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js\n");

/***/ })

}]);

Zerion Mini Shell 1.0