UNPKG

adui

Version:

<div> <img src="https://wxa.wxs.qq.com/mpweb/delivery/legacy/wxadtouch/upload/t1/od834zef_52939fc6.png" style="margin:40px 0 0 -8px; background-color: #fcfcfc; box-shadow: none;" /> </div>

167 lines (166 loc) 28.7 kB
"use strict"; 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); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var React = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _rcAnimate = _interopRequireDefault(require("rc-animate")); var _excluded = ["afterLeave", "animation", "appear", "children", "duration", "onLeave", "transition"]; function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; } function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; } var noop = function noop() {}; var MOTION_DURATION_BASE = 200; var transitionNames = { slide: "slide-up", zoom: "zoom-motion", zoomHorizontal: "zoom-motion-horizontal" }; var Motion = function Motion(_ref) { var afterLeave = _ref.afterLeave, animation = _ref.animation, _appear = _ref.appear, children = _ref.children, duration = _ref.duration, onLeave = _ref.onLeave, transition = _ref.transition, othersProps = _objectWithoutProperties(_ref, _excluded); var dur = duration !== null && duration !== undefined ? duration : MOTION_DURATION_BASE; var transitionName = transition && transitionNames[transition]; var getNodeStyle = function getNodeStyle(node, styleName) { return getComputedStyle(node).getPropertyValue(styleName); }; var setNodeStyle = function setNodeStyle(node) { if (node) { if (transitionName && transitionName.includes("horizontal")) { node.style.marginRight = "0"; node.style.marginLeft = "0"; node.style.paddingRight = "0"; node.style.paddingLeft = "0"; node.style.width = "0"; } else { node.style.marginTop = "0"; node.style.marginBottom = "0"; node.style.paddingTop = "0"; node.style.paddingBottom = "0"; node.style.height = "0"; } } }; var getEnterAnimation = function getEnterAnimation(node, done) { var width = "".concat(node.getBoundingClientRect().width, "px"); var height = "".concat(node.getBoundingClientRect().height, "px"); var paddingTop = getNodeStyle(node, "padding-top"); var paddingRight = getNodeStyle(node, "padding-right"); var paddingBottom = getNodeStyle(node, "padding-bottom"); var paddingLeft = getNodeStyle(node, "padding-left"); if (transitionName && transitionName.includes("slide")) { node.style.opacity = "1"; } if (transitionName && transitionName.includes("horizontal")) { node.style.width = "0"; node.style.paddingRight = "0"; node.style.paddingLeft = "0"; } else { node.style.height = "0"; node.style.paddingTop = "0"; node.style.paddingBottom = "0"; } node.style.overflow = "hidden"; node.style.setProperty("animation-duration", "".concat(dur, "ms"), "important"); node.classList.add("".concat(transitionName, "-enter"), "".concat(transitionName, "-enter-active")); setTimeout(function () { if (transitionName && transitionName.includes("horizontal")) { node.style.transition = "all ".concat(dur, "ms var(--ease-in-out)"); node.style.width = width; node.style.paddingRight = paddingRight; node.style.paddingLeft = paddingLeft; } else { node.style.transition = "all ".concat(dur, "ms var(--ease-in-out)"); node.style.height = height; node.style.paddingTop = paddingTop; node.style.paddingBottom = paddingBottom; } }, 10); var promise = new Promise(function (resolve) { return setTimeout(resolve, dur); }); promise.then(function () { node.classList.remove("".concat(transitionName, "-enter"), "".concat(transitionName, "-enter-active")); if (transitionName && transitionName.includes("horizontal")) { node.style.width = ""; } else { node.style.height = ""; } node.style.overflow = ""; return done(); }); }; return React.createElement(_rcAnimate["default"], _extends({ animation: animation || { appear: function appear(node, done) { if (_appear) { getEnterAnimation(node, done); } return done(); }, enter: function enter(node, done) { getEnterAnimation(node, done); }, leave: function leave(node, done) { if (onLeave) { onLeave(node); } if (transitionName && transitionName.includes("horizontal")) { var width = "".concat(node.getBoundingClientRect().width, "px"); node.style.width = width; } else { var height = "".concat(node.getBoundingClientRect().height, "px"); node.style.height = height; } node.style.setProperty("animation-duration", "".concat(dur, "ms"), "important"); node.style.overflow = "hidden"; node.classList.remove("".concat(transitionName, "-enter"), "".concat(transitionName, "-enter-active")); node.classList.add("".concat(transitionName, "-leave"), "".concat(transitionName, "-leave-active")); setTimeout(function () { node.style.transition = "all ".concat(dur, "ms var(--ease-in-out)"); setNodeStyle(node); }, 10); var promise = new Promise(function (resolve) { return setTimeout(resolve, dur); }); promise.then(function () { if (afterLeave) { afterLeave(node); } return done(); }); } } }, othersProps), children); }; Motion.propTypes = { afterLeave: _propTypes["default"].func, animation: _propTypes["default"].object, appear: _propTypes["default"].bool, children: _propTypes["default"].node, duration: _propTypes["default"].number, onLeave: _propTypes["default"].func, transition: _propTypes["default"].oneOf(["slide", "zoom", "zoomHorizontal"]) }; Motion.defaultProps = { afterLeave: noop, animation: undefined, appear: false, children: null, duration: undefined, onLeave: noop, transition: "zoom" }; var _default = exports["default"] = Motion; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JjQW5pbWF0ZSIsIl9leGNsdWRlZCIsImUiLCJfX2VzTW9kdWxlIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiV2Vha01hcCIsInIiLCJ0IiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9leHRlbmRzIiwiYXNzaWduIiwiYmluZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFwcGx5IiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwibyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwicyIsImluY2x1ZGVzIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJub29wIiwiTU9USU9OX0RVUkFUSU9OX0JBU0UiLCJ0cmFuc2l0aW9uTmFtZXMiLCJzbGlkZSIsInpvb20iLCJ6b29tSG9yaXpvbnRhbCIsIk1vdGlvbiIsIl9yZWYiLCJhZnRlckxlYXZlIiwiYW5pbWF0aW9uIiwiYXBwZWFyIiwiY2hpbGRyZW4iLCJkdXJhdGlvbiIsIm9uTGVhdmUiLCJ0cmFuc2l0aW9uIiwib3RoZXJzUHJvcHMiLCJkdXIiLCJ1bmRlZmluZWQiLCJ0cmFuc2l0aW9uTmFtZSIsImdldE5vZGVTdHlsZSIsIm5vZGUiLCJzdHlsZU5hbWUiLCJnZXRDb21wdXRlZFN0eWxlIiwiZ2V0UHJvcGVydHlWYWx1ZSIsInNldE5vZGVTdHlsZSIsInN0eWxlIiwibWFyZ2luUmlnaHQiLCJtYXJnaW5MZWZ0IiwicGFkZGluZ1JpZ2h0IiwicGFkZGluZ0xlZnQiLCJ3aWR0aCIsIm1hcmdpblRvcCIsIm1hcmdpbkJvdHRvbSIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIiwiaGVpZ2h0IiwiZ2V0RW50ZXJBbmltYXRpb24iLCJkb25lIiwiY29uY2F0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0Iiwib3BhY2l0eSIsIm92ZXJmbG93Iiwic2V0UHJvcGVydHkiLCJjbGFzc0xpc3QiLCJhZGQiLCJzZXRUaW1lb3V0IiwicHJvbWlzZSIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsInJlbW92ZSIsImNyZWF0ZUVsZW1lbnQiLCJlbnRlciIsImxlYXZlIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiZnVuYyIsIm9iamVjdCIsImJvb2wiLCJudW1iZXIiLCJvbmVPZiIsImRlZmF1bHRQcm9wcyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL2NvbXBvbmVudHMvbW90aW9uL01vdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IEFuaW1hdGUgZnJvbSBcInJjLWFuaW1hdGVcIlxuXG5jb25zdCBub29wID0gKCkgPT4ge31cbmNvbnN0IE1PVElPTl9EVVJBVElPTl9CQVNFID0gMjAwXG5jb25zdCB0cmFuc2l0aW9uTmFtZXMgPSB7XG4gIHNsaWRlOiBcInNsaWRlLXVwXCIsXG4gIHpvb206IFwiem9vbS1tb3Rpb25cIixcbiAgem9vbUhvcml6b250YWw6IFwiem9vbS1tb3Rpb24taG9yaXpvbnRhbFwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNb3Rpb25Qcm9wcyB7XG4gIFtrZXk6IHN0cmluZ106IGFueVxuICAvKipcbiAgICogZG9tIOenu+mZpOWQjueahCBoYW5kbGVyXG4gICAqL1xuICBhZnRlckxlYXZlPzogKG5vZGU6IEhUTUxFbGVtZW50KSA9PiB2b2lkXG4gIC8qKlxuICAgKiDlj6/oh6rlrprkuYkgYW5pbWF0aW9uIOeahCBhcHBlYXIsIGVudGVyLCBsZWF2ZVxuICAgKi9cbiAgYW5pbWF0aW9uPzogb2JqZWN0XG4gIC8qKlxuICAgKiDov5vlhaXliqjnlLvmmK/lkKbkvZznlKjkuo4gYXBwZWFyIOmYtuautVxuICAgKi9cbiAgYXBwZWFyPzogYm9vbGVhblxuICAvKipcbiAgICog5a2Q5YWD57SgXG4gICAqL1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZVxuICAvKipcbiAgICogTW90aW9uIOWMheijueWxgueahOWFg+e0oOagh+etvlxuICAgKi9cbiAgY29tcG9uZW50Pzogc3RyaW5nXG4gIC8qKlxuICAgKiDliqjmlYjmjIHnu63ml7bpl7TvvIzljZXkvY0gbXNcbiAgICovXG4gIGR1cmF0aW9uPzogbnVtYmVyXG4gIC8qKlxuICAgKiBkb20g5byA5aeL56e76Zmk55qEIGhhbmRsZXJcbiAgICovXG4gIG9uTGVhdmU/OiAobm9kZTogSFRNTEVsZW1lbnQpID0+IHZvaWRcbiAgLyoqXG4gICAqIOWKqOaViOW9ouW8j1xuICAgKi9cbiAgdHJhbnNpdGlvbj86IFwic2xpZGVcIiB8IFwiem9vbVwiIHwgXCJ6b29tSG9yaXpvbnRhbFwiXG59XG5cbmNvbnN0IE1vdGlvbjogUmVhY3QuRkM8SU1vdGlvblByb3BzPiA9ICh7XG4gIGFmdGVyTGVhdmUsXG4gIGFuaW1hdGlvbixcbiAgYXBwZWFyLFxuICBjaGlsZHJlbixcbiAgZHVyYXRpb24sXG4gIG9uTGVhdmUsXG4gIHRyYW5zaXRpb24sXG4gIC4uLm90aGVyc1Byb3BzXG59OiBJTW90aW9uUHJvcHMpID0+IHtcbiAgY29uc3QgZHVyID1cbiAgICBkdXJhdGlvbiAhPT0gbnVsbCAmJiBkdXJhdGlvbiAhPT0gdW5kZWZpbmVkXG4gICAgICA/IGR1cmF0aW9uXG4gICAgICA6IE1PVElPTl9EVVJBVElPTl9CQVNFXG4gIGNvbnN0IHRyYW5zaXRpb25OYW1lID0gdHJhbnNpdGlvbiAmJiB0cmFuc2l0aW9uTmFtZXNbdHJhbnNpdGlvbl1cblxuICBjb25zdCBnZXROb2RlU3R5bGUgPSAobm9kZTogSFRNTEVsZW1lbnQsIHN0eWxlTmFtZTogc3RyaW5nKSA9PlxuICAgIGdldENvbXB1dGVkU3R5bGUobm9kZSkuZ2V0UHJvcGVydHlWYWx1ZShzdHlsZU5hbWUpXG5cbiAgY29uc3Qgc2V0Tm9kZVN0eWxlID0gKG5vZGU6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIGlmICh0cmFuc2l0aW9uTmFtZSAmJiB0cmFuc2l0aW9uTmFtZS5pbmNsdWRlcyhcImhvcml6b250YWxcIikpIHtcbiAgICAgICAgbm9kZS5zdHlsZS5tYXJnaW5SaWdodCA9IFwiMFwiXG4gICAgICAgIG5vZGUuc3R5bGUubWFyZ2luTGVmdCA9IFwiMFwiXG4gICAgICAgIG5vZGUuc3R5bGUucGFkZGluZ1JpZ2h0ID0gXCIwXCJcbiAgICAgICAgbm9kZS5zdHlsZS5wYWRkaW5nTGVmdCA9IFwiMFwiXG4gICAgICAgIG5vZGUuc3R5bGUud2lkdGggPSBcIjBcIlxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZS5zdHlsZS5tYXJnaW5Ub3AgPSBcIjBcIlxuICAgICAgICBub2RlLnN0eWxlLm1hcmdpbkJvdHRvbSA9IFwiMFwiXG4gICAgICAgIG5vZGUuc3R5bGUucGFkZGluZ1RvcCA9IFwiMFwiXG4gICAgICAgIG5vZGUuc3R5bGUucGFkZGluZ0JvdHRvbSA9IFwiMFwiXG4gICAgICAgIG5vZGUuc3R5bGUuaGVpZ2h0ID0gXCIwXCJcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBnZXRFbnRlckFuaW1hdGlvbiA9IChub2RlOiBIVE1MRWxlbWVudCwgZG9uZTogKCkgPT4gdm9pZCkgPT4ge1xuICAgIGNvbnN0IHdpZHRoID0gYCR7bm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH1weGBcbiAgICBjb25zdCBoZWlnaHQgPSBgJHtub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodH1weGBcbiAgICBjb25zdCBwYWRkaW5nVG9wID0gZ2V0Tm9kZVN0eWxlKG5vZGUsIFwicGFkZGluZy10b3BcIilcbiAgICBjb25zdCBwYWRkaW5nUmlnaHQgPSBnZXROb2RlU3R5bGUobm9kZSwgXCJwYWRkaW5nLXJpZ2h0XCIpXG4gICAgY29uc3QgcGFkZGluZ0JvdHRvbSA9IGdldE5vZGVTdHlsZShub2RlLCBcInBhZGRpbmctYm90dG9tXCIpXG4gICAgY29uc3QgcGFkZGluZ0xlZnQgPSBnZXROb2RlU3R5bGUobm9kZSwgXCJwYWRkaW5nLWxlZnRcIilcblxuICAgIGlmICh0cmFuc2l0aW9uTmFtZSAmJiB0cmFuc2l0aW9uTmFtZS5pbmNsdWRlcyhcInNsaWRlXCIpKSB7XG4gICAgICBub2RlLnN0eWxlLm9wYWNpdHkgPSBcIjFcIlxuICAgIH1cblxuICAgIGlmICh0cmFuc2l0aW9uTmFtZSAmJiB0cmFuc2l0aW9uTmFtZS5pbmNsdWRlcyhcImhvcml6b250YWxcIikpIHtcbiAgICAgIG5vZGUuc3R5bGUud2lkdGggPSBcIjBcIlxuICAgICAgbm9kZS5zdHlsZS5wYWRkaW5nUmlnaHQgPSBcIjBcIlxuICAgICAgbm9kZS5zdHlsZS5wYWRkaW5nTGVmdCA9IFwiMFwiXG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUuc3R5bGUuaGVpZ2h0ID0gXCIwXCJcbiAgICAgIG5vZGUuc3R5bGUucGFkZGluZ1RvcCA9IFwiMFwiXG4gICAgICBub2RlLnN0eWxlLnBhZGRpbmdCb3R0b20gPSBcIjBcIlxuICAgIH1cblxuICAgIG5vZGUuc3R5bGUub3ZlcmZsb3cgPSBcImhpZGRlblwiXG4gICAgbm9kZS5zdHlsZS5zZXRQcm9wZXJ0eShcImFuaW1hdGlvbi1kdXJhdGlvblwiLCBgJHtkdXJ9bXNgLCBcImltcG9ydGFudFwiKVxuICAgIG5vZGUuY2xhc3NMaXN0LmFkZChcbiAgICAgIGAke3RyYW5zaXRpb25OYW1lfS1lbnRlcmAsXG4gICAgICBgJHt0cmFuc2l0aW9uTmFtZX0tZW50ZXItYWN0aXZlYFxuICAgIClcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRyYW5zaXRpb25OYW1lICYmIHRyYW5zaXRpb25OYW1lLmluY2x1ZGVzKFwiaG9yaXpvbnRhbFwiKSkge1xuICAgICAgICBub2RlLnN0eWxlLnRyYW5zaXRpb24gPSBgYWxsICR7ZHVyfW1zIHZhcigtLWVhc2UtaW4tb3V0KWBcbiAgICAgICAgbm9kZS5zdHlsZS53aWR0aCA9IHdpZHRoXG4gICAgICAgIG5vZGUuc3R5bGUucGFkZGluZ1JpZ2h0ID0gcGFkZGluZ1JpZ2h0XG4gICAgICAgIG5vZGUuc3R5bGUucGFkZGluZ0xlZnQgPSBwYWRkaW5nTGVmdFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZS5zdHlsZS50cmFuc2l0aW9uID0gYGFsbCAke2R1cn1tcyB2YXIoLS1lYXNlLWluLW91dClgXG4gICAgICAgIG5vZGUuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0XG4gICAgICAgIG5vZGUuc3R5bGUucGFkZGluZ1RvcCA9IHBhZGRpbmdUb3BcbiAgICAgICAgbm9kZS5zdHlsZS5wYWRkaW5nQm90dG9tID0gcGFkZGluZ0JvdHRvbVxuICAgICAgfVxuICAgIH0sIDEwKVxuICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBkdXIpKVxuICAgIHByb21pc2UudGhlbigoKSA9PiB7XG4gICAgICBub2RlLmNsYXNzTGlzdC5yZW1vdmUoXG4gICAgICAgIGAke3RyYW5zaXRpb25OYW1lfS1lbnRlcmAsXG4gICAgICAgIGAke3RyYW5zaXRpb25OYW1lfS1lbnRlci1hY3RpdmVgXG4gICAgICApXG4gICAgICBpZiAodHJhbnNpdGlvbk5hbWUgJiYgdHJhbnNpdGlvbk5hbWUuaW5jbHVkZXMoXCJob3Jpem9udGFsXCIpKSB7XG4gICAgICAgIG5vZGUuc3R5bGUud2lkdGggPSBcIlwiXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlLnN0eWxlLmhlaWdodCA9IFwiXCJcbiAgICAgIH1cbiAgICAgIG5vZGUuc3R5bGUub3ZlcmZsb3cgPSBcIlwiXG4gICAgICByZXR1cm4gZG9uZSgpXG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPEFuaW1hdGVcbiAgICAgIGFuaW1hdGlvbj17XG4gICAgICAgIGFuaW1hdGlvbiB8fCB7XG4gICAgICAgICAgYXBwZWFyKG5vZGU6IEhUTUxFbGVtZW50LCBkb25lOiAoKSA9PiB2b2lkKSB7XG4gICAgICAgICAgICBpZiAoYXBwZWFyKSB7XG4gICAgICAgICAgICAgIGdldEVudGVyQW5pbWF0aW9uKG5vZGUsIGRvbmUpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZG9uZSgpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBlbnRlcihub2RlOiBIVE1MRWxlbWVudCwgZG9uZTogKCkgPT4gdm9pZCkge1xuICAgICAgICAgICAgZ2V0RW50ZXJBbmltYXRpb24obm9kZSwgZG9uZSlcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxlYXZlKG5vZGU6IEhUTUxFbGVtZW50LCBkb25lOiAoKSA9PiB2b2lkKSB7XG4gICAgICAgICAgICBpZiAob25MZWF2ZSkge1xuICAgICAgICAgICAgICBvbkxlYXZlKG5vZGUpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHJhbnNpdGlvbk5hbWUgJiYgdHJhbnNpdGlvbk5hbWUuaW5jbHVkZXMoXCJob3Jpem9udGFsXCIpKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gYCR7bm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH1weGBcbiAgICAgICAgICAgICAgbm9kZS5zdHlsZS53aWR0aCA9IHdpZHRoXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBgJHtub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodH1weGBcbiAgICAgICAgICAgICAgbm9kZS5zdHlsZS5oZWlnaHQgPSBoZWlnaHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5vZGUuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgICAgIFwiYW5pbWF0aW9uLWR1cmF0aW9uXCIsXG4gICAgICAgICAgICAgIGAke2R1cn1tc2AsXG4gICAgICAgICAgICAgIFwiaW1wb3J0YW50XCJcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIG5vZGUuc3R5bGUub3ZlcmZsb3cgPSBcImhpZGRlblwiXG4gICAgICAgICAgICBub2RlLmNsYXNzTGlzdC5yZW1vdmUoXG4gICAgICAgICAgICAgIGAke3RyYW5zaXRpb25OYW1lfS1lbnRlcmAsXG4gICAgICAgICAgICAgIGAke3RyYW5zaXRpb25OYW1lfS1lbnRlci1hY3RpdmVgXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBub2RlLmNsYXNzTGlzdC5hZGQoXG4gICAgICAgICAgICAgIGAke3RyYW5zaXRpb25OYW1lfS1sZWF2ZWAsXG4gICAgICAgICAgICAgIGAke3RyYW5zaXRpb25OYW1lfS1sZWF2ZS1hY3RpdmVgXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgbm9kZS5zdHlsZS50cmFuc2l0aW9uID0gYGFsbCAke2R1cn1tcyB2YXIoLS1lYXNlLWluLW91dClgXG4gICAgICAgICAgICAgIHNldE5vZGVTdHlsZShub2RlKVxuICAgICAgICAgICAgfSwgMTApXG4gICAgICAgICAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgZHVyKSlcbiAgICAgICAgICAgIHByb21pc2UudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChhZnRlckxlYXZlKSB7XG4gICAgICAgICAgICAgICAgYWZ0ZXJMZWF2ZShub2RlKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBkb25lKClcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgey4uLm90aGVyc1Byb3BzfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0FuaW1hdGU+XG4gIClcbn1cblxuTW90aW9uLnByb3BUeXBlcyA9IHtcbiAgYWZ0ZXJMZWF2ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIGFuaW1hdGlvbjogUHJvcFR5cGVzLm9iamVjdCxcbiAgYXBwZWFyOiBQcm9wVHlwZXMuYm9vbCxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICBkdXJhdGlvbjogUHJvcFR5cGVzLm51bWJlcixcbiAgb25MZWF2ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIHRyYW5zaXRpb246IFByb3BUeXBlcy5vbmVPZihbXCJzbGlkZVwiLCBcInpvb21cIiwgXCJ6b29tSG9yaXpvbnRhbFwiXSksXG59XG5cbk1vdGlvbi5kZWZhdWx0UHJvcHMgPSB7XG4gIGFmdGVyTGVhdmU6IG5vb3AsXG4gIGFuaW1hdGlvbjogdW5kZWZpbmVkLFxuICBhcHBlYXI6IGZhbHNlLFxuICBjaGlsZHJlbjogbnVsbCxcbiAgZHVyYXRpb246IHVuZGVmaW5lZCxcbiAgb25MZWF2ZTogbm9vcCxcbiAgdHJhbnNpdGlvbjogXCJ6b29tXCIsXG59XG5cbmV4cG9ydCBkZWZhdWx0IE1vdGlvblxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsS0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQWdDLElBQUFJLFNBQUE7QUFBQSxTQUFBRix1QkFBQUcsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLGdCQUFBQSxDQUFBO0FBQUEsU0FBQUUseUJBQUFGLENBQUEsNkJBQUFHLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUQsd0JBQUEsWUFBQUEseUJBQUFGLENBQUEsV0FBQUEsQ0FBQSxHQUFBSyxDQUFBLEdBQUFELENBQUEsS0FBQUosQ0FBQTtBQUFBLFNBQUFOLHdCQUFBTSxDQUFBLEVBQUFJLENBQUEsU0FBQUEsQ0FBQSxJQUFBSixDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxTQUFBRCxDQUFBLGVBQUFBLENBQUEsZ0JBQUFNLE9BQUEsQ0FBQU4sQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBSyxDQUFBLEdBQUFILHdCQUFBLENBQUFFLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFFLEdBQUEsQ0FBQVAsQ0FBQSxVQUFBSyxDQUFBLENBQUFHLEdBQUEsQ0FBQVIsQ0FBQSxPQUFBUyxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFBLElBQUFmLENBQUEsb0JBQUFlLENBQUEsT0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFqQixDQUFBLEVBQUFlLENBQUEsU0FBQUcsQ0FBQSxHQUFBUCxDQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWQsQ0FBQSxFQUFBZSxDQUFBLFVBQUFHLENBQUEsS0FBQUEsQ0FBQSxDQUFBVixHQUFBLElBQUFVLENBQUEsQ0FBQUMsR0FBQSxJQUFBUCxNQUFBLENBQUFDLGNBQUEsQ0FBQUosQ0FBQSxFQUFBTSxDQUFBLEVBQUFHLENBQUEsSUFBQVQsQ0FBQSxDQUFBTSxDQUFBLElBQUFmLENBQUEsQ0FBQWUsQ0FBQSxZQUFBTixDQUFBLGNBQUFULENBQUEsRUFBQUssQ0FBQSxJQUFBQSxDQUFBLENBQUFjLEdBQUEsQ0FBQW5CLENBQUEsRUFBQVMsQ0FBQSxHQUFBQSxDQUFBO0FBQUEsU0FBQVcsU0FBQSxXQUFBQSxRQUFBLEdBQUFSLE1BQUEsQ0FBQVMsTUFBQSxHQUFBVCxNQUFBLENBQUFTLE1BQUEsQ0FBQUMsSUFBQSxlQUFBYixDQUFBLGFBQUFULENBQUEsTUFBQUEsQ0FBQSxHQUFBdUIsU0FBQSxDQUFBQyxNQUFBLEVBQUF4QixDQUFBLFVBQUFLLENBQUEsR0FBQWtCLFNBQUEsQ0FBQXZCLENBQUEsWUFBQUksQ0FBQSxJQUFBQyxDQUFBLE9BQUFXLGNBQUEsQ0FBQUMsSUFBQSxDQUFBWixDQUFBLEVBQUFELENBQUEsTUFBQUssQ0FBQSxDQUFBTCxDQUFBLElBQUFDLENBQUEsQ0FBQUQsQ0FBQSxhQUFBSyxDQUFBLEtBQUFXLFFBQUEsQ0FBQUssS0FBQSxPQUFBRixTQUFBO0FBQUEsU0FBQUcseUJBQUExQixDQUFBLEVBQUFLLENBQUEsZ0JBQUFMLENBQUEsaUJBQUEyQixDQUFBLEVBQUF2QixDQUFBLEVBQUFjLENBQUEsR0FBQVUsNkJBQUEsQ0FBQTVCLENBQUEsRUFBQUssQ0FBQSxPQUFBTyxNQUFBLENBQUFpQixxQkFBQSxRQUFBQyxDQUFBLEdBQUFsQixNQUFBLENBQUFpQixxQkFBQSxDQUFBN0IsQ0FBQSxRQUFBSSxDQUFBLE1BQUFBLENBQUEsR0FBQTBCLENBQUEsQ0FBQU4sTUFBQSxFQUFBcEIsQ0FBQSxJQUFBdUIsQ0FBQSxHQUFBRyxDQUFBLENBQUExQixDQUFBLEdBQUFDLENBQUEsQ0FBQTBCLFFBQUEsQ0FBQUosQ0FBQSxRQUFBSyxvQkFBQSxDQUFBZixJQUFBLENBQUFqQixDQUFBLEVBQUEyQixDQUFBLE1BQUFULENBQUEsQ0FBQVMsQ0FBQSxJQUFBM0IsQ0FBQSxDQUFBMkIsQ0FBQSxhQUFBVCxDQUFBO0FBQUEsU0FBQVUsOEJBQUF4QixDQUFBLEVBQUFKLENBQUEsZ0JBQUFJLENBQUEsaUJBQUFDLENBQUEsZ0JBQUFJLENBQUEsSUFBQUwsQ0FBQSxTQUFBWSxjQUFBLENBQUFDLElBQUEsQ0FBQWIsQ0FBQSxFQUFBSyxDQUFBLFNBQUFULENBQUEsQ0FBQStCLFFBQUEsQ0FBQXRCLENBQUEsYUFBQUosQ0FBQSxDQUFBSSxDQUFBLElBQUFMLENBQUEsQ0FBQUssQ0FBQSxZQUFBSixDQUFBO0FBRWhDLElBQU00QixJQUFJLEdBQUcsU0FBUEEsSUFBSUEsQ0FBQSxFQUFTLENBQUMsQ0FBQztBQUNyQixJQUFNQyxvQkFBb0IsR0FBRyxHQUFHO0FBQ2hDLElBQU1DLGVBQWUsR0FBRztFQUN0QkMsS0FBSyxFQUFFLFVBQVU7RUFDakJDLElBQUksRUFBRSxhQUFhO0VBQ25CQyxjQUFjLEVBQUU7QUFDbEIsQ0FBQztBQXNDRCxJQUFNQyxNQUE4QixHQUFHLFNBQWpDQSxNQUE4QkEsQ0FBQUMsSUFBQSxFQVNoQjtFQUFBLElBUmxCQyxVQUFVLEdBQUFELElBQUEsQ0FBVkMsVUFBVTtJQUNWQyxTQUFTLEdBQUFGLElBQUEsQ0FBVEUsU0FBUztJQUNUQyxPQUFNLEdBQUFILElBQUEsQ0FBTkcsTUFBTTtJQUNOQyxRQUFRLEdBQUFKLElBQUEsQ0FBUkksUUFBUTtJQUNSQyxRQUFRLEdBQUFMLElBQUEsQ0FBUkssUUFBUTtJQUNSQyxPQUFPLEdBQUFOLElBQUEsQ0FBUE0sT0FBTztJQUNQQyxVQUFVLEdBQUFQLElBQUEsQ0FBVk8sVUFBVTtJQUNQQyxXQUFXLEdBQUF0Qix3QkFBQSxDQUFBYyxJQUFBLEVBQUF6QyxTQUFBO0VBRWQsSUFBTWtELEdBQUcsR0FDUEosUUFBUSxLQUFLLElBQUksSUFBSUEsUUFBUSxLQUFLSyxTQUFTLEdBQ3ZDTCxRQUFRLEdBQ1JYLG9CQUFvQjtFQUMxQixJQUFNaUIsY0FBYyxHQUFHSixVQUFVLElBQUlaLGVBQWUsQ0FBQ1ksVUFBVSxDQUFDO0VBRWhFLElBQU1LLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFJQyxJQUFpQixFQUFFQyxTQUFpQjtJQUFBLE9BQ3hEQyxnQkFBZ0IsQ0FBQ0YsSUFBSSxDQUFDLENBQUNHLGdCQUFnQixDQUFDRixTQUFTLENBQUM7RUFBQTtFQUVwRCxJQUFNRyxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBSUosSUFBaUIsRUFBSztJQUMxQyxJQUFJQSxJQUFJLEVBQUU7TUFDUixJQUFJRixjQUFjLElBQUlBLGNBQWMsQ0FBQ3BCLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRTtRQUMzRHNCLElBQUksQ0FBQ0ssS0FBSyxDQUFDQyxXQUFXLEdBQUcsR0FBRztRQUM1Qk4sSUFBSSxDQUFDSyxLQUFLLENBQUNFLFVBQVUsR0FBRyxHQUFHO1FBQzNCUCxJQUFJLENBQUNLLEtBQUssQ0FBQ0csWUFBWSxHQUFHLEdBQUc7UUFDN0JSLElBQUksQ0FBQ0ssS0FBSyxDQUFDSSxXQUFXLEdBQUcsR0FBRztRQUM1QlQsSUFBSSxDQUFDSyxLQUFLLENBQUNLLEtBQUssR0FBRyxHQUFHO01BQ3hCLENBQUMsTUFBTTtRQUNMVixJQUFJLENBQUNLLEtBQUssQ0FBQ00sU0FBUyxHQUFHLEdBQUc7UUFDMUJYLElBQUksQ0FBQ0ssS0FBSyxDQUFDTyxZQUFZLEdBQUcsR0FBRztRQUM3QlosSUFBSSxDQUFDSyxLQUFLLENBQUNRLFVBQVUsR0FBRyxHQUFHO1FBQzNCYixJQUFJLENBQUNLLEtBQUssQ0FBQ1MsYUFBYSxHQUFHLEdBQUc7UUFDOUJkLElBQUksQ0FBQ0ssS0FBSyxDQUFDVSxNQUFNLEdBQUcsR0FBRztNQUN6QjtJQUNGO0VBQ0YsQ0FBQztFQUVELElBQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUloQixJQUFpQixFQUFFaUIsSUFBZ0IsRUFBSztJQUNqRSxJQUFNUCxLQUFLLE1BQUFRLE1BQUEsQ0FBTWxCLElBQUksQ0FBQ21CLHFCQUFxQixDQUFDLENBQUMsQ0FBQ1QsS0FBSyxPQUFJO0lBQ3ZELElBQU1LLE1BQU0sTUFBQUcsTUFBQSxDQUFNbEIsSUFBSSxDQUFDbUIscUJBQXFCLENBQUMsQ0FBQyxDQUFDSixNQUFNLE9BQUk7SUFDekQsSUFBTUYsVUFBVSxHQUFHZCxZQUFZLENBQUNDLElBQUksRUFBRSxhQUFhLENBQUM7SUFDcEQsSUFBTVEsWUFBWSxHQUFHVCxZQUFZLENBQUNDLElBQUksRUFBRSxlQUFlLENBQUM7SUFDeEQsSUFBTWMsYUFBYSxHQUFHZixZQUFZLENBQUNDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQztJQUMxRCxJQUFNUyxXQUFXLEdBQUdWLFlBQVksQ0FBQ0MsSUFBSSxFQUFFLGNBQWMsQ0FBQztJQUV0RCxJQUFJRixjQUFjLElBQUlBLGNBQWMsQ0FBQ3BCLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtNQUN0RHNCLElBQUksQ0FBQ0ssS0FBSyxDQUFDZSxPQUFPLEdBQUcsR0FBRztJQUMxQjtJQUVBLElBQUl0QixjQUFjLElBQUlBLGNBQWMsQ0FBQ3BCLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRTtNQUMzRHNCLElBQUksQ0FBQ0ssS0FBSyxDQUFDSyxLQUFLLEdBQUcsR0FBRztNQUN0QlYsSUFBSSxDQUFDSyxLQUFLLENBQUNHLFlBQVksR0FBRyxHQUFHO01BQzdCUixJQUFJLENBQUNLLEtBQUssQ0FBQ0ksV0FBVyxHQUFHLEdBQUc7SUFDOUIsQ0FBQyxNQUFNO01BQ0xULElBQUksQ0FBQ0ssS0FBSyxDQUFDVSxNQUFNLEdBQUcsR0FBRztNQUN2QmYsSUFBSSxDQUFDSyxLQUFLLENBQUNRLFVBQVUsR0FBRyxHQUFHO01BQzNCYixJQUFJLENBQUNLLEtBQUssQ0FBQ1MsYUFBYSxHQUFHLEdBQUc7SUFDaEM7SUFFQWQsSUFBSSxDQUFDSyxLQUFLLENBQUNnQixRQUFRLEdBQUcsUUFBUTtJQUM5QnJCLElBQUksQ0FBQ0ssS0FBSyxDQUFDaUIsV0FBVyxDQUFDLG9CQUFvQixLQUFBSixNQUFBLENBQUt0QixHQUFHLFNBQU0sV0FBVyxDQUFDO0lBQ3JFSSxJQUFJLENBQUN1QixTQUFTLENBQUNDLEdBQUcsSUFBQU4sTUFBQSxDQUNicEIsY0FBYyxnQkFBQW9CLE1BQUEsQ0FDZHBCLGNBQWMsa0JBQ25CLENBQUM7SUFFRDJCLFVBQVUsQ0FBQyxZQUFNO01BQ2YsSUFBSTNCLGNBQWMsSUFBSUEsY0FBYyxDQUFDcEIsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFO1FBQzNEc0IsSUFBSSxDQUFDSyxLQUFLLENBQUNYLFVBQVUsVUFBQXdCLE1BQUEsQ0FBVXRCLEdBQUcsMEJBQXVCO1FBQ3pESSxJQUFJLENBQUNLLEtBQUssQ0FBQ0ssS0FBSyxHQUFHQSxLQUFLO1FBQ3hCVixJQUFJLENBQUNLLEtBQUssQ0FBQ0csWUFBWSxHQUFHQSxZQUFZO1FBQ3RDUixJQUFJLENBQUNLLEtBQUssQ0FBQ0ksV0FBVyxHQUFHQSxXQUFXO01BQ3RDLENBQUMsTUFBTTtRQUNMVCxJQUFJLENBQUNLLEtBQUssQ0FBQ1gsVUFBVSxVQUFBd0IsTUFBQSxDQUFVdEIsR0FBRywwQkFBdUI7UUFDekRJLElBQUksQ0FBQ0ssS0FBSyxDQUFDVSxNQUFNLEdBQUdBLE1BQU07UUFDMUJmLElBQUksQ0FBQ0ssS0FBSyxDQUFDUSxVQUFVLEdBQUdBLFVBQVU7UUFDbENiLElBQUksQ0FBQ0ssS0FBSyxDQUFDUyxhQUFhLEdBQUdBLGFBQWE7TUFDMUM7SUFDRixDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ04sSUFBTVksT0FBTyxHQUFHLElBQUlDLE9BQU8sQ0FBQyxVQUFDQyxPQUFPO01BQUEsT0FBS0gsVUFBVSxDQUFDRyxPQUFPLEVBQUVoQyxHQUFHLENBQUM7SUFBQSxFQUFDO0lBQ2xFOEIsT0FBTyxDQUFDRyxJQUFJLENBQUMsWUFBTTtNQUNqQjdCLElBQUksQ0FBQ3VCLFNBQVMsQ0FBQ08sTUFBTSxJQUFBWixNQUFBLENBQ2hCcEIsY0FBYyxnQkFBQW9CLE1BQUEsQ0FDZHBCLGNBQWMsa0JBQ25CLENBQUM7TUFDRCxJQUFJQSxjQUFjLElBQUlBLGNBQWMsQ0FBQ3BCLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRTtRQUMzRHNCLElBQUksQ0FBQ0ssS0FBSyxDQUFDSyxLQUFLLEdBQUcsRUFBRTtNQUN2QixDQUFDLE1BQU07UUFDTFYsSUFBSSxDQUFDSyxLQUFLLENBQUNVLE1BQU0sR0FBRyxFQUFFO01BQ3hCO01BQ0FmLElBQUksQ0FBQ0ssS0FBSyxDQUFDZ0IsUUFBUSxHQUFHLEVBQUU7TUFDeEIsT0FBT0osSUFBSSxDQUFDLENBQUM7SUFDZixDQUFDLENBQUM7RUFDSixDQUFDO0VBRUQsT0FDRTdFLEtBQUEsQ0FBQTJGLGFBQUEsQ0FBQ3RGLFVBQUEsV0FBTyxFQUFBc0IsUUFBQTtJQUNOc0IsU0FBUyxFQUNQQSxTQUFTLElBQUk7TUFDWEMsTUFBTSxXQUFOQSxNQUFNQSxDQUFDVSxJQUFpQixFQUFFaUIsSUFBZ0IsRUFBRTtRQUMxQyxJQUFJM0IsT0FBTSxFQUFFO1VBQ1YwQixpQkFBaUIsQ0FBQ2hCLElBQUksRUFBRWlCLElBQUksQ0FBQztRQUMvQjtRQUNBLE9BQU9BLElBQUksQ0FBQyxDQUFDO01BQ2YsQ0FBQztNQUNEZSxLQUFLLFdBQUxBLEtBQUtBLENBQUNoQyxJQUFpQixFQUFFaUIsSUFBZ0IsRUFBRTtRQUN6Q0QsaUJBQWlCLENBQUNoQixJQUFJLEVBQUVpQixJQUFJLENBQUM7TUFDL0IsQ0FBQztNQUNEZ0IsS0FBSyxXQUFMQSxLQUFLQSxDQUFDakMsSUFBaUIsRUFBRWlCLElBQWdCLEVBQUU7UUFDekMsSUFBSXhCLE9BQU8sRUFBRTtVQUNYQSxPQUFPLENBQUNPLElBQUksQ0FBQztRQUNmO1FBQ0EsSUFBSUYsY0FBYyxJQUFJQSxjQUFjLENBQUNwQixRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUU7VUFDM0QsSUFBTWdDLEtBQUssTUFBQVEsTUFBQSxDQUFNbEIsSUFBSSxDQUFDbUIscUJBQXFCLENBQUMsQ0FBQyxDQUFDVCxLQUFLLE9BQUk7VUFDdkRWLElBQUksQ0FBQ0ssS0FBSyxDQUFDSyxLQUFLLEdBQUdBLEtBQUs7UUFDMUIsQ0FBQyxNQUFNO1VBQ0wsSUFBTUssTUFBTSxNQUFBRyxNQUFBLENBQU1sQixJQUFJLENBQUNtQixxQkFBcUIsQ0FBQyxDQUFDLENBQUNKLE1BQU0sT0FBSTtVQUN6RGYsSUFBSSxDQUFDSyxLQUFLLENBQUNVLE1BQU0sR0FBR0EsTUFBTTtRQUM1QjtRQUNBZixJQUFJLENBQUNLLEtBQUssQ0FBQ2lCLFdBQVcsQ0FDcEIsb0JBQW9CLEtBQUFKLE1BQUEsQ0FDakJ0QixHQUFHLFNBQ04sV0FDRixDQUFDO1FBQ0RJLElBQUksQ0FBQ0ssS0FBSyxDQUFDZ0IsUUFBUSxHQUFHLFFBQVE7UUFDOUJyQixJQUFJLENBQUN1QixTQUFTLENBQUNPLE1BQU0sSUFBQVosTUFBQSxDQUNoQnBCLGNBQWMsZ0JBQUFvQixNQUFBLENBQ2RwQixjQUFjLGtCQUNuQixDQUFDO1FBQ0RFLElBQUksQ0FBQ3VCLFNBQVMsQ0FBQ0MsR0FBRyxJQUFBTixNQUFBLENBQ2JwQixjQUFjLGdCQUFBb0IsTUFBQSxDQUNkcEIsY0FBYyxrQkFDbkIsQ0FBQztRQUNEMkIsVUFBVSxDQUFDLFlBQU07VUFDZnpCLElBQUksQ0FBQ0ssS0FBSyxDQUFDWCxVQUFVLFVBQUF3QixNQUFBLENBQVV0QixHQUFHLDBCQUF1QjtVQUN6RFEsWUFBWSxDQUFDSixJQUFJLENBQUM7UUFDcEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNOLElBQU0wQixPQUFPLEdBQUcsSUFBSUMsT0FBTyxDQUFDLFVBQUNDLE9BQU87VUFBQSxPQUFLSCxVQUFVLENBQUNHLE9BQU8sRUFBRWhDLEdBQUcsQ0FBQztRQUFBLEVBQUM7UUFDbEU4QixPQUFPLENBQUNHLElBQUksQ0FBQyxZQUFNO1VBQ2pCLElBQUl6QyxVQUFVLEVBQUU7WUFDZEEsVUFBVSxDQUFDWSxJQUFJLENBQUM7VUFDbEI7VUFDQSxPQUFPaUIsSUFBSSxDQUFDLENBQUM7UUFDZixDQUFDLENBQUM7TUFDSjtJQUNGO0VBQ0QsR0FDR3RCLFdBQVcsR0FFZEosUUFDTSxDQUFDO0FBRWQsQ0FBQztBQUVETCxNQUFNLENBQUNnRCxTQUFTLEdBQUc7RUFDakI5QyxVQUFVLEVBQUUrQyxxQkFBUyxDQUFDQyxJQUFJO0VBQzFCL0MsU0FBUyxFQUFFOEMscUJBQVMsQ0FBQ0UsTUFBTTtFQUMzQi9DLE1BQU0sRUFBRTZDLHFCQUFTLENBQUNHLElBQUk7RUFDdEIvQyxRQUFRLEVBQUU0QyxxQkFBUyxDQUFDbkMsSUFBSTtFQUN4QlIsUUFBUSxFQUFFMkMscUJBQVMsQ0FBQ0ksTUFBTTtFQUMxQjlDLE9BQU8sRUFBRTBDLHFCQUFTLENBQUNDLElBQUk7RUFDdkIxQyxVQUFVLEVBQUV5QyxxQkFBUyxDQUFDSyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixDQUFDO0FBQ2pFLENBQUM7QUFFRHRELE1BQU0sQ0FBQ3VELFlBQVksR0FBRztFQUNwQnJELFVBQVUsRUFBRVIsSUFBSTtFQUNoQlMsU0FBUyxFQUFFUSxTQUFTO0VBQ3BCUCxNQUFNLEVBQUUsS0FBSztFQUNiQyxRQUFRLEVBQUUsSUFBSTtFQUNkQyxRQUFRLEVBQUVLLFNBQVM7RUFDbkJKLE9BQU8sRUFBRWIsSUFBSTtFQUNiYyxVQUFVLEVBQUU7QUFDZCxDQUFDO0FBQUEsSUFBQWdELFFBQUEsR0FBQUMsT0FBQSxjQUVjekQsTUFBTSIsImlnbm9yZUxpc3QiOltdfQ==