tc-checking-tool-rcl 0.9.114 → 0.9.115
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -16,6 +16,12 @@ var _VerseRow = _interopRequireDefault(require("./VerseRow"));
|
|
|
16
16
|
var _wordAlignerLib = require("word-aligner-lib");
|
|
17
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
18
18
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
19
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
20
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
21
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
22
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
23
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
24
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
19
25
|
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
20
26
|
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
21
27
|
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
@@ -80,8 +86,19 @@ var ChapterView = /*#__PURE__*/function (_Component) {
|
|
|
80
86
|
chapter = _contextId$reference.chapter,
|
|
81
87
|
verse = _contextId$reference.verse;
|
|
82
88
|
var languageID = 'en';
|
|
83
|
-
var
|
|
84
|
-
var
|
|
89
|
+
var key;
|
|
90
|
+
for (var _i = 0, _Object$entries = Object.entries(bibles); _i < _Object$entries.length; _i++) {
|
|
91
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
92
|
+
key2 = _Object$entries$_i[0],
|
|
93
|
+
value = _Object$entries$_i[1];
|
|
94
|
+
if (Object.keys(value).some(function (e) {
|
|
95
|
+
return e === 'targetBible';
|
|
96
|
+
})) {
|
|
97
|
+
key = key2;
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
var bible = (0, _verseHelpers.getBibleElement)(bibles, key, 'targetBible');
|
|
85
102
|
var verseNumbers = Object.keys(bible[chapter]);
|
|
86
103
|
var projectManifest = projectDetailsReducer.manifest;
|
|
87
104
|
var targetLanguageFont = projectManifest.projectFont || '';
|
|
@@ -190,4 +207,4 @@ ChapterView.propTypes = {
|
|
|
190
207
|
showTargetUsfm: _propTypes["default"].bool
|
|
191
208
|
};
|
|
192
209
|
var _default = exports["default"] = ChapterView;
|
|
193
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3REb20iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3Byb3BUeXBlcyIsIl91dGlscyIsIl9WZXJzZUVkaXRvciIsIl92ZXJzZUhlbHBlcnMiLCJfVmVyc2VSb3ciLCJfd29yZEFsaWduZXJMaWIiLCJlIiwiX19lc01vZHVsZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9jbGFzc0NhbGxDaGVjayIsImEiLCJUeXBlRXJyb3IiLCJfZGVmaW5lUHJvcGVydGllcyIsImxlbmd0aCIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl90b1Byb3BlcnR5S2V5Iiwia2V5IiwiX2NyZWF0ZUNsYXNzIiwicHJvdG90eXBlIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJTdHJpbmciLCJOdW1iZXIiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiYXBwbHkiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiUmVmZXJlbmNlRXJyb3IiLCJCb29sZWFuIiwidmFsdWVPZiIsInNldFByb3RvdHlwZU9mIiwiZ2V0UHJvdG90eXBlT2YiLCJiaW5kIiwiX2luaGVyaXRzIiwiY3JlYXRlIiwidmFsdWUiLCJfc2V0UHJvdG90eXBlT2YiLCJDaGFwdGVyVmlldyIsIl9Db21wb25lbnQiLCJhcmd1bWVudHMiLCJjb21wb25lbnREaWRNb3VudCIsIl90aGlzJHByb3BzJGNvbnRleHRJZCIsInByb3BzIiwiY29udGV4dElkIiwicmVmZXJlbmNlIiwiY2hhcHRlciIsInZlcnNlIiwidmVyc2VSZWZlcmVuY2UiLCJtYWtlUmVmS2V5IiwiY3VycmVudFZlcnNlIiwidmVyc2VSZWZzIiwiZWxlbWVudCIsIlJlYWN0RE9NIiwiZmluZERPTU5vZGUiLCJzY3JvbGxJbnRvVmlldyIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwicmVuZGVyIiwiX3RoaXMiLCJfdGhpcyRwcm9wcyIsImJpYmxlcyIsInRyYW5zbGF0ZSIsInNlbGVjdGlvbnMiLCJzaG93UG9wb3ZlciIsImdldExleGljb25EYXRhIiwiaGFuZGxlRWRpdG9yU3VibWl0IiwiaGFuZGxlRWRpdG9yQ2FuY2VsIiwiY3VycmVudFBhbmVTZXR0aW5ncyIsInByb2plY3REZXRhaWxzUmVkdWNlciIsImhhbmRsZUVkaXRUYXJnZXRWZXJzZSIsInNob3dUYXJnZXRVc2ZtIiwiX2NvbnRleHRJZCRyZWZlcmVuY2UiLCJsYW5ndWFnZUlEIiwiYm9va0lEIiwiYmlibGUiLCJnZXRCaWJsZUVsZW1lbnQiLCJ2ZXJzZU51bWJlcnMiLCJrZXlzIiwicHJvamVjdE1hbmlmZXN0IiwibWFuaWZlc3QiLCJ0YXJnZXRMYW5ndWFnZUZvbnQiLCJwcm9qZWN0Rm9udCIsInZlcnNlUm93cyIsImZyb250SWR4IiwiaW5kZXhPZiIsImZyb250Iiwic3BsaWNlIiwidW5zaGlmdCIsIl9sb29wIiwidmVyc2VOdW1iZXIiLCJfZ2V0VmVyc2VEYXRhRnJvbUJpYmwiLCJnZXRWZXJzZURhdGFGcm9tQmlibGUiLCJ2ZXJzZUxhYmVsIiwicmVmS2V5IiwicHVzaCIsImNyZWF0ZUVsZW1lbnQiLCJ0b1N0cmluZyIsImN1cnJlbnRWZXJzZU51bWJlciIsIm9uRWRpdFRhcmdldFZlcnNlIiwiZXZlblZlcnNlIiwicmVmIiwibm9kZSIsImxlbiIsImVkaXRWZXJzZSIsIm9wZW5FZGl0b3IiLCJ2ZXJzZVRpdGxlIiwidmVyc2VUZXh0IiwiZm9udFNpemVQZXJjZW50IiwiZGlyZWN0aW9uIiwidGFyZ2V0X2xhbmd1YWdlIiwiX3Byb2plY3RNYW5pZmVzdCR0YXJnIiwiYm9va05hbWUiLCJib29rIiwibmFtZSIsIl9wcm9qZWN0TWFuaWZlc3QkcHJvaiIsImNvbnNvbGUiLCJ3YXJuIiwicHJvamVjdCIsInJlZlN0ciIsImdldFJlZmVyZW5jZVN0ciIsImdldFRpdGxlU3RyIiwiVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyIsImdldFVzZm1Gb3JWZXJzZUNvbnRlbnQiLCJ0YXJnZXRDb25maWciLCJmaW5kIiwicGFuZSIsImxhbmd1YWdlSWQiLCJmb250U2l6ZSIsImNsYXNzTmFtZSIsIm9wZW4iLCJvblN1Ym1pdCIsIm9uQ2FuY2VsIiwidGFyZ2V0TGFuZ3VhZ2VGb250U2l6ZSIsImNvbmNhdCIsIkNvbXBvbmVudCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJhcnJheSIsImVkaXRUYXJnZXRWZXJzZSIsImZ1bmMiLCJib29sIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3RjX3VpX3Rvb2xraXQvU2NyaXB0dXJlUGFuZS9FeHBhbmRlZFNjcmlwdHVyZVBhbmVNb2RhbC9DaGFwdGVyVmlldy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9uby1zdHJpbmctcmVmcyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3Qvbm8tZmluZC1kb20tbm9kZSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tcmV0dXJuLWFzc2lnbiAqL1xuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0ICcuL0NoYXB0ZXJWaWV3LnN0eWxlcy5jc3MnO1xuXG4vLyBjb21wb25lbnRzXG5pbXBvcnQgeyBnZXRSZWZlcmVuY2VTdHIsIGdldFRpdGxlU3RyIH0gZnJvbSAnLi4vLi4vaGVscGVycy91dGlscyc7XG5pbXBvcnQgVmVyc2VFZGl0b3JEaWFsb2cgZnJvbSAnLi4vLi4vLi4vVmVyc2VFZGl0b3InO1xuaW1wb3J0IHsgZ2V0QmlibGVFbGVtZW50LCBnZXRWZXJzZURhdGFGcm9tQmlibGUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL3ZlcnNlSGVscGVycyc7XG5pbXBvcnQgVmVyc2VSb3cgZnJvbSAnLi9WZXJzZVJvdyc7XG5pbXBvcnQgeyBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzIH0gZnJvbSAnd29yZC1hbGlnbmVyLWxpYidcblxuY2xhc3MgQ2hhcHRlclZpZXcgZXh0ZW5kcyBDb21wb25lbnQge1xuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBsZXQgeyBjaGFwdGVyLCB2ZXJzZSB9ID0gdGhpcy5wcm9wcy5jb250ZXh0SWQucmVmZXJlbmNlO1xuICAgIGxldCB2ZXJzZVJlZmVyZW5jZSA9IENoYXB0ZXJWaWV3Lm1ha2VSZWZLZXkoY2hhcHRlciwgdmVyc2UpO1xuICAgIGxldCBjdXJyZW50VmVyc2UgPSB0aGlzLnZlcnNlUmVmc1t2ZXJzZVJlZmVyZW5jZV07XG4gICAgbGV0IGVsZW1lbnQgPSBSZWFjdERPTS5maW5kRE9NTm9kZShjdXJyZW50VmVyc2UpO1xuXG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEga2V5IHRvIHVzZSBmb3IgdmVyc2UgcmVmJ3NcbiAgICogQHBhcmFtIGNoYXB0ZXJcbiAgICogQHBhcmFtIHZlcnNlXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBtYWtlUmVmS2V5KGNoYXB0ZXIsIHZlcnNlKSB7XG4gICAgcmV0dXJuIGBjJHtjaGFwdGVyLnRvU3RyaW5nKCl9diR7dmVyc2UudG9TdHJpbmcoKX1gO1xuICB9XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgdGhpcy52ZXJzZVJlZnMgPSB7fTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBiaWJsZXMsXG4gICAgICBjb250ZXh0SWQsXG4gICAgICB0cmFuc2xhdGUsXG4gICAgICBzZWxlY3Rpb25zLFxuICAgICAgc2hvd1BvcG92ZXIsXG4gICAgICBnZXRMZXhpY29uRGF0YSxcbiAgICAgIGhhbmRsZUVkaXRvclN1Ym1pdCxcbiAgICAgIGhhbmRsZUVkaXRvckNhbmNlbCxcbiAgICAgIGN1cnJlbnRQYW5lU2V0dGluZ3MsXG4gICAgICBwcm9qZWN0RGV0YWlsc1JlZHVjZXIsXG4gICAgICBoYW5kbGVFZGl0VGFyZ2V0VmVyc2UsXG4gICAgICBzaG93VGFyZ2V0VXNmbSxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHsgY2hhcHRlciwgdmVyc2UgfSA9IGNvbnRleHRJZC5yZWZlcmVuY2U7XG4gICAgY29uc3QgbGFuZ3VhZ2VJRCA9ICdlbic7XG4gICAgY29uc3QgYm9va0lEID0gJ3VsdCc7XG4gICAgY29uc3QgYmlibGUgPSBnZXRCaWJsZUVsZW1lbnQoYmlibGVzLCBsYW5ndWFnZUlELCBib29rSUQpO1xuICAgIGNvbnN0IHZlcnNlTnVtYmVycyA9IE9iamVjdC5rZXlzKGJpYmxlW2NoYXB0ZXJdKTtcbiAgICBjb25zdCB7IG1hbmlmZXN0OiBwcm9qZWN0TWFuaWZlc3QgfSA9IHByb2plY3REZXRhaWxzUmVkdWNlcjtcbiAgICBjb25zdCB0YXJnZXRMYW5ndWFnZUZvbnQgPSBwcm9qZWN0TWFuaWZlc3QucHJvamVjdEZvbnQgfHwgJyc7XG4gICAgdGhpcy52ZXJzZVJlZnMgPSB7fTtcbiAgICBsZXQgdmVyc2VSb3dzID0gW107XG5cbiAgICBpZiAodmVyc2VOdW1iZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZyb250SWR4ID0gdmVyc2VOdW1iZXJzLmluZGV4T2YoJ2Zyb250Jyk7XG5cbiAgICAgIGlmIChmcm9udElkeCA+IDApIHsgLy8gbW92ZSBmcm9udCB0byB0b3Agb2YgdmVyc2UgbGlzdCBpZiBub3QgdGhlcmVcbiAgICAgICAgY29uc3QgZnJvbnQgPSB2ZXJzZU51bWJlcnNbZnJvbnRJZHhdO1xuICAgICAgICB2ZXJzZU51bWJlcnMuc3BsaWNlKGZyb250SWR4KTtcbiAgICAgICAgdmVyc2VOdW1iZXJzLnVuc2hpZnQoZnJvbnQpO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gdmVyc2VOdW1iZXJzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHZlcnNlTnVtYmVyID0gdmVyc2VOdW1iZXJzW2ldO1xuICAgICAgICBjb25zdCB7IHZlcnNlTGFiZWwgfSA9IGdldFZlcnNlRGF0YUZyb21CaWJsZShiaWJsZSwgY2hhcHRlciwgdmVyc2UpO1xuICAgICAgICBjb25zdCByZWZLZXkgPSBDaGFwdGVyVmlldy5tYWtlUmVmS2V5KGNoYXB0ZXIsIHZlcnNlTnVtYmVyKTtcblxuICAgICAgICB2ZXJzZVJvd3MucHVzaChcbiAgICAgICAgICA8VmVyc2VSb3dcbiAgICAgICAgICAgIGtleT17dmVyc2VOdW1iZXIudG9TdHJpbmcoKX1cbiAgICAgICAgICAgIHZlcnNlPXt2ZXJzZUxhYmVsIHx8IHZlcnNlfVxuICAgICAgICAgICAgYmlibGVzPXtiaWJsZXN9XG4gICAgICAgICAgICBjaGFwdGVyPXtjaGFwdGVyfVxuICAgICAgICAgICAgdHJhbnNsYXRlPXt0cmFuc2xhdGV9XG4gICAgICAgICAgICBjb250ZXh0SWQ9e2NvbnRleHRJZH1cbiAgICAgICAgICAgIHNlbGVjdGlvbnM9e3NlbGVjdGlvbnN9XG4gICAgICAgICAgICBzaG93UG9wb3Zlcj17c2hvd1BvcG92ZXJ9XG4gICAgICAgICAgICBnZXRMZXhpY29uRGF0YT17Z2V0TGV4aWNvbkRhdGF9XG4gICAgICAgICAgICBjdXJyZW50VmVyc2VOdW1iZXI9e3ZlcnNlTnVtYmVyfVxuICAgICAgICAgICAgdGFyZ2V0TGFuZ3VhZ2VGb250PXt0YXJnZXRMYW5ndWFnZUZvbnR9XG4gICAgICAgICAgICBjdXJyZW50UGFuZVNldHRpbmdzPXtjdXJyZW50UGFuZVNldHRpbmdzfVxuICAgICAgICAgICAgb25FZGl0VGFyZ2V0VmVyc2U9e2hhbmRsZUVkaXRUYXJnZXRWZXJzZX1cbiAgICAgICAgICAgIGV2ZW5WZXJzZT17aSAlIDIgPT09IDB9XG4gICAgICAgICAgICByZWY9e25vZGUgPT4gdGhpcy52ZXJzZVJlZnNbcmVmS2V5XSA9IG5vZGV9XG4gICAgICAgICAgICBzaG93VGFyZ2V0VXNmbT17c2hvd1RhcmdldFVzZm19XG4gICAgICAgICAgLz4sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgeyBlZGl0VmVyc2UgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qgb3BlbkVkaXRvciA9IGVkaXRWZXJzZSAhPT0gbnVsbDtcbiAgICBsZXQgdmVyc2VUaXRsZSA9ICcnO1xuICAgIGxldCB2ZXJzZVRleHQgPSAnJztcbiAgICBsZXQgZm9udFNpemVQZXJjZW50ID0gMTAwOyAvLyBkZWZhdWx0IGZvbnQgc2l6ZVxuICAgIGNvbnN0IGRpcmVjdGlvbiA9IHByb2plY3RNYW5pZmVzdC50YXJnZXRfbGFuZ3VhZ2UgJiYgcHJvamVjdE1hbmlmZXN0LnRhcmdldF9sYW5ndWFnZS5kaXJlY3Rpb24gfHwgJ2x0cic7XG5cbiAgICBpZiAob3BlbkVkaXRvcikge1xuICAgICAgbGV0IGJvb2tOYW1lID0gcHJvamVjdE1hbmlmZXN0Py50YXJnZXRfbGFuZ3VhZ2U/LmJvb2s/Lm5hbWU7XG5cbiAgICAgIGlmICghYm9va05hbWUpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdUaGUgbG9jYWxpemVkIGJvb2sgbmFtZSBjb3VsZCBub3QgYmUgZm91bmQuIFRoaXMgaXMgbGlrZWx5IGEgYnVnIGluIHRDLicpO1xuICAgICAgICBib29rTmFtZSA9IHByb2plY3RNYW5pZmVzdD8ucHJvamVjdD8ubmFtZSB8fCBib29rSUQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlZlN0ciA9IGdldFJlZmVyZW5jZVN0cihlZGl0VmVyc2UuY2hhcHRlciwgZWRpdFZlcnNlLnZlcnNlKTtcbiAgICAgIHZlcnNlVGl0bGUgPSBnZXRUaXRsZVN0cihib29rTmFtZSwgcmVmU3RyLCBkaXJlY3Rpb24pO1xuICAgICAgdmVyc2VUZXh0ID0gZWRpdFZlcnNlLnZlcnNlVGV4dCB8fCAnJztcbiAgICAgIGlmICh0eXBlb2YgdmVyc2VUZXh0ICE9PSAnc3RyaW5nJykge1xuICAgICAgICB2ZXJzZVRleHQgPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmdldFVzZm1Gb3JWZXJzZUNvbnRlbnQodmVyc2VUZXh0KVxuICAgICAgfVxuICAgICAgY29uc3QgdGFyZ2V0Q29uZmlnID0gY3VycmVudFBhbmVTZXR0aW5ncy5maW5kKHBhbmUgPT4gKHBhbmUubGFuZ3VhZ2VJZCA9PT0gJ3RhcmdldExhbmd1YWdlJykpO1xuXG4gICAgICBpZiAodGFyZ2V0Q29uZmlnKSB7XG4gICAgICAgIGZvbnRTaXplUGVyY2VudCA9IHRhcmdldENvbmZpZy5mb250U2l6ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ2ZXJzZS1yb3ctY29udGFpbmVyXCI+XG4gICAgICAgICAge3ZlcnNlUm93c31cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxWZXJzZUVkaXRvckRpYWxvZ1xuICAgICAgICAgIG9wZW49e29wZW5FZGl0b3J9XG4gICAgICAgICAgdHJhbnNsYXRlPXt0cmFuc2xhdGV9XG4gICAgICAgICAgdmVyc2VUZXh0PXt2ZXJzZVRleHR9XG4gICAgICAgICAgdmVyc2VUaXRsZT17dmVyc2VUaXRsZX1cbiAgICAgICAgICBvblN1Ym1pdD17aGFuZGxlRWRpdG9yU3VibWl0fVxuICAgICAgICAgIG9uQ2FuY2VsPXtoYW5kbGVFZGl0b3JDYW5jZWx9XG4gICAgICAgICAgdGFyZ2V0TGFuZ3VhZ2VGb250PXt0YXJnZXRMYW5ndWFnZUZvbnR9XG4gICAgICAgICAgdGFyZ2V0TGFuZ3VhZ2VGb250U2l6ZT17YCR7Zm9udFNpemVQZXJjZW50fSVgfVxuICAgICAgICAgIGRpcmVjdGlvbj17ZGlyZWN0aW9ufVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5DaGFwdGVyVmlldy5wcm9wVHlwZXMgPSB7XG4gIGNvbnRleHRJZDogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBjdXJyZW50UGFuZVNldHRpbmdzOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgZWRpdFRhcmdldFZlcnNlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBwcm9qZWN0RGV0YWlsc1JlZHVjZXI6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgdHJhbnNsYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBiaWJsZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgc2VsZWN0aW9uczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gIGdldExleGljb25EYXRhOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBzaG93UG9wb3ZlcjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZWRpdFZlcnNlOiBQcm9wVHlwZXMub2JqZWN0LFxuICBoYW5kbGVFZGl0VGFyZ2V0VmVyc2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGhhbmRsZUVkaXRvclN1Ym1pdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgaGFuZGxlRWRpdG9yQ2FuY2VsOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBzaG93VGFyZ2V0VXNmbTogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBDaGFwdGVy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
|
|
210
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3REb20iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3Byb3BUeXBlcyIsIl91dGlscyIsIl9WZXJzZUVkaXRvciIsIl92ZXJzZUhlbHBlcnMiLCJfVmVyc2VSb3ciLCJfd29yZEFsaWduZXJMaWIiLCJlIiwiX19lc01vZHVsZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9zbGljZWRUb0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIlR5cGVFcnJvciIsImEiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJBcnJheSIsImZyb20iLCJ0ZXN0IiwibGVuZ3RoIiwibCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwidSIsIm5leHQiLCJkb25lIiwicHVzaCIsInZhbHVlIiwiaXNBcnJheSIsIl9jbGFzc0NhbGxDaGVjayIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3RvUHJvcGVydHlLZXkiLCJrZXkiLCJfY3JlYXRlQ2xhc3MiLCJwcm90b3R5cGUiLCJfdG9QcmltaXRpdmUiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsIk51bWJlciIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiYXBwbHkiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiUmVmZXJlbmNlRXJyb3IiLCJCb29sZWFuIiwidmFsdWVPZiIsInNldFByb3RvdHlwZU9mIiwiZ2V0UHJvdG90eXBlT2YiLCJiaW5kIiwiX2luaGVyaXRzIiwiY3JlYXRlIiwiX3NldFByb3RvdHlwZU9mIiwiQ2hhcHRlclZpZXciLCJfQ29tcG9uZW50IiwiYXJndW1lbnRzIiwiY29tcG9uZW50RGlkTW91bnQiLCJfdGhpcyRwcm9wcyRjb250ZXh0SWQiLCJwcm9wcyIsImNvbnRleHRJZCIsInJlZmVyZW5jZSIsImNoYXB0ZXIiLCJ2ZXJzZSIsInZlcnNlUmVmZXJlbmNlIiwibWFrZVJlZktleSIsImN1cnJlbnRWZXJzZSIsInZlcnNlUmVmcyIsImVsZW1lbnQiLCJSZWFjdERPTSIsImZpbmRET01Ob2RlIiwic2Nyb2xsSW50b1ZpZXciLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJlbmRlciIsIl90aGlzIiwiX3RoaXMkcHJvcHMiLCJiaWJsZXMiLCJ0cmFuc2xhdGUiLCJzZWxlY3Rpb25zIiwic2hvd1BvcG92ZXIiLCJnZXRMZXhpY29uRGF0YSIsImhhbmRsZUVkaXRvclN1Ym1pdCIsImhhbmRsZUVkaXRvckNhbmNlbCIsImN1cnJlbnRQYW5lU2V0dGluZ3MiLCJwcm9qZWN0RGV0YWlsc1JlZHVjZXIiLCJoYW5kbGVFZGl0VGFyZ2V0VmVyc2UiLCJzaG93VGFyZ2V0VXNmbSIsIl9jb250ZXh0SWQkcmVmZXJlbmNlIiwibGFuZ3VhZ2VJRCIsIl9pIiwiX09iamVjdCRlbnRyaWVzIiwiZW50cmllcyIsIl9PYmplY3QkZW50cmllcyRfaSIsImtleTIiLCJrZXlzIiwic29tZSIsImJpYmxlIiwiZ2V0QmlibGVFbGVtZW50IiwidmVyc2VOdW1iZXJzIiwicHJvamVjdE1hbmlmZXN0IiwibWFuaWZlc3QiLCJ0YXJnZXRMYW5ndWFnZUZvbnQiLCJwcm9qZWN0Rm9udCIsInZlcnNlUm93cyIsImZyb250SWR4IiwiaW5kZXhPZiIsImZyb250Iiwic3BsaWNlIiwidW5zaGlmdCIsIl9sb29wIiwidmVyc2VOdW1iZXIiLCJfZ2V0VmVyc2VEYXRhRnJvbUJpYmwiLCJnZXRWZXJzZURhdGFGcm9tQmlibGUiLCJ2ZXJzZUxhYmVsIiwicmVmS2V5IiwiY3JlYXRlRWxlbWVudCIsImN1cnJlbnRWZXJzZU51bWJlciIsIm9uRWRpdFRhcmdldFZlcnNlIiwiZXZlblZlcnNlIiwicmVmIiwibm9kZSIsImxlbiIsImVkaXRWZXJzZSIsIm9wZW5FZGl0b3IiLCJ2ZXJzZVRpdGxlIiwidmVyc2VUZXh0IiwiZm9udFNpemVQZXJjZW50IiwiZGlyZWN0aW9uIiwidGFyZ2V0X2xhbmd1YWdlIiwiX3Byb2plY3RNYW5pZmVzdCR0YXJnIiwiYm9va05hbWUiLCJib29rIiwiX3Byb2plY3RNYW5pZmVzdCRwcm9qIiwiY29uc29sZSIsIndhcm4iLCJwcm9qZWN0IiwiYm9va0lEIiwicmVmU3RyIiwiZ2V0UmVmZXJlbmNlU3RyIiwiZ2V0VGl0bGVTdHIiLCJVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzIiwiZ2V0VXNmbUZvclZlcnNlQ29udGVudCIsInRhcmdldENvbmZpZyIsImZpbmQiLCJwYW5lIiwibGFuZ3VhZ2VJZCIsImZvbnRTaXplIiwiY2xhc3NOYW1lIiwib3BlbiIsIm9uU3VibWl0Iiwib25DYW5jZWwiLCJ0YXJnZXRMYW5ndWFnZUZvbnRTaXplIiwiY29uY2F0IiwiQ29tcG9uZW50IiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsImFycmF5IiwiZWRpdFRhcmdldFZlcnNlIiwiZnVuYyIsImJvb2wiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdGNfdWlfdG9vbGtpdC9TY3JpcHR1cmVQYW5lL0V4cGFuZGVkU2NyaXB0dXJlUGFuZU1vZGFsL0NoYXB0ZXJWaWV3L2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L25vLXN0cmluZy1yZWZzICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9uby1maW5kLWRvbS1ub2RlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1yZXR1cm4tYXNzaWduICovXG5pbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5pbXBvcnQgJy4vQ2hhcHRlclZpZXcuc3R5bGVzLmNzcyc7XG5cbi8vIGNvbXBvbmVudHNcbmltcG9ydCB7IGdldFJlZmVyZW5jZVN0ciwgZ2V0VGl0bGVTdHIgfSBmcm9tICcuLi8uLi9oZWxwZXJzL3V0aWxzJztcbmltcG9ydCBWZXJzZUVkaXRvckRpYWxvZyBmcm9tICcuLi8uLi8uLi9WZXJzZUVkaXRvcic7XG5pbXBvcnQgeyBnZXRCaWJsZUVsZW1lbnQsIGdldFZlcnNlRGF0YUZyb21CaWJsZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvdmVyc2VIZWxwZXJzJztcbmltcG9ydCBWZXJzZVJvdyBmcm9tICcuL1ZlcnNlUm93JztcbmltcG9ydCB7IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMgfSBmcm9tICd3b3JkLWFsaWduZXItbGliJ1xuXG5jbGFzcyBDaGFwdGVyVmlldyBleHRlbmRzIENvbXBvbmVudCB7XG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGxldCB7IGNoYXB0ZXIsIHZlcnNlIH0gPSB0aGlzLnByb3BzLmNvbnRleHRJZC5yZWZlcmVuY2U7XG4gICAgbGV0IHZlcnNlUmVmZXJlbmNlID0gQ2hhcHRlclZpZXcubWFrZVJlZktleShjaGFwdGVyLCB2ZXJzZSk7XG4gICAgbGV0IGN1cnJlbnRWZXJzZSA9IHRoaXMudmVyc2VSZWZzW3ZlcnNlUmVmZXJlbmNlXTtcbiAgICBsZXQgZWxlbWVudCA9IFJlYWN0RE9NLmZpbmRET01Ob2RlKGN1cnJlbnRWZXJzZSk7XG5cbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgZWxlbWVudC5zY3JvbGxJbnRvVmlldygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSBrZXkgdG8gdXNlIGZvciB2ZXJzZSByZWYnc1xuICAgKiBAcGFyYW0gY2hhcHRlclxuICAgKiBAcGFyYW0gdmVyc2VcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgc3RhdGljIG1ha2VSZWZLZXkoY2hhcHRlciwgdmVyc2UpIHtcbiAgICByZXR1cm4gYGMke2NoYXB0ZXIudG9TdHJpbmcoKX12JHt2ZXJzZS50b1N0cmluZygpfWA7XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLnZlcnNlUmVmcyA9IHt9O1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGJpYmxlcyxcbiAgICAgIGNvbnRleHRJZCxcbiAgICAgIHRyYW5zbGF0ZSxcbiAgICAgIHNlbGVjdGlvbnMsXG4gICAgICBzaG93UG9wb3ZlcixcbiAgICAgIGdldExleGljb25EYXRhLFxuICAgICAgaGFuZGxlRWRpdG9yU3VibWl0LFxuICAgICAgaGFuZGxlRWRpdG9yQ2FuY2VsLFxuICAgICAgY3VycmVudFBhbmVTZXR0aW5ncyxcbiAgICAgIHByb2plY3REZXRhaWxzUmVkdWNlcixcbiAgICAgIGhhbmRsZUVkaXRUYXJnZXRWZXJzZSxcbiAgICAgIHNob3dUYXJnZXRVc2ZtLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3QgeyBjaGFwdGVyLCB2ZXJzZSB9ID0gY29udGV4dElkLnJlZmVyZW5jZTtcbiAgICBjb25zdCBsYW5ndWFnZUlEID0gJ2VuJztcbiAgICBsZXQga2V5O1xuICAgIGZvciAobGV0IFtrZXkyLHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhiaWJsZXMpKXtcbiAgICAgIGlmKE9iamVjdC5rZXlzKHZhbHVlKS5zb21lKGUgPT4gZSA9PT0ndGFyZ2V0QmlibGUnKSl7XG4gICAgICAgIGtleSA9IGtleTJcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgYmlibGUgPSBnZXRCaWJsZUVsZW1lbnQoYmlibGVzLCBrZXksICd0YXJnZXRCaWJsZScpO1xuICAgIGNvbnN0IHZlcnNlTnVtYmVycyA9IE9iamVjdC5rZXlzKGJpYmxlW2NoYXB0ZXJdKTtcbiAgICBjb25zdCB7IG1hbmlmZXN0OiBwcm9qZWN0TWFuaWZlc3QgfSA9IHByb2plY3REZXRhaWxzUmVkdWNlcjtcbiAgICBjb25zdCB0YXJnZXRMYW5ndWFnZUZvbnQgPSBwcm9qZWN0TWFuaWZlc3QucHJvamVjdEZvbnQgfHwgJyc7XG4gICAgdGhpcy52ZXJzZVJlZnMgPSB7fTtcbiAgICBsZXQgdmVyc2VSb3dzID0gW107XG5cbiAgICBpZiAodmVyc2VOdW1iZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZyb250SWR4ID0gdmVyc2VOdW1iZXJzLmluZGV4T2YoJ2Zyb250Jyk7XG5cbiAgICAgIGlmIChmcm9udElkeCA+IDApIHsgLy8gbW92ZSBmcm9udCB0byB0b3Agb2YgdmVyc2UgbGlzdCBpZiBub3QgdGhlcmVcbiAgICAgICAgY29uc3QgZnJvbnQgPSB2ZXJzZU51bWJlcnNbZnJvbnRJZHhdO1xuICAgICAgICB2ZXJzZU51bWJlcnMuc3BsaWNlKGZyb250SWR4KTtcbiAgICAgICAgdmVyc2VOdW1iZXJzLnVuc2hpZnQoZnJvbnQpO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gdmVyc2VOdW1iZXJzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHZlcnNlTnVtYmVyID0gdmVyc2VOdW1iZXJzW2ldO1xuICAgICAgICBjb25zdCB7IHZlcnNlTGFiZWwgfSA9IGdldFZlcnNlRGF0YUZyb21CaWJsZShiaWJsZSwgY2hhcHRlciwgdmVyc2UpO1xuICAgICAgICBjb25zdCByZWZLZXkgPSBDaGFwdGVyVmlldy5tYWtlUmVmS2V5KGNoYXB0ZXIsIHZlcnNlTnVtYmVyKTtcblxuICAgICAgICB2ZXJzZVJvd3MucHVzaChcbiAgICAgICAgICA8VmVyc2VSb3dcbiAgICAgICAgICAgIGtleT17dmVyc2VOdW1iZXIudG9TdHJpbmcoKX1cbiAgICAgICAgICAgIHZlcnNlPXt2ZXJzZUxhYmVsIHx8IHZlcnNlfVxuICAgICAgICAgICAgYmlibGVzPXtiaWJsZXN9XG4gICAgICAgICAgICBjaGFwdGVyPXtjaGFwdGVyfVxuICAgICAgICAgICAgdHJhbnNsYXRlPXt0cmFuc2xhdGV9XG4gICAgICAgICAgICBjb250ZXh0SWQ9e2NvbnRleHRJZH1cbiAgICAgICAgICAgIHNlbGVjdGlvbnM9e3NlbGVjdGlvbnN9XG4gICAgICAgICAgICBzaG93UG9wb3Zlcj17c2hvd1BvcG92ZXJ9XG4gICAgICAgICAgICBnZXRMZXhpY29uRGF0YT17Z2V0TGV4aWNvbkRhdGF9XG4gICAgICAgICAgICBjdXJyZW50VmVyc2VOdW1iZXI9e3ZlcnNlTnVtYmVyfVxuICAgICAgICAgICAgdGFyZ2V0TGFuZ3VhZ2VGb250PXt0YXJnZXRMYW5ndWFnZUZvbnR9XG4gICAgICAgICAgICBjdXJyZW50UGFuZVNldHRpbmdzPXtjdXJyZW50UGFuZVNldHRpbmdzfVxuICAgICAgICAgICAgb25FZGl0VGFyZ2V0VmVyc2U9e2hhbmRsZUVkaXRUYXJnZXRWZXJzZX1cbiAgICAgICAgICAgIGV2ZW5WZXJzZT17aSAlIDIgPT09IDB9XG4gICAgICAgICAgICByZWY9e25vZGUgPT4gdGhpcy52ZXJzZVJlZnNbcmVmS2V5XSA9IG5vZGV9XG4gICAgICAgICAgICBzaG93VGFyZ2V0VXNmbT17c2hvd1RhcmdldFVzZm19XG4gICAgICAgICAgLz4sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgeyBlZGl0VmVyc2UgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qgb3BlbkVkaXRvciA9IGVkaXRWZXJzZSAhPT0gbnVsbDtcbiAgICBsZXQgdmVyc2VUaXRsZSA9ICcnO1xuICAgIGxldCB2ZXJzZVRleHQgPSAnJztcbiAgICBsZXQgZm9udFNpemVQZXJjZW50ID0gMTAwOyAvLyBkZWZhdWx0IGZvbnQgc2l6ZVxuICAgIGNvbnN0IGRpcmVjdGlvbiA9IHByb2plY3RNYW5pZmVzdC50YXJnZXRfbGFuZ3VhZ2UgJiYgcHJvamVjdE1hbmlmZXN0LnRhcmdldF9sYW5ndWFnZS5kaXJlY3Rpb24gfHwgJ2x0cic7XG5cbiAgICBpZiAob3BlbkVkaXRvcikge1xuICAgICAgbGV0IGJvb2tOYW1lID0gcHJvamVjdE1hbmlmZXN0Py50YXJnZXRfbGFuZ3VhZ2U/LmJvb2s/Lm5hbWU7XG5cbiAgICAgIGlmICghYm9va05hbWUpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdUaGUgbG9jYWxpemVkIGJvb2sgbmFtZSBjb3VsZCBub3QgYmUgZm91bmQuIFRoaXMgaXMgbGlrZWx5IGEgYnVnIGluIHRDLicpO1xuICAgICAgICBib29rTmFtZSA9IHByb2plY3RNYW5pZmVzdD8ucHJvamVjdD8ubmFtZSB8fCBib29rSUQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlZlN0ciA9IGdldFJlZmVyZW5jZVN0cihlZGl0VmVyc2UuY2hhcHRlciwgZWRpdFZlcnNlLnZlcnNlKTtcbiAgICAgIHZlcnNlVGl0bGUgPSBnZXRUaXRsZVN0cihib29rTmFtZSwgcmVmU3RyLCBkaXJlY3Rpb24pO1xuICAgICAgdmVyc2VUZXh0ID0gZWRpdFZlcnNlLnZlcnNlVGV4dCB8fCAnJztcbiAgICAgIGlmICh0eXBlb2YgdmVyc2VUZXh0ICE9PSAnc3RyaW5nJykge1xuICAgICAgICB2ZXJzZVRleHQgPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmdldFVzZm1Gb3JWZXJzZUNvbnRlbnQodmVyc2VUZXh0KVxuICAgICAgfVxuICAgICAgY29uc3QgdGFyZ2V0Q29uZmlnID0gY3VycmVudFBhbmVTZXR0aW5ncy5maW5kKHBhbmUgPT4gKHBhbmUubGFuZ3VhZ2VJZCA9PT0gJ3RhcmdldExhbmd1YWdlJykpO1xuXG4gICAgICBpZiAodGFyZ2V0Q29uZmlnKSB7XG4gICAgICAgIGZvbnRTaXplUGVyY2VudCA9IHRhcmdldENvbmZpZy5mb250U2l6ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ2ZXJzZS1yb3ctY29udGFpbmVyXCI+XG4gICAgICAgICAge3ZlcnNlUm93c31cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxWZXJzZUVkaXRvckRpYWxvZ1xuICAgICAgICAgIG9wZW49e29wZW5FZGl0b3J9XG4gICAgICAgICAgdHJhbnNsYXRlPXt0cmFuc2xhdGV9XG4gICAgICAgICAgdmVyc2VUZXh0PXt2ZXJzZVRleHR9XG4gICAgICAgICAgdmVyc2VUaXRsZT17dmVyc2VUaXRsZX1cbiAgICAgICAgICBvblN1Ym1pdD17aGFuZGxlRWRpdG9yU3VibWl0fVxuICAgICAgICAgIG9uQ2FuY2VsPXtoYW5kbGVFZGl0b3JDYW5jZWx9XG4gICAgICAgICAgdGFyZ2V0TGFuZ3VhZ2VGb250PXt0YXJnZXRMYW5ndWFnZUZvbnR9XG4gICAgICAgICAgdGFyZ2V0TGFuZ3VhZ2VGb250U2l6ZT17YCR7Zm9udFNpemVQZXJjZW50fSVgfVxuICAgICAgICAgIGRpcmVjdGlvbj17ZGlyZWN0aW9ufVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5DaGFwdGVyVmlldy5wcm9wVHlwZXMgPSB7XG4gIGNvbnRleHRJZDogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBjdXJyZW50UGFuZVNldHRpbmdzOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgZWRpdFRhcmdldFZlcnNlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBwcm9qZWN0RGV0YWlsc1JlZHVjZXI6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgdHJhbnNsYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBiaWJsZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgc2VsZWN0aW9uczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gIGdldExleGljb25EYXRhOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBzaG93UG9wb3ZlcjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZWRpdFZlcnNlOiBQcm9wVHlwZXMub2JqZWN0LFxuICBoYW5kbGVFZGl0VGFyZ2V0VmVyc2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGhhbmRsZUVkaXRvclN1Ym1pdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgaGFuZGxlRWRpdG9yQ2FuY2VsOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBzaG93VGFyZ2V0VXNmbTogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBDaGFwdGVyVmlldztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFNBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBQSxPQUFBO0FBR0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssWUFBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU0sYUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sU0FBQSxHQUFBTCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVEsZUFBQSxHQUFBUixPQUFBO0FBQTRELFNBQUFFLHVCQUFBTyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsZ0JBQUFBLENBQUE7QUFBQSxTQUFBVix3QkFBQVUsQ0FBQSxFQUFBRSxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9B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
|
|
@@ -29,6 +29,10 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
|
|
|
29
29
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
30
30
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
31
31
|
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
32
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
33
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
34
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
35
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
32
36
|
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
33
37
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
34
38
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
@@ -331,35 +335,50 @@ function getBibleElement(bibles, languageId, bibleId) {
|
|
|
331
335
|
var bibleElement = (_bibles$key = bibles[key]) === null || _bibles$key === void 0 ? void 0 : _bibles$key[bibleId];
|
|
332
336
|
return bibleElement;
|
|
333
337
|
}
|
|
334
|
-
|
|
335
|
-
/**
|
|
336
|
-
* try to find verse from chapter. If not found look for verse spans
|
|
337
|
-
* @param {object} bible
|
|
338
|
-
* @param {string} chapter
|
|
339
|
-
* @param {string} verse
|
|
340
|
-
* @return {object|null}
|
|
341
|
-
*/
|
|
342
338
|
function getVerseDataFromBible(bible, chapter, verse) {
|
|
343
339
|
var verseData = null;
|
|
344
340
|
var verseLabel = null;
|
|
341
|
+
console.log(bible, chapter, verse);
|
|
345
342
|
try {
|
|
346
343
|
var chapterData = bible[chapter];
|
|
344
|
+
console.log('chapter');
|
|
347
345
|
if (chapterData) {
|
|
348
346
|
verseData = chapterData[verse];
|
|
347
|
+
console.log(verseData);
|
|
349
348
|
if (verseData) {
|
|
350
349
|
verseLabel = verse;
|
|
351
350
|
} else {
|
|
352
351
|
// search for verse span that contains verse
|
|
353
352
|
var verseVal = parseInt(verse);
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
353
|
+
if (isVerseSpan(verse)) {
|
|
354
|
+
var _getVerseSpanRange = getVerseSpanRange(verse),
|
|
355
|
+
low = _getVerseSpanRange.low,
|
|
356
|
+
high = _getVerseSpanRange.high;
|
|
357
|
+
for (var i = low; i <= high; i++) {
|
|
358
|
+
console.log(i);
|
|
359
|
+
var data = getVerseDataFromBible(bible, chapter, i);
|
|
360
|
+
console.log(data);
|
|
361
|
+
if (isVerseSpan(data.verseLabel)) {
|
|
362
|
+
i = parseInt(data.verseLabel.split('-')[1]) - 1;
|
|
363
|
+
}
|
|
364
|
+
if (!verseData) {
|
|
365
|
+
verseData = data.verseData;
|
|
366
|
+
} else {
|
|
367
|
+
var _verseData$verseObjec;
|
|
368
|
+
(_verseData$verseObjec = verseData.verseObjects).push.apply(_verseData$verseObjec, _toConsumableArray(data.verseData.verseObjects));
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
} else {
|
|
372
|
+
for (var verseIndex in chapterData) {
|
|
373
|
+
if (isVerseSpan(verseIndex)) {
|
|
374
|
+
var _getVerseSpanRange2 = getVerseSpanRange(verseIndex),
|
|
375
|
+
_low = _getVerseSpanRange2.low,
|
|
376
|
+
_high = _getVerseSpanRange2.high;
|
|
377
|
+
if (verseVal >= _low && verseVal <= _high) {
|
|
378
|
+
verseData = chapterData[verseIndex];
|
|
379
|
+
verseLabel = verseIndex;
|
|
380
|
+
break;
|
|
381
|
+
}
|
|
363
382
|
}
|
|
364
383
|
}
|
|
365
384
|
}
|
|
@@ -549,4 +568,4 @@ function createHtmlInsert(html) {
|
|
|
549
568
|
function createVerseMarker(verse) {
|
|
550
569
|
return createHtmlInsert(getVerseMarker(verse));
|
|
551
570
|
}
|
|
552
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImNyZWF0ZVZlcnNlTWFya2VyIiwiZ2V0QmlibGVFbGVtZW50IiwiZ2V0VmVyc2VEYXRhIiwiZ2V0VmVyc2VEYXRhRnJvbUJpYmxlIiwiZ2V0VmVyc2VMaXN0IiwiZ2V0VmVyc2VNYXJrZXIiLCJnZXRWZXJzZVNwYW5SYW5nZSIsImlzVmVyc2VJblNwYW4iLCJpc1ZlcnNlTGlzdCIsImlzVmVyc2VTZXQiLCJpc1ZlcnNlU3BhbiIsInZlcnNlQXJyYXkiLCJ2ZXJzZVN0cmluZyIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2RlZXBFcXVhbCIsInN0cmluZ1Rva2VuaXplciIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3dvcmRBbGlnbmVyIiwiX2JpYmxlUmVmZXJlbmNlUmFuZ2UiLCJoaWdobGlnaHRIZWxwZXJzIiwiX2h0bWxFbGVtZW50c0hlbHBlcnMiLCJfdXNmbUhlbHBlcnMiLCJfc3RyaW5nSGVscGVycyIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsImxlbmd0aCIsIl9uIiwiRiIsInMiLCJkb25lIiwiVHlwZUVycm9yIiwiYSIsInUiLCJuZXh0IiwiX3NsaWNlZFRvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfbm9uSXRlcmFibGVSZXN0IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwibCIsInB1c2giLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImVudW1lcmFibGUiLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfdG9Qcm9wZXJ0eUtleSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3RvUHJpbWl0aXZlIiwidG9QcmltaXRpdmUiLCJTdHJpbmciLCJOdW1iZXIiLCJ0ZXh0VG9IdG1sIiwidGV4dCIsInNob3dVc2ZtIiwiaW5kZXhPZiIsInBhcnRzIiwic3BsaXQiLCJodG1sIiwiY3JlYXRlRWxlbWVudCIsInZlcnNlVGV4dCIsInNlbGVjdGlvbnMiLCJ0cmFuc2xhdGUiLCJmb250U3R5bGUiLCJ1bmRlZmluZWQiLCJpc1RhcmdldEJpYmxlIiwiZm9udENsYXNzIiwibmV3VmVyc2VUZXh0IiwicmVtb3ZlTWFya2VyIiwicmVwbGFjZSIsInZlcnNlVGV4dFNwYW5zIiwiY2xhc3NOYW1lIiwiX3NlbGVjdGlvbkFycmF5Iiwic2VsZWN0aW9uQXJyYXkiLCJsZW4iLCJzZWxlY3Rpb24iLCJpbmRleCIsInNwYW5TdHlsZSIsImJhY2tncm91bmRDb2xvciIsInNlbGVjdGVkIiwia2V5Iiwic3R5bGUiLCJiaWJsZUlkIiwiY29udGV4dElkIiwiZ2V0TGV4aWNvbkRhdGEiLCJzaG93UG9wb3ZlciIsInZlcnNlV29yZENvdW50cyIsInZlcnNlT2JqZWN0cyIsIlZlcnNlT2JqZWN0VXRpbHMiLCJnZXRXb3JkTGlzdEZvclZlcnNlIiwid29yZFNwYWNpbmciLCJwcmV2aW91c1dvcmQiLCJ2ZXJzZVNwYW4iLCJ0ZXh0SXNFbXB0eUluVmVyc2VPYmplY3QiLCJpc0hlYnJldyIsIm9yaWdMYW5nQmlibGUiLCJ2ZXJzZU9iamVjdCIsIl9sb29wIiwib2JqZWN0IiwibmV4dFdvcmQiLCJ0eXBlIiwiaXNXb3JkIiwicGFkZGluZyIsIndvcmQiLCJpc0hpZ2hsaWdodGVkV29yZCIsImlzQmV0d2VlbkhpZ2hsaWdodGVkV29yZCIsInF1b3RlIiwiaXNXb3JkTWF0Y2giLCJpc0VxdWFsIiwiY29udGVudCIsImhpZ2hsaWdodGVkRGV0YWlscyIsImdldFdvcmRIaWdobGlnaHRlZERldGFpbHMiLCJwYWRkaW5nU3BhblN0eWxlIiwic3Ryb25nIiwib25DbGljayIsIm9uV29yZENsaWNrIiwiY3Vyc29yIiwiY3JlYXRlTm9uQ2xpY2thYmxlU3BhbiIsImlzTmVzdGVkTWlsZXN0b25lIiwibmVzdGVkTWlsZXN0b25lIiwiZ2V0V29yZHNGcm9tTmVzdGVkTWlsZXN0b25lIiwiaiIsIm5MZW4iLCJ3b3JkU3BhbnMiLCJuZXN0ZWRXb3JkU3BhbiIsIm5lc3RlZFByZXZpb3VzV29yZCIsIm5lc3RlZFdvcmRTcGFjaW5nIiwiaGFzTGVhZGluZ1NwYWNlIiwic3Vic3RyIiwiYWRkU3BhY2UiLCJ0cmFpbGluZ1NwYWNlIiwiaGFzVHJhaWxpbmdTcGFjZSIsImlzVXNmbVRhZ05vdFNwYW4iLCJ0YWciLCJlbmRUYWciLCJpc0lzb2xhdGVkTGVmdFF1b3RlIiwicHVuY3R1YXRpb25Xb3JkU3BhY2luZyIsImlzUHVuY3R1YXRpb25IaWdobGlnaHRlZCIsImNyZWF0ZUhpZ2hsaWdodGVkU3BhbiIsImNyZWF0ZVRleHRTcGFuIiwiX3ZlcnNlU3BhbiRzcGxpdCIsIl92ZXJzZVNwYW4kc3BsaXQyIiwibG93IiwiaGlnaCIsInBhcnNlSW50IiwidmVyc2VTdHIiLCJ2ZXJzZXMiLCJ2ZXJzZSIsImlzU3BhbiIsImluY2x1ZGVzIiwiaXNMaXN0IiwiaXNTZXQiLCJiaWJsZXMiLCJsYW5ndWFnZUlkIiwiX2JpYmxlcyRrZXkiLCJvd25lciIsImNvbmNhdCIsImJpYmxlRWxlbWVudCIsImJpYmxlIiwiY2hhcHRlciIsInZlcnNlRGF0YSIsInZlcnNlTGFiZWwiLCJjaGFwdGVyRGF0YSIsInZlcnNlVmFsIiwidmVyc2VJbmRleCIsIl9nZXRWZXJzZVNwYW5SYW5nZSIsImlzRmlyc3RWZXJzZSIsIl92ZXJzZUxhYmVsJHNwbGl0IiwiX3ZlcnNlTGFiZWwkc3BsaXQyIiwiaGkiLCJzdGFydFZlcnNlIiwiY291bnRPcmlnaW5hbFdvcmRzIiwidmVyc2VDbnQiLCJtdWx0aVZlcnNlIiwiY3VycmVudFZlcnNlQ291bnRzIiwicHJldmlvdXNWZXJzZVdvcmRDb3VudHMiLCJfaXRlcmF0b3IiLCJfc3RlcCIsInZvIiwib3JpZ1dvcmQiLCJwcmV2aW91c0NvdW50IiwiY3VycmVudENvdW50Iiwib2NjdXJyZW5jZXMiLCJjaGlsZHJlbiIsImVyciIsImJvb2tEYXRhIiwidmVyc2VMaXN0IiwiaW5pdGlhbENoYXB0ZXIiLCJyZWZzIiwiZ2V0VmVyc2VzIiwidmVyc2VTcGFuRGF0YSIsImhpc3RvcnkiLCJyZWYiLCJkYXRhIiwibGFiZWwiLCJ3b3JkcyIsIl9pIiwiX3dvcmRzIiwiRnJhZ21lbnQiLCJjcmVhdGVIdG1sSW5zZXJ0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RjX3VpX3Rvb2xraXQvU2NyaXB0dXJlUGFuZS9oZWxwZXJzL3ZlcnNlSGVscGVycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnZGVlcC1lcXVhbCc7XG5pbXBvcnQgKiBhcyBzdHJpbmdUb2tlbml6ZXIgZnJvbSAnc3RyaW5nLXB1bmN0dWF0aW9uLXRva2VuaXplcic7XG5pbXBvcnQgeyBWZXJzZU9iamVjdFV0aWxzIH0gZnJvbSAnd29yZC1hbGlnbmVyJztcbmltcG9ydCB7IGdldFZlcnNlcyB9IGZyb20gJ2JpYmxlLXJlZmVyZW5jZS1yYW5nZSc7XG4vLyBoZWxwZXJzXG5pbXBvcnQgKiBhcyBoaWdobGlnaHRIZWxwZXJzIGZyb20gJy4vaGlnaGxpZ2h0SGVscGVycyc7XG5pbXBvcnQge1xuICBjcmVhdGVIaWdobGlnaHRlZFNwYW4sXG4gIGNyZWF0ZU5vbkNsaWNrYWJsZVNwYW4sXG4gIGNyZWF0ZVRleHRTcGFuLFxuICBvbldvcmRDbGljayxcbn0gZnJvbSAnLi9odG1sRWxlbWVudHNIZWxwZXJzJztcbmltcG9ydCB7XG4gIGhhc0xlYWRpbmdTcGFjZSxcbiAgaGFzVHJhaWxpbmdTcGFjZSxcbiAgcmVtb3ZlTWFya2VyLFxufSBmcm9tICcuL3VzZm1IZWxwZXJzJztcbmltcG9ydCB7XG4gIGlzSXNvbGF0ZWRMZWZ0UXVvdGUsXG4gIGlzTmVzdGVkTWlsZXN0b25lLFxuICBpc1dvcmQsXG4gIHB1bmN0dWF0aW9uV29yZFNwYWNpbmcsXG4gIHRleHRJc0VtcHR5SW5WZXJzZU9iamVjdCxcbn0gZnJvbSAnLi9zdHJpbmdIZWxwZXJzJztcblxuLyoqXG4gKiBpZiBzaG93aW5nIFVTRk0gY29kZXMsIHJlcGxhY2UgbmV3bGluZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0XG4gKiBAcGFyYW0ge2Jvb2xlYW59IHNob3dVc2ZtXG4gKiBAcmV0dXJuIHtKU1guRWxlbWVudH1cbiAqL1xuZnVuY3Rpb24gdGV4dFRvSHRtbCh0ZXh0LCBzaG93VXNmbSkge1xuICBpZiAoc2hvd1VzZm0gJiYgKHRleHQuaW5kZXhPZignXFxuJykgPj0gMCkpIHtcbiAgICBjb25zdCBwYXJ0cyA9IHRleHQuc3BsaXQoJ1xcbicpO1xuICAgIGNvbnN0IGh0bWwgPSBbcGFydHNbMF1dO1xuXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBwYXJ0cy5sZW5ndGg7IGkrKykge1xuICAgICAgaHRtbC5wdXNoKCfihrInKTtcbiAgICAgIGh0bWwucHVzaCg8YnIvPik7XG4gICAgICBodG1sLnB1c2gocGFydHNbaV0pO1xuICAgIH1cbiAgICByZXR1cm4gaHRtbDtcbiAgfVxuICByZXR1cm4gdGV4dDtcbn1cblxuLyoqXG4gKiByZW5kZXIgdGV4dCBhcyBIVE1MIGFuZCBvdmVybGF5IGFueSBzZWxlY3Rpb25zXG4gKiBAcGFyYW0ge1N0cmluZ30gdmVyc2VUZXh0XG4gKiBAcGFyYW0ge0FycmF5fSBzZWxlY3Rpb25zIC0gdGV4dCBzZWxlY3Rpb25zIHRvIGhpZ2hsaWdodFxuICogQHBhcmFtIHtGdW5jdGlvbn0gdHJhbnNsYXRlXG4gKiBAcGFyYW0ge09iamVjdH0gZm9udFN0eWxlIC0gZm9udCBzcGVjaWZpYyBzdHlsaW5nXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzVGFyZ2V0QmlibGVcbiAqIEBwYXJhbSB7U3RyaW5nfSBmb250Q2xhc3NcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gc2hvd1VzZm1cbiAqIEByZXR1cm4geyp9XG4gKi9cbmV4cG9ydCBjb25zdCB2ZXJzZVN0cmluZyA9ICh2ZXJzZVRleHQsIHNlbGVjdGlvbnMsIHRyYW5zbGF0ZSwgZm9udFN0eWxlID0gbnVsbCwgaXNUYXJnZXRCaWJsZSwgZm9udENsYXNzLCBzaG93VXNmbSkgPT4ge1xuICBsZXQgbmV3VmVyc2VUZXh0ID0gdmVyc2VUZXh0O1xuXG4gIGlmICghc2hvd1VzZm0pIHtcbiAgICBuZXdWZXJzZVRleHQgPSByZW1vdmVNYXJrZXIodmVyc2VUZXh0KTtcbiAgICBuZXdWZXJzZVRleHQgPSBuZXdWZXJzZVRleHQucmVwbGFjZSgvXFxzKy9nLCAnICcpO1xuICAgIC8vIGlmIHN0cmluZyBvbmx5IGNvbnRhaW5zIHNwYWNlcyB0aGVuIG1ha2UgaXQgYW4gZW1wdHkgc3RyaW5nXG4gICAgbmV3VmVyc2VUZXh0ID0gbmV3VmVyc2VUZXh0LnJlcGxhY2UoL1xccy9nLCAnJykubGVuZ3RoID09PSAwID8gJycgOiBuZXdWZXJzZVRleHQ7XG4gIH1cblxuICAvLyBpZiBlbXB0eSBzdHJpbmcgdGhlbiBuZXdWZXJzZVRleHQgPSBwbGFjZSBob2xkZXIgd2FybmluZy5cbiAgaWYgKG5ld1ZlcnNlVGV4dC5sZW5ndGggPT09IDApIHtcbiAgICBuZXdWZXJzZVRleHQgPSB0cmFuc2xhdGUoJ3BhbmUubWlzc2luZ192ZXJzZV93YXJuaW5nJyk7XG4gIH1cblxuICBsZXQgdmVyc2VUZXh0U3BhbnMgPSA8c3BhbiBjbGFzc05hbWU9e2ZvbnRDbGFzc30+e3RleHRUb0h0bWwobmV3VmVyc2VUZXh0LCBzaG93VXNmbSl9PC9zcGFuPjtcblxuICBpZiAoIXNob3dVc2ZtICYmIHNlbGVjdGlvbnMgJiYgc2VsZWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgX3NlbGVjdGlvbkFycmF5ID0gc3RyaW5nVG9rZW5pemVyLnNlbGVjdGlvbkFycmF5KG5ld1ZlcnNlVGV4dCwgc2VsZWN0aW9ucyk7XG4gICAgdmVyc2VUZXh0U3BhbnMgPSBbXTtcbiAgICB2ZXJzZVRleHRTcGFucy5sZW5ndGggPSAwO1xuXG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IF9zZWxlY3Rpb25BcnJheS5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gX3NlbGVjdGlvbkFycmF5W2ldO1xuICAgICAgY29uc3QgaW5kZXggPSBpO1xuICAgICAgbGV0IHNwYW5TdHlsZSA9IHsgYmFja2dyb3VuZENvbG9yOiBzZWxlY3Rpb24uc2VsZWN0ZWQgPyAndmFyKC0taGlnaGxpZ2h0LWNvbG9yKScgOiAnJyB9O1xuXG4gICAgICBpZiAoZm9udFN0eWxlKSB7XG4gICAgICAgIHNwYW5TdHlsZSA9IHtcbiAgICAgICAgICAuLi5zcGFuU3R5bGUsXG4gICAgICAgICAgLi4uZm9udFN0eWxlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgdmVyc2VUZXh0U3BhbnMucHVzaChcbiAgICAgICAgPHNwYW4ga2V5PXtpbmRleH0gY2xhc3NOYW1lPXtmb250Q2xhc3N9IHN0eWxlPXtzcGFuU3R5bGV9PlxuICAgICAgICAgIHtzZWxlY3Rpb24udGV4dH1cbiAgICAgICAgPC9zcGFuPixcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZlcnNlVGV4dFNwYW5zO1xufTtcblxuLyoqXG4gKiBjcmVhdGUgdmVyc2UgZWxlbWVudHMgZnJvbSBhbiBhcnJheSBvZiB2ZXJzZSBvYmplY3RzXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gdmVyc2VUZXh0IC0gdmVyc2UgZGF0YVxuICogQHBhcmFtIHtTdHJpbmd9IGJpYmxlSWRcbiAqIEBwYXJhbSB7T2JqZWN0fSBjb250ZXh0SWRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGdldExleGljb25EYXRhXG4gKiBAcGFyYW0ge0Jvb2xlYW59IHNob3dQb3BvdmVyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSB0cmFuc2xhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBmb250U3R5bGUgLSBmb250IHNwZWNpZmljIHN0eWxpbmdcbiAqIEBwYXJhbSB7U3RyaW5nfSBmb250Q2xhc3MgLSBmb250IGNsYXNzIG5hbWVcbiAqIEBwYXJhbSB7YXJyYXl9IHZlcnNlV29yZENvdW50cyAtIGFycmF5IG9mIHdvcmQgY291bnRzIGZvciBtdWx0aS12ZXJzZVxuICogQHJldHVybiB7QXJyYXl9IC0gdmVyc2UgZWxlbWVudHMgdG8gZGlzcGxheVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyc2VBcnJheSh2ZXJzZVRleHQgPSBbXSwgYmlibGVJZCwgY29udGV4dElkLCBnZXRMZXhpY29uRGF0YSwgc2hvd1BvcG92ZXIsIHRyYW5zbGF0ZSwgZm9udFN0eWxlID0gbnVsbCwgZm9udENsYXNzLCB2ZXJzZVdvcmRDb3VudHMgPSBudWxsKSB7XG4gIGxldCB2ZXJzZU9iamVjdHMgPSBWZXJzZU9iamVjdFV0aWxzLmdldFdvcmRMaXN0Rm9yVmVyc2UodmVyc2VUZXh0KTtcbiAgbGV0IHdvcmRTcGFjaW5nID0gJyc7XG4gIGxldCBwcmV2aW91c1dvcmQgPSBudWxsO1xuICBjb25zdCB2ZXJzZVNwYW4gPSBbXTtcbiAgdmVyc2VTcGFuLmxlbmd0aCA9IDA7XG5cbiAgaWYgKHZlcnNlVGV4dC52ZXJzZU9iamVjdHMgJiYgdGV4dElzRW1wdHlJblZlcnNlT2JqZWN0KHZlcnNlVGV4dCwgYmlibGVJZCkpIHsgLy8gaWYgZW1wdHkgdmVyc2Ugc3RyaW5nLlxuICAgIHZlcnNlU3Bhbi5wdXNoKFxuICAgICAgPHNwYW4ga2V5PXt0cmFuc2xhdGUoJ3BhbmUubWlzc2luZ192ZXJzZV93YXJuaW5nJyl9PlxuICAgICAgICB7dHJhbnNsYXRlKCdwYW5lLm1pc3NpbmdfdmVyc2Vfd2FybmluZycpfVxuICAgICAgPC9zcGFuPixcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGlzSGVicmV3ID0gKGJpYmxlSWQgPT09ICd1aGInKTtcbiAgICBjb25zdCBvcmlnTGFuZ0JpYmxlID0gaXNIZWJyZXcgfHwgYmlibGVJZCA9PT0gJ3VnbnQnO1xuICAgIHZlcnNlT2JqZWN0cyA9IEFycmF5LmlzQXJyYXkodmVyc2VPYmplY3RzKSA/IHZlcnNlT2JqZWN0cyA6IHZlcnNlT2JqZWN0cy52ZXJzZU9iamVjdDtcblxuICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSB2ZXJzZU9iamVjdHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGNvbnN0IG9iamVjdCA9IHZlcnNlT2JqZWN0c1tpXTtcbiAgICAgIGNvbnN0IGluZGV4ID0gaTtcbiAgICAgIGNvbnN0IG5leHRXb3JkID0gdmVyc2VPYmplY3RzW2luZGV4ICsgMV07XG5cbiAgICAgIGlmIChvYmplY3QudHlwZSA9PT0gJ2h0bWwnKSB7XG4gICAgICAgIHZlcnNlU3Bhbi5wdXNoKG9iamVjdC5odG1sKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNXb3JkKG9iamVjdCkpIHtcbiAgICAgICAgY29uc3QgcGFkZGluZyA9IHdvcmRTcGFjaW5nO1xuICAgICAgICB3b3JkU3BhY2luZyA9ICcgJzsgLy8gc3BhY2luZyBiZXR3ZWVuIHdvcmRzXG4gICAgICAgIGNvbnN0IHRleHQgPSAob2JqZWN0LndvcmQgfHwgb2JqZWN0LnRleHQpO1xuICAgICAgICBsZXQgaXNIaWdobGlnaHRlZFdvcmQgPSBmYWxzZTtcbiAgICAgICAgbGV0IGlzQmV0d2VlbkhpZ2hsaWdodGVkV29yZCA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChvcmlnTGFuZ0JpYmxlICYmIGNvbnRleHRJZC5xdW90ZSAmJiBvYmplY3QudGV4dCkge1xuICAgICAgICAgIGlzSGlnaGxpZ2h0ZWRXb3JkID0gaGlnaGxpZ2h0SGVscGVycy5pc1dvcmRNYXRjaChvYmplY3QsIGNvbnRleHRJZCwgdmVyc2VPYmplY3RzLCBpbmRleCk7XG4gICAgICAgICAgaXNCZXR3ZWVuSGlnaGxpZ2h0ZWRXb3JkID0gcHJldmlvdXNXb3JkICYmICFpc0VxdWFsKHByZXZpb3VzV29yZCwgb2JqZWN0KSAmJlxuICAgICAgICAgICAgaGlnaGxpZ2h0SGVscGVycy5pc1dvcmRNYXRjaChwcmV2aW91c1dvcmQsIGNvbnRleHRJZCwgdmVyc2VPYmplY3RzLCBpbmRleCAtIDEpICYmIGlzSGlnaGxpZ2h0ZWRXb3JkO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHRJZC5xdW90ZSAmJiBvYmplY3QuY29udGVudCkge1xuICAgICAgICAgIGNvbnN0IGhpZ2hsaWdodGVkRGV0YWlscyA9IGhpZ2hsaWdodEhlbHBlcnMuZ2V0V29yZEhpZ2hsaWdodGVkRGV0YWlscyhjb250ZXh0SWQsIHByZXZpb3VzV29yZCwgb2JqZWN0LCB2ZXJzZVdvcmRDb3VudHMpO1xuICAgICAgICAgIGlzSGlnaGxpZ2h0ZWRXb3JkID0gaGlnaGxpZ2h0ZWREZXRhaWxzLmlzSGlnaGxpZ2h0ZWRXb3JkO1xuICAgICAgICAgIGlzQmV0d2VlbkhpZ2hsaWdodGVkV29yZCA9IGhpZ2hsaWdodGVkRGV0YWlscy5pc0JldHdlZW5IaWdobGlnaHRlZFdvcmQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU2F2ZSB3b3JkIHRvIGJlIHVzZWQgYXMgcHJldmlvdXNXb3JkIGluIG5leHQgd29yZC5cbiAgICAgICAgcHJldmlvdXNXb3JkID0gb2JqZWN0O1xuICAgICAgICBjb25zdCBwYWRkaW5nU3BhblN0eWxlID0geyBiYWNrZ3JvdW5kQ29sb3I6IGlzQmV0d2VlbkhpZ2hsaWdodGVkV29yZCA/ICd2YXIoLS1oaWdobGlnaHQtY29sb3IpJyA6ICd0cmFuc3BhcmVudCcgfTtcblxuICAgICAgICAvLyBUUklDS1k6IGZvciBub3cgd2UgYXJlIGRpc2FibGluZyBsZXhpY29uIHBvcHVwcyBmb3IgYW55IGJpYmxlIHRoYXQgaXMgbm90IHVnbnQgb3IgdWhiLiBUaGUgcmVhc29uIGZvclxuICAgICAgICAvLyB0aGlzIGlzIHRoYW4gc29tZSBiaWJsZXMgaGF2ZSBkaWZmZXJlbnQgc3Ryb25ncyBmb3JtYXQuIFdlIGFyZSB3YWl0aW5nIG9uIGxvbmcgdGVybSBzb2x1dGlvbi5cbiAgICAgICAgaWYgKG9iamVjdC5zdHJvbmcgJiYgb3JpZ0xhbmdCaWJsZSkgeyAvLyBpZiBjbGlja2FibGVcbiAgICAgICAgICBsZXQgc3BhblN0eWxlID0geyBiYWNrZ3JvdW5kQ29sb3I6IGlzSGlnaGxpZ2h0ZWRXb3JkID8gJ3ZhcigtLWhpZ2hsaWdodC1jb2xvciknIDogJycgfTtcblxuICAgICAgICAgIGlmIChmb250U3R5bGUpIHtcbiAgICAgICAgICAgIHNwYW5TdHlsZSA9IHtcbiAgICAgICAgICAgICAgLi4uc3BhblN0eWxlLFxuICAgICAgICAgICAgICAuLi5mb250U3R5bGUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICB2ZXJzZVNwYW4ucHVzaChcbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGtleT17aW5kZXgudG9TdHJpbmcoKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IG9uV29yZENsaWNrKGUsIG9iamVjdCwgZ2V0TGV4aWNvbkRhdGEsIHNob3dQb3BvdmVyLCB0cmFuc2xhdGUsIGlzSGVicmV3KX1cbiAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiAncG9pbnRlcicgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtmb250Q2xhc3N9IHN0eWxlPXtwYWRkaW5nU3BhblN0eWxlfT5cbiAgICAgICAgICAgICAgICB7cGFkZGluZ31cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2ZvbnRDbGFzc30gc3R5bGU9e3NwYW5TdHlsZX0+XG4gICAgICAgICAgICAgICAge3JlbW92ZU1hcmtlcih0ZXh0KX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPixcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZlcnNlU3Bhbi5wdXNoKGNyZWF0ZU5vbkNsaWNrYWJsZVNwYW4oaW5kZXgsIHBhZGRpbmdTcGFuU3R5bGUsIHBhZGRpbmcsIGlzSGlnaGxpZ2h0ZWRXb3JkLCB0ZXh0LCBmb250Q2xhc3MpKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpc05lc3RlZE1pbGVzdG9uZShvYmplY3QpKSB7IC8vIGlmIG5lc3RlZCBtaWxlc3RvbmVcbiAgICAgICAgY29uc3QgbmVzdGVkTWlsZXN0b25lID0gaGlnaGxpZ2h0SGVscGVycy5nZXRXb3Jkc0Zyb21OZXN0ZWRNaWxlc3RvbmUob2JqZWN0LCBjb250ZXh0SWQsIGluZGV4LCBwcmV2aW91c1dvcmQsIHdvcmRTcGFjaW5nLCBmb250Q2xhc3MsIHZlcnNlV29yZENvdW50cyk7XG5cbiAgICAgICAgZm9yIChsZXQgaiA9IDAsIG5MZW4gPSBuZXN0ZWRNaWxlc3RvbmUud29yZFNwYW5zLmxlbmd0aDsgaiA8IG5MZW47IGorKykge1xuICAgICAgICAgIGNvbnN0IG5lc3RlZFdvcmRTcGFuID0gbmVzdGVkTWlsZXN0b25lLndvcmRTcGFuc1tqXTtcbiAgICAgICAgICB2ZXJzZVNwYW4ucHVzaChuZXN0ZWRXb3JkU3Bhbik7XG4gICAgICAgIH1cbiAgICAgICAgcHJldmlvdXNXb3JkID0gbmVzdGVkTWlsZXN0b25lLm5lc3RlZFByZXZpb3VzV29yZDtcbiAgICAgICAgd29yZFNwYWNpbmcgPSBuZXN0ZWRNaWxlc3RvbmUubmVzdGVkV29yZFNwYWNpbmc7XG4gICAgICB9IGVsc2UgaWYgKG9iamVjdC50ZXh0KSB7IC8vIGlmIG5vdCB3b3JkLCBzaG93IHB1bmN0dWF0aW9uLCBldGMuIGJ1dCBub3QgY2xpY2thYmxlXG4gICAgICAgIGxldCB0ZXh0ID0gb2JqZWN0LnRleHQ7XG5cbiAgICAgICAgaWYgKGhhc0xlYWRpbmdTcGFjZSh0ZXh0KSkgeyAvLyBsZWFkaW5nIHNwYWNlcyBhcmUgbm90IHNpZ25pZmljYW50IGluIGh0bWwsIHNvIHdlIG5lZWQgdG8gcmVwbGFjZSB3aXRoIGEgaGFyZCBzcGFjZVxuICAgICAgICAgIHRleHQgPSB0ZXh0LnN1YnN0cigxKTtcbiAgICAgICAgICBoaWdobGlnaHRIZWxwZXJzLmFkZFNwYWNlKHZlcnNlU3BhbiwgZm9udENsYXNzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRyYWlsaW5nU3BhY2UgPSBoYXNUcmFpbGluZ1NwYWNlKHRleHQpO1xuXG4gICAgICAgIGlmICh0cmFpbGluZ1NwYWNlICYmIHRleHQpIHsgLy8gdHJhaWxpbmcgc3BhY2VzIGFyZSBub3Qgc2lnbmlmaWNhbnQgaW4gaHRtbCwgc28gd2UgbmVlZCB0byByZXBsYWNlIHdpdGggYSBoYXJkIHNwYWNlXG4gICAgICAgICAgdGV4dCA9IHRleHQuc3Vic3RyKDAsIHRleHQubGVuZ3RoIC0gMSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc1VzZm1UYWdOb3RTcGFuID0gb2JqZWN0LnRhZyAmJiAhb2JqZWN0LmVuZFRhZzsgLy8gc2VlIGlmIFVTRk0gdGFnIGRvZXMgbm90IGhhdmUgYSBtYXRjaGluZyBlbmQgdGFnLlxuXG4gICAgICAgIGlmIChpc1VzZm1UYWdOb3RTcGFuIHx8IGlzSXNvbGF0ZWRMZWZ0UXVvdGUodGV4dCkpIHsgLy8gaWYgdGhpcyB3YXMgbm90IGp1c3Qgc2ltcGxlIHRleHQgbWFya2VyLCBuZWVkIHRvIGFkZCB3aGl0ZXNwYWNlXG4gICAgICAgICAgaGlnaGxpZ2h0SGVscGVycy5hZGRTcGFjZSh2ZXJzZVNwYW4pO1xuICAgICAgICB9XG4gICAgICAgIHdvcmRTcGFjaW5nID0gcHVuY3R1YXRpb25Xb3JkU3BhY2luZyhvYmplY3QpOyAvLyBzcGFjaW5nIGJlZm9yZSB3b3Jkc1xuXG4gICAgICAgIGlmIChoaWdobGlnaHRIZWxwZXJzLmlzUHVuY3R1YXRpb25IaWdobGlnaHRlZChwcmV2aW91c1dvcmQsIG5leHRXb3JkLCBjb250ZXh0SWQsIHZlcnNlT2JqZWN0cywgaW5kZXgsIHZlcnNlV29yZENvdW50cykpIHtcbiAgICAgICAgICB2ZXJzZVNwYW4ucHVzaChjcmVhdGVIaWdobGlnaHRlZFNwYW4oaW5kZXgsIHRleHQsIGZvbnRDbGFzcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZlcnNlU3Bhbi5wdXNoKGNyZWF0ZVRleHRTcGFuKGluZGV4LCB0ZXh0LCBmb250Q2xhc3MpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0cmFpbGluZ1NwYWNlKSB7IC8vIGFkZCB0aGUgdHJhaWxpbmcgc3BhY2UgYWZ0ZXIgdGhlIHRleHQgc3BhblxuICAgICAgICAgIGhpZ2hsaWdodEhlbHBlcnMuYWRkU3BhY2UodmVyc2VTcGFuKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2ZXJzZVNwYW47XG59XG5cbi8qKlxuICogZ2V0IHZlcnNlIHJhbmdlIGZyb20gc3BhblxuICogQHBhcmFtIHtzdHJpbmd9IHZlcnNlU3BhblxuICogQHJldHVybiB7e2hpZ2g6IG51bWJlciwgbG93OiBudW1iZXJ9fVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVyc2VTcGFuUmFuZ2UodmVyc2VTcGFuKSB7XG4gIGxldCBbbG93LCBoaWdoXSA9IHZlcnNlU3Bhbi5zcGxpdCgnLScpO1xuXG4gIGlmIChsb3cgJiYgaGlnaCkge1xuICAgIGxvdyA9IHBhcnNlSW50KGxvdywgMTApO1xuICAgIGhpZ2ggPSBwYXJzZUludChoaWdoLCAxMCk7XG5cbiAgICBpZiAoKGxvdyA+IDApICYmIChoaWdoID49IGxvdykpIHtcbiAgICAgIHJldHVybiB7IGxvdywgaGlnaCB9O1xuICAgIH1cbiAgfVxuICByZXR1cm4ge307XG59XG5cbi8qKlxuICogc3BsaXRzIHZlcnNlIGxpc3QgaW50byBpbmRpdmlkdWFsIHZlcnNlc1xuICogQHBhcmFtIHtzdHJpbmd9IHZlcnNlU3RyXG4gKiBAcmV0dXJuIHtbbnVtYmVyXX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnNlTGlzdCh2ZXJzZVN0cikge1xuICBjb25zdCB2ZXJzZXMgPSB2ZXJzZVN0ci50b1N0cmluZygpLnNwbGl0KCcsJyk7XG4gIHJldHVybiB2ZXJzZXM7XG59XG5cbi8qKlxuICogdGVzdCBpZiB2ZXJzZSBpcyB2YWxpZCB2ZXJzZSBzcGFuIHN0cmluZ1xuICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfSB2ZXJzZVxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmVyc2VTcGFuKHZlcnNlKSB7XG4gIGNvbnN0IGlzU3BhbiA9ICh0eXBlb2YgdmVyc2UgPT09ICdzdHJpbmcnKSAmJiB2ZXJzZS5pbmNsdWRlcygnLScpO1xuICByZXR1cm4gaXNTcGFuO1xufVxuXG4vKipcbiAqIHRlc3QgaWYgdmVyc2UgaXMgdmFsaWQgdmVyc2UgbGlzdCAodmVyc2UgbnVtYmVycyBzZXBhcmF0ZWQgYnkgY29tbWFzKVxuICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfSB2ZXJzZVxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmVyc2VMaXN0KHZlcnNlKSB7XG4gIGNvbnN0IGlzTGlzdCA9ICh0eXBlb2YgdmVyc2UgPT09ICdzdHJpbmcnKSAmJiB2ZXJzZS5pbmNsdWRlcygnLCcpO1xuICByZXR1cm4gaXNMaXN0O1xufVxuXG4vKipcbiAqIHRlc3QgaWYgdmVyc2UgaXMgdmFsaWQgdmVyc2Ugc3BhbiBvciB2ZXJzZSBsaXN0XG4gKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ9IHZlcnNlXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWZXJzZVNldCh2ZXJzZSkge1xuICBjb25zdCBpc1NldCA9IGlzVmVyc2VTcGFuKHZlcnNlKSB8fCBpc1ZlcnNlTGlzdCh2ZXJzZSk7XG4gIHJldHVybiBpc1NldDtcbn1cblxuLyoqXG4gKiBnZXQgYmlibGUgZnJvbSBiaWJsZXNcbiAqIEBwYXJhbSB7b2JqZWN0fSBiaWJsZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBsYW5ndWFnZUlkXG4gKiBAcGFyYW0gb3duZXJcbiAqIEBwYXJhbSBiaWJsZUlkXG4gKiBAcmV0dXJuIHsqfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmlibGVFbGVtZW50KGJpYmxlcywgbGFuZ3VhZ2VJZCwgYmlibGVJZCwgb3duZXIgPSBudWxsKSB7XG4gIGNvbnN0IGtleSA9IChvd25lciAmJiBsYW5ndWFnZUlkICE9PSAndGFyZ2V0TGFuZ3VhZ2UnKSA/IGAke2xhbmd1YWdlSWR9XyR7b3duZXJ9YCA6IGxhbmd1YWdlSWQ7XG4gIGNvbnN0IGJpYmxlRWxlbWVudCA9IGJpYmxlc1trZXldPy5bYmlibGVJZF07XG4gIHJldHVybiBiaWJsZUVsZW1lbnQ7XG59XG5cbi8qKlxuICogdHJ5IHRvIGZpbmQgdmVyc2UgZnJvbSBjaGFwdGVyLiAgSWYgbm90IGZvdW5kIGxvb2sgZm9yIHZlcnNlIHNwYW5zXG4gKiBAcGFyYW0ge29iamVjdH0gYmlibGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBjaGFwdGVyXG4gKiBAcGFyYW0ge3N0cmluZ30gdmVyc2VcbiAqIEByZXR1cm4ge29iamVjdHxudWxsfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVyc2VEYXRhRnJvbUJpYmxlKGJpYmxlLCBjaGFwdGVyLCB2ZXJzZSkge1xuICBsZXQgdmVyc2VEYXRhID0gbnVsbDtcbiAgbGV0IHZlcnNlTGFiZWwgPSBudWxsO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgY2hhcHRlckRhdGEgPSBiaWJsZVtjaGFwdGVyXTtcblxuICAgIGlmIChjaGFwdGVyRGF0YSkge1xuICAgICAgdmVyc2VEYXRhID0gY2hhcHRlckRhdGFbdmVyc2VdO1xuXG4gICAgICBpZiAodmVyc2VEYXRhKSB7XG4gICAgICAgIHZlcnNlTGFiZWwgPSB2ZXJzZTtcbiAgICAgIH0gZWxzZSB7IC8vIHNlYXJjaCBmb3IgdmVyc2Ugc3BhbiB0aGF0IGNvbnRhaW5zIHZlcnNlXG4gICAgICAgIGNvbnN0IHZlcnNlVmFsID0gcGFyc2VJbnQodmVyc2UpO1xuXG4gICAgICAgIGZvciAobGV0IHZlcnNlSW5kZXggaW4gY2hhcHRlckRhdGEpIHtcbiAgICAgICAgICBpZiAoaXNWZXJzZVNwYW4odmVyc2VJbmRleCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbG93LCBoaWdoIH0gPSBnZXRWZXJzZVNwYW5SYW5nZSh2ZXJzZUluZGV4KTtcblxuICAgICAgICAgICAgaWYgKCAodmVyc2VWYWwgPj0gbG93KSAmJiAodmVyc2VWYWwgPD0gaGlnaCkgKSB7XG4gICAgICAgICAgICAgIHZlcnNlRGF0YSA9IGNoYXB0ZXJEYXRhW3ZlcnNlSW5kZXhdO1xuICAgICAgICAgICAgICB2ZXJzZUxhYmVsID0gdmVyc2VJbmRleDtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eVxuICB9IGNhdGNoIChlKSB7fVxuICByZXR1cm4geyB2ZXJzZURhdGEsIHZlcnNlTGFiZWwgfTtcbn1cblxuLyoqXG4gKiBjaGVjayB0byBzZWUgaWYgdmVyc2VMYWJlbCBpcyBhIHNwYW4sIGlmIHNvIHNlZSBpZiB2ZXJzZSBpcyB0aGUgZmlyc3QgdmVyc2UgaW4gdGhlIHNwYW5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2ZXJzZUxhYmVsIC0gdmVyc2UgbGFiZWwgdG8gdGVzdCBmb3Igc3BhblxuICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfSB2ZXJzZSAtIHZlcnNlIG51bWJlciB0byBjaGVjayBpZiBmaXJzdCB2ZXJzZSBpbiBzcGFuXG4gKiBAcmV0dXJuIHtvYmplY3R8bnVsbH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmVyc2VJblNwYW4odmVyc2VMYWJlbCwgdmVyc2UpIHtcbiAgbGV0IGlzVmVyc2VTcGFuID0gZmFsc2UsIGlzRmlyc3RWZXJzZSA9IGZhbHNlO1xuXG4gIGlmICh2ZXJzZUxhYmVsKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IFssIGhpXSA9IHZlcnNlTGFiZWwuc3BsaXQoJy0nKTtcbiAgICAgIGlzVmVyc2VTcGFuID0gISFoaTtcblxuICAgICAgaWYgKGlzVmVyc2VTcGFuKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdmVyc2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgdmVyc2UgPSBwYXJzZUludCh2ZXJzZSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdGFydFZlcnNlID0gcGFyc2VJbnQodmVyc2VMYWJlbCk7XG4gICAgICAgIGlzRmlyc3RWZXJzZSA9ICh2ZXJzZSA9PT0gc3RhcnRWZXJzZSk7XG4gICAgICB9XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZW1wdHlcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgfVxuICB9XG4gIHJldHVybiB7IGlzVmVyc2VTcGFuLCBpc0ZpcnN0VmVyc2UgfTtcbn1cblxuLyoqXG4gKiBjb3VudCBvcmlnaW5hbCB3b3JkcyBpbiB2ZXJzZU9iamVjdHMgLSBpdCBpcyBuZXN0ZWQgc28gdGhpcyBpcyByZWN1cnNpdmVcbiAqIEBwYXJhbSB7YXJyYXl9IHZlcnNlT2JqZWN0c1xuICogQHBhcmFtIHtudW1iZXJ9IHZlcnNlQ250XG4gKiBAcGFyYW0ge2Jvb2xlYW59IG11bHRpVmVyc2VcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcmV2aW91c1ZlcnNlV29yZENvdW50c1xuICogQHBhcmFtIHtvYmplY3R9IGN1cnJlbnRWZXJzZUNvdW50c1xuICovXG5mdW5jdGlvbiBjb3VudE9yaWdpbmFsV29yZHModmVyc2VPYmplY3RzLCB2ZXJzZUNudCwgbXVsdGlWZXJzZSwgY3VycmVudFZlcnNlQ291bnRzLCBwcmV2aW91c1ZlcnNlV29yZENvdW50cykge1xuICBpZiAodmVyc2VPYmplY3RzKSB7XG4gICAgZm9yIChjb25zdCB2byBvZiB2ZXJzZU9iamVjdHMpIHtcbiAgICAgIGlmIChtdWx0aVZlcnNlICYmICh2bz8udGFnID09PSAnemFsbicpKSB7XG4gICAgICAgIHZvLnZlcnNlQ250ID0gdmVyc2VDbnQ7XG4gICAgICAgIGNvbnN0IG9yaWdXb3JkID0gdm8/LmNvbnRlbnQ7XG5cbiAgICAgICAgaWYgKG9yaWdXb3JkKSB7XG4gICAgICAgICAgY29uc3QgcHJldmlvdXNDb3VudCA9IHByZXZpb3VzVmVyc2VXb3JkQ291bnRzW29yaWdXb3JkXSB8fCAwO1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRDb3VudCA9IGN1cnJlbnRWZXJzZUNvdW50c1tvcmlnV29yZF0gfHwgMDtcblxuICAgICAgICAgIGlmICghY3VycmVudENvdW50KSB7XG4gICAgICAgICAgICBjdXJyZW50VmVyc2VDb3VudHNbb3JpZ1dvcmRdID0gdm8ub2NjdXJyZW5jZXMgKyBwcmV2aW91c0NvdW50O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh2by5jaGlsZHJlbikge1xuICAgICAgICAgICAgY291bnRPcmlnaW5hbFdvcmRzKHZvLmNoaWxkcmVuLCB2ZXJzZUNudCwgbXVsdGlWZXJzZSwgY3VycmVudFZlcnNlQ291bnRzLCBwcmV2aW91c1ZlcnNlV29yZENvdW50cyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogZ2V0cyB2ZXJzZSBkYXRhIGZvciB2ZXJzZUxpc3RcbiAqIEBwYXJhbSB7b2JqZWN0fSBib29rRGF0YVxuICogQHBhcmFtIHtudW1iZXJ8c3RyaW5nfSBjaGFwdGVyXG4gKiBAcGFyYW0ge3N0cmluZ30gdmVyc2VMaXN0IC0gY2FuIGJlIGEgc2luZ2xlIHZlcnNlLCBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiB2ZXJzZXMgb3IgdmVyc2UgcmFuZ2VcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGNyZWF0ZVZlcnNlTWFya2VyIC0gdG8gY3JlYXRlIGEgdmVyc2UgbWFya2VyXG4gKiBAcmV0dXJucyB7e3ZlcnNlRGF0YToge3ZlcnNlT2JqZWN0czogKltdfSwgdmVyc2VMYWJlbDogc3RyaW5nfX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnNlRGF0YShib29rRGF0YSwgY2hhcHRlciwgdmVyc2VMaXN0LCBjcmVhdGVWZXJzZU1hcmtlcikge1xuICBsZXQgdmVyc2VMYWJlbCA9ICcnO1xuICBsZXQgaW5pdGlhbENoYXB0ZXI7XG4gIGNvbnN0IHJlZnMgPSBnZXRWZXJzZXMoYm9va0RhdGEsIGAke2NoYXB0ZXJ9OiR7dmVyc2VMaXN0fWApO1xuICBsZXQgdmVyc2VTcGFuRGF0YSA9IFtdO1xuICBjb25zdCBoaXN0b3J5ID0gW107IC8vIHRvIGd1YXJkIGFnYWluc3QgZHVwbGljYXRlIHZlcnNlc1xuICBsZXQgdmVyc2VXb3JkQ291bnRzID0gW107XG4gIGNvbnN0IG11bHRpVmVyc2UgPSByZWZzLmxlbmd0aCA+IDE7XG5cbiAgaWYgKHJlZnMgJiYgcmVmcy5sZW5ndGgpIHtcbiAgICBpbml0aWFsQ2hhcHRlciA9IHJlZnNbMF0uY2hhcHRlcjtcbiAgfVxuXG4gIGZvciAobGV0IHZlcnNlQ250ID0gMDsgdmVyc2VDbnQgPCByZWZzLmxlbmd0aDsgdmVyc2VDbnQrKykge1xuICAgIGNvbnN0IHByZXZpb3VzVmVyc2VXb3JkQ291bnRzID0gdmVyc2VDbnQgPiAwID8gdmVyc2VXb3JkQ291bnRzW3ZlcnNlQ250LTFdIDoge307XG4gICAgY29uc3QgY3VycmVudFZlcnNlQ291bnRzID0ge307XG4gICAgdmVyc2VXb3JkQ291bnRzLnB1c2goY3VycmVudFZlcnNlQ291bnRzKTtcbiAgICBjb25zdCByZWYgPSByZWZzW3ZlcnNlQ250XTtcbiAgICBjb25zdCBjaGFwdGVyID0gcmVmLmNoYXB0ZXI7XG4gICAgY29uc3QgZGF0YSA9IHJlZi52ZXJzZURhdGE7XG4gICAgbGV0IGxhYmVsID0gcmVmLnZlcnNlO1xuXG4gICAgaWYgKGNoYXB0ZXIgIT09IGluaXRpYWxDaGFwdGVyKSB7XG4gICAgICBsYWJlbCA9IGAke2NoYXB0ZXJ9OiR7bGFiZWx9YDtcbiAgICB9XG5cbiAgICBpZiAoZGF0YSAmJiAhaGlzdG9yeS5pbmNsdWRlcyhsYWJlbCkpIHsgLy8gc2tpcCBvdmVyIGR1cGxpY2F0ZXNcbiAgICAgIGhpc3RvcnkucHVzaChsYWJlbCArICcnKTtcblxuICAgICAgaWYgKHZlcnNlU3BhbkRhdGEubGVuZ3RoKSB7XG4gICAgICAgIHZlcnNlU3BhbkRhdGEucHVzaChjcmVhdGVWZXJzZU1hcmtlcihsYWJlbCkpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7IC8vIGlmIGRhdGEgaXMgc3RyaW5ndHlwZSAsIHdlIG5lZWQgdG8gd3JhcCBhcyBhIHRleHQgdmVyc2Ugb2JqZWN0XG4gICAgICAgIHZlcnNlU3BhbkRhdGEucHVzaCh7XG4gICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgIHRleHQ6IGRhdGEsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHsgLy8gZ2V0IGN1bXVsYXRpdmUgd29yZCBjb3VudHMgZm9yIGVhY2ggdmVyc2VcbiAgICAgICAgY29uc3QgdmVyc2VPYmplY3RzID0gZGF0YT8udmVyc2VPYmplY3RzO1xuXG4gICAgICAgIGlmICh2ZXJzZU9iamVjdHMpIHtcbiAgICAgICAgICBjb3VudE9yaWdpbmFsV29yZHModmVyc2VPYmplY3RzLCB2ZXJzZUNudCwgbXVsdGlWZXJzZSwgY3VycmVudFZlcnNlQ291bnRzLCBwcmV2aW91c1ZlcnNlV29yZENvdW50cywgdmVyc2VXb3JkQ291bnRzKTtcbiAgICAgICAgICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSh2ZXJzZVNwYW5EYXRhLCBkYXRhLnZlcnNlT2JqZWN0cyk7XG4gICAgICAgICAgY29uc3Qgd29yZHMgPSBPYmplY3Qua2V5cyhwcmV2aW91c1ZlcnNlV29yZENvdW50cyk7XG5cbiAgICAgICAgICBmb3IgKGNvbnN0IHdvcmQgb2Ygd29yZHMpIHsgLy8gdXBkYXRlIGN1cnJlbnQgdmVyc2Ugd2l0aCBjb3VudHMgZnJvbSBwcmV2aW91cyB2ZXJzZVxuICAgICAgICAgICAgaWYgKCFjdXJyZW50VmVyc2VDb3VudHNbd29yZF0pIHtcbiAgICAgICAgICAgICAgY3VycmVudFZlcnNlQ291bnRzW3dvcmRdID0gcHJldmlvdXNWZXJzZVdvcmRDb3VudHNbd29yZF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghdmVyc2VMYWJlbCkge1xuICAgICAgICB2ZXJzZUxhYmVsID0gbGFiZWwudG9TdHJpbmcoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoIW11bHRpVmVyc2UpIHtcbiAgICB2ZXJzZVdvcmRDb3VudHMgPSBudWxsO1xuICB9XG5cbiAgY29uc3QgdmVyc2VEYXRhID0geyB2ZXJzZU9iamVjdHM6IHZlcnNlU3BhbkRhdGEgfTtcbiAgcmV0dXJuIHtcbiAgICB2ZXJzZURhdGEsXG4gICAgdmVyc2VMYWJlbCxcbiAgICBtdWx0aVZlcnNlLFxuICAgIHZlcnNlV29yZENvdW50cyxcbiAgfTtcbn1cblxuXG4vKipcbiAqIGNyZWF0ZSBodG1sIHRvIG1hcmsgdmVyc2VcbiAqIEBwYXJhbSB2ZXJzZVxuICogQHJldHVybiB7SlNYLkVsZW1lbnR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWZXJzZU1hcmtlcih2ZXJzZSkge1xuICByZXR1cm4gPD48YnIvPjxiPnt2ZXJzZX08L2I+IDwvPjtcbn1cblxuLyoqXG4gKiBjcmVhdGUgYW4gaHRtbCBvYmplY3QgdG8gaW5zZXJ0IGludG8gc2NyaXB0dXJlIHBhbmVcbiAqIEBwYXJhbSB7SlNYLkVsZW1lbnR9IGh0bWxcbiAqIEByZXR1cm4ge3todG1sLCB0ZXh0OiBzdHJpbmcsIHR5cGU6IHN0cmluZ319XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUh0bWxJbnNlcnQoaHRtbCkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdodG1sJyxcbiAgICBodG1sOiBodG1sLFxuICAgIHRleHQ6ICcnLFxuICB9O1xufVxuXG4vKipcbiAqIGNyZWF0ZSBhbiBvYmplY3QgdG8gbWFyayB0aGUgYmVnaW5uaW5nIG9mIGEgdmVyc2VcbiAqIEBwYXJhbSB7c3RyaW5nfSB2ZXJzZVxuICogQHJldHVybiB7b2JqZWN0fVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVmVyc2VNYXJrZXIodmVyc2UpIHtcbiAgcmV0dXJuIGNyZWF0ZUh0bWxJbnNlcnQoZ2V0VmVyc2VNYXJrZXIodmVyc2UpKTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTs7QUFBQ0EsTUFBQSxDQUFBQyxjQUFBLENBQUFDLE9BQUE7RUFBQUMsS0FBQTtBQUFBO0FBQUFELE9BQUEsQ0FBQUUsaUJBQUEsR0FBQUEsaUJBQUE7QUFBQUYsT0FBQSxDQUFBRyxlQUFBLEdBQUFBLGVBQUE7QUFBQUgsT0FBQSxDQUFBSSxZQUFBLEdBQUFBLFlBQUE7QUFBQUosT0FBQSxDQUFBSyxxQkFBQSxHQUFBQSxxQkFBQTtBQUFBTCxPQUFBLENBQUFNLFlBQUEsR0FBQUEsWUFBQTtBQUFBTixPQUFBLENBQUFPLGNBQUEsR0FBQUEsY0FBQTtBQUFBUCxPQUFBLENBQUFRLGlCQUFBLEdBQUFBLGlCQUFBO0FBQUFSLE9BQUEsQ0FBQVMsYUFBQSxHQUFBQSxhQUFBO0FBQUFULE9BQUEsQ0FBQVUsV0FBQSxHQUFBQSxXQUFBO0FBQUFWLE9BQUEsQ0FBQVcsVUFBQSxHQUFBQSxVQUFBO0FBQUFYLE9BQUEsQ0FBQVksV0FBQSxHQUFBQSxXQUFBO0FBQUFaLE9BQUEsQ0FBQWEsVUFBQSxHQUFBQSxVQUFBO0FBQUFiLE9BQUEsQ0FBQWMsV0FBQTtBQUNiLElBQUFDLE1BQUEs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
|
|
571
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImNyZWF0ZVZlcnNlTWFya2VyIiwiZ2V0QmlibGVFbGVtZW50IiwiZ2V0VmVyc2VEYXRhIiwiZ2V0VmVyc2VEYXRhRnJvbUJpYmxlIiwiZ2V0VmVyc2VMaXN0IiwiZ2V0VmVyc2VNYXJrZXIiLCJnZXRWZXJzZVNwYW5SYW5nZSIsImlzVmVyc2VJblNwYW4iLCJpc1ZlcnNlTGlzdCIsImlzVmVyc2VTZXQiLCJpc1ZlcnNlU3BhbiIsInZlcnNlQXJyYXkiLCJ2ZXJzZVN0cmluZyIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2RlZXBFcXVhbCIsInN0cmluZ1Rva2VuaXplciIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3dvcmRBbGlnbmVyIiwiX2JpYmxlUmVmZXJlbmNlUmFuZ2UiLCJoaWdobGlnaHRIZWxwZXJzIiwiX2h0bWxFbGVtZW50c0hlbHBlcnMiLCJfdXNmbUhlbHBlcnMiLCJfc3RyaW5nSGVscGVycyIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsImxlbmd0aCIsIl9uIiwiRiIsInMiLCJkb25lIiwiVHlwZUVycm9yIiwiYSIsInUiLCJuZXh0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsImZyb20iLCJfYXJyYXlMaWtlVG9BcnJheSIsIl9zbGljZWRUb0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX25vbkl0ZXJhYmxlUmVzdCIsInRvU3RyaW5nIiwic2xpY2UiLCJuYW1lIiwidGVzdCIsImwiLCJwdXNoIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl90b1ByaW1pdGl2ZSIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiTnVtYmVyIiwidGV4dFRvSHRtbCIsInRleHQiLCJzaG93VXNmbSIsImluZGV4T2YiLCJwYXJ0cyIsInNwbGl0IiwiaHRtbCIsImNyZWF0ZUVsZW1lbnQiLCJ2ZXJzZVRleHQiLCJzZWxlY3Rpb25zIiwidHJhbnNsYXRlIiwiZm9udFN0eWxlIiwidW5kZWZpbmVkIiwiaXNUYXJnZXRCaWJsZSIsImZvbnRDbGFzcyIsIm5ld1ZlcnNlVGV4dCIsInJlbW92ZU1hcmtlciIsInJlcGxhY2UiLCJ2ZXJzZVRleHRTcGFucyIsImNsYXNzTmFtZSIsIl9zZWxlY3Rpb25BcnJheSIsInNlbGVjdGlvbkFycmF5IiwibGVuIiwic2VsZWN0aW9uIiwiaW5kZXgiLCJzcGFuU3R5bGUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJzZWxlY3RlZCIsImtleSIsInN0eWxlIiwiYmlibGVJZCIsImNvbnRleHRJZCIsImdldExleGljb25EYXRhIiwic2hvd1BvcG92ZXIiLCJ2ZXJzZVdvcmRDb3VudHMiLCJ2ZXJzZU9iamVjdHMiLCJWZXJzZU9iamVjdFV0aWxzIiwiZ2V0V29yZExpc3RGb3JWZXJzZSIsIndvcmRTcGFjaW5nIiwicHJldmlvdXNXb3JkIiwidmVyc2VTcGFuIiwidGV4dElzRW1wdHlJblZlcnNlT2JqZWN0IiwiaXNIZWJyZXciLCJvcmlnTGFuZ0JpYmxlIiwidmVyc2VPYmplY3QiLCJfbG9vcCIsIm9iamVjdCIsIm5leHRXb3JkIiwidHlwZSIsImlzV29yZCIsInBhZGRpbmciLCJ3b3JkIiwiaXNIaWdobGlnaHRlZFdvcmQiLCJpc0JldHdlZW5IaWdobGlnaHRlZFdvcmQiLCJxdW90ZSIsImlzV29yZE1hdGNoIiwiaXNFcXVhbCIsImNvbnRlbnQiLCJoaWdobGlnaHRlZERldGFpbHMiLCJnZXRXb3JkSGlnaGxpZ2h0ZWREZXRhaWxzIiwicGFkZGluZ1NwYW5TdHlsZSIsInN0cm9uZyIsIm9uQ2xpY2siLCJvbldvcmRDbGljayIsImN1cnNvciIsImNyZWF0ZU5vbkNsaWNrYWJsZVNwYW4iLCJpc05lc3RlZE1pbGVzdG9uZSIsIm5lc3RlZE1pbGVzdG9uZSIsImdldFdvcmRzRnJvbU5lc3RlZE1pbGVzdG9uZSIsImoiLCJuTGVuIiwid29yZFNwYW5zIiwibmVzdGVkV29yZFNwYW4iLCJuZXN0ZWRQcmV2aW91c1dvcmQiLCJuZXN0ZWRXb3JkU3BhY2luZyIsImhhc0xlYWRpbmdTcGFjZSIsInN1YnN0ciIsImFkZFNwYWNlIiwidHJhaWxpbmdTcGFjZSIsImhhc1RyYWlsaW5nU3BhY2UiLCJpc1VzZm1UYWdOb3RTcGFuIiwidGFnIiwiZW5kVGFnIiwiaXNJc29sYXRlZExlZnRRdW90ZSIsInB1bmN0dWF0aW9uV29yZFNwYWNpbmciLCJpc1B1bmN0dWF0aW9uSGlnaGxpZ2h0ZWQiLCJjcmVhdGVIaWdobGlnaHRlZFNwYW4iLCJjcmVhdGVUZXh0U3BhbiIsIl92ZXJzZVNwYW4kc3BsaXQiLCJfdmVyc2VTcGFuJHNwbGl0MiIsImxvdyIsImhpZ2giLCJwYXJzZUludCIsInZlcnNlU3RyIiwidmVyc2VzIiwidmVyc2UiLCJpc1NwYW4iLCJpbmNsdWRlcyIsImlzTGlzdCIsImlzU2V0IiwiYmlibGVzIiwibGFuZ3VhZ2VJZCIsIl9iaWJsZXMka2V5Iiwib3duZXIiLCJjb25jYXQiLCJiaWJsZUVsZW1lbnQiLCJiaWJsZSIsImNoYXB0ZXIiLCJ2ZXJzZURhdGEiLCJ2ZXJzZUxhYmVsIiwiY29uc29sZSIsImxvZyIsImNoYXB0ZXJEYXRhIiwidmVyc2VWYWwiLCJfZ2V0VmVyc2VTcGFuUmFuZ2UiLCJkYXRhIiwiX3ZlcnNlRGF0YSR2ZXJzZU9iamVjIiwidmVyc2VJbmRleCIsIl9nZXRWZXJzZVNwYW5SYW5nZTIiLCJpc0ZpcnN0VmVyc2UiLCJfdmVyc2VMYWJlbCRzcGxpdCIsIl92ZXJzZUxhYmVsJHNwbGl0MiIsImhpIiwic3RhcnRWZXJzZSIsImNvdW50T3JpZ2luYWxXb3JkcyIsInZlcnNlQ250IiwibXVsdGlWZXJzZSIsImN1cnJlbnRWZXJzZUNvdW50cyIsInByZXZpb3VzVmVyc2VXb3JkQ291bnRzIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJ2byIsIm9yaWdXb3JkIiwicHJldmlvdXNDb3VudCIsImN1cnJlbnRDb3VudCIsIm9jY3VycmVuY2VzIiwiY2hpbGRyZW4iLCJlcnIiLCJib29rRGF0YSIsInZlcnNlTGlzdCIsImluaXRpYWxDaGFwdGVyIiwicmVmcyIsImdldFZlcnNlcyIsInZlcnNlU3BhbkRhdGEiLCJoaXN0b3J5IiwicmVmIiwibGFiZWwiLCJ3b3JkcyIsIl9pIiwiX3dvcmRzIiwiRnJhZ21lbnQiLCJjcmVhdGVIdG1sSW5zZXJ0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RjX3VpX3Rvb2xraXQvU2NyaXB0dXJlUGFuZS9oZWxwZXJzL3ZlcnNlSGVscGVycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnZGVlcC1lcXVhbCc7XG5pbXBvcnQgKiBhcyBzdHJpbmdUb2tlbml6ZXIgZnJvbSAnc3RyaW5nLXB1bmN0dWF0aW9uLXRva2VuaXplcic7XG5pbXBvcnQgeyBWZXJzZU9iamVjdFV0aWxzIH0gZnJvbSAnd29yZC1hbGlnbmVyJztcbmltcG9ydCB7IGdldFZlcnNlcyB9IGZyb20gJ2JpYmxlLXJlZmVyZW5jZS1yYW5nZSc7XG4vLyBoZWxwZXJzXG5pbXBvcnQgKiBhcyBoaWdobGlnaHRIZWxwZXJzIGZyb20gJy4vaGlnaGxpZ2h0SGVscGVycyc7XG5pbXBvcnQge1xuICBjcmVhdGVIaWdobGlnaHRlZFNwYW4sXG4gIGNyZWF0ZU5vbkNsaWNrYWJsZVNwYW4sXG4gIGNyZWF0ZVRleHRTcGFuLFxuICBvbldvcmRDbGljayxcbn0gZnJvbSAnLi9odG1sRWxlbWVudHNIZWxwZXJzJztcbmltcG9ydCB7XG4gIGhhc0xlYWRpbmdTcGFjZSxcbiAgaGFzVHJhaWxpbmdTcGFjZSxcbiAgcmVtb3ZlTWFya2VyLFxufSBmcm9tICcuL3VzZm1IZWxwZXJzJztcbmltcG9ydCB7XG4gIGlzSXNvbGF0ZWRMZWZ0UXVvdGUsXG4gIGlzTmVzdGVkTWlsZXN0b25lLFxuICBpc1dvcmQsXG4gIHB1bmN0dWF0aW9uV29yZFNwYWNpbmcsXG4gIHRleHRJc0VtcHR5SW5WZXJzZU9iamVjdCxcbn0gZnJvbSAnLi9zdHJpbmdIZWxwZXJzJztcblxuLyoqXG4gKiBpZiBzaG93aW5nIFVTRk0gY29kZXMsIHJlcGxhY2UgbmV3bGluZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0XG4gKiBAcGFyYW0ge2Jvb2xlYW59IHNob3dVc2ZtXG4gKiBAcmV0dXJuIHtKU1guRWxlbWVudH1cbiAqL1xuZnVuY3Rpb24gdGV4dFRvSHRtbCh0ZXh0LCBzaG93VXNmbSkge1xuICBpZiAoc2hvd1VzZm0gJiYgKHRleHQuaW5kZXhPZignXFxuJykgPj0gMCkpIHtcbiAgICBjb25zdCBwYXJ0cyA9IHRleHQuc3BsaXQoJ1xcbicpO1xuICAgIGNvbnN0IGh0bWwgPSBbcGFydHNbMF1dO1xuXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBwYXJ0cy5sZW5ndGg7IGkrKykge1xuICAgICAgaHRtbC5wdXNoKCfihrInKTtcbiAgICAgIGh0bWwucHVzaCg8YnIvPik7XG4gICAgICBodG1sLnB1c2gocGFydHNbaV0pO1xuICAgIH1cbiAgICByZXR1cm4gaHRtbDtcbiAgfVxuICByZXR1cm4gdGV4dDtcbn1cblxuLyoqXG4gKiByZW5kZXIgdGV4dCBhcyBIVE1MIGFuZCBvdmVybGF5IGFueSBzZWxlY3Rpb25zXG4gKiBAcGFyYW0ge1N0cmluZ30gdmVyc2VUZXh0XG4gKiBAcGFyYW0ge0FycmF5fSBzZWxlY3Rpb25zIC0gdGV4dCBzZWxlY3Rpb25zIHRvIGhpZ2hsaWdodFxuICogQHBhcmFtIHtGdW5jdGlvbn0gdHJhbnNsYXRlXG4gKiBAcGFyYW0ge09iamVjdH0gZm9udFN0eWxlIC0gZm9udCBzcGVjaWZpYyBzdHlsaW5nXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzVGFyZ2V0QmlibGVcbiAqIEBwYXJhbSB7U3RyaW5nfSBmb250Q2xhc3NcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gc2hvd1VzZm1cbiAqIEByZXR1cm4geyp9XG4gKi9cbmV4cG9ydCBjb25zdCB2ZXJzZVN0cmluZyA9ICh2ZXJzZVRleHQsIHNlbGVjdGlvbnMsIHRyYW5zbGF0ZSwgZm9udFN0eWxlID0gbnVsbCwgaXNUYXJnZXRCaWJsZSwgZm9udENsYXNzLCBzaG93VXNmbSkgPT4ge1xuICBsZXQgbmV3VmVyc2VUZXh0ID0gdmVyc2VUZXh0O1xuXG4gIGlmICghc2hvd1VzZm0pIHtcbiAgICBuZXdWZXJzZVRleHQgPSByZW1vdmVNYXJrZXIodmVyc2VUZXh0KTtcbiAgICBuZXdWZXJzZVRleHQgPSBuZXdWZXJzZVRleHQucmVwbGFjZSgvXFxzKy9nLCAnICcpO1xuICAgIC8vIGlmIHN0cmluZyBvbmx5IGNvbnRhaW5zIHNwYWNlcyB0aGVuIG1ha2UgaXQgYW4gZW1wdHkgc3RyaW5nXG4gICAgbmV3VmVyc2VUZXh0ID0gbmV3VmVyc2VUZXh0LnJlcGxhY2UoL1xccy9nLCAnJykubGVuZ3RoID09PSAwID8gJycgOiBuZXdWZXJzZVRleHQ7XG4gIH1cblxuICAvLyBpZiBlbXB0eSBzdHJpbmcgdGhlbiBuZXdWZXJzZVRleHQgPSBwbGFjZSBob2xkZXIgd2FybmluZy5cbiAgaWYgKG5ld1ZlcnNlVGV4dC5sZW5ndGggPT09IDApIHtcbiAgICBuZXdWZXJzZVRleHQgPSB0cmFuc2xhdGUoJ3BhbmUubWlzc2luZ192ZXJzZV93YXJuaW5nJyk7XG4gIH1cblxuICBsZXQgdmVyc2VUZXh0U3BhbnMgPSA8c3BhbiBjbGFzc05hbWU9e2ZvbnRDbGFzc30+e3RleHRUb0h0bWwobmV3VmVyc2VUZXh0LCBzaG93VXNmbSl9PC9zcGFuPjtcblxuICBpZiAoIXNob3dVc2ZtICYmIHNlbGVjdGlvbnMgJiYgc2VsZWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgX3NlbGVjdGlvbkFycmF5ID0gc3RyaW5nVG9rZW5pemVyLnNlbGVjdGlvbkFycmF5KG5ld1ZlcnNlVGV4dCwgc2VsZWN0aW9ucyk7XG4gICAgdmVyc2VUZXh0U3BhbnMgPSBbXTtcbiAgICB2ZXJzZVRleHRTcGFucy5sZW5ndGggPSAwO1xuXG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IF9zZWxlY3Rpb25BcnJheS5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gX3NlbGVjdGlvbkFycmF5W2ldO1xuICAgICAgY29uc3QgaW5kZXggPSBpO1xuICAgICAgbGV0IHNwYW5TdHlsZSA9IHsgYmFja2dyb3VuZENvbG9yOiBzZWxlY3Rpb24uc2VsZWN0ZWQgPyAndmFyKC0taGlnaGxpZ2h0LWNvbG9yKScgOiAnJyB9O1xuXG4gICAgICBpZiAoZm9udFN0eWxlKSB7XG4gICAgICAgIHNwYW5TdHlsZSA9IHtcbiAgICAgICAgICAuLi5zcGFuU3R5bGUsXG4gICAgICAgICAgLi4uZm9udFN0eWxlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgdmVyc2VUZXh0U3BhbnMucHVzaChcbiAgICAgICAgPHNwYW4ga2V5PXtpbmRleH0gY2xhc3NOYW1lPXtmb250Q2xhc3N9IHN0eWxlPXtzcGFuU3R5bGV9PlxuICAgICAgICAgIHtzZWxlY3Rpb24udGV4dH1cbiAgICAgICAgPC9zcGFuPixcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZlcnNlVGV4dFNwYW5zO1xufTtcblxuLyoqXG4gKiBjcmVhdGUgdmVyc2UgZWxlbWVudHMgZnJvbSBhbiBhcnJheSBvZiB2ZXJzZSBvYmplY3RzXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gdmVyc2VUZXh0IC0gdmVyc2UgZGF0YVxuICogQHBhcmFtIHtTdHJpbmd9IGJpYmxlSWRcbiAqIEBwYXJhbSB7T2JqZWN0fSBjb250ZXh0SWRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGdldExleGljb25EYXRhXG4gKiBAcGFyYW0ge0Jvb2xlYW59IHNob3dQb3BvdmVyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSB0cmFuc2xhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBmb250U3R5bGUgLSBmb250IHNwZWNpZmljIHN0eWxpbmdcbiAqIEBwYXJhbSB7U3RyaW5nfSBmb250Q2xhc3MgLSBmb250IGNsYXNzIG5hbWVcbiAqIEBwYXJhbSB7YXJyYXl9IHZlcnNlV29yZENvdW50cyAtIGFycmF5IG9mIHdvcmQgY291bnRzIGZvciBtdWx0aS12ZXJzZVxuICogQHJldHVybiB7QXJyYXl9IC0gdmVyc2UgZWxlbWVudHMgdG8gZGlzcGxheVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyc2VBcnJheSh2ZXJzZVRleHQgPSBbXSwgYmlibGVJZCwgY29udGV4dElkLCBnZXRMZXhpY29uRGF0YSwgc2hvd1BvcG92ZXIsIHRyYW5zbGF0ZSwgZm9udFN0eWxlID0gbnVsbCwgZm9udENsYXNzLCB2ZXJzZVdvcmRDb3VudHMgPSBudWxsKSB7XG4gIGxldCB2ZXJzZU9iamVjdHMgPSBWZXJzZU9iamVjdFV0aWxzLmdldFdvcmRMaXN0Rm9yVmVyc2UodmVyc2VUZXh0KTtcbiAgbGV0IHdvcmRTcGFjaW5nID0gJyc7XG4gIGxldCBwcmV2aW91c1dvcmQgPSBudWxsO1xuICBjb25zdCB2ZXJzZVNwYW4gPSBbXTtcbiAgdmVyc2VTcGFuLmxlbmd0aCA9IDA7XG5cbiAgaWYgKHZlcnNlVGV4dC52ZXJzZU9iamVjdHMgJiYgdGV4dElzRW1wdHlJblZlcnNlT2JqZWN0KHZlcnNlVGV4dCwgYmlibGVJZCkpIHsgLy8gaWYgZW1wdHkgdmVyc2Ugc3RyaW5nLlxuICAgIHZlcnNlU3Bhbi5wdXNoKFxuICAgICAgPHNwYW4ga2V5PXt0cmFuc2xhdGUoJ3BhbmUubWlzc2luZ192ZXJzZV93YXJuaW5nJyl9PlxuICAgICAgICB7dHJhbnNsYXRlKCdwYW5lLm1pc3NpbmdfdmVyc2Vfd2FybmluZycpfVxuICAgICAgPC9zcGFuPixcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGlzSGVicmV3ID0gKGJpYmxlSWQgPT09ICd1aGInKTtcbiAgICBjb25zdCBvcmlnTGFuZ0JpYmxlID0gaXNIZWJyZXcgfHwgYmlibGVJZCA9PT0gJ3VnbnQnO1xuICAgIHZlcnNlT2JqZWN0cyA9IEFycmF5LmlzQXJyYXkodmVyc2VPYmplY3RzKSA/IHZlcnNlT2JqZWN0cyA6IHZlcnNlT2JqZWN0cy52ZXJzZU9iamVjdDtcblxuICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSB2ZXJzZU9iamVjdHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGNvbnN0IG9iamVjdCA9IHZlcnNlT2JqZWN0c1tpXTtcbiAgICAgIGNvbnN0IGluZGV4ID0gaTtcbiAgICAgIGNvbnN0IG5leHRXb3JkID0gdmVyc2VPYmplY3RzW2luZGV4ICsgMV07XG5cbiAgICAgIGlmIChvYmplY3QudHlwZSA9PT0gJ2h0bWwnKSB7XG4gICAgICAgIHZlcnNlU3Bhbi5wdXNoKG9iamVjdC5odG1sKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNXb3JkKG9iamVjdCkpIHtcbiAgICAgICAgY29uc3QgcGFkZGluZyA9IHdvcmRTcGFjaW5nO1xuICAgICAgICB3b3JkU3BhY2luZyA9ICcgJzsgLy8gc3BhY2luZyBiZXR3ZWVuIHdvcmRzXG4gICAgICAgIGNvbnN0IHRleHQgPSAob2JqZWN0LndvcmQgfHwgb2JqZWN0LnRleHQpO1xuICAgICAgICBsZXQgaXNIaWdobGlnaHRlZFdvcmQgPSBmYWxzZTtcbiAgICAgICAgbGV0IGlzQmV0d2VlbkhpZ2hsaWdodGVkV29yZCA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChvcmlnTGFuZ0JpYmxlICYmIGNvbnRleHRJZC5xdW90ZSAmJiBvYmplY3QudGV4dCkge1xuICAgICAgICAgIGlzSGlnaGxpZ2h0ZWRXb3JkID0gaGlnaGxpZ2h0SGVscGVycy5pc1dvcmRNYXRjaChvYmplY3QsIGNvbnRleHRJZCwgdmVyc2VPYmplY3RzLCBpbmRleCk7XG4gICAgICAgICAgaXNCZXR3ZWVuSGlnaGxpZ2h0ZWRXb3JkID0gcHJldmlvdXNXb3JkICYmICFpc0VxdWFsKHByZXZpb3VzV29yZCwgb2JqZWN0KSAmJlxuICAgICAgICAgICAgaGlnaGxpZ2h0SGVscGVycy5pc1dvcmRNYXRjaChwcmV2aW91c1dvcmQsIGNvbnRleHRJZCwgdmVyc2VPYmplY3RzLCBpbmRleCAtIDEpICYmIGlzSGlnaGxpZ2h0ZWRXb3JkO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHRJZC5xdW90ZSAmJiBvYmplY3QuY29udGVudCkge1xuICAgICAgICAgIGNvbnN0IGhpZ2hsaWdodGVkRGV0YWlscyA9IGhpZ2hsaWdodEhlbHBlcnMuZ2V0V29yZEhpZ2hsaWdodGVkRGV0YWlscyhjb250ZXh0SWQsIHByZXZpb3VzV29yZCwgb2JqZWN0LCB2ZXJzZVdvcmRDb3VudHMpO1xuICAgICAgICAgIGlzSGlnaGxpZ2h0ZWRXb3JkID0gaGlnaGxpZ2h0ZWREZXRhaWxzLmlzSGlnaGxpZ2h0ZWRXb3JkO1xuICAgICAgICAgIGlzQmV0d2VlbkhpZ2hsaWdodGVkV29yZCA9IGhpZ2hsaWdodGVkRGV0YWlscy5pc0JldHdlZW5IaWdobGlnaHRlZFdvcmQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU2F2ZSB3b3JkIHRvIGJlIHVzZWQgYXMgcHJldmlvdXNXb3JkIGluIG5leHQgd29yZC5cbiAgICAgICAgcHJldmlvdXNXb3JkID0gb2JqZWN0O1xuICAgICAgICBjb25zdCBwYWRkaW5nU3BhblN0eWxlID0geyBiYWNrZ3JvdW5kQ29sb3I6IGlzQmV0d2VlbkhpZ2hsaWdodGVkV29yZCA/ICd2YXIoLS1oaWdobGlnaHQtY29sb3IpJyA6ICd0cmFuc3BhcmVudCcgfTtcblxuICAgICAgICAvLyBUUklDS1k6IGZvciBub3cgd2UgYXJlIGRpc2FibGluZyBsZXhpY29uIHBvcHVwcyBmb3IgYW55IGJpYmxlIHRoYXQgaXMgbm90IHVnbnQgb3IgdWhiLiBUaGUgcmVhc29uIGZvclxuICAgICAgICAvLyB0aGlzIGlzIHRoYW4gc29tZSBiaWJsZXMgaGF2ZSBkaWZmZXJlbnQgc3Ryb25ncyBmb3JtYXQuIFdlIGFyZSB3YWl0aW5nIG9uIGxvbmcgdGVybSBzb2x1dGlvbi5cbiAgICAgICAgaWYgKG9iamVjdC5zdHJvbmcgJiYgb3JpZ0xhbmdCaWJsZSkgeyAvLyBpZiBjbGlja2FibGVcbiAgICAgICAgICBsZXQgc3BhblN0eWxlID0geyBiYWNrZ3JvdW5kQ29sb3I6IGlzSGlnaGxpZ2h0ZWRXb3JkID8gJ3ZhcigtLWhpZ2hsaWdodC1jb2xvciknIDogJycgfTtcblxuICAgICAgICAgIGlmIChmb250U3R5bGUpIHtcbiAgICAgICAgICAgIHNwYW5TdHlsZSA9IHtcbiAgICAgICAgICAgICAgLi4uc3BhblN0eWxlLFxuICAgICAgICAgICAgICAuLi5mb250U3R5bGUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICB2ZXJzZVNwYW4ucHVzaChcbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGtleT17aW5kZXgudG9TdHJpbmcoKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IG9uV29yZENsaWNrKGUsIG9iamVjdCwgZ2V0TGV4aWNvbkRhdGEsIHNob3dQb3BvdmVyLCB0cmFuc2xhdGUsIGlzSGVicmV3KX1cbiAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiAncG9pbnRlcicgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtmb250Q2xhc3N9IHN0eWxlPXtwYWRkaW5nU3BhblN0eWxlfT5cbiAgICAgICAgICAgICAgICB7cGFkZGluZ31cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2ZvbnRDbGFzc30gc3R5bGU9e3NwYW5TdHlsZX0+XG4gICAgICAgICAgICAgICAge3JlbW92ZU1hcmtlcih0ZXh0KX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPixcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZlcnNlU3Bhbi5wdXNoKGNyZWF0ZU5vbkNsaWNrYWJsZVNwYW4oaW5kZXgsIHBhZGRpbmdTcGFuU3R5bGUsIHBhZGRpbmcsIGlzSGlnaGxpZ2h0ZWRXb3JkLCB0ZXh0LCBmb250Q2xhc3MpKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpc05lc3RlZE1pbGVzdG9uZShvYmplY3QpKSB7IC8vIGlmIG5lc3RlZCBtaWxlc3RvbmVcbiAgICAgICAgY29uc3QgbmVzdGVkTWlsZXN0b25lID0gaGlnaGxpZ2h0SGVscGVycy5nZXRXb3Jkc0Zyb21OZXN0ZWRNaWxlc3RvbmUob2JqZWN0LCBjb250ZXh0SWQsIGluZGV4LCBwcmV2aW91c1dvcmQsIHdvcmRTcGFjaW5nLCBmb250Q2xhc3MsIHZlcnNlV29yZENvdW50cyk7XG5cbiAgICAgICAgZm9yIChsZXQgaiA9IDAsIG5MZW4gPSBuZXN0ZWRNaWxlc3RvbmUud29yZFNwYW5zLmxlbmd0aDsgaiA8IG5MZW47IGorKykge1xuICAgICAgICAgIGNvbnN0IG5lc3RlZFdvcmRTcGFuID0gbmVzdGVkTWlsZXN0b25lLndvcmRTcGFuc1tqXTtcbiAgICAgICAgICB2ZXJzZVNwYW4ucHVzaChuZXN0ZWRXb3JkU3Bhbik7XG4gICAgICAgIH1cbiAgICAgICAgcHJldmlvdXNXb3JkID0gbmVzdGVkTWlsZXN0b25lLm5lc3RlZFByZXZpb3VzV29yZDtcbiAgICAgICAgd29yZFNwYWNpbmcgPSBuZXN0ZWRNaWxlc3RvbmUubmVzdGVkV29yZFNwYWNpbmc7XG4gICAgICB9IGVsc2UgaWYgKG9iamVjdC50ZXh0KSB7IC8vIGlmIG5vdCB3b3JkLCBzaG93IHB1bmN0dWF0aW9uLCBldGMuIGJ1dCBub3QgY2xpY2thYmxlXG4gICAgICAgIGxldCB0ZXh0ID0gb2JqZWN0LnRleHQ7XG5cbiAgICAgICAgaWYgKGhhc0xlYWRpbmdTcGFjZSh0ZXh0KSkgeyAvLyBsZWFkaW5nIHNwYWNlcyBhcmUgbm90IHNpZ25pZmljYW50IGluIGh0bWwsIHNvIHdlIG5lZWQgdG8gcmVwbGFjZSB3aXRoIGEgaGFyZCBzcGFjZVxuICAgICAgICAgIHRleHQgPSB0ZXh0LnN1YnN0cigxKTtcbiAgICAgICAgICBoaWdobGlnaHRIZWxwZXJzLmFkZFNwYWNlKHZlcnNlU3BhbiwgZm9udENsYXNzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRyYWlsaW5nU3BhY2UgPSBoYXNUcmFpbGluZ1NwYWNlKHRleHQpO1xuXG4gICAgICAgIGlmICh0cmFpbGluZ1NwYWNlICYmIHRleHQpIHsgLy8gdHJhaWxpbmcgc3BhY2VzIGFyZSBub3Qgc2lnbmlmaWNhbnQgaW4gaHRtbCwgc28gd2UgbmVlZCB0byByZXBsYWNlIHdpdGggYSBoYXJkIHNwYWNlXG4gICAgICAgICAgdGV4dCA9IHRleHQuc3Vic3RyKDAsIHRleHQubGVuZ3RoIC0gMSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc1VzZm1UYWdOb3RTcGFuID0gb2JqZWN0LnRhZyAmJiAhb2JqZWN0LmVuZFRhZzsgLy8gc2VlIGlmIFVTRk0gdGFnIGRvZXMgbm90IGhhdmUgYSBtYXRjaGluZyBlbmQgdGFnLlxuXG4gICAgICAgIGlmIChpc1VzZm1UYWdOb3RTcGFuIHx8IGlzSXNvbGF0ZWRMZWZ0UXVvdGUodGV4dCkpIHsgLy8gaWYgdGhpcyB3YXMgbm90IGp1c3Qgc2ltcGxlIHRleHQgbWFya2VyLCBuZWVkIHRvIGFkZCB3aGl0ZXNwYWNlXG4gICAgICAgICAgaGlnaGxpZ2h0SGVscGVycy5hZGRTcGFjZSh2ZXJzZVNwYW4pO1xuICAgICAgICB9XG4gICAgICAgIHdvcmRTcGFjaW5nID0gcHVuY3R1YXRpb25Xb3JkU3BhY2luZyhvYmplY3QpOyAvLyBzcGFjaW5nIGJlZm9yZSB3b3Jkc1xuXG4gICAgICAgIGlmIChoaWdobGlnaHRIZWxwZXJzLmlzUHVuY3R1YXRpb25IaWdobGlnaHRlZChwcmV2aW91c1dvcmQsIG5leHRXb3JkLCBjb250ZXh0SWQsIHZlcnNlT2JqZWN0cywgaW5kZXgsIHZlcnNlV29yZENvdW50cykpIHtcbiAgICAgICAgICB2ZXJzZVNwYW4ucHVzaChjcmVhdGVIaWdobGlnaHRlZFNwYW4oaW5kZXgsIHRleHQsIGZvbnRDbGFzcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZlcnNlU3Bhbi5wdXNoKGNyZWF0ZVRleHRTcGFuKGluZGV4LCB0ZXh0LCBmb250Q2xhc3MpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0cmFpbGluZ1NwYWNlKSB7IC8vIGFkZCB0aGUgdHJhaWxpbmcgc3BhY2UgYWZ0ZXIgdGhlIHRleHQgc3BhblxuICAgICAgICAgIGhpZ2hsaWdodEhlbHBlcnMuYWRkU3BhY2UodmVyc2VTcGFuKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2ZXJzZVNwYW47XG59XG5cbi8qKlxuICogZ2V0IHZlcnNlIHJhbmdlIGZyb20gc3BhblxuICogQHBhcmFtIHtzdHJpbmd9IHZlcnNlU3BhblxuICogQHJldHVybiB7e2hpZ2g6IG51bWJlciwgbG93OiBudW1iZXJ9fVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVyc2VTcGFuUmFuZ2UodmVyc2VTcGFuKSB7XG4gIGxldCBbbG93LCBoaWdoXSA9IHZlcnNlU3Bhbi5zcGxpdCgnLScpO1xuXG4gIGlmIChsb3cgJiYgaGlnaCkge1xuICAgIGxvdyA9IHBhcnNlSW50KGxvdywgMTApO1xuICAgIGhpZ2ggPSBwYXJzZUludChoaWdoLCAxMCk7XG5cbiAgICBpZiAoKGxvdyA+IDApICYmIChoaWdoID49IGxvdykpIHtcbiAgICAgIHJldHVybiB7IGxvdywgaGlnaCB9O1xuICAgIH1cbiAgfVxuICByZXR1cm4ge307XG59XG5cbi8qKlxuICogc3BsaXRzIHZlcnNlIGxpc3QgaW50byBpbmRpdmlkdWFsIHZlcnNlc1xuICogQHBhcmFtIHtzdHJpbmd9IHZlcnNlU3RyXG4gKiBAcmV0dXJuIHtbbnVtYmVyXX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnNlTGlzdCh2ZXJzZVN0cikge1xuICBjb25zdCB2ZXJzZXMgPSB2ZXJzZVN0ci50b1N0cmluZygpLnNwbGl0KCcsJyk7XG4gIHJldHVybiB2ZXJzZXM7XG59XG5cbi8qKlxuICogdGVzdCBpZiB2ZXJzZSBpcyB2YWxpZCB2ZXJzZSBzcGFuIHN0cmluZ1xuICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfSB2ZXJzZVxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmVyc2VTcGFuKHZlcnNlKSB7XG4gIGNvbnN0IGlzU3BhbiA9ICh0eXBlb2YgdmVyc2UgPT09ICdzdHJpbmcnKSAmJiB2ZXJzZS5pbmNsdWRlcygnLScpO1xuICByZXR1cm4gaXNTcGFuO1xufVxuXG4vKipcbiAqIHRlc3QgaWYgdmVyc2UgaXMgdmFsaWQgdmVyc2UgbGlzdCAodmVyc2UgbnVtYmVycyBzZXBhcmF0ZWQgYnkgY29tbWFzKVxuICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfSB2ZXJzZVxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmVyc2VMaXN0KHZlcnNlKSB7XG4gIGNvbnN0IGlzTGlzdCA9ICh0eXBlb2YgdmVyc2UgPT09ICdzdHJpbmcnKSAmJiB2ZXJzZS5pbmNsdWRlcygnLCcpO1xuICByZXR1cm4gaXNMaXN0O1xufVxuXG4vKipcbiAqIHRlc3QgaWYgdmVyc2UgaXMgdmFsaWQgdmVyc2Ugc3BhbiBvciB2ZXJzZSBsaXN0XG4gKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ9IHZlcnNlXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWZXJzZVNldCh2ZXJzZSkge1xuICBjb25zdCBpc1NldCA9IGlzVmVyc2VTcGFuKHZlcnNlKSB8fCBpc1ZlcnNlTGlzdCh2ZXJzZSk7XG4gIHJldHVybiBpc1NldDtcbn1cblxuLyoqXG4gKiBnZXQgYmlibGUgZnJvbSBiaWJsZXNcbiAqIEBwYXJhbSB7b2JqZWN0fSBiaWJsZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBsYW5ndWFnZUlkXG4gKiBAcGFyYW0gb3duZXJcbiAqIEBwYXJhbSBiaWJsZUlkXG4gKiBAcmV0dXJuIHsqfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmlibGVFbGVtZW50KGJpYmxlcywgbGFuZ3VhZ2VJZCwgYmlibGVJZCwgb3duZXIgPSBudWxsKSB7XG4gIGNvbnN0IGtleSA9IChvd25lciAmJiBsYW5ndWFnZUlkICE9PSAndGFyZ2V0TGFuZ3VhZ2UnKSA/IGAke2xhbmd1YWdlSWR9XyR7b3duZXJ9YCA6IGxhbmd1YWdlSWQ7XG4gIGNvbnN0IGJpYmxlRWxlbWVudCA9IGJpYmxlc1trZXldPy5bYmlibGVJZF07XG4gIHJldHVybiBiaWJsZUVsZW1lbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWZXJzZURhdGFGcm9tQmlibGUoYmlibGUsIGNoYXB0ZXIsIHZlcnNlKSB7XG4gIGxldCB2ZXJzZURhdGEgPSBudWxsXG4gIGxldCB2ZXJzZUxhYmVsID0gbnVsbFxuICBjb25zb2xlLmxvZyhiaWJsZSwgY2hhcHRlciwgdmVyc2UpXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBjaGFwdGVyRGF0YSA9IGJpYmxlW2NoYXB0ZXJdXG4gICAgY29uc29sZS5sb2coJ2NoYXB0ZXInKVxuICAgIGlmIChjaGFwdGVyRGF0YSkge1xuICAgICAgdmVyc2VEYXRhID0gY2hhcHRlckRhdGFbdmVyc2VdXG4gICAgICBjb25zb2xlLmxvZyh2ZXJzZURhdGEpXG5cbiAgICAgIGlmICh2ZXJzZURhdGEpIHtcbiAgICAgICAgdmVyc2VMYWJlbCA9IHZlcnNlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBzZWFyY2ggZm9yIHZlcnNlIHNwYW4gdGhhdCBjb250YWlucyB2ZXJzZVxuICAgICAgICBjb25zdCB2ZXJzZVZhbCA9IHBhcnNlSW50KHZlcnNlKVxuICAgICAgICBpZiAoaXNWZXJzZVNwYW4odmVyc2UpKSB7XG4gICAgICAgICAgY29uc3QgeyBsb3csIGhpZ2ggfSA9IGdldFZlcnNlU3BhblJhbmdlKHZlcnNlKVxuICAgICAgICAgIGZvciAobGV0IGkgPSBsb3c7IGkgPD0gaGlnaDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhpKVxuICAgICAgICAgICAgbGV0IGRhdGEgPSBnZXRWZXJzZURhdGFGcm9tQmlibGUoYmlibGUsIGNoYXB0ZXIsIGkpXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKVxuICAgICAgICAgICAgaWYgKGlzVmVyc2VTcGFuKGRhdGEudmVyc2VMYWJlbCkpIHtcbiAgICAgICAgICAgICAgaSA9IHBhcnNlSW50KGRhdGEudmVyc2VMYWJlbC5zcGxpdCgnLScpWzFdKSAtIDFcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdmVyc2VEYXRhKSB7XG4gICAgICAgICAgICAgIHZlcnNlRGF0YSA9IGRhdGEudmVyc2VEYXRhXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB2ZXJzZURhdGEudmVyc2VPYmplY3RzLnB1c2goLi4uZGF0YS52ZXJzZURhdGEudmVyc2VPYmplY3RzKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3IgKGxldCB2ZXJzZUluZGV4IGluIGNoYXB0ZXJEYXRhKSB7XG4gICAgICAgICAgICBpZiAoaXNWZXJzZVNwYW4odmVyc2VJbmRleCkpIHtcbiAgICAgICAgICAgICAgY29uc3QgeyBsb3csIGhpZ2ggfSA9IGdldFZlcnNlU3BhblJhbmdlKHZlcnNlSW5kZXgpXG5cbiAgICAgICAgICAgICAgaWYgKHZlcnNlVmFsID49IGxvdyAmJiB2ZXJzZVZhbCA8PSBoaWdoKSB7XG4gICAgICAgICAgICAgICAgdmVyc2VEYXRhID0gY2hhcHRlckRhdGFbdmVyc2VJbmRleF1cbiAgICAgICAgICAgICAgICB2ZXJzZUxhYmVsID0gdmVyc2VJbmRleFxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5XG4gIH0gY2F0Y2ggKGUpIHt9XG4gIHJldHVybiB7IHZlcnNlRGF0YSwgdmVyc2VMYWJlbCB9XG59XG5cbi8qKlxuICogY2hlY2sgdG8gc2VlIGlmIHZlcnNlTGFiZWwgaXMgYSBzcGFuLCBpZiBzbyBzZWUgaWYgdmVyc2UgaXMgdGhlIGZpcnN0IHZlcnNlIGluIHRoZSBzcGFuXG4gKiBAcGFyYW0ge3N0cmluZ30gdmVyc2VMYWJlbCAtIHZlcnNlIGxhYmVsIHRvIHRlc3QgZm9yIHNwYW5cbiAqIEBwYXJhbSB7c3RyaW5nfG51bWJlcn0gdmVyc2UgLSB2ZXJzZSBudW1iZXIgdG8gY2hlY2sgaWYgZmlyc3QgdmVyc2UgaW4gc3BhblxuICogQHJldHVybiB7b2JqZWN0fG51bGx9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZlcnNlSW5TcGFuKHZlcnNlTGFiZWwsIHZlcnNlKSB7XG4gIGxldCBpc1ZlcnNlU3BhbiA9IGZhbHNlLCBpc0ZpcnN0VmVyc2UgPSBmYWxzZTtcblxuICBpZiAodmVyc2VMYWJlbCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBbLCBoaV0gPSB2ZXJzZUxhYmVsLnNwbGl0KCctJyk7XG4gICAgICBpc1ZlcnNlU3BhbiA9ICEhaGk7XG5cbiAgICAgIGlmIChpc1ZlcnNlU3Bhbikge1xuICAgICAgICBpZiAodHlwZW9mIHZlcnNlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHZlcnNlID0gcGFyc2VJbnQodmVyc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3RhcnRWZXJzZSA9IHBhcnNlSW50KHZlcnNlTGFiZWwpO1xuICAgICAgICBpc0ZpcnN0VmVyc2UgPSAodmVyc2UgPT09IHN0YXJ0VmVyc2UpO1xuICAgICAgfVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5XG4gICAgfSBjYXRjaCAoZSkge1xuICAgIH1cbiAgfVxuICByZXR1cm4geyBpc1ZlcnNlU3BhbiwgaXNGaXJzdFZlcnNlIH07XG59XG5cbi8qKlxuICogY291bnQgb3JpZ2luYWwgd29yZHMgaW4gdmVyc2VPYmplY3RzIC0gaXQgaXMgbmVzdGVkIHNvIHRoaXMgaXMgcmVjdXJzaXZlXG4gKiBAcGFyYW0ge2FycmF5fSB2ZXJzZU9iamVjdHNcbiAqIEBwYXJhbSB7bnVtYmVyfSB2ZXJzZUNudFxuICogQHBhcmFtIHtib29sZWFufSBtdWx0aVZlcnNlXG4gKiBAcGFyYW0ge29iamVjdH0gcHJldmlvdXNWZXJzZVdvcmRDb3VudHNcbiAqIEBwYXJhbSB7b2JqZWN0fSBjdXJyZW50VmVyc2VDb3VudHNcbiAqL1xuZnVuY3Rpb24gY291bnRPcmlnaW5hbFdvcmRzKHZlcnNlT2JqZWN0cywgdmVyc2VDbnQsIG11bHRpVmVyc2UsIGN1cnJlbnRWZXJzZUNvdW50cywgcHJldmlvdXNWZXJzZVdvcmRDb3VudHMpIHtcbiAgaWYgKHZlcnNlT2JqZWN0cykge1xuICAgIGZvciAoY29uc3Qgdm8gb2YgdmVyc2VPYmplY3RzKSB7XG4gICAgICBpZiAobXVsdGlWZXJzZSAmJiAodm8/LnRhZyA9PT0gJ3phbG4nKSkge1xuICAgICAgICB2by52ZXJzZUNudCA9IHZlcnNlQ250O1xuICAgICAgICBjb25zdCBvcmlnV29yZCA9IHZvPy5jb250ZW50O1xuXG4gICAgICAgIGlmIChvcmlnV29yZCkge1xuICAgICAgICAgIGNvbnN0IHByZXZpb3VzQ291bnQgPSBwcmV2aW91c1ZlcnNlV29yZENvdW50c1tvcmlnV29yZF0gfHwgMDtcbiAgICAgICAgICBjb25zdCBjdXJyZW50Q291bnQgPSBjdXJyZW50VmVyc2VDb3VudHNbb3JpZ1dvcmRdIHx8IDA7XG5cbiAgICAgICAgICBpZiAoIWN1cnJlbnRDb3VudCkge1xuICAgICAgICAgICAgY3VycmVudFZlcnNlQ291bnRzW29yaWdXb3JkXSA9IHZvLm9jY3VycmVuY2VzICsgcHJldmlvdXNDb3VudDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodm8uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIGNvdW50T3JpZ2luYWxXb3Jkcyh2by5jaGlsZHJlbiwgdmVyc2VDbnQsIG11bHRpVmVyc2UsIGN1cnJlbnRWZXJzZUNvdW50cywgcHJldmlvdXNWZXJzZVdvcmRDb3VudHMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIGdldHMgdmVyc2UgZGF0YSBmb3IgdmVyc2VMaXN0XG4gKiBAcGFyYW0ge29iamVjdH0gYm9va0RhdGFcbiAqIEBwYXJhbSB7bnVtYmVyfHN0cmluZ30gY2hhcHRlclxuICogQHBhcmFtIHtzdHJpbmd9IHZlcnNlTGlzdCAtIGNhbiBiZSBhIHNpbmdsZSB2ZXJzZSwgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgdmVyc2VzIG9yIHZlcnNlIHJhbmdlXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjcmVhdGVWZXJzZU1hcmtlciAtIHRvIGNyZWF0ZSBhIHZlcnNlIG1hcmtlclxuICogQHJldHVybnMge3t2ZXJzZURhdGE6IHt2ZXJzZU9iamVjdHM6ICpbXX0sIHZlcnNlTGFiZWw6IHN0cmluZ319XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWZXJzZURhdGEoYm9va0RhdGEsIGNoYXB0ZXIsIHZlcnNlTGlzdCwgY3JlYXRlVmVyc2VNYXJrZXIpIHtcbiAgbGV0IHZlcnNlTGFiZWwgPSAnJztcbiAgbGV0IGluaXRpYWxDaGFwdGVyO1xuICBjb25zdCByZWZzID0gZ2V0VmVyc2VzKGJvb2tEYXRhLCBgJHtjaGFwdGVyfToke3ZlcnNlTGlzdH1gKTtcbiAgbGV0IHZlcnNlU3BhbkRhdGEgPSBbXTtcbiAgY29uc3QgaGlzdG9yeSA9IFtdOyAvLyB0byBndWFyZCBhZ2FpbnN0IGR1cGxpY2F0ZSB2ZXJzZXNcbiAgbGV0IHZlcnNlV29yZENvdW50cyA9IFtdO1xuICBjb25zdCBtdWx0aVZlcnNlID0gcmVmcy5sZW5ndGggPiAxO1xuXG4gIGlmIChyZWZzICYmIHJlZnMubGVuZ3RoKSB7XG4gICAgaW5pdGlhbENoYXB0ZXIgPSByZWZzWzBdLmNoYXB0ZXI7XG4gIH1cblxuICBmb3IgKGxldCB2ZXJzZUNudCA9IDA7IHZlcnNlQ250IDwgcmVmcy5sZW5ndGg7IHZlcnNlQ250KyspIHtcbiAgICBjb25zdCBwcmV2aW91c1ZlcnNlV29yZENvdW50cyA9IHZlcnNlQ250ID4gMCA/IHZlcnNlV29yZENvdW50c1t2ZXJzZUNudC0xXSA6IHt9O1xuICAgIGNvbnN0IGN1cnJlbnRWZXJzZUNvdW50cyA9IHt9O1xuICAgIHZlcnNlV29yZENvdW50cy5wdXNoKGN1cnJlbnRWZXJzZUNvdW50cyk7XG4gICAgY29uc3QgcmVmID0gcmVmc1t2ZXJzZUNudF07XG4gICAgY29uc3QgY2hhcHRlciA9IHJlZi5jaGFwdGVyO1xuICAgIGNvbnN0IGRhdGEgPSByZWYudmVyc2VEYXRhO1xuICAgIGxldCBsYWJlbCA9IHJlZi52ZXJzZTtcblxuICAgIGlmIChjaGFwdGVyICE9PSBpbml0aWFsQ2hhcHRlcikge1xuICAgICAgbGFiZWwgPSBgJHtjaGFwdGVyfToke2xhYmVsfWA7XG4gICAgfVxuXG4gICAgaWYgKGRhdGEgJiYgIWhpc3RvcnkuaW5jbHVkZXMobGFiZWwpKSB7IC8vIHNraXAgb3ZlciBkdXBsaWNhdGVzXG4gICAgICBoaXN0b3J5LnB1c2gobGFiZWwgKyAnJyk7XG5cbiAgICAgIGlmICh2ZXJzZVNwYW5EYXRhLmxlbmd0aCkge1xuICAgICAgICB2ZXJzZVNwYW5EYXRhLnB1c2goY3JlYXRlVmVyc2VNYXJrZXIobGFiZWwpKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykgeyAvLyBpZiBkYXRhIGlzIHN0cmluZ3R5cGUgLCB3ZSBuZWVkIHRvIHdyYXAgYXMgYSB0ZXh0IHZlcnNlIG9iamVjdFxuICAgICAgICB2ZXJzZVNwYW5EYXRhLnB1c2goe1xuICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICB0ZXh0OiBkYXRhLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7IC8vIGdldCBjdW11bGF0aXZlIHdvcmQgY291bnRzIGZvciBlYWNoIHZlcnNlXG4gICAgICAgIGNvbnN0IHZlcnNlT2JqZWN0cyA9IGRhdGE/LnZlcnNlT2JqZWN0cztcblxuICAgICAgICBpZiAodmVyc2VPYmplY3RzKSB7XG4gICAgICAgICAgY291bnRPcmlnaW5hbFdvcmRzKHZlcnNlT2JqZWN0cywgdmVyc2VDbnQsIG11bHRpVmVyc2UsIGN1cnJlbnRWZXJzZUNvdW50cywgcHJldmlvdXNWZXJzZVdvcmRDb3VudHMsIHZlcnNlV29yZENvdW50cyk7XG4gICAgICAgICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkodmVyc2VTcGFuRGF0YSwgZGF0YS52ZXJzZU9iamVjdHMpO1xuICAgICAgICAgIGNvbnN0IHdvcmRzID0gT2JqZWN0LmtleXMocHJldmlvdXNWZXJzZVdvcmRDb3VudHMpO1xuXG4gICAgICAgICAgZm9yIChjb25zdCB3b3JkIG9mIHdvcmRzKSB7IC8vIHVwZGF0ZSBjdXJyZW50IHZlcnNlIHdpdGggY291bnRzIGZyb20gcHJldmlvdXMgdmVyc2VcbiAgICAgICAgICAgIGlmICghY3VycmVudFZlcnNlQ291bnRzW3dvcmRdKSB7XG4gICAgICAgICAgICAgIGN1cnJlbnRWZXJzZUNvdW50c1t3b3JkXSA9IHByZXZpb3VzVmVyc2VXb3JkQ291bnRzW3dvcmRdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIXZlcnNlTGFiZWwpIHtcbiAgICAgICAgdmVyc2VMYWJlbCA9IGxhYmVsLnRvU3RyaW5nKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKCFtdWx0aVZlcnNlKSB7XG4gICAgdmVyc2VXb3JkQ291bnRzID0gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHZlcnNlRGF0YSA9IHsgdmVyc2VPYmplY3RzOiB2ZXJzZVNwYW5EYXRhIH07XG4gIHJldHVybiB7XG4gICAgdmVyc2VEYXRhLFxuICAgIHZlcnNlTGFiZWwsXG4gICAgbXVsdGlWZXJzZSxcbiAgICB2ZXJzZVdvcmRDb3VudHMsXG4gIH07XG59XG5cblxuLyoqXG4gKiBjcmVhdGUgaHRtbCB0byBtYXJrIHZlcnNlXG4gKiBAcGFyYW0gdmVyc2VcbiAqIEByZXR1cm4ge0pTWC5FbGVtZW50fVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVyc2VNYXJrZXIodmVyc2UpIHtcbiAgcmV0dXJuIDw+PGJyLz48Yj57dmVyc2V9PC9iPiA8Lz47XG59XG5cbi8qKlxuICogY3JlYXRlIGFuIGh0bWwgb2JqZWN0IHRvIGluc2VydCBpbnRvIHNjcmlwdHVyZSBwYW5lXG4gKiBAcGFyYW0ge0pTWC5FbGVtZW50fSBodG1sXG4gKiBAcmV0dXJuIHt7aHRtbCwgdGV4dDogc3RyaW5nLCB0eXBlOiBzdHJpbmd9fVxuICovXG5mdW5jdGlvbiBjcmVhdGVIdG1sSW5zZXJ0KGh0bWwpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnaHRtbCcsXG4gICAgaHRtbDogaHRtbCxcbiAgICB0ZXh0OiAnJyxcbiAgfTtcbn1cblxuLyoqXG4gKiBjcmVhdGUgYW4gb2JqZWN0IHRvIG1hcmsgdGhlIGJlZ2lubmluZyBvZiBhIHZlcnNlXG4gKiBAcGFyYW0ge3N0cmluZ30gdmVyc2VcbiAqIEByZXR1cm4ge29iamVjdH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVZlcnNlTWFya2VyKHZlcnNlKSB7XG4gIHJldHVybiBjcmVhdGVIdG1sSW5zZXJ0KGdldFZlcnNlTWFya2VyKHZlcnNlKSk7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBQUNBLE1BQUEsQ0FBQUMsY0FBQSxDQUFBQyxPQUFBO0VBQUFDLEtBQUE7QUFBQTtBQUFBRCxPQUFBLENBQUFFLGlCQUFBLEdBQUFBLGlCQUFBO0FBQUFGLE9BQUEsQ0FBQUcsZUFBQSxHQUFBQSxlQUFBO0FBQUFILE9BQUEsQ0FBQUksWUFBQSxHQUFBQSxZQUFBO0FBQUFKLE9BQUEsQ0FBQUsscUJBQUEsR0FBQUEscUJBQUE7QUFBQUwsT0FBQSxDQUFBTSxZQUFBLEdBQUFBLFlBQUE7QUFBQU4sT0FBQSxDQUFBTyxjQUFBLEdBQUFBLGNBQUE7QUFBQVAsT0FBQSxDQUFBUSxpQkFBQSxHQUFBQSxpQkFBQTtBQUFBUixPQUFBLENBQUFTLGFBQUEsR0FBQUEsYUFBQTtBQUFBVCxPQUFBLENBQUFVLFdBQUEsR0FBQUEsV0FBQTtBQUFBVixPQUFBLENBQUFXLFVBQUEsR0FBQUEsVUFBQTtBQUFBWCxPQUFBLENBQUFZLFdBQUEsR0FBQUEsV0FBQTtBQUFBWixPQUFBLENBQUFhLFVBQUEsR0FBQUEsVUFBQTtBQUFBYixPQUFBLENBQUFjLFdBQUE7QUFDYixJQUFBQyxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxlQUFBLEdBQUFDLHVCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxZQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxvQkFBQSxHQUFBTCxPQUFBO0FBRUEsSUFBQU0sZ0JBQUEsR0FBQUgsdUJBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFPLG9CQUFBLEdBQUFQLE9B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
|