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>
129 lines (128 loc) • 26.1 kB
JavaScript
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 ReactDOM = _interopRequireWildcard(require("react-dom"));
var _shallowequal = _interopRequireDefault(require("shallowequal"));
var _document;
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 _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
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); } }
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
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."); }
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; } }
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
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; }
var cannotCreatePortal = typeof ReactDOM.createPortal !== "function";
var maybeAddClass = function maybeAddClass(classList, className) {
if (className != null && className !== "") {
classList.add.apply(classList, _toConsumableArray(className.split(" ")));
}
};
var Portal = exports["default"] = function (_React$Component) {
function Portal() {
var _this;
_classCallCheck(this, Portal);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = _callSuper(this, Portal, [].concat(args));
_this.state = {
hasMounted: false
};
_this.portalElement = void 0;
_this.shouldComponentUpdate = function (nextProps, nextState) {
return !(0, _shallowequal["default"])(_this.props, nextProps) || !(0, _shallowequal["default"])(_this.state, nextState);
};
_this.componentDidMount = function () {
var _this$props = _this.props,
containerProp = _this$props.container,
getContainer = _this$props.getContainer,
onChildrenMount = _this$props.onChildrenMount;
var container = getContainer && getContainer() || containerProp;
if (!container) {
return;
}
_this.portalElement = _this.createContainerElement();
container.appendChild(_this.portalElement);
_this.setState({
hasMounted: true
}, onChildrenMount);
if (cannotCreatePortal) {
_this.unstableRenderNoPortal();
}
};
_this.componentDidUpdate = function (_ref) {
var prevClassName = _ref.className;
var className = _this.props.className;
if (_this.portalElement != null && prevClassName !== className) {
if (prevClassName) {
_this.portalElement.classList.remove(prevClassName);
}
maybeAddClass(_this.portalElement.classList, className);
}
if (cannotCreatePortal) {
_this.unstableRenderNoPortal();
}
};
return _this;
}
_inherits(Portal, _React$Component);
return _createClass(Portal, [{
key: "render",
value: function render() {
var children = this.props.children;
var hasMounted = this.state.hasMounted;
if (cannotCreatePortal || typeof document === "undefined" || !hasMounted) {
return null;
}
return React.createElement(React.Fragment, null, ReactDOM.createPortal(children, this.portalElement));
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
if (this.portalElement != null) {
if (cannotCreatePortal) {
ReactDOM.unmountComponentAtNode(this.portalElement);
}
this.portalElement.remove();
}
}
}, {
key: "createContainerElement",
value: function createContainerElement() {
var className = this.props.className;
var container = document.createElement("div");
container.classList.add("adui-portal");
maybeAddClass(container.classList, className);
return container;
}
}, {
key: "unstableRenderNoPortal",
value: function unstableRenderNoPortal() {
var children = this.props.children;
ReactDOM.unstable_renderSubtreeIntoContainer(this, React.createElement("div", null, children), this.portalElement);
}
}]);
}(React.Component);
Portal.displayName = "aduiPortal";
Portal.defaultProps = {
container: ((_document = document) === null || _document === void 0 ? void 0 : _document.body) || null
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIlJlYWN0RE9NIiwiX3NoYWxsb3dlcXVhbCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZG9jdW1lbnQiLCJlIiwiX19lc01vZHVsZSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIldlYWtNYXAiLCJyIiwidCIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfY2xhc3NDYWxsQ2hlY2siLCJUeXBlRXJyb3IiLCJfZGVmaW5lUHJvcGVydGllcyIsImxlbmd0aCIsIm8iLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJfdG9Qcm9wZXJ0eUtleSIsImtleSIsIl9jcmVhdGVDbGFzcyIsInByb3RvdHlwZSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiTnVtYmVyIiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsIlJlZmVyZW5jZUVycm9yIiwiQm9vbGVhbiIsInZhbHVlT2YiLCJzZXRQcm90b3R5cGVPZiIsImdldFByb3RvdHlwZU9mIiwiYmluZCIsIl9pbmhlcml0cyIsImNyZWF0ZSIsInZhbHVlIiwiX3NldFByb3RvdHlwZU9mIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsIm5hbWUiLCJBcnJheSIsImZyb20iLCJ0ZXN0IiwiaXRlcmF0b3IiLCJpc0FycmF5IiwiY2Fubm90Q3JlYXRlUG9ydGFsIiwiY3JlYXRlUG9ydGFsIiwibWF5YmVBZGRDbGFzcyIsImNsYXNzTGlzdCIsImNsYXNzTmFtZSIsImFkZCIsInNwbGl0IiwiUG9ydGFsIiwiZXhwb3J0cyIsIl9SZWFjdCRDb21wb25lbnQiLCJfdGhpcyIsIl9sZW4iLCJhcmd1bWVudHMiLCJhcmdzIiwiX2tleSIsImNvbmNhdCIsInN0YXRlIiwiaGFzTW91bnRlZCIsInBvcnRhbEVsZW1lbnQiLCJzaG91bGRDb21wb25lbnRVcGRhdGUiLCJuZXh0UHJvcHMiLCJuZXh0U3RhdGUiLCJzaGFsbG93RXF1YWwiLCJwcm9wcyIsImNvbXBvbmVudERpZE1vdW50IiwiX3RoaXMkcHJvcHMiLCJjb250YWluZXJQcm9wIiwiY29udGFpbmVyIiwiZ2V0Q29udGFpbmVyIiwib25DaGlsZHJlbk1vdW50IiwiY3JlYXRlQ29udGFpbmVyRWxlbWVudCIsImFwcGVuZENoaWxkIiwic2V0U3RhdGUiLCJ1bnN0YWJsZVJlbmRlck5vUG9ydGFsIiwiY29tcG9uZW50RGlkVXBkYXRlIiwiX3JlZiIsInByZXZDbGFzc05hbWUiLCJyZW1vdmUiLCJyZW5kZXIiLCJjaGlsZHJlbiIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJ1bm1vdW50Q29tcG9uZW50QXROb2RlIiwidW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXIiLCJDb21wb25lbnQiLCJkaXNwbGF5TmFtZSIsImRlZmF1bHRQcm9wcyIsImJvZHkiXSwic291cmNlcyI6WyIuLi8uLi9jb21wb25lbnRzL3BvcnRhbC9Qb3J0YWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tIFwicmVhY3QtZG9tXCJcbmltcG9ydCBzaGFsbG93RXF1YWwgZnJvbSBcInNoYWxsb3dlcXVhbFwiXG5cbi8qKiBEZXRlY3QgaWYgYFJlYWN0LmNyZWF0ZVBvcnRhbCgpYCBBUEkgbWV0aG9kIGRvZXMgbm90IGV4aXN0LiAqL1xuY29uc3QgY2Fubm90Q3JlYXRlUG9ydGFsID0gdHlwZW9mIFJlYWN0RE9NLmNyZWF0ZVBvcnRhbCAhPT0gXCJmdW5jdGlvblwiXG5cbmNvbnN0IG1heWJlQWRkQ2xhc3MgPSAoY2xhc3NMaXN0OiBET01Ub2tlbkxpc3QsIGNsYXNzTmFtZT86IHN0cmluZykgPT4ge1xuICBpZiAoY2xhc3NOYW1lICE9IG51bGwgJiYgY2xhc3NOYW1lICE9PSBcIlwiKSB7XG4gICAgY2xhc3NMaXN0LmFkZCguLi5jbGFzc05hbWUuc3BsaXQoXCIgXCIpKVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBvcnRhbFByb3BzIHtcbiAgLyoqXG4gICAqIOmZhOWKoOexu+WQje+8jOatpOexu+WQjeS8muWinuWKoOWIsOacgOWkluWxgueahOWMheWQq+Wdl+S4ilxuICAgKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIC8qKlxuICAgKiDlvZMgUG9ydGFsIOeahCBjaGlsZHJlbiDooqvliqDlhaXliLAgRE9NIOaXtueahOmSqeWtkFxuICAgKi9cbiAgb25DaGlsZHJlbk1vdW50PzogKCkgPT4gdm9pZFxuXG4gIC8qKlxuICAgKiBjaGlsZHJlbiBtb3VudGVkIHRvXG4gICAqIEBkZWZhdWx0IGRvY3VtZW50LmJvZHlcbiAgICovXG4gIGNvbnRhaW5lcj86IEhUTUxFbGVtZW50XG5cbiAgLyoqXG4gICAqIGdldCBjb250YWluZXIgd2hlbiBtb3VudGVkXG4gICAqL1xuICBnZXRDb250YWluZXI/OiAoKSA9PiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQb3J0YWxTdGF0ZSB7XG4gIGhhc01vdW50ZWQ6IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBQb3J0YWwg5bCG5a2Q57uE5Lu25LuO57uE5Lu25bGC57qn77yIY29tcG9uZW50IGhpZXJhcmNoee+8ieS4reWIhuemu++8jOW5tua3u+WKoOWIsOaMh+WumueahCBjb250YWluZXIg5LitXG4gKiDkvaDlupTor6XnlKjkuo7pgqPkupvlj5cgei1pbmRleOOAgW92ZXJmbG9344CBcG9zaXRpb246YWJzb2x1dGUg562J57qm5p2f55qE57uE5Lu25LitXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBvcnRhbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxcbiAgSVBvcnRhbFByb3BzLFxuICBJUG9ydGFsU3RhdGVcbj4ge1xuICBwdWJsaWMgc3RhdGljIGRpc3BsYXlOYW1lID0gYGFkdWlQb3J0YWxgXG5cbiAgcHVibGljIHN0YXRpYyBkZWZhdWx0UHJvcHM6IElQb3J0YWxQcm9wcyA9IHtcbiAgICBjb250YWluZXI6IGRvY3VtZW50Py5ib2R5IHx8IG51bGwsXG4gIH1cblxuICBwdWJsaWMgc3RhdGU6IElQb3J0YWxTdGF0ZSA9IHsgaGFzTW91bnRlZDogZmFsc2UgfVxuXG4gIHByaXZhdGUgcG9ydGFsRWxlbWVudDogSFRNTEVsZW1lbnRcblxuICBwdWJsaWMgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB7IGhhc01vdW50ZWQgfSA9IHRoaXMuc3RhdGVcbiAgICBpZiAoY2Fubm90Q3JlYXRlUG9ydGFsIHx8IHR5cGVvZiBkb2N1bWVudCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhaGFzTW91bnRlZCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICByZXR1cm4gPD57UmVhY3RET00uY3JlYXRlUG9ydGFsKGNoaWxkcmVuLCB0aGlzLnBvcnRhbEVsZW1lbnQpfTwvPlxuICB9XG5cbiAgcHVibGljIHNob3VsZENvbXBvbmVudFVwZGF0ZSA9IChcbiAgICBuZXh0UHJvcHM6IElQb3J0YWxQcm9wcyxcbiAgICBuZXh0U3RhdGU6IElQb3J0YWxTdGF0ZVxuICApID0+XG4gICAgIXNoYWxsb3dFcXVhbCh0aGlzLnByb3BzLCBuZXh0UHJvcHMpIHx8ICFzaGFsbG93RXF1YWwodGhpcy5zdGF0ZSwgbmV4dFN0YXRlKVxuXG4gIHB1YmxpYyBjb21wb25lbnREaWRNb3VudCA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBjb250YWluZXI6IGNvbnRhaW5lclByb3AsXG4gICAgICBnZXRDb250YWluZXIsXG4gICAgICBvbkNoaWxkcmVuTW91bnQsXG4gICAgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBjb250YWluZXIgPSAoZ2V0Q29udGFpbmVyICYmIGdldENvbnRhaW5lcigpKSB8fCBjb250YWluZXJQcm9wXG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aGlzLnBvcnRhbEVsZW1lbnQgPSB0aGlzLmNyZWF0ZUNvbnRhaW5lckVsZW1lbnQoKVxuICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLnBvcnRhbEVsZW1lbnQpXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGhhc01vdW50ZWQ6IHRydWUgfSwgb25DaGlsZHJlbk1vdW50KVxuICAgIGlmIChjYW5ub3RDcmVhdGVQb3J0YWwpIHtcbiAgICAgIHRoaXMudW5zdGFibGVSZW5kZXJOb1BvcnRhbCgpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNvbXBvbmVudERpZFVwZGF0ZSA9ICh7IGNsYXNzTmFtZTogcHJldkNsYXNzTmFtZSB9OiBJUG9ydGFsUHJvcHMpID0+IHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSB9ID0gdGhpcy5wcm9wc1xuICAgIGlmICh0aGlzLnBvcnRhbEVsZW1lbnQgIT0gbnVsbCAmJiBwcmV2Q2xhc3NOYW1lICE9PSBjbGFzc05hbWUpIHtcbiAgICAgIGlmIChwcmV2Q2xhc3NOYW1lKSB7XG4gICAgICAgIHRoaXMucG9ydGFsRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKHByZXZDbGFzc05hbWUpXG4gICAgICB9XG4gICAgICBtYXliZUFkZENsYXNzKHRoaXMucG9ydGFsRWxlbWVudC5jbGFzc0xpc3QsIGNsYXNzTmFtZSlcbiAgICB9XG4gICAgaWYgKGNhbm5vdENyZWF0ZVBvcnRhbCkge1xuICAgICAgdGhpcy51bnN0YWJsZVJlbmRlck5vUG9ydGFsKClcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgaWYgKHRoaXMucG9ydGFsRWxlbWVudCAhPSBudWxsKSB7XG4gICAgICBpZiAoY2Fubm90Q3JlYXRlUG9ydGFsKSB7XG4gICAgICAgIFJlYWN0RE9NLnVubW91bnRDb21wb25lbnRBdE5vZGUodGhpcy5wb3J0YWxFbGVtZW50KVxuICAgICAgfVxuICAgICAgdGhpcy5wb3J0YWxFbGVtZW50LnJlbW92ZSgpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb250YWluZXJFbGVtZW50KCkge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKVxuICAgIGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKFwiYWR1aS1wb3J0YWxcIilcbiAgICBtYXliZUFkZENsYXNzKGNvbnRhaW5lci5jbGFzc0xpc3QsIGNsYXNzTmFtZSlcbiAgICByZXR1cm4gY29udGFpbmVyXG4gIH1cblxuICBwcml2YXRlIHVuc3RhYmxlUmVuZGVyTm9Qb3J0YWwoKSB7XG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wc1xuICAgIFJlYWN0RE9NLnVuc3RhYmxlX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyKFxuICAgICAgdGhpcyxcbiAgICAgIDxkaXY+e2NoaWxkcmVufTwvZGl2PixcbiAgICAgIHRoaXMucG9ydGFsRWxlbWVudFxuICAgIClcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoi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
;