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>
113 lines (112 loc) • 22.4 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); }
var _react = _interopRequireWildcard(require("react"));
var _enzyme = require("enzyme");
var _reactTestRenderer = _interopRequireDefault(require("react-test-renderer"));
var sinon = _interopRequireWildcard(require("sinon"));
var _ = _interopRequireDefault(require(".."));
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 _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
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."); }
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 _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; }
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; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
window.ResizeObserver = window.ResizeObserver || jest.fn().mockImplementation(function () {
return {
disconnect: jest.fn(),
observe: jest.fn(),
unobserve: jest.fn()
};
});
var Column = _["default"].Column;
var filters = [{
text: "朋友圈广告",
value: "1"
}, {
text: "公众号广告",
value: "2"
}];
var FilterMounter = function FilterMounter() {
var _useState = (0, _react.useState)(null),
_useState2 = _slicedToArray(_useState, 2),
filteredValue = _useState2[0],
set = _useState2[1];
return _react["default"].createElement(_["default"], {
dataSource: [{
filter: "filter"
}]
}, _react["default"].createElement(Column, {
title: "\u7B5B\u9009",
dataIndex: "filter",
filters: filters,
filteredValue: filteredValue,
onFilter: function onFilter(argFilteredValue) {
return set(argFilteredValue);
}
}));
};
describe("筛选功能", function () {
beforeEach(function () {
jest.useFakeTimers();
});
afterEach(function () {
jest.useRealTimers();
});
it("onFilter 不能与 onSort 共用", function () {
var stub = sinon.stub(console, "error");
(0, _enzyme.render)(_react["default"].createElement(_["default"], null, _react["default"].createElement(_["default"].Column, {
title: "title",
onFilter: function onFilter() {},
onSort: function onSort() {}
})));
expect(stub.calledOnce).toEqual(true);
stub.restore();
});
it("是否正确渲染", function () {
var onFilter = jest.fn();
var wrapper = _reactTestRenderer["default"].create(_react["default"].createElement(_["default"], {
dataSource: [{
filter: "filter"
}]
}, _react["default"].createElement(Column, {
title: "\u7B5B\u9009",
dataIndex: "filter",
filters: filters,
onFilter: onFilter
})));
expect(wrapper).toMatchSnapshot();
});
it("是否能够内部驱动", function () {
var onFilter = jest.fn();
var wrapper = (0, _enzyme.mount)(_react["default"].createElement(_["default"], {
dataSource: [{
filter: "filter"
}]
}, _react["default"].createElement(Column, {
title: "\u7B5B\u9009",
dataIndex: "filter",
filters: filters,
onFilter: onFilter
})));
var th = wrapper.find("[role='columnheader']").at(0);
th.simulate("click");
var dropdownWrapper = (0, _enzyme.mount)(wrapper.find("Trigger").instance().getComponent());
dropdownWrapper.find("label").at(1).simulate("click");
expect(onFilter).toHaveBeenCalledWith(["1"]);
dropdownWrapper.find("label").at(2).simulate("click");
expect(onFilter).toHaveBeenCalledWith(["2"]);
dropdownWrapper.find("label").at(0).simulate("click");
});
it("是否能够外部控制", function () {
var wrapper = (0, _enzyme.mount)(_react["default"].createElement(FilterMounter, null));
var th = wrapper.find("[role='columnheader']").at(0);
th.simulate("click");
var dropdownWrapper = (0, _enzyme.mount)(wrapper.find("Trigger").instance().getComponent());
dropdownWrapper.find("label").at(0).simulate("click");
expect(wrapper.find(".adui-table-filter").at(0).props()["data-value"]).toEqual(["all"]);
});
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfZW56eW1lIiwiX3JlYWN0VGVzdFJlbmRlcmVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInNpbm9uIiwiXyIsImUiLCJfX2VzTW9kdWxlIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiV2Vha01hcCIsInIiLCJ0IiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9zbGljZWRUb0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIlR5cGVFcnJvciIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJsZW5ndGgiLCJsIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJmIiwibyIsIm5leHQiLCJkb25lIiwicHVzaCIsInZhbHVlIiwiaXNBcnJheSIsIndpbmRvdyIsIlJlc2l6ZU9ic2VydmVyIiwiamVzdCIsImZuIiwibW9ja0ltcGxlbWVudGF0aW9uIiwiZGlzY29ubmVjdCIsIm9ic2VydmUiLCJ1bm9ic2VydmUiLCJDb2x1bW4iLCJUYWJsZSIsImZpbHRlcnMiLCJ0ZXh0IiwiRmlsdGVyTW91bnRlciIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsImZpbHRlcmVkVmFsdWUiLCJjcmVhdGVFbGVtZW50IiwiZGF0YVNvdXJjZSIsImZpbHRlciIsInRpdGxlIiwiZGF0YUluZGV4Iiwib25GaWx0ZXIiLCJhcmdGaWx0ZXJlZFZhbHVlIiwiZGVzY3JpYmUiLCJiZWZvcmVFYWNoIiwidXNlRmFrZVRpbWVycyIsImFmdGVyRWFjaCIsInVzZVJlYWxUaW1lcnMiLCJpdCIsInN0dWIiLCJjb25zb2xlIiwicmVuZGVyIiwib25Tb3J0IiwiZXhwZWN0IiwiY2FsbGVkT25jZSIsInRvRXF1YWwiLCJyZXN0b3JlIiwid3JhcHBlciIsIlRlc3RSZW5kZXJlciIsImNyZWF0ZSIsInRvTWF0Y2hTbmFwc2hvdCIsIm1vdW50IiwidGgiLCJmaW5kIiwiYXQiLCJzaW11bGF0ZSIsImRyb3Bkb3duV3JhcHBlciIsImluc3RhbmNlIiwiZ2V0Q29tcG9uZW50IiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJwcm9wcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbXBvbmVudHMvdGFibGUvX190ZXN0c19fL2ZpbHRlci50ZXN0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgcmVuZGVyLCBtb3VudCB9IGZyb20gXCJlbnp5bWVcIlxuaW1wb3J0IFRlc3RSZW5kZXJlciBmcm9tIFwicmVhY3QtdGVzdC1yZW5kZXJlclwiXG5pbXBvcnQgKiBhcyBzaW5vbiBmcm9tIFwic2lub25cIlxuaW1wb3J0IFRhYmxlIGZyb20gXCIuLlwiXG5cbndpbmRvdy5SZXNpemVPYnNlcnZlciA9XG4gIHdpbmRvdy5SZXNpemVPYnNlcnZlciB8fFxuICBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+ICh7XG4gICAgZGlzY29ubmVjdDogamVzdC5mbigpLFxuICAgIG9ic2VydmU6IGplc3QuZm4oKSxcbiAgICB1bm9ic2VydmU6IGplc3QuZm4oKSxcbiAgfSkpXG5cbmNvbnN0IHsgQ29sdW1uIH0gPSBUYWJsZVxuXG5jb25zdCBmaWx0ZXJzID0gW1xuICB7XG4gICAgdGV4dDogXCLmnIvlj4vlnIjlub/lkYpcIixcbiAgICB2YWx1ZTogXCIxXCIsXG4gIH0sXG4gIHtcbiAgICB0ZXh0OiBcIuWFrOS8l+WPt+W5v+WRilwiLFxuICAgIHZhbHVlOiBcIjJcIixcbiAgfSxcbl1cblxuY29uc3QgRmlsdGVyTW91bnRlciA9ICgpID0+IHtcbiAgY29uc3QgW2ZpbHRlcmVkVmFsdWUsIHNldF0gPSB1c2VTdGF0ZTxhbnk+KG51bGwpXG5cbiAgcmV0dXJuIChcbiAgICA8VGFibGVcbiAgICAgIGRhdGFTb3VyY2U9e1tcbiAgICAgICAge1xuICAgICAgICAgIGZpbHRlcjogXCJmaWx0ZXJcIixcbiAgICAgICAgfSxcbiAgICAgIF19XG4gICAgPlxuICAgICAgPENvbHVtblxuICAgICAgICB0aXRsZT1cIuetm+mAiVwiXG4gICAgICAgIGRhdGFJbmRleD1cImZpbHRlclwiXG4gICAgICAgIGZpbHRlcnM9e2ZpbHRlcnN9XG4gICAgICAgIGZpbHRlcmVkVmFsdWU9e2ZpbHRlcmVkVmFsdWV9XG4gICAgICAgIG9uRmlsdGVyPXsoYXJnRmlsdGVyZWRWYWx1ZSkgPT4gc2V0KGFyZ0ZpbHRlcmVkVmFsdWUpfVxuICAgICAgLz5cbiAgICA8L1RhYmxlPlxuICApXG59XG5cbmRlc2NyaWJlKFwi562b6YCJ5Yqf6IO9XCIsICgpID0+IHtcbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgamVzdC51c2VGYWtlVGltZXJzKClcbiAgfSlcblxuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIGplc3QudXNlUmVhbFRpbWVycygpXG4gIH0pXG5cbiAgLy8gaXQoXCJvbkZpbHRlciBQcm9wIOaYr+WQpuiDvemqjOivgSBmdW5jdGlvblwiLCAoKSA9PiB7XG4gIC8vICAgY29uc3Qgc3R1YiA9IHNpbm9uLnN0dWIoY29uc29sZSwgJ2Vycm9yJylcbiAgLy8gICBjb25zdCB3cmFwcGVyID0gcmVuZGVyKFxuICAvLyAgICAgPFRhYmxlPlxuICAvLyAgICAgICA8VGFibGUuQ29sdW1uXG4gIC8vICAgICAgICAgdGl0bGU9XCJ0aXRsZVwiXG4gIC8vICAgICAgICAgb25GaWx0ZXI9XCJzdHJpbmdcIlxuICAvLyAgICAgICAvPlxuICAvLyAgICAgPC9UYWJsZT5cbiAgLy8gICApXG4gIC8vICAgZXhwZWN0KHN0dWIuY2FsbENvdW50KS50b0JlKDEpXG4gIC8vICAgKGNvbnNvbGUgYXMgSUNvbnNvbGUpLmVycm9yLnJlc3RvcmUoKVxuICAvLyB9KVxuXG4gIGl0KFwib25GaWx0ZXIg5LiN6IO95LiOIG9uU29ydCDlhbHnlKhcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHN0dWIgPSBzaW5vbi5zdHViKGNvbnNvbGUsIFwiZXJyb3JcIilcbiAgICByZW5kZXIoXG4gICAgICA8VGFibGU+XG4gICAgICAgIDxUYWJsZS5Db2x1bW4gdGl0bGU9XCJ0aXRsZVwiIG9uRmlsdGVyPXsoKSA9PiB7fX0gb25Tb3J0PXsoKSA9PiB7fX0gLz5cbiAgICAgIDwvVGFibGU+XG4gICAgKVxuICAgIGV4cGVjdChzdHViLmNhbGxlZE9uY2UpLnRvRXF1YWwodHJ1ZSlcbiAgICBzdHViLnJlc3RvcmUoKVxuICB9KVxuXG4gIGl0KFwi5piv5ZCm5q2j56Gu5riy5p+TXCIsICgpID0+IHtcbiAgICBjb25zdCBvbkZpbHRlciA9IGplc3QuZm4oKVxuICAgIGNvbnN0IHdyYXBwZXIgPSBUZXN0UmVuZGVyZXIuY3JlYXRlKFxuICAgICAgPFRhYmxlXG4gICAgICAgIGRhdGFTb3VyY2U9e1tcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWx0ZXI6IFwiZmlsdGVyXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXX1cbiAgICAgID5cbiAgICAgICAgPENvbHVtblxuICAgICAgICAgIHRpdGxlPVwi562b6YCJXCJcbiAgICAgICAgICBkYXRhSW5kZXg9XCJmaWx0ZXJcIlxuICAgICAgICAgIGZpbHRlcnM9e2ZpbHRlcnN9XG4gICAgICAgICAgb25GaWx0ZXI9e29uRmlsdGVyfVxuICAgICAgICAvPlxuICAgICAgPC9UYWJsZT5cbiAgICApXG4gICAgZXhwZWN0KHdyYXBwZXIpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG5cbiAgaXQoXCLmmK/lkKbog73lpJ/lhoXpg6jpqbHliqhcIiwgKCkgPT4ge1xuICAgIGNvbnN0IG9uRmlsdGVyID0gamVzdC5mbigpXG4gICAgY29uc3Qgd3JhcHBlciA9IG1vdW50KFxuICAgICAgPFRhYmxlXG4gICAgICAgIGRhdGFTb3VyY2U9e1tcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWx0ZXI6IFwiZmlsdGVyXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXX1cbiAgICAgID5cbiAgICAgICAgPENvbHVtblxuICAgICAgICAgIHRpdGxlPVwi562b6YCJXCJcbiAgICAgICAgICBkYXRhSW5kZXg9XCJmaWx0ZXJcIlxuICAgICAgICAgIGZpbHRlcnM9e2ZpbHRlcnN9XG4gICAgICAgICAgb25GaWx0ZXI9e29uRmlsdGVyfVxuICAgICAgICAvPlxuICAgICAgPC9UYWJsZT5cbiAgICApXG4gICAgY29uc3QgdGggPSB3cmFwcGVyLmZpbmQoXCJbcm9sZT0nY29sdW1uaGVhZGVyJ11cIikuYXQoMClcbiAgICB0aC5zaW11bGF0ZShcImNsaWNrXCIpXG4gICAgY29uc3QgZHJvcGRvd25XcmFwcGVyID0gbW91bnQoXG4gICAgICB3cmFwcGVyLmZpbmQoXCJUcmlnZ2VyXCIpLmluc3RhbmNlKCkuZ2V0Q29tcG9uZW50KClcbiAgICApXG4gICAgZHJvcGRvd25XcmFwcGVyLmZpbmQoXCJsYWJlbFwiKS5hdCgxKS5zaW11bGF0ZShcImNsaWNrXCIpXG4gICAgLy8gZXhwZWN0KFxuICAgIC8vICAgd3JhcHBlclxuICAgIC8vICAgICAuZmluZChcIi5hZHVpLXRhYmxlLWZpbHRlclwiKVxuICAgIC8vICAgICAuYXQoMClcbiAgICAvLyAgICAgLnByb3BzKClbXCJkYXRhLXZhbHVlXCJdXG4gICAgLy8gKS50b0VxdWFsKFtcIjFcIl0pXG4gICAgZXhwZWN0KG9uRmlsdGVyKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChbXCIxXCJdKVxuICAgIGRyb3Bkb3duV3JhcHBlci5maW5kKFwibGFiZWxcIikuYXQoMikuc2ltdWxhdGUoXCJjbGlja1wiKVxuICAgIC8vIGV4cGVjdChcbiAgICAvLyAgIHdyYXBwZXJcbiAgICAvLyAgICAgLmZpbmQoXCIuYWR1aS10YWJsZS1maWx0ZXJcIilcbiAgICAvLyAgICAgLmF0KDApXG4gICAgLy8gICAgIC5wcm9wcygpW1wiZGF0YS12YWx1ZVwiXVxuICAgIC8vICkudG9FcXVhbChbXCIyXCJdKVxuICAgIGV4cGVjdChvbkZpbHRlcikudG9IYXZlQmVlbkNhbGxlZFdpdGgoW1wiMlwiXSlcbiAgICAvKipcbiAgICAgKiDkuI3nn6XpgZPkuLrku4DkuYjov5vkuI3liLDov5nkuKrpgLvovpHph4zvvIzlr7zoh7QgVGFibGVGaWx0ZXIg55qEIFN0YXRlbWVudHMg5LiN6IO9IDEwMCVcbiAgICAgKiBpZiAoZmlsdGVyZWRWYWx1ZSA9PT0gXCJhbGxcIikge1xuICAgICAqICAgICAgb25GaWx0ZXIoW10pXG4gICAgICogfVxuICAgICAqL1xuICAgIGRyb3Bkb3duV3JhcHBlci5maW5kKFwibGFiZWxcIikuYXQoMCkuc2ltdWxhdGUoXCJjbGlja1wiKVxuICAgIC8vIGplc3QucnVuQWxsVGltZXJzKClcbiAgfSlcblxuICBpdChcIuaYr+WQpuiDveWkn+WklumDqOaOp+WItlwiLCAoKSA9PiB7XG4gICAgY29uc3Qgd3JhcHBlciA9IG1vdW50KDxGaWx0ZXJNb3VudGVyIC8+KVxuICAgIGNvbnN0IHRoID0gd3JhcHBlci5maW5kKFwiW3JvbGU9J2NvbHVtbmhlYWRlciddXCIpLmF0KDApXG4gICAgdGguc2ltdWxhdGUoXCJjbGlja1wiKVxuICAgIGNvbnN0IGRyb3Bkb3duV3JhcHBlciA9IG1vdW50KFxuICAgICAgd3JhcHBlci5maW5kKFwiVHJpZ2dlclwiKS5pbnN0YW5jZSgpLmdldENvbXBvbmVudCgpXG4gICAgKVxuICAgIGRyb3Bkb3duV3JhcHBlci5maW5kKFwibGFiZWxcIikuYXQoMCkuc2ltdWxhdGUoXCJjbGlja1wiKVxuICAgIGV4cGVjdChcbiAgICAgIHdyYXBwZXIuZmluZChcIi5hZHVpLXRhYmxlLWZpbHRlclwiKS5hdCgwKS5wcm9wcygpW1wiZGF0YS12YWx1ZVwiXVxuICAgICkudG9FcXVhbChbXCJhbGxcIl0pXG4gICAgLy8gZHJvcGRvd25XcmFwcGVyXG4gICAgLy8gICAuZmluZChcImxhYmVsXCIpXG4gICAgLy8gICAuYXQoMilcbiAgICAvLyAgIC5zaW11bGF0ZShcImNsaWNrXCIpXG4gICAgLy8gZXhwZWN0KFxuICAgIC8vICAgd3JhcHBlclxuICAgIC8vICAgICAuZmluZChcIi5hZHVpLXRhYmxlLWZpbHRlclwiKVxuICAgIC8vICAgICAuYXQoMClcbiAgICAvLyAgICAgLnByb3BzKClbXCJkYXRhLXZhbHVlXCJdXG4gICAgLy8gKS50b0VxdWFsKFtcIjJcIl0pXG4gIH0pXG59KVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxrQkFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksS0FBQSxHQUFBTCx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssQ0FBQSxHQUFBRixzQkFBQSxDQUFBSCxPQUFBO0FBQXNCLFNBQUFHLHVCQUFBRyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsZ0JBQUFBLENBQUE7QUFBQSxTQUFBRSx5QkFBQUYsQ0FBQSw2QkFBQUcsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRCx3QkFBQSxZQUFBQSx5QkFBQUYsQ0FBQSxXQUFBQSxDQUFBLEdBQUFLLENBQUEsR0FBQUQsQ0FBQSxLQUFBSixDQUFBO0FBQUEsU0FBQVAsd0JBQUFPLENBQUEsRUFBQUksQ0FBQSxTQUFBQSxDQUFBLElBQUFKLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLFNBQUFELENBQUEsZUFBQUEsQ0FBQSxnQkFBQU0sT0FBQSxDQUFBTixDQUFBLDBCQUFBQSxDQUFB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
;