Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

react-menu-list

Package Overview
Dependencies
Maintainers
1
Versions
50
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-menu-list - npm Package Compare versions

Comparing version 7.0.1 to 7.0.2

8

CHANGELOG.md

@@ -0,1 +1,9 @@

## 7.0.2 (2021-03-27)
- Batch React updates during all event handling.
## 6.1.1 (2021-03-27)
- Batch React updates during all event handling.
## 7.0.1 (2020-09-11)

@@ -2,0 +10,0 @@

12

js/Dropdown.js
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

@@ -22,3 +24,3 @@

var _react = _interopRequireDefault(require("react"));
var React = _interopRequireWildcard(require("react"));

@@ -29,3 +31,3 @@ var _propTypes = _interopRequireDefault(require("prop-types"));

function _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; } }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

@@ -45,3 +47,3 @@ var Dropdown = /*#__PURE__*/function (_React$Component) {

value: function render() {
return /*#__PURE__*/_react["default"].createElement("div", {
return /*#__PURE__*/React.createElement("div", {
style: {

@@ -57,3 +59,3 @@ background: 'white',

return Dropdown;
}(_react["default"].Component);
}(React.Component);

@@ -64,2 +66,2 @@ exports["default"] = Dropdown;

});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9Ecm9wZG93bi5qcyJdLCJuYW1lcyI6WyJEcm9wZG93biIsImJhY2tncm91bmQiLCJib3JkZXIiLCJib3hTaGFkb3ciLCJwYWRkaW5nIiwicHJvcHMiLCJjaGlsZHJlbiIsIlJlYWN0IiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwibm9kZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7O0FBRUE7Ozs7OztJQU1xQkEsUTs7Ozs7Ozs7Ozs7OzZCQUtWO0FBQ1AsMEJBQ0U7QUFDRSxRQUFBLEtBQUssRUFBRTtBQUNMQyxVQUFBQSxVQUFVLEVBQUUsT0FEUDtBQUVMQyxVQUFBQSxNQUFNLEVBQUUsMEJBRkg7QUFHTEMsVUFBQUEsU0FBUyxFQUFFLDJCQUhOO0FBSUxDLFVBQUFBLE9BQU8sRUFBRTtBQUpKO0FBRFQsU0FRRyxLQUFLQyxLQUFMLENBQVdDLFFBUmQsQ0FERjtBQVlEOzs7RUFsQm1DQyxrQkFBTUMsUzs7O2lDQUF2QlIsUSxlQUNBO0FBQ2pCTSxFQUFBQSxRQUFRLEVBQUVHLHNCQUFVQztBQURILEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUge05vZGUgYXMgUmVhY3ROb2RlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG50eXBlIFByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERyb3Bkb3duIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFByb3BzPiB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGJhY2tncm91bmQ6ICd3aGl0ZScsXG4gICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHJnYmEoMCwwLDAsLjIpJyxcbiAgICAgICAgICBib3hTaGFkb3c6ICcwIDJweCA0cHggcmdiYSgwLDAsMCwwLjIpJyxcbiAgICAgICAgICBwYWRkaW5nOiAnNnB4IDAnLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7dGhpcy5wcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9Ecm9wZG93bi5qcyJdLCJuYW1lcyI6WyJEcm9wZG93biIsImJhY2tncm91bmQiLCJib3JkZXIiLCJib3hTaGFkb3ciLCJwYWRkaW5nIiwicHJvcHMiLCJjaGlsZHJlbiIsIlJlYWN0IiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwibm9kZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTs7QUFFQTs7Ozs7O0lBTXFCQSxROzs7Ozs7Ozs7Ozs7V0FLbkIsa0JBQVM7QUFDUCwwQkFDRTtBQUNFLFFBQUEsS0FBSyxFQUFFO0FBQ0xDLFVBQUFBLFVBQVUsRUFBRSxPQURQO0FBRUxDLFVBQUFBLE1BQU0sRUFBRSwwQkFGSDtBQUdMQyxVQUFBQSxTQUFTLEVBQUUsMkJBSE47QUFJTEMsVUFBQUEsT0FBTyxFQUFFO0FBSko7QUFEVCxTQVFHLEtBQUtDLEtBQUwsQ0FBV0MsUUFSZCxDQURGO0FBWUQ7OztFQWxCbUNDLEtBQUssQ0FBQ0MsUzs7O2lDQUF2QlIsUSxlQUNBO0FBQ2pCTSxFQUFBQSxRQUFRLEVBQUVHLHNCQUFVQztBQURILEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdHlwZSB7Tm9kZSBhcyBSZWFjdE5vZGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRHJvcGRvd24gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8UHJvcHM+IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgYmFja2dyb3VuZDogJ3doaXRlJyxcbiAgICAgICAgICBib3JkZXI6ICcxcHggc29saWQgcmdiYSgwLDAsMCwuMiknLFxuICAgICAgICAgIGJveFNoYWRvdzogJzAgMnB4IDRweCByZ2JhKDAsMCwwLDAuMiknLFxuICAgICAgICAgIHBhZGRpbmc6ICc2cHggMCcsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHt0aGlzLnByb3BzLmNoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuIl19

@@ -26,3 +26,3 @@ "use strict";

function _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; } }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

@@ -29,0 +29,0 @@ var ChosenEvent = /*#__PURE__*/function (_MenuEvent) {

@@ -40,2 +40,2 @@ "use strict";

exports["default"] = MenuEvent;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ldmVudHMvTWVudUV2ZW50LmpzIl0sIm5hbWVzIjpbIk1lbnVFdmVudCIsInR5cGUiLCJjYW5jZWxCdWJibGUiLCJkZWZhdWx0UHJldmVudGVkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7SUFFcUJBLFM7QUFLbkIscUJBQVlDLElBQVosRUFBMEI7QUFBQTtBQUFBO0FBQUEsMkRBSEYsS0FHRTtBQUFBLCtEQUZFLEtBRUY7QUFDeEIsU0FBS0EsSUFBTCxHQUFZQSxJQUFaO0FBQ0Q7Ozs7c0NBRWlCO0FBQ2hCLFdBQUtDLFlBQUwsR0FBb0IsSUFBcEI7QUFDRDs7O3FDQUVnQjtBQUNmLFdBQUtDLGdCQUFMLEdBQXdCLElBQXhCO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNZW51RXZlbnQge1xuICB0eXBlOiBzdHJpbmc7XG4gIGNhbmNlbEJ1YmJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBkZWZhdWx0UHJldmVudGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IodHlwZTogc3RyaW5nKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIHN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICB0aGlzLmNhbmNlbEJ1YmJsZSA9IHRydWU7XG4gIH1cblxuICBwcmV2ZW50RGVmYXVsdCgpIHtcbiAgICB0aGlzLmRlZmF1bHRQcmV2ZW50ZWQgPSB0cnVlO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ldmVudHMvTWVudUV2ZW50LmpzIl0sIm5hbWVzIjpbIk1lbnVFdmVudCIsInR5cGUiLCJjYW5jZWxCdWJibGUiLCJkZWZhdWx0UHJldmVudGVkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7SUFFcUJBLFM7QUFLbkIscUJBQVlDLElBQVosRUFBMEI7QUFBQTtBQUFBO0FBQUEsMkRBSEYsS0FHRTtBQUFBLCtEQUZFLEtBRUY7QUFDeEIsU0FBS0EsSUFBTCxHQUFZQSxJQUFaO0FBQ0Q7Ozs7V0FFRCwyQkFBa0I7QUFDaEIsV0FBS0MsWUFBTCxHQUFvQixJQUFwQjtBQUNEOzs7V0FFRCwwQkFBaUI7QUFDZixXQUFLQyxnQkFBTCxHQUF3QixJQUF4QjtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLyogQGZsb3cgKi9cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWVudUV2ZW50IHtcbiAgdHlwZTogc3RyaW5nO1xuICBjYW5jZWxCdWJibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGVmYXVsdFByZXZlbnRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHR5cGU6IHN0cmluZykge1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuICBzdG9wUHJvcGFnYXRpb24oKSB7XG4gICAgdGhpcy5jYW5jZWxCdWJibGUgPSB0cnVlO1xuICB9XG5cbiAgcHJldmVudERlZmF1bHQoKSB7XG4gICAgdGhpcy5kZWZhdWx0UHJldmVudGVkID0gdHJ1ZTtcbiAgfVxufVxuIl19

@@ -28,2 +28,4 @@ "use strict";

var ReactDOM = _interopRequireWildcard(require("react-dom"));
var _propTypes = _interopRequireDefault(require("prop-types"));

@@ -55,3 +57,3 @@

function _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; } }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

@@ -157,3 +159,5 @@ var MenuButton = /*#__PURE__*/function (_React$Component) {

})]).takeUntilBy(this._onClose).onValue(function () {
_this2.close();
ReactDOM.unstable_batchedUpdates(function () {
_this2.close();
});
});

@@ -268,2 +272,2 @@

});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9NZW51QnV0dG9uLmpzIl0sIm5hbWVzIjpbIk1lbnVCdXR0b24iLCJvcGVuZWQiLCJSZWFjdCIsImNyZWF0ZVJlZiIsImUiLCJidXR0b24iLCJ0b2dnbGUiLCJrZXkiLCJkb21SZWYiLCJvbktleVByZXNzIiwib25Nb3VzZURvd24iLCJwcm9wcyIsIm9wZW5lZFN0eWxlIiwib3BlbmVkQ2xhc3NOYW1lIiwic3R5bGUiLCJjbGFzc05hbWUiLCJkaXNhYmxlZCIsInRpdGxlIiwiY2hpbGRyZW4iLCJzdGF0ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwib25XaWxsT3BlbiIsIktlZmlyIiwibWVyZ2UiLCJ3aW5kb3ciLCJmaWx0ZXIiLCJlbCIsIl9hbmNob3JSZWYiLCJGbG9hdEFuY2hvciIsInBhcmVudE5vZGVzIiwidGFyZ2V0Iiwibm9kZSIsImZyb21FdmVudHMiLCJ3aGljaCIsIm1hcCIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwidGFrZVVudGlsQnkiLCJfb25DbG9zZSIsIm9uVmFsdWUiLCJjbG9zZSIsInNldFN0YXRlIiwib25EaWRPcGVuIiwib25XaWxsQ2xvc2UiLCJlbWl0Iiwib3BlbiIsImZsb2F0QW5jaG9yIiwiX2Zsb2F0QW5jaG9yUmVmIiwiY3VycmVudCIsIkVycm9yIiwicmVwb3NpdGlvbiIsImFuY2hvclJlZiIsIm1lbnUiLCJwb3NpdGlvbk9wdGlvbnMiLCJtZW51WkluZGV4IiwicmVuZGVyQnV0dG9uIiwiX2RlZmF1bHRSZW5kZXJCdXR0b24iLCJtZW51UGFyZW50RWxlbWVudCIsIl9zZXRSZWYiLCJfb25LZXlQcmVzcyIsIl9vbk1vdXNlRG93biIsIl9pdGVtQ2hvc2VuIiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwib2JqZWN0Iiwib25lT2ZUeXBlIiwic3RyaW5nIiwibnVtYmVyIiwiZnVuYyIsImJvb2wiLCJlbGVtZW50IiwicG9zaXRpb24iLCJoQWxpZ24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7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b3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBGbG9hdEFuY2hvciBmcm9tICdyZWFjdC1mbG9hdC1hbmNob3InO1xuaW1wb3J0IHR5cGUge09wdGlvbnMgYXMgRmxvYXRBbmNob3JPcHRpb25zfSBmcm9tICdyZWFjdC1mbG9hdC1hbmNob3InO1xuaW1wb3J0IEtlZmlyIGZyb20gJ2tlZmlyJztcbmltcG9ydCBrZWZpckJ1cyBmcm9tICdrZWZpci1idXMnO1xuaW1wb3J0IHR5cGUge0J1c30gZnJvbSAna2VmaXItYnVzJztcbmltcG9ydCBmcm9tRXZlbnRzQ2FwdHVyZSBmcm9tICcuL2xpYi9mcm9tRXZlbnRzQ2FwdHVyZSc7XG5pbXBvcnQgc2V0UmVmIGZyb20gJy4vbGliL3NldFJlZic7XG5pbXBvcnQgTWVudUxpc3RJbnNwZWN0b3IgZnJvbSAnLi9NZW51TGlzdEluc3BlY3Rvcic7XG5cbnR5cGUgU3RhdGUgPSB7XG4gIG9wZW5lZDogYm9vbGVhbixcbn07XG5cbnR5cGUgUmVuZGVyUHJvcCA9IChcbiAgZG9tUmVmOiBSZWFjdC5SZWY8YW55PixcbiAgb3BlbmVkOiBib29sZWFuLFxuICBvbktleVByZXNzOiAoZTogS2V5Ym9hcmRFdmVudCkgPT4gdm9pZCxcbiAgb25Nb3VzZURvd246IChlOiBNb3VzZUV2ZW50KSA9PiB2b2lkXG4pID0+IFJlYWN0Lk5vZGU7XG5leHBvcnQgdHlwZSBQcm9wcyA9IHtcbiAgcG9zaXRpb25PcHRpb25zOiBGbG9hdEFuY2hvck9wdGlvbnMsXG4gIG1lbnVaSW5kZXg/OiBzdHJpbmcgfCBudW1iZXIsXG4gIG1lbnVQYXJlbnRFbGVtZW50PzogSFRNTEVsZW1lbnQsXG5cbiAgcmVuZGVyQnV0dG9uPzogUmVuZGVyUHJvcCxcblxuICBjaGlsZHJlbj86IFJlYWN0Lk5vZGUsXG4gIGNsYXNzTmFtZT86IHN0cmluZyxcbiAgc3R5bGU/OiBPYmplY3QsXG4gIG9wZW5lZENsYXNzTmFtZT86IHN0cmluZyxcbiAgb3BlbmVkU3R5bGU/OiBPYmplY3QsXG4gIGRpc2FibGVkPzogYm9vbGVhbixcbiAgdGl0bGU/OiBzdHJpbmcsXG5cbiAgbWVudTogUmVhY3QuTm9kZSxcbiAgb25XaWxsT3Blbj86ICgpID0+IHZvaWQsXG4gIG9uRGlkT3Blbj86ICgpID0+IHZvaWQsXG4gIG9uV2lsbENsb3NlPzogKCkgPT4gdm9pZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1lbnVCdXR0b24gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8UHJvcHMsIFN0YXRlPiB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgcG9zaXRpb25PcHRpb25zOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIG1lbnVaSW5kZXg6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXJdKSxcblxuICAgIHJlbmRlckJ1dHRvbjogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb3BlbmVkQ2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcbiAgICBzdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBvcGVuZWRTdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgdGl0bGU6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICBtZW51OiBQcm9wVHlwZXMuZWxlbWVudCxcbiAgICBvbldpbGxPcGVuOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkRpZE9wZW46IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uV2lsbENsb3NlOiBQcm9wVHlwZXMuZnVuYyxcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIHBvc2l0aW9uT3B0aW9uczoge3Bvc2l0aW9uOiAnYm90dG9tJywgaEFsaWduOiAnbGVmdCd9LFxuICB9O1xuXG4gIHN0YXRlOiBTdGF0ZSA9IHtcbiAgICBvcGVuZWQ6IGZhbHNlLFxuICB9O1xuXG4gIF9mbG9hdEFuY2hvclJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxGbG9hdEFuY2hvcj4oKTtcbiAgX2FuY2hvclJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxIVE1MRWxlbWVudD4oKTtcbiAgX29uQ2xvc2U6IEJ1czx2b2lkPiA9IGtlZmlyQnVzKCk7XG5cbiAgb3BlbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5zdGF0ZS5vcGVuZWQpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICBpZiAodGhpcy5wcm9wcy5vbldpbGxPcGVuKSB0aGlzLnByb3BzLm9uV2lsbE9wZW4oKTtcblxuICAgIC8vIENsaWNraW5nIG91dHNpZGUgb2YgdGhlIGRyb3Bkb3duIG9yIHByZXNzaW5nIGVzY2FwZSBzaG91bGQgY2xvc2UgdGhlXG4gICAgLy8gZHJvcGRvd24uXG4gICAgS2VmaXIubWVyZ2UoW1xuICAgICAgS2VmaXIubWVyZ2UoW1xuICAgICAgICBmcm9tRXZlbnRzQ2FwdHVyZSh3aW5kb3csICdtb3VzZWRvd24nKSxcbiAgICAgICAgZnJvbUV2ZW50c0NhcHR1cmUod2luZG93LCAnZm9jdXMnKSxcbiAgICAgIF0pLmZpbHRlcihlID0+IHtcbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLl9hbmNob3JSZWY7XG4gICAgICAgIGZvciAobGV0IG5vZGUgb2YgRmxvYXRBbmNob3IucGFyZW50Tm9kZXMoZS50YXJnZXQpKSB7XG4gICAgICAgICAgaWYgKG5vZGUgPT09IGVsKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9KSxcbiAgICAgIEtlZmlyLmZyb21FdmVudHMod2luZG93LCAna2V5ZG93bicpXG4gICAgICAgIC5maWx0ZXIoZSA9PiAoZS5rZXkgPyBlLmtleSA9PT0gJ0VzY2FwZScgOiBlLndoaWNoID09PSAyNykpXG4gICAgICAgIC5tYXAoZSA9PiB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH0pLFxuICAgIF0pXG4gICAgICAudGFrZVVudGlsQnkodGhpcy5fb25DbG9zZSlcbiAgICAgIC5vblZhbHVlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtvcGVuZWQ6IHRydWV9LCAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9uRGlkT3BlbikgdGhpcy5wcm9wcy5vbkRpZE9wZW4oKTtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICBpZiAoIXRoaXMuc3RhdGUub3BlbmVkKSByZXR1cm47XG4gICAgaWYgKHRoaXMucHJvcHMub25XaWxsQ2xvc2UpIHRoaXMucHJvcHMub25XaWxsQ2xvc2UoKTtcbiAgICB0aGlzLnNldFN0YXRlKHtvcGVuZWQ6IGZhbHNlfSk7XG4gICAgdGhpcy5fb25DbG9zZS5lbWl0KCk7XG4gIH1cblxuICB0b2dnbGUoKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUub3BlbmVkKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIHJlcG9zaXRpb24oKSB7XG4gICAgY29uc3QgZmxvYXRBbmNob3IgPSB0aGlzLl9mbG9hdEFuY2hvclJlZi5jdXJyZW50O1xuICAgIGlmICghZmxvYXRBbmNob3IpIHRocm93IG5ldyBFcnJvcigpO1xuICAgIGZsb2F0QW5jaG9yLnJlcG9zaXRpb24oKTtcbiAgfVxuXG4gIF9vbk1vdXNlRG93biA9IChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgaWYgKGUuYnV0dG9uICE9PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy50b2dnbGUoKTtcbiAgfTtcblxuICBfb25LZXlQcmVzcyA9IChlOiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgaWYgKGUua2V5ID09PSAnRW50ZXInIHx8IGUua2V5ID09PSAnICcpIHtcbiAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgfVxuICB9O1xuXG4gIF9zZXRSZWYoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCwgYW5jaG9yUmVmOiBSZWFjdC5SZWY8YW55Pikge1xuICAgIHRoaXMuX2FuY2hvclJlZiA9IGVsO1xuICAgIHNldFJlZihhbmNob3JSZWYsIGVsKTtcbiAgfVxuXG4gIF9pdGVtQ2hvc2VuKCkge1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIF9kZWZhdWx0UmVuZGVyQnV0dG9uID0gKFxuICAgIGRvbVJlZjogUmVhY3QuUmVmPGFueT4sXG4gICAgb3BlbmVkOiBib29sZWFuLFxuICAgIG9uS2V5UHJlc3M6IChlOiBLZXlib2FyZEV2ZW50KSA9PiB2b2lkLFxuICAgIG9uTW91c2VEb3duOiAoZTogTW91c2VFdmVudCkgPT4gdm9pZFxuICApID0+IHtcbiAgICBjb25zdCB7b3BlbmVkU3R5bGUsIG9wZW5lZENsYXNzTmFtZX0gPSB0aGlzLnByb3BzO1xuICAgIGxldCB7c3R5bGUsIGNsYXNzTmFtZX0gPSB0aGlzLnByb3BzO1xuICAgIGlmIChvcGVuZWQpIHtcbiAgICAgIGlmIChvcGVuZWRTdHlsZSkge1xuICAgICAgICBzdHlsZSA9IHsuLi5zdHlsZSwgLi4ub3BlbmVkU3R5bGV9O1xuICAgICAgfVxuICAgICAgaWYgKG9wZW5lZENsYXNzTmFtZSkge1xuICAgICAgICBjbGFzc05hbWUgPSBgJHtjbGFzc05hbWUgfHwgJyd9ICR7b3BlbmVkQ2xhc3NOYW1lfWA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgcmVmPXtkb21SZWZ9XG4gICAgICAgIGFyaWEtaGFzcG9wdXA9e3RydWV9XG4gICAgICAgIGFyaWEtZXhwYW5kZWQ9e29wZW5lZH1cbiAgICAgICAgb25LZXlQcmVzcz17b25LZXlQcmVzc31cbiAgICAgICAgb25Nb3VzZURvd249e29uTW91c2VEb3dufVxuICAgICAgICBkaXNhYmxlZD17dGhpcy5wcm9wcy5kaXNhYmxlZH1cbiAgICAgICAgdGl0bGU9e3RoaXMucHJvcHMudGl0bGV9XG4gICAgICA+XG4gICAgICAgIHt0aGlzLnByb3BzLmNoaWxkcmVufVxuICAgICAgPC9idXR0b24+XG4gICAgKTtcbiAgfTtcblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLl9vbkNsb3NlLmVtaXQoKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7bWVudSwgcG9zaXRpb25PcHRpb25zLCBtZW51WkluZGV4fSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge29wZW5lZH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgY29uc3QgcmVuZGVyQnV0dG9uID0gdGhpcy5wcm9wcy5yZW5kZXJCdXR0b24gfHwgdGhpcy5fZGVmYXVsdFJlbmRlckJ1dHRvbjtcblxuICAgIHJldHVybiAoXG4gICAgICA8RmxvYXRBbmNob3JcbiAgICAgICAgcGFyZW50RWxlbWVudD17dGhpcy5wcm9wcy5tZW51UGFyZW50RWxlbWVudH1cbiAgICAgICAgcmVmPXt0aGlzLl9mbG9hdEFuY2hvclJlZn1cbiAgICAgICAgb3B0aW9ucz17cG9zaXRpb25PcHRpb25zfVxuICAgICAgICB6SW5kZXg9e21lbnVaSW5kZXh9XG4gICAgICAgIGFuY2hvcj17YW5jaG9yUmVmID0+XG4gICAgICAgICAgcmVuZGVyQnV0dG9uKFxuICAgICAgICAgICAgZWwgPT4gdGhpcy5fc2V0UmVmKGVsLCBhbmNob3JSZWYpLFxuICAgICAgICAgICAgb3BlbmVkLFxuICAgICAgICAgICAgdGhpcy5fb25LZXlQcmVzcyxcbiAgICAgICAgICAgIHRoaXMuX29uTW91c2VEb3duXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIGZsb2F0PXtcbiAgICAgICAgICAhb3BlbmVkID8gbnVsbCA6IChcbiAgICAgICAgICAgIDxNZW51TGlzdEluc3BlY3RvciBvbkl0ZW1DaG9zZW49eygpID0+IHRoaXMuX2l0ZW1DaG9zZW4oKX0+XG4gICAgICAgICAgICAgIHttZW51fVxuICAgICAgICAgICAgPC9NZW51TGlzdEluc3BlY3Rvcj5cbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9NZW51QnV0dG9uLmpzIl0sIm5hbWVzIjpbIk1lbnVCdXR0b24iLCJvcGVuZWQiLCJSZWFjdCIsImNyZWF0ZVJlZiIsImUiLCJidXR0b24iLCJ0b2dnbGUiLCJrZXkiLCJkb21SZWYiLCJvbktleVByZXNzIiwib25Nb3VzZURvd24iLCJwcm9wcyIsIm9wZW5lZFN0eWxlIiwib3BlbmVkQ2xhc3NOYW1lIiwic3R5bGUiLCJjbGFzc05hbWUiLCJkaXNhYmxlZCIsInRpdGxlIiwiY2hpbGRyZW4iLCJzdGF0ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwib25XaWxsT3BlbiIsIktlZmlyIiwibWVyZ2UiLCJ3aW5kb3ciLCJmaWx0ZXIiLCJlbCIsIl9hbmNob3JSZWYiLCJGbG9hdEFuY2hvciIsInBhcmVudE5vZGVzIiwidGFyZ2V0Iiwibm9kZSIsImZyb21FdmVudHMiLCJ3aGljaCIsIm1hcCIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwidGFrZVVudGlsQnkiLCJfb25DbG9zZSIsIm9uVmFsdWUiLCJSZWFjdERPTSIsInVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzIiwiY2xvc2UiLCJzZXRTdGF0ZSIsIm9uRGlkT3BlbiIsIm9uV2lsbENsb3NlIiwiZW1pdCIsIm9wZW4iLCJmbG9hdEFuY2hvciIsIl9mbG9hdEFuY2hvclJlZiIsImN1cnJlbnQiLCJFcnJvciIsInJlcG9zaXRpb24iLCJhbmNob3JSZWYiLCJtZW51IiwicG9zaXRpb25PcHRpb25zIiwibWVudVpJbmRleCIsInJlbmRlckJ1dHRvbiIsIl9kZWZhdWx0UmVuZGVyQnV0dG9uIiwibWVudVBhcmVudEVsZW1lbnQiLCJfc2V0UmVmIiwiX29uS2V5UHJlc3MiLCJfb25Nb3VzZURvd24iLCJfaXRlbUNob3NlbiIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsIm9uZU9mVHlwZSIsInN0cmluZyIsIm51bWJlciIsImZ1bmMiLCJib29sIiwiZWxlbWVudCIsInBvc2l0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ZSxFQUFFO0FBQUNrQixJQUFBQSxRQUFRLEVBQUUsUUFBWDtBQUFxQkMsSUFBQUEsTUFBTSxFQUFFO0FBQTdCO0FBREcsQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIEBmbG93ICovXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCAqIGFzIFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEZsb2F0QW5jaG9yIGZyb20gJ3JlYWN0LWZsb2F0LWFuY2hvcic7XG5pbXBvcnQgdHlwZSB7T3B0aW9ucyBhcyBGbG9hdEFuY2hvck9wdGlvbnN9IGZyb20gJ3JlYWN0LWZsb2F0LWFuY2hvcic7XG5pbXBvcnQgS2VmaXIgZnJvbSAna2VmaXInO1xuaW1wb3J0IGtlZmlyQnVzIGZyb20gJ2tlZmlyLWJ1cyc7XG5pbXBvcnQgdHlwZSB7QnVzfSBmcm9tICdrZWZpci1idXMnO1xuaW1wb3J0IGZyb21FdmVudHNDYXB0dXJlIGZyb20gJy4vbGliL2Zyb21FdmVudHNDYXB0dXJlJztcbmltcG9ydCBzZXRSZWYgZnJvbSAnLi9saWIvc2V0UmVmJztcbmltcG9ydCBNZW51TGlzdEluc3BlY3RvciBmcm9tICcuL01lbnVMaXN0SW5zcGVjdG9yJztcblxudHlwZSBTdGF0ZSA9IHtcbiAgb3BlbmVkOiBib29sZWFuLFxufTtcblxudHlwZSBSZW5kZXJQcm9wID0gKFxuICBkb21SZWY6IFJlYWN0LlJlZjxhbnk+LFxuICBvcGVuZWQ6IGJvb2xlYW4sXG4gIG9uS2V5UHJlc3M6IChlOiBLZXlib2FyZEV2ZW50KSA9PiB2b2lkLFxuICBvbk1vdXNlRG93bjogKGU6IE1vdXNlRXZlbnQpID0+IHZvaWRcbikgPT4gUmVhY3QuTm9kZTtcbmV4cG9ydCB0eXBlIFByb3BzID0ge1xuICBwb3NpdGlvbk9wdGlvbnM6IEZsb2F0QW5jaG9yT3B0aW9ucyxcbiAgbWVudVpJbmRleD86IHN0cmluZyB8IG51bWJlcixcbiAgbWVudVBhcmVudEVsZW1lbnQ/OiBIVE1MRWxlbWVudCxcblxuICByZW5kZXJCdXR0b24/OiBSZW5kZXJQcm9wLFxuXG4gIGNoaWxkcmVuPzogUmVhY3QuTm9kZSxcbiAgY2xhc3NOYW1lPzogc3RyaW5nLFxuICBzdHlsZT86IE9iamVjdCxcbiAgb3BlbmVkQ2xhc3NOYW1lPzogc3RyaW5nLFxuICBvcGVuZWRTdHlsZT86IE9iamVjdCxcbiAgZGlzYWJsZWQ/OiBib29sZWFuLFxuICB0aXRsZT86IHN0cmluZyxcblxuICBtZW51OiBSZWFjdC5Ob2RlLFxuICBvbldpbGxPcGVuPzogKCkgPT4gdm9pZCxcbiAgb25EaWRPcGVuPzogKCkgPT4gdm9pZCxcbiAgb25XaWxsQ2xvc2U/OiAoKSA9PiB2b2lkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWVudUJ1dHRvbiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxQcm9wcywgU3RhdGU+IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBwb3NpdGlvbk9wdGlvbnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbWVudVpJbmRleDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm51bWJlcl0pLFxuXG4gICAgcmVuZGVyQnV0dG9uOiBQcm9wVHlwZXMuZnVuYyxcblxuICAgIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvcGVuZWRDbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICAgIHN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIG9wZW5lZFN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZyxcblxuICAgIG1lbnU6IFByb3BUeXBlcy5lbGVtZW50LFxuICAgIG9uV2lsbE9wZW46IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uRGlkT3BlbjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25XaWxsQ2xvc2U6IFByb3BUeXBlcy5mdW5jLFxuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgcG9zaXRpb25PcHRpb25zOiB7cG9zaXRpb246ICdib3R0b20nLCBoQWxpZ246ICdsZWZ0J30sXG4gIH07XG5cbiAgc3RhdGU6IFN0YXRlID0ge1xuICAgIG9wZW5lZDogZmFsc2UsXG4gIH07XG5cbiAgX2Zsb2F0QW5jaG9yUmVmID0gUmVhY3QuY3JlYXRlUmVmPEZsb2F0QW5jaG9yPigpO1xuICBfYW5jaG9yUmVmID0gUmVhY3QuY3JlYXRlUmVmPEhUTUxFbGVtZW50PigpO1xuICBfb25DbG9zZTogQnVzPHZvaWQ+ID0ga2VmaXJCdXMoKTtcblxuICBvcGVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnN0YXRlLm9wZW5lZCkgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIGlmICh0aGlzLnByb3BzLm9uV2lsbE9wZW4pIHRoaXMucHJvcHMub25XaWxsT3BlbigpO1xuXG4gICAgLy8gQ2xpY2tpbmcgb3V0c2lkZSBvZiB0aGUgZHJvcGRvd24gb3IgcHJlc3NpbmcgZXNjYXBlIHNob3VsZCBjbG9zZSB0aGVcbiAgICAvLyBkcm9wZG93bi5cbiAgICBLZWZpci5tZXJnZShbXG4gICAgICBLZWZpci5tZXJnZShbXG4gICAgICAgIGZyb21FdmVudHNDYXB0dXJlKHdpbmRvdywgJ21vdXNlZG93bicpLFxuICAgICAgICBmcm9tRXZlbnRzQ2FwdHVyZSh3aW5kb3csICdmb2N1cycpLFxuICAgICAgXSkuZmlsdGVyKGUgPT4ge1xuICAgICAgICBjb25zdCBlbCA9IHRoaXMuX2FuY2hvclJlZjtcbiAgICAgICAgZm9yIChsZXQgbm9kZSBvZiBGbG9hdEFuY2hvci5wYXJlbnROb2RlcyhlLnRhcmdldCkpIHtcbiAgICAgICAgICBpZiAobm9kZSA9PT0gZWwpIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0pLFxuICAgICAgS2VmaXIuZnJvbUV2ZW50cyh3aW5kb3csICdrZXlkb3duJylcbiAgICAgICAgLmZpbHRlcihlID0+IChlLmtleSA/IGUua2V5ID09PSAnRXNjYXBlJyA6IGUud2hpY2ggPT09IDI3KSlcbiAgICAgICAgLm1hcChlID0+IHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfSksXG4gICAgXSlcbiAgICAgIC50YWtlVW50aWxCeSh0aGlzLl9vbkNsb3NlKVxuICAgICAgLm9uVmFsdWUoKCkgPT4ge1xuICAgICAgICBSZWFjdERPTS51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcygoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7b3BlbmVkOiB0cnVlfSwgKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkRpZE9wZW4pIHRoaXMucHJvcHMub25EaWRPcGVuKCk7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgaWYgKCF0aGlzLnN0YXRlLm9wZW5lZCkgcmV0dXJuO1xuICAgIGlmICh0aGlzLnByb3BzLm9uV2lsbENsb3NlKSB0aGlzLnByb3BzLm9uV2lsbENsb3NlKCk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7b3BlbmVkOiBmYWxzZX0pO1xuICAgIHRoaXMuX29uQ2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIGlmICh0aGlzLnN0YXRlLm9wZW5lZCkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW4oKTtcbiAgICB9XG4gIH1cblxuICByZXBvc2l0aW9uKCkge1xuICAgIGNvbnN0IGZsb2F0QW5jaG9yID0gdGhpcy5fZmxvYXRBbmNob3JSZWYuY3VycmVudDtcbiAgICBpZiAoIWZsb2F0QW5jaG9yKSB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICBmbG9hdEFuY2hvci5yZXBvc2l0aW9uKCk7XG4gIH1cblxuICBfb25Nb3VzZURvd24gPSAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgIGlmIChlLmJ1dHRvbiAhPT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudG9nZ2xlKCk7XG4gIH07XG5cbiAgX29uS2V5UHJlc3MgPSAoZTogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyB8fCBlLmtleSA9PT0gJyAnKSB7XG4gICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgIH1cbiAgfTtcblxuICBfc2V0UmVmKGVsOiBIVE1MRWxlbWVudCB8IG51bGwsIGFuY2hvclJlZjogUmVhY3QuUmVmPGFueT4pIHtcbiAgICB0aGlzLl9hbmNob3JSZWYgPSBlbDtcbiAgICBzZXRSZWYoYW5jaG9yUmVmLCBlbCk7XG4gIH1cblxuICBfaXRlbUNob3NlbigpIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBfZGVmYXVsdFJlbmRlckJ1dHRvbiA9IChcbiAgICBkb21SZWY6IFJlYWN0LlJlZjxhbnk+LFxuICAgIG9wZW5lZDogYm9vbGVhbixcbiAgICBvbktleVByZXNzOiAoZTogS2V5Ym9hcmRFdmVudCkgPT4gdm9pZCxcbiAgICBvbk1vdXNlRG93bjogKGU6IE1vdXNlRXZlbnQpID0+IHZvaWRcbiAgKSA9PiB7XG4gICAgY29uc3Qge29wZW5lZFN0eWxlLCBvcGVuZWRDbGFzc05hbWV9ID0gdGhpcy5wcm9wcztcbiAgICBsZXQge3N0eWxlLCBjbGFzc05hbWV9ID0gdGhpcy5wcm9wcztcbiAgICBpZiAob3BlbmVkKSB7XG4gICAgICBpZiAob3BlbmVkU3R5bGUpIHtcbiAgICAgICAgc3R5bGUgPSB7Li4uc3R5bGUsIC4uLm9wZW5lZFN0eWxlfTtcbiAgICAgIH1cbiAgICAgIGlmIChvcGVuZWRDbGFzc05hbWUpIHtcbiAgICAgICAgY2xhc3NOYW1lID0gYCR7Y2xhc3NOYW1lIHx8ICcnfSAke29wZW5lZENsYXNzTmFtZX1gO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgIHJlZj17ZG9tUmVmfVxuICAgICAgICBhcmlhLWhhc3BvcHVwPXt0cnVlfVxuICAgICAgICBhcmlhLWV4cGFuZGVkPXtvcGVuZWR9XG4gICAgICAgIG9uS2V5UHJlc3M9e29uS2V5UHJlc3N9XG4gICAgICAgIG9uTW91c2VEb3duPXtvbk1vdXNlRG93bn1cbiAgICAgICAgZGlzYWJsZWQ9e3RoaXMucHJvcHMuZGlzYWJsZWR9XG4gICAgICAgIHRpdGxlPXt0aGlzLnByb3BzLnRpdGxlfVxuICAgICAgPlxuICAgICAgICB7dGhpcy5wcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvYnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgdGhpcy5fb25DbG9zZS5lbWl0KCk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge21lbnUsIHBvc2l0aW9uT3B0aW9ucywgbWVudVpJbmRleH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHtvcGVuZWR9ID0gdGhpcy5zdGF0ZTtcblxuICAgIGNvbnN0IHJlbmRlckJ1dHRvbiA9IHRoaXMucHJvcHMucmVuZGVyQnV0dG9uIHx8IHRoaXMuX2RlZmF1bHRSZW5kZXJCdXR0b247XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEZsb2F0QW5jaG9yXG4gICAgICAgIHBhcmVudEVsZW1lbnQ9e3RoaXMucHJvcHMubWVudVBhcmVudEVsZW1lbnR9XG4gICAgICAgIHJlZj17dGhpcy5fZmxvYXRBbmNob3JSZWZ9XG4gICAgICAgIG9wdGlvbnM9e3Bvc2l0aW9uT3B0aW9uc31cbiAgICAgICAgekluZGV4PXttZW51WkluZGV4fVxuICAgICAgICBhbmNob3I9e2FuY2hvclJlZiA9PlxuICAgICAgICAgIHJlbmRlckJ1dHRvbihcbiAgICAgICAgICAgIGVsID0+IHRoaXMuX3NldFJlZihlbCwgYW5jaG9yUmVmKSxcbiAgICAgICAgICAgIG9wZW5lZCxcbiAgICAgICAgICAgIHRoaXMuX29uS2V5UHJlc3MsXG4gICAgICAgICAgICB0aGlzLl9vbk1vdXNlRG93blxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICBmbG9hdD17XG4gICAgICAgICAgIW9wZW5lZCA/IG51bGwgOiAoXG4gICAgICAgICAgICA8TWVudUxpc3RJbnNwZWN0b3Igb25JdGVtQ2hvc2VuPXsoKSA9PiB0aGlzLl9pdGVtQ2hvc2VuKCl9PlxuICAgICAgICAgICAgICB7bWVudX1cbiAgICAgICAgICAgIDwvTWVudUxpc3RJbnNwZWN0b3I+XG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAvPlxuICAgICk7XG4gIH1cbn1cbiJdfQ==
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

@@ -24,3 +26,3 @@

var _react = _interopRequireDefault(require("react"));
var React = _interopRequireWildcard(require("react"));

@@ -41,3 +43,3 @@ var _propTypes = _interopRequireDefault(require("prop-types"));

function _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; } }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

@@ -202,3 +204,3 @@ var MenuItem = /*#__PURE__*/function (_React$Component) {

return /*#__PURE__*/_react["default"].createElement("div", {
return /*#__PURE__*/React.createElement("div", {
ref: this._elSetter,

@@ -223,3 +225,3 @@ style: style,

return MenuItem;
}(_react["default"].Component);
}(React.Component);

@@ -244,2 +246,2 @@ exports["default"] = MenuItem;

(0, _defineProperty2["default"])(MenuItem, "contextType", _MenuList.MenuListContext);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9NZW51SXRlbS5qcyJdLCJuYW1lcyI6WyJNZW51SXRlbSIsImhpZ2hsaWdodGVkIiwiZWwiLCJfZWwiLCJwcm9wcyIsImRvbVJlZiIsInN0YXRlIiwiX21lbnVMaXN0SGFuZGxlIiwidGFrZUtleWJvYXJkIiwicmVsZWFzZUtleWJvYXJkIiwibG9ja0hpZ2hsaWdodCIsInVubG9ja0hpZ2hsaWdodCIsImJ5S2V5Ym9hcmQiLCJoaWdobGlnaHQiLCJ1bmhpZ2hsaWdodCIsImRpcmVjdGlvbiIsInByZXZDdXJzb3JMb2NhdGlvbiIsIm1vdmVDdXJzb3IiLCJjb250ZXh0IiwicmVnaXN0ZXJJdGVtIiwibm90aWZ5SGlnaGxpZ2h0ZWQiLCJzZXRTdGF0ZSIsInNjcm9sbEludG9WaWV3SWZOZWVkZWQiLCJzY3JvbGxJbnRvVmlldyIsIm9uSGlnaGxpZ2h0Q2hhbmdlIiwidW5kZWZpbmVkIiwibm90aWZ5RXZlbnQiLCJldmVudCIsInR5cGUiLCJvbkl0ZW1DaG9zZW4iLCJvbkxlZnRQdXNoZWQiLCJvblJpZ2h0UHVzaGVkIiwidW5yZWdpc3RlciIsInVwZGF0ZVByb3BzIiwiY2hpbGRyZW4iLCJvbk1vdXNlTGVhdmUiLCJzdHlsZSIsImNsYXNzTmFtZSIsImhpZ2hsaWdodGVkU3R5bGUiLCJoaWdobGlnaHRlZENsYXNzTmFtZSIsIl9lbFNldHRlciIsIml0ZW1DaG9zZW4iLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsImZ1bmMiLCJzdHJpbmciLCJvYmplY3QiLCJpbmRleCIsIm51bWJlciIsIm5vZGUiLCJvbmVPZlR5cGUiLCJib29sIiwiTWVudUxpc3RDb250ZXh0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBOztBQUVBOztBQUdBOztBQUNBOztBQUVBOzs7Ozs7Ozs7O0lBb0NxQkEsUTs7Ozs7Ozs7Ozs7Ozs7Ozs4RkFFWDtBQUNOQyxNQUFBQSxXQUFXLEVBQUU7QUFEUCxLOztrR0E0QkksVUFBQ0MsRUFB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LCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUge1JlZiBhcyBSZWFjdFJlZiwgTm9kZSBhcyBSZWFjdE5vZGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCB0eXBlIE1lbnVFdmVudCBmcm9tICcuL2V2ZW50cy9NZW51RXZlbnQnO1xuaW1wb3J0IENob3NlbkV2ZW50IGZyb20gJy4vZXZlbnRzL0Nob3NlbkV2ZW50JztcbmltcG9ydCB7TWVudUxpc3RDb250ZXh0fSBmcm9tICcuL01lbnVMaXN0JztcbmltcG9ydCB0eXBlIHtNZW51TGlzdENvbnRleHRWYWx1ZSwgTWVudUxpc3RIYW5kbGV9IGZyb20gJy4vTWVudUxpc3QnO1xuaW1wb3J0IHNldFJlZiBmcm9tICcuL2xpYi9zZXRSZWYnO1xuaW1wb3J0IHR5cGUge0RpcmVjdGlvbiwgUmVjdH0gZnJvbSAnLi90eXBlcyc7XG5cbnR5cGUgU3RhdGUgPSB7XG4gIGhpZ2hsaWdodGVkOiBib29sZWFuLFxufTtcblxuZXhwb3J0IHR5cGUgUHJvcHMgPSB7XG4gIG9uSXRlbUNob3Nlbj86IChldmVudDogQ2hvc2VuRXZlbnQpID0+IHZvaWQsXG4gIG9uTGVmdFB1c2hlZD86IChldmVudDogTWVudUV2ZW50KSA9PiB2b2lkLFxuICBvblJpZ2h0UHVzaGVkPzogKGV2ZW50OiBNZW51RXZlbnQpID0+IHZvaWQsXG4gIG9uSGlnaGxpZ2h0Q2hhbmdlPzogKFxuICAgIGhpZ2hsaWdodGVkOiBib29sZWFuLFxuICAgIGRldGFpbHM6IHtcbiAgICAgIGJ5S2V5Ym9hcmQ/OiBib29sZWFuLFxuICAgICAgcHJldkN1cnNvckxvY2F0aW9uPzogUmVjdCxcbiAgICAgIGRpcmVjdGlvbj86IERpcmVjdGlvbixcbiAgICB9XG4gICkgPT4gdm9pZCxcblxuICBjbGFzc05hbWU/OiBzdHJpbmcsXG4gIHN0eWxlPzogT2JqZWN0LFxuICBoaWdobGlnaHRlZENsYXNzTmFtZT86IHN0cmluZyxcbiAgaGlnaGxpZ2h0ZWRTdHlsZT86IE9iamVjdCxcblxuICBpbmRleD86IG51bWJlcixcbiAgb25Nb3VzZUxlYXZlPzogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkLFxuXG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlLFxuXG4gIGRvbVJlZj86IFJlYWN0UmVmPCdkaXYnPixcblxuICAnYXJpYS1oYXNwb3B1cCc/OiBib29sZWFuLFxuICAnYXJpYS1leHBhbmRlZCc/OiBib29sZWFuLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWVudUl0ZW0gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8UHJvcHMsIFN0YXRlPiB7XG4gIF9tZW51TGlzdEhhbmRsZTogTWVudUxpc3RIYW5kbGU7XG4gIHN0YXRlID0ge1xuICAgIGhpZ2hsaWdodGVkOiBmYWxzZSxcbiAgfTtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBvbkl0ZW1DaG9zZW46IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uSGlnaGxpZ2h0Q2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkxlZnRQdXNoZWQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uUmlnaHRQdXNoZWQ6IFByb3BUeXBlcy5mdW5jLFxuXG4gICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGhpZ2hsaWdodGVkQ2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGhpZ2hsaWdodGVkU3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG5cbiAgICBpbmRleDogUHJvcFR5cGVzLm51bWJlcixcbiAgICBvbk1vdXNlTGVhdmU6IFByb3BUeXBlcy5mdW5jLFxuXG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuXG4gICAgZG9tUmVmOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMub2JqZWN0LCBQcm9wVHlwZXMuZnVuY10pLFxuXG4gICAgJ2FyaWEtaGFzcG9wdXAnOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAnYXJpYS1leHBhbmRlZCc6IFByb3BUeXBlcy5ib29sLFxuICB9O1xuXG4gIHN0YXRpYyBjb250ZXh0VHlwZSA9IE1lbnVMaXN0Q29udGV4dDtcblxuICBfZWw6ID9IVE1MRGl2RWxlbWVudDtcbiAgX2VsU2V0dGVyID0gKGVsOiA/SFRNTERpdkVsZW1lbnQpID0+IHtcbiAgICB0aGlzLl9lbCA9IGVsO1xuXG4gICAgaWYgKHRoaXMucHJvcHMuZG9tUmVmKSB7XG4gICAgICBzZXRSZWYodGhpcy5wcm9wcy5kb21SZWYsIGVsKTtcbiAgICB9XG4gIH07XG5cbiAgaGFzSGlnaGxpZ2h0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmhpZ2hsaWdodGVkO1xuICB9XG5cbiAgdGFrZUtleWJvYXJkKCkge1xuICAgIHRoaXMuX21lbnVMaXN0SGFuZGxlLnRha2VLZXlib2FyZCgpO1xuICB9XG5cbiAgcmVsZWFzZUtleWJvYXJkKCkge1xuICAgIHRoaXMuX21lbnVMaXN0SGFuZGxlLnJlbGVhc2VLZXlib2FyZCgpO1xuICB9XG5cbiAgbG9ja0hpZ2hsaWdodCgpIHtcbiAgICB0aGlzLl9tZW51TGlzdEhhbmRsZS5sb2NrSGlnaGxpZ2h0KCk7XG4gIH1cblxuICB1bmxvY2tIaWdobGlnaHQoKSB7XG4gICAgdGhpcy5fbWVudUxpc3RIYW5kbGUudW5sb2NrSGlnaGxpZ2h0KCk7XG4gIH1cblxuICAvLyBieUtleWJvYXJkIGZvcmNlcyBmb2N1cyBpbW1lZGlhdGVseSBhbmQgc2Nyb2xscyB0aGUgaXRlbSBpbnRvIHZpZXcuXG4gIC8vIFdpdGggaXQgZmFsc2UsIHRoZSBoaWdobGlnaHQgbWlnaHQgYmUgZGVsYXllZCBkZXBlbmRpbmcgb24gbW91c2UgbW92ZW1lbnRcbiAgLy8gYW5kIHdvbid0IGNhdXNlIGFueXRoaW5nIHRvIHNjcm9sbC5cbiAgaGlnaGxpZ2h0KGJ5S2V5Ym9hcmQ6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgdGhpcy5fbWVudUxpc3RIYW5kbGUuaGlnaGxpZ2h0KGJ5S2V5Ym9hcmQpO1xuICB9XG5cbiAgdW5oaWdobGlnaHQoKSB7XG4gICAgdGhpcy5fbWVudUxpc3RIYW5kbGUudW5oaWdobGlnaHQoKTtcbiAgfVxuXG4gIG1vdmVDdXJzb3IoZGlyZWN0aW9uOiBEaXJlY3Rpb24sIHByZXZDdXJzb3JMb2NhdGlvbjogP1JlY3QpIHtcbiAgICB0aGlzLl9tZW51TGlzdEhhbmRsZS5tb3ZlQ3Vyc29yKGRpcmVjdGlvbiwgcHJldkN1cnNvckxvY2F0aW9uKTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IGVsID0gdGhpcy5fZWw7XG4gICAgLyo6OiBpZiAoIWVsKSB0aHJvdyBuZXcgRXJyb3IoKTsgKi9cblxuICAgIHRoaXMuX21lbnVMaXN0SGFuZGxlID0gKHRoaXMuY29udGV4dDogTWVudUxpc3RDb250ZXh0VmFsdWUpLnJlZ2lzdGVySXRlbShcbiAgICAgIHRoaXMucHJvcHMsXG4gICAgICB7XG4gICAgICAgIG5vdGlmeUhpZ2hsaWdodGVkOiAoXG4gICAgICAgICAgaGlnaGxpZ2h0ZWQ6IGJvb2xlYW4sXG4gICAgICAgICAgYnlLZXlib2FyZDogP2Jvb2xlYW4sXG4gICAgICAgICAgZGlyZWN0aW9uOiA/RGlyZWN0aW9uLFxuICAgICAgICAgIHByZXZDdXJzb3JMb2NhdGlvbjogP1JlY3RcbiAgICAgICAgKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7aGlnaGxpZ2h0ZWR9LCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoaGlnaGxpZ2h0ZWQgJiYgYnlLZXlib2FyZCkge1xuICAgICAgICAgICAgICBjb25zdCBlbCA9IHRoaXMuX2VsO1xuICAgICAgICAgICAgICAvKjo6IGlmICghZWwpIHRocm93IG5ldyBFcnJvcigpOyAqL1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIChlbDogYW55KS5zY3JvbGxJbnRvVmlld0lmTmVlZGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgKGVsOiBhbnkpLnNjcm9sbEludG9WaWV3SWZOZWVkZWQoKTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChlbC5zY3JvbGxJbnRvVmlldykge1xuICAgICAgICAgICAgICAgIGVsLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkhpZ2hsaWdodENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkhpZ2hsaWdodENoYW5nZShoaWdobGlnaHRlZCwge1xuICAgICAgICAgICAgICBieUtleWJvYXJkOiBieUtleWJvYXJkID09IG51bGwgPyB1bmRlZmluZWQgOiBieUtleWJvYXJkLFxuICAgICAgICAgICAgICBwcmV2Q3Vyc29yTG9jYXRpb246XG4gICAgICAgICAgICAgICAgcHJldkN1cnNvckxvY2F0aW9uID09IG51bGwgPyB1bmRlZmluZWQgOiBwcmV2Q3Vyc29yTG9jYXRpb24sXG4gICAgICAgICAgICAgIGRpcmVjdGlvbjogZGlyZWN0aW9uID09IG51bGwgPyB1bmRlZmluZWQgOiBkaXJlY3Rpb24sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG5vdGlmeUV2ZW50OiAoZXZlbnQ6IE1lbnVFdmVudCkgPT4ge1xuICAgICAgICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnY2hvc2VuJzpcbiAgICAgICAgICAgICAgLyo6OiBpZiAoIShldmVudCBpbnN0YW5jZW9mIENob3NlbkV2ZW50KSkgdGhyb3cgbmV3IEVycm9yKCk7ICovXG4gICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uSXRlbUNob3NlbikgdGhpcy5wcm9wcy5vbkl0ZW1DaG9zZW4oZXZlbnQpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkxlZnRQdXNoZWQpIHRoaXMucHJvcHMub25MZWZ0UHVzaGVkKGV2ZW50KTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uUmlnaHRQdXNoZWQpIHRoaXMucHJvcHMub25SaWdodFB1c2hlZChldmVudCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBlbFxuICAgICk7XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLl9tZW51TGlzdEhhbmRsZS51bnJlZ2lzdGVyKCk7XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgdGhpcy5fbWVudUxpc3RIYW5kbGUudXBkYXRlUHJvcHModGhpcy5wcm9wcyk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2NoaWxkcmVuLCBvbk1vdXNlTGVhdmV9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7aGlnaGxpZ2h0ZWR9ID0gdGhpcy5zdGF0ZTtcblxuICAgIGxldCBzdHlsZSA9IHRoaXMucHJvcHMuc3R5bGU7XG4gICAgbGV0IGNsYXNzTmFtZSA9IHRoaXMucHJvcHMuY2xhc3NOYW1lO1xuICAgIGlmIChoaWdobGlnaHRlZCkge1xuICAgICAgaWYgKHRoaXMucHJvcHMuaGlnaGxpZ2h0ZWRTdHlsZSkge1xuICAgICAgICBzdHlsZSA9IHsuLi5zdHlsZSwgLi4udGhpcy5wcm9wcy5oaWdobGlnaHRlZFN0eWxlfTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnByb3BzLmhpZ2hsaWdodGVkQ2xhc3NOYW1lKSB7XG4gICAgICAgIGNsYXNzTmFtZSA9IGAke2NsYXNzTmFtZSB8fCAnJ30gJHt0aGlzLnByb3BzLmhpZ2hsaWdodGVkQ2xhc3NOYW1lfWA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgcmVmPXt0aGlzLl9lbFNldHRlcn1cbiAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgb25DbGljaz17KCkgPT4gdGhpcy5fbWVudUxpc3RIYW5kbGUuaXRlbUNob3NlbigpfVxuICAgICAgICBvbk1vdXNlRW50ZXI9eygpID0+IHRoaXMuaGlnaGxpZ2h0KGZhbHNlKX1cbiAgICAgICAgb25Nb3VzZUxlYXZlPXtvbk1vdXNlTGVhdmUgfHwgKCgpID0+IHRoaXMudW5oaWdobGlnaHQoKSl9XG4gICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICAgIGFyaWEtaGFzcG9wdXA9e3RoaXMucHJvcHNbJ2FyaWEtaGFzcG9wdXAnXX1cbiAgICAgICAgYXJpYS1leHBhbmRlZD17dGhpcy5wcm9wc1snYXJpYS1leHBhbmRlZCddfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9NZW51SXRlbS5qcyJdLCJuYW1lcyI6WyJNZW51SXRlbSIsImhpZ2hsaWdodGVkIiwiZWwiLCJfZWwiLCJwcm9wcyIsImRvbVJlZiIsInN0YXRlIiwiX21lbnVMaXN0SGFuZGxlIiwidGFrZUtleWJvYXJkIiwicmVsZWFzZUtleWJvYXJkIiwibG9ja0hpZ2hsaWdodCIsInVubG9ja0hpZ2hsaWdodCIsImJ5S2V5Ym9hcmQiLCJoaWdobGlnaHQiLCJ1bmhpZ2hsaWdodCIsImRpcmVjdGlvbiIsInByZXZDdXJzb3JMb2NhdGlvbiIsIm1vdmVDdXJzb3IiLCJjb250ZXh0IiwicmVnaXN0ZXJJdGVtIiwibm90aWZ5SGlnaGxpZ2h0ZWQiLCJzZXRTdGF0ZSIsInNjcm9sbEludG9WaWV3SWZOZWVkZWQiLCJzY3JvbGxJbnRvVmlldyIsIm9uSGlnaGxpZ2h0Q2hhbmdlIiwidW5kZWZpbmVkIiwibm90aWZ5RXZlbnQiLCJldmVudCIsInR5cGUiLCJvbkl0ZW1DaG9zZW4iLCJvbkxlZnRQdXNoZWQiLCJvblJpZ2h0UHVzaGVkIiwidW5yZWdpc3RlciIsInVwZGF0ZVByb3BzIiwiY2hpbGRyZW4iLCJvbk1vdXNlTGVhdmUiLCJzdHlsZSIsImNsYXNzTmFtZSIsImhpZ2hsaWdodGVkU3R5bGUiLCJoaWdobGlnaHRlZENsYXNzTmFtZSIsIl9lbFNldHRlciIsIml0ZW1DaG9zZW4iLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsImZ1bmMiLCJzdHJpbmciLCJvYmplY3QiLCJpbmRleCIsIm51bWJlciIsIm5vZGUiLCJvbmVPZlR5cGUiLCJib29sIiwiTWVudUxpc3RDb250ZXh0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7O0FBRUE7O0FBR0E7O0FBQ0E7O0FBRUE7Ozs7Ozs7Ozs7SUFvQ3FCQSxROzs7Ozs7Ozs7Ozs7Ozs7OzhGQUVYO0FBQ05DLE1BQUFBLFdBQVcsRUFBRTtBQURQLEs7O2tHQTRCSSxVQUFDQyxF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LG1CQUFpQkQsc0JBQVVRLElBbEJWO0FBbUJqQixtQkFBaUJSLHNCQUFVUTtBQW5CVixDO2lDQUxBcEQsUSxpQkEyQkVxRCx5QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIEBmbG93ICovXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHtSZWYgYXMgUmVhY3RSZWYsIE5vZGUgYXMgUmVhY3ROb2RlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5pbXBvcnQgdHlwZSBNZW51RXZlbnQgZnJvbSAnLi9ldmVudHMvTWVudUV2ZW50JztcbmltcG9ydCBDaG9zZW5FdmVudCBmcm9tICcuL2V2ZW50cy9DaG9zZW5FdmVudCc7XG5pbXBvcnQge01lbnVMaXN0Q29udGV4dH0gZnJvbSAnLi9NZW51TGlzdCc7XG5pbXBvcnQgdHlwZSB7TWVudUxpc3RDb250ZXh0VmFsdWUsIE1lbnVMaXN0SGFuZGxlfSBmcm9tICcuL01lbnVMaXN0JztcbmltcG9ydCBzZXRSZWYgZnJvbSAnLi9saWIvc2V0UmVmJztcbmltcG9ydCB0eXBlIHtEaXJlY3Rpb24sIFJlY3R9IGZyb20gJy4vdHlwZXMnO1xuXG50eXBlIFN0YXRlID0ge1xuICBoaWdobGlnaHRlZDogYm9vbGVhbixcbn07XG5cbmV4cG9ydCB0eXBlIFByb3BzID0ge1xuICBvbkl0ZW1DaG9zZW4/OiAoZXZlbnQ6IENob3NlbkV2ZW50KSA9PiB2b2lkLFxuICBvbkxlZnRQdXNoZWQ/OiAoZXZlbnQ6IE1lbnVFdmVudCkgPT4gdm9pZCxcbiAgb25SaWdodFB1c2hlZD86IChldmVudDogTWVudUV2ZW50KSA9PiB2b2lkLFxuICBvbkhpZ2hsaWdodENoYW5nZT86IChcbiAgICBoaWdobGlnaHRlZDogYm9vbGVhbixcbiAgICBkZXRhaWxzOiB7XG4gICAgICBieUtleWJvYXJkPzogYm9vbGVhbixcbiAgICAgIHByZXZDdXJzb3JMb2NhdGlvbj86IFJlY3QsXG4gICAgICBkaXJlY3Rpb24/OiBEaXJlY3Rpb24sXG4gICAgfVxuICApID0+IHZvaWQsXG5cbiAgY2xhc3NOYW1lPzogc3RyaW5nLFxuICBzdHlsZT86IE9iamVjdCxcbiAgaGlnaGxpZ2h0ZWRDbGFzc05hbWU/OiBzdHJpbmcsXG4gIGhpZ2hsaWdodGVkU3R5bGU/OiBPYmplY3QsXG5cbiAgaW5kZXg/OiBudW1iZXIsXG4gIG9uTW91c2VMZWF2ZT86IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZCxcblxuICBjaGlsZHJlbj86IFJlYWN0Tm9kZSxcblxuICBkb21SZWY/OiBSZWFjdFJlZjwnZGl2Jz4sXG5cbiAgJ2FyaWEtaGFzcG9wdXAnPzogYm9vbGVhbixcbiAgJ2FyaWEtZXhwYW5kZWQnPzogYm9vbGVhbixcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1lbnVJdGVtIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFByb3BzLCBTdGF0ZT4ge1xuICBfbWVudUxpc3RIYW5kbGU6IE1lbnVMaXN0SGFuZGxlO1xuICBzdGF0ZSA9IHtcbiAgICBoaWdobGlnaHRlZDogZmFsc2UsXG4gIH07XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb25JdGVtQ2hvc2VuOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkhpZ2hsaWdodENoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25MZWZ0UHVzaGVkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvblJpZ2h0UHVzaGVkOiBQcm9wVHlwZXMuZnVuYyxcblxuICAgIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBzdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoaWdobGlnaHRlZENsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBoaWdobGlnaHRlZFN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuXG4gICAgaW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgb25Nb3VzZUxlYXZlOiBQcm9wVHlwZXMuZnVuYyxcblxuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcblxuICAgIGRvbVJlZjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm9iamVjdCwgUHJvcFR5cGVzLmZ1bmNdKSxcblxuICAgICdhcmlhLWhhc3BvcHVwJzogUHJvcFR5cGVzLmJvb2wsXG4gICAgJ2FyaWEtZXhwYW5kZWQnOiBQcm9wVHlwZXMuYm9vbCxcbiAgfTtcblxuICBzdGF0aWMgY29udGV4dFR5cGUgPSBNZW51TGlzdENvbnRleHQ7XG5cbiAgX2VsOiA/SFRNTERpdkVsZW1lbnQ7XG4gIF9lbFNldHRlciA9IChlbDogP0hUTUxEaXZFbGVtZW50KSA9PiB7XG4gICAgdGhpcy5fZWwgPSBlbDtcblxuICAgIGlmICh0aGlzLnByb3BzLmRvbVJlZikge1xuICAgICAgc2V0UmVmKHRoaXMucHJvcHMuZG9tUmVmLCBlbCk7XG4gICAgfVxuICB9O1xuXG4gIGhhc0hpZ2hsaWdodCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5oaWdobGlnaHRlZDtcbiAgfVxuXG4gIHRha2VLZXlib2FyZCgpIHtcbiAgICB0aGlzLl9tZW51TGlzdEhhbmRsZS50YWtlS2V5Ym9hcmQoKTtcbiAgfVxuXG4gIHJlbGVhc2VLZXlib2FyZCgpIHtcbiAgICB0aGlzLl9tZW51TGlzdEhhbmRsZS5yZWxlYXNlS2V5Ym9hcmQoKTtcbiAgfVxuXG4gIGxvY2tIaWdobGlnaHQoKSB7XG4gICAgdGhpcy5fbWVudUxpc3RIYW5kbGUubG9ja0hpZ2hsaWdodCgpO1xuICB9XG5cbiAgdW5sb2NrSGlnaGxpZ2h0KCkge1xuICAgIHRoaXMuX21lbnVMaXN0SGFuZGxlLnVubG9ja0hpZ2hsaWdodCgpO1xuICB9XG5cbiAgLy8gYnlLZXlib2FyZCBmb3JjZXMgZm9jdXMgaW1tZWRpYXRlbHkgYW5kIHNjcm9sbHMgdGhlIGl0ZW0gaW50byB2aWV3LlxuICAvLyBXaXRoIGl0IGZhbHNlLCB0aGUgaGlnaGxpZ2h0IG1pZ2h0IGJlIGRlbGF5ZWQgZGVwZW5kaW5nIG9uIG1vdXNlIG1vdmVtZW50XG4gIC8vIGFuZCB3b24ndCBjYXVzZSBhbnl0aGluZyB0byBzY3JvbGwuXG4gIGhpZ2hsaWdodChieUtleWJvYXJkOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIHRoaXMuX21lbnVMaXN0SGFuZGxlLmhpZ2hsaWdodChieUtleWJvYXJkKTtcbiAgfVxuXG4gIHVuaGlnaGxpZ2h0KCkge1xuICAgIHRoaXMuX21lbnVMaXN0SGFuZGxlLnVuaGlnaGxpZ2h0KCk7XG4gIH1cblxuICBtb3ZlQ3Vyc29yKGRpcmVjdGlvbjogRGlyZWN0aW9uLCBwcmV2Q3Vyc29yTG9jYXRpb246ID9SZWN0KSB7XG4gICAgdGhpcy5fbWVudUxpc3RIYW5kbGUubW92ZUN1cnNvcihkaXJlY3Rpb24sIHByZXZDdXJzb3JMb2NhdGlvbik7XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuX2VsO1xuICAgIC8qOjogaWYgKCFlbCkgdGhyb3cgbmV3IEVycm9yKCk7ICovXG5cbiAgICB0aGlzLl9tZW51TGlzdEhhbmRsZSA9ICh0aGlzLmNvbnRleHQ6IE1lbnVMaXN0Q29udGV4dFZhbHVlKS5yZWdpc3Rlckl0ZW0oXG4gICAgICB0aGlzLnByb3BzLFxuICAgICAge1xuICAgICAgICBub3RpZnlIaWdobGlnaHRlZDogKFxuICAgICAgICAgIGhpZ2hsaWdodGVkOiBib29sZWFuLFxuICAgICAgICAgIGJ5S2V5Ym9hcmQ6ID9ib29sZWFuLFxuICAgICAgICAgIGRpcmVjdGlvbjogP0RpcmVjdGlvbixcbiAgICAgICAgICBwcmV2Q3Vyc29yTG9jYXRpb246ID9SZWN0XG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe2hpZ2hsaWdodGVkfSwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGhpZ2hsaWdodGVkICYmIGJ5S2V5Ym9hcmQpIHtcbiAgICAgICAgICAgICAgY29uc3QgZWwgPSB0aGlzLl9lbDtcbiAgICAgICAgICAgICAgLyo6OiBpZiAoIWVsKSB0aHJvdyBuZXcgRXJyb3IoKTsgKi9cbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiAoZWw6IGFueSkuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIChlbDogYW55KS5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKCk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWwuc2Nyb2xsSW50b1ZpZXcpIHtcbiAgICAgICAgICAgICAgICBlbC5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKHRoaXMucHJvcHMub25IaWdobGlnaHRDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25IaWdobGlnaHRDaGFuZ2UoaGlnaGxpZ2h0ZWQsIHtcbiAgICAgICAgICAgICAgYnlLZXlib2FyZDogYnlLZXlib2FyZCA9PSBudWxsID8gdW5kZWZpbmVkIDogYnlLZXlib2FyZCxcbiAgICAgICAgICAgICAgcHJldkN1cnNvckxvY2F0aW9uOlxuICAgICAgICAgICAgICAgIHByZXZDdXJzb3JMb2NhdGlvbiA9PSBudWxsID8gdW5kZWZpbmVkIDogcHJldkN1cnNvckxvY2F0aW9uLFxuICAgICAgICAgICAgICBkaXJlY3Rpb246IGRpcmVjdGlvbiA9PSBudWxsID8gdW5kZWZpbmVkIDogZGlyZWN0aW9uLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBub3RpZnlFdmVudDogKGV2ZW50OiBNZW51RXZlbnQpID0+IHtcbiAgICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2Nob3Nlbic6XG4gICAgICAgICAgICAgIC8qOjogaWYgKCEoZXZlbnQgaW5zdGFuY2VvZiBDaG9zZW5FdmVudCkpIHRocm93IG5ldyBFcnJvcigpOyAqL1xuICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkl0ZW1DaG9zZW4pIHRoaXMucHJvcHMub25JdGVtQ2hvc2VuKGV2ZW50KTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25MZWZ0UHVzaGVkKSB0aGlzLnByb3BzLm9uTGVmdFB1c2hlZChldmVudCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vblJpZ2h0UHVzaGVkKSB0aGlzLnByb3BzLm9uUmlnaHRQdXNoZWQoZXZlbnQpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZWxcbiAgICApO1xuICB9XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgdGhpcy5fbWVudUxpc3RIYW5kbGUudW5yZWdpc3RlcigpO1xuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgIHRoaXMuX21lbnVMaXN0SGFuZGxlLnVwZGF0ZVByb3BzKHRoaXMucHJvcHMpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtjaGlsZHJlbiwgb25Nb3VzZUxlYXZlfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge2hpZ2hsaWdodGVkfSA9IHRoaXMuc3RhdGU7XG5cbiAgICBsZXQgc3R5bGUgPSB0aGlzLnByb3BzLnN0eWxlO1xuICAgIGxldCBjbGFzc05hbWUgPSB0aGlzLnByb3BzLmNsYXNzTmFtZTtcbiAgICBpZiAoaGlnaGxpZ2h0ZWQpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLmhpZ2hsaWdodGVkU3R5bGUpIHtcbiAgICAgICAgc3R5bGUgPSB7Li4uc3R5bGUsIC4uLnRoaXMucHJvcHMuaGlnaGxpZ2h0ZWRTdHlsZX07XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5wcm9wcy5oaWdobGlnaHRlZENsYXNzTmFtZSkge1xuICAgICAgICBjbGFzc05hbWUgPSBgJHtjbGFzc05hbWUgfHwgJyd9ICR7dGhpcy5wcm9wcy5oaWdobGlnaHRlZENsYXNzTmFtZX1gO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIHJlZj17dGhpcy5fZWxTZXR0ZXJ9XG4gICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHRoaXMuX21lbnVMaXN0SGFuZGxlLml0ZW1DaG9zZW4oKX1cbiAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiB0aGlzLmhpZ2hsaWdodChmYWxzZSl9XG4gICAgICAgIG9uTW91c2VMZWF2ZT17b25Nb3VzZUxlYXZlIHx8ICgoKSA9PiB0aGlzLnVuaGlnaGxpZ2h0KCkpfVxuICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICBhcmlhLWhhc3BvcHVwPXt0aGlzLnByb3BzWydhcmlhLWhhc3BvcHVwJ119XG4gICAgICAgIGFyaWEtZXhwYW5kZWQ9e3RoaXMucHJvcHNbJ2FyaWEtZXhwYW5kZWQnXX1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuIl19
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

@@ -24,4 +26,6 @@

var _react = _interopRequireDefault(require("react"));
var React = _interopRequireWildcard(require("react"));
var ReactDOM = _interopRequireWildcard(require("react-dom"));
var _propTypes = _interopRequireDefault(require("prop-types"));

@@ -45,6 +49,5 @@

function _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; } }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
var MenuListContext = /*#__PURE__*/_react["default"].createContext(null);
var MenuListContext = /*#__PURE__*/React.createContext(null);
exports.MenuListContext = MenuListContext;

@@ -72,3 +75,3 @@

(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_keyboardTakenByIndex", void 0);
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_elRef", /*#__PURE__*/_react["default"].createRef());
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_elRef", /*#__PURE__*/React.createRef());
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_menuListContext", {

@@ -255,3 +258,5 @@ registerItem: function registerItem(props, control, el) {

})]).takeUntilBy(this._stopper).onValue(function (event) {
return _this2._key(event);
ReactDOM.unstable_batchedUpdates(function () {
_this2._key(event);
});
});

@@ -457,6 +462,6 @@

value: function render() {
return /*#__PURE__*/_react["default"].createElement("div", {
return /*#__PURE__*/React.createElement("div", {
role: "menu",
ref: this._elRef
}, /*#__PURE__*/_react["default"].createElement(MenuListContext.Provider, {
}, /*#__PURE__*/React.createElement(MenuListContext.Provider, {
value: this._menuListContext

@@ -467,3 +472,3 @@ }, this.props.children));

return MenuList;
}(_react["default"].Component);
}(React.Component);

@@ -478,2 +483,2 @@ exports["default"] = MenuList;

(0, _defineProperty2["default"])(MenuList, "contextType", _MenuListInspector.MenuListInspectorContext);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9NZW51TGlzdC5qcyJdLCJuYW1lcyI6WyJNZW51TGlzdENvbnRleHQiLCJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJNZW51TGlzdCIsImNyZWF0ZVJlZiIsInJlZ2lzdGVySXRlbSIsInByb3BzIiwiY29udHJvbCIsImVsIiwiaXRlbSIsInJlZ2lzdGVyIiwiaSIsImluZGV4IiwiX2xpc3RJdGVtcyIsIl9pdGVtIiwiY29tcGFyZURvY3VtZW50UG9zaXRpb24iLCJOb2RlIiwiRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HIiwicHVzaCIsInNwbGljZSIsIl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCIsIl9sb2NrZWRIaWdobGlnaHRlZEluZGV4IiwiX2tleWJvYXJkVGFrZW5CeUluZGV4IiwibWVudUxpc3RIYW5kbGUiLCJoaWdobGlnaHQiLCJieUtleWJvYXJkIiwiaW5kZXhPZiIsIkVycm9yIiwiX25hdHVyYWxIaWdobGlnaHQiLCJ1bmhpZ2hsaWdodCIsIml0ZW1DaG9zZW4iLCJfZGlzcGF0Y2hFdmVudCIsIkNob3NlbkV2ZW50IiwidGFrZUtleWJvYXJkIiwicmVsZWFzZUtleWJvYXJkIiwibG9ja0hpZ2hsaWdodCIsIl9sb2NrSGlnaGxpZ2h0IiwidW5sb2NrSGlnaGxpZ2h0IiwibW92ZUN1cnNvciIsImRpcmVjdGlvbiIsInByZXZDdXJzb3JMb2NhdGlvbiIsInVwZGF0ZVByb3BzIiwibmV3UHJvcHMiLCJvbGRJbmRleCIsImlzTmF0dXJhbEhpZ2hsaWdodEluZGV4IiwiaXNMb2NrZWRIaWdobGlnaHRJbmRleCIsImlzS2V5Ym9hcmRUYWtlbkJ5SW5kZXgiLCJ1bnJlZ2lzdGVyIiwibmV3SW5kZXgiLCJjb250ZXh0IiwiaXNFbnRlck9yQXJyb3dLZXkiLCJlIiwid2hpY2giLCJfZWxSZWYiLCJjdXJyZW50IiwiS2VmaXIiLCJtZXJnZSIsImZyb21FdmVudHMiLCJ3aW5kb3ciLCJmaWx0ZXIiLCJjb250YWlucyIsInRhcmdldCIsInRha2VVbnRpbEJ5IiwiX3N0b3BwZXIiLCJvblZhbHVlIiwiZXZlbnQiLCJfa2V5IiwicGFyZW50Q3R4IiwiX3BhcmVudEN0eCIsInJlZ2lzdGVyTWVudUxpc3QiLCJkZXN0cm95IiwidW5yZWdpc3Rlck1lbnVMaXN0IiwidmlzaWJsZUhpZ2hsaWdodGVkSW5kZXgiLCJfZ2V0VmlzaWJsZUhpZ2hsaWdodGVkSW5kZXgiLCJub3RpZnlIaWdobGlnaHRlZCIsIm5ld1Zpc2libGVIaWdobGlnaHRlZEluZGV4Iiwibm90aWZ5RXZlbnQiLCJjYW5jZWxCdWJibGUiLCJ0eXBlIiwib25JdGVtQ2hvc2VuIiwib25MZWZ0UHVzaGVkIiwib25SaWdodFB1c2hlZCIsImRpc3BhdGNoRXZlbnQiLCJsZW5ndGgiLCJtRXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsIk1lbnVFdmVudCIsImRlZmF1bHRQcmV2ZW50ZWQiLCJfbWVudUxpc3RDb250ZXh0IiwiY2hpbGRyZW4iLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJmdW5jIiwibm9kZSIsIk1lbnVMaXN0SW5zcGVjdG9yQ29udGV4dCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFFQTs7Ozs7O0FBdUNPLElBQU1BLGVBQWUsZ0JBQUdDLGtCQUFNQyxhQUFOLENBQTJDLElBQTNDLENBQXhCOzs7O0lBU2NDLFE7Ozs7Ozs7Ozs7Ozs7OztpR0FRUiwrQjttR0FJTixFOzs7OzRHQU9JRixrQkFBTUcsU0FBTixFO3lHQVVnQztBQUN2Q0MsTUFBQUEsWUFBWSxFQUFFLHNCQUFDQyxLQUFELEVBQVFDLE9BQVIsRUFBaUJDLEVBQWpCLEVBQXdCO0FBQ3BDLFlBQU1DLElBQUksR0FBRztBQUFDSCxVQUFBQSxLQUFLLEVBQUxBLEtBQUQ7QUFBUUMsVUFBQUEsT0FBTyxFQUFQQSxPQUFSO0FBQWlCQyxVQUFBQSxFQUFFLEVBQUZBO0FBQWpCLFNB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RUFBZ0NXLFNBQWhDLEVBQTJDQyxrQkFBM0M7QUFDRCxXQUxELE1BS087QUFDTCxpQkFBS1osaUJBQUwsQ0FDRSxLQUFLUix3QkFBTCxHQUFnQyxDQURsQyxFQUVFLElBRkYsRUFHRW1CLFNBSEYsRUFJRUMsa0JBSkY7QUFNRDs7QUFDRDtBQW5DSjtBQXFDRDs7O21DQUV1QjtBQUN0QixhQUFPLEtBQUtpQywyQkFBTCxNQUFzQyxJQUE3QztBQUNEOzs7NkJBRVE7QUFDUCwwQkFDRTtBQUFLLFFBQUEsSUFBSSxFQUFDLE1BQVY7QUFBaUIsUUFBQSxHQUFHLEVBQUUsS0FBS3BCO0FBQTNCLHNCQUNFLGdDQUFDLGVBQUQsQ0FBaUIsUUFBakI7QUFBMEIsUUFBQSxLQUFLLEVBQUUsS0FBS29DO0FBQXRDLFNBQ0csS0FBS25GLEtBQUwsQ0FBV29GLFFBRGQsQ0FERixDQURGO0FBT0Q7OztFQW5hbUN6RixrQkFBTTBGLFM7OztpQ0FBdkJ4RixRLGVBQ0E7QUFDakI0RSxFQUFBQSxZQUFZLEVBQUVhLHNCQUFVQyxJQURQO0FBRWpCYixFQUFBQSxZQUFZLEVBQUVZLHNCQUFVQyxJQUZQO0FBR2pCWixFQUFBQSxhQUFhLEVBQUVXLHNCQUFVQyxJQUhSO0FBSWpCSCxFQUFBQSxRQUFRLEVBQUVFLHNCQUFVRTtBQUpILEM7aUNBREEzRixRLGlCQTJCRTRGLDJDIiwic291cmNlc0NvbnRlbnQiOlsiLyogQGZsb3cgKi9cblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHtOb2RlIGFzIFJlYWN0Tm9kZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBLZWZpciBmcm9tICdrZWZpcic7XG5pbXBvcnQga2VmaXJTdG9wcGVyIGZyb20gJ2tlZmlyLXN0b3BwZXInO1xuaW1wb3J0IGZpbmRJbmRleCBmcm9tICdhcnJheS1maW5kLWluZGV4JztcbmltcG9ydCBmcm9tRXZlbnRzQ2FwdHVyZSBmcm9tICcuL2xpYi9mcm9tRXZlbnRzQ2FwdHVyZSc7XG5cbmltcG9ydCBNZW51RXZlbnQgZnJvbSAnLi9ldmVudHMvTWVudUV2ZW50JztcbmltcG9ydCBDaG9zZW5FdmVudCBmcm9tICcuL2V2ZW50cy9DaG9zZW5FdmVudCc7XG5pbXBvcnQgdHlwZSB7UHJvcHMgYXMgTWVudUl0ZW1Qcm9wc30gZnJvbSAnLi9NZW51SXRlbSc7XG5pbXBvcnQge01lbnVMaXN0SW5zcGVjdG9yQ29udGV4dH0gZnJvbSAnLi9NZW51TGlzdEluc3BlY3Rvcic7XG5pbXBvcnQgdHlwZSB7TWVudUxpc3RJbnNwZWN0b3JDb250ZXh0VmFsdWV9IGZyb20gJy4vTWVudUxpc3RJbnNwZWN0b3InO1xuaW1wb3J0IHR5cGUge0RpcmVjdGlvbiwgUmVjdH0gZnJvbSAnLi90eXBlcyc7XG5cbi8vIFRoaXMgdHlwZSBvZiBvYmplY3QgaXMgZ2l2ZW4gdG8gYSBNZW51SXRlbSB0byB0YWxrIHRvIHRoZSBNZW51TGlzdC5cbmV4cG9ydCB0eXBlIE1lbnVMaXN0SGFuZGxlID0ge1xuICBoaWdobGlnaHQoYnlLZXlib2FyZDogYm9vbGVhbik6IHZvaWQsXG4gIHVuaGlnaGxpZ2h0KCk6IHZvaWQsXG4gIG1vdmVDdXJzb3IoZGlyZWN0aW9uOiBEaXJlY3Rpb24sIHByZXZDdXJzb3JMb2NhdGlvbjogP1JlY3QpOiB2b2lkLFxuICBpdGVtQ2hvc2VuKCk6IHZvaWQsXG4gIHRha2VLZXlib2FyZCgpOiB2b2lkLFxuICByZWxlYXNlS2V5Ym9hcmQoKTogdm9pZCxcbiAgbG9ja0hpZ2hsaWdodCgpOiB2b2lkLFxuICB1bmxvY2tIaWdobGlnaHQoKTogdm9pZCxcbiAgdXBkYXRlUHJvcHMocHJvcHM6IE1lbnVJdGVtUHJvcHMpOiB2b2lkLFxuICB1bnJlZ2lzdGVyKCk6IHZvaWQsXG59O1xuXG4vLyBUaGlzIHR5cGUgb2Ygb2JqZWN0IGlzIGdpdmVuIHRvIGEgTWVudUxpc3QgdG8gdGFsayB0byBhIE1lbnVJdGVtLlxuZXhwb3J0IHR5cGUgTWVudUl0ZW1Db250cm9sID0ge1xuICBub3RpZnlIaWdobGlnaHRlZChcbiAgICBoaWdobGlnaHRlZDogYm9vbGVhbixcbiAgICBieUtleWJvYXJkOiA/Ym9vbGVhbixcbiAgICBkaXJlY3Rpb246ID9EaXJlY3Rpb24sXG4gICAgcHJldkN1cnNvckxvY2F0aW9uOiA/UmVjdFxuICApOiB2b2lkLFxuICBub3RpZnlFdmVudChldmVudDogTWVudUV2ZW50KTogdm9pZCxcbn07XG5cbi8vIFRoaXMgaXMgdGhlIHR5cGUgb2YgdGhlIG9iamVjdCB0aGF0IE1lbnVMaXN0IGdpdmVzIGFzIGNvbnRleHQgdG8gaXRzXG4vLyBkZXNjZW5kYW50cy5cbmV4cG9ydCB0eXBlIE1lbnVMaXN0Q29udGV4dFZhbHVlID0ge1xuICByZWdpc3Rlckl0ZW0oXG4gICAgcHJvcHM6IE1lbnVJdGVtUHJvcHMsXG4gICAgY29udHJvbDogTWVudUl0ZW1Db250cm9sLFxuICAgIGVsOiBIVE1MRWxlbWVudFxuICApOiBNZW51TGlzdEhhbmRsZSxcbn07XG5cbmV4cG9ydCBjb25zdCBNZW51TGlzdENvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0PD9NZW51TGlzdENvbnRleHRWYWx1ZT4obnVsbCk7XG5cbmV4cG9ydCB0eXBlIFByb3BzID0ge1xuICBvbkl0ZW1DaG9zZW4/OiAoZXZlbnQ6IENob3NlbkV2ZW50KSA9PiB2b2lkLFxuICBvbkxlZnRQdXNoZWQ/OiAoZXZlbnQ6IE1lbnVFdmVudCkgPT4gdm9pZCxcbiAgb25SaWdodFB1c2hlZD86IChldmVudDogTWVudUV2ZW50KSA9PiB2b2lkLFxuICBjaGlsZHJlbj86IFJlYWN0Tm9kZSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1lbnVMaXN0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFByb3BzPiB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb25JdGVtQ2hvc2VuOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkxlZnRQdXNoZWQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uUmlnaHRQdXNoZWQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcbiAgfTtcblxuICBfc3RvcHBlciA9IGtlZmlyU3RvcHBlcigpO1xuICBfbGlzdEl0ZW1zOiBBcnJheTx7XG4gICAgcHJvcHM6IE1lbnVJdGVtUHJvcHMsXG4gICAgY29udHJvbDogTWVudUl0ZW1Db250cm9sLFxuICB9PiA9IFtdO1xuXG4gIC8vIFRoZSBuYXR1cmFsIGhpZ2hsaWdodCBpcyB3aGVyZSB0aGUgaGlnaGxpZ2h0IHdvdWxkIGJlIGlmIG5vIGxvY2sgaXMgYWN0aXZlLlxuICBfbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXg6ID9udW1iZXI7XG4gIF9sb2NrZWRIaWdobGlnaHRlZEluZGV4OiA/bnVtYmVyO1xuICBfa2V5Ym9hcmRUYWtlbkJ5SW5kZXg6ID9udW1iZXI7XG5cbiAgX2VsUmVmID0gUmVhY3QuY3JlYXRlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xuXG4gIF9nZXRWaXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCgpOiA/bnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCAhPSBudWxsXG4gICAgICA/IHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXhcbiAgICAgIDogdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXg7XG4gIH1cblxuICBzdGF0aWMgY29udGV4dFR5cGUgPSBNZW51TGlzdEluc3BlY3RvckNvbnRleHQ7XG5cbiAgX21lbnVMaXN0Q29udGV4dDogTWVudUxpc3RDb250ZXh0VmFsdWUgPSB7XG4gICAgcmVnaXN0ZXJJdGVtOiAocHJvcHMsIGNvbnRyb2wsIGVsKSA9PiB7XG4gICAgICBjb25zdCBpdGVtID0ge3Byb3BzLCBjb250cm9sLCBlbH07XG5cbiAgICAgIGNvbnN0IHJlZ2lzdGVyID0gKCkgPT4ge1xuICAgICAgICBsZXQgaSA9IC0xO1xuICAgICAgICBpZiAoaXRlbS5wcm9wcy5pbmRleCA9PSBudWxsKSB7XG4gICAgICAgICAgaSA9IGZpbmRJbmRleChcbiAgICAgICAgICAgIHRoaXMuX2xpc3RJdGVtcyxcbiAgICAgICAgICAgIF9pdGVtID0+XG4gICAgICAgICAgICAgIChpdGVtLmVsLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKF9pdGVtLmVsKSAmXG4gICAgICAgICAgICAgICAgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkcpID09PVxuICAgICAgICAgICAgICAwXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpID0gZmluZEluZGV4KFxuICAgICAgICAgICAgdGhpcy5fbGlzdEl0ZW1zLFxuICAgICAgICAgICAgX2l0ZW0gPT5cbiAgICAgICAgICAgICAgX2l0ZW0ucHJvcHMuaW5kZXggIT0gbnVsbCAmJiBpdGVtLnByb3BzLmluZGV4IDwgX2l0ZW0ucHJvcHMuaW5kZXhcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpIDwgMCkge1xuICAgICAgICAgIHRoaXMuX2xpc3RJdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX2xpc3RJdGVtcy5zcGxpY2UoaSwgMCwgaXRlbSk7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggIT0gbnVsbCAmJlxuICAgICAgICAgICAgaSA8PSB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXgrKztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCAhPSBudWxsICYmXG4gICAgICAgICAgICBpIDw9IHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXhcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXgrKztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5fa2V5Ym9hcmRUYWtlbkJ5SW5kZXggIT0gbnVsbCAmJlxuICAgICAgICAgICAgaSA8PSB0aGlzLl9rZXlib2FyZFRha2VuQnlJbmRleFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5fa2V5Ym9hcmRUYWtlbkJ5SW5kZXgrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHJlZ2lzdGVyKCk7XG5cbiAgICAgIGNvbnN0IG1lbnVMaXN0SGFuZGxlOiBNZW51TGlzdEhhbmRsZSA9IHtcbiAgICAgICAgaGlnaGxpZ2h0OiAoYnlLZXlib2FyZDogYm9vbGVhbikgPT4ge1xuICAgICAgICAgIGNvbnN0IGkgPSB0aGlzLl9saXN0SXRlbXMuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgICBpZiAoaSA8IDApIHRocm93IG5ldyBFcnJvcignQWxyZWFkeSB1bnJlZ2lzdGVyZWQgTWVudUl0ZW0nKTtcbiAgICAgICAgICB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0KGksIGJ5S2V5Ym9hcmQpO1xuICAgICAgICB9LFxuICAgICAgICB1bmhpZ2hsaWdodDogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGkgPSB0aGlzLl9saXN0SXRlbXMuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgICBpZiAoaSA8IDApIHRocm93IG5ldyBFcnJvcignQWxyZWFkeSB1bnJlZ2lzdGVyZWQgTWVudUl0ZW0nKTtcbiAgICAgICAgICBpZiAodGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggPT09IGkpIHtcbiAgICAgICAgICAgIHRoaXMuX25hdHVyYWxIaWdobGlnaHQobnVsbCwgZmFsc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaXRlbUNob3NlbjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoRXZlbnQoY29udHJvbCwgbmV3IENob3NlbkV2ZW50KCdjaG9zZW4nLCBmYWxzZSkpO1xuICAgICAgICB9LFxuICAgICAgICB0YWtlS2V5Ym9hcmQ6ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBpID0gdGhpcy5fbGlzdEl0ZW1zLmluZGV4T2YoaXRlbSk7XG4gICAgICAgICAgaWYgKGkgPCAwKSB0aHJvdyBuZXcgRXJyb3IoJ0FscmVhZHkgdW5yZWdpc3RlcmVkIE1lbnVJdGVtJyk7XG4gICAgICAgICAgdGhpcy5fa2V5Ym9hcmRUYWtlbkJ5SW5kZXggPSBpO1xuICAgICAgICB9LFxuICAgICAgICByZWxlYXNlS2V5Ym9hcmQ6ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBpID0gdGhpcy5fbGlzdEl0ZW1zLmluZGV4T2YoaXRlbSk7XG4gICAgICAgICAgaWYgKGkgPCAwKSB0aHJvdyBuZXcgRXJyb3IoJ0FscmVhZHkgdW5yZWdpc3RlcmVkIE1lbnVJdGVtJyk7XG4gICAgICAgICAgaWYgKHRoaXMuX2tleWJvYXJkVGFrZW5CeUluZGV4ID09PSBpKSB7XG4gICAgICAgICAgICB0aGlzLl9rZXlib2FyZFRha2VuQnlJbmRleCA9IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBsb2NrSGlnaGxpZ2h0OiAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgaSA9IHRoaXMuX2xpc3RJdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAgIGlmIChpIDwgMCkgdGhyb3cgbmV3IEVycm9yKCdBbHJlYWR5IHVucmVnaXN0ZXJlZCBNZW51SXRlbScpO1xuICAgICAgICAgIHRoaXMuX2xvY2tIaWdobGlnaHQoaSk7XG4gICAgICAgIH0sXG4gICAgICAgIHVubG9ja0hpZ2hsaWdodDogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGkgPSB0aGlzLl9saXN0SXRlbXMuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgICBpZiAoaSA8IDApIHRocm93IG5ldyBFcnJvcignQWxyZWFkeSB1bnJlZ2lzdGVyZWQgTWVudUl0ZW0nKTtcbiAgICAgICAgICBpZiAodGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCA9PT0gaSkge1xuICAgICAgICAgICAgdGhpcy5fbG9ja0hpZ2hsaWdodChudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1vdmVDdXJzb3I6IChkaXJlY3Rpb246IERpcmVjdGlvbiwgcHJldkN1cnNvckxvY2F0aW9uOiA/UmVjdCkgPT4ge1xuICAgICAgICAgIHRoaXMubW92ZUN1cnNvcihkaXJlY3Rpb24sIHByZXZDdXJzb3JMb2NhdGlvbik7XG4gICAgICAgIH0sXG4gICAgICAgIHVwZGF0ZVByb3BzOiAobmV3UHJvcHM6IE1lbnVJdGVtUHJvcHMpID0+IHtcbiAgICAgICAgICBpZiAoaXRlbS5wcm9wcy5pbmRleCAhPT0gbmV3UHJvcHMuaW5kZXgpIHtcbiAgICAgICAgICAgIGNvbnN0IG9sZEluZGV4ID0gdGhpcy5fbGlzdEl0ZW1zLmluZGV4T2YoaXRlbSk7XG4gICAgICAgICAgICBjb25zdCBpc05hdHVyYWxIaWdobGlnaHRJbmRleCA9XG4gICAgICAgICAgICAgIHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4ID09PSBvbGRJbmRleDtcbiAgICAgICAgICAgIGNvbnN0IGlzTG9ja2VkSGlnaGxpZ2h0SW5kZXggPVxuICAgICAgICAgICAgICB0aGlzLl9sb2NrZWRIaWdobGlnaHRlZEluZGV4ID09PSBvbGRJbmRleDtcbiAgICAgICAgICAgIGNvbnN0IGlzS2V5Ym9hcmRUYWtlbkJ5SW5kZXggPVxuICAgICAgICAgICAgICB0aGlzLl9rZXlib2FyZFRha2VuQnlJbmRleCA9PT0gb2xkSW5kZXg7XG5cbiAgICAgICAgICAgIG1lbnVMaXN0SGFuZGxlLnVucmVnaXN0ZXIoKTtcbiAgICAgICAgICAgIHByb3BzID0gbmV3UHJvcHM7XG4gICAgICAgICAgICBpdGVtLnByb3BzID0gbmV3UHJvcHM7XG4gICAgICAgICAgICByZWdpc3RlcigpO1xuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGlzTmF0dXJhbEhpZ2hsaWdodEluZGV4IHx8XG4gICAgICAgICAgICAgIGlzTG9ja2VkSGlnaGxpZ2h0SW5kZXggfHxcbiAgICAgICAgICAgICAgaXNLZXlib2FyZFRha2VuQnlJbmRleFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld0luZGV4ID0gdGhpcy5fbGlzdEl0ZW1zLmluZGV4T2YoaXRlbSk7XG4gICAgICAgICAgICAgIGlmIChpc05hdHVyYWxIaWdobGlnaHRJbmRleClcbiAgICAgICAgICAgICAgICB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCA9IG5ld0luZGV4O1xuICAgICAgICAgICAgICBpZiAoaXNMb2NrZWRIaWdobGlnaHRJbmRleClcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2NrZWRIaWdobGlnaHRlZEluZGV4ID0gbmV3SW5kZXg7XG4gICAgICAgICAgICAgIGlmIChpc0tleWJvYXJkVGFrZW5CeUluZGV4KSB0aGlzLl9rZXlib2FyZFRha2VuQnlJbmRleCA9IG5ld0luZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm9wcyA9IG5ld1Byb3BzO1xuICAgICAgICAgICAgaXRlbS5wcm9wcyA9IG5ld1Byb3BzO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgdW5yZWdpc3RlcjogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGkgPSB0aGlzLl9saXN0SXRlbXMuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgICBpZiAoaSA8IDApIHRocm93IG5ldyBFcnJvcignQWxyZWFkeSB1bnJlZ2lzdGVyZWQgTWVudUl0ZW0nKTtcbiAgICAgICAgICBpZiAoaSA9PT0gdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXgpIHtcbiAgICAgICAgICAgIHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4ID0gbnVsbDtcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggIT0gbnVsbCAmJlxuICAgICAgICAgICAgaSA8IHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4XG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleC0tO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaSA9PT0gdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCkge1xuICAgICAgICAgICAgdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCA9IG51bGw7XG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXggIT0gbnVsbCAmJlxuICAgICAgICAgICAgaSA8IHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXhcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXgtLTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGkgPT09IHRoaXMuX2tleWJvYXJkVGFrZW5CeUluZGV4KSB7XG4gICAgICAgICAgICB0aGlzLl9rZXlib2FyZFRha2VuQnlJbmRleCA9IG51bGw7XG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIHRoaXMuX2tleWJvYXJkVGFrZW5CeUluZGV4ICE9IG51bGwgJiZcbiAgICAgICAgICAgIGkgPCB0aGlzLl9rZXlib2FyZFRha2VuQnlJbmRleFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5fa2V5Ym9hcmRUYWtlbkJ5SW5kZXgtLTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fbGlzdEl0ZW1zLnNwbGljZShpLCAxKTtcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICByZXR1cm4gbWVudUxpc3RIYW5kbGU7XG4gICAgfSxcbiAgfTtcblxuICBfcGFyZW50Q3R4KCk6ID9NZW51TGlzdEluc3BlY3RvckNvbnRleHRWYWx1ZSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dDtcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IGlzRW50ZXJPckFycm93S2V5ID0gZSA9PlxuICAgICAgZS53aGljaCA9PT0gMTMgfHwgKDM3IDw9IGUud2hpY2ggJiYgZS53aGljaCA8PSA0MCk7XG4gICAgY29uc3QgZWwgPSB0aGlzLl9lbFJlZi5jdXJyZW50O1xuICAgIC8qOjogaWYgKCFlbCkgdGhyb3cgbmV3IEVycm9yKCk7ICovXG5cbiAgICAvLyBUaGUgb25seSB0aGluZ3MgdGhhdCBzaG91bGQgcmVjZWl2ZSBrZXlkb3duL2tleXByZXNzIGV2ZW50cyBiZWZvcmUgdXNcbiAgICAvLyBhcmUgb3VyIGNoaWxkcmVuLiBUaGlzIGFsbG93cyBhIE1lbnVJdGVtIHRvIGNvbnRhaW4gYSB0ZXh0IGlucHV0XG4gICAgLy8gd2hpY2ggc2VsZWN0aXZlbHkgc3RvcHMgcHJvcGFnYXRpb24gb24ga2V5IGV2ZW50cyBmb3IgZXhhbXBsZS5cbiAgICBLZWZpci5tZXJnZShbXG4gICAgICBLZWZpci5mcm9tRXZlbnRzKHdpbmRvdywgJ2tleWRvd24nKVxuICAgICAgICAuZmlsdGVyKGlzRW50ZXJPckFycm93S2V5KVxuICAgICAgICAuZmlsdGVyKGUgPT4gZWwuY29udGFpbnMoZS50YXJnZXQpKSxcbiAgICAgIGZyb21FdmVudHNDYXB0dXJlKHdpbmRvdywgJ2tleWRvd24nKVxuICAgICAgICAuZmlsdGVyKGlzRW50ZXJPckFycm93S2V5KVxuICAgICAgICAuZmlsdGVyKGUgPT4gIWVsLmNvbnRhaW5zKGUudGFyZ2V0KSksXG4gICAgXSlcbiAgICAgIC50YWtlVW50aWxCeSh0aGlzLl9zdG9wcGVyKVxuICAgICAgLm9uVmFsdWUoZXZlbnQgPT4gdGhpcy5fa2V5KGV2ZW50KSk7XG5cbiAgICBjb25zdCBwYXJlbnRDdHggPSB0aGlzLl9wYXJlbnRDdHgoKTtcbiAgICBpZiAocGFyZW50Q3R4KSB7XG4gICAgICBwYXJlbnRDdHgucmVnaXN0ZXJNZW51TGlzdCh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLl9zdG9wcGVyLmRlc3Ryb3koKTtcblxuICAgIGNvbnN0IHBhcmVudEN0eCA9IHRoaXMuX3BhcmVudEN0eCgpO1xuICAgIGlmIChwYXJlbnRDdHgpIHtcbiAgICAgIHBhcmVudEN0eC51bnJlZ2lzdGVyTWVudUxpc3QodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgX25hdHVyYWxIaWdobGlnaHQoXG4gICAgaW5kZXg6ID9udW1iZXIsXG4gICAgYnlLZXlib2FyZDogYm9vbGVhbixcbiAgICBkaXJlY3Rpb246ID9EaXJlY3Rpb24sXG4gICAgcHJldkN1cnNvckxvY2F0aW9uOiA/UmVjdFxuICApIHtcbiAgICBjb25zdCB2aXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCA9IHRoaXMuX2dldFZpc2libGVIaWdobGlnaHRlZEluZGV4KCk7XG5cbiAgICBpZiAodGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCAhPSBudWxsICYmIGJ5S2V5Ym9hcmQpIHtcbiAgICAgIHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXggPSBudWxsO1xuICAgIH1cbiAgICB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCA9IGluZGV4O1xuICAgIGlmICh0aGlzLl9sb2NrZWRIaWdobGlnaHRlZEluZGV4ID09IG51bGwpIHtcbiAgICAgIGlmIChpbmRleCAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuX2xpc3RJdGVtc1tpbmRleF0uY29udHJvbC5ub3RpZnlIaWdobGlnaHRlZChcbiAgICAgICAgICB0cnVlLFxuICAgICAgICAgIGJ5S2V5Ym9hcmQsXG4gICAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICAgIHByZXZDdXJzb3JMb2NhdGlvblxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKHZpc2libGVIaWdobGlnaHRlZEluZGV4ICE9IG51bGwgJiYgdmlzaWJsZUhpZ2hsaWdodGVkSW5kZXggIT0gaW5kZXgpIHtcbiAgICAgICAgdGhpcy5fbGlzdEl0ZW1zW3Zpc2libGVIaWdobGlnaHRlZEluZGV4XS5jb250cm9sLm5vdGlmeUhpZ2hsaWdodGVkKFxuICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX2xvY2tIaWdobGlnaHQoaW5kZXg6ID9udW1iZXIpIHtcbiAgICBpZiAoaW5kZXggPT09IHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXgpIHJldHVybjtcbiAgICBjb25zdCB2aXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCA9IHRoaXMuX2dldFZpc2libGVIaWdobGlnaHRlZEluZGV4KCk7XG4gICAgdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCA9IGluZGV4O1xuICAgIGNvbnN0IG5ld1Zpc2libGVIaWdobGlnaHRlZEluZGV4ID0gdGhpcy5fZ2V0VmlzaWJsZUhpZ2hsaWdodGVkSW5kZXgoKTtcbiAgICBpZiAodmlzaWJsZUhpZ2hsaWdodGVkSW5kZXggIT0gbnVsbCAmJiBuZXdWaXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCA9PSBudWxsKSB7XG4gICAgICAvLyBXaGVuIHVubG9ja2luZywgcHJlZmVyIHRvIGtlZXAgdGhlIGN1cnJlbnQgc2VsZWN0aW9uIG92ZXIgZGUtc2VsZWN0aW5nXG4gICAgICAvLyBldmVyeXRoaW5nLlxuICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggPSB2aXNpYmxlSGlnaGxpZ2h0ZWRJbmRleDtcbiAgICB9IGVsc2UgaWYgKHZpc2libGVIaWdobGlnaHRlZEluZGV4ICE9IG5ld1Zpc2libGVIaWdobGlnaHRlZEluZGV4KSB7XG4gICAgICBpZiAodmlzaWJsZUhpZ2hsaWdodGVkSW5kZXggIT0gbnVsbCkge1xuICAgICAgICB0aGlzLl9saXN0SXRlbXNbdmlzaWJsZUhpZ2hsaWdodGVkSW5kZXhdLmNvbnRyb2wubm90aWZ5SGlnaGxpZ2h0ZWQoXG4gICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChuZXdWaXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuX2xpc3RJdGVtc1tuZXdWaXNpYmxlSGlnaGxpZ2h0ZWRJbmRleF0uY29udHJvbC5ub3RpZnlIaWdobGlnaHRlZChcbiAgICAgICAgICB0cnVlLFxuICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5fbGlzdEl0ZW1zW1xuICAgICAgICAgIHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4XG4gICAgICAgIF0uY29udHJvbC5ub3RpZnlIaWdobGlnaHRlZCh0cnVlLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX2Rpc3BhdGNoRXZlbnQoY29udHJvbDogP01lbnVJdGVtQ29udHJvbCwgZXZlbnQ6IE1lbnVFdmVudCkge1xuICAgIGlmIChjb250cm9sKSB7XG4gICAgICBjb250cm9sLm5vdGlmeUV2ZW50KGV2ZW50KTtcbiAgICAgIGlmIChldmVudC5jYW5jZWxCdWJibGUpIHJldHVybjtcbiAgICB9XG4gICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICBjYXNlICdjaG9zZW4nOlxuICAgICAgICAvKjo6IGlmICghKGV2ZW50IGluc3RhbmNlb2YgQ2hvc2VuRXZlbnQpKSB0aHJvdyBuZXcgRXJyb3IoKTsgKi9cbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25JdGVtQ2hvc2VuKSB0aGlzLnByb3BzLm9uSXRlbUNob3NlbihldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgLy8gY2FzZSAndXAnOlxuICAgICAgLy8gICBicmVhaztcbiAgICAgIC8vIGNhc2UgJ2Rvd24nOlxuICAgICAgLy8gICBicmVhaztcbiAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkxlZnRQdXNoZWQpIHRoaXMucHJvcHMub25MZWZ0UHVzaGVkKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9uUmlnaHRQdXNoZWQpIHRoaXMucHJvcHMub25SaWdodFB1c2hlZChldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBpZiAoZXZlbnQuY2FuY2VsQnViYmxlKSByZXR1cm47XG4gICAgY29uc3QgcGFyZW50Q3R4ID0gdGhpcy5fcGFyZW50Q3R4KCk7XG4gICAgaWYgKHBhcmVudEN0eCkge1xuICAgICAgcGFyZW50Q3R4LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIF9rZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5fa2V5Ym9hcmRUYWtlbkJ5SW5kZXggIT0gbnVsbCB8fCB0aGlzLl9saXN0SXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdmlzaWJsZUhpZ2hsaWdodGVkSW5kZXggPSB0aGlzLl9nZXRWaXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCgpO1xuXG4gICAgLy8gZW50ZXIsIGxlZnQsIHJpZ2h0IGFjdGl2YXRlIGZvciB0aGUgY3VycmVudCB2aXNpYmx5IHNlbGVjdGVkIGl0ZW0uXG4gICAgLy8gdXAgYW5kIGRvd24gZGUtYWN0aXZhdGUgYW55IGxvY2tzIGluIHBsYWNlLCBzbyB0aGF0IHRoZXkgYWN0IGZyb20gdGhlIGxhc3RcbiAgICAvLyBuYXR1cmFsbHktc2VsZWN0ZWQgaXRlbS5cblxuICAgIGxldCBtRXZlbnQgPSBudWxsO1xuXG4gICAgc3dpdGNoIChldmVudC53aGljaCkge1xuICAgICAgY2FzZSAxMzogLy9lbnRlclxuICAgICAgICBpZiAodmlzaWJsZUhpZ2hsaWdodGVkSW5kZXggIT0gbnVsbCkge1xuICAgICAgICAgIG1FdmVudCA9IG5ldyBDaG9zZW5FdmVudCgnY2hvc2VuJywgdHJ1ZSk7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMzc6IC8vbGVmdFxuICAgICAgICBpZiAodmlzaWJsZUhpZ2hsaWdodGVkSW5kZXggIT0gbnVsbCkge1xuICAgICAgICAgIG1FdmVudCA9IG5ldyBNZW51RXZlbnQoJ2xlZnQnKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMzk6IC8vcmlnaHRcbiAgICAgICAgaWYgKHZpc2libGVIaWdobGlnaHRlZEluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgICBtRXZlbnQgPSBuZXcgTWVudUV2ZW50KCdyaWdodCcpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAzODogLy91cFxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5tb3ZlQ3Vyc29yKCd1cCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgNDA6IC8vZG93blxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5tb3ZlQ3Vyc29yKCdkb3duJyk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChtRXZlbnQpIHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPVxuICAgICAgICB2aXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCA9PSBudWxsXG4gICAgICAgICAgPyBudWxsXG4gICAgICAgICAgOiB0aGlzLl9saXN0SXRlbXNbdmlzaWJsZUhpZ2hsaWdodGVkSW5kZXhdLmNvbnRyb2w7XG4gICAgICB0aGlzLl9kaXNwYXRjaEV2ZW50KGNvbnRyb2wsIG1FdmVudCk7XG4gICAgICBpZiAobUV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAobUV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgfHwgbUV2ZW50LmNhbmNlbEJ1YmJsZSlcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgbW92ZUN1cnNvcihkaXJlY3Rpb246IERpcmVjdGlvbiwgcHJldkN1cnNvckxvY2F0aW9uOiA/UmVjdCkge1xuICAgIGlmICh0aGlzLl9saXN0SXRlbXMubGVuZ3RoID09IDApIHJldHVybjtcblxuICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7XG4gICAgICBjYXNlICd1cCc6XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCA9PSBudWxsIHx8XG4gICAgICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggPT0gMFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0KFxuICAgICAgICAgICAgdGhpcy5fbGlzdEl0ZW1zLmxlbmd0aCAtIDEsXG4gICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICAgICAgcHJldkN1cnNvckxvY2F0aW9uXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0KFxuICAgICAgICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggLSAxLFxuICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICAgIHByZXZDdXJzb3JMb2NhdGlvblxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkb3duJzpcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4ID09IG51bGwgfHxcbiAgICAgICAgICB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCA9PSB0aGlzLl9saXN0SXRlbXMubGVuZ3RoIC0gMVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0KDAsIHRydWUsIGRpcmVjdGlvbiwgcHJldkN1cnNvckxvY2F0aW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0KFxuICAgICAgICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggKyAxLFxuICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICAgIHByZXZDdXJzb3JMb2NhdGlvblxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgaGFzSGlnaGxpZ2h0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9nZXRWaXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCgpICE9IG51bGw7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgcm9sZT1cIm1lbnVcIiByZWY9e3RoaXMuX2VsUmVmfT5cbiAgICAgICAgPE1lbnVMaXN0Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17dGhpcy5fbWVudUxpc3RDb250ZXh0fT5cbiAgICAgICAgICB7dGhpcy5wcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgPC9NZW51TGlzdENvbnRleHQuUHJvdmlkZXI+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9NZW51TGlzdC5qcyJdLCJuYW1lcyI6WyJNZW51TGlzdENvbnRleHQiLCJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJNZW51TGlzdCIsImNyZWF0ZVJlZiIsInJlZ2lzdGVySXRlbSIsInByb3BzIiwiY29udHJvbCIsImVsIiwiaXRlbSIsInJlZ2lzdGVyIiwiaSIsImluZGV4IiwiX2xpc3RJdGVtcyIsIl9pdGVtIiwiY29tcGFyZURvY3VtZW50UG9zaXRpb24iLCJOb2RlIiwiRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HIiwicHVzaCIsInNwbGljZSIsIl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCIsIl9sb2NrZWRIaWdobGlnaHRlZEluZGV4IiwiX2tleWJvYXJkVGFrZW5CeUluZGV4IiwibWVudUxpc3RIYW5kbGUiLCJoaWdobGlnaHQiLCJieUtleWJvYXJkIiwiaW5kZXhPZiIsIkVycm9yIiwiX25hdHVyYWxIaWdobGlnaHQiLCJ1bmhpZ2hsaWdodCIsIml0ZW1DaG9zZW4iLCJfZGlzcGF0Y2hFdmVudCIsIkNob3NlbkV2ZW50IiwidGFrZUtleWJvYXJkIiwicmVsZWFzZUtleWJvYXJkIiwibG9ja0hpZ2hsaWdodCIsIl9sb2NrSGlnaGxpZ2h0IiwidW5sb2NrSGlnaGxpZ2h0IiwibW92ZUN1cnNvciIsImRpcmVjdGlvbiIsInByZXZDdXJzb3JMb2NhdGlvbiIsInVwZGF0ZVByb3BzIiwibmV3UHJvcHMiLCJvbGRJbmRleCIsImlzTmF0dXJhbEhpZ2hsaWdodEluZGV4IiwiaXNMb2NrZWRIaWdobGlnaHRJbmRleCIsImlzS2V5Ym9hcmRUYWtlbkJ5SW5kZXgiLCJ1bnJlZ2lzdGVyIiwibmV3SW5kZXgiLCJjb250ZXh0IiwiaXNFbnRlck9yQXJyb3dLZXkiLCJlIiwid2hpY2giLCJfZWxSZWYiLCJjdXJyZW50IiwiS2VmaXIiLCJtZXJnZSIsImZyb21FdmVudHMiLCJ3aW5kb3ciLCJmaWx0ZXIiLCJjb250YWlucyIsInRhcmdldCIsInRha2VVbnRpbEJ5IiwiX3N0b3BwZXIiLCJvblZhbHVlIiwiZXZlbnQiLCJSZWFjdERPTSIsInVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzIiwiX2tleSIsInBhcmVudEN0eCIsIl9wYXJlbnRDdHgiLCJyZWdpc3Rlck1lbnVMaXN0IiwiZGVzdHJveSIsInVucmVnaXN0ZXJNZW51TGlzdCIsInZpc2libGVIaWdobGlnaHRlZEluZGV4IiwiX2dldFZpc2libGVIaWdobGlnaHRlZEluZGV4Iiwibm90aWZ5SGlnaGxpZ2h0ZWQiLCJuZXdWaXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCIsIm5vdGlmeUV2ZW50IiwiY2FuY2VsQnViYmxlIiwidHlwZSIsIm9uSXRlbUNob3NlbiIsIm9uTGVmdFB1c2hlZCIsIm9uUmlnaHRQdXNoZWQiLCJkaXNwYXRjaEV2ZW50IiwibGVuZ3RoIiwibUV2ZW50IiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJNZW51RXZlbnQiLCJkZWZhdWx0UHJldmVudGVkIiwiX21lbnVMaXN0Q29udGV4dCIsImNoaWxkcmVuIiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwiZnVuYyIsIm5vZGUiLCJNZW51TGlzdEluc3BlY3RvckNvbnRleHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFFQTs7Ozs7O0FBdUNPLElBQU1BLGVBQWUsZ0JBQUdDLEtBQUssQ0FBQ0MsYUFBTixDQUEyQyxJQUEzQyxDQUF4Qjs7O0lBU2NDLFE7Ozs7Ozs7Ozs7Ozs7OztpR0FRUiwrQjttR0FJTixFOzs7OzRHQU9JRixLQUFLLENBQUNHLFNBQU4sRTt5R0FVZ0M7QUFDdkNDLE1BQUFBLFlBQVksRUFBRSxzQkFBQ0MsS0FBRCxFQUFRQyxPQUFSLEVBQWlCQyxFQUFqQixFQUF3QjtBQUNwQyxZQUFNQyxJQUFJLEdBQUc7QUFBQ0gsVUFBQUEsS0FBSyxFQUFMQSxLQUFEO0FBQVFDLFVB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LEVBSUVDLGtCQUpGO0FBTUQ7O0FBQ0Q7O0FBQ0YsYUFBSyxNQUFMO0FBQ0UsY0FDRSxLQUFLcEIsd0JBQUwsSUFBaUMsSUFBakMsSUFDQSxLQUFLQSx3QkFBTCxJQUFpQyxLQUFLUCxVQUFMLENBQWdCd0UsTUFBaEIsR0FBeUIsQ0FGNUQsRUFHRTtBQUNBLGlCQUFLekQsaUJBQUwsQ0FBdUIsQ0FBdkIsRUFBMEIsSUFBMUIsRUFBZ0NXLFNBQWhDLEVBQTJDQyxrQkFBM0M7QUFDRCxXQUxELE1BS087QUFDTCxpQkFBS1osaUJBQUwsQ0FDRSxLQUFLUix3QkFBTCxHQUFnQyxDQURsQyxFQUVFLElBRkYsRUFHRW1CLFNBSEYsRUFJRUMsa0JBSkY7QUFNRDs7QUFDRDtBQW5DSjtBQXFDRDs7O1dBRUQsd0JBQXdCO0FBQ3RCLGFBQU8sS0FBS21DLDJCQUFMLE1BQXNDLElBQTdDO0FBQ0Q7OztXQUVELGtCQUFTO0FBQ1AsMEJBQ0U7QUFBSyxRQUFBLElBQUksRUFBQyxNQUFWO0FBQWlCLFFBQUEsR0FBRyxFQUFFLEtBQUt0QjtBQUEzQixzQkFDRSxvQkFBQyxlQUFELENBQWlCLFFBQWpCO0FBQTBCLFFBQUEsS0FBSyxFQUFFLEtBQUtzQztBQUF0QyxTQUNHLEtBQUtyRixLQUFMLENBQVdzRixRQURkLENBREYsQ0FERjtBQU9EOzs7RUF2YW1DM0YsS0FBSyxDQUFDNEYsUzs7O2lDQUF2QjFGLFEsZUFDQTtBQUNqQjhFLEVBQUFBLFlBQVksRUFBRWEsc0JBQVVDLElBRFA7QUFFakJiLEVBQUFBLFlBQVksRUFBRVksc0JBQVVDLElBRlA7QUFHakJaLEVBQUFBLGFBQWEsRUFBRVcsc0JBQVVDLElBSFI7QUFJakJILEVBQUFBLFFBQVEsRUFBRUUsc0JBQVVFO0FBSkgsQztpQ0FEQTdGLFEsaUJBMkJFOEYsMkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHR5cGUge05vZGUgYXMgUmVhY3ROb2RlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEtlZmlyIGZyb20gJ2tlZmlyJztcbmltcG9ydCBrZWZpclN0b3BwZXIgZnJvbSAna2VmaXItc3RvcHBlcic7XG5pbXBvcnQgZmluZEluZGV4IGZyb20gJ2FycmF5LWZpbmQtaW5kZXgnO1xuaW1wb3J0IGZyb21FdmVudHNDYXB0dXJlIGZyb20gJy4vbGliL2Zyb21FdmVudHNDYXB0dXJlJztcblxuaW1wb3J0IE1lbnVFdmVudCBmcm9tICcuL2V2ZW50cy9NZW51RXZlbnQnO1xuaW1wb3J0IENob3NlbkV2ZW50IGZyb20gJy4vZXZlbnRzL0Nob3NlbkV2ZW50JztcbmltcG9ydCB0eXBlIHtQcm9wcyBhcyBNZW51SXRlbVByb3BzfSBmcm9tICcuL01lbnVJdGVtJztcbmltcG9ydCB7TWVudUxpc3RJbnNwZWN0b3JDb250ZXh0fSBmcm9tICcuL01lbnVMaXN0SW5zcGVjdG9yJztcbmltcG9ydCB0eXBlIHtNZW51TGlzdEluc3BlY3RvckNvbnRleHRWYWx1ZX0gZnJvbSAnLi9NZW51TGlzdEluc3BlY3Rvcic7XG5pbXBvcnQgdHlwZSB7RGlyZWN0aW9uLCBSZWN0fSBmcm9tICcuL3R5cGVzJztcblxuLy8gVGhpcyB0eXBlIG9mIG9iamVjdCBpcyBnaXZlbiB0byBhIE1lbnVJdGVtIHRvIHRhbGsgdG8gdGhlIE1lbnVMaXN0LlxuZXhwb3J0IHR5cGUgTWVudUxpc3RIYW5kbGUgPSB7XG4gIGhpZ2hsaWdodChieUtleWJvYXJkOiBib29sZWFuKTogdm9pZCxcbiAgdW5oaWdobGlnaHQoKTogdm9pZCxcbiAgbW92ZUN1cnNvcihkaXJlY3Rpb246IERpcmVjdGlvbiwgcHJldkN1cnNvckxvY2F0aW9uOiA/UmVjdCk6IHZvaWQsXG4gIGl0ZW1DaG9zZW4oKTogdm9pZCxcbiAgdGFrZUtleWJvYXJkKCk6IHZvaWQsXG4gIHJlbGVhc2VLZXlib2FyZCgpOiB2b2lkLFxuICBsb2NrSGlnaGxpZ2h0KCk6IHZvaWQsXG4gIHVubG9ja0hpZ2hsaWdodCgpOiB2b2lkLFxuICB1cGRhdGVQcm9wcyhwcm9wczogTWVudUl0ZW1Qcm9wcyk6IHZvaWQsXG4gIHVucmVnaXN0ZXIoKTogdm9pZCxcbn07XG5cbi8vIFRoaXMgdHlwZSBvZiBvYmplY3QgaXMgZ2l2ZW4gdG8gYSBNZW51TGlzdCB0byB0YWxrIHRvIGEgTWVudUl0ZW0uXG5leHBvcnQgdHlwZSBNZW51SXRlbUNvbnRyb2wgPSB7XG4gIG5vdGlmeUhpZ2hsaWdodGVkKFxuICAgIGhpZ2hsaWdodGVkOiBib29sZWFuLFxuICAgIGJ5S2V5Ym9hcmQ6ID9ib29sZWFuLFxuICAgIGRpcmVjdGlvbjogP0RpcmVjdGlvbixcbiAgICBwcmV2Q3Vyc29yTG9jYXRpb246ID9SZWN0XG4gICk6IHZvaWQsXG4gIG5vdGlmeUV2ZW50KGV2ZW50OiBNZW51RXZlbnQpOiB2b2lkLFxufTtcblxuLy8gVGhpcyBpcyB0aGUgdHlwZSBvZiB0aGUgb2JqZWN0IHRoYXQgTWVudUxpc3QgZ2l2ZXMgYXMgY29udGV4dCB0byBpdHNcbi8vIGRlc2NlbmRhbnRzLlxuZXhwb3J0IHR5cGUgTWVudUxpc3RDb250ZXh0VmFsdWUgPSB7XG4gIHJlZ2lzdGVySXRlbShcbiAgICBwcm9wczogTWVudUl0ZW1Qcm9wcyxcbiAgICBjb250cm9sOiBNZW51SXRlbUNvbnRyb2wsXG4gICAgZWw6IEhUTUxFbGVtZW50XG4gICk6IE1lbnVMaXN0SGFuZGxlLFxufTtcblxuZXhwb3J0IGNvbnN0IE1lbnVMaXN0Q29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQ8P01lbnVMaXN0Q29udGV4dFZhbHVlPihudWxsKTtcblxuZXhwb3J0IHR5cGUgUHJvcHMgPSB7XG4gIG9uSXRlbUNob3Nlbj86IChldmVudDogQ2hvc2VuRXZlbnQpID0+IHZvaWQsXG4gIG9uTGVmdFB1c2hlZD86IChldmVudDogTWVudUV2ZW50KSA9PiB2b2lkLFxuICBvblJpZ2h0UHVzaGVkPzogKGV2ZW50OiBNZW51RXZlbnQpID0+IHZvaWQsXG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWVudUxpc3QgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8UHJvcHM+IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBvbkl0ZW1DaG9zZW46IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uTGVmdFB1c2hlZDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25SaWdodFB1c2hlZDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICB9O1xuXG4gIF9zdG9wcGVyID0ga2VmaXJTdG9wcGVyKCk7XG4gIF9saXN0SXRlbXM6IEFycmF5PHtcbiAgICBwcm9wczogTWVudUl0ZW1Qcm9wcyxcbiAgICBjb250cm9sOiBNZW51SXRlbUNvbnRyb2wsXG4gIH0+ID0gW107XG5cbiAgLy8gVGhlIG5hdHVyYWwgaGlnaGxpZ2h0IGlzIHdoZXJlIHRoZSBoaWdobGlnaHQgd291bGQgYmUgaWYgbm8gbG9jayBpcyBhY3RpdmUuXG4gIF9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleDogP251bWJlcjtcbiAgX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXg6ID9udW1iZXI7XG4gIF9rZXlib2FyZFRha2VuQnlJbmRleDogP251bWJlcjtcblxuICBfZWxSZWYgPSBSZWFjdC5jcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XG5cbiAgX2dldFZpc2libGVIaWdobGlnaHRlZEluZGV4KCk6ID9udW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9sb2NrZWRIaWdobGlnaHRlZEluZGV4ICE9IG51bGxcbiAgICAgID8gdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleFxuICAgICAgOiB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleDtcbiAgfVxuXG4gIHN0YXRpYyBjb250ZXh0VHlwZSA9IE1lbnVMaXN0SW5zcGVjdG9yQ29udGV4dDtcblxuICBfbWVudUxpc3RDb250ZXh0OiBNZW51TGlzdENvbnRleHRWYWx1ZSA9IHtcbiAgICByZWdpc3Rlckl0ZW06IChwcm9wcywgY29udHJvbCwgZWwpID0+IHtcbiAgICAgIGNvbnN0IGl0ZW0gPSB7cHJvcHMsIGNvbnRyb2wsIGVsfTtcblxuICAgICAgY29uc3QgcmVnaXN0ZXIgPSAoKSA9PiB7XG4gICAgICAgIGxldCBpID0gLTE7XG4gICAgICAgIGlmIChpdGVtLnByb3BzLmluZGV4ID09IG51bGwpIHtcbiAgICAgICAgICBpID0gZmluZEluZGV4KFxuICAgICAgICAgICAgdGhpcy5fbGlzdEl0ZW1zLFxuICAgICAgICAgICAgX2l0ZW0gPT5cbiAgICAgICAgICAgICAgKGl0ZW0uZWwuY29tcGFyZURvY3VtZW50UG9zaXRpb24oX2l0ZW0uZWwpICZcbiAgICAgICAgICAgICAgICBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORykgPT09XG4gICAgICAgICAgICAgIDBcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGkgPSBmaW5kSW5kZXgoXG4gICAgICAgICAgICB0aGlzLl9saXN0SXRlbXMsXG4gICAgICAgICAgICBfaXRlbSA9PlxuICAgICAgICAgICAgICBfaXRlbS5wcm9wcy5pbmRleCAhPSBudWxsICYmIGl0ZW0ucHJvcHMuaW5kZXggPCBfaXRlbS5wcm9wcy5pbmRleFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGkgPCAwKSB7XG4gICAgICAgICAgdGhpcy5fbGlzdEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fbGlzdEl0ZW1zLnNwbGljZShpLCAwLCBpdGVtKTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCAhPSBudWxsICYmXG4gICAgICAgICAgICBpIDw9IHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4XG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCsrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLl9sb2NrZWRIaWdobGlnaHRlZEluZGV4ICE9IG51bGwgJiZcbiAgICAgICAgICAgIGkgPD0gdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCsrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLl9rZXlib2FyZFRha2VuQnlJbmRleCAhPSBudWxsICYmXG4gICAgICAgICAgICBpIDw9IHRoaXMuX2tleWJvYXJkVGFrZW5CeUluZGV4XG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLl9rZXlib2FyZFRha2VuQnlJbmRleCsrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgcmVnaXN0ZXIoKTtcblxuICAgICAgY29uc3QgbWVudUxpc3RIYW5kbGU6IE1lbnVMaXN0SGFuZGxlID0ge1xuICAgICAgICBoaWdobGlnaHQ6IChieUtleWJvYXJkOiBib29sZWFuKSA9PiB7XG4gICAgICAgICAgY29uc3QgaSA9IHRoaXMuX2xpc3RJdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAgIGlmIChpIDwgMCkgdGhyb3cgbmV3IEVycm9yKCdBbHJlYWR5IHVucmVnaXN0ZXJlZCBNZW51SXRlbScpO1xuICAgICAgICAgIHRoaXMuX25hdHVyYWxIaWdobGlnaHQoaSwgYnlLZXlib2FyZCk7XG4gICAgICAgIH0sXG4gICAgICAgIHVuaGlnaGxpZ2h0OiAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgaSA9IHRoaXMuX2xpc3RJdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAgIGlmIChpIDwgMCkgdGhyb3cgbmV3IEVycm9yKCdBbHJlYWR5IHVucmVnaXN0ZXJlZCBNZW51SXRlbScpO1xuICAgICAgICAgIGlmICh0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCA9PT0gaSkge1xuICAgICAgICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodChudWxsLCBmYWxzZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBpdGVtQ2hvc2VuOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fZGlzcGF0Y2hFdmVudChjb250cm9sLCBuZXcgQ2hvc2VuRXZlbnQoJ2Nob3NlbicsIGZhbHNlKSk7XG4gICAgICAgIH0sXG4gICAgICAgIHRha2VLZXlib2FyZDogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGkgPSB0aGlzLl9saXN0SXRlbXMuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgICBpZiAoaSA8IDApIHRocm93IG5ldyBFcnJvcignQWxyZWFkeSB1bnJlZ2lzdGVyZWQgTWVudUl0ZW0nKTtcbiAgICAgICAgICB0aGlzLl9rZXlib2FyZFRha2VuQnlJbmRleCA9IGk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlbGVhc2VLZXlib2FyZDogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGkgPSB0aGlzLl9saXN0SXRlbXMuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgICBpZiAoaSA8IDApIHRocm93IG5ldyBFcnJvcignQWxyZWFkeSB1bnJlZ2lzdGVyZWQgTWVudUl0ZW0nKTtcbiAgICAgICAgICBpZiAodGhpcy5fa2V5Ym9hcmRUYWtlbkJ5SW5kZXggPT09IGkpIHtcbiAgICAgICAgICAgIHRoaXMuX2tleWJvYXJkVGFrZW5CeUluZGV4ID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGxvY2tIaWdobGlnaHQ6ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBpID0gdGhpcy5fbGlzdEl0ZW1zLmluZGV4T2YoaXRlbSk7XG4gICAgICAgICAgaWYgKGkgPCAwKSB0aHJvdyBuZXcgRXJyb3IoJ0FscmVhZHkgdW5yZWdpc3RlcmVkIE1lbnVJdGVtJyk7XG4gICAgICAgICAgdGhpcy5fbG9ja0hpZ2hsaWdodChpKTtcbiAgICAgICAgfSxcbiAgICAgICAgdW5sb2NrSGlnaGxpZ2h0OiAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgaSA9IHRoaXMuX2xpc3RJdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAgIGlmIChpIDwgMCkgdGhyb3cgbmV3IEVycm9yKCdBbHJlYWR5IHVucmVnaXN0ZXJlZCBNZW51SXRlbScpO1xuICAgICAgICAgIGlmICh0aGlzLl9sb2NrZWRIaWdobGlnaHRlZEluZGV4ID09PSBpKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2NrSGlnaGxpZ2h0KG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbW92ZUN1cnNvcjogKGRpcmVjdGlvbjogRGlyZWN0aW9uLCBwcmV2Q3Vyc29yTG9jYXRpb246ID9SZWN0KSA9PiB7XG4gICAgICAgICAgdGhpcy5tb3ZlQ3Vyc29yKGRpcmVjdGlvbiwgcHJldkN1cnNvckxvY2F0aW9uKTtcbiAgICAgICAgfSxcbiAgICAgICAgdXBkYXRlUHJvcHM6IChuZXdQcm9wczogTWVudUl0ZW1Qcm9wcykgPT4ge1xuICAgICAgICAgIGlmIChpdGVtLnByb3BzLmluZGV4ICE9PSBuZXdQcm9wcy5pbmRleCkge1xuICAgICAgICAgICAgY29uc3Qgb2xkSW5kZXggPSB0aGlzLl9saXN0SXRlbXMuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgICAgIGNvbnN0IGlzTmF0dXJhbEhpZ2hsaWdodEluZGV4ID1cbiAgICAgICAgICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggPT09IG9sZEluZGV4O1xuICAgICAgICAgICAgY29uc3QgaXNMb2NrZWRIaWdobGlnaHRJbmRleCA9XG4gICAgICAgICAgICAgIHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXggPT09IG9sZEluZGV4O1xuICAgICAgICAgICAgY29uc3QgaXNLZXlib2FyZFRha2VuQnlJbmRleCA9XG4gICAgICAgICAgICAgIHRoaXMuX2tleWJvYXJkVGFrZW5CeUluZGV4ID09PSBvbGRJbmRleDtcblxuICAgICAgICAgICAgbWVudUxpc3RIYW5kbGUudW5yZWdpc3RlcigpO1xuICAgICAgICAgICAgcHJvcHMgPSBuZXdQcm9wcztcbiAgICAgICAgICAgIGl0ZW0ucHJvcHMgPSBuZXdQcm9wcztcbiAgICAgICAgICAgIHJlZ2lzdGVyKCk7XG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgaXNOYXR1cmFsSGlnaGxpZ2h0SW5kZXggfHxcbiAgICAgICAgICAgICAgaXNMb2NrZWRIaWdobGlnaHRJbmRleCB8fFxuICAgICAgICAgICAgICBpc0tleWJvYXJkVGFrZW5CeUluZGV4XG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgY29uc3QgbmV3SW5kZXggPSB0aGlzLl9saXN0SXRlbXMuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgICAgICAgaWYgKGlzTmF0dXJhbEhpZ2hsaWdodEluZGV4KVxuICAgICAgICAgICAgICAgIHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4ID0gbmV3SW5kZXg7XG4gICAgICAgICAgICAgIGlmIChpc0xvY2tlZEhpZ2hsaWdodEluZGV4KVxuICAgICAgICAgICAgICAgIHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXggPSBuZXdJbmRleDtcbiAgICAgICAgICAgICAgaWYgKGlzS2V5Ym9hcmRUYWtlbkJ5SW5kZXgpIHRoaXMuX2tleWJvYXJkVGFrZW5CeUluZGV4ID0gbmV3SW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb3BzID0gbmV3UHJvcHM7XG4gICAgICAgICAgICBpdGVtLnByb3BzID0gbmV3UHJvcHM7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB1bnJlZ2lzdGVyOiAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgaSA9IHRoaXMuX2xpc3RJdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAgIGlmIChpIDwgMCkgdGhyb3cgbmV3IEVycm9yKCdBbHJlYWR5IHVucmVnaXN0ZXJlZCBNZW51SXRlbScpO1xuICAgICAgICAgIGlmIChpID09PSB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCkge1xuICAgICAgICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggPSBudWxsO1xuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCAhPSBudWxsICYmXG4gICAgICAgICAgICBpIDwgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXhcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4LS07XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpID09PSB0aGlzLl9sb2NrZWRIaWdobGlnaHRlZEluZGV4KSB7XG4gICAgICAgICAgICB0aGlzLl9sb2NrZWRIaWdobGlnaHRlZEluZGV4ID0gbnVsbDtcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCAhPSBudWxsICYmXG4gICAgICAgICAgICBpIDwgdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleC0tO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaSA9PT0gdGhpcy5fa2V5Ym9hcmRUYWtlbkJ5SW5kZXgpIHtcbiAgICAgICAgICAgIHRoaXMuX2tleWJvYXJkVGFrZW5CeUluZGV4ID0gbnVsbDtcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgdGhpcy5fa2V5Ym9hcmRUYWtlbkJ5SW5kZXggIT0gbnVsbCAmJlxuICAgICAgICAgICAgaSA8IHRoaXMuX2tleWJvYXJkVGFrZW5CeUluZGV4XG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLl9rZXlib2FyZFRha2VuQnlJbmRleC0tO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9saXN0SXRlbXMuc3BsaWNlKGksIDEpO1xuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIHJldHVybiBtZW51TGlzdEhhbmRsZTtcbiAgICB9LFxuICB9O1xuXG4gIF9wYXJlbnRDdHgoKTogP01lbnVMaXN0SW5zcGVjdG9yQ29udGV4dFZhbHVlIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0O1xuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgY29uc3QgaXNFbnRlck9yQXJyb3dLZXkgPSBlID0+XG4gICAgICBlLndoaWNoID09PSAxMyB8fCAoMzcgPD0gZS53aGljaCAmJiBlLndoaWNoIDw9IDQwKTtcbiAgICBjb25zdCBlbCA9IHRoaXMuX2VsUmVmLmN1cnJlbnQ7XG4gICAgLyo6OiBpZiAoIWVsKSB0aHJvdyBuZXcgRXJyb3IoKTsgKi9cblxuICAgIC8vIFRoZSBvbmx5IHRoaW5ncyB0aGF0IHNob3VsZCByZWNlaXZlIGtleWRvd24va2V5cHJlc3MgZXZlbnRzIGJlZm9yZSB1c1xuICAgIC8vIGFyZSBvdXIgY2hpbGRyZW4uIFRoaXMgYWxsb3dzIGEgTWVudUl0ZW0gdG8gY29udGFpbiBhIHRleHQgaW5wdXRcbiAgICAvLyB3aGljaCBzZWxlY3RpdmVseSBzdG9wcyBwcm9wYWdhdGlvbiBvbiBrZXkgZXZlbnRzIGZvciBleGFtcGxlLlxuICAgIEtlZmlyLm1lcmdlKFtcbiAgICAgIEtlZmlyLmZyb21FdmVudHMod2luZG93LCAna2V5ZG93bicpXG4gICAgICAgIC5maWx0ZXIoaXNFbnRlck9yQXJyb3dLZXkpXG4gICAgICAgIC5maWx0ZXIoZSA9PiBlbC5jb250YWlucyhlLnRhcmdldCkpLFxuICAgICAgZnJvbUV2ZW50c0NhcHR1cmUod2luZG93LCAna2V5ZG93bicpXG4gICAgICAgIC5maWx0ZXIoaXNFbnRlck9yQXJyb3dLZXkpXG4gICAgICAgIC5maWx0ZXIoZSA9PiAhZWwuY29udGFpbnMoZS50YXJnZXQpKSxcbiAgICBdKVxuICAgICAgLnRha2VVbnRpbEJ5KHRoaXMuX3N0b3BwZXIpXG4gICAgICAub25WYWx1ZShldmVudCA9PiB7XG4gICAgICAgIFJlYWN0RE9NLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9rZXkoZXZlbnQpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgcGFyZW50Q3R4ID0gdGhpcy5fcGFyZW50Q3R4KCk7XG4gICAgaWYgKHBhcmVudEN0eCkge1xuICAgICAgcGFyZW50Q3R4LnJlZ2lzdGVyTWVudUxpc3QodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgdGhpcy5fc3RvcHBlci5kZXN0cm95KCk7XG5cbiAgICBjb25zdCBwYXJlbnRDdHggPSB0aGlzLl9wYXJlbnRDdHgoKTtcbiAgICBpZiAocGFyZW50Q3R4KSB7XG4gICAgICBwYXJlbnRDdHgudW5yZWdpc3Rlck1lbnVMaXN0KHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIF9uYXR1cmFsSGlnaGxpZ2h0KFxuICAgIGluZGV4OiA/bnVtYmVyLFxuICAgIGJ5S2V5Ym9hcmQ6IGJvb2xlYW4sXG4gICAgZGlyZWN0aW9uOiA/RGlyZWN0aW9uLFxuICAgIHByZXZDdXJzb3JMb2NhdGlvbjogP1JlY3RcbiAgKSB7XG4gICAgY29uc3QgdmlzaWJsZUhpZ2hsaWdodGVkSW5kZXggPSB0aGlzLl9nZXRWaXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCgpO1xuXG4gICAgaWYgKHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXggIT0gbnVsbCAmJiBieUtleWJvYXJkKSB7XG4gICAgICB0aGlzLl9sb2NrZWRIaWdobGlnaHRlZEluZGV4ID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggPSBpbmRleDtcbiAgICBpZiAodGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCA9PSBudWxsKSB7XG4gICAgICBpZiAoaW5kZXggIT0gbnVsbCkge1xuICAgICAgICB0aGlzLl9saXN0SXRlbXNbaW5kZXhdLmNvbnRyb2wubm90aWZ5SGlnaGxpZ2h0ZWQoXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICBieUtleWJvYXJkLFxuICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICBwcmV2Q3Vyc29yTG9jYXRpb25cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmICh2aXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCAhPSBudWxsICYmIHZpc2libGVIaWdobGlnaHRlZEluZGV4ICE9IGluZGV4KSB7XG4gICAgICAgIHRoaXMuX2xpc3RJdGVtc1t2aXNpYmxlSGlnaGxpZ2h0ZWRJbmRleF0uY29udHJvbC5ub3RpZnlIaWdobGlnaHRlZChcbiAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9sb2NrSGlnaGxpZ2h0KGluZGV4OiA/bnVtYmVyKSB7XG4gICAgaWYgKGluZGV4ID09PSB0aGlzLl9sb2NrZWRIaWdobGlnaHRlZEluZGV4KSByZXR1cm47XG4gICAgY29uc3QgdmlzaWJsZUhpZ2hsaWdodGVkSW5kZXggPSB0aGlzLl9nZXRWaXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCgpO1xuICAgIHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXggPSBpbmRleDtcbiAgICBjb25zdCBuZXdWaXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCA9IHRoaXMuX2dldFZpc2libGVIaWdobGlnaHRlZEluZGV4KCk7XG4gICAgaWYgKHZpc2libGVIaWdobGlnaHRlZEluZGV4ICE9IG51bGwgJiYgbmV3VmlzaWJsZUhpZ2hsaWdodGVkSW5kZXggPT0gbnVsbCkge1xuICAgICAgLy8gV2hlbiB1bmxvY2tpbmcsIHByZWZlciB0byBrZWVwIHRoZSBjdXJyZW50IHNlbGVjdGlvbiBvdmVyIGRlLXNlbGVjdGluZ1xuICAgICAgLy8gZXZlcnl0aGluZy5cbiAgICAgIHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4ID0gdmlzaWJsZUhpZ2hsaWdodGVkSW5kZXg7XG4gICAgfSBlbHNlIGlmICh2aXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCAhPSBuZXdWaXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCkge1xuICAgICAgaWYgKHZpc2libGVIaWdobGlnaHRlZEluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5fbGlzdEl0ZW1zW3Zpc2libGVIaWdobGlnaHRlZEluZGV4XS5jb250cm9sLm5vdGlmeUhpZ2hsaWdodGVkKFxuICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAobmV3VmlzaWJsZUhpZ2hsaWdodGVkSW5kZXggIT0gbnVsbCkge1xuICAgICAgICB0aGlzLl9saXN0SXRlbXNbbmV3VmlzaWJsZUhpZ2hsaWdodGVkSW5kZXhdLmNvbnRyb2wubm90aWZ5SGlnaGxpZ2h0ZWQoXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuX2xpc3RJdGVtc1tcbiAgICAgICAgICB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleFxuICAgICAgICBdLmNvbnRyb2wubm90aWZ5SGlnaGxpZ2h0ZWQodHJ1ZSwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9kaXNwYXRjaEV2ZW50KGNvbnRyb2w6ID9NZW51SXRlbUNvbnRyb2wsIGV2ZW50OiBNZW51RXZlbnQpIHtcbiAgICBpZiAoY29udHJvbCkge1xuICAgICAgY29udHJvbC5ub3RpZnlFdmVudChldmVudCk7XG4gICAgICBpZiAoZXZlbnQuY2FuY2VsQnViYmxlKSByZXR1cm47XG4gICAgfVxuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgY2FzZSAnY2hvc2VuJzpcbiAgICAgICAgLyo6OiBpZiAoIShldmVudCBpbnN0YW5jZW9mIENob3NlbkV2ZW50KSkgdGhyb3cgbmV3IEVycm9yKCk7ICovXG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9uSXRlbUNob3NlbikgdGhpcy5wcm9wcy5vbkl0ZW1DaG9zZW4oZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIC8vIGNhc2UgJ3VwJzpcbiAgICAgIC8vICAgYnJlYWs7XG4gICAgICAvLyBjYXNlICdkb3duJzpcbiAgICAgIC8vICAgYnJlYWs7XG4gICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25MZWZ0UHVzaGVkKSB0aGlzLnByb3BzLm9uTGVmdFB1c2hlZChldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICBpZiAodGhpcy5wcm9wcy5vblJpZ2h0UHVzaGVkKSB0aGlzLnByb3BzLm9uUmlnaHRQdXNoZWQoZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgaWYgKGV2ZW50LmNhbmNlbEJ1YmJsZSkgcmV0dXJuO1xuICAgIGNvbnN0IHBhcmVudEN0eCA9IHRoaXMuX3BhcmVudEN0eCgpO1xuICAgIGlmIChwYXJlbnRDdHgpIHtcbiAgICAgIHBhcmVudEN0eC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBfa2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuX2tleWJvYXJkVGFrZW5CeUluZGV4ICE9IG51bGwgfHwgdGhpcy5fbGlzdEl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHZpc2libGVIaWdobGlnaHRlZEluZGV4ID0gdGhpcy5fZ2V0VmlzaWJsZUhpZ2hsaWdodGVkSW5kZXgoKTtcblxuICAgIC8vIGVudGVyLCBsZWZ0LCByaWdodCBhY3RpdmF0ZSBmb3IgdGhlIGN1cnJlbnQgdmlzaWJseSBzZWxlY3RlZCBpdGVtLlxuICAgIC8vIHVwIGFuZCBkb3duIGRlLWFjdGl2YXRlIGFueSBsb2NrcyBpbiBwbGFjZSwgc28gdGhhdCB0aGV5IGFjdCBmcm9tIHRoZSBsYXN0XG4gICAgLy8gbmF0dXJhbGx5LXNlbGVjdGVkIGl0ZW0uXG5cbiAgICBsZXQgbUV2ZW50ID0gbnVsbDtcblxuICAgIHN3aXRjaCAoZXZlbnQud2hpY2gpIHtcbiAgICAgIGNhc2UgMTM6IC8vZW50ZXJcbiAgICAgICAgaWYgKHZpc2libGVIaWdobGlnaHRlZEluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgICBtRXZlbnQgPSBuZXcgQ2hvc2VuRXZlbnQoJ2Nob3NlbicsIHRydWUpO1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDM3OiAvL2xlZnRcbiAgICAgICAgaWYgKHZpc2libGVIaWdobGlnaHRlZEluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgICBtRXZlbnQgPSBuZXcgTWVudUV2ZW50KCdsZWZ0Jyk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDM5OiAvL3JpZ2h0XG4gICAgICAgIGlmICh2aXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCAhPSBudWxsKSB7XG4gICAgICAgICAgbUV2ZW50ID0gbmV3IE1lbnVFdmVudCgncmlnaHQnKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMzg6IC8vdXBcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMubW92ZUN1cnNvcigndXAnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDQwOiAvL2Rvd25cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMubW92ZUN1cnNvcignZG93bicpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAobUV2ZW50KSB7XG4gICAgICBjb25zdCBjb250cm9sID1cbiAgICAgICAgdmlzaWJsZUhpZ2hsaWdodGVkSW5kZXggPT0gbnVsbFxuICAgICAgICAgID8gbnVsbFxuICAgICAgICAgIDogdGhpcy5fbGlzdEl0ZW1zW3Zpc2libGVIaWdobGlnaHRlZEluZGV4XS5jb250cm9sO1xuICAgICAgdGhpcy5fZGlzcGF0Y2hFdmVudChjb250cm9sLCBtRXZlbnQpO1xuICAgICAgaWYgKG1FdmVudC5kZWZhdWx0UHJldmVudGVkKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaWYgKG1FdmVudC5kZWZhdWx0UHJldmVudGVkIHx8IG1FdmVudC5jYW5jZWxCdWJibGUpXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIG1vdmVDdXJzb3IoZGlyZWN0aW9uOiBEaXJlY3Rpb24sIHByZXZDdXJzb3JMb2NhdGlvbjogP1JlY3QpIHtcbiAgICBpZiAodGhpcy5fbGlzdEl0ZW1zLmxlbmd0aCA9PSAwKSByZXR1cm47XG5cbiAgICBzd2l0Y2ggKGRpcmVjdGlvbikge1xuICAgICAgY2FzZSAndXAnOlxuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggPT0gbnVsbCB8fFxuICAgICAgICAgIHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4ID09IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodChcbiAgICAgICAgICAgIHRoaXMuX2xpc3RJdGVtcy5sZW5ndGggLSAxLFxuICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICAgIHByZXZDdXJzb3JMb2NhdGlvblxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodChcbiAgICAgICAgICAgIHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4IC0gMSxcbiAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgICAgICBwcmV2Q3Vyc29yTG9jYXRpb25cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZG93bic6XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCA9PSBudWxsIHx8XG4gICAgICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggPT0gdGhpcy5fbGlzdEl0ZW1zLmxlbmd0aCAtIDFcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodCgwLCB0cnVlLCBkaXJlY3Rpb24sIHByZXZDdXJzb3JMb2NhdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodChcbiAgICAgICAgICAgIHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4ICsgMSxcbiAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgICAgICBwcmV2Q3Vyc29yTG9jYXRpb25cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGhhc0hpZ2hsaWdodCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0VmlzaWJsZUhpZ2hsaWdodGVkSW5kZXgoKSAhPSBudWxsO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IHJvbGU9XCJtZW51XCIgcmVmPXt0aGlzLl9lbFJlZn0+XG4gICAgICAgIDxNZW51TGlzdENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3RoaXMuX21lbnVMaXN0Q29udGV4dH0+XG4gICAgICAgICAge3RoaXMucHJvcHMuY2hpbGRyZW59XG4gICAgICAgIDwvTWVudUxpc3RDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuIl19
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

@@ -24,3 +26,3 @@

var _react = _interopRequireDefault(require("react"));
var React = _interopRequireWildcard(require("react"));

@@ -33,6 +35,5 @@ var _propTypes = _interopRequireDefault(require("prop-types"));

function _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; } }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
var MenuListInspectorContext = /*#__PURE__*/_react["default"].createContext(null);
var MenuListInspectorContext = /*#__PURE__*/React.createContext(null);
exports.MenuListInspectorContext = MenuListInspectorContext;

@@ -126,3 +127,3 @@

value: function render() {
return /*#__PURE__*/_react["default"].createElement(MenuListInspectorContext.Provider, {
return /*#__PURE__*/React.createElement(MenuListInspectorContext.Provider, {
value: this._menuListInspectorContext

@@ -133,3 +134,3 @@ }, this.props.children);

return MenuListInspector;
}(_react["default"].Component);
}(React.Component);

@@ -144,2 +145,2 @@ exports["default"] = MenuListInspector;

(0, _defineProperty2["default"])(MenuListInspector, "contextType", MenuListInspectorContext);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9NZW51TGlzdEluc3BlY3Rvci5qcyJdLCJuYW1lcyI6WyJNZW51TGlzdEluc3BlY3RvckNvbnRleHQiLCJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJNZW51TGlzdEluc3BlY3RvciIsInJlZ2lzdGVyTWVudUxpc3QiLCJtZW51TGlzdCIsIl9kZXNjZW5kYW50TWVudUxpc3RzIiwicHVzaCIsInVucmVnaXN0ZXJNZW51TGlzdCIsImkiLCJpbmRleE9mIiwiRXJyb3IiLCJzcGxpY2UiLCJkaXNwYXRjaEV2ZW50IiwiZXZlbnQiLCJ0eXBlIiwicHJvcHMiLCJvbkl0ZW1DaG9zZW4iLCJvbkxlZnRQdXNoZWQiLCJvblJpZ2h0UHVzaGVkIiwiY2FuY2VsQnViYmxlIiwicGFyZW50Q3R4IiwiX3BhcmVudEN0eCIsImNvbnRleHQiLCJkaXJlY3Rpb24iLCJwcmV2Q3Vyc29yTG9jYXRpb24iLCJtb3ZlQ3Vyc29yIiwibGVuIiwibGVuZ3RoIiwiaGFzSGlnaGxpZ2h0IiwiX21lbnVMaXN0SW5zcGVjdG9yQ29udGV4dCIsImNoaWxkcmVuIiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwiZnVuYyIsImVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7O0FBRUE7O0FBR0E7Ozs7OztBQVNPLElBQU1BLHdCQUF3QixnQkFBR0Msa0JBQU1DLGFBQU4sQ0FDdEMsSUFEc0MsQ0FBakM7Ozs7SUFXY0MsaUI7Ozs7Ozs7Ozs7Ozs7Ozs2R0FXcUIsRTtrSEFNbUI7QUFDekRDLE1BQUFBLGdCQUFnQixFQUFFLDBCQUFDQyxRQUFELEVBQXdCO0FBQ3hDLGNBQUtDLG9CQUFMLENBQTBCQyxJQUExQixDQUErQkYsUUFBL0I7QUFDRCxPQUh3RDtBQUl6REcsTUFBQUEsa0JBQWtCLEVBQUUsNEJBQUNILFFBQUQsRUFBd0I7QUFDMUMsWUFBTUksQ0FBQyxHQUFHLE1BQUtILG9CQUFMLENBQTBCSSxPQUExQixDQUFrQ0wsUUFBbEMsQ0FBVjs7QUFDQSxZQUFJSSxDQUFDLEdBQUcsQ0FBUixFQUFXLE1BQU0sSUFBSUUsS0FBSixDQUFVLHlCQUFWLENBQU47O0FBQ1gsY0FBS0wsb0JBQUwsQ0FBMEJNLE1BQTFCLENBQWlDSCxDQUFqQyxFQUFvQyxDQUFwQztBQUNELE9BUndEO0FBU3pESSxNQUFBQSxhQUFhLEVBQUUsdUJBQUNDLEtBQUQsRUFBc0I7QUFDbkMsZ0JBQVFBLEtBQUssQ0FBQ0MsSUFBZDtBQUNFLGVBQUssUUFBTDtBQUNFO0FBQ0EsZ0JBQUksTUFBS0MsS0FBTCxDQUFXQyxZQUFmLEVBQTZCLE1BQUtELEtBQUwsQ0FBV0MsWUFBWCxDQUF3QkgsS0FBeEI7QUFDN0I7O0FBQ0YsZUFBSyxNQUFMO0FBQ0UsZ0JBQUksTUFBS0UsS0FBTCxDQUFXRSxZQUFmLEVBQTZCLE1BQUtGLEtBQUwsQ0FBV0UsWUFBWCxDQUF3QkosS0FBeEI7QUFDN0I7O0FBQ0YsZUFBSyxPQUFMO0FBQ0UsZ0JBQUksTUFBS0UsS0FBTCxDQUFXRyxhQUFmLEVBQThCLE1BQUtILEtBQUwsQ0FBV0csYUFBWCxDQUF5QkwsS0FBekI7QUFDOUI7QUFWSjs7QUFZQSxZQUFJQSxLQUFLLENBQUNNLFlBQVYsRUFBd0I7O0FBQ3hCLFlBQU1DLFNBQVMsR0FBRyxNQUFLQyxVQUFMLEVBQWxCOztBQUNBLFlBQUlELFNBQUosRUFBZTtBQUNiQSxVQUFBQSxTQUFTLENBQUNSLGFBQVYsQ0FBd0JDLEtBQXhCO0FBQ0Q7QUFDRjtBQTNCd0QsSzs7Ozs7O2lDQUpkO0FBQzNDLGFBQU8sS0FBS1MsT0FBWjtBQUNEOzs7K0JBZ0NVQyxTLEVBQXNCQyxrQixFQUFvQztBQUNuRSxVQUFNcEIsUUFBUSxHQUFHLEtBQUtDLG9CQUFMLENBQTBCLENBQTFCLENBQWpCOztBQUNBLFVBQUksQ0FBQ0QsUUFBTCxFQUFlO0FBQ2IsZUFBTyxLQUFQO0FBQ0Q7O0FBQ0RBLE1BQUFBLFFBQVEsQ0FBQ3FCLFVBQVQsQ0FBb0JGLFNBQXBCLEVBQStCQyxrQkFBL0I7QUFDQSxhQUFPLElBQVA7QUFDRDs7O21DQUV1QjtBQUN0QixXQUFLLElBQUloQixDQUFDLEdBQUcsQ0FBUixFQUFXa0IsR0FBRyxHQUFHLEtBQUtyQixvQkFBTCxDQUEwQnNCLE1BQWhELEVBQXdEbkIsQ0FBQyxHQUFHa0IsR0FBNUQsRUFBaUVsQixDQUFDLEVBQWxFLEVBQXNFO0FBQ3BFLFlBQUksS0FBS0gsb0JBQUwsQ0FBMEJHLENBQTFCLEVBQTZCb0IsWUFBN0IsRUFBSixFQUFpRDtBQUMvQyxpQkFBTyxJQUFQO0FBQ0Q7QUFDRjs7QUFDRCxhQUFPLEtBQVA7QUFDRDs7OzZCQUVRO0FBQ1AsMEJBQ0UsZ0NBQUMsd0JBQUQsQ0FBMEIsUUFBMUI7QUFBbUMsUUFBQSxLQUFLLEVBQUUsS0FBS0M7QUFBL0MsU0FDRyxLQUFLZCxLQUFMLENBQVdlLFFBRGQsQ0FERjtBQUtEOzs7RUF2RTRDOUIsa0JBQU0rQixTOzs7aUNBQWhDN0IsaUIsZUFDQTtBQUNqQmMsRUFBQUEsWUFBWSxFQUFFZ0Isc0JBQVVDLElBRFA7QUFFakJoQixFQUFBQSxZQUFZLEVBQUVlLHNCQUFVQyxJQUZQO0FBR2pCZixFQUFBQSxhQUFhLEVBQUVjLHNCQUFVQyxJQUhSO0FBS2pCSCxFQUFBQSxRQUFRLEVBQUVFLHNCQUFVRTtBQUxILEM7aUNBREFoQyxpQixpQkFTRUgsd0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUge05vZGUgYXMgUmVhY3ROb2RlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHR5cGUgTWVudUxpc3QgZnJvbSAnLi9NZW51TGlzdCc7XG5pbXBvcnQgdHlwZSBNZW51RXZlbnQgZnJvbSAnLi9ldmVudHMvTWVudUV2ZW50JztcbmltcG9ydCBDaG9zZW5FdmVudCBmcm9tICcuL2V2ZW50cy9DaG9zZW5FdmVudCc7XG5pbXBvcnQgdHlwZSB7RGlyZWN0aW9uLCBSZWN0fSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgTWVudUxpc3RJbnNwZWN0b3JDb250ZXh0VmFsdWUgPSB7XG4gIHJlZ2lzdGVyTWVudUxpc3QobWVudUxpc3Q6IE1lbnVMaXN0KTogdm9pZCxcbiAgdW5yZWdpc3Rlck1lbnVMaXN0KG1lbnVMaXN0OiBNZW51TGlzdCk6IHZvaWQsXG4gIGRpc3BhdGNoRXZlbnQoZXZlbnQ6IE1lbnVFdmVudCk6IHZvaWQsXG59O1xuXG5leHBvcnQgY29uc3QgTWVudUxpc3RJbnNwZWN0b3JDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dDw/TWVudUxpc3RJbnNwZWN0b3JDb250ZXh0VmFsdWU+KFxuICBudWxsXG4pO1xuXG5leHBvcnQgdHlwZSBQcm9wcyA9IHtcbiAgb25JdGVtQ2hvc2VuPzogKGV2ZW50OiBDaG9zZW5FdmVudCkgPT4gdm9pZCxcbiAgb25MZWZ0UHVzaGVkPzogKGV2ZW50OiBNZW51RXZlbnQpID0+IHZvaWQsXG4gIG9uUmlnaHRQdXNoZWQ/OiAoZXZlbnQ6IE1lbnVFdmVudCkgPT4gdm9pZCxcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1lbnVMaXN0SW5zcGVjdG9yIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFByb3BzPiB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb25JdGVtQ2hvc2VuOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkxlZnRQdXNoZWQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uUmlnaHRQdXNoZWQ6IFByb3BUeXBlcy5mdW5jLFxuXG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5lbGVtZW50LFxuICB9O1xuXG4gIHN0YXRpYyBjb250ZXh0VHlwZSA9IE1lbnVMaXN0SW5zcGVjdG9yQ29udGV4dDtcblxuICBfZGVzY2VuZGFudE1lbnVMaXN0czogQXJyYXk8TWVudUxpc3Q+ID0gW107XG5cbiAgX3BhcmVudEN0eCgpOiA/TWVudUxpc3RJbnNwZWN0b3JDb250ZXh0VmFsdWUge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQ7XG4gIH1cblxuICBfbWVudUxpc3RJbnNwZWN0b3JDb250ZXh0OiBNZW51TGlzdEluc3BlY3RvckNvbnRleHRWYWx1ZSA9IHtcbiAgICByZWdpc3Rlck1lbnVMaXN0OiAobWVudUxpc3Q6IE1lbnVMaXN0KSA9PiB7XG4gICAgICB0aGlzLl9kZXNjZW5kYW50TWVudUxpc3RzLnB1c2gobWVudUxpc3QpO1xuICAgIH0sXG4gICAgdW5yZWdpc3Rlck1lbnVMaXN0OiAobWVudUxpc3Q6IE1lbnVMaXN0KSA9PiB7XG4gICAgICBjb25zdCBpID0gdGhpcy5fZGVzY2VuZGFudE1lbnVMaXN0cy5pbmRleE9mKG1lbnVMaXN0KTtcbiAgICAgIGlmIChpIDwgMCkgdGhyb3cgbmV3IEVycm9yKCdNZW51TGlzdCBub3QgcmVnaXN0ZXJlZCcpO1xuICAgICAgdGhpcy5fZGVzY2VuZGFudE1lbnVMaXN0cy5zcGxpY2UoaSwgMSk7XG4gICAgfSxcbiAgICBkaXNwYXRjaEV2ZW50OiAoZXZlbnQ6IE1lbnVFdmVudCkgPT4ge1xuICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2Nob3Nlbic6XG4gICAgICAgICAgLyo6OiBpZiAoIShldmVudCBpbnN0YW5jZW9mIENob3NlbkV2ZW50KSkgdGhyb3cgbmV3IEVycm9yKCk7ICovXG4gICAgICAgICAgaWYgKHRoaXMucHJvcHMub25JdGVtQ2hvc2VuKSB0aGlzLnByb3BzLm9uSXRlbUNob3NlbihldmVudCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uTGVmdFB1c2hlZCkgdGhpcy5wcm9wcy5vbkxlZnRQdXNoZWQoZXZlbnQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgaWYgKHRoaXMucHJvcHMub25SaWdodFB1c2hlZCkgdGhpcy5wcm9wcy5vblJpZ2h0UHVzaGVkKGV2ZW50KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGlmIChldmVudC5jYW5jZWxCdWJibGUpIHJldHVybjtcbiAgICAgIGNvbnN0IHBhcmVudEN0eCA9IHRoaXMuX3BhcmVudEN0eCgpO1xuICAgICAgaWYgKHBhcmVudEN0eCkge1xuICAgICAgICBwYXJlbnRDdHguZGlzcGF0Y2hFdmVudChldmVudCk7XG4gICAgICB9XG4gICAgfSxcbiAgfTtcblxuICBtb3ZlQ3Vyc29yKGRpcmVjdGlvbjogRGlyZWN0aW9uLCBwcmV2Q3Vyc29yTG9jYXRpb246ID9SZWN0KTogYm9vbGVhbiB7XG4gICAgY29uc3QgbWVudUxpc3QgPSB0aGlzLl9kZXNjZW5kYW50TWVudUxpc3RzWzBdO1xuICAgIGlmICghbWVudUxpc3QpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbWVudUxpc3QubW92ZUN1cnNvcihkaXJlY3Rpb24sIHByZXZDdXJzb3JMb2NhdGlvbik7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBoYXNIaWdobGlnaHQoKTogYm9vbGVhbiB7XG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHRoaXMuX2Rlc2NlbmRhbnRNZW51TGlzdHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLl9kZXNjZW5kYW50TWVudUxpc3RzW2ldLmhhc0hpZ2hsaWdodCgpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxNZW51TGlzdEluc3BlY3RvckNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3RoaXMuX21lbnVMaXN0SW5zcGVjdG9yQ29udGV4dH0+XG4gICAgICAgIHt0aGlzLnByb3BzLmNoaWxkcmVufVxuICAgICAgPC9NZW51TGlzdEluc3BlY3RvckNvbnRleHQuUHJvdmlkZXI+XG4gICAgKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9NZW51TGlzdEluc3BlY3Rvci5qcyJdLCJuYW1lcyI6WyJNZW51TGlzdEluc3BlY3RvckNvbnRleHQiLCJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJNZW51TGlzdEluc3BlY3RvciIsInJlZ2lzdGVyTWVudUxpc3QiLCJtZW51TGlzdCIsIl9kZXNjZW5kYW50TWVudUxpc3RzIiwicHVzaCIsInVucmVnaXN0ZXJNZW51TGlzdCIsImkiLCJpbmRleE9mIiwiRXJyb3IiLCJzcGxpY2UiLCJkaXNwYXRjaEV2ZW50IiwiZXZlbnQiLCJ0eXBlIiwicHJvcHMiLCJvbkl0ZW1DaG9zZW4iLCJvbkxlZnRQdXNoZWQiLCJvblJpZ2h0UHVzaGVkIiwiY2FuY2VsQnViYmxlIiwicGFyZW50Q3R4IiwiX3BhcmVudEN0eCIsImNvbnRleHQiLCJkaXJlY3Rpb24iLCJwcmV2Q3Vyc29yTG9jYXRpb24iLCJtb3ZlQ3Vyc29yIiwibGVuIiwibGVuZ3RoIiwiaGFzSGlnaGxpZ2h0IiwiX21lbnVMaXN0SW5zcGVjdG9yQ29udGV4dCIsImNoaWxkcmVuIiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwiZnVuYyIsImVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTs7QUFFQTs7QUFHQTs7Ozs7O0FBU08sSUFBTUEsd0JBQXdCLGdCQUFHQyxLQUFLLENBQUNDLGFBQU4sQ0FDdEMsSUFEc0MsQ0FBakM7OztJQVdjQyxpQjs7Ozs7Ozs7Ozs7Ozs7OzZHQVdxQixFO2tIQU1tQjtBQUN6REMsTUFBQUEsZ0JBQWdCLEVBQUUsMEJBQUNDLFFBQUQsRUFBd0I7QUFDeEMsY0FBS0Msb0JBQUwsQ0FBMEJDLElBQTFCLENBQStCRixRQUEvQjtBQUNELE9BSHdEO0FBSXpERyxNQUFBQSxrQkFBa0IsRUFBRSw0QkFBQ0gsUUFBRCxFQUF3QjtBQUMxQyxZQUFNSSxDQUFDLEdBQUcsTUFBS0gsb0JBQUwsQ0FBMEJJLE9BQTFCLENBQWtDTCxRQUFsQyxDQUFWOztBQUNBLFlBQUlJLENBQUMsR0FBRyxDQUFSLEVBQVcsTUFBTSxJQUFJRSxLQUFKLENBQVUseUJBQVYsQ0FBTjs7QUFDWCxjQUFLTCxvQkFBTCxDQUEwQk0sTUFBMUIsQ0FBaUNILENBQWpDLEVBQW9DLENBQXBDO0FBQ0QsT0FSd0Q7QUFTekRJLE1BQUFBLGFBQWEsRUFBRSx1QkFBQ0MsS0FBRCxFQUFzQjtBQUNuQyxnQkFBUUEsS0FBSyxDQUFDQyxJQUFkO0FBQ0UsZUFBSyxRQUFMO0FBQ0U7QUFDQSxnQkFBSSxNQUFLQyxLQUFMLENBQVdDLFlBQWYsRUFBNkIsTUFBS0QsS0FBTCxDQUFXQyxZQUFYLENBQXdCSCxLQUF4QjtBQUM3Qjs7QUFDRixlQUFLLE1BQUw7QUFDRSxnQkFBSSxNQUFLRSxLQUFMLENBQVdFLFlBQWYsRUFBNkIsTUFBS0YsS0FBTCxDQUFXRSxZQUFYLENBQXdCSixLQUF4QjtBQUM3Qjs7QUFDRixlQUFLLE9BQUw7QUFDRSxnQkFBSSxNQUFLRSxLQUFMLENBQVdHLGFBQWYsRUFBOEIsTUFBS0gsS0FBTCxDQUFXRyxhQUFYLENBQXlCTCxLQUF6QjtBQUM5QjtBQVZKOztBQVlBLFlBQUlBLEtBQUssQ0FBQ00sWUFBVixFQUF3Qjs7QUFDeEIsWUFBTUMsU0FBUyxHQUFHLE1BQUtDLFVBQUwsRUFBbEI7O0FBQ0EsWUFBSUQsU0FBSixFQUFlO0FBQ2JBLFVBQUFBLFNBQVMsQ0FBQ1IsYUFBVixDQUF3QkMsS0FBeEI7QUFDRDtBQUNGO0FBM0J3RCxLOzs7Ozs7V0FKM0Qsc0JBQTZDO0FBQzNDLGFBQU8sS0FBS1MsT0FBWjtBQUNEOzs7V0FnQ0Qsb0JBQVdDLFNBQVgsRUFBaUNDLGtCQUFqQyxFQUFxRTtBQUNuRSxVQUFNcEIsUUFBUSxHQUFHLEtBQUtDLG9CQUFMLENBQTBCLENBQTFCLENBQWpCOztBQUNBLFVBQUksQ0FBQ0QsUUFBTCxFQUFlO0FBQ2IsZUFBTyxLQUFQO0FBQ0Q7O0FBQ0RBLE1BQUFBLFFBQVEsQ0FBQ3FCLFVBQVQsQ0FBb0JGLFNBQXBCLEVBQStCQyxrQkFBL0I7QUFDQSxhQUFPLElBQVA7QUFDRDs7O1dBRUQsd0JBQXdCO0FBQ3RCLFdBQUssSUFBSWhCLENBQUMsR0FBRyxDQUFSLEVBQVdrQixHQUFHLEdBQUcsS0FBS3JCLG9CQUFMLENBQTBCc0IsTUFBaEQsRUFBd0RuQixDQUFDLEdBQUdrQixHQUE1RCxFQUFpRWxCLENBQUMsRUFBbEUsRUFBc0U7QUFDcEUsWUFBSSxLQUFLSCxvQkFBTCxDQUEwQkcsQ0FBMUIsRUFBNkJvQixZQUE3QixFQUFKLEVBQWlEO0FBQy9DLGlCQUFPLElBQVA7QUFDRDtBQUNGOztBQUNELGFBQU8sS0FBUDtBQUNEOzs7V0FFRCxrQkFBUztBQUNQLDBCQUNFLG9CQUFDLHdCQUFELENBQTBCLFFBQTFCO0FBQW1DLFFBQUEsS0FBSyxFQUFFLEtBQUtDO0FBQS9DLFNBQ0csS0FBS2QsS0FBTCxDQUFXZSxRQURkLENBREY7QUFLRDs7O0VBdkU0QzlCLEtBQUssQ0FBQytCLFM7OztpQ0FBaEM3QixpQixlQUNBO0FBQ2pCYyxFQUFBQSxZQUFZLEVBQUVnQixzQkFBVUMsSUFEUDtBQUVqQmhCLEVBQUFBLFlBQVksRUFBRWUsc0JBQVVDLElBRlA7QUFHakJmLEVBQUFBLGFBQWEsRUFBRWMsc0JBQVVDLElBSFI7QUFLakJILEVBQUFBLFFBQVEsRUFBRUUsc0JBQVVFO0FBTEgsQztpQ0FEQWhDLGlCLGlCQVNFSCx3QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIEBmbG93ICovXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHtOb2RlIGFzIFJlYWN0Tm9kZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB0eXBlIE1lbnVMaXN0IGZyb20gJy4vTWVudUxpc3QnO1xuaW1wb3J0IHR5cGUgTWVudUV2ZW50IGZyb20gJy4vZXZlbnRzL01lbnVFdmVudCc7XG5pbXBvcnQgQ2hvc2VuRXZlbnQgZnJvbSAnLi9ldmVudHMvQ2hvc2VuRXZlbnQnO1xuaW1wb3J0IHR5cGUge0RpcmVjdGlvbiwgUmVjdH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIE1lbnVMaXN0SW5zcGVjdG9yQ29udGV4dFZhbHVlID0ge1xuICByZWdpc3Rlck1lbnVMaXN0KG1lbnVMaXN0OiBNZW51TGlzdCk6IHZvaWQsXG4gIHVucmVnaXN0ZXJNZW51TGlzdChtZW51TGlzdDogTWVudUxpc3QpOiB2b2lkLFxuICBkaXNwYXRjaEV2ZW50KGV2ZW50OiBNZW51RXZlbnQpOiB2b2lkLFxufTtcblxuZXhwb3J0IGNvbnN0IE1lbnVMaXN0SW5zcGVjdG9yQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQ8P01lbnVMaXN0SW5zcGVjdG9yQ29udGV4dFZhbHVlPihcbiAgbnVsbFxuKTtcblxuZXhwb3J0IHR5cGUgUHJvcHMgPSB7XG4gIG9uSXRlbUNob3Nlbj86IChldmVudDogQ2hvc2VuRXZlbnQpID0+IHZvaWQsXG4gIG9uTGVmdFB1c2hlZD86IChldmVudDogTWVudUV2ZW50KSA9PiB2b2lkLFxuICBvblJpZ2h0UHVzaGVkPzogKGV2ZW50OiBNZW51RXZlbnQpID0+IHZvaWQsXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGUsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNZW51TGlzdEluc3BlY3RvciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxQcm9wcz4ge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIG9uSXRlbUNob3NlbjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25MZWZ0UHVzaGVkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvblJpZ2h0UHVzaGVkOiBQcm9wVHlwZXMuZnVuYyxcblxuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMuZWxlbWVudCxcbiAgfTtcblxuICBzdGF0aWMgY29udGV4dFR5cGUgPSBNZW51TGlzdEluc3BlY3RvckNvbnRleHQ7XG5cbiAgX2Rlc2NlbmRhbnRNZW51TGlzdHM6IEFycmF5PE1lbnVMaXN0PiA9IFtdO1xuXG4gIF9wYXJlbnRDdHgoKTogP01lbnVMaXN0SW5zcGVjdG9yQ29udGV4dFZhbHVlIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0O1xuICB9XG5cbiAgX21lbnVMaXN0SW5zcGVjdG9yQ29udGV4dDogTWVudUxpc3RJbnNwZWN0b3JDb250ZXh0VmFsdWUgPSB7XG4gICAgcmVnaXN0ZXJNZW51TGlzdDogKG1lbnVMaXN0OiBNZW51TGlzdCkgPT4ge1xuICAgICAgdGhpcy5fZGVzY2VuZGFudE1lbnVMaXN0cy5wdXNoKG1lbnVMaXN0KTtcbiAgICB9LFxuICAgIHVucmVnaXN0ZXJNZW51TGlzdDogKG1lbnVMaXN0OiBNZW51TGlzdCkgPT4ge1xuICAgICAgY29uc3QgaSA9IHRoaXMuX2Rlc2NlbmRhbnRNZW51TGlzdHMuaW5kZXhPZihtZW51TGlzdCk7XG4gICAgICBpZiAoaSA8IDApIHRocm93IG5ldyBFcnJvcignTWVudUxpc3Qgbm90IHJlZ2lzdGVyZWQnKTtcbiAgICAgIHRoaXMuX2Rlc2NlbmRhbnRNZW51TGlzdHMuc3BsaWNlKGksIDEpO1xuICAgIH0sXG4gICAgZGlzcGF0Y2hFdmVudDogKGV2ZW50OiBNZW51RXZlbnQpID0+IHtcbiAgICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgICBjYXNlICdjaG9zZW4nOlxuICAgICAgICAgIC8qOjogaWYgKCEoZXZlbnQgaW5zdGFuY2VvZiBDaG9zZW5FdmVudCkpIHRocm93IG5ldyBFcnJvcigpOyAqL1xuICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uSXRlbUNob3NlbikgdGhpcy5wcm9wcy5vbkl0ZW1DaG9zZW4oZXZlbnQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkxlZnRQdXNoZWQpIHRoaXMucHJvcHMub25MZWZ0UHVzaGVkKGV2ZW50KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uUmlnaHRQdXNoZWQpIHRoaXMucHJvcHMub25SaWdodFB1c2hlZChldmVudCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQuY2FuY2VsQnViYmxlKSByZXR1cm47XG4gICAgICBjb25zdCBwYXJlbnRDdHggPSB0aGlzLl9wYXJlbnRDdHgoKTtcbiAgICAgIGlmIChwYXJlbnRDdHgpIHtcbiAgICAgICAgcGFyZW50Q3R4LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgICAgfVxuICAgIH0sXG4gIH07XG5cbiAgbW92ZUN1cnNvcihkaXJlY3Rpb246IERpcmVjdGlvbiwgcHJldkN1cnNvckxvY2F0aW9uOiA/UmVjdCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG1lbnVMaXN0ID0gdGhpcy5fZGVzY2VuZGFudE1lbnVMaXN0c1swXTtcbiAgICBpZiAoIW1lbnVMaXN0KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIG1lbnVMaXN0Lm1vdmVDdXJzb3IoZGlyZWN0aW9uLCBwcmV2Q3Vyc29yTG9jYXRpb24pO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaGFzSGlnaGxpZ2h0KCk6IGJvb2xlYW4ge1xuICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSB0aGlzLl9kZXNjZW5kYW50TWVudUxpc3RzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5fZGVzY2VuZGFudE1lbnVMaXN0c1tpXS5oYXNIaWdobGlnaHQoKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudUxpc3RJbnNwZWN0b3JDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt0aGlzLl9tZW51TGlzdEluc3BlY3RvckNvbnRleHR9PlxuICAgICAgICB7dGhpcy5wcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvTWVudUxpc3RJbnNwZWN0b3JDb250ZXh0LlByb3ZpZGVyPlxuICAgICk7XG4gIH1cbn1cbiJdfQ==
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

@@ -30,4 +32,6 @@

var _react = _interopRequireDefault(require("react"));
var React = _interopRequireWildcard(require("react"));
var ReactDOM = _interopRequireWildcard(require("react-dom"));
var _propTypes = _interopRequireDefault(require("prop-types"));

@@ -49,3 +53,3 @@

function _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; } }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

@@ -70,6 +74,6 @@ var SubMenuItem = /*#__PURE__*/function (_React$Component) {

});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_menuItemRef", /*#__PURE__*/_react["default"].createRef());
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_floatAnchorRef", /*#__PURE__*/_react["default"].createRef());
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_menuInspectorRef", /*#__PURE__*/_react["default"].createRef());
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_menuContainerRef", /*#__PURE__*/_react["default"].createRef());
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_menuItemRef", /*#__PURE__*/React.createRef());
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_floatAnchorRef", /*#__PURE__*/React.createRef());
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_menuInspectorRef", /*#__PURE__*/React.createRef());
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_menuContainerRef", /*#__PURE__*/React.createRef());
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_resetMouseLeaveWatcher", (0, _kefirBus["default"])());

@@ -174,3 +178,5 @@ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_stopper", (0, _kefirStopper["default"])());

_kefir["default"].later(OPEN_DELAY).takeUntilBy(this._resetMouseLeaveWatcher).takeUntilBy(this._stopper).onValue(function () {
_this3.open();
ReactDOM.unstable_batchedUpdates(function () {
_this3.open();
});
});

@@ -239,5 +245,7 @@ } else if (!highlighted) {

}).merge(_kefir["default"].later(MAX_TIME * 1000)).take(1).takeUntilBy(this._resetMouseLeaveWatcher).takeUntilBy(this._stopper).onValue(function () {
_this4.close();
ReactDOM.unstable_batchedUpdates(function () {
_this4.close();
menuItem.unhighlight();
menuItem.unhighlight();
});
});

@@ -282,3 +290,3 @@ }

return /*#__PURE__*/_react["default"].createElement(_reactFloatAnchor["default"], {
return /*#__PURE__*/React.createElement(_reactFloatAnchor["default"], {
parentElement: this.props.menuParentElement,

@@ -289,3 +297,3 @@ ref: this._floatAnchorRef,

anchor: function anchor(anchorRef) {
return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
return /*#__PURE__*/React.createElement(_MenuItem["default"], {
ref: _this5._menuItemRef,

@@ -332,3 +340,3 @@ domRef: anchorRef,

},
"float": !opened ? null : /*#__PURE__*/_react["default"].createElement(_MenuListInspector["default"], {
"float": !opened ? null : /*#__PURE__*/React.createElement(_MenuListInspector["default"], {
ref: this._menuInspectorRef,

@@ -341,3 +349,3 @@ onLeftPushed: function onLeftPushed(e) {

}
}, /*#__PURE__*/_react["default"].createElement("div", {
}, /*#__PURE__*/React.createElement("div", {
ref: this._menuContainerRef,

@@ -352,3 +360,3 @@ onMouseEnter: function onMouseEnter() {

return SubMenuItem;
}(_react["default"].Component);
}(React.Component);

@@ -381,2 +389,2 @@ exports["default"] = SubMenuItem;

});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9TdWJNZW51SXRlbS5qcyJdLCJuYW1lcyI6WyJTdWJNZW51SXRlbSIsIm9wZW5lZCIsIlJlYWN0IiwiY3JlYXRlUmVmIiwiX3N0b3BwZXIiLCJkZXN0cm95IiwibWVudUl0ZW0iLCJfbWVudUl0ZW1SZWYiLCJjdXJyZW50IiwiRXJyb3IiLCJsb2NrSGlnaGxpZ2h0Iiwic3RhdGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInByb3BzIiwib25XaWxsT3BlbiIsInRha2VLZXlib2FyZCIsInNldFN0YXRlIiwib25EaWRPcGVuIiwib25XaWxsQ2xvc2UiLCJyZWxlYXNlS2V5Ym9hcmQiLCJ1bmxvY2tIaWdobGlnaHQiLCJjbG9zZSIsIm9wZW4iLCJmbG9hdEFuY2hvciIsIl9mbG9hdEFuY2hvclJlZiIsInJlcG9zaXRpb24iLCJoYXNIaWdobGlnaHQiLCJieUtleWJvYXJkIiwiaGlnaGxpZ2h0IiwidW5oaWdobGlnaHQiLCJkaXJlY3Rpb24iLCJwcmV2Q3Vyc29yTG9jYXRpb24iLCJtb3ZlQ3Vyc29yIiwiaGlnaGxpZ2h0ZWQiLCJldmVudCIsIl9yZXNldE1vdXNlTGVhdmVXYXRjaGVyIiwiZW1pdCIsIk9QRU5fREVMQVkiLCJLZWZpciIsImxhdGVyIiwidGFrZVVudGlsQnkiLCJvblZhbHVlIiwibWVudUNvbnRhaW5lciIsIl9tZW51Q29udGFpbmVyUmVmIiwibWVudVJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJzdGFydFRpbWUiLCJEYXRlIiwibm93Iiwic3RhcnRYIiwicGFnZVgiLCJzdGFydFkiLCJwYWdlWSIsImdldERpc3RhbmNlIiwieCIsInkiLCJsZWZ0IiwidG9wIiwicmlnaHQiLCJ3aWR0aCIsImJvdHRvbSIsInN0YXJ0RGlzdGFuY2UiLCJsYXN0Q29vcmRzIiwiTUlOX1NQRUVEIiwiTUFYX1RJTUUiLCJMRUFEX1RJTUUiLCJmcm9tRXZlbnRzIiwid2luZG93IiwiYnVmZmVyQnkiLCJpbnRlcnZhbCIsIm1hcCIsImV2ZW50cyIsImxlbmd0aCIsImxhc3QiLCJmaWx0ZXIiLCJkaXN0YW5jZSIsIm1heERpc3RhbmNlIiwibWVyZ2UiLCJ0YWtlIiwiaW5kZXgiLCJoaWdobGlnaHRlZFN0eWxlIiwiaGlnaGxpZ2h0ZWRDbGFzc05hbWUiLCJwb3NpdGlvbk9wdGlvbnMiLCJtZW51WkluZGV4IiwiY2hpbGRyZW4iLCJtZW51Iiwic3R5bGUiLCJjbGFzc05hbWUiLCJvcGVuZWRTdHlsZSIsIm9wZW5lZENsYXNzTmFtZSIsIm1lbnVQYXJlbnRFbGVtZW50IiwiYW5jaG9yUmVmIiwiaCIsImUiLCJfb25IaWdobGlnaHRDaGFuZ2UiLCJfb25Nb3VzZUxlYXZlSXRlbSIsInN0b3BQcm9wYWdhdGlvbiIsInByZXZlbnREZWZhdWx0IiwibWVudUluc3BlY3RvciIsIl9tZW51SW5zcGVjdG9yUmVmIiwiX21vdXNlRW50ZXJNZW51IiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwibm9kZSIsIm9iamVjdCIsIm9uZU9mVHlwZSIsInN0cmluZyIsIm51bWJlciIsImZ1bmMiLCJvbkl0ZW1DaG9zZW4iLCJvbkhpZ2hsaWdodENoYW5nZSIsInBvc2l0aW9uIiwidkFsaWduIiwiaEFsaWduIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBOztBQUNBOztBQUVBOztBQUNBOztBQUVBOztBQUNBOztBQUVBOztBQUNBOztBQUdBOzs7Ozs7Ozs7O0lBMENxQkEsVzs7Ozs7Ozs7Ozs7Ozs7OzhGQTZCSjtBQUNiQyxNQUFBQSxNQUFNLEVBQUU7QUFESyxLO2tIQUlBQyxrQkFBTUMsU0FBTixFO3FIQUNHRCxrQkFBTUMsU0FBTixFO3VIQUNFRCxrQkFBTUMsU0FBTixFO3VIQUNBRCxrQkFBTUMsU0FBTixFO2dIQUNpQiwyQjtpR0FDMUIsK0I7Ozs7OzsyQ0FFWTtBQUNyQixXQUFLQyxRQUFMLENBQWNDLE9BQWQ7QUFDRDs7OzJCQUVxQjtBQUFBOztBQUNwQixVQUFNQyxRQUFRLEdBQUcsS0FBS0MsWUFBTCxDQUFrQkMsT0FBbkM7QUFDQSxV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a0JBeUJHO0FBQ3BCbUYsRUFBQUEsZUFBZSxFQUFFO0FBQUM2QixJQUFBQSxRQUFRLEVBQUUsT0FBWDtBQUFvQkMsSUFBQUEsTUFBTSxFQUFFLEtBQTVCO0FBQW1DQyxJQUFBQSxNQUFNLEVBQUU7QUFBM0M7QUFERyxDIiwic291cmNlc0NvbnRlbnQiOlsiLyogQGZsb3cgKi9cblxuaW1wb3J0IEtlZmlyIGZyb20gJ2tlZmlyJztcbmltcG9ydCBrZWZpckJ1cyBmcm9tICdrZWZpci1idXMnO1xuaW1wb3J0IHR5cGUge0J1c30gZnJvbSAna2VmaXItYnVzJztcbmltcG9ydCBrZWZpclN0b3BwZXIgZnJvbSAna2VmaXItc3RvcHBlcic7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUge05vZGUgYXMgUmVhY3ROb2RlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHBvaW50UmVjdERpc3RhbmNlIGZyb20gJy4vbGliL3BvaW50UmVjdERpc3RhbmNlJztcblxuaW1wb3J0IE1lbnVMaXN0SW5zcGVjdG9yIGZyb20gJy4vTWVudUxpc3RJbnNwZWN0b3InO1xuaW1wb3J0IEZsb2F0QW5jaG9yIGZyb20gJ3JlYWN0LWZsb2F0LWFuY2hvcic7XG5pbXBvcnQgdHlwZSB7T3B0aW9ucyBhcyBGbG9hdEFuY2hvck9wdGlvbnN9IGZyb20gJ3JlYWN0LWZsb2F0LWFuY2hvcic7XG5leHBvcnQgdHlwZSB7T3B0aW9ucyBhcyBGbG9hdEFuY2hvck9wdGlvbnN9IGZyb20gJ3JlYWN0LWZsb2F0LWFuY2hvcic7XG5pbXBvcnQgTWVudUl0ZW0gZnJvbSAnLi9NZW51SXRlbSc7XG5cbmltcG9ydCB0eXBlIHtEaXJlY3Rpb24sIFJlY3R9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgTWVudUV2ZW50IGZyb20gJy4vZXZlbnRzL01lbnVFdmVudCc7XG5pbXBvcnQgdHlwZSBDaG9zZW5FdmVudCBmcm9tICcuL2V2ZW50cy9DaG9zZW5FdmVudCc7XG5cbnR5cGUgU3RhdGUgPSB7XG4gIG9wZW5lZDogYm9vbGVhbixcbn07XG5cbmV4cG9ydCB0eXBlIFByb3BzID0ge1xuICBtZW51OiBSZWFjdE5vZGUsXG4gIHBvc2l0aW9uT3B0aW9uczogRmxvYXRBbmNob3JPcHRpb25zLFxuICBtZW51WkluZGV4Pzogc3RyaW5nIHwgbnVtYmVyLFxuICBtZW51UGFyZW50RWxlbWVudD86IEhUTUxFbGVtZW50LFxuXG4gIG9uV2lsbE9wZW4/OiAoKSA9PiB2b2lkLFxuICBvbkRpZE9wZW4/OiAoKSA9PiB2b2lkLFxuICBvbldpbGxDbG9zZT86ICgpID0+IHZvaWQsXG5cbiAgY2xhc3NOYW1lPzogc3RyaW5nLFxuICBzdHlsZT86IE9iamVjdCxcbiAgaGlnaGxpZ2h0ZWRDbGFzc05hbWU/OiBzdHJpbmcsXG4gIGhpZ2hsaWdodGVkU3R5bGU/OiBPYmplY3QsXG4gIGluZGV4PzogbnVtYmVyLFxuXG4gIG9wZW5lZENsYXNzTmFtZT86IHN0cmluZyxcbiAgb3BlbmVkU3R5bGU/OiBPYmplY3QsXG5cbiAgb25JdGVtQ2hvc2VuPzogKGV2ZW50OiBDaG9zZW5FdmVudCkgPT4gdm9pZCxcbiAgb25IaWdobGlnaHRDaGFuZ2U/OiAoXG4gICAgaGlnaGxpZ2h0ZWQ6IGJvb2xlYW4sXG4gICAgZGV0YWlsczoge1xuICAgICAgYnlLZXlib2FyZD86IGJvb2xlYW4sXG4gICAgICBwcmV2Q3Vyc29yTG9jYXRpb24/OiBSZWN0LFxuICAgICAgZGlyZWN0aW9uPzogRGlyZWN0aW9uLFxuICAgIH1cbiAgKSA9PiB2b2lkLFxuXG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3ViTWVudUl0ZW0gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8UHJvcHMsIFN0YXRlPiB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgbWVudTogUHJvcFR5cGVzLm5vZGUsXG4gICAgcG9zaXRpb25PcHRpb25zOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIG1lbnVaSW5kZXg6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXJdKSxcblxuICAgIG9uV2lsbE9wZW46IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uRGlkT3BlbjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25XaWxsQ2xvc2U6IFByb3BUeXBlcy5mdW5jLFxuXG4gICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGhpZ2hsaWdodGVkQ2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGhpZ2hsaWdodGVkU3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG5cbiAgICBvcGVuZWRDbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb3BlbmVkU3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG5cbiAgICBvbkl0ZW1DaG9zZW46IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uSGlnaGxpZ2h0Q2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcblxuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIHBvc2l0aW9uT3B0aW9uczoge3Bvc2l0aW9uOiAncmlnaHQnLCB2QWxpZ246ICd0b3AnLCBoQWxpZ246ICdsZWZ0J30sXG4gIH07XG5cbiAgc3RhdGU6IFN0YXRlID0ge1xuICAgIG9wZW5lZDogZmFsc2UsXG4gIH07XG5cbiAgX21lbnVJdGVtUmVmID0gUmVhY3QuY3JlYXRlUmVmPE1lbnVJdGVtPigpO1xuICBfZmxvYXRBbmNob3JSZWYgPSBSZWFjdC5jcmVhdGVSZWY8RmxvYXRBbmNob3I+KCk7XG4gIF9tZW51SW5zcGVjdG9yUmVmID0gUmVhY3QuY3JlYXRlUmVmPE1lbnVMaXN0SW5zcGVjdG9yPigpO1xuICBfbWVudUNvbnRhaW5lclJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcbiAgX3Jlc2V0TW91c2VMZWF2ZVdhdGNoZXI6IEJ1czxudWxsPiA9IGtlZmlyQnVzKCk7XG4gIF9zdG9wcGVyID0ga2VmaXJTdG9wcGVyKCk7XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgdGhpcy5fc3RvcHBlci5kZXN0cm95KCk7XG4gIH1cblxuICBvcGVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG1lbnVJdGVtID0gdGhpcy5fbWVudUl0ZW1SZWYuY3VycmVudDtcbiAgICBpZiAoIW1lbnVJdGVtKSB0aHJvdyBuZXcgRXJyb3IoKTtcblxuICAgIG1lbnVJdGVtLmxvY2tIaWdobGlnaHQoKTtcbiAgICBpZiAodGhpcy5zdGF0ZS5vcGVuZWQpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICBpZiAodGhpcy5wcm9wcy5vbldpbGxPcGVuKSB0aGlzLnByb3BzLm9uV2lsbE9wZW4oKTtcbiAgICBtZW51SXRlbS50YWtlS2V5Ym9hcmQoKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtvcGVuZWQ6IHRydWV9LCAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9uRGlkT3BlbikgdGhpcy5wcm9wcy5vbkRpZE9wZW4oKTtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICBjb25zdCBtZW51SXRlbSA9IHRoaXMuX21lbnVJdGVtUmVmLmN1cnJlbnQ7XG4gICAgaWYgKCFtZW51SXRlbSkgdGhyb3cgbmV3IEVycm9yKCk7XG5cbiAgICBpZiAoIXRoaXMuc3RhdGUub3BlbmVkKSByZXR1cm47XG4gICAgaWYgKHRoaXMucHJvcHMub25XaWxsQ2xvc2UpIHRoaXMucHJvcHMub25XaWxsQ2xvc2UoKTtcbiAgICB0aGlzLnNldFN0YXRlKHtvcGVuZWQ6IGZhbHNlfSk7XG4gICAgbWVudUl0ZW0ucmVsZWFzZUtleWJvYXJkKCk7XG4gICAgbWVudUl0ZW0udW5sb2NrSGlnaGxpZ2h0KCk7XG4gIH1cblxuICB0b2dnbGUoKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUub3BlbmVkKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIHJlcG9zaXRpb24oKSB7XG4gICAgY29uc3QgZmxvYXRBbmNob3IgPSB0aGlzLl9mbG9hdEFuY2hvclJlZi5jdXJyZW50O1xuICAgIGlmICghZmxvYXRBbmNob3IpIHRocm93IG5ldyBFcnJvcigpO1xuXG4gICAgZmxvYXRBbmNob3IucmVwb3NpdGlvbigpO1xuICB9XG5cbiAgaGFzSGlnaGxpZ2h0KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG1lbnVJdGVtID0gdGhpcy5fbWVudUl0ZW1SZWYuY3VycmVudDtcbiAgICBpZiAoIW1lbnVJdGVtKSB0aHJvdyBuZXcgRXJyb3IoKTtcblxuICAgIHJldHVybiBtZW51SXRlbS5oYXNIaWdobGlnaHQoKTtcbiAgfVxuXG4gIGhpZ2hsaWdodChieUtleWJvYXJkOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIGNvbnN0IG1lbnVJdGVtID0gdGhpcy5fbWVudUl0ZW1SZWYuY3VycmVudDtcbiAgICBpZiAoIW1lbnVJdGVtKSB0aHJvdyBuZXcgRXJyb3IoKTtcblxuICAgIG1lbnVJdGVtLmhpZ2hsaWdodChieUtleWJvYXJkKTtcbiAgfVxuXG4gIHVuaGlnaGxpZ2h0KCkge1xuICAgIGNvbnN0IG1lbnVJdGVtID0gdGhpcy5fbWVudUl0ZW1SZWYuY3VycmVudDtcbiAgICBpZiAoIW1lbnVJdGVtKSB0aHJvdyBuZXcgRXJyb3IoKTtcblxuICAgIG1lbnVJdGVtLnVuaGlnaGxpZ2h0KCk7XG4gIH1cblxuICBtb3ZlQ3Vyc29yKGRpcmVjdGlvbjogRGlyZWN0aW9uLCBwcmV2Q3Vyc29yTG9jYXRpb246ID9SZWN0KSB7XG4gICAgY29uc3QgbWVudUl0ZW0gPSB0aGlzLl9tZW51SXRlbVJlZi5jdXJyZW50O1xuICAgIGlmICghbWVudUl0ZW0pIHRocm93IG5ldyBFcnJvcigpO1xuXG4gICAgbWVudUl0ZW0ubW92ZUN1cnNvcihkaXJlY3Rpb24sIHByZXZDdXJzb3JMb2NhdGlvbik7XG4gIH1cblxuICBfb25IaWdobGlnaHRDaGFuZ2UoaGlnaGxpZ2h0ZWQ6IGJvb2xlYW4sIGV2ZW50OiBPYmplY3QpIHtcbiAgICB0aGlzLl9yZXNldE1vdXNlTGVhdmVXYXRjaGVyLmVtaXQobnVsbCk7XG5cbiAgICBpZiAoaGlnaGxpZ2h0ZWQgJiYgIWV2ZW50LmJ5S2V5Ym9hcmQpIHtcbiAgICAgIGNvbnN0IE9QRU5fREVMQVkgPSAyMDA7XG5cbiAgICAgIEtlZmlyLmxhdGVyKE9QRU5fREVMQVkpXG4gICAgICAgIC50YWtlVW50aWxCeSh0aGlzLl9yZXNldE1vdXNlTGVhdmVXYXRjaGVyKVxuICAgICAgICAudGFrZVVudGlsQnkodGhpcy5fc3RvcHBlcilcbiAgICAgICAgLm9uVmFsdWUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKCFoaWdobGlnaHRlZCkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIF9vbk1vdXNlTGVhdmVJdGVtKGV2ZW50OiBPYmplY3QpIHtcbiAgICBjb25zdCBtZW51SXRlbSA9IHRoaXMuX21lbnVJdGVtUmVmLmN1cnJlbnQ7XG4gICAgaWYgKCFtZW51SXRlbSkgdGhyb3cgbmV3IEVycm9yKCk7XG5cbiAgICBpZiAoIXRoaXMuc3RhdGUub3BlbmVkKSB7XG4gICAgICBtZW51SXRlbS51bmhpZ2hsaWdodCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1lbnVDb250YWluZXIgPSB0aGlzLl9tZW51Q29udGFpbmVyUmVmLmN1cnJlbnQ7XG4gICAgaWYgKCFtZW51Q29udGFpbmVyKSB0aHJvdyBuZXcgRXJyb3IoKTtcblxuICAgIC8vIElmIHRoZSBtb3VzZSBpc24ndCBnb2luZyB0b3dhcmQgdGhlIG1lbnUsIHRoZW4gdW5oaWdobGlnaHQgb3Vyc2VsZi5cblxuICAgIGNvbnN0IG1lbnVSZWN0ID0gbWVudUNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgY29uc3Qgc3RhcnRYID0gZXZlbnQucGFnZVgsXG4gICAgICBzdGFydFkgPSBldmVudC5wYWdlWTtcblxuICAgIGZ1bmN0aW9uIGdldERpc3RhbmNlKHgsIHkpIHtcbiAgICAgIHJldHVybiBwb2ludFJlY3REaXN0YW5jZShcbiAgICAgICAgeCxcbiAgICAgICAgeSxcbiAgICAgICAgbWVudVJlY3QubGVmdCxcbiAgICAgICAgbWVudVJlY3QudG9wLFxuICAgICAgICBtZW51UmVjdC5yaWdodCAtIG1lbnVSZWN0LndpZHRoLFxuICAgICAgICBtZW51UmVjdC5ib3R0b20gLSBtZW51UmVjdC50b3BcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnREaXN0YW5jZSA9IGdldERpc3RhbmNlKHN0YXJ0WCwgc3RhcnRZKTtcbiAgICBsZXQgbGFzdENvb3JkcyA9IHtwYWdlWDogc3RhcnRYLCBwYWdlWTogc3RhcnRZfTtcblxuICAgIC8vIHBpeGVscyBwZXIgc2Vjb25kIHRoZSB1c2VyIG11c3QgYmUgbW92aW5nIHRoZSBtb3VzZSB0b3dhcmQgdGhlIG1lbnUgZm9yXG4gICAgLy8gdGhlIG1lbnUgdG8gc3RheSBvcGVuLlxuICAgIGNvbnN0IE1JTl9TUEVFRCA9IDYwO1xuXG4gICAgLy8gbXMgYmVmb3JlIHRoZSBtZW51IHdpbGwgY2xvc2UgaWYgdGhlIHVzZXIgaGFzbid0IHJlYWNoZWQgaXQgeWV0LCBub1xuICAgIC8vIG1hdHRlciBob3cgdGhleSdyZSBtb3ZpbmcgdGhlIGN1cnNvciB0b3dhcmQgaXQuXG4gICAgY29uc3QgTUFYX1RJTUUgPSA3NTA7XG5cbiAgICAvLyBtcyB0byBvZmZzZXQgc3RhcnQgdGltZSwgdG8gc2V0IG1heERpc3RhbmNlIGJhY2sgYSBsaXR0bGUgc28gaXQncyBub3Qgc29cbiAgICAvLyB1bmZvcmdpdmluZyBhdCB0aGUgdmVyeSBzdGFydC5cbiAgICBjb25zdCBMRUFEX1RJTUUgPSA1MDtcblxuICAgIC8vIExpc3RlbiB0byBtb3VzZSBtb3ZlcywgZmluZCB0aGUgZmlyc3QgZXZlbnQgbm90IGdvaW5nIHRvd2FyZHMgdGhlIG1lbnUsXG4gICAgLy8gYW5kIGVuZCBpdCB0aGVyZS4gT3IgZW5kIGFmdGVyIGEgdGltZXIuXG4gICAgS2VmaXIuZnJvbUV2ZW50cyh3aW5kb3csICdtb3VzZW1vdmUnKVxuICAgICAgLmJ1ZmZlckJ5KEtlZmlyLmludGVydmFsKDYwLCBudWxsKSlcbiAgICAgIC5tYXAoZXZlbnRzID0+IHtcbiAgICAgICAgaWYgKGV2ZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICBjb25zdCBsYXN0ID0gZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXTtcbiAgICAgICAgICBsYXN0Q29vcmRzID0ge3BhZ2VYOiBsYXN0LnBhZ2VYLCBwYWdlWTogbGFzdC5wYWdlWX07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxhc3RDb29yZHM7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigoe3BhZ2VYLCBwYWdlWX0pID0+IHtcbiAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBnZXREaXN0YW5jZShwYWdlWCwgcGFnZVkpO1xuICAgICAgICBjb25zdCBtYXhEaXN0YW5jZSA9XG4gICAgICAgICAgc3RhcnREaXN0YW5jZSAtXG4gICAgICAgICAgKChEYXRlLm5vdygpIC0gc3RhcnRUaW1lIC0gTEVBRF9USU1FKSAvIDEwMDApICogTUlOX1NQRUVEO1xuICAgICAgICByZXR1cm4gZGlzdGFuY2UgPiBtYXhEaXN0YW5jZTtcbiAgICAgIH0pXG4gICAgICAubWVyZ2UoS2VmaXIubGF0ZXIoTUFYX1RJTUUgKiAxMDAwKSlcbiAgICAgIC50YWtlKDEpXG4gICAgICAudGFrZVVudGlsQnkodGhpcy5fcmVzZXRNb3VzZUxlYXZlV2F0Y2hlcilcbiAgICAgIC50YWtlVW50aWxCeSh0aGlzLl9zdG9wcGVyKVxuICAgICAgLm9uVmFsdWUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIG1lbnVJdGVtLnVuaGlnaGxpZ2h0KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIF9tb3VzZUVudGVyTWVudSgpIHtcbiAgICBjb25zdCBtZW51SXRlbSA9IHRoaXMuX21lbnVJdGVtUmVmLmN1cnJlbnQ7XG4gICAgaWYgKCFtZW51SXRlbSkgdGhyb3cgbmV3IEVycm9yKCk7XG5cbiAgICB0aGlzLl9yZXNldE1vdXNlTGVhdmVXYXRjaGVyLmVtaXQobnVsbCk7XG4gICAgbWVudUl0ZW0udW5sb2NrSGlnaGxpZ2h0KCk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgaW5kZXgsXG4gICAgICBoaWdobGlnaHRlZFN0eWxlLFxuICAgICAgaGlnaGxpZ2h0ZWRDbGFzc05hbWUsXG4gICAgICBwb3NpdGlvbk9wdGlvbnMsXG4gICAgICBtZW51WkluZGV4LFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBtZW51LFxuICAgIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHtvcGVuZWR9ID0gdGhpcy5zdGF0ZTtcblxuICAgIGxldCBzdHlsZSA9IHRoaXMucHJvcHMuc3R5bGU7XG4gICAgbGV0IGNsYXNzTmFtZSA9IHRoaXMucHJvcHMuY2xhc3NOYW1lO1xuICAgIGlmIChvcGVuZWQpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLm9wZW5lZFN0eWxlKSB7XG4gICAgICAgIHN0eWxlID0gey4uLnN0eWxlLCAuLi50aGlzLnByb3BzLm9wZW5lZFN0eWxlfTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnByb3BzLm9wZW5lZENsYXNzTmFtZSkge1xuICAgICAgICBjbGFzc05hbWUgPSBgJHtjbGFzc05hbWUgfHwgJyd9ICR7dGhpcy5wcm9wcy5vcGVuZWRDbGFzc05hbWV9YDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEZsb2F0QW5jaG9yXG4gICAgICAgIHBhcmVudEVsZW1lbnQ9e3RoaXMucHJvcHMubWVudVBhcmVudEVsZW1lbnR9XG4gICAgICAgIHJlZj17dGhpcy5fZmxvYXRBbmNob3JSZWZ9XG4gICAgICAgIG9wdGlvbnM9e3Bvc2l0aW9uT3B0aW9uc31cbiAgICAgICAgekluZGV4PXttZW51WkluZGV4fVxuICAgICAgICBhbmNob3I9e2FuY2hvclJlZiA9PiAoXG4gICAgICAgICAgPE1lbnVJdGVtXG4gICAgICAgICAgICByZWY9e3RoaXMuX21lbnVJdGVtUmVmfVxuICAgICAgICAgICAgZG9tUmVmPXthbmNob3JSZWZ9XG4gICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgIGhpZ2hsaWdodGVkU3R5bGU9e2hpZ2hsaWdodGVkU3R5bGV9XG4gICAgICAgICAgICBoaWdobGlnaHRlZENsYXNzTmFtZT17aGlnaGxpZ2h0ZWRDbGFzc05hbWV9XG4gICAgICAgICAgICBvbkhpZ2hsaWdodENoYW5nZT17KGgsIGUpID0+IHRoaXMuX29uSGlnaGxpZ2h0Q2hhbmdlKGgsIGUpfVxuICAgICAgICAgICAgb25Nb3VzZUxlYXZlPXtlID0+IHRoaXMuX29uTW91c2VMZWF2ZUl0ZW0oZSl9XG4gICAgICAgICAgICBvblJpZ2h0UHVzaGVkPXsoZTogTWVudUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGlmICghdGhpcy5zdGF0ZS5vcGVuZWQpIHtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtZW51SW5zcGVjdG9yID0gdGhpcy5fbWVudUluc3BlY3RvclJlZi5jdXJyZW50O1xuICAgICAgICAgICAgICAgIGlmICghbWVudUluc3BlY3RvcikgdGhyb3cgbmV3IEVycm9yKCk7XG4gICAgICAgICAgICAgICAgbWVudUluc3BlY3Rvci5tb3ZlQ3Vyc29yKCdkb3duJyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBvbkl0ZW1DaG9zZW49eyhlOiBDaG9zZW5FdmVudCkgPT4ge1xuICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICAgICAgICBpZiAoZS5ieUtleWJvYXJkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWVudUluc3BlY3RvciA9IHRoaXMuX21lbnVJbnNwZWN0b3JSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICBpZiAoIW1lbnVJbnNwZWN0b3IpIHRocm93IG5ldyBFcnJvcigpO1xuICAgICAgICAgICAgICAgIG1lbnVJbnNwZWN0b3IubW92ZUN1cnNvcignZG93bicpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD17dHJ1ZX1cbiAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e29wZW5lZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgPC9NZW51SXRlbT5cbiAgICAgICAgKX1cbiAgICAgICAgZmxvYXQ9e1xuICAgICAgICAgICFvcGVuZWQgPyBudWxsIDogKFxuICAgICAgICAgICAgPE1lbnVMaXN0SW5zcGVjdG9yXG4gICAgICAgICAgICAgIHJlZj17dGhpcy5fbWVudUluc3BlY3RvclJlZn1cbiAgICAgICAgICAgICAgb25MZWZ0UHVzaGVkPXtlID0+IHtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICByZWY9e3RoaXMuX21lbnVDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiB0aGlzLl9tb3VzZUVudGVyTWVudSgpfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge21lbnV9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9NZW51TGlzdEluc3BlY3Rvcj5cbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9TdWJNZW51SXRlbS5qcyJdLCJuYW1lcyI6WyJTdWJNZW51SXRlbSIsIm9wZW5lZCIsIlJlYWN0IiwiY3JlYXRlUmVmIiwiX3N0b3BwZXIiLCJkZXN0cm95IiwibWVudUl0ZW0iLCJfbWVudUl0ZW1SZWYiLCJjdXJyZW50IiwiRXJyb3IiLCJsb2NrSGlnaGxpZ2h0Iiwic3RhdGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInByb3BzIiwib25XaWxsT3BlbiIsInRha2VLZXlib2FyZCIsInNldFN0YXRlIiwib25EaWRPcGVuIiwib25XaWxsQ2xvc2UiLCJyZWxlYXNlS2V5Ym9hcmQiLCJ1bmxvY2tIaWdobGlnaHQiLCJjbG9zZSIsIm9wZW4iLCJmbG9hdEFuY2hvciIsIl9mbG9hdEFuY2hvclJlZiIsInJlcG9zaXRpb24iLCJoYXNIaWdobGlnaHQiLCJieUtleWJvYXJkIiwiaGlnaGxpZ2h0IiwidW5oaWdobGlnaHQiLCJkaXJlY3Rpb24iLCJwcmV2Q3Vyc29yTG9jYXRpb24iLCJtb3ZlQ3Vyc29yIiwiaGlnaGxpZ2h0ZWQiLCJldmVudCIsIl9yZXNldE1vdXNlTGVhdmVXYXRjaGVyIiwiZW1pdCIsIk9QRU5fREVMQVkiLCJLZWZpciIsImxhdGVyIiwidGFrZVVudGlsQnkiLCJvblZhbHVlIiwiUmVhY3RET00iLCJ1bnN0YWJsZV9iYXRjaGVkVXBkYXRlcyIsIm1lbnVDb250YWluZXIiLCJfbWVudUNvbnRhaW5lclJlZiIsIm1lbnVSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0Iiwic3RhcnRUaW1lIiwiRGF0ZSIsIm5vdyIsInN0YXJ0WCIsInBhZ2VYIiwic3RhcnRZIiwicGFnZVkiLCJnZXREaXN0YW5jZSIsIngiLCJ5IiwibGVmdCIsInRvcCIsInJpZ2h0Iiwid2lkdGgiLCJib3R0b20iLCJzdGFydERpc3RhbmNlIiwibGFzdENvb3JkcyIsIk1JTl9TUEVFRCIsIk1BWF9USU1FIiwiTEVBRF9USU1FIiwiZnJvbUV2ZW50cyIsIndpbmRvdyIsImJ1ZmZlckJ5IiwiaW50ZXJ2YWwiLCJtYXAiLCJldmVudHMiLCJsZW5ndGgiLCJsYXN0IiwiZmlsdGVyIiwiZGlzdGFuY2UiLCJtYXhEaXN0YW5jZSIsIm1lcmdlIiwidGFrZSIsImluZGV4IiwiaGlnaGxpZ2h0ZWRTdHlsZSIsImhpZ2hsaWdodGVkQ2xhc3NOYW1lIiwicG9zaXRpb25PcHRpb25zIiwibWVudVpJbmRleCIsImNoaWxkcmVuIiwibWVudSIsInN0eWxlIiwiY2xhc3NOYW1lIiwib3BlbmVkU3R5bGUiLCJvcGVuZWRDbGFzc05hbWUiLCJtZW51UGFyZW50RWxlbWVudCIsImFuY2hvclJlZiIsImgiLCJlIiwiX29uSGlnaGxpZ2h0Q2hhbmdlIiwiX29uTW91c2VMZWF2ZUl0ZW0iLCJzdG9wUHJvcGFnYXRpb24iLCJwcmV2ZW50RGVmYXVsdCIsIm1lbnVJbnNwZWN0b3IiLCJfbWVudUluc3BlY3RvclJlZiIsIl9tb3VzZUVudGVyTWVudSIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm5vZGUiLCJvYmplY3QiLCJvbmVPZlR5cGUiLCJzdHJpbmciLCJudW1iZXIiLCJmdW5jIiwib25JdGVtQ2hvc2VuIiwib25IaWdobGlnaHRDaGFuZ2UiLCJwb3NpdGlvbiIsInZBbGlnbiIsImhBbGlnbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUVBOztBQUNBOztBQUdBOzs7Ozs7Ozs7O0lBMENxQkEsVzs7Ozs7Ozs7Ozs7Ozs7OzhGQTZCSjtBQUNiQyxNQUFBQSxNQUFNLEVBQUU7QUFESyxLO2tIQUlBQyxLQUFLLENBQUNDLFNBQU4sRTtxSEFDR0QsS0FBSyxDQUFDQyxTQUFOLEU7dUhBQ0VELEtBQUssQ0FBQ0MsU0FBTixFO3VIQUNBRCxLQUFLLENBQUNDLFNBQU4sRTtnSEFDaUIsMkI7aUdBQzFCLCtCOzs7Ozs7V0FFWCxnQ0FBdUI7QUFDckIsV0FBS0MsUUFBTCxDQUFjQyxPQUFkO0FBQ0Q7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QkFBVUUsTUFaWDtBQWFqQnpCLEVBQUFBLEtBQUssRUFBRXVCLHNCQUFVSyxNQWJBO0FBZWpCbEIsRUFBQUEsZUFBZSxFQUFFYSxzQkFBVUksTUFmVjtBQWdCakJsQixFQUFBQSxXQUFXLEVBQUVjLHNCQUFVRSxNQWhCTjtBQWtCakJLLEVBQUFBLFlBQVksRUFBRVAsc0JBQVVNLElBbEJQO0FBbUJqQkUsRUFBQUEsaUJBQWlCLEVBQUVSLHNCQUFVTSxJQW5CWjtBQXFCakJ4QixFQUFBQSxRQUFRLEVBQUVrQixzQkFBVUM7QUFyQkgsQztpQ0FEQTFHLFcsa0JBeUJHO0FBQ3BCcUYsRUFBQUEsZUFBZSxFQUFFO0FBQUM2QixJQUFBQSxRQUFRLEVBQUUsT0FBWDtBQUFvQkMsSUFBQUEsTUFBTSxFQUFFLEtBQTVCO0FBQW1DQyxJQUFBQSxNQUFNLEVBQUU7QUFBM0M7QUFERyxDIiwic291cmNlc0NvbnRlbnQiOlsiLyogQGZsb3cgKi9cblxuaW1wb3J0IEtlZmlyIGZyb20gJ2tlZmlyJztcbmltcG9ydCBrZWZpckJ1cyBmcm9tICdrZWZpci1idXMnO1xuaW1wb3J0IHR5cGUge0J1c30gZnJvbSAna2VmaXItYnVzJztcbmltcG9ydCBrZWZpclN0b3BwZXIgZnJvbSAna2VmaXItc3RvcHBlcic7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHR5cGUge05vZGUgYXMgUmVhY3ROb2RlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHBvaW50UmVjdERpc3RhbmNlIGZyb20gJy4vbGliL3BvaW50UmVjdERpc3RhbmNlJztcblxuaW1wb3J0IE1lbnVMaXN0SW5zcGVjdG9yIGZyb20gJy4vTWVudUxpc3RJbnNwZWN0b3InO1xuaW1wb3J0IEZsb2F0QW5jaG9yIGZyb20gJ3JlYWN0LWZsb2F0LWFuY2hvcic7XG5pbXBvcnQgdHlwZSB7T3B0aW9ucyBhcyBGbG9hdEFuY2hvck9wdGlvbnN9IGZyb20gJ3JlYWN0LWZsb2F0LWFuY2hvcic7XG5leHBvcnQgdHlwZSB7T3B0aW9ucyBhcyBGbG9hdEFuY2hvck9wdGlvbnN9IGZyb20gJ3JlYWN0LWZsb2F0LWFuY2hvcic7XG5pbXBvcnQgTWVudUl0ZW0gZnJvbSAnLi9NZW51SXRlbSc7XG5cbmltcG9ydCB0eXBlIHtEaXJlY3Rpb24sIFJlY3R9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgTWVudUV2ZW50IGZyb20gJy4vZXZlbnRzL01lbnVFdmVudCc7XG5pbXBvcnQgdHlwZSBDaG9zZW5FdmVudCBmcm9tICcuL2V2ZW50cy9DaG9zZW5FdmVudCc7XG5cbnR5cGUgU3RhdGUgPSB7XG4gIG9wZW5lZDogYm9vbGVhbixcbn07XG5cbmV4cG9ydCB0eXBlIFByb3BzID0ge1xuICBtZW51OiBSZWFjdE5vZGUsXG4gIHBvc2l0aW9uT3B0aW9uczogRmxvYXRBbmNob3JPcHRpb25zLFxuICBtZW51WkluZGV4Pzogc3RyaW5nIHwgbnVtYmVyLFxuICBtZW51UGFyZW50RWxlbWVudD86IEhUTUxFbGVtZW50LFxuXG4gIG9uV2lsbE9wZW4/OiAoKSA9PiB2b2lkLFxuICBvbkRpZE9wZW4/OiAoKSA9PiB2b2lkLFxuICBvbldpbGxDbG9zZT86ICgpID0+IHZvaWQsXG5cbiAgY2xhc3NOYW1lPzogc3RyaW5nLFxuICBzdHlsZT86IE9iamVjdCxcbiAgaGlnaGxpZ2h0ZWRDbGFzc05hbWU/OiBzdHJpbmcsXG4gIGhpZ2hsaWdodGVkU3R5bGU/OiBPYmplY3QsXG4gIGluZGV4PzogbnVtYmVyLFxuXG4gIG9wZW5lZENsYXNzTmFtZT86IHN0cmluZyxcbiAgb3BlbmVkU3R5bGU/OiBPYmplY3QsXG5cbiAgb25JdGVtQ2hvc2VuPzogKGV2ZW50OiBDaG9zZW5FdmVudCkgPT4gdm9pZCxcbiAgb25IaWdobGlnaHRDaGFuZ2U/OiAoXG4gICAgaGlnaGxpZ2h0ZWQ6IGJvb2xlYW4sXG4gICAgZGV0YWlsczoge1xuICAgICAgYnlLZXlib2FyZD86IGJvb2xlYW4sXG4gICAgICBwcmV2Q3Vyc29yTG9jYXRpb24/OiBSZWN0LFxuICAgICAgZGlyZWN0aW9uPzogRGlyZWN0aW9uLFxuICAgIH1cbiAgKSA9PiB2b2lkLFxuXG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3ViTWVudUl0ZW0gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8UHJvcHMsIFN0YXRlPiB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgbWVudTogUHJvcFR5cGVzLm5vZGUsXG4gICAgcG9zaXRpb25PcHRpb25zOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIG1lbnVaSW5kZXg6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXJdKSxcblxuICAgIG9uV2lsbE9wZW46IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uRGlkT3BlbjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25XaWxsQ2xvc2U6IFByb3BUeXBlcy5mdW5jLFxuXG4gICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGhpZ2hsaWdodGVkQ2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGhpZ2hsaWdodGVkU3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG5cbiAgICBvcGVuZWRDbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb3BlbmVkU3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG5cbiAgICBvbkl0ZW1DaG9zZW46IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uSGlnaGxpZ2h0Q2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcblxuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIHBvc2l0aW9uT3B0aW9uczoge3Bvc2l0aW9uOiAncmlnaHQnLCB2QWxpZ246ICd0b3AnLCBoQWxpZ246ICdsZWZ0J30sXG4gIH07XG5cbiAgc3RhdGU6IFN0YXRlID0ge1xuICAgIG9wZW5lZDogZmFsc2UsXG4gIH07XG5cbiAgX21lbnVJdGVtUmVmID0gUmVhY3QuY3JlYXRlUmVmPE1lbnVJdGVtPigpO1xuICBfZmxvYXRBbmNob3JSZWYgPSBSZWFjdC5jcmVhdGVSZWY8RmxvYXRBbmNob3I+KCk7XG4gIF9tZW51SW5zcGVjdG9yUmVmID0gUmVhY3QuY3JlYXRlUmVmPE1lbnVMaXN0SW5zcGVjdG9yPigpO1xuICBfbWVudUNvbnRhaW5lclJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcbiAgX3Jlc2V0TW91c2VMZWF2ZVdhdGNoZXI6IEJ1czxudWxsPiA9IGtlZmlyQnVzKCk7XG4gIF9zdG9wcGVyID0ga2VmaXJTdG9wcGVyKCk7XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgdGhpcy5fc3RvcHBlci5kZXN0cm95KCk7XG4gIH1cblxuICBvcGVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG1lbnVJdGVtID0gdGhpcy5fbWVudUl0ZW1SZWYuY3VycmVudDtcbiAgICBpZiAoIW1lbnVJdGVtKSB0aHJvdyBuZXcgRXJyb3IoKTtcblxuICAgIG1lbnVJdGVtLmxvY2tIaWdobGlnaHQoKTtcbiAgICBpZiAodGhpcy5zdGF0ZS5vcGVuZWQpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICBpZiAodGhpcy5wcm9wcy5vbldpbGxPcGVuKSB0aGlzLnByb3BzLm9uV2lsbE9wZW4oKTtcbiAgICBtZW51SXRlbS50YWtlS2V5Ym9hcmQoKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtvcGVuZWQ6IHRydWV9LCAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9uRGlkT3BlbikgdGhpcy5wcm9wcy5vbkRpZE9wZW4oKTtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICBjb25zdCBtZW51SXRlbSA9IHRoaXMuX21lbnVJdGVtUmVmLmN1cnJlbnQ7XG4gICAgaWYgKCFtZW51SXRlbSkgdGhyb3cgbmV3IEVycm9yKCk7XG5cbiAgICBpZiAoIXRoaXMuc3RhdGUub3BlbmVkKSByZXR1cm47XG4gICAgaWYgKHRoaXMucHJvcHMub25XaWxsQ2xvc2UpIHRoaXMucHJvcHMub25XaWxsQ2xvc2UoKTtcbiAgICB0aGlzLnNldFN0YXRlKHtvcGVuZWQ6IGZhbHNlfSk7XG4gICAgbWVudUl0ZW0ucmVsZWFzZUtleWJvYXJkKCk7XG4gICAgbWVudUl0ZW0udW5sb2NrSGlnaGxpZ2h0KCk7XG4gIH1cblxuICB0b2dnbGUoKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUub3BlbmVkKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIHJlcG9zaXRpb24oKSB7XG4gICAgY29uc3QgZmxvYXRBbmNob3IgPSB0aGlzLl9mbG9hdEFuY2hvclJlZi5jdXJyZW50O1xuICAgIGlmICghZmxvYXRBbmNob3IpIHRocm93IG5ldyBFcnJvcigpO1xuXG4gICAgZmxvYXRBbmNob3IucmVwb3NpdGlvbigpO1xuICB9XG5cbiAgaGFzSGlnaGxpZ2h0KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG1lbnVJdGVtID0gdGhpcy5fbWVudUl0ZW1SZWYuY3VycmVudDtcbiAgICBpZiAoIW1lbnVJdGVtKSB0aHJvdyBuZXcgRXJyb3IoKTtcblxuICAgIHJldHVybiBtZW51SXRlbS5oYXNIaWdobGlnaHQoKTtcbiAgfVxuXG4gIGhpZ2hsaWdodChieUtleWJvYXJkOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIGNvbnN0IG1lbnVJdGVtID0gdGhpcy5fbWVudUl0ZW1SZWYuY3VycmVudDtcbiAgICBpZiAoIW1lbnVJdGVtKSB0aHJvdyBuZXcgRXJyb3IoKTtcblxuICAgIG1lbnVJdGVtLmhpZ2hsaWdodChieUtleWJvYXJkKTtcbiAgfVxuXG4gIHVuaGlnaGxpZ2h0KCkge1xuICAgIGNvbnN0IG1lbnVJdGVtID0gdGhpcy5fbWVudUl0ZW1SZWYuY3VycmVudDtcbiAgICBpZiAoIW1lbnVJdGVtKSB0aHJvdyBuZXcgRXJyb3IoKTtcblxuICAgIG1lbnVJdGVtLnVuaGlnaGxpZ2h0KCk7XG4gIH1cblxuICBtb3ZlQ3Vyc29yKGRpcmVjdGlvbjogRGlyZWN0aW9uLCBwcmV2Q3Vyc29yTG9jYXRpb246ID9SZWN0KSB7XG4gICAgY29uc3QgbWVudUl0ZW0gPSB0aGlzLl9tZW51SXRlbVJlZi5jdXJyZW50O1xuICAgIGlmICghbWVudUl0ZW0pIHRocm93IG5ldyBFcnJvcigpO1xuXG4gICAgbWVudUl0ZW0ubW92ZUN1cnNvcihkaXJlY3Rpb24sIHByZXZDdXJzb3JMb2NhdGlvbik7XG4gIH1cblxuICBfb25IaWdobGlnaHRDaGFuZ2UoaGlnaGxpZ2h0ZWQ6IGJvb2xlYW4sIGV2ZW50OiBPYmplY3QpIHtcbiAgICB0aGlzLl9yZXNldE1vdXNlTGVhdmVXYXRjaGVyLmVtaXQobnVsbCk7XG5cbiAgICBpZiAoaGlnaGxpZ2h0ZWQgJiYgIWV2ZW50LmJ5S2V5Ym9hcmQpIHtcbiAgICAgIGNvbnN0IE9QRU5fREVMQVkgPSAyMDA7XG5cbiAgICAgIEtlZmlyLmxhdGVyKE9QRU5fREVMQVkpXG4gICAgICAgIC50YWtlVW50aWxCeSh0aGlzLl9yZXNldE1vdXNlTGVhdmVXYXRjaGVyKVxuICAgICAgICAudGFrZVVudGlsQnkodGhpcy5fc3RvcHBlcilcbiAgICAgICAgLm9uVmFsdWUoKCkgPT4ge1xuICAgICAgICAgIFJlYWN0RE9NLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKCFoaWdobGlnaHRlZCkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIF9vbk1vdXNlTGVhdmVJdGVtKGV2ZW50OiBPYmplY3QpIHtcbiAgICBjb25zdCBtZW51SXRlbSA9IHRoaXMuX21lbnVJdGVtUmVmLmN1cnJlbnQ7XG4gICAgaWYgKCFtZW51SXRlbSkgdGhyb3cgbmV3IEVycm9yKCk7XG5cbiAgICBpZiAoIXRoaXMuc3RhdGUub3BlbmVkKSB7XG4gICAgICBtZW51SXRlbS51bmhpZ2hsaWdodCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1lbnVDb250YWluZXIgPSB0aGlzLl9tZW51Q29udGFpbmVyUmVmLmN1cnJlbnQ7XG4gICAgaWYgKCFtZW51Q29udGFpbmVyKSB0aHJvdyBuZXcgRXJyb3IoKTtcblxuICAgIC8vIElmIHRoZSBtb3VzZSBpc24ndCBnb2luZyB0b3dhcmQgdGhlIG1lbnUsIHRoZW4gdW5oaWdobGlnaHQgb3Vyc2VsZi5cblxuICAgIGNvbnN0IG1lbnVSZWN0ID0gbWVudUNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgY29uc3Qgc3RhcnRYID0gZXZlbnQucGFnZVgsXG4gICAgICBzdGFydFkgPSBldmVudC5wYWdlWTtcblxuICAgIGZ1bmN0aW9uIGdldERpc3RhbmNlKHgsIHkpIHtcbiAgICAgIHJldHVybiBwb2ludFJlY3REaXN0YW5jZShcbiAgICAgICAgeCxcbiAgICAgICAgeSxcbiAgICAgICAgbWVudVJlY3QubGVmdCxcbiAgICAgICAgbWVudVJlY3QudG9wLFxuICAgICAgICBtZW51UmVjdC5yaWdodCAtIG1lbnVSZWN0LndpZHRoLFxuICAgICAgICBtZW51UmVjdC5ib3R0b20gLSBtZW51UmVjdC50b3BcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnREaXN0YW5jZSA9IGdldERpc3RhbmNlKHN0YXJ0WCwgc3RhcnRZKTtcbiAgICBsZXQgbGFzdENvb3JkcyA9IHtwYWdlWDogc3RhcnRYLCBwYWdlWTogc3RhcnRZfTtcblxuICAgIC8vIHBpeGVscyBwZXIgc2Vjb25kIHRoZSB1c2VyIG11c3QgYmUgbW92aW5nIHRoZSBtb3VzZSB0b3dhcmQgdGhlIG1lbnUgZm9yXG4gICAgLy8gdGhlIG1lbnUgdG8gc3RheSBvcGVuLlxuICAgIGNvbnN0IE1JTl9TUEVFRCA9IDYwO1xuXG4gICAgLy8gbXMgYmVmb3JlIHRoZSBtZW51IHdpbGwgY2xvc2UgaWYgdGhlIHVzZXIgaGFzbid0IHJlYWNoZWQgaXQgeWV0LCBub1xuICAgIC8vIG1hdHRlciBob3cgdGhleSdyZSBtb3ZpbmcgdGhlIGN1cnNvciB0b3dhcmQgaXQuXG4gICAgY29uc3QgTUFYX1RJTUUgPSA3NTA7XG5cbiAgICAvLyBtcyB0byBvZmZzZXQgc3RhcnQgdGltZSwgdG8gc2V0IG1heERpc3RhbmNlIGJhY2sgYSBsaXR0bGUgc28gaXQncyBub3Qgc29cbiAgICAvLyB1bmZvcmdpdmluZyBhdCB0aGUgdmVyeSBzdGFydC5cbiAgICBjb25zdCBMRUFEX1RJTUUgPSA1MDtcblxuICAgIC8vIExpc3RlbiB0byBtb3VzZSBtb3ZlcywgZmluZCB0aGUgZmlyc3QgZXZlbnQgbm90IGdvaW5nIHRvd2FyZHMgdGhlIG1lbnUsXG4gICAgLy8gYW5kIGVuZCBpdCB0aGVyZS4gT3IgZW5kIGFmdGVyIGEgdGltZXIuXG4gICAgS2VmaXIuZnJvbUV2ZW50cyh3aW5kb3csICdtb3VzZW1vdmUnKVxuICAgICAgLmJ1ZmZlckJ5KEtlZmlyLmludGVydmFsKDYwLCBudWxsKSlcbiAgICAgIC5tYXAoZXZlbnRzID0+IHtcbiAgICAgICAgaWYgKGV2ZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICBjb25zdCBsYXN0ID0gZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXTtcbiAgICAgICAgICBsYXN0Q29vcmRzID0ge3BhZ2VYOiBsYXN0LnBhZ2VYLCBwYWdlWTogbGFzdC5wYWdlWX07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxhc3RDb29yZHM7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigoe3BhZ2VYLCBwYWdlWX0pID0+IHtcbiAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBnZXREaXN0YW5jZShwYWdlWCwgcGFnZVkpO1xuICAgICAgICBjb25zdCBtYXhEaXN0YW5jZSA9XG4gICAgICAgICAgc3RhcnREaXN0YW5jZSAtXG4gICAgICAgICAgKChEYXRlLm5vdygpIC0gc3RhcnRUaW1lIC0gTEVBRF9USU1FKSAvIDEwMDApICogTUlOX1NQRUVEO1xuICAgICAgICByZXR1cm4gZGlzdGFuY2UgPiBtYXhEaXN0YW5jZTtcbiAgICAgIH0pXG4gICAgICAubWVyZ2UoS2VmaXIubGF0ZXIoTUFYX1RJTUUgKiAxMDAwKSlcbiAgICAgIC50YWtlKDEpXG4gICAgICAudGFrZVVudGlsQnkodGhpcy5fcmVzZXRNb3VzZUxlYXZlV2F0Y2hlcilcbiAgICAgIC50YWtlVW50aWxCeSh0aGlzLl9zdG9wcGVyKVxuICAgICAgLm9uVmFsdWUoKCkgPT4ge1xuICAgICAgICBSZWFjdERPTS51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcygoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgIG1lbnVJdGVtLnVuaGlnaGxpZ2h0KCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBfbW91c2VFbnRlck1lbnUoKSB7XG4gICAgY29uc3QgbWVudUl0ZW0gPSB0aGlzLl9tZW51SXRlbVJlZi5jdXJyZW50O1xuICAgIGlmICghbWVudUl0ZW0pIHRocm93IG5ldyBFcnJvcigpO1xuXG4gICAgdGhpcy5fcmVzZXRNb3VzZUxlYXZlV2F0Y2hlci5lbWl0KG51bGwpO1xuICAgIG1lbnVJdGVtLnVubG9ja0hpZ2hsaWdodCgpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGluZGV4LFxuICAgICAgaGlnaGxpZ2h0ZWRTdHlsZSxcbiAgICAgIGhpZ2hsaWdodGVkQ2xhc3NOYW1lLFxuICAgICAgcG9zaXRpb25PcHRpb25zLFxuICAgICAgbWVudVpJbmRleCxcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgbWVudSxcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7b3BlbmVkfSA9IHRoaXMuc3RhdGU7XG5cbiAgICBsZXQgc3R5bGUgPSB0aGlzLnByb3BzLnN0eWxlO1xuICAgIGxldCBjbGFzc05hbWUgPSB0aGlzLnByb3BzLmNsYXNzTmFtZTtcbiAgICBpZiAob3BlbmVkKSB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5vcGVuZWRTdHlsZSkge1xuICAgICAgICBzdHlsZSA9IHsuLi5zdHlsZSwgLi4udGhpcy5wcm9wcy5vcGVuZWRTdHlsZX07XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5wcm9wcy5vcGVuZWRDbGFzc05hbWUpIHtcbiAgICAgICAgY2xhc3NOYW1lID0gYCR7Y2xhc3NOYW1lIHx8ICcnfSAke3RoaXMucHJvcHMub3BlbmVkQ2xhc3NOYW1lfWA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxGbG9hdEFuY2hvclxuICAgICAgICBwYXJlbnRFbGVtZW50PXt0aGlzLnByb3BzLm1lbnVQYXJlbnRFbGVtZW50fVxuICAgICAgICByZWY9e3RoaXMuX2Zsb2F0QW5jaG9yUmVmfVxuICAgICAgICBvcHRpb25zPXtwb3NpdGlvbk9wdGlvbnN9XG4gICAgICAgIHpJbmRleD17bWVudVpJbmRleH1cbiAgICAgICAgYW5jaG9yPXthbmNob3JSZWYgPT4gKFxuICAgICAgICAgIDxNZW51SXRlbVxuICAgICAgICAgICAgcmVmPXt0aGlzLl9tZW51SXRlbVJlZn1cbiAgICAgICAgICAgIGRvbVJlZj17YW5jaG9yUmVmfVxuICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgICBoaWdobGlnaHRlZFN0eWxlPXtoaWdobGlnaHRlZFN0eWxlfVxuICAgICAgICAgICAgaGlnaGxpZ2h0ZWRDbGFzc05hbWU9e2hpZ2hsaWdodGVkQ2xhc3NOYW1lfVxuICAgICAgICAgICAgb25IaWdobGlnaHRDaGFuZ2U9eyhoLCBlKSA9PiB0aGlzLl9vbkhpZ2hsaWdodENoYW5nZShoLCBlKX1cbiAgICAgICAgICAgIG9uTW91c2VMZWF2ZT17ZSA9PiB0aGlzLl9vbk1vdXNlTGVhdmVJdGVtKGUpfVxuICAgICAgICAgICAgb25SaWdodFB1c2hlZD17KGU6IE1lbnVFdmVudCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGUub3BlbmVkKSB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbWVudUluc3BlY3RvciA9IHRoaXMuX21lbnVJbnNwZWN0b3JSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICBpZiAoIW1lbnVJbnNwZWN0b3IpIHRocm93IG5ldyBFcnJvcigpO1xuICAgICAgICAgICAgICAgIG1lbnVJbnNwZWN0b3IubW92ZUN1cnNvcignZG93bicpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25JdGVtQ2hvc2VuPXsoZTogQ2hvc2VuRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgICAgICAgaWYgKGUuYnlLZXlib2FyZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lbnVJbnNwZWN0b3IgPSB0aGlzLl9tZW51SW5zcGVjdG9yUmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICAgICAgaWYgKCFtZW51SW5zcGVjdG9yKSB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICAgICAgICAgICAgICBtZW51SW5zcGVjdG9yLm1vdmVDdXJzb3IoJ2Rvd24nKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9e3RydWV9XG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtvcGVuZWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgIDwvTWVudUl0ZW0+XG4gICAgICAgICl9XG4gICAgICAgIGZsb2F0PXtcbiAgICAgICAgICAhb3BlbmVkID8gbnVsbCA6IChcbiAgICAgICAgICAgIDxNZW51TGlzdEluc3BlY3RvclxuICAgICAgICAgICAgICByZWY9e3RoaXMuX21lbnVJbnNwZWN0b3JSZWZ9XG4gICAgICAgICAgICAgIG9uTGVmdFB1c2hlZD17ZSA9PiB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgcmVmPXt0aGlzLl9tZW51Q29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcj17KCkgPT4gdGhpcy5fbW91c2VFbnRlck1lbnUoKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHttZW51fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvTWVudUxpc3RJbnNwZWN0b3I+XG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAvPlxuICAgICk7XG4gIH1cbn1cbiJdfQ==
{
"name": "react-menu-list",
"version": "7.0.1",
"version": "7.0.2",
"description": "React component for menu lists and submenus",

@@ -51,3 +51,3 @@ "main": "js/index.js",

"babelify": "^10.0.0",
"browserify": "^16.2.2",
"browserify": "^17.0.0",
"cross-env": "^7.0.2",

@@ -59,5 +59,5 @@ "eslint": "^7.8.1",

"flow-copy-source": "^2.0.2",
"husky": ">=4",
"husky": "^4.3.0",
"jest": "^26.4.2",
"lint-staged": ">=10",
"lint-staged": "^10.5.4",
"prettier": "^2.1.1",

@@ -69,3 +69,3 @@ "react": "^16.6.0",

"typescript": "^4.0.2",
"watchify": "^3.7.0"
"watchify": "^4.0.0"
},

@@ -82,3 +82,4 @@ "dependencies": {

"peerDependencies": {
"react": "^16.6.0"
"react": "^16.6.0 || ^17.0.0",
"react-dom": "^16.6.0 || ^17.0.0"
},

@@ -85,0 +86,0 @@ "husky": {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc