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>

177 lines 24 kB
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); } 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); } import * as React from "react"; import TestRenderer from "react-test-renderer"; import { act } from "react-dom/test-utils"; import { mount } from "enzyme"; import TimePicker from ".."; var TimePickerTest = function (_React$Component) { function TimePickerTest() { var _this; _classCallCheck(this, TimePickerTest); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _callSuper(this, TimePickerTest, [].concat(args)); _this.state = { value: "09:00" }; return _this; } _inherits(TimePickerTest, _React$Component); return _createClass(TimePickerTest, [{ key: "render", value: function render() { var _this2 = this; var value = this.state.value; return React.createElement("div", null, React.createElement(TimePicker, { closeOnSelect: true, value: value, onChange: function onChange(val) { return _this2.setState({ value: val }); }, minTime: "08:40", maxTime: "09:20", ref: function ref(node) { if (node) { _this2.picker = node; } return null; } })); } }]); }(React.Component); function timeout(ms) { return function (done) { setTimeout(done, ms); }; } describe("TimePicker", function () { beforeAll(function () { jest.useFakeTimers(); }); afterAll(function () { jest.useRealTimers(); }); it("是否正确渲染", function () { var wrapper = TestRenderer.create(React.createElement(TimePicker, null)); expect(wrapper).toMatchSnapshot(); }); it("各种情况快照核对", function () { var wrapper0 = TestRenderer.create(React.createElement(TimePicker, { size: "mini", theme: "light", onlyHour: true, disabled: true })); expect(wrapper0).toMatchSnapshot(); }); it("输入事件", function () { var wrapper = mount(React.createElement(TimePicker, null)); var input = wrapper.find("input"); input.simulate("focus"); expect(wrapper.find("Popover").props().visible).toEqual(true); input.simulate("change", { target: { value: " " } }); input.simulate("change", { target: { value: "16:07" } }); expect(wrapper.find("Input").props().value).toEqual("16:07"); input.simulate("keydown", { keyCode: 13 }); expect(wrapper.find("Popover").props().visible).toEqual(false); }); it("点击事件", function () { var wrapper = mount(React.createElement(TimePickerTest, null)); expect(wrapper.find("Popover").props().visible).toEqual(false); wrapper.find("input").simulate("focus"); expect(wrapper.find("Popover").props().visible).toEqual(true); act(function () { wrapper.find(".adui-time-item").at(0).simulate("click"); jest.advanceTimersByTime(50); wrapper.update(); expect(wrapper.find("Input").props().value).toEqual("08:40"); wrapper.find(".adui-time-item").at(42).simulate("click"); wrapper.update(); jest.advanceTimersByTime(50); expect(wrapper.find("Input").props().value).toEqual("08:40"); wrapper.find("input").simulate("change", { target: { value: "07:40" } }); wrapper.find("input").simulate("change", { target: { value: "08:4" } }); wrapper.update(); expect(wrapper.find("Input").props().value).toEqual("08:40"); }); }); it("内部驱动", function () { var wrapper = mount(React.createElement(TimePicker, { defaultValue: "09:20" })); var input = wrapper.find("input"); input.simulate("focus"); expect(wrapper.find("Popover").props().visible).toEqual(true); wrapper.find(".adui-time-item").at(0).simulate("click"); expect(wrapper.find("Input").props().value).toEqual("00:20"); }); it("外部控制", function () { var wrapper = mount(React.createElement(TimePicker, { value: "09:00", onlyHour: true })); var input = wrapper.find("input"); input.simulate("focus"); expect(wrapper.find("Popover").props().visible).toEqual(true); wrapper.find(".adui-time-item").at(0).simulate("click"); expect(wrapper.find("Input").props().value).toEqual("09:00"); }); it("测试禁用", function () { var wrapper = mount(React.createElement(TimePicker, { disabled: true })); var input = wrapper.find("input"); input.simulate("click"); expect(wrapper.find("Popover").props().visible).toEqual(false); }); it("测试最大时间和最小时间", function () { var wrapper = mount(React.createElement(TimePicker, { minTime: "09:00", maxTime: "09:20", defaultValue: "09:10" })); var input = wrapper.find("input"); input.simulate("change", { target: { value: "09:30" } }); input.simulate("focus"); expect(wrapper.find("Popover").props().visible).toEqual(true); }); }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlRlc3RSZW5kZXJlciIsImFjdCIsIm1vdW50IiwiVGltZVBpY2tlciIsIlRpbWVQaWNrZXJUZXN0IiwiX1JlYWN0JENvbXBvbmVudCIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJfY2FsbFN1cGVyIiwiY29uY2F0Iiwic3RhdGUiLCJ2YWx1ZSIsIl9pbmhlcml0cyIsIl9jcmVhdGVDbGFzcyIsImtleSIsInJlbmRlciIsIl90aGlzMiIsImNyZWF0ZUVsZW1lbnQiLCJjbG9zZU9uU2VsZWN0Iiwib25DaGFuZ2UiLCJ2YWwiLCJzZXRTdGF0ZSIsIm1pblRpbWUiLCJtYXhUaW1lIiwicmVmIiwibm9kZSIsInBpY2tlciIsIkNvbXBvbmVudCIsInRpbWVvdXQiLCJtcyIsImRvbmUiLCJzZXRUaW1lb3V0IiwiZGVzY3JpYmUiLCJiZWZvcmVBbGwiLCJqZXN0IiwidXNlRmFrZVRpbWVycyIsImFmdGVyQWxsIiwidXNlUmVhbFRpbWVycyIsIml0Iiwid3JhcHBlciIsImNyZWF0ZSIsImV4cGVjdCIsInRvTWF0Y2hTbmFwc2hvdCIsIndyYXBwZXIwIiwic2l6ZSIsInRoZW1lIiwib25seUhvdXIiLCJkaXNhYmxlZCIsImlucHV0IiwiZmluZCIsInNpbXVsYXRlIiwicHJvcHMiLCJ2aXNpYmxlIiwidG9FcXVhbCIsInRhcmdldCIsImtleUNvZGUiLCJhdCIsImFkdmFuY2VUaW1lcnNCeVRpbWUiLCJ1cGRhdGUiLCJkZWZhdWx0VmFsdWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9jb21wb25lbnRzL3RpbWUtcGlja2VyL19fdGVzdHNfXy9pbmRleC50ZXN0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtbm9jaGVja1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBUZXN0UmVuZGVyZXIgZnJvbSBcInJlYWN0LXRlc3QtcmVuZGVyZXJcIlxuaW1wb3J0IHsgYWN0IH0gZnJvbSBcInJlYWN0LWRvbS90ZXN0LXV0aWxzXCJcbmltcG9ydCB7IG1vdW50IH0gZnJvbSBcImVuenltZVwiXG5pbXBvcnQgYXN5bmMgZnJvbSBcImFzeW5jXCJcbmltcG9ydCBUaW1lUGlja2VyIGZyb20gXCIuLlwiXG5cbmNsYXNzIFRpbWVQaWNrZXJUZXN0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGUgPSB7XG4gICAgdmFsdWU6IFwiMDk6MDBcIixcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnN0YXRlXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUaW1lUGlja2VyXG4gICAgICAgICAgY2xvc2VPblNlbGVjdFxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBvbkNoYW5nZT17KHZhbCkgPT4gdGhpcy5zZXRTdGF0ZSh7IHZhbHVlOiB2YWwgfSl9XG4gICAgICAgICAgbWluVGltZT1cIjA4OjQwXCJcbiAgICAgICAgICBtYXhUaW1lPVwiMDk6MjBcIlxuICAgICAgICAgIHJlZj17KG5vZGUpID0+IHtcbiAgICAgICAgICAgIGlmIChub2RlKSB7XG4gICAgICAgICAgICAgIHRoaXMucGlja2VyID0gbm9kZVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG59XG5cbmZ1bmN0aW9uIHRpbWVvdXQobXM6IG51bWJlcikge1xuICByZXR1cm4gKGRvbmU6ICgpID0+IHZvaWQpID0+IHtcbiAgICBzZXRUaW1lb3V0KGRvbmUsIG1zKVxuICB9XG59XG5cbmRlc2NyaWJlKFwiVGltZVBpY2tlclwiLCAoKSA9PiB7XG4gIGJlZm9yZUFsbCgoKSA9PiB7XG4gICAgamVzdC51c2VGYWtlVGltZXJzKClcbiAgfSlcblxuICBhZnRlckFsbCgoKSA9PiB7XG4gICAgamVzdC51c2VSZWFsVGltZXJzKClcbiAgfSlcblxuICBpdChcIuaYr+WQpuato+ehrua4suafk1wiLCAoKSA9PiB7XG4gICAgY29uc3Qgd3JhcHBlciA9IFRlc3RSZW5kZXJlci5jcmVhdGUoPFRpbWVQaWNrZXIgLz4pXG4gICAgZXhwZWN0KHdyYXBwZXIpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG5cbiAgaXQoXCLlkITnp43mg4XlhrXlv6vnhafmoLjlr7lcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHdyYXBwZXIwID0gVGVzdFJlbmRlcmVyLmNyZWF0ZShcbiAgICAgIDxUaW1lUGlja2VyIHNpemU9XCJtaW5pXCIgdGhlbWU9XCJsaWdodFwiIG9ubHlIb3VyIGRpc2FibGVkIC8+XG4gICAgKVxuICAgIGV4cGVjdCh3cmFwcGVyMCkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICBpdChcIui+k+WFpeS6i+S7tlwiLCAoKSA9PiB7XG4gICAgY29uc3Qgd3JhcHBlciA9IG1vdW50KDxUaW1lUGlja2VyIC8+KVxuICAgIGNvbnN0IGlucHV0ID0gd3JhcHBlci5maW5kKFwiaW5wdXRcIilcbiAgICBpbnB1dC5zaW11bGF0ZShcImZvY3VzXCIpXG4gICAgZXhwZWN0KHdyYXBwZXIuZmluZChcIlBvcG92ZXJcIikucHJvcHMoKS52aXNpYmxlKS50b0VxdWFsKHRydWUpXG4gICAgaW5wdXQuc2ltdWxhdGUoXCJjaGFuZ2VcIiwgeyB0YXJnZXQ6IHsgdmFsdWU6IFwiIFwiIH0gfSlcbiAgICBpbnB1dC5zaW11bGF0ZShcImNoYW5nZVwiLCB7IHRhcmdldDogeyB2YWx1ZTogXCIxNjowN1wiIH0gfSlcbiAgICBleHBlY3Qod3JhcHBlci5maW5kKFwiSW5wdXRcIikucHJvcHMoKS52YWx1ZSkudG9FcXVhbChcIjE2OjA3XCIpXG4gICAgaW5wdXQuc2ltdWxhdGUoXCJrZXlkb3duXCIsIHsga2V5Q29kZTogMTMgfSlcbiAgICBleHBlY3Qod3JhcHBlci5maW5kKFwiUG9wb3ZlclwiKS5wcm9wcygpLnZpc2libGUpLnRvRXF1YWwoZmFsc2UpXG4gIH0pXG5cbiAgaXQoXCLngrnlh7vkuovku7ZcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHdyYXBwZXIgPSBtb3VudCg8VGltZVBpY2tlclRlc3QgLz4pXG5cbiAgICBleHBlY3Qod3JhcHBlci5maW5kKFwiUG9wb3ZlclwiKS5wcm9wcygpLnZpc2libGUpLnRvRXF1YWwoZmFsc2UpXG5cbiAgICB3cmFwcGVyLmZpbmQoXCJpbnB1dFwiKS5zaW11bGF0ZShcImZvY3VzXCIpXG4gICAgZXhwZWN0KHdyYXBwZXIuZmluZChcIlBvcG92ZXJcIikucHJvcHMoKS52aXNpYmxlKS50b0VxdWFsKHRydWUpXG5cbiAgICBhY3QoKCkgPT4ge1xuICAgICAgd3JhcHBlci5maW5kKFwiLmFkdWktdGltZS1pdGVtXCIpLmF0KDApLnNpbXVsYXRlKFwiY2xpY2tcIilcbiAgICAgIGplc3QuYWR2YW5jZVRpbWVyc0J5VGltZSg1MClcbiAgICAgIHdyYXBwZXIudXBkYXRlKClcbiAgICAgIGV4cGVjdCh3cmFwcGVyLmZpbmQoXCJJbnB1dFwiKS5wcm9wcygpLnZhbHVlKS50b0VxdWFsKFwiMDg6NDBcIilcblxuICAgICAgd3JhcHBlci5maW5kKFwiLmFkdWktdGltZS1pdGVtXCIpLmF0KDQyKS5zaW11bGF0ZShcImNsaWNrXCIpXG4gICAgICB3cmFwcGVyLnVwZGF0ZSgpXG4gICAgICBqZXN0LmFkdmFuY2VUaW1lcnNCeVRpbWUoNTApXG4gICAgICBleHBlY3Qod3JhcHBlci5maW5kKFwiSW5wdXRcIikucHJvcHMoKS52YWx1ZSkudG9FcXVhbChcIjA4OjQwXCIpXG5cbiAgICAgIHdyYXBwZXIuZmluZChcImlucHV0XCIpLnNpbXVsYXRlKFwiY2hhbmdlXCIsIHsgdGFyZ2V0OiB7IHZhbHVlOiBcIjA3OjQwXCIgfSB9KVxuICAgICAgd3JhcHBlci5maW5kKFwiaW5wdXRcIikuc2ltdWxhdGUoXCJjaGFuZ2VcIiwgeyB0YXJnZXQ6IHsgdmFsdWU6IFwiMDg6NFwiIH0gfSlcbiAgICAgIHdyYXBwZXIudXBkYXRlKClcbiAgICAgIGV4cGVjdCh3cmFwcGVyLmZpbmQoXCJJbnB1dFwiKS5wcm9wcygpLnZhbHVlKS50b0VxdWFsKFwiMDg6NDBcIilcbiAgICB9KVxuXG4gICAgLy8gYWN0KCgpID0+IHtcbiAgICAvLyAgIHdyYXBwZXJcbiAgICAvLyAgICAgLmZpbmQoXCIuYWR1aS10aW1lLWl0ZW1cIilcbiAgICAvLyAgICAgLmF0KDEpXG4gICAgLy8gICAgIC5zaW11bGF0ZShcImNsaWNrXCIpXG4gICAgLy8gICB3cmFwcGVyLnVwZGF0ZSgpXG4gICAgLy8gICBqZXN0LmFkdmFuY2VUaW1lcnNCeVRpbWUoMzUwKVxuICAgIC8vICAgZXhwZWN0KHdyYXBwZXIuZmluZChcIklucHV0XCIpLnByb3BzKCkudmFsdWUpLnRvRXF1YWwoXCIwOToyMFwiKVxuICAgIC8vICAgZG9uZSgpXG4gICAgLy8gfSlcblxuICAgIC8vIGFjdCgoKSA9PiB7XG4gICAgLy8gICB3cmFwcGVyXG4gICAgLy8gICAgIC5maW5kKFwiLmFkdWktdGltZS1pdGVtXCIpXG4gICAgLy8gICAgIC5hdCgxKVxuICAgIC8vICAgICAuc2ltdWxhdGUoXCJjbGlja1wiKVxuICAgIC8vICAgd3JhcHBlci51cGRhdGUoKVxuICAgIC8vICAgZXhwZWN0KHdyYXBwZXIuZmluZChcIklucHV0XCIpLnByb3BzKCkudmFsdWUpLnRvRXF1YWwoXCIwOToyMFwiKVxuICAgIC8vIH0pXG5cbiAgICAvLyBhY3QoKCkgPT4ge1xuICAgIC8vICAgd3JhcHBlclxuICAgIC8vICAgICAuZmluZChcIi5hZHVpLXRpbWUtaXRlbVwiKVxuICAgIC8vICAgICAuYXQoMClcbiAgICAvLyAgICAgLnNpbXVsYXRlKFwiY2xpY2tcIilcbiAgICAvLyAgIHdyYXBwZXIudXBkYXRlKClcbiAgICAvLyAgIGV4cGVjdCh3cmFwcGVyLmZpbmQoXCJJbnB1dFwiKS5wcm9wcygpLnZhbHVlKS50b0VxdWFsKFwiMDg6NDBcIilcbiAgICAvLyB9KVxuICB9KVxuXG4gIGl0KFwi5YaF6YOo6amx5YqoXCIsICgpID0+IHtcbiAgICBjb25zdCB3cmFwcGVyID0gbW91bnQoPFRpbWVQaWNrZXIgZGVmYXVsdFZhbHVlPVwiMDk6MjBcIiAvPilcbiAgICBjb25zdCBpbnB1dCA9IHdyYXBwZXIuZmluZChcImlucHV0XCIpXG4gICAgaW5wdXQuc2ltdWxhdGUoXCJmb2N1c1wiKVxuICAgIGV4cGVjdCh3cmFwcGVyLmZpbmQoXCJQb3BvdmVyXCIpLnByb3BzKCkudmlzaWJsZSkudG9FcXVhbCh0cnVlKVxuICAgIHdyYXBwZXIuZmluZChcIi5hZHVpLXRpbWUtaXRlbVwiKS5hdCgwKS5zaW11bGF0ZShcImNsaWNrXCIpXG4gICAgZXhwZWN0KHdyYXBwZXIuZmluZChcIklucHV0XCIpLnByb3BzKCkudmFsdWUpLnRvRXF1YWwoXCIwMDoyMFwiKVxuICB9KVxuXG4gIGl0KFwi5aSW6YOo5o6n5Yi2XCIsICgpID0+IHtcbiAgICBjb25zdCB3cmFwcGVyID0gbW91bnQoPFRpbWVQaWNrZXIgdmFsdWU9XCIwOTowMFwiIG9ubHlIb3VyIC8+KVxuICAgIGNvbnN0IGlucHV0ID0gd3JhcHBlci5maW5kKFwiaW5wdXRcIilcbiAgICBpbnB1dC5zaW11bGF0ZShcImZvY3VzXCIpXG4gICAgZXhwZWN0KHdyYXBwZXIuZmluZChcIlBvcG92ZXJcIikucHJvcHMoKS52aXNpYmxlKS50b0VxdWFsKHRydWUpXG4gICAgd3JhcHBlci5maW5kKFwiLmFkdWktdGltZS1pdGVtXCIpLmF0KDApLnNpbXVsYXRlKFwiY2xpY2tcIilcbiAgICBleHBlY3Qod3JhcHBlci5maW5kKFwiSW5wdXRcIikucHJvcHMoKS52YWx1ZSkudG9FcXVhbChcIjA5OjAwXCIpXG4gIH0pXG5cbiAgaXQoXCLmtYvor5XnpoHnlKhcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHdyYXBwZXIgPSBtb3VudCg8VGltZVBpY2tlciBkaXNhYmxlZCAvPilcbiAgICBjb25zdCBpbnB1dCA9IHdyYXBwZXIuZmluZChcImlucHV0XCIpXG4gICAgaW5wdXQuc2ltdWxhdGUoXCJjbGlja1wiKVxuICAgIGV4cGVjdCh3cmFwcGVyLmZpbmQoXCJQb3BvdmVyXCIpLnByb3BzKCkudmlzaWJsZSkudG9FcXVhbChmYWxzZSlcbiAgfSlcblxuICBpdChcIua1i+ivleacgOWkp+aXtumXtOWSjOacgOWwj+aXtumXtFwiLCAoKSA9PiB7XG4gICAgY29uc3Qgd3JhcHBlciA9IG1vdW50KFxuICAgICAgPFRpbWVQaWNrZXIgbWluVGltZT1cIjA5OjAwXCIgbWF4VGltZT1cIjA5OjIwXCIgZGVmYXVsdFZhbHVlPVwiMDk6MTBcIiAvPlxuICAgIClcbiAgICBjb25zdCBpbnB1dCA9IHdyYXBwZXIuZmluZChcImlucHV0XCIpXG4gICAgaW5wdXQuc2ltdWxhdGUoXCJjaGFuZ2VcIiwgeyB0YXJnZXQ6IHsgdmFsdWU6IFwiMDk6MzBcIiB9IH0pXG4gICAgaW5wdXQuc2ltdWxhdGUoXCJmb2N1c1wiKVxuICAgIGV4cGVjdCh3cmFwcGVyLmZpbmQoXCJQb3BvdmVyXCIpLnByb3BzKCkudmlzaWJsZSkudG9FcXVhbCh0cnVlKVxuICB9KVxufSlcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUNBLE9BQU8sS0FBS0EsS0FBSyxNQUFNLE9BQU87QUFDOUIsT0FBT0MsWUFBWSxNQUFNLHFCQUFxQjtBQUM5QyxTQUFTQyxHQUFHLFFBQVEsc0JBQXNCO0FBQzFDLFNBQVNDLEtBQUssUUFBUSxRQUFRO0FBRTlCLE9BQU9DLFVBQVUsTUFBTSxJQUFJO0FBQUEsSUFFckJDLGNBQWMsYUFBQUMsZ0JBQUE7RUFBQSxTQUFBRCxlQUFBO0lBQUEsSUFBQUUsS0FBQTtJQUFBQyxlQUFBLE9BQUFILGNBQUE7SUFBQSxTQUFBSSxJQUFBLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxFQUFBQyxJQUFBLE9BQUFDLEtBQUEsQ0FBQUosSUFBQSxHQUFBSyxJQUFBLE1BQUFBLElBQUEsR0FBQUwsSUFBQSxFQUFBSyxJQUFBO01BQUFGLElBQUEsQ0FBQUUsSUFBQSxJQUFBSixTQUFBLENBQUFJ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