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>
240 lines (201 loc) • 27.7 kB
JavaScript
var _excluded = ["align", "className", "current", "defaultCurrent", "disabled", "hideWhenSinglePage", "onChange", "pageSize", "showButtonJumper", "showInputJumper", "size", "theme", "total"];
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _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(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
import React, { useContext, useState } from "react";
import PropTypes from "prop-types";
import classNames from "classnames";
import warning from "../_util/warning";
import { ConfigContext, getComputedSize } from "../config-provider";
import Button from "../button";
import Input from "../input";
import "./style";
var noop = function noop() {};
var prefix = "adui-pagination";
var Pagination = function Pagination(_ref) {
var align = _ref.align,
className = _ref.className,
currentProp = _ref.current,
defaultCurrent = _ref.defaultCurrent,
disabled = _ref.disabled,
hideWhenSinglePage = _ref.hideWhenSinglePage,
onChange = _ref.onChange,
pageSize = _ref.pageSize,
showButtonJumper = _ref.showButtonJumper,
showInputJumper = _ref.showInputJumper,
sizeProp = _ref.size,
theme = _ref.theme,
total = _ref.total,
otherProps = _objectWithoutProperties(_ref, _excluded);
var _useState = useState((currentProp !== null ? currentProp : defaultCurrent) || 1),
_useState2 = _slicedToArray(_useState, 2),
current = _useState2[0],
setCurrent = _useState2[1];
var _useState3 = useState(""),
_useState4 = _slicedToArray(_useState3, 2),
inputValue = _useState4[0],
setInputValue = _useState4[1];
if (currentProp !== null && currentProp !== undefined && current !== currentProp) {
setCurrent(currentProp);
}
var _useContext = useContext(ConfigContext),
sizeContext = _useContext.size;
var size = getComputedSize(sizeProp, sizeContext);
var classSet = classNames(className, "".concat(prefix, "-base"), "".concat(prefix, "-").concat(size), _defineProperty({}, "".concat(prefix, "-").concat(align), align));
warning(Number.isInteger(current), "Pagination", "current 值需要是正整数");
warning(!(current < 1 || current > Math.ceil((total || 0) / (pageSize || 10)) && current !== 1), "Pagination", "current \u9700\u8981\u65F6\u5728\u6B63\u786E\u8303\u56F4\u5185\u7684\u6B63\u6574\u6570\uFF0Ctotal: ".concat(total, "\uFF0CpageSize\uFF1A").concat(pageSize));
var pageNumber = 1;
if (total && pageSize) {
pageNumber = Math.max(Math.ceil(total / pageSize), 1);
}
var prevDisabled = current === 1;
var nextDisabled = current === pageNumber;
if (pageNumber === 1 && hideWhenSinglePage) {
return null;
}
var handleJump = function handleJump(type) {
var newPage;
switch (type) {
case "first":
newPage = 1;
break;
case "prev":
newPage = current - 1;
break;
case "next":
newPage = current + 1;
break;
case "last":
if (total && pageSize) {
newPage = Math.max(Math.ceil(total / pageSize), 1);
}
break;
default:
}
if (newPage && pageSize) {
if (currentProp === null) {
setCurrent(newPage);
}
if (onChange) {
onChange(newPage, pageSize);
}
}
};
var handleInputJump = function handleInputJump() {
var parsevalue = parseInt(inputValue, 10);
if (isNaN(parsevalue)) {
return;
}
var value = Math.max(parsevalue, 1);
if (total && pageSize) {
value = Math.min(value, Math.max(Math.ceil(total / pageSize), 1));
}
if (currentProp === null) {
setCurrent(value);
}
if (onChange) {
onChange(value, pageSize);
}
};
return React.createElement("div", _extends({
className: classSet,
"data-current": current
}, otherProps), showButtonJumper && React.createElement(Button, {
disabled: disabled,
style: {
marginRight: "8px"
},
leftIcon: "arrow-left-first",
size: size,
theme: theme,
onClick: function onClick() {
if (!prevDisabled) handleJump("first");
}
}), React.createElement(Button, {
disabled: disabled,
leftIcon: "arrow-left",
size: size,
theme: theme,
onClick: function onClick() {
if (!prevDisabled) handleJump("prev");
}
}), React.createElement("span", {
className: "".concat(prefix, "-text")
}, current, " / ", pageNumber), React.createElement(Button, {
disabled: disabled,
leftIcon: "arrow-right",
size: size,
theme: theme,
onClick: function onClick() {
if (!nextDisabled) handleJump("next");
}
}), showButtonJumper && React.createElement(Button, {
disabled: disabled,
style: {
marginLeft: "8px"
},
leftIcon: "arrow-right-last",
size: size,
theme: theme,
onClick: function onClick() {
if (!nextDisabled) handleJump("last");
}
}), showInputJumper && [React.createElement(Input, {
disabled: disabled,
key: 0,
className: "".concat(prefix, "-input"),
placeholder: "\u9875\u7801",
size: size,
theme: theme,
onChange: function onChange(e) {
return setInputValue(e.target.value);
},
onPressEnter: handleInputJump
}), React.createElement(Button, {
disabled: disabled,
key: 1,
size: size,
theme: theme,
onClick: handleInputJump
}, "\u8DF3\u8F6C")]);
};
Pagination.displayName = "Pagination";
Pagination.propTypes = {
align: PropTypes.oneOf(["left", "center", "right"]),
className: PropTypes.string,
current: PropTypes.number,
defaultCurrent: PropTypes.number,
disabled: PropTypes.bool,
hideWhenSinglePage: PropTypes.bool,
onChange: PropTypes.func,
pageSize: PropTypes.number,
showButtonJumper: PropTypes.bool,
showInputJumper: PropTypes.bool,
size: PropTypes.oneOf(["mini", "small", "medium", "large"]),
theme: PropTypes.oneOf([null, "light"]),
total: PropTypes.number
};
Pagination.defaultProps = {
align: undefined,
className: undefined,
current: null,
defaultCurrent: 1,
disabled: false,
hideWhenSinglePage: true,
onChange: noop,
pageSize: 10,
showButtonJumper: false,
showInputJumper: false,
size: "small",
theme: null,
total: 0
};
export default Pagination;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNvbnRleHQiLCJ1c2VTdGF0ZSIsIlByb3BUeXBlcyIsImNsYXNzTmFtZXMiLCJ3YXJuaW5nIiwiQ29uZmlnQ29udGV4dCIsImdldENvbXB1dGVkU2l6ZSIsIkJ1dHRvbiIsIklucHV0Iiwibm9vcCIsInByZWZpeCIsIlBhZ2luYXRpb24iLCJhbGlnbiIsImNsYXNzTmFtZSIsImN1cnJlbnRQcm9wIiwiY3VycmVudCIsImRlZmF1bHRDdXJyZW50IiwiZGlzYWJsZWQiLCJoaWRlV2hlblNpbmdsZVBhZ2UiLCJvbkNoYW5nZSIsInBhZ2VTaXplIiwic2hvd0J1dHRvbkp1bXBlciIsInNob3dJbnB1dEp1bXBlciIsInNpemVQcm9wIiwic2l6ZSIsInRoZW1lIiwidG90YWwiLCJvdGhlclByb3BzIiwic2V0Q3VycmVudCIsImlucHV0VmFsdWUiLCJzZXRJbnB1dFZhbHVlIiwidW5kZWZpbmVkIiwic2l6ZUNvbnRleHQiLCJjbGFzc1NldCIsIk51bWJlciIsImlzSW50ZWdlciIsIk1hdGgiLCJjZWlsIiwicGFnZU51bWJlciIsIm1heCIsInByZXZEaXNhYmxlZCIsIm5leHREaXNhYmxlZCIsImhhbmRsZUp1bXAiLCJ0eXBlIiwibmV3UGFnZSIsImhhbmRsZUlucHV0SnVtcCIsInBhcnNldmFsdWUiLCJwYXJzZUludCIsImlzTmFOIiwidmFsdWUiLCJtaW4iLCJtYXJnaW5SaWdodCIsIm1hcmdpbkxlZnQiLCJlIiwidGFyZ2V0IiwiZGlzcGxheU5hbWUiLCJwcm9wVHlwZXMiLCJvbmVPZiIsInN0cmluZyIsIm51bWJlciIsImJvb2wiLCJmdW5jIiwiZGVmYXVsdFByb3BzIl0sInNvdXJjZXMiOlsiLi4vLi4vY29tcG9uZW50cy9wYWdpbmF0aW9uL1BhZ2luYXRpb24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDb250ZXh0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcbmltcG9ydCB3YXJuaW5nIGZyb20gXCIuLi9fdXRpbC93YXJuaW5nXCJcbmltcG9ydCB7IENvbmZpZ0NvbnRleHQsIGdldENvbXB1dGVkU2l6ZSB9IGZyb20gXCIuLi9jb25maWctcHJvdmlkZXJcIlxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vYnV0dG9uXCJcbmltcG9ydCBJbnB1dCBmcm9tIFwiLi4vaW5wdXRcIlxuaW1wb3J0IFwiLi9zdHlsZVwiXG5cbmNvbnN0IG5vb3AgPSAoKSA9PiB7fVxuY29uc3QgcHJlZml4ID0gXCJhZHVpLXBhZ2luYXRpb25cIlxuXG5leHBvcnQgaW50ZXJmYWNlIElQYWdpbmF0aW9uUHJvcHMge1xuICBba2V5OiBzdHJpbmddOiBhbnlcbiAgLyoqXG4gICAqIOWvuem9kOaWueW8j1xuICAgKi9cbiAgYWxpZ24/OiBcImxlZnRcIiB8IFwiY2VudGVyXCIgfCBcInJpZ2h0XCJcbiAgLyoqXG4gICAqIOmZhOWKoOexu+WQjVxuICAgKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIC8qKlxuICAgKiDlvZPliY3pobXmlbBcbiAgICovXG4gIGN1cnJlbnQ/OiBudW1iZXIgfCBudWxsXG4gIC8qKlxuICAgKiDpu5jorqTnmoTlvZPliY3pobXmlbBcbiAgICovXG4gIGRlZmF1bHRDdXJyZW50PzogbnVtYmVyXG4gIC8qKlxuICAgKiDmmK/lkKbnpoHnlKhcbiAgICovXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAvKipcbiAgICog5Y+q5pyJ5LiA6aG15pe2IHJldHVybiBudWxsXG4gICAqL1xuICBoaWRlV2hlblNpbmdsZVBhZ2U/OiBib29sZWFuXG4gIC8qKlxuICAgKiDlvZPliY3pobXlj5jljJbml7bnmoQgaGFuZGxlclxuICAgKi9cbiAgb25DaGFuZ2U/OiAobmV3UGFnZTogbnVtYmVyLCBwYWdlU2l6ZT86IG51bWJlcikgPT4gdm9pZFxuICAvKipcbiAgICog6K6+572u5q+P6aG15p2h5pWw77yM6buY6K6kIDEwIOadoVxuICAgKi9cbiAgcGFnZVNpemU/OiBudW1iZXJcbiAgLyoqXG4gICAqIOaYr+WQpuaYvuekuummlumhteWwvumhtei3s+i9rOaMiemSrlxuICAgKi9cbiAgc2hvd0J1dHRvbkp1bXBlcj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIOaYr+WQpuaYvuekuui3s+i9rOi+k+WFpeahhlxuICAgKi9cbiAgc2hvd0lucHV0SnVtcGVyPzogYm9vbGVhblxuICAvKipcbiAgICog6K6+572u5bC65a+4XG4gICAqL1xuICBzaXplPzogXCJtaW5pXCIgfCBcInNtYWxsXCIgfCBcIm1lZGl1bVwiIHwgXCJsYXJnZVwiXG4gIC8qKlxuICAgKiDorr7nva7kuLvpophcbiAgICovXG4gIHRoZW1lPzogbnVsbCB8IFwibGlnaHRcIlxuICAvKipcbiAgICog5pWw5o2u5oC75pWwXG4gICAqL1xuICB0b3RhbD86IG51bWJlclxufVxuXG4vKipcbiAqIOWIhumhteWZqOeUqOS6juWwhuWkp+mHj+WGheWuueS7peWIhumhteW9ouW8j+mXtOmalO+8jOWIh+aNoumAieaLqeafpeeci+OAglxuICovXG5jb25zdCBQYWdpbmF0aW9uOiBSZWFjdC5GQzxJUGFnaW5hdGlvblByb3BzPiA9ICh7XG4gIGFsaWduLFxuICBjbGFzc05hbWUsXG4gIGN1cnJlbnQ6IGN1cnJlbnRQcm9wLFxuICBkZWZhdWx0Q3VycmVudCxcbiAgZGlzYWJsZWQsXG4gIGhpZGVXaGVuU2luZ2xlUGFnZSxcbiAgb25DaGFuZ2UsXG4gIHBhZ2VTaXplLFxuICBzaG93QnV0dG9uSnVtcGVyLFxuICBzaG93SW5wdXRKdW1wZXIsXG4gIHNpemU6IHNpemVQcm9wLFxuICB0aGVtZSxcbiAgdG90YWwsXG4gIC4uLm90aGVyUHJvcHNcbn06IElQYWdpbmF0aW9uUHJvcHMpID0+IHtcbiAgY29uc3QgW2N1cnJlbnQsIHNldEN1cnJlbnRdID0gdXNlU3RhdGU8bnVtYmVyPihcbiAgICAoY3VycmVudFByb3AgIT09IG51bGwgPyBjdXJyZW50UHJvcCA6IGRlZmF1bHRDdXJyZW50KSB8fCAxXG4gIClcbiAgY29uc3QgW2lucHV0VmFsdWUsIHNldElucHV0VmFsdWVdID0gdXNlU3RhdGUoXCJcIilcblxuICAvLyDnm7jlvZPkuo7nlJ/lkb3lkajmnJ8gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzXG4gIGlmIChcbiAgICBjdXJyZW50UHJvcCAhPT0gbnVsbCAmJlxuICAgIGN1cnJlbnRQcm9wICE9PSB1bmRlZmluZWQgJiZcbiAgICBjdXJyZW50ICE9PSBjdXJyZW50UHJvcFxuICApIHtcbiAgICBzZXRDdXJyZW50KGN1cnJlbnRQcm9wKVxuICB9XG5cbiAgY29uc3QgeyBzaXplOiBzaXplQ29udGV4dCB9ID0gdXNlQ29udGV4dChDb25maWdDb250ZXh0KVxuICBjb25zdCBzaXplID0gZ2V0Q29tcHV0ZWRTaXplKHNpemVQcm9wLCBzaXplQ29udGV4dClcblxuICBjb25zdCBjbGFzc1NldCA9IGNsYXNzTmFtZXMoXG4gICAgY2xhc3NOYW1lLFxuICAgIGAke3ByZWZpeH0tYmFzZWAsXG4gICAgYCR7cHJlZml4fS0ke3NpemV9YCxcbiAgICB7XG4gICAgICBbYCR7cHJlZml4fS0ke2FsaWdufWBdOiBhbGlnbixcbiAgICB9XG4gIClcblxuICB3YXJuaW5nKE51bWJlci5pc0ludGVnZXIoY3VycmVudCksIFwiUGFnaW5hdGlvblwiLCBcImN1cnJlbnQg5YC86ZyA6KaB5piv5q2j5pW05pWwXCIpXG5cbiAgd2FybmluZyhcbiAgICAhKFxuICAgICAgY3VycmVudCA8IDEgfHxcbiAgICAgIChjdXJyZW50ID4gTWF0aC5jZWlsKCh0b3RhbCB8fCAwKSAvIChwYWdlU2l6ZSB8fCAxMCkpICYmIGN1cnJlbnQgIT09IDEpXG4gICAgKSxcbiAgICBcIlBhZ2luYXRpb25cIixcbiAgICBgY3VycmVudCDpnIDopoHml7blnKjmraPnoa7ojIPlm7TlhoXnmoTmraPmlbTmlbDvvIx0b3RhbDogJHt0b3RhbH3vvIxwYWdlU2l6Ze+8miR7cGFnZVNpemV9YFxuICApXG5cbiAgbGV0IHBhZ2VOdW1iZXIgPSAxXG4gIGlmICh0b3RhbCAmJiBwYWdlU2l6ZSkge1xuICAgIHBhZ2VOdW1iZXIgPSBNYXRoLm1heChNYXRoLmNlaWwodG90YWwgLyBwYWdlU2l6ZSksIDEpXG4gIH1cbiAgY29uc3QgcHJldkRpc2FibGVkID0gY3VycmVudCA9PT0gMVxuICBjb25zdCBuZXh0RGlzYWJsZWQgPSBjdXJyZW50ID09PSBwYWdlTnVtYmVyXG5cbiAgaWYgKHBhZ2VOdW1iZXIgPT09IDEgJiYgaGlkZVdoZW5TaW5nbGVQYWdlKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUp1bXAgPSAodHlwZTogc3RyaW5nKSA9PiB7XG4gICAgbGV0IG5ld1BhZ2VcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgXCJmaXJzdFwiOlxuICAgICAgICBuZXdQYWdlID0gMVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcInByZXZcIjpcbiAgICAgICAgbmV3UGFnZSA9IGN1cnJlbnQgLSAxXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwibmV4dFwiOlxuICAgICAgICBuZXdQYWdlID0gY3VycmVudCArIDFcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJsYXN0XCI6XG4gICAgICAgIGlmICh0b3RhbCAmJiBwYWdlU2l6ZSkge1xuICAgICAgICAgIG5ld1BhZ2UgPSBNYXRoLm1heChNYXRoLmNlaWwodG90YWwgLyBwYWdlU2l6ZSksIDEpXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGRlZmF1bHQ6XG4gICAgfVxuXG4gICAgaWYgKG5ld1BhZ2UgJiYgcGFnZVNpemUpIHtcbiAgICAgIGlmIChjdXJyZW50UHJvcCA9PT0gbnVsbCkge1xuICAgICAgICBzZXRDdXJyZW50KG5ld1BhZ2UpXG4gICAgICB9XG4gICAgICBpZiAob25DaGFuZ2UpIHtcbiAgICAgICAgb25DaGFuZ2UobmV3UGFnZSwgcGFnZVNpemUpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlSW5wdXRKdW1wID0gKCkgPT4ge1xuICAgIGNvbnN0IHBhcnNldmFsdWUgPSBwYXJzZUludChpbnB1dFZhbHVlLCAxMClcbiAgICBpZiAoaXNOYU4ocGFyc2V2YWx1ZSkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBsZXQgdmFsdWUgPSBNYXRoLm1heChwYXJzZXZhbHVlLCAxKVxuICAgIGlmICh0b3RhbCAmJiBwYWdlU2l6ZSkge1xuICAgICAgdmFsdWUgPSBNYXRoLm1pbih2YWx1ZSwgTWF0aC5tYXgoTWF0aC5jZWlsKHRvdGFsIC8gcGFnZVNpemUpLCAxKSlcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRQcm9wID09PSBudWxsKSB7XG4gICAgICBzZXRDdXJyZW50KHZhbHVlKVxuICAgIH1cbiAgICBpZiAob25DaGFuZ2UpIHtcbiAgICAgIG9uQ2hhbmdlKHZhbHVlLCBwYWdlU2l6ZSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc1NldH0gZGF0YS1jdXJyZW50PXtjdXJyZW50fSB7Li4ub3RoZXJQcm9wc30+XG4gICAgICB7c2hvd0J1dHRvbkp1bXBlciAmJiAoXG4gICAgICAgIDxCdXR0b25cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgc3R5bGU9e3sgbWFyZ2luUmlnaHQ6IFwiOHB4XCIgfX1cbiAgICAgICAgICBsZWZ0SWNvbj1cImFycm93LWxlZnQtZmlyc3RcIlxuICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgdGhlbWU9e3RoZW1lfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmICghcHJldkRpc2FibGVkKSBoYW5kbGVKdW1wKFwiZmlyc3RcIilcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIDxCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBsZWZ0SWNvbj1cImFycm93LWxlZnRcIlxuICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICB0aGVtZT17dGhlbWV9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBpZiAoIXByZXZEaXNhYmxlZCkgaGFuZGxlSnVtcChcInByZXZcIilcbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgICA8c3BhbiBjbGFzc05hbWU9e2Ake3ByZWZpeH0tdGV4dGB9PlxuICAgICAgICB7Y3VycmVudH0gLyB7cGFnZU51bWJlcn1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBsZWZ0SWNvbj1cImFycm93LXJpZ2h0XCJcbiAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgdGhlbWU9e3RoZW1lfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgaWYgKCFuZXh0RGlzYWJsZWQpIGhhbmRsZUp1bXAoXCJuZXh0XCIpXG4gICAgICAgIH19XG4gICAgICAvPlxuICAgICAge3Nob3dCdXR0b25KdW1wZXIgJiYgKFxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHN0eWxlPXt7IG1hcmdpbkxlZnQ6IFwiOHB4XCIgfX1cbiAgICAgICAgICBsZWZ0SWNvbj1cImFycm93LXJpZ2h0LWxhc3RcIlxuICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgdGhlbWU9e3RoZW1lfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmICghbmV4dERpc2FibGVkKSBoYW5kbGVKdW1wKFwibGFzdFwiKVxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAge3Nob3dJbnB1dEp1bXBlciAmJiBbXG4gICAgICAgIDxJbnB1dFxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBrZXk9ezB9XG4gICAgICAgICAgY2xhc3NOYW1lPXtgJHtwcmVmaXh9LWlucHV0YH1cbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIumhteeggVwiXG4gICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICB0aGVtZT17dGhlbWV9XG4gICAgICAgICAgb25DaGFuZ2U9eyhlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT5cbiAgICAgICAgICAgIHNldElucHV0VmFsdWUoZS50YXJnZXQudmFsdWUpXG4gICAgICAgICAgfVxuICAgICAgICAgIG9uUHJlc3NFbnRlcj17aGFuZGxlSW5wdXRKdW1wfVxuICAgICAgICAvPixcbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBrZXk9ezF9XG4gICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICB0aGVtZT17dGhlbWV9XG4gICAgICAgICAgb25DbGljaz17aGFuZGxlSW5wdXRKdW1wfVxuICAgICAgICA+XG4gICAgICAgICAg6Lez6L2sXG4gICAgICAgIDwvQnV0dG9uPixcbiAgICAgIF19XG4gICAgPC9kaXY+XG4gIClcbn1cblxuUGFnaW5hdGlvbi5kaXNwbGF5TmFtZSA9IFwiUGFnaW5hdGlvblwiXG5cblBhZ2luYXRpb24ucHJvcFR5cGVzID0ge1xuICAvKipcbiAgICog5a+56b2Q5pa55byPXG4gICAqL1xuICBhbGlnbjogUHJvcFR5cGVzLm9uZU9mKFtcImxlZnRcIiwgXCJjZW50ZXJcIiwgXCJyaWdodFwiXSksXG4gIC8qKlxuICAgKiDpmYTliqDnsbvlkI1cbiAgICovXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqXG4gICAqIOW9k+WJjemhteaVsFxuICAgKi9cbiAgY3VycmVudDogUHJvcFR5cGVzLm51bWJlcixcbiAgLyoqXG4gICAqIOm7mOiupOeahOW9k+WJjemhteaVsFxuICAgKi9cbiAgZGVmYXVsdEN1cnJlbnQ6IFByb3BUeXBlcy5udW1iZXIsXG4gIC8qKlxuICAgKiDmmK/lkKbnpoHnlKhcbiAgICovXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgLyoqXG4gICAqIOWPquacieS4gOmhteaXtiByZXR1cm4gbnVsbFxuICAgKi9cbiAgaGlkZVdoZW5TaW5nbGVQYWdlOiBQcm9wVHlwZXMuYm9vbCxcbiAgLyoqXG4gICAqIOW9k+WJjemhteWPmOWMluaXtueahCBoYW5kbGVyXG4gICAqL1xuICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKlxuICAgKiDorr7nva7mr4/pobXmnaHmlbDvvIzpu5jorqQgMTAg5p2hXG4gICAqL1xuICBwYWdlU2l6ZTogUHJvcFR5cGVzLm51bWJlcixcbiAgLyoqXG4gICAqIOaYr+WQpuaYvuekuummlumhteWwvumhtei3s+i9rOaMiemSrlxuICAgKi9cbiAgc2hvd0J1dHRvbkp1bXBlcjogUHJvcFR5cGVzLmJvb2wsXG4gIC8qKlxuICAgKiDmmK/lkKbmmL7npLrot7PovazovpPlhaXmoYZcbiAgICovXG4gIHNob3dJbnB1dEp1bXBlcjogUHJvcFR5cGVzLmJvb2wsXG4gIC8qKlxuICAgKiDorr7nva7lsLrlr7hcbiAgICovXG4gIHNpemU6IFByb3BUeXBlcy5vbmVPZihbXCJtaW5pXCIsIFwic21hbGxcIiwgXCJtZWRpdW1cIiwgXCJsYXJnZVwiXSksXG4gIC8qKlxuICAgKiDorr7nva7kuLvpophcbiAgICovXG4gIHRoZW1lOiBQcm9wVHlwZXMub25lT2YoW251bGwsIFwibGlnaHRcIl0pLFxuICAvKipcbiAgICog5pWw5o2u5oC75pWwXG4gICAqL1xuICB0b3RhbDogUHJvcFR5cGVzLm51bWJlcixcbn1cblxuUGFnaW5hdGlvbi5kZWZhdWx0UHJvcHMgPSB7XG4gIGFsaWduOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZTogdW5kZWZpbmVkLFxuICBjdXJyZW50OiBudWxsLFxuICBkZWZhdWx0Q3VycmVudDogMSxcbiAgZGlzYWJsZWQ6IGZhbHNlLFxuICBoaWRlV2hlblNpbmdsZVBhZ2U6IHRydWUsXG4gIG9uQ2hhbmdlOiBub29wLFxuICBwYWdlU2l6ZTogMTAsXG4gIHNob3dCdXR0b25KdW1wZXI6IGZhbHNlLFxuICBzaG93SW5wdXRKdW1wZXI6IGZhbHNlLFxuICBzaXplOiBcInNtYWxsXCIsXG4gIHRoZW1lOiBudWxsLFxuICB0b3RhbDogMCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgUGFnaW5hdGlvblxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBUCxJQUFnQkMsVUFBaEIsRUFBNEJDLFFBQTVCLFFBQTRDLE9BQTVDO0FBQ0EsT0FBT0MsU0FBUCxNQUFzQixZQUF0QjtBQUNBLE9BQU9DLFVBQVAsTUFBdUIsWUFBdkI7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLGtCQUFwQjtBQUNBLFNBQVNDLGFBQVQsRUFBd0JDLGVBQXhCLFFBQStDLG9CQUEvQztBQUNBLE9BQU9DLE1BQVAsTUFBbUIsV0FBbkI7QUFDQSxPQUFPQyxLQUFQLE1BQWtCLFVBQWxCO0FBQ0EsT0FBTyxTQUFQOztBQUVBLElBQU1DLElBQUksR0FBRyxTQUFQQSxJQUFPLEdBQU0sQ0FBRSxDQUFyQjs7QUFDQSxJQUFNQyxNQUFNLEdBQUcsaUJBQWY7O0FBNkRBLElBQU1DLFVBQXNDLEdBQUcsU0FBekNBLFVBQXlDLE9BZXZCO0VBQUEsSUFkdEJDLEtBY3NCLFFBZHRCQSxLQWNzQjtFQUFBLElBYnRCQyxTQWFzQixRQWJ0QkEsU0Fhc0I7RUFBQSxJQVpiQyxXQVlhLFFBWnRCQyxPQVlzQjtFQUFBLElBWHRCQyxjQVdzQixRQVh0QkEsY0FXc0I7RUFBQSxJQVZ0QkMsUUFVc0IsUUFWdEJBLFFBVXNCO0VBQUEsSUFUdEJDLGtCQVNzQixRQVR0QkEsa0JBU3NCO0VBQUEsSUFSdEJDLFFBUXNCLFFBUnRCQSxRQVFzQjtFQUFBLElBUHRCQyxRQU9zQixRQVB0QkEsUUFPc0I7RUFBQSxJQU50QkMsZ0JBTXNCLFFBTnRCQSxnQkFNc0I7RUFBQSxJQUx0QkMsZUFLc0IsUUFMdEJBLGVBS3NCO0VBQUEsSUFKaEJDLFFBSWdCLFFBSnRCQyxJQUlzQjtFQUFBLElBSHRCQyxLQUdzQixRQUh0QkEsS0FHc0I7RUFBQSxJQUZ0QkMsS0FFc0IsUUFGdEJBLEtBRXNCO0VBQUEsSUFEbkJDLFVBQ21COztFQUN0QixnQkFBOEIxQixRQUFRLENBQ3BDLENBQUNhLFdBQVcsS0FBSyxJQUFoQixHQUF1QkEsV0FBdkIsR0FBcUNFLGNBQXRDLEtBQXlELENBRHJCLENBQXRDO0VBQUE7RUFBQSxJQUFPRCxPQUFQO0VBQUEsSUFBZ0JhLFVBQWhCOztFQUdBLGlCQUFvQzNCLFFBQVEsQ0FBQyxFQUFELENBQTVDO0VBQUE7RUFBQSxJQUFPNEIsVUFBUDtFQUFBLElBQW1CQyxhQUFuQjs7RUFHQSxJQUNFaEIsV0FBVyxLQUFLLElBQWhCLElBQ0FBLFdBQVcsS0FBS2lCLFNBRGhCLElBRUFoQixPQUFPLEtBQUtELFdBSGQsRUFJRTtJQUNBYyxVQUFVLENBQUNkLFdBQUQsQ0FBVjtFQUNEOztFQUVELGtCQUE4QmQsVUFBVSxDQUFDSyxhQUFELENBQXhDO0VBQUEsSUFBYzJCLFdBQWQsZUFBUVIsSUFBUjs7RUFDQSxJQUFNQSxJQUFJLEdBQUdsQixlQUFlLENBQUNpQixRQUFELEVBQVdTLFdBQVgsQ0FBNUI7RUFFQSxJQUFNQyxRQUFRLEdBQUc5QixVQUFVLENBQ3pCVSxTQUR5QixZQUV0QkgsTUFGc0Isc0JBR3RCQSxNQUhzQixjQUdaYyxJQUhZLGlDQUtuQmQsTUFMbUIsY0FLVEUsS0FMUyxHQUtDQSxLQUxELEVBQTNCO0VBU0FSLE9BQU8sQ0FBQzhCLE1BQU0sQ0FBQ0MsU0FBUCxDQUFpQnBCLE9BQWpCLENBQUQsRUFBNEIsWUFBNUIsRUFBMEMsaUJBQTFDLENBQVA7RUFFQVgsT0FBTyxDQUNMLEVBQ0VXLE9BQU8sR0FBRyxDQUFWLElBQ0NBLE9BQU8sR0FBR3FCLElBQUksQ0FBQ0MsSUFBTCxDQUFVLENBQUNYLEtBQUssSUFBSSxDQUFWLEtBQWdCTixRQUFRLElBQUksRUFBNUIsQ0FBVixDQUFWLElBQXdETCxPQUFPLEtBQUssQ0FGdkUsQ0FESyxFQUtMLFlBTEssK0dBTTJCVyxLQU4zQixpQ0FNNkNOLFFBTjdDLEVBQVA7RUFTQSxJQUFJa0IsVUFBVSxHQUFHLENBQWpCOztFQUNBLElBQUlaLEtBQUssSUFBSU4sUUFBYixFQUF1QjtJQUNyQmtCLFVBQVUsR0FBR0YsSUFBSSxDQUFDRyxHQUFMLENBQVNILElBQUksQ0FBQ0MsSUFBTCxDQUFVWCxLQUFLLEdBQUdOLFFBQWxCLENBQVQsRUFBc0MsQ0FBdEMsQ0FBYjtFQUNEOztFQUNELElBQU1vQixZQUFZLEdBQUd6QixPQUFPLEtBQUssQ0FBakM7RUFDQSxJQUFNMEIsWUFBWSxHQUFHMUIsT0FBTyxLQUFLdUIsVUFBakM7O0VBRUEsSUFBSUEsVUFBVSxLQUFLLENBQWYsSUFBb0JwQixrQkFBeEIsRUFBNEM7SUFDMUMsT0FBTyxJQUFQO0VBQ0Q7O0VBRUQsSUFBTXdCLFVBQVUsR0FBRyxTQUFiQSxVQUFhLENBQUNDLElBQUQsRUFBa0I7SUFDbkMsSUFBSUMsT0FBSjs7SUFDQSxRQUFRRCxJQUFSO01BQ0UsS0FBSyxPQUFMO1FBQ0VDLE9BQU8sR0FBRyxDQUFWO1FBQ0E7O01BQ0YsS0FBSyxNQUFMO1FBQ0VBLE9BQU8sR0FBRzdCLE9BQU8sR0FBRyxDQUFwQjtRQUNBOztNQUNGLEtBQUssTUFBTDtRQUNFNkIsT0FBTyxHQUFHN0IsT0FBTyxHQUFHLENBQXBCO1FBQ0E7O01BQ0YsS0FBSyxNQUFMO1FBQ0UsSUFBSVcsS0FBSyxJQUFJTixRQUFiLEVBQXVCO1VBQ3JCd0IsT0FBTyxHQUFHUixJQUFJLENBQUNHLEdBQUwsQ0FBU0gsSUFBSSxDQUFDQyxJQUFMLENBQVVYLEtBQUssR0FBR04sUUFBbEIsQ0FBVCxFQUFzQyxDQUF0QyxDQUFWO1FBQ0Q7O1FBQ0Q7O01BQ0Y7SUFmRjs7SUFrQkEsSUFBSXdCLE9BQU8sSUFBSXhCLFFBQWYsRUFBeUI7TUFDdkIsSUFBSU4sV0FBVyxLQUFLLElBQXBCLEVBQTBCO1FBQ3hCYyxVQUFVLENBQUNnQixPQUFELENBQVY7TUFDRDs7TUFDRCxJQUFJekIsUUFBSixFQUFjO1FBQ1pBLFFBQVEsQ0FBQ3lCLE9BQUQsRUFBVXhCLFFBQVYsQ0FBUjtNQUNEO0lBQ0Y7RUFDRixDQTVCRDs7RUE4QkEsSUFBTXlCLGVBQWUsR0FBRyxTQUFsQkEsZUFBa0IsR0FBTTtJQUM1QixJQUFNQyxVQUFVLEdBQUdDLFFBQVEsQ0FBQ2xCLFVBQUQsRUFBYSxFQUFiLENBQTNCOztJQUNBLElBQUltQixLQUFLLENBQUNGLFVBQUQsQ0FBVCxFQUF1QjtNQUNyQjtJQUNEOztJQUNELElBQUlHLEtBQUssR0FBR2IsSUFBSSxDQUFDRyxHQUFMLENBQVNPLFVBQVQsRUFBcUIsQ0FBckIsQ0FBWjs7SUFDQSxJQUFJcEIsS0FBSyxJQUFJTixRQUFiLEVBQXVCO01BQ3JCNkIsS0FBSyxHQUFHYixJQUFJLENBQUNjLEdBQUwsQ0FBU0QsS0FBVCxFQUFnQmIsSUFBSSxDQUFDRyxHQUFMLENBQVNILElBQUksQ0FBQ0MsSUFBTCxDQUFVWCxLQUFLLEdBQUdOLFFBQWxCLENBQVQsRUFBc0MsQ0FBdEMsQ0FBaEIsQ0FBUjtJQUNEOztJQUNELElBQUlOLFdBQVcsS0FBSyxJQUFwQixFQUEwQjtNQUN4QmMsVUFBVSxDQUFDcUIsS0FBRCxDQUFWO0lBQ0Q7O0lBQ0QsSUFBSTlCLFFBQUosRUFBYztNQUNaQSxRQUFRLENBQUM4QixLQUFELEVBQVE3QixRQUFSLENBQVI7SUFDRDtFQUNGLENBZkQ7O0VBaUJBLE9BQ0U7SUFBSyxTQUFTLEVBQUVhLFFBQWhCO0lBQTBCLGdCQUFjbEI7RUFBeEMsR0FBcURZLFVBQXJELEdBQ0dOLGdCQUFnQixJQUNmLG9CQUFDLE1BQUQ7SUFDRSxRQUFRLEVBQUVKLFFBRFo7SUFFRSxLQUFLLEVBQUU7TUFBRWtDLFdBQVcsRUFBRTtJQUFmLENBRlQ7SUFHRSxRQUFRLEVBQUMsa0JBSFg7SUFJRSxJQUFJLEVBQUUzQixJQUpSO0lBS0UsS0FBSyxFQUFFQyxLQUxUO0lBTUUsT0FBTyxFQUFFLG1CQUFNO01BQ2IsSUFBSSxDQUFDZSxZQUFMLEVBQW1CRSxVQUFVLENBQUMsT0FBRCxDQUFWO0lBQ3BCO0VBUkgsRUFGSixFQWFFLG9CQUFDLE1BQUQ7SUFDRSxRQUFRLEVBQUV6QixRQURaO0lBRUUsUUFBUSxFQUFDLFlBRlg7SUFHRSxJQUFJLEVBQUVPLElBSFI7SUFJRSxLQUFLLEVBQUVDLEtBSlQ7SUFLRSxPQUFPLEVBQUUsbUJBQU07TUFDYixJQUFJLENBQUNlLFlBQUwsRUFBbUJFLFVBQVUsQ0FBQyxNQUFELENBQVY7SUFDcEI7RUFQSCxFQWJGLEVBc0JFO0lBQU0sU0FBUyxZQUFLaEMsTUFBTDtFQUFmLEdBQ0dLLE9BREgsU0FDZXVCLFVBRGYsQ0F0QkYsRUF5QkUsb0JBQUMsTUFBRDtJQUNFLFFBQVEsRUFBRXJCLFFBRFo7SUFFRSxRQUFRLEVBQUMsYUFGWDtJQUdFLElBQUksRUFBRU8sSUFIUjtJQUlFLEtBQUssRUFBRUMsS0FKVDtJQUtFLE9BQU8sRUFBRSxtQkFBTTtNQUNiLElBQUksQ0FBQ2dCLFlBQUwsRUFBbUJDLFVBQVUsQ0FBQyxNQUFELENBQVY7SUFDcEI7RUFQSCxFQXpCRixFQWtDR3JCLGdCQUFnQixJQUNmLG9CQUFDLE1BQUQ7SUFDRSxRQUFRLEVBQUVKLFFBRFo7SUFFRSxLQUFLLEVBQUU7TUFBRW1DLFVBQVUsRUFBRTtJQUFkLENBRlQ7SUFHRSxRQUFRLEVBQUMsa0JBSFg7SUFJRSxJQUFJLEVBQUU1QixJQUpSO0lBS0UsS0FBSyxFQUFFQyxLQUxUO0lBTUUsT0FBTyxFQUFFLG1CQUFNO01BQ2IsSUFBSSxDQUFDZ0IsWUFBTCxFQUFtQkMsVUFBVSxDQUFDLE1BQUQsQ0FBVjtJQUNwQjtFQVJILEVBbkNKLEVBOENHcEIsZUFBZSxJQUFJLENBQ2xCLG9CQUFDLEtBQUQ7SUFDRSxRQUFRLEVBQUVMLFFBRFo7SUFFRSxHQUFHLEVBQUUsQ0FGUDtJQUdFLFNBQVMsWUFBS1AsTUFBTCxXQUhYO0lBSUUsV0FBVyxFQUFDLGNBSmQ7SUFLRSxJQUFJLEVBQUVjLElBTFI7SUFNRSxLQUFLLEVBQUVDLEtBTlQ7SUFPRSxRQUFRLEVBQUUsa0JBQUM0QixDQUFEO01BQUEsT0FDUnZCLGFBQWEsQ0FBQ3VCLENBQUMsQ0FBQ0MsTUFBRixDQUFTTCxLQUFWLENBREw7SUFBQSxDQVBaO0lBVUUsWUFBWSxFQUFFSjtFQVZoQixFQURrQixFQWFsQixvQkFBQyxNQUFEO0lBQ0UsUUFBUSxFQUFFNUIsUUFEWjtJQUVFLEdBQUcsRUFBRSxDQUZQO0lBR0UsSUFBSSxFQUFFTyxJQUhSO0lBSUUsS0FBSyxFQUFFQyxLQUpUO0lBS0UsT0FBTyxFQUFFb0I7RUFMWCxrQkFia0IsQ0E5Q3RCLENBREY7QUF3RUQsQ0F2TEQ7O0FBeUxBbEMsVUFBVSxDQUFDNEMsV0FBWCxHQUF5QixZQUF6QjtBQUVBNUMsVUFBVSxDQUFDNkMsU0FBWCxHQUF1QjtFQUlyQjVDLEtBQUssRUFBRVYsU0FBUyxDQUFDdUQsS0FBVixDQUFnQixDQUFDLE1BQUQsRUFBUyxRQUFULEVBQW1CLE9BQW5CLENBQWhCLENBSmM7RUFRckI1QyxTQUFTLEVBQUVYLFNBQVMsQ0FBQ3dELE1BUkE7RUFZckIzQyxPQUFPLEVBQUViLFNBQVMsQ0FBQ3lELE1BWkU7RUFnQnJCM0MsY0FBYyxFQUFFZCxTQUFTLENBQUN5RCxNQWhCTDtFQW9CckIxQyxRQUFRLEVBQUVmLFNBQVMsQ0FBQzBELElBcEJDO0VBd0JyQjFDLGtCQUFrQixFQUFFaEIsU0FBUyxDQUFDMEQsSUF4QlQ7RUE0QnJCekMsUUFBUSxFQUFFakIsU0FBUyxDQUFDMkQsSUE1QkM7RUFnQ3JCekMsUUFBUSxFQUFFbEIsU0FBUyxDQUFDeUQsTUFoQ0M7RUFvQ3JCdEMsZ0JBQWdCLEVBQUVuQixTQUFTLENBQUMwRCxJQXBDUDtFQXdDckJ0QyxlQUFlLEVBQUVwQixTQUFTLENBQUMwRCxJQXhDTjtFQTRDckJwQyxJQUFJLEVBQUV0QixTQUFTLENBQUN1RCxLQUFWLENBQWdCLENBQUMsTUFBRCxFQUFTLE9BQVQsRUFBa0IsUUFBbEIsRUFBNEIsT0FBNUIsQ0FBaEIsQ0E1Q2U7RUFnRHJCaEMsS0FBSyxFQUFFdkIsU0FBUyxDQUFDdUQsS0FBVixDQUFnQixDQUFDLElBQUQsRUFBTyxPQUFQLENBQWhCLENBaERjO0VBb0RyQi9CLEtBQUssRUFBRXhCLFNBQVMsQ0FBQ3lEO0FBcERJLENBQXZCO0FBdURBaEQsVUFBVSxDQUFDbUQsWUFBWCxHQUEwQjtFQUN4QmxELEtBQUssRUFBRW1CLFNBRGlCO0VBRXhCbEIsU0FBUyxFQUFFa0IsU0FGYTtFQUd4QmhCLE9BQU8sRUFBRSxJQUhlO0VBSXhCQyxjQUFjLEVBQUUsQ0FKUTtFQUt4QkMsUUFBUSxFQUFFLEtBTGM7RUFNeEJDLGtCQUFrQixFQUFFLElBTkk7RUFPeEJDLFFBQVEsRUFBRVYsSUFQYztFQVF4QlcsUUFBUSxFQUFFLEVBUmM7RUFTeEJDLGdCQUFnQixFQUFFLEtBVE07RUFVeEJDLGVBQWUsRUFBRSxLQVZPO0VBV3hCRSxJQUFJLEVBQUUsT0FYa0I7RUFZeEJDLEtBQUssRUFBRSxJQVppQjtFQWF4QkMsS0FBSyxFQUFFO0FBYmlCLENBQTFCO0FBZ0JBLGVBQWVmLFVBQWYifQ==