nsc-react-component 2.10.31 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc +2 -2
- package/lib/Interface.js +1 -1
- package/lib/Interface.js.map +1 -0
- package/lib/base/affix/index.js +5 -47
- package/lib/base/affix/index.js.map +1 -0
- package/lib/base/alert/index.js +5 -47
- package/lib/base/alert/index.js.map +1 -0
- package/lib/base/anchor/index.d.ts +1 -1
- package/lib/base/anchor/index.js +8 -50
- package/lib/base/anchor/index.js.map +1 -0
- package/lib/base/avatar/index.d.ts +1 -1
- package/lib/base/avatar/index.js +8 -50
- package/lib/base/avatar/index.js.map +1 -0
- package/lib/base/backTop/index.js +5 -47
- package/lib/base/backTop/index.js.map +1 -0
- package/lib/base/badge/index.d.ts +1 -1
- package/lib/base/badge/index.js +8 -50
- package/lib/base/badge/index.js.map +1 -0
- package/lib/base/breadcrumb/index.js +5 -47
- package/lib/base/breadcrumb/index.js.map +1 -0
- package/lib/base/button/index.d.ts +1 -1
- package/lib/base/button/index.js +93 -135
- package/lib/base/button/index.js.map +1 -0
- package/lib/base/calendar/index.js +5 -47
- package/lib/base/calendar/index.js.map +1 -0
- package/lib/base/card/index.d.ts +2 -2
- package/lib/base/card/index.js +8 -51
- package/lib/base/card/index.js.map +1 -0
- package/lib/base/carousel/index.js +5 -47
- package/lib/base/carousel/index.js.map +1 -0
- package/lib/base/cascader/index.d.ts +3 -3
- package/lib/base/cascader/index.js +156 -224
- package/lib/base/cascader/index.js.map +1 -0
- package/lib/base/chart/index.d.ts +2 -2
- package/lib/base/chart/index.js +177 -287
- package/lib/base/chart/index.js.map +1 -0
- package/lib/base/checkbox/CheckboxGroup.d.ts +3 -3
- package/lib/base/checkbox/CheckboxGroup.js +165 -259
- package/lib/base/checkbox/CheckboxGroup.js.map +1 -0
- package/lib/base/checkbox/index.d.ts +2 -2
- package/lib/base/checkbox/index.js +8 -49
- package/lib/base/checkbox/index.js.map +1 -0
- package/lib/base/collapse/index.d.ts +1 -1
- package/lib/base/collapse/index.js +8 -50
- package/lib/base/collapse/index.js.map +1 -0
- package/lib/base/colorpicker/index.d.ts +5 -0
- package/lib/base/colorpicker/index.js +8 -0
- package/lib/base/colorpicker/index.js.map +1 -0
- package/lib/base/common/BodyRow/index.js +48 -102
- package/lib/base/common/BodyRow/index.js.map +1 -0
- package/lib/base/common/EllipseCell/index.d.ts +1 -1
- package/lib/base/common/EllipseCell/index.js +16 -58
- package/lib/base/common/EllipseCell/index.js.map +1 -0
- package/lib/base/common/FileIcon.d.ts +2 -2
- package/lib/base/common/FileIcon.js +86 -132
- package/lib/base/common/FileIcon.js.map +1 -0
- package/lib/base/common/Icon.d.ts +2 -2
- package/lib/base/common/Icon.js +42 -96
- package/lib/base/common/Icon.js.map +1 -0
- package/lib/base/common/IconData.js +2 -2
- package/lib/base/common/IconData.js.map +1 -0
- package/lib/base/common/IconFont.d.ts +2 -2
- package/lib/base/common/IconFont.js +7 -8
- package/lib/base/common/IconFont.js.map +1 -0
- package/lib/base/common/NoAuthority.d.ts +2 -2
- package/lib/base/common/NoAuthority.js +13 -53
- package/lib/base/common/NoAuthority.js.map +1 -0
- package/lib/base/common/NoData.d.ts +2 -2
- package/lib/base/common/NoData.js +29 -74
- package/lib/base/common/NoData.js.map +1 -0
- package/lib/base/common/NoData.less +8 -2
- package/lib/base/common/NoMessage.d.ts +2 -2
- package/lib/base/common/NoMessage.js +30 -70
- package/lib/base/common/NoMessage.js.map +1 -0
- package/lib/base/common/NoNetWork.d.ts +2 -2
- package/lib/base/common/NoNetWork.js +30 -70
- package/lib/base/common/NoNetWork.js.map +1 -0
- package/lib/base/common/Page404.d.ts +2 -2
- package/lib/base/common/Page404.js +30 -70
- package/lib/base/common/Page404.js.map +1 -0
- package/lib/base/common/PageRequest.js +91 -154
- package/lib/base/common/PageRequest.js.map +1 -0
- package/lib/base/common/TreePanel.d.ts +1 -1
- package/lib/base/common/TreePanel.js +133 -212
- package/lib/base/common/TreePanel.js.map +1 -0
- package/lib/base/common/iconfontalibaba.js +15 -22
- package/lib/base/common/iconfontalibaba.js.map +1 -0
- package/lib/base/common/withZhLocale.d.ts +1 -1
- package/lib/base/common/withZhLocale.js +3 -8
- package/lib/base/common/withZhLocale.js.map +1 -0
- package/lib/base/configProvider/index.js +8 -50
- package/lib/base/configProvider/index.js.map +1 -0
- package/lib/base/datepick/Rangepicker.d.ts +4 -4
- package/lib/base/datepick/Rangepicker.js +231 -330
- package/lib/base/datepick/Rangepicker.js.map +1 -0
- package/lib/base/datepick/index.d.ts +2 -2
- package/lib/base/datepick/index.js +56 -115
- package/lib/base/datepick/index.js.map +1 -0
- package/lib/base/datepick/index.less +5 -5
- package/lib/base/descriptions/index.d.ts +1 -1
- package/lib/base/descriptions/index.js +8 -50
- package/lib/base/descriptions/index.js.map +1 -0
- package/lib/base/divider/index.js +5 -47
- package/lib/base/divider/index.js.map +1 -0
- package/lib/base/download/index.js +42 -84
- package/lib/base/download/index.js.map +1 -0
- package/lib/base/drawer/index.d.ts +2 -11
- package/lib/base/drawer/index.js +8 -57
- package/lib/base/drawer/index.js.map +1 -0
- package/lib/base/dropdown/index.js +19 -66
- package/lib/base/dropdown/index.js.map +1 -0
- package/lib/base/editor/index.d.ts +1 -1
- package/lib/base/editor/index.js +83 -128
- package/lib/base/editor/index.js.map +1 -0
- package/lib/base/errorboundary/index.js +19 -63
- package/lib/base/errorboundary/index.js.map +1 -0
- package/lib/base/form/Form.d.ts +2 -2
- package/lib/base/form/Form.js +302 -429
- package/lib/base/form/Form.js.map +1 -0
- package/lib/base/form/filed/Cascader.d.ts +2 -2
- package/lib/base/form/filed/Cascader.js +6 -45
- package/lib/base/form/filed/Cascader.js.map +1 -0
- package/lib/base/form/filed/Checkbox.d.ts +2 -2
- package/lib/base/form/filed/Checkbox.js +6 -45
- package/lib/base/form/filed/Checkbox.js.map +1 -0
- package/lib/base/form/filed/DatePicker.d.ts +2 -2
- package/lib/base/form/filed/DatePicker.js +6 -45
- package/lib/base/form/filed/DatePicker.js.map +1 -0
- package/lib/base/form/filed/FormItem.d.ts +2 -2
- package/lib/base/form/filed/FormItem.js +64 -128
- package/lib/base/form/filed/FormItem.js.map +1 -0
- package/lib/base/form/filed/Input.d.ts +2 -2
- package/lib/base/form/filed/Input.js +14 -51
- package/lib/base/form/filed/Input.js.map +1 -0
- package/lib/base/form/filed/InputEamil.d.ts +2 -2
- package/lib/base/form/filed/InputEamil.js +5 -44
- package/lib/base/form/filed/InputEamil.js.map +1 -0
- package/lib/base/form/filed/InputNumber.d.ts +2 -2
- package/lib/base/form/filed/InputNumber.js +5 -44
- package/lib/base/form/filed/InputNumber.js.map +1 -0
- package/lib/base/form/filed/InputPassword.d.ts +2 -2
- package/lib/base/form/filed/InputPassword.js +5 -44
- package/lib/base/form/filed/InputPassword.js.map +1 -0
- package/lib/base/form/filed/Item.d.ts +3 -3
- package/lib/base/form/filed/Item.js +90 -164
- package/lib/base/form/filed/Item.js.map +1 -0
- package/lib/base/form/filed/Radio.d.ts +2 -2
- package/lib/base/form/filed/Radio.js +7 -45
- package/lib/base/form/filed/Radio.js.map +1 -0
- package/lib/base/form/filed/RangerPicker.d.ts +2 -2
- package/lib/base/form/filed/RangerPicker.js +6 -45
- package/lib/base/form/filed/RangerPicker.js.map +1 -0
- package/lib/base/form/filed/Rate.d.ts +2 -2
- package/lib/base/form/filed/Rate.js +6 -47
- package/lib/base/form/filed/Rate.js.map +1 -0
- package/lib/base/form/filed/Select.d.ts +2 -2
- package/lib/base/form/filed/Select.js +9 -49
- package/lib/base/form/filed/Select.js.map +1 -0
- package/lib/base/form/filed/Slider.d.ts +2 -2
- package/lib/base/form/filed/Slider.js +6 -47
- package/lib/base/form/filed/Slider.js.map +1 -0
- package/lib/base/form/filed/Switch.d.ts +2 -2
- package/lib/base/form/filed/Switch.js +6 -47
- package/lib/base/form/filed/Switch.js.map +1 -0
- package/lib/base/form/filed/TagSelect.d.ts +2 -2
- package/lib/base/form/filed/TagSelect.js +6 -45
- package/lib/base/form/filed/TagSelect.js.map +1 -0
- package/lib/base/form/filed/TextArea.d.ts +2 -2
- package/lib/base/form/filed/TextArea.js +5 -44
- package/lib/base/form/filed/TextArea.js.map +1 -0
- package/lib/base/form/filed/Upload.d.ts +2 -2
- package/lib/base/form/filed/Upload.js +9 -45
- package/lib/base/form/filed/Upload.js.map +1 -0
- package/lib/base/form/index.d.ts +2 -2
- package/lib/base/form/index.js +17 -59
- package/lib/base/form/index.js.map +1 -0
- package/lib/base/grid/Col.js +5 -47
- package/lib/base/grid/Col.js.map +1 -0
- package/lib/base/grid/Row.js +5 -47
- package/lib/base/grid/Row.js.map +1 -0
- package/lib/base/grid/index.js +1 -1
- package/lib/base/grid/index.js.map +1 -0
- package/lib/base/iframe/index.d.ts +1 -1
- package/lib/base/iframe/index.js +44 -94
- package/lib/base/iframe/index.js.map +1 -0
- package/lib/base/image/index.js +159 -260
- package/lib/base/image/index.js.map +1 -0
- package/lib/base/input/Email.d.ts +2 -2
- package/lib/base/input/Email.js +55 -104
- package/lib/base/input/Email.js.map +1 -0
- package/lib/base/input/Number.d.ts +1 -1
- package/lib/base/input/Number.js +46 -105
- package/lib/base/input/Number.js.map +1 -0
- package/lib/base/input/Password.d.ts +1 -1
- package/lib/base/input/Password.js +46 -105
- package/lib/base/input/Password.js.map +1 -0
- package/lib/base/input/Search.d.ts +1 -1
- package/lib/base/input/Search.js +44 -103
- package/lib/base/input/Search.js.map +1 -0
- package/lib/base/input/TextArea.d.ts +1 -1
- package/lib/base/input/TextArea.js +62 -124
- package/lib/base/input/TextArea.js.map +1 -0
- package/lib/base/input/index.d.ts +3 -3
- package/lib/base/input/index.js +119 -196
- package/lib/base/input/index.js.map +1 -0
- package/lib/base/layout/index.d.ts +3 -3
- package/lib/base/layout/index.js +14 -57
- package/lib/base/layout/index.js.map +1 -0
- package/lib/base/list/index.d.ts +1 -1
- package/lib/base/list/index.js +8 -50
- package/lib/base/list/index.js.map +1 -0
- package/lib/base/menu/index.d.ts +7 -7
- package/lib/base/menu/index.js +100 -166
- package/lib/base/menu/index.js.map +1 -0
- package/lib/base/message/index.d.ts +8 -9
- package/lib/base/message/index.js +5 -49
- package/lib/base/message/index.js.map +1 -0
- package/lib/base/modal/Confirm.d.ts +1 -1
- package/lib/base/modal/Confirm.js +15 -23
- package/lib/base/modal/Confirm.js.map +1 -0
- package/lib/base/modal/index.d.ts +8 -8
- package/lib/base/modal/index.js +275 -363
- package/lib/base/modal/index.js.map +1 -0
- package/lib/base/modal/index.less +8 -8
- package/lib/base/notification/index.d.ts +8 -10
- package/lib/base/notification/index.js +12 -57
- package/lib/base/notification/index.js.map +1 -0
- package/lib/base/pagination/index.js +5 -47
- package/lib/base/pagination/index.js.map +1 -0
- package/lib/base/pdfviwer/index.d.ts +1 -1
- package/lib/base/pdfviwer/index.js +68 -93
- package/lib/base/pdfviwer/index.js.map +1 -0
- package/lib/base/popconfirm/index.js +5 -47
- package/lib/base/popconfirm/index.js.map +1 -0
- package/lib/base/popover/index.js +19 -66
- package/lib/base/popover/index.js.map +1 -0
- package/lib/base/progress/index.js +5 -47
- package/lib/base/progress/index.js.map +1 -0
- package/lib/base/qecode/index.d.ts +5 -0
- package/lib/base/qecode/index.js +8 -0
- package/lib/base/qecode/index.js.map +1 -0
- package/lib/base/radio/RadioGroup.d.ts +1 -1
- package/lib/base/radio/RadioGroup.js +198 -296
- package/lib/base/radio/RadioGroup.js.map +1 -0
- package/lib/base/radio/index.d.ts +2 -2
- package/lib/base/radio/index.js +8 -51
- package/lib/base/radio/index.js.map +1 -0
- package/lib/base/result/index.js +5 -47
- package/lib/base/result/index.js.map +1 -0
- package/lib/base/select/index.d.ts +4 -4
- package/lib/base/select/index.js +351 -468
- package/lib/base/select/index.js.map +1 -0
- package/lib/base/skeleton/index.js +5 -47
- package/lib/base/skeleton/index.js.map +1 -0
- package/lib/base/space/index.js +5 -47
- package/lib/base/space/index.js.map +1 -0
- package/lib/base/spin/index.js +5 -47
- package/lib/base/spin/index.js.map +1 -0
- package/lib/base/statistic/index.d.ts +1 -1
- package/lib/base/statistic/index.js +8 -50
- package/lib/base/statistic/index.js.map +1 -0
- package/lib/base/steps/index.d.ts +1 -1
- package/lib/base/steps/index.js +8 -50
- package/lib/base/steps/index.js.map +1 -0
- package/lib/base/switch/index.js +5 -47
- package/lib/base/switch/index.js.map +1 -0
- package/lib/base/table/index.d.ts +9 -8
- package/lib/base/table/index.js +747 -934
- package/lib/base/table/index.js.map +1 -0
- package/lib/base/table/index.module.less +14 -12
- package/lib/base/tabs/Tabpane.d.ts +1 -1
- package/lib/base/tabs/Tabpane.js +22 -59
- package/lib/base/tabs/Tabpane.js.map +1 -0
- package/lib/base/tabs/index.d.ts +1 -1
- package/lib/base/tabs/index.js +110 -158
- package/lib/base/tabs/index.js.map +1 -0
- package/lib/base/tabs/index.less +4 -4
- package/lib/base/tagSelect/TagSelect.d.ts +3 -3
- package/lib/base/tagSelect/TagSelect.js +124 -214
- package/lib/base/tagSelect/TagSelect.js.map +1 -0
- package/lib/base/tagSelect/index.d.ts +3 -3
- package/lib/base/tagSelect/index.js +90 -145
- package/lib/base/tagSelect/index.js.map +1 -0
- package/lib/base/tagSelect/index.less +4 -4
- package/lib/base/timeline/index.js +8 -50
- package/lib/base/timeline/index.js.map +1 -0
- package/lib/base/tooltip/index.js +19 -66
- package/lib/base/tooltip/index.js.map +1 -0
- package/lib/base/tour/index.d.ts +5 -0
- package/lib/base/tour/index.js +8 -0
- package/lib/base/tour/index.js.map +1 -0
- package/lib/base/transfer/index.js +5 -47
- package/lib/base/transfer/index.js.map +1 -0
- package/lib/base/tree/TreeSearch.d.ts +3 -3
- package/lib/base/tree/TreeSearch.js +121 -194
- package/lib/base/tree/TreeSearch.js.map +1 -0
- package/lib/base/tree/index.d.ts +7 -7
- package/lib/base/tree/index.js +169 -243
- package/lib/base/tree/index.js.map +1 -0
- package/lib/base/treeselect/index.js +5 -47
- package/lib/base/treeselect/index.js.map +1 -0
- package/lib/base/typography/index.js +5 -47
- package/lib/base/typography/index.js.map +1 -0
- package/lib/base/upload/Dragger.js +363 -542
- package/lib/base/upload/Dragger.js.map +1 -0
- package/lib/base/upload/Upload.d.ts +3 -1
- package/lib/base/upload/Upload.js +352 -530
- package/lib/base/upload/Upload.js.map +1 -0
- package/lib/base/upload/index copy.d.ts +1 -1
- package/lib/base/upload/index copy.js +315 -432
- package/lib/base/upload/index copy.js.map +1 -0
- package/lib/base/upload/index.js +365 -591
- package/lib/base/upload/index.js.map +1 -0
- package/lib/base/upload/index.less +12 -12
- package/lib/base/watermark/index.d.ts +5 -0
- package/lib/base/watermark/index.js +8 -0
- package/lib/base/watermark/index.js.map +1 -0
- package/lib/config.js +5 -8
- package/lib/config.js.map +1 -0
- package/lib/constants.js +2 -2
- package/lib/constants.js.map +1 -0
- package/lib/index.d.ts +4 -2
- package/lib/index.js +6 -3
- package/lib/index.js.map +1 -0
- package/lib/page/BasePage/Form.d.ts +1 -1
- package/lib/page/BasePage/Form.js +253 -360
- package/lib/page/BasePage/Form.js.map +1 -0
- package/lib/page/BasePage/index copy.d.ts +107 -0
- package/lib/page/BasePage/index copy.js +857 -0
- package/lib/page/BasePage/index copy.js.map +1 -0
- package/lib/page/BasePage/index.d.ts +4 -3
- package/lib/page/BasePage/index.js +767 -935
- package/lib/page/BasePage/index.js.map +1 -0
- package/lib/page/BasePage/index.module copy.less +143 -0
- package/lib/page/BasePage/index.module.less +53 -50
- package/lib/page/HeaderSearch/index.d.ts +2 -1
- package/lib/page/HeaderSearch/index.js +198 -273
- package/lib/page/HeaderSearch/index.js.map +1 -0
- package/lib/page/HeaderSearch/index.less +7 -7
- package/lib/page/PasswordCheck/index.d.ts +1 -1
- package/lib/page/PasswordCheck/index.js +50 -109
- package/lib/page/PasswordCheck/index.js.map +1 -0
- package/lib/page/PasswordCheck/index.less +2 -2
- package/lib/treeUtils.js +45 -58
- package/lib/treeUtils.js.map +1 -0
- package/lib/utils.d.ts +2 -2
- package/lib/utils.js +48 -61
- package/lib/utils.js.map +1 -0
- package/package.json +102 -98
- package/.vscode/settings.json +0 -3
- package/lib/base/comment/index.d.ts +0 -5
- package/lib/base/comment/index.js +0 -50
- package/lib/base/form/index.less +0 -41
- package/lib/base/pageHeader/index.d.ts +0 -5
- package/lib/base/pageHeader/index.js +0 -50
package/lib/base/select/index.js
CHANGED
|
@@ -1,54 +1,14 @@
|
|
|
1
|
-
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
2
|
-
|
|
3
|
-
import "antd/es/select/style/css";
|
|
4
1
|
import _Select from "antd/es/select";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
function
|
|
9
|
-
|
|
10
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
11
|
-
|
|
12
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
13
|
-
|
|
14
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
15
|
-
|
|
16
|
-
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."); }
|
|
17
|
-
|
|
18
|
-
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); }
|
|
19
|
-
|
|
20
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
21
|
-
|
|
22
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
23
|
-
|
|
24
|
-
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; }
|
|
25
|
-
|
|
2
|
+
const _excluded = ["url", "listeners", "viewname", "cached", "cacheKey", "viewtype"],
|
|
3
|
+
_excluded2 = ["children", "store", "data", "onChange", "onSelect", "options", "labelField", "valueField", "defaultStyle", "showGroup", "addData", "deleteData", "valueType"];
|
|
4
|
+
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); }
|
|
5
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
6
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
26
7
|
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; }
|
|
27
|
-
|
|
28
8
|
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; }
|
|
29
|
-
|
|
30
|
-
function
|
|
31
|
-
|
|
32
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
33
|
-
|
|
34
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
35
|
-
|
|
36
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
37
|
-
|
|
38
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
39
|
-
|
|
40
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
41
|
-
|
|
42
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
43
|
-
|
|
44
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
45
|
-
|
|
46
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
47
|
-
|
|
48
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
49
|
-
|
|
50
|
-
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; }
|
|
51
|
-
|
|
9
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
10
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
11
|
+
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); }
|
|
52
12
|
import React, { PureComponent } from "react";
|
|
53
13
|
import Store from "@bj-nsc/msn";
|
|
54
14
|
import { utils } from "@bj-nsc/msn/lib/utils";
|
|
@@ -57,79 +17,60 @@ import styles from "./index.less";
|
|
|
57
17
|
import cls from "classnames";
|
|
58
18
|
import PinyinMatch from "pinyin-match";
|
|
59
19
|
import { getFlattenData } from "@bj-nsc/functions";
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
function NSCSelect(props) {
|
|
69
|
-
var _this2;
|
|
70
|
-
|
|
71
|
-
_classCallCheck(this, NSCSelect);
|
|
72
|
-
|
|
73
|
-
_this2 = _super.call(this, props);
|
|
74
|
-
|
|
75
|
-
_defineProperty(_assertThisInitialized(_this2), "state", {
|
|
20
|
+
const {
|
|
21
|
+
Option,
|
|
22
|
+
OptGroup
|
|
23
|
+
} = _Select;
|
|
24
|
+
export default class NSCSelect extends PureComponent {
|
|
25
|
+
constructor(props) {
|
|
26
|
+
super(props);
|
|
27
|
+
_defineProperty(this, "state", {
|
|
76
28
|
dataSource: [],
|
|
77
29
|
selectValue: null,
|
|
78
30
|
allDataSource: [],
|
|
79
31
|
children: null,
|
|
80
32
|
allChildren: null
|
|
81
33
|
});
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
var _config = config(),
|
|
108
|
-
viewUrl = _config.viewUrl,
|
|
109
|
-
viewBizUrl = _config.viewBizUrl;
|
|
110
|
-
|
|
111
|
-
var requestViewUrl = viewtype == "sys" ? viewUrl : viewBizUrl;
|
|
112
|
-
|
|
113
|
-
var getAllData = function getAllData(data) {
|
|
34
|
+
_defineProperty(this, "store", {});
|
|
35
|
+
const {
|
|
36
|
+
data,
|
|
37
|
+
store = {},
|
|
38
|
+
children,
|
|
39
|
+
options,
|
|
40
|
+
addData = [],
|
|
41
|
+
deleteData = []
|
|
42
|
+
} = props;
|
|
43
|
+
const {
|
|
44
|
+
url,
|
|
45
|
+
listeners: listenersPops = {},
|
|
46
|
+
viewname,
|
|
47
|
+
cached,
|
|
48
|
+
cacheKey,
|
|
49
|
+
viewtype = "sys"
|
|
50
|
+
} = store,
|
|
51
|
+
stores = _objectWithoutProperties(store, _excluded);
|
|
52
|
+
const valueField = viewname ? "dictKey" : "value";
|
|
53
|
+
let {
|
|
54
|
+
viewUrl,
|
|
55
|
+
viewBizUrl
|
|
56
|
+
} = config();
|
|
57
|
+
let requestViewUrl = viewtype == "sys" ? viewUrl : viewBizUrl;
|
|
58
|
+
const getAllData = data => {
|
|
114
59
|
if (!Array.isArray(data)) {
|
|
115
60
|
return [];
|
|
116
61
|
}
|
|
117
|
-
|
|
118
|
-
var newData = _toConsumableArray(data);
|
|
119
|
-
|
|
62
|
+
let newData = [...data];
|
|
120
63
|
if (addData.length > 0) {
|
|
121
|
-
newData = [
|
|
64
|
+
newData = [...addData, ...newData];
|
|
122
65
|
}
|
|
123
|
-
|
|
124
66
|
if (deleteData.length > 0) {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
newData.map(
|
|
128
|
-
|
|
129
|
-
valueFields.map(
|
|
67
|
+
let spliceData = [];
|
|
68
|
+
const valueFields = valueField.split(",");
|
|
69
|
+
newData.map((item, i) => {
|
|
70
|
+
let value = "";
|
|
71
|
+
valueFields.map((v, index) => {
|
|
130
72
|
value = index == 0 ? value + item[v] : value + "," + item[v];
|
|
131
73
|
});
|
|
132
|
-
|
|
133
74
|
if (deleteData.indexOf(value) == -1) {
|
|
134
75
|
spliceData.push(item);
|
|
135
76
|
}
|
|
@@ -139,55 +80,45 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
|
|
|
139
80
|
return newData;
|
|
140
81
|
}
|
|
141
82
|
};
|
|
142
|
-
|
|
143
83
|
if (!children) {
|
|
144
84
|
if (!(data || viewname || url || options)) {
|
|
145
85
|
throw new Error("url、viewname、data、options不能都为空!");
|
|
146
86
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
var storeProps = _objectSpread({
|
|
87
|
+
let _this = this;
|
|
88
|
+
let storeProps = _objectSpread({
|
|
151
89
|
model: "model",
|
|
152
|
-
component:
|
|
90
|
+
component: this,
|
|
153
91
|
listeners: {
|
|
154
|
-
onBeforeLoad: function
|
|
92
|
+
onBeforeLoad: function (store, options) {
|
|
155
93
|
utils.callback(listenersPops.onBeforeLoad, _this, [store, options]);
|
|
156
94
|
},
|
|
157
|
-
load: function
|
|
158
|
-
|
|
159
|
-
|
|
95
|
+
load: function (data, modelData, store) {
|
|
96
|
+
const newData = getAllData(data);
|
|
160
97
|
_this.setState({
|
|
161
98
|
dataSource: newData,
|
|
162
99
|
allDataSource: newData
|
|
163
100
|
});
|
|
164
|
-
|
|
165
101
|
utils.callback(listenersPops.load, _this, [data, modelData, store]);
|
|
166
102
|
},
|
|
167
|
-
dataChanged: function
|
|
168
|
-
|
|
169
|
-
|
|
103
|
+
dataChanged: function (data, modelData, store) {
|
|
104
|
+
const newData = getAllData(data);
|
|
170
105
|
_this.setState({
|
|
171
106
|
dataSource: newData,
|
|
172
107
|
allDataSource: newData
|
|
173
108
|
});
|
|
174
|
-
|
|
175
109
|
utils.callback(listenersPops.dataChanged, _this, [data, modelData, store]);
|
|
176
110
|
}
|
|
177
111
|
}
|
|
178
112
|
}, stores);
|
|
179
|
-
|
|
180
113
|
if ((viewname || url) && data == null && options == null) {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
114
|
+
let isCached = cached;
|
|
115
|
+
let isCacheKey = cacheKey;
|
|
184
116
|
if (viewname) {
|
|
185
117
|
if (typeof cached !== "boolean") {
|
|
186
118
|
isCached = true;
|
|
187
119
|
isCacheKey = isCacheKey ? isCacheKey : viewname;
|
|
188
120
|
}
|
|
189
121
|
}
|
|
190
|
-
|
|
191
122
|
storeProps = _objectSpread(_objectSpread({}, {
|
|
192
123
|
autoLoad: true,
|
|
193
124
|
url: url || requestViewUrl + viewname,
|
|
@@ -196,384 +127,336 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
|
|
|
196
127
|
cacheKey: isCacheKey
|
|
197
128
|
}), storeProps);
|
|
198
129
|
}
|
|
199
|
-
|
|
200
|
-
_this2.store = new Store(storeProps);
|
|
130
|
+
this.store = new Store(storeProps);
|
|
201
131
|
}
|
|
202
|
-
|
|
203
|
-
return _this2;
|
|
204
132
|
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
} else {
|
|
219
|
-
this.setState({
|
|
220
|
-
dataSource: allDataSource
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
}, {
|
|
225
|
-
key: "getData",
|
|
226
|
-
value: function getData() {
|
|
227
|
-
return this.state.allDataSource;
|
|
228
|
-
}
|
|
229
|
-
}, {
|
|
230
|
-
key: "getValue",
|
|
231
|
-
value: function getValue() {
|
|
232
|
-
return this.state.selectValue;
|
|
233
|
-
}
|
|
234
|
-
}, {
|
|
235
|
-
key: "setValue",
|
|
236
|
-
value: function setValue(value) {
|
|
133
|
+
resetData() {
|
|
134
|
+
const {
|
|
135
|
+
children
|
|
136
|
+
} = this.props;
|
|
137
|
+
const {
|
|
138
|
+
allDataSource,
|
|
139
|
+
allChildren
|
|
140
|
+
} = this.state;
|
|
141
|
+
if (children) {
|
|
142
|
+
this.setState({
|
|
143
|
+
children: allChildren
|
|
144
|
+
});
|
|
145
|
+
} else {
|
|
237
146
|
this.setState({
|
|
238
|
-
|
|
147
|
+
dataSource: allDataSource
|
|
239
148
|
});
|
|
240
149
|
}
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
150
|
+
}
|
|
151
|
+
getData() {
|
|
152
|
+
return this.state.allDataSource;
|
|
153
|
+
}
|
|
154
|
+
getValue() {
|
|
155
|
+
return this.state.selectValue;
|
|
156
|
+
}
|
|
157
|
+
setValue(value) {
|
|
158
|
+
this.setState({
|
|
159
|
+
selectValue: value
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
getSelectData(value) {
|
|
163
|
+
const {
|
|
164
|
+
dataSource
|
|
165
|
+
} = this.state;
|
|
166
|
+
let {
|
|
167
|
+
store = {},
|
|
168
|
+
valueField
|
|
169
|
+
} = this.props;
|
|
170
|
+
const {
|
|
171
|
+
viewname
|
|
172
|
+
} = store;
|
|
173
|
+
valueField = valueField ? valueField : viewname ? "dictKey" : "value";
|
|
174
|
+
const newData = getFlattenData(dataSource, {
|
|
175
|
+
keyField: valueField
|
|
176
|
+
});
|
|
177
|
+
return newData[value] || {};
|
|
178
|
+
}
|
|
179
|
+
componentDidMount() {
|
|
180
|
+
const {
|
|
181
|
+
data,
|
|
182
|
+
options,
|
|
183
|
+
children
|
|
184
|
+
} = this.props;
|
|
185
|
+
if (!children && (data || options)) {
|
|
186
|
+
this.setState({
|
|
187
|
+
dataSource: data ? data : options,
|
|
188
|
+
allDataSource: data ? data : options
|
|
189
|
+
});
|
|
190
|
+
} else if (children) {
|
|
191
|
+
this.setState({
|
|
192
|
+
children: children,
|
|
193
|
+
allChildren: children
|
|
253
194
|
});
|
|
254
|
-
return newData[value] || {};
|
|
255
195
|
}
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
196
|
+
}
|
|
197
|
+
componentDidUpdate(newProps, newState, Snapshot) {
|
|
198
|
+
const {
|
|
199
|
+
data,
|
|
200
|
+
options,
|
|
201
|
+
children
|
|
202
|
+
} = this.props;
|
|
203
|
+
const {
|
|
204
|
+
allDataSource,
|
|
205
|
+
allChildren
|
|
206
|
+
} = this.state;
|
|
207
|
+
if (!children && (data || options)) {
|
|
208
|
+
const newData = data ? data : options;
|
|
209
|
+
if (JSON.stringify(allDataSource) !== JSON.stringify(newData)) {
|
|
265
210
|
this.setState({
|
|
266
|
-
dataSource:
|
|
267
|
-
allDataSource:
|
|
211
|
+
dataSource: newData,
|
|
212
|
+
allDataSource: newData
|
|
268
213
|
});
|
|
269
|
-
}
|
|
214
|
+
}
|
|
215
|
+
} else if (children && Array.isArray(children)) {
|
|
216
|
+
const stateChildrenProps = [];
|
|
217
|
+
allChildren.map(s => {
|
|
218
|
+
stateChildrenProps.push(s.props);
|
|
219
|
+
});
|
|
220
|
+
const childrenProps = [];
|
|
221
|
+
children.map(c => {
|
|
222
|
+
childrenProps.push(c.props);
|
|
223
|
+
});
|
|
224
|
+
if (JSON.stringify(stateChildrenProps) !== JSON.stringify(childrenProps)) {
|
|
270
225
|
this.setState({
|
|
271
226
|
children: children,
|
|
272
227
|
allChildren: children
|
|
273
228
|
});
|
|
274
229
|
}
|
|
275
230
|
}
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
231
|
+
}
|
|
232
|
+
componentWillUnmount() {
|
|
233
|
+
this.setState = (state, callback) => {
|
|
234
|
+
return;
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
onSearch(value) {
|
|
238
|
+
const {
|
|
239
|
+
allDataSource,
|
|
240
|
+
allChildren
|
|
241
|
+
} = this.state;
|
|
242
|
+
const {
|
|
243
|
+
filterOption = true,
|
|
244
|
+
onSearch,
|
|
245
|
+
children,
|
|
246
|
+
store = {}
|
|
247
|
+
} = this.props;
|
|
248
|
+
let {
|
|
249
|
+
labelField
|
|
250
|
+
} = this.props;
|
|
251
|
+
const {
|
|
252
|
+
viewname
|
|
253
|
+
} = store;
|
|
254
|
+
labelField = labelField ? labelField : viewname ? "dictValue" : "label";
|
|
255
|
+
if (filterOption) {
|
|
256
|
+
let result = [];
|
|
257
|
+
if (!children) {
|
|
258
|
+
if (value) {
|
|
259
|
+
allDataSource.forEach(item => {
|
|
260
|
+
let label = "";
|
|
261
|
+
if (labelField.split(",").length == 1) {
|
|
262
|
+
label = item[labelField];
|
|
263
|
+
} else {
|
|
264
|
+
const labelFields = labelField.split(",");
|
|
265
|
+
labelFields.map((l, index) => {
|
|
266
|
+
label = index == 0 ? label + item[l] : label + "-" + item[l];
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
let flag = PinyinMatch.match(label, value);
|
|
270
|
+
if (flag) {
|
|
271
|
+
result.push(item);
|
|
272
|
+
}
|
|
273
|
+
});
|
|
291
274
|
this.setState({
|
|
292
|
-
dataSource:
|
|
293
|
-
allDataSource: newData
|
|
275
|
+
dataSource: result
|
|
294
276
|
});
|
|
295
|
-
}
|
|
296
|
-
} else if (children && Array.isArray(children)) {
|
|
297
|
-
var stateChildrenProps = [];
|
|
298
|
-
allChildren.map(function (s) {
|
|
299
|
-
stateChildrenProps.push(s.props);
|
|
300
|
-
});
|
|
301
|
-
var childrenProps = [];
|
|
302
|
-
children.map(function (c) {
|
|
303
|
-
childrenProps.push(c.props);
|
|
304
|
-
});
|
|
305
|
-
|
|
306
|
-
if (JSON.stringify(stateChildrenProps) !== JSON.stringify(childrenProps)) {
|
|
277
|
+
} else {
|
|
307
278
|
this.setState({
|
|
308
|
-
|
|
309
|
-
allChildren: children
|
|
279
|
+
dataSource: allDataSource
|
|
310
280
|
});
|
|
311
281
|
}
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
};
|
|
320
|
-
}
|
|
321
|
-
}, {
|
|
322
|
-
key: "onSearch",
|
|
323
|
-
value: function onSearch(value) {
|
|
324
|
-
var _this$state3 = this.state,
|
|
325
|
-
allDataSource = _this$state3.allDataSource,
|
|
326
|
-
allChildren = _this$state3.allChildren;
|
|
327
|
-
var _this$props4 = this.props,
|
|
328
|
-
_this$props4$filterOp = _this$props4.filterOption,
|
|
329
|
-
filterOption = _this$props4$filterOp === void 0 ? true : _this$props4$filterOp,
|
|
330
|
-
onSearch = _this$props4.onSearch,
|
|
331
|
-
children = _this$props4.children,
|
|
332
|
-
_this$props4$store = _this$props4.store,
|
|
333
|
-
store = _this$props4$store === void 0 ? {} : _this$props4$store;
|
|
334
|
-
var labelField = this.props.labelField;
|
|
335
|
-
var viewname = store.viewname;
|
|
336
|
-
labelField = labelField ? labelField : viewname ? "dictValue" : "label";
|
|
337
|
-
|
|
338
|
-
if (filterOption) {
|
|
339
|
-
var result = [];
|
|
340
|
-
|
|
341
|
-
if (!children) {
|
|
342
|
-
if (value) {
|
|
343
|
-
allDataSource.forEach(function (item) {
|
|
344
|
-
var label = "";
|
|
345
|
-
|
|
346
|
-
if (labelField.split(",").length == 1) {
|
|
347
|
-
label = item[labelField];
|
|
348
|
-
} else {
|
|
349
|
-
var labelFields = labelField.split(",");
|
|
350
|
-
labelFields.map(function (l, index) {
|
|
351
|
-
label = index == 0 ? label + item[l] : label + "-" + item[l];
|
|
352
|
-
});
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
var flag = PinyinMatch.match(label, value);
|
|
356
|
-
|
|
282
|
+
} else {
|
|
283
|
+
if (value) {
|
|
284
|
+
if (Array.isArray(allChildren)) {
|
|
285
|
+
allChildren.map((child, index) => {
|
|
286
|
+
var _child$props;
|
|
287
|
+
let label = child === null || child === void 0 || (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.children;
|
|
288
|
+
let flag = PinyinMatch.match(label, value);
|
|
357
289
|
if (flag) {
|
|
358
|
-
result.push(
|
|
290
|
+
result.push(child);
|
|
359
291
|
}
|
|
360
292
|
});
|
|
361
|
-
this.setState({
|
|
362
|
-
dataSource: result
|
|
363
|
-
});
|
|
364
|
-
} else {
|
|
365
|
-
this.setState({
|
|
366
|
-
dataSource: allDataSource
|
|
367
|
-
});
|
|
368
|
-
}
|
|
369
|
-
} else {
|
|
370
|
-
if (value) {
|
|
371
|
-
if (Array.isArray(allChildren)) {
|
|
372
|
-
allChildren.map(function (child, index) {
|
|
373
|
-
var _child$props;
|
|
374
|
-
|
|
375
|
-
var label = child === null || child === void 0 ? void 0 : (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.children;
|
|
376
|
-
var flag = PinyinMatch.match(label, value);
|
|
377
|
-
|
|
378
|
-
if (flag) {
|
|
379
|
-
result.push(child);
|
|
380
|
-
}
|
|
381
|
-
});
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
this.setState({
|
|
385
|
-
children: result
|
|
386
|
-
});
|
|
387
|
-
} else {
|
|
388
|
-
this.setState({
|
|
389
|
-
children: children
|
|
390
|
-
});
|
|
391
293
|
}
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
onSearch && onSearch(value);
|
|
396
|
-
}
|
|
397
|
-
}, {
|
|
398
|
-
key: "renderOption",
|
|
399
|
-
value: function renderOption(optionData) {
|
|
400
|
-
var _this$props5 = this.props,
|
|
401
|
-
_this$props5$store = _this$props5.store,
|
|
402
|
-
store = _this$props5$store === void 0 ? {} : _this$props5$store,
|
|
403
|
-
_this$props5$valueTyp = _this$props5.valueType,
|
|
404
|
-
valueType = _this$props5$valueTyp === void 0 ? "string" : _this$props5$valueTyp,
|
|
405
|
-
labelField = _this$props5.labelField,
|
|
406
|
-
valueField = _this$props5.valueField;
|
|
407
|
-
var viewname = store.viewname;
|
|
408
|
-
valueField = valueField ? valueField : viewname ? "dictKey" : "value";
|
|
409
|
-
labelField = labelField ? labelField : viewname ? "dictValue" : "label";
|
|
410
|
-
return optionData.map(function (item) {
|
|
411
|
-
var value;
|
|
412
|
-
|
|
413
|
-
if (valueField.split(",").length == 1) {
|
|
414
|
-
value = valueType === "number" ? Number(item[valueField]) : item[valueField];
|
|
415
|
-
} else {
|
|
416
|
-
var valueFields = valueField.split(",");
|
|
417
|
-
value = '';
|
|
418
|
-
valueFields.map(function (v, index) {
|
|
419
|
-
value = index == 0 ? value + item[v] : value + "," + item[v];
|
|
294
|
+
this.setState({
|
|
295
|
+
children: result
|
|
420
296
|
});
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
var key = item.id ? item.id !== "undefined" ? item.id : value : value;
|
|
424
|
-
var label = "";
|
|
425
|
-
|
|
426
|
-
if (labelField.split(",").length == 1) {
|
|
427
|
-
label = item[labelField];
|
|
428
297
|
} else {
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
label = index == 0 ? label + item[l] : label + "-" + item[l];
|
|
298
|
+
this.setState({
|
|
299
|
+
children: children
|
|
432
300
|
});
|
|
433
301
|
}
|
|
434
|
-
|
|
435
|
-
return /*#__PURE__*/React.createElement(Option, {
|
|
436
|
-
key: key,
|
|
437
|
-
value: value,
|
|
438
|
-
label: label,
|
|
439
|
-
disabled: item.disabled ? true : false
|
|
440
|
-
}, label);
|
|
441
|
-
});
|
|
302
|
+
}
|
|
442
303
|
}
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
304
|
+
onSearch && onSearch(value);
|
|
305
|
+
}
|
|
306
|
+
renderOption(optionData) {
|
|
307
|
+
let {
|
|
308
|
+
store = {},
|
|
309
|
+
valueType = "string",
|
|
310
|
+
labelField,
|
|
311
|
+
valueField
|
|
312
|
+
} = this.props;
|
|
313
|
+
const {
|
|
314
|
+
viewname
|
|
315
|
+
} = store;
|
|
316
|
+
valueField = valueField ? valueField : viewname ? "dictKey" : "value";
|
|
317
|
+
labelField = labelField ? labelField : viewname ? "dictValue" : "label";
|
|
318
|
+
return optionData.map(item => {
|
|
319
|
+
let value;
|
|
320
|
+
if (valueField.split(",").length == 1) {
|
|
321
|
+
value = valueType === "number" ? Number(item[valueField]) : item[valueField];
|
|
456
322
|
} else {
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
if (label && showGroup) {
|
|
463
|
-
if (!optGroupData[label]) optGroupData[label] = [];
|
|
464
|
-
optGroupData[label].push(item);
|
|
465
|
-
} else {
|
|
466
|
-
optionData.push(item);
|
|
467
|
-
}
|
|
323
|
+
const valueFields = valueField.split(",");
|
|
324
|
+
value = '';
|
|
325
|
+
valueFields.map((v, index) => {
|
|
326
|
+
value = index == 0 ? value + item[v] : value + "," + item[v];
|
|
468
327
|
});
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
328
|
+
}
|
|
329
|
+
let key = item.id ? item.id !== "undefined" ? item.id : value : value;
|
|
330
|
+
let label = "";
|
|
331
|
+
if (labelField.split(",").length == 1) {
|
|
332
|
+
label = item[labelField];
|
|
333
|
+
} else {
|
|
334
|
+
const labelFields = labelField.split(",");
|
|
335
|
+
labelFields.map((l, index) => {
|
|
336
|
+
label = index == 0 ? label + item[l] : label + "-" + item[l];
|
|
475
337
|
});
|
|
476
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, option, optGroup);
|
|
477
338
|
}
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
339
|
+
return /*#__PURE__*/React.createElement(Option, {
|
|
340
|
+
key: key,
|
|
341
|
+
value: value,
|
|
342
|
+
label: label,
|
|
343
|
+
disabled: item.disabled ? true : false
|
|
344
|
+
}, label);
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
renderChildren() {
|
|
348
|
+
const {
|
|
349
|
+
showGroup = true
|
|
350
|
+
} = this.props;
|
|
351
|
+
const {
|
|
352
|
+
dataSource,
|
|
353
|
+
children
|
|
354
|
+
} = this.state;
|
|
355
|
+
if (children) {
|
|
356
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
357
|
+
} else {
|
|
358
|
+
let optGroupData = {},
|
|
359
|
+
optionData = [];
|
|
360
|
+
dataSource.forEach(item => {
|
|
361
|
+
let label = item.groupName;
|
|
362
|
+
if (label && showGroup) {
|
|
363
|
+
if (!optGroupData[label]) optGroupData[label] = [];
|
|
364
|
+
optGroupData[label].push(item);
|
|
365
|
+
} else {
|
|
366
|
+
optionData.push(item);
|
|
367
|
+
}
|
|
485
368
|
});
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
369
|
+
let option = this.renderOption(optionData);
|
|
370
|
+
let optGroup = Object.keys(optGroupData).map(key => {
|
|
371
|
+
return /*#__PURE__*/React.createElement(OptGroup, {
|
|
372
|
+
key: key,
|
|
373
|
+
label: key
|
|
374
|
+
}, this.renderOption(optGroupData[key]));
|
|
375
|
+
});
|
|
376
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, option, optGroup);
|
|
491
377
|
}
|
|
492
|
-
}
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
378
|
+
}
|
|
379
|
+
onChange(value, options) {
|
|
380
|
+
const {
|
|
381
|
+
onChange
|
|
382
|
+
} = this.props;
|
|
383
|
+
this.setState({
|
|
384
|
+
selectValue: value
|
|
385
|
+
});
|
|
386
|
+
if (onChange) {
|
|
387
|
+
const data = this.getSelectData(value);
|
|
388
|
+
onChange(value, options, data);
|
|
501
389
|
}
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
390
|
+
}
|
|
391
|
+
onSelect(value, options) {
|
|
392
|
+
const {
|
|
393
|
+
onSelect
|
|
394
|
+
} = this.props;
|
|
395
|
+
if (onSelect) {
|
|
396
|
+
const data = this.getSelectData(value);
|
|
397
|
+
onSelect(value, options, data);
|
|
508
398
|
}
|
|
509
|
-
}
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
children = _this$props6.children,
|
|
514
|
-
store = _this$props6.store,
|
|
515
|
-
data = _this$props6.data,
|
|
516
|
-
onChange = _this$props6.onChange,
|
|
517
|
-
onSelect = _this$props6.onSelect,
|
|
518
|
-
options = _this$props6.options,
|
|
519
|
-
labelField = _this$props6.labelField,
|
|
520
|
-
valueField = _this$props6.valueField,
|
|
521
|
-
defaultStyle = _this$props6.defaultStyle,
|
|
522
|
-
_this$props6$showGrou = _this$props6.showGroup,
|
|
523
|
-
showGroup = _this$props6$showGrou === void 0 ? true : _this$props6$showGrou,
|
|
524
|
-
addData = _this$props6.addData,
|
|
525
|
-
deleteData = _this$props6.deleteData,
|
|
526
|
-
valueType = _this$props6.valueType,
|
|
527
|
-
params = _objectWithoutProperties(_this$props6, _excluded2);
|
|
528
|
-
|
|
529
|
-
var props = {
|
|
530
|
-
filterOption: false,
|
|
531
|
-
showSearch: true,
|
|
532
|
-
optionFilterProp: "label",
|
|
533
|
-
placeholder: "请选择",
|
|
534
|
-
allowClear: true
|
|
535
|
-
};
|
|
536
|
-
|
|
537
|
-
var _config2 = config(),
|
|
538
|
-
antdStyle = _config2.antdStyle,
|
|
539
|
-
mountElementId = _config2.mountElementId;
|
|
540
|
-
|
|
541
|
-
if (mountElementId) {
|
|
542
|
-
props = _objectSpread({
|
|
543
|
-
getPopupContainer: function getPopupContainer() {
|
|
544
|
-
return document.getElementById(mountElementId);
|
|
545
|
-
}
|
|
546
|
-
}, props);
|
|
547
|
-
}
|
|
548
|
-
|
|
549
|
-
if ((defaultStyle || antdStyle) && defaultStyle === true) {
|
|
550
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
551
|
-
className: cls(styles["nsc_select"], this.props.className)
|
|
552
|
-
}, /*#__PURE__*/React.createElement(_Select, _extends({
|
|
553
|
-
value: this.state.selectValue,
|
|
554
|
-
onChange: this.onChange.bind(this),
|
|
555
|
-
onSearch: this.onSearch.bind(this),
|
|
556
|
-
onSelect: this.onSelect.bind(this),
|
|
557
|
-
onDropdownVisibleChange: this.onDropdownVisibleChange.bind(this)
|
|
558
|
-
}, props, params), this.renderChildren()));
|
|
559
|
-
} else {
|
|
560
|
-
return /*#__PURE__*/React.createElement(_Select, _extends({
|
|
561
|
-
value: this.state.selectValue,
|
|
562
|
-
onSearch: this.onSearch.bind(this),
|
|
563
|
-
onChange: this.onChange.bind(this),
|
|
564
|
-
onSelect: this.onSelect.bind(this),
|
|
565
|
-
onDropdownVisibleChange: this.onDropdownVisibleChange.bind(this)
|
|
566
|
-
}, props, params), this.renderChildren());
|
|
567
|
-
}
|
|
399
|
+
}
|
|
400
|
+
onDropdownVisibleChange(open) {
|
|
401
|
+
if (!open) {
|
|
402
|
+
this.resetData();
|
|
568
403
|
}
|
|
569
|
-
}
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
404
|
+
}
|
|
405
|
+
render() {
|
|
406
|
+
const _this$props = this.props,
|
|
407
|
+
{
|
|
408
|
+
children,
|
|
409
|
+
store,
|
|
410
|
+
data,
|
|
411
|
+
onChange,
|
|
412
|
+
onSelect,
|
|
413
|
+
options,
|
|
414
|
+
labelField,
|
|
415
|
+
valueField,
|
|
416
|
+
defaultStyle,
|
|
417
|
+
showGroup = true,
|
|
418
|
+
addData,
|
|
419
|
+
deleteData,
|
|
420
|
+
valueType
|
|
421
|
+
} = _this$props,
|
|
422
|
+
params = _objectWithoutProperties(_this$props, _excluded2);
|
|
423
|
+
let props = {
|
|
424
|
+
filterOption: false,
|
|
425
|
+
showSearch: true,
|
|
426
|
+
optionFilterProp: "label",
|
|
427
|
+
placeholder: "请选择",
|
|
428
|
+
allowClear: true
|
|
429
|
+
};
|
|
430
|
+
let {
|
|
431
|
+
antdStyle,
|
|
432
|
+
mountElementId
|
|
433
|
+
} = config();
|
|
434
|
+
if (mountElementId) {
|
|
435
|
+
props = _objectSpread({
|
|
436
|
+
getPopupContainer: () => document.getElementById(mountElementId)
|
|
437
|
+
}, props);
|
|
438
|
+
}
|
|
439
|
+
if ((defaultStyle || antdStyle) && defaultStyle === true) {
|
|
440
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
441
|
+
className: cls(styles["nsc_select"], this.props.className)
|
|
442
|
+
}, /*#__PURE__*/React.createElement(_Select, _extends({
|
|
443
|
+
value: this.state.selectValue,
|
|
444
|
+
onChange: this.onChange.bind(this),
|
|
445
|
+
onSearch: this.onSearch.bind(this),
|
|
446
|
+
onSelect: this.onSelect.bind(this),
|
|
447
|
+
onDropdownVisibleChange: this.onDropdownVisibleChange.bind(this)
|
|
448
|
+
}, props, params), this.renderChildren()));
|
|
449
|
+
} else {
|
|
450
|
+
return /*#__PURE__*/React.createElement(_Select, _extends({
|
|
451
|
+
value: this.state.selectValue,
|
|
452
|
+
onSearch: this.onSearch.bind(this),
|
|
453
|
+
onChange: this.onChange.bind(this),
|
|
454
|
+
onSelect: this.onSelect.bind(this),
|
|
455
|
+
onDropdownVisibleChange: this.onDropdownVisibleChange.bind(this)
|
|
456
|
+
}, props, params), this.renderChildren());
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
}
|
|
574
460
|
_defineProperty(NSCSelect, "Option", Option);
|
|
575
|
-
|
|
576
461
|
_defineProperty(NSCSelect, "OptGroup", OptGroup);
|
|
577
|
-
|
|
578
|
-
export { NSCSelect as default };
|
|
579
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2Uvc2VsZWN0L2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJTdG9yZSIsInV0aWxzIiwiY29uZmlnIiwic3R5bGVzIiwiY2xzIiwiUGlueWluTWF0Y2giLCJnZXRGbGF0dGVuRGF0YSIsIk9wdGlvbiIsIk9wdEdyb3VwIiwiTlNDU2VsZWN0IiwicHJvcHMiLCJkYXRhU291cmNlIiwic2VsZWN0VmFsdWUiLCJhbGxEYXRhU291cmNlIiwiY2hpbGRyZW4iLCJhbGxDaGlsZHJlbiIsImRhdGEiLCJzdG9yZSIsIm9wdGlvbnMiLCJhZGREYXRhIiwiZGVsZXRlRGF0YSIsInVybCIsImxpc3RlbmVycyIsImxpc3RlbmVyc1BvcHMiLCJ2aWV3bmFtZSIsImNhY2hlZCIsImNhY2hlS2V5Iiwidmlld3R5cGUiLCJzdG9yZXMiLCJ2YWx1ZUZpZWxkIiwidmlld1VybCIsInZpZXdCaXpVcmwiLCJyZXF1ZXN0Vmlld1VybCIsImdldEFsbERhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJuZXdEYXRhIiwibGVuZ3RoIiwic3BsaWNlRGF0YSIsInZhbHVlRmllbGRzIiwic3BsaXQiLCJtYXAiLCJpdGVtIiwiaSIsInZhbHVlIiwidiIsImluZGV4IiwiaW5kZXhPZiIsInB1c2giLCJFcnJvciIsIl90aGlzIiwic3RvcmVQcm9wcyIsIm1vZGVsIiwiY29tcG9uZW50Iiwib25CZWZvcmVMb2FkIiwiY2FsbGJhY2siLCJsb2FkIiwibW9kZWxEYXRhIiwic2V0U3RhdGUiLCJkYXRhQ2hhbmdlZCIsImlzQ2FjaGVkIiwiaXNDYWNoZUtleSIsImF1dG9Mb2FkIiwic3RhdGUiLCJrZXlGaWVsZCIsIm5ld1Byb3BzIiwibmV3U3RhdGUiLCJTbmFwc2hvdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGF0ZUNoaWxkcmVuUHJvcHMiLCJzIiwiY2hpbGRyZW5Qcm9wcyIsImMiLCJmaWx0ZXJPcHRpb24iLCJvblNlYXJjaCIsImxhYmVsRmllbGQiLCJyZXN1bHQiLCJmb3JFYWNoIiwibGFiZWwiLCJsYWJlbEZpZWxkcyIsImwiLCJmbGFnIiwibWF0Y2giLCJjaGlsZCIsIm9wdGlvbkRhdGEiLCJ2YWx1ZVR5cGUiLCJOdW1iZXIiLCJrZXkiLCJpZCIsImRpc2FibGVkIiwic2hvd0dyb3VwIiwib3B0R3JvdXBEYXRhIiwiZ3JvdXBOYW1lIiwib3B0aW9uIiwicmVuZGVyT3B0aW9uIiwib3B0R3JvdXAiLCJPYmplY3QiLCJrZXlzIiwib25DaGFuZ2UiLCJnZXRTZWxlY3REYXRhIiwib25TZWxlY3QiLCJvcGVuIiwicmVzZXREYXRhIiwiZGVmYXVsdFN0eWxlIiwicGFyYW1zIiwic2hvd1NlYXJjaCIsIm9wdGlvbkZpbHRlclByb3AiLCJwbGFjZWhvbGRlciIsImFsbG93Q2xlYXIiLCJhbnRkU3R5bGUiLCJtb3VudEVsZW1lbnRJZCIsImdldFBvcHVwQ29udGFpbmVyIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImNsYXNzTmFtZSIsImJpbmQiLCJvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZSIsInJlbmRlckNoaWxkcmVuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFQLElBQWdCQyxhQUFoQixRQUFxQyxPQUFyQztBQUVBLE9BQU9DLEtBQVAsTUFBa0MsYUFBbEM7QUFDQSxTQUFTQyxLQUFULFFBQXNCLHVCQUF0QjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLGNBQW5CO0FBQ0EsT0FBT0MsR0FBUCxNQUFnQixZQUFoQjtBQUVBLE9BQU9DLFdBQVAsTUFBd0IsY0FBeEI7QUFDQSxTQUFTQyxjQUFULFFBQStCLG1CQUEvQjtBQUNBLElBQVFDLE1BQVIsV0FBUUEsTUFBUjtBQUFBLElBQWdCQyxRQUFoQixXQUFnQkEsUUFBaEI7O0lBaUJxQkMsUzs7Ozs7QUFXbkIscUJBQVlD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QkFBdUIsRUFBRSxLQUFLQyx1QkFBTCxDQUE2QkQsSUFBN0IsQ0FBa0MsSUFBbEM7QUFMM0IsV0FNTTFHLEtBTk4sRUFPTStGLE1BUE4sR0FTRyxLQUFLYSxjQUFMLEVBVEgsQ0FERixDQURGO0FBZUQsT0FoQkQsTUFnQk87QUFDTCw0QkFDRTtBQUNFLFVBQUEsS0FBSyxFQUFFLEtBQUt2RCxLQUFMLENBQVduRCxXQURwQjtBQUVFLFVBQUEsUUFBUSxFQUFFLEtBQUsrRCxRQUFMLENBQWN5QyxJQUFkLENBQW1CLElBQW5CLENBRlo7QUFHRSxVQUFBLFFBQVEsRUFBRSxLQUFLakIsUUFBTCxDQUFjaUIsSUFBZCxDQUFtQixJQUFuQixDQUhaO0FBSUUsVUFBQSxRQUFRLEVBQUUsS0FBS2YsUUFBTCxDQUFjZSxJQUFkLENBQW1CLElBQW5CLENBSlo7QUFLRSxVQUFBLHVCQUF1QixFQUFFLEtBQUtDLHVCQUFMLENBQTZCRCxJQUE3QixDQUFrQyxJQUFsQztBQUwzQixXQU1NMUcsS0FOTixFQU9NK0YsTUFQTixHQVNHLEtBQUthLGNBQUwsRUFUSCxDQURGO0FBYUQ7QUFDRjs7OztFQTVab0N2SCxhOztnQkFBbEJVLFMsWUFDSEYsTTs7Z0JBREdFLFMsY0FFREQsUTs7U0FGQ0MsUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFNlbGVjdCwgU2VsZWN0UHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgU3RvcmUsIHsgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCBQaW55aW5NYXRjaCBmcm9tIFwicGlueWluLW1hdGNoXCI7XHJcbmltcG9ydCB7IGdldEZsYXR0ZW5EYXRhIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmNvbnN0IHsgT3B0aW9uLCBPcHRHcm91cCB9ID0gU2VsZWN0O1xyXG5cclxuaW50ZXJmYWNlIElTZWxlY3RQcm9wcyBleHRlbmRzIFNlbGVjdFByb3BzPGFueT4ge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBkYXRhPzogQXJyYXk8T2JqZWN0PjsgLy/pu5jorqTmlbDmja5cclxuICBsYWJlbEZpZWxkPzogc3RyaW5nO1xyXG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XHJcbiAgZGVmYXVsdFN0eWxlPzogYm9vbGVhbjtcclxuICBzaG93R3JvdXA/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuWIhue7hFxyXG4gIGFkZERhdGE/OiBBcnJheTxPYmplY3Q+OyAvL+mFjeWQiHN0b3Jl5L2/55So77yM5LuO5aKe5Yqg6aKd5aSW55qE5pWw5o2uXHJcbiAgZGVsZXRlRGF0YT86IEFycmF5PFN0cmluZz47IC8v6YWN5ZCIc3RvcmXkvb/nlKjvvIzliKDpmaTku47mlbDmja7lupPkuK3ojrflj5bliLDnmoTmjIflrprmlbDmja5cclxuICB2YWx1ZUJyZWFrPzogc3RyaW5nOyAvL+WkmuS4qnZhbHVl5L2/55So55qE5YiG6ZqU56ymXHJcbiAgdmFsdWVUeXBlPzogXCJzdHJpbmdcIiB8IFwibnVtYmVyXCI7XHJcbiAgW3Byb05hbWU6IHN0cmluZ106IGFueTtcclxuICBvbkNoYW5nZT86IGFueTtcclxuICBvblNlbGVjdD86IGFueTtcclxufVxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOU0NTZWxlY3QgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PElTZWxlY3RQcm9wcz4ge1xyXG4gIHN0YXRpYyBPcHRpb24gPSBPcHRpb247XHJcbiAgc3RhdGljIE9wdEdyb3VwID0gT3B0R3JvdXA7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBkYXRhU291cmNlOiBbXSxcclxuICAgIHNlbGVjdFZhbHVlOiBudWxsLFxyXG4gICAgYWxsRGF0YVNvdXJjZTogW10sXHJcbiAgICBjaGlsZHJlbjogbnVsbCxcclxuICAgIGFsbENoaWxkcmVuOiBudWxsLFxyXG4gIH07XHJcbiAgc3RvcmUgPSB7fSBhcyBTdG9yZVByb3BzO1xyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHN0b3JlID0ge30sXHJcbiAgICAgIGNoaWxkcmVuLFxyXG4gICAgICBvcHRpb25zLFxyXG4gICAgICBhZGREYXRhID0gW10sXHJcbiAgICAgIGRlbGV0ZURhdGEgPSBbXSxcclxuICAgIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHtcclxuICAgICAgdXJsLFxyXG4gICAgICBsaXN0ZW5lcnM6IGxpc3RlbmVyc1BvcHMgPSB7fSxcclxuICAgICAgdmlld25hbWUsXHJcbiAgICAgIGNhY2hlZCxcclxuICAgICAgY2FjaGVLZXksXHJcbiAgICAgIHZpZXd0eXBlID0gXCJzeXNcIixcclxuICAgICAgLi4uc3RvcmVzXHJcbiAgICB9ID0gc3RvcmU7XHJcbiAgICBjb25zdCB2YWx1ZUZpZWxkID0gdmlld25hbWUgPyBcImRpY3RLZXlcIiA6IFwidmFsdWVcIjtcclxuICAgIGxldCB7IHZpZXdVcmwsIHZpZXdCaXpVcmwgfSA9IGNvbmZpZygpO1xyXG4gICAgbGV0IHJlcXVlc3RWaWV3VXJsID0gdmlld3R5cGUgPT0gXCJzeXNcIiA/IHZpZXdVcmwgOiB2aWV3Qml6VXJsO1xyXG4gICAgY29uc3QgZ2V0QWxsRGF0YSA9IChkYXRhKSA9PiB7XHJcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShkYXRhKSkge1xyXG4gICAgICAgIHJldHVybiBbXTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbmV3RGF0YSA9IFsuLi5kYXRhXTtcclxuICAgICAgaWYgKGFkZERhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIG5ld0RhdGEgPSBbLi4uYWRkRGF0YSwgLi4ubmV3RGF0YV07XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGRlbGV0ZURhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGxldCBzcGxpY2VEYXRhID0gW107XHJcbiAgICAgICAgY29uc3QgdmFsdWVGaWVsZHM6IGFueSA9IHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgIG5ld0RhdGEubWFwKChpdGVtLCBpKSA9PiB7XHJcbiAgICAgICAgICBsZXQgdmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgdmFsdWVGaWVsZHMubWFwKCh2LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IGluZGV4ID09IDAgPyB2YWx1ZSArIGl0ZW1bdl0gOiB2YWx1ZSArIFwiLFwiICsgaXRlbVt2XTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaWYgKGRlbGV0ZURhdGEuaW5kZXhPZih2YWx1ZSkgPT0gLTEpIHtcclxuICAgICAgICAgICAgc3BsaWNlRGF0YS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBzcGxpY2VEYXRhO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBuZXdEYXRhO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgaWYgKCFjaGlsZHJlbikge1xyXG4gICAgICBpZiAoIShkYXRhIHx8IHZpZXduYW1lIHx8IHVybCB8fCBvcHRpb25zKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOOAgXZpZXduYW1l44CBZGF0YeOAgW9wdGlvbnPkuI3og73pg73kuLrnqbrvvIFcIik7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgICAgbGV0IHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgbW9kZWw6IFwibW9kZWxcIixcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgbGlzdGVuZXJzOiB7XHJcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IGZ1bmN0aW9uIChzdG9yZSwgb3B0aW9ucykge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLm9uQmVmb3JlTG9hZCwgX3RoaXMsIFtzdG9yZSwgb3B0aW9uc10pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxvYWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBnZXRBbGxEYXRhKGRhdGEpO1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGRhdGFTb3VyY2U6IG5ld0RhdGEsIGFsbERhdGFTb3VyY2U6IG5ld0RhdGEgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMubG9hZCwgX3RoaXMsIFtkYXRhLCBtb2RlbERhdGEsIHN0b3JlXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZGF0YUNoYW5nZWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBnZXRBbGxEYXRhKGRhdGEpO1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGRhdGFTb3VyY2U6IG5ld0RhdGEsIGFsbERhdGFTb3VyY2U6IG5ld0RhdGEgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMuZGF0YUNoYW5nZWQsIF90aGlzLCBbXHJcbiAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICBtb2RlbERhdGEsXHJcbiAgICAgICAgICAgICAgc3RvcmUsXHJcbiAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLnN0b3JlcyxcclxuICAgICAgfTtcclxuICAgICAgaWYgKCh2aWV3bmFtZSB8fCB1cmwpICYmIGRhdGEgPT0gbnVsbCAmJiBvcHRpb25zID09IG51bGwpIHtcclxuICAgICAgICBsZXQgaXNDYWNoZWQgPSBjYWNoZWQ7XHJcbiAgICAgICAgbGV0IGlzQ2FjaGVLZXkgPSBjYWNoZUtleTtcclxuICAgICAgICBpZiAodmlld25hbWUpIHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgY2FjaGVkICE9PSBcImJvb2xlYW5cIikge1xyXG4gICAgICAgICAgICBpc0NhY2hlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIGlzQ2FjaGVLZXkgPSBpc0NhY2hlS2V5ID8gaXNDYWNoZUtleSA6IHZpZXduYW1lO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICAgIC4uLntcclxuICAgICAgICAgICAgYXV0b0xvYWQ6IHRydWUsXHJcbiAgICAgICAgICAgIHVybDogdXJsIHx8IHJlcXVlc3RWaWV3VXJsICsgdmlld25hbWUsIC8v6K+75a2X5YW477yMdXJs5Zu65a6a77yMdmlld25hbWVcclxuICAgICAgICAgICAgY2FjaGVkOiBpc0NhY2hlZCxcclxuICAgICAgICAgICAgY2FjaGVLZXk6IGlzQ2FjaGVLZXksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4uc3RvcmVQcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgU3RvcmUoc3RvcmVQcm9wcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldERhdGEoKSB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBhbGxEYXRhU291cmNlLCBhbGxDaGlsZHJlbiB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmIChjaGlsZHJlbikge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHsgY2hpbGRyZW46IGFsbENoaWxkcmVuIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgZGF0YVNvdXJjZTogYWxsRGF0YVNvdXJjZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXREYXRhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuYWxsRGF0YVNvdXJjZTtcclxuICB9XHJcblxyXG4gIGdldFZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XHJcbiAgfVxyXG4gIHNldFZhbHVlKHZhbHVlKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0VmFsdWU6IHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3REYXRhKHZhbHVlKSB7XHJcbiAgICBjb25zdCB7IGRhdGFTb3VyY2UgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgeyBzdG9yZSA9IHt9LCB2YWx1ZUZpZWxkIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyB2aWV3bmFtZSB9ID0gc3RvcmU7XHJcbiAgICB2YWx1ZUZpZWxkID0gdmFsdWVGaWVsZCA/IHZhbHVlRmllbGQgOiB2aWV3bmFtZSA/IFwiZGljdEtleVwiIDogXCJ2YWx1ZVwiO1xyXG4gICAgY29uc3QgbmV3RGF0YSA9IGdldEZsYXR0ZW5EYXRhKGRhdGFTb3VyY2UsIHsga2V5RmllbGQ6IHZhbHVlRmllbGQgfSk7XHJcbiAgICByZXR1cm4gbmV3RGF0YVt2YWx1ZV0gfHwge307XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIWNoaWxkcmVuICYmIChkYXRhIHx8IG9wdGlvbnMpKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRhdGFTb3VyY2U6IGRhdGEgPyBkYXRhIDogb3B0aW9ucyxcclxuICAgICAgICBhbGxEYXRhU291cmNlOiBkYXRhID8gZGF0YSA6IG9wdGlvbnMsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW4sXHJcbiAgICAgICAgYWxsQ2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKG5ld1Byb3BzLCBuZXdTdGF0ZSwgU25hcHNob3QpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGFsbERhdGFTb3VyY2UsIGFsbENoaWxkcmVuIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgaWYgKCFjaGlsZHJlbiAmJiAoZGF0YSB8fCBvcHRpb25zKSkge1xyXG4gICAgICBjb25zdCBuZXdEYXRhID0gZGF0YSA/IGRhdGEgOiBvcHRpb25zO1xyXG4gICAgICBpZiAoSlNPTi5zdHJpbmdpZnkoYWxsRGF0YVNvdXJjZSkgIT09IEpTT04uc3RyaW5naWZ5KG5ld0RhdGEpKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBkYXRhU291cmNlOiBuZXdEYXRhLFxyXG4gICAgICAgICAgYWxsRGF0YVNvdXJjZTogbmV3RGF0YSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbiAmJiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xyXG4gICAgICBjb25zdCBzdGF0ZUNoaWxkcmVuUHJvcHM6IGFueSA9IFtdO1xyXG4gICAgICBhbGxDaGlsZHJlbi5tYXAoKHM6IGFueSkgPT4ge1xyXG4gICAgICAgIHN0YXRlQ2hpbGRyZW5Qcm9wcy5wdXNoKHMucHJvcHMpO1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgY2hpbGRyZW5Qcm9wczogYW55ID0gW107XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoYzogYW55KSA9PiB7XHJcbiAgICAgICAgY2hpbGRyZW5Qcm9wcy5wdXNoKGMucHJvcHMpO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHN0YXRlQ2hpbGRyZW5Qcm9wcykgIT09IEpTT04uc3RyaW5naWZ5KGNoaWxkcmVuUHJvcHMpXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICAgICAgYWxsQ2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSA9IChzdGF0ZSwgY2FsbGJhY2spID0+IHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfTtcclxuICB9XHJcbiAgb25TZWFyY2godmFsdWUpIHtcclxuICAgIGNvbnN0IHsgYWxsRGF0YVNvdXJjZSwgYWxsQ2hpbGRyZW4gfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IGZpbHRlck9wdGlvbiA9IHRydWUsIG9uU2VhcmNoLCBjaGlsZHJlbiwgc3RvcmUgPSB7fSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCB7IGxhYmVsRmllbGQgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHZpZXduYW1lIH0gPSBzdG9yZTtcclxuICAgIGxhYmVsRmllbGQgPSBsYWJlbEZpZWxkID8gbGFiZWxGaWVsZCA6IHZpZXduYW1lID8gXCJkaWN0VmFsdWVcIiA6IFwibGFiZWxcIjtcclxuICAgIGlmIChmaWx0ZXJPcHRpb24pIHtcclxuICAgICAgbGV0IHJlc3VsdCA9IFtdO1xyXG4gICAgICBpZiAoIWNoaWxkcmVuKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICBhbGxEYXRhU291cmNlLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgbGV0IGxhYmVsID0gXCJcIjtcclxuICAgICAgICAgICAgaWYgKGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgbGFiZWwgPSBpdGVtW2xhYmVsRmllbGRdO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhYmVsRmllbGRzOiBhbnkgPSBsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICAgICAgICBsYWJlbEZpZWxkcy5tYXAoKGwsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbCA9IGluZGV4ID09IDAgPyBsYWJlbCArIGl0ZW1bbF0gOiBsYWJlbCArIFwiLVwiICsgaXRlbVtsXTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgZmxhZyA9IFBpbnlpbk1hdGNoLm1hdGNoKGxhYmVsLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgICAgICAgcmVzdWx0LnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IHJlc3VsdCxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgZGF0YVNvdXJjZTogYWxsRGF0YVNvdXJjZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFsbENoaWxkcmVuKSkge1xyXG4gICAgICAgICAgICBhbGxDaGlsZHJlbi5tYXAoKGNoaWxkOiBhbnksIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgbGV0IGxhYmVsID0gY2hpbGQ/LnByb3BzPy5jaGlsZHJlbjtcclxuICAgICAgICAgICAgICBsZXQgZmxhZyA9IFBpbnlpbk1hdGNoLm1hdGNoKGxhYmVsLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgaWYgKGZsYWcpIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiByZXN1bHQsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25TZWFyY2ggJiYgb25TZWFyY2godmFsdWUpO1xyXG4gIH1cclxuICByZW5kZXJPcHRpb24ob3B0aW9uRGF0YSkge1xyXG4gICAgbGV0IHtcclxuICAgICAgc3RvcmUgPSB7fSxcclxuICAgICAgdmFsdWVUeXBlID0gXCJzdHJpbmdcIixcclxuICAgICAgbGFiZWxGaWVsZCxcclxuICAgICAgdmFsdWVGaWVsZCxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyB2aWV3bmFtZSB9ID0gc3RvcmU7XHJcbiAgICB2YWx1ZUZpZWxkID0gdmFsdWVGaWVsZCA/IHZhbHVlRmllbGQgOiB2aWV3bmFtZSA/IFwiZGljdEtleVwiIDogXCJ2YWx1ZVwiO1xyXG4gICAgbGFiZWxGaWVsZCA9IGxhYmVsRmllbGQgPyBsYWJlbEZpZWxkIDogdmlld25hbWUgPyBcImRpY3RWYWx1ZVwiIDogXCJsYWJlbFwiO1xyXG4gICAgcmV0dXJuIG9wdGlvbkRhdGEubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgIGxldCB2YWx1ZTogYW55O1xyXG4gICAgICBpZiAodmFsdWVGaWVsZC5zcGxpdChcIixcIikubGVuZ3RoID09IDEpIHtcclxuICAgICAgICB2YWx1ZSA9XHJcbiAgICAgICAgICB2YWx1ZVR5cGUgPT09IFwibnVtYmVyXCIgPyBOdW1iZXIoaXRlbVt2YWx1ZUZpZWxkXSkgOiBpdGVtW3ZhbHVlRmllbGRdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlRmllbGRzOiBhbnkgPSB2YWx1ZUZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICB2YWx1ZT0nJ1xyXG4gICAgICAgIHZhbHVlRmllbGRzLm1hcCgodiwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIHZhbHVlID0gaW5kZXggPT0gMCA/IHZhbHVlICsgaXRlbVt2XSA6IHZhbHVlICsgXCIsXCIgKyBpdGVtW3ZdO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBrZXkgPSBpdGVtLmlkID8gKGl0ZW0uaWQgIT09IFwidW5kZWZpbmVkXCIgPyBpdGVtLmlkIDogdmFsdWUpIDogdmFsdWU7XHJcbiAgICAgIGxldCBsYWJlbCA9IFwiXCI7XHJcbiAgICAgIGlmIChsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgIGxhYmVsID0gaXRlbVtsYWJlbEZpZWxkXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBsYWJlbEZpZWxkczogYW55ID0gbGFiZWxGaWVsZC5zcGxpdChcIixcIik7XHJcbiAgICAgICAgbGFiZWxGaWVsZHMubWFwKChsLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgbGFiZWwgPSBpbmRleCA9PSAwID8gbGFiZWwgKyBpdGVtW2xdIDogbGFiZWwgKyBcIi1cIiArIGl0ZW1bbF07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8T3B0aW9uXHJcbiAgICAgICAgICBrZXk9e2tleX1cclxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cclxuICAgICAgICAgIGxhYmVsPXtsYWJlbH1cclxuICAgICAgICAgIGRpc2FibGVkPXtpdGVtLmRpc2FibGVkID8gdHJ1ZSA6IGZhbHNlfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtsYWJlbH1cclxuICAgICAgICA8L09wdGlvbj5cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICByZW5kZXJDaGlsZHJlbigpIHtcclxuICAgIGNvbnN0IHsgc2hvd0dyb3VwID0gdHJ1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgZGF0YVNvdXJjZSwgY2hpbGRyZW4gfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBvcHRHcm91cERhdGEgPSB7fSxcclxuICAgICAgICBvcHRpb25EYXRhID0gW107XHJcbiAgICAgIGRhdGFTb3VyY2UuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGxldCBsYWJlbCA9IGl0ZW0uZ3JvdXBOYW1lO1xyXG4gICAgICAgIGlmIChsYWJlbCAmJiBzaG93R3JvdXApIHtcclxuICAgICAgICAgIGlmICghb3B0R3JvdXBEYXRhW2xhYmVsXSkgb3B0R3JvdXBEYXRhW2xhYmVsXSA9IFtdO1xyXG4gICAgICAgICAgb3B0R3JvdXBEYXRhW2xhYmVsXS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvcHRpb25EYXRhLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgbGV0IG9wdGlvbiA9IHRoaXMucmVuZGVyT3B0aW9uKG9wdGlvbkRhdGEpO1xyXG4gICAgICBsZXQgb3B0R3JvdXAgPSBPYmplY3Qua2V5cyhvcHRHcm91cERhdGEpLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxPcHRHcm91cCBrZXk9e2tleX0gbGFiZWw9e2tleX0+XHJcbiAgICAgICAgICAgIHt0aGlzLnJlbmRlck9wdGlvbihvcHRHcm91cERhdGFba2V5XSl9XHJcbiAgICAgICAgICA8L09wdEdyb3VwPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDw+XHJcbiAgICAgICAgICB7b3B0aW9ufVxyXG4gICAgICAgICAge29wdEdyb3VwfVxyXG4gICAgICAgIDwvPlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkNoYW5nZSh2YWx1ZSwgb3B0aW9ucykge1xyXG4gICAgY29uc3QgeyBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWxlY3RWYWx1ZTogdmFsdWUsXHJcbiAgICB9KTtcclxuICAgIGlmIChvbkNoYW5nZSkge1xyXG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5nZXRTZWxlY3REYXRhKHZhbHVlKTtcclxuICAgICAgb25DaGFuZ2UodmFsdWUsIG9wdGlvbnMsIGRhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvblNlbGVjdCh2YWx1ZSwgb3B0aW9ucykge1xyXG4gICAgY29uc3QgeyBvblNlbGVjdCB9ID0gdGhpcy5wcm9wcztcclxuXHJcbiAgICBpZiAob25TZWxlY3QpIHtcclxuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZ2V0U2VsZWN0RGF0YSh2YWx1ZSk7XHJcbiAgICAgIG9uU2VsZWN0KHZhbHVlLCBvcHRpb25zLCBkYXRhKTtcclxuICAgIH1cclxuICB9XHJcbiAgb25Ecm9wZG93blZpc2libGVDaGFuZ2Uob3Blbikge1xyXG4gICAgaWYgKCFvcGVuKSB7XHJcbiAgICAgIHRoaXMucmVzZXREYXRhKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIHN0b3JlLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICBvbkNoYW5nZSxcclxuICAgICAgb25TZWxlY3QsXHJcbiAgICAgIG9wdGlvbnMsXHJcbiAgICAgIGxhYmVsRmllbGQsXHJcbiAgICAgIHZhbHVlRmllbGQsXHJcbiAgICAgIGRlZmF1bHRTdHlsZSxcclxuICAgICAgc2hvd0dyb3VwID0gdHJ1ZSxcclxuICAgICAgYWRkRGF0YSxcclxuICAgICAgZGVsZXRlRGF0YSxcclxuICAgICAgdmFsdWVUeXBlLFxyXG4gICAgICAuLi5wYXJhbXNcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IHByb3BzID0ge1xyXG4gICAgICBmaWx0ZXJPcHRpb246IGZhbHNlLFxyXG4gICAgICBzaG93U2VhcmNoOiB0cnVlLFxyXG4gICAgICBvcHRpb25GaWx0ZXJQcm9wOiBcImxhYmVsXCIsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiBcIuivt+mAieaLqVwiLFxyXG4gICAgICBhbGxvd0NsZWFyOiB0cnVlLFxyXG4gICAgfSBhcyBhbnk7XHJcbiAgICBsZXQgeyBhbnRkU3R5bGUsIG1vdW50RWxlbWVudElkIH0gPSBjb25maWcoKTtcclxuICAgIGlmIChtb3VudEVsZW1lbnRJZCkge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBnZXRQb3B1cENvbnRhaW5lcjogKCkgPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobW91bnRFbGVtZW50SWQpLFxyXG4gICAgICAgIC4uLnByb3BzLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKChkZWZhdWx0U3R5bGUgfHwgYW50ZFN0eWxlKSAmJiBkZWZhdWx0U3R5bGUgPT09IHRydWUpIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKHN0eWxlc1tcIm5zY19zZWxlY3RcIl0sIHRoaXMucHJvcHMuY2xhc3NOYW1lKX0+XHJcbiAgICAgICAgICA8U2VsZWN0XHJcbiAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLnNlbGVjdFZhbHVlfVxyXG4gICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBvblNlYXJjaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBvblNlbGVjdD17dGhpcy5vblNlbGVjdC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZT17dGhpcy5vbkRyb3Bkb3duVmlzaWJsZUNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt0aGlzLnJlbmRlckNoaWxkcmVuKCl9XHJcbiAgICAgICAgICA8L1NlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPFNlbGVjdFxyXG4gICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuc2VsZWN0VmFsdWV9XHJcbiAgICAgICAgICBvblNlYXJjaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25DaGFuZ2UuYmluZCh0aGlzKX1cclxuICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLm9uU2VsZWN0LmJpbmQodGhpcyl9XHJcbiAgICAgICAgICBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZT17dGhpcy5vbkRyb3Bkb3duVmlzaWJsZUNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7dGhpcy5yZW5kZXJDaGlsZHJlbigpfVxyXG4gICAgICAgIDwvU2VsZWN0PlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
462
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJTdG9yZSIsInV0aWxzIiwiY29uZmlnIiwic3R5bGVzIiwiY2xzIiwiUGlueWluTWF0Y2giLCJnZXRGbGF0dGVuRGF0YSIsIk9wdGlvbiIsIk9wdEdyb3VwIiwiX1NlbGVjdCIsIk5TQ1NlbGVjdCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJfZGVmaW5lUHJvcGVydHkiLCJkYXRhU291cmNlIiwic2VsZWN0VmFsdWUiLCJhbGxEYXRhU291cmNlIiwiY2hpbGRyZW4iLCJhbGxDaGlsZHJlbiIsImRhdGEiLCJzdG9yZSIsIm9wdGlvbnMiLCJhZGREYXRhIiwiZGVsZXRlRGF0YSIsInVybCIsImxpc3RlbmVycyIsImxpc3RlbmVyc1BvcHMiLCJ2aWV3bmFtZSIsImNhY2hlZCIsImNhY2hlS2V5Iiwidmlld3R5cGUiLCJzdG9yZXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJ2YWx1ZUZpZWxkIiwidmlld1VybCIsInZpZXdCaXpVcmwiLCJyZXF1ZXN0Vmlld1VybCIsImdldEFsbERhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJuZXdEYXRhIiwibGVuZ3RoIiwic3BsaWNlRGF0YSIsInZhbHVlRmllbGRzIiwic3BsaXQiLCJtYXAiLCJpdGVtIiwiaSIsInZhbHVlIiwidiIsImluZGV4IiwiaW5kZXhPZiIsInB1c2giLCJFcnJvciIsIl90aGlzIiwic3RvcmVQcm9wcyIsIl9vYmplY3RTcHJlYWQiLCJtb2RlbCIsImNvbXBvbmVudCIsIm9uQmVmb3JlTG9hZCIsImNhbGxiYWNrIiwibG9hZCIsIm1vZGVsRGF0YSIsInNldFN0YXRlIiwiZGF0YUNoYW5nZWQiLCJpc0NhY2hlZCIsImlzQ2FjaGVLZXkiLCJhdXRvTG9hZCIsInJlc2V0RGF0YSIsInN0YXRlIiwiZ2V0RGF0YSIsImdldFZhbHVlIiwic2V0VmFsdWUiLCJnZXRTZWxlY3REYXRhIiwia2V5RmllbGQiLCJjb21wb25lbnREaWRNb3VudCIsImNvbXBvbmVudERpZFVwZGF0ZSIsIm5ld1Byb3BzIiwibmV3U3RhdGUiLCJTbmFwc2hvdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGF0ZUNoaWxkcmVuUHJvcHMiLCJzIiwiY2hpbGRyZW5Qcm9wcyIsImMiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsIm9uU2VhcmNoIiwiZmlsdGVyT3B0aW9uIiwibGFiZWxGaWVsZCIsInJlc3VsdCIsImZvckVhY2giLCJsYWJlbCIsImxhYmVsRmllbGRzIiwibCIsImZsYWciLCJtYXRjaCIsImNoaWxkIiwiX2NoaWxkJHByb3BzIiwicmVuZGVyT3B0aW9uIiwib3B0aW9uRGF0YSIsInZhbHVlVHlwZSIsIk51bWJlciIsImtleSIsImlkIiwiY3JlYXRlRWxlbWVudCIsImRpc2FibGVkIiwicmVuZGVyQ2hpbGRyZW4iLCJzaG93R3JvdXAiLCJGcmFnbWVudCIsIm9wdEdyb3VwRGF0YSIsImdyb3VwTmFtZSIsIm9wdGlvbiIsIm9wdEdyb3VwIiwiT2JqZWN0Iiwia2V5cyIsIm9uQ2hhbmdlIiwib25TZWxlY3QiLCJvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZSIsIm9wZW4iLCJyZW5kZXIiLCJfdGhpcyRwcm9wcyIsImRlZmF1bHRTdHlsZSIsInBhcmFtcyIsIl9leGNsdWRlZDIiLCJzaG93U2VhcmNoIiwib3B0aW9uRmlsdGVyUHJvcCIsInBsYWNlaG9sZGVyIiwiYWxsb3dDbGVhciIsImFudGRTdHlsZSIsIm1vdW50RWxlbWVudElkIiwiZ2V0UG9wdXBDb250YWluZXIiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiY2xhc3NOYW1lIiwiX2V4dGVuZHMiLCJiaW5kIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFzZS9zZWxlY3QvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFNlbGVjdCwgU2VsZWN0UHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgU3RvcmUsIHsgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCBQaW55aW5NYXRjaCBmcm9tIFwicGlueWluLW1hdGNoXCI7XHJcbmltcG9ydCB7IGdldEZsYXR0ZW5EYXRhIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmNvbnN0IHsgT3B0aW9uLCBPcHRHcm91cCB9ID0gU2VsZWN0O1xyXG5cclxuaW50ZXJmYWNlIElTZWxlY3RQcm9wcyBleHRlbmRzIFNlbGVjdFByb3BzPGFueT4ge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBkYXRhPzogQXJyYXk8T2JqZWN0PjsgLy/pu5jorqTmlbDmja5cclxuICBsYWJlbEZpZWxkPzogc3RyaW5nO1xyXG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XHJcbiAgZGVmYXVsdFN0eWxlPzogYm9vbGVhbjtcclxuICBzaG93R3JvdXA/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuWIhue7hFxyXG4gIGFkZERhdGE/OiBBcnJheTxPYmplY3Q+OyAvL+mFjeWQiHN0b3Jl5L2/55So77yM5LuO5aKe5Yqg6aKd5aSW55qE5pWw5o2uXHJcbiAgZGVsZXRlRGF0YT86IEFycmF5PFN0cmluZz47IC8v6YWN5ZCIc3RvcmXkvb/nlKjvvIzliKDpmaTku47mlbDmja7lupPkuK3ojrflj5bliLDnmoTmjIflrprmlbDmja5cclxuICB2YWx1ZUJyZWFrPzogc3RyaW5nOyAvL+WkmuS4qnZhbHVl5L2/55So55qE5YiG6ZqU56ymXHJcbiAgdmFsdWVUeXBlPzogXCJzdHJpbmdcIiB8IFwibnVtYmVyXCI7XHJcbiAgW3Byb05hbWU6IHN0cmluZ106IGFueTtcclxuICBvbkNoYW5nZT86IGFueTtcclxuICBvblNlbGVjdD86IGFueTtcclxufVxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOU0NTZWxlY3QgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PElTZWxlY3RQcm9wcz4ge1xyXG4gIHN0YXRpYyBPcHRpb24gPSBPcHRpb247XHJcbiAgc3RhdGljIE9wdEdyb3VwID0gT3B0R3JvdXA7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBkYXRhU291cmNlOiBbXSxcclxuICAgIHNlbGVjdFZhbHVlOiBudWxsLFxyXG4gICAgYWxsRGF0YVNvdXJjZTogW10sXHJcbiAgICBjaGlsZHJlbjogbnVsbCxcclxuICAgIGFsbENoaWxkcmVuOiBudWxsLFxyXG4gIH07XHJcbiAgc3RvcmUgPSB7fSBhcyBTdG9yZVByb3BzO1xyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHN0b3JlID0ge30sXHJcbiAgICAgIGNoaWxkcmVuLFxyXG4gICAgICBvcHRpb25zLFxyXG4gICAgICBhZGREYXRhID0gW10sXHJcbiAgICAgIGRlbGV0ZURhdGEgPSBbXSxcclxuICAgIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHtcclxuICAgICAgdXJsLFxyXG4gICAgICBsaXN0ZW5lcnM6IGxpc3RlbmVyc1BvcHMgPSB7fSxcclxuICAgICAgdmlld25hbWUsXHJcbiAgICAgIGNhY2hlZCxcclxuICAgICAgY2FjaGVLZXksXHJcbiAgICAgIHZpZXd0eXBlID0gXCJzeXNcIixcclxuICAgICAgLi4uc3RvcmVzXHJcbiAgICB9ID0gc3RvcmU7XHJcbiAgICBjb25zdCB2YWx1ZUZpZWxkID0gdmlld25hbWUgPyBcImRpY3RLZXlcIiA6IFwidmFsdWVcIjtcclxuICAgIGxldCB7IHZpZXdVcmwsIHZpZXdCaXpVcmwgfSA9IGNvbmZpZygpO1xyXG4gICAgbGV0IHJlcXVlc3RWaWV3VXJsID0gdmlld3R5cGUgPT0gXCJzeXNcIiA/IHZpZXdVcmwgOiB2aWV3Qml6VXJsO1xyXG4gICAgY29uc3QgZ2V0QWxsRGF0YSA9IChkYXRhKSA9PiB7XHJcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShkYXRhKSkge1xyXG4gICAgICAgIHJldHVybiBbXTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbmV3RGF0YSA9IFsuLi5kYXRhXTtcclxuICAgICAgaWYgKGFkZERhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIG5ld0RhdGEgPSBbLi4uYWRkRGF0YSwgLi4ubmV3RGF0YV07XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGRlbGV0ZURhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGxldCBzcGxpY2VEYXRhID0gW107XHJcbiAgICAgICAgY29uc3QgdmFsdWVGaWVsZHM6IGFueSA9IHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgIG5ld0RhdGEubWFwKChpdGVtLCBpKSA9PiB7XHJcbiAgICAgICAgICBsZXQgdmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgdmFsdWVGaWVsZHMubWFwKCh2LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IGluZGV4ID09IDAgPyB2YWx1ZSArIGl0ZW1bdl0gOiB2YWx1ZSArIFwiLFwiICsgaXRlbVt2XTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaWYgKGRlbGV0ZURhdGEuaW5kZXhPZih2YWx1ZSkgPT0gLTEpIHtcclxuICAgICAgICAgICAgc3BsaWNlRGF0YS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBzcGxpY2VEYXRhO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBuZXdEYXRhO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgaWYgKCFjaGlsZHJlbikge1xyXG4gICAgICBpZiAoIShkYXRhIHx8IHZpZXduYW1lIHx8IHVybCB8fCBvcHRpb25zKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOOAgXZpZXduYW1l44CBZGF0YeOAgW9wdGlvbnPkuI3og73pg73kuLrnqbrvvIFcIik7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgICAgbGV0IHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgbW9kZWw6IFwibW9kZWxcIixcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgbGlzdGVuZXJzOiB7XHJcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IGZ1bmN0aW9uIChzdG9yZSwgb3B0aW9ucykge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLm9uQmVmb3JlTG9hZCwgX3RoaXMsIFtzdG9yZSwgb3B0aW9uc10pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxvYWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBnZXRBbGxEYXRhKGRhdGEpO1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGRhdGFTb3VyY2U6IG5ld0RhdGEsIGFsbERhdGFTb3VyY2U6IG5ld0RhdGEgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMubG9hZCwgX3RoaXMsIFtkYXRhLCBtb2RlbERhdGEsIHN0b3JlXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZGF0YUNoYW5nZWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBnZXRBbGxEYXRhKGRhdGEpO1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGRhdGFTb3VyY2U6IG5ld0RhdGEsIGFsbERhdGFTb3VyY2U6IG5ld0RhdGEgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMuZGF0YUNoYW5nZWQsIF90aGlzLCBbXHJcbiAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICBtb2RlbERhdGEsXHJcbiAgICAgICAgICAgICAgc3RvcmUsXHJcbiAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLnN0b3JlcyxcclxuICAgICAgfTtcclxuICAgICAgaWYgKCh2aWV3bmFtZSB8fCB1cmwpICYmIGRhdGEgPT0gbnVsbCAmJiBvcHRpb25zID09IG51bGwpIHtcclxuICAgICAgICBsZXQgaXNDYWNoZWQgPSBjYWNoZWQ7XHJcbiAgICAgICAgbGV0IGlzQ2FjaGVLZXkgPSBjYWNoZUtleTtcclxuICAgICAgICBpZiAodmlld25hbWUpIHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgY2FjaGVkICE9PSBcImJvb2xlYW5cIikge1xyXG4gICAgICAgICAgICBpc0NhY2hlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIGlzQ2FjaGVLZXkgPSBpc0NhY2hlS2V5ID8gaXNDYWNoZUtleSA6IHZpZXduYW1lO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICAgIC4uLntcclxuICAgICAgICAgICAgYXV0b0xvYWQ6IHRydWUsXHJcbiAgICAgICAgICAgIHVybDogdXJsIHx8IHJlcXVlc3RWaWV3VXJsICsgdmlld25hbWUsIC8v6K+75a2X5YW477yMdXJs5Zu65a6a77yMdmlld25hbWVcclxuICAgICAgICAgICAgY2FjaGVkOiBpc0NhY2hlZCxcclxuICAgICAgICAgICAgY2FjaGVLZXk6IGlzQ2FjaGVLZXksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4uc3RvcmVQcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgU3RvcmUoc3RvcmVQcm9wcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldERhdGEoKSB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBhbGxEYXRhU291cmNlLCBhbGxDaGlsZHJlbiB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmIChjaGlsZHJlbikge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHsgY2hpbGRyZW46IGFsbENoaWxkcmVuIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgZGF0YVNvdXJjZTogYWxsRGF0YVNvdXJjZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXREYXRhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuYWxsRGF0YVNvdXJjZTtcclxuICB9XHJcblxyXG4gIGdldFZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XHJcbiAgfVxyXG4gIHNldFZhbHVlKHZhbHVlKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0VmFsdWU6IHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3REYXRhKHZhbHVlKSB7XHJcbiAgICBjb25zdCB7IGRhdGFTb3VyY2UgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgeyBzdG9yZSA9IHt9LCB2YWx1ZUZpZWxkIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyB2aWV3bmFtZSB9ID0gc3RvcmU7XHJcbiAgICB2YWx1ZUZpZWxkID0gdmFsdWVGaWVsZCA/IHZhbHVlRmllbGQgOiB2aWV3bmFtZSA/IFwiZGljdEtleVwiIDogXCJ2YWx1ZVwiO1xyXG4gICAgY29uc3QgbmV3RGF0YSA9IGdldEZsYXR0ZW5EYXRhKGRhdGFTb3VyY2UsIHsga2V5RmllbGQ6IHZhbHVlRmllbGQgfSk7XHJcbiAgICByZXR1cm4gbmV3RGF0YVt2YWx1ZV0gfHwge307XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIWNoaWxkcmVuICYmIChkYXRhIHx8IG9wdGlvbnMpKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRhdGFTb3VyY2U6IGRhdGEgPyBkYXRhIDogb3B0aW9ucyxcclxuICAgICAgICBhbGxEYXRhU291cmNlOiBkYXRhID8gZGF0YSA6IG9wdGlvbnMsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW4sXHJcbiAgICAgICAgYWxsQ2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKG5ld1Byb3BzLCBuZXdTdGF0ZSwgU25hcHNob3QpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGFsbERhdGFTb3VyY2UsIGFsbENoaWxkcmVuIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgaWYgKCFjaGlsZHJlbiAmJiAoZGF0YSB8fCBvcHRpb25zKSkge1xyXG4gICAgICBjb25zdCBuZXdEYXRhID0gZGF0YSA/IGRhdGEgOiBvcHRpb25zO1xyXG4gICAgICBpZiAoSlNPTi5zdHJpbmdpZnkoYWxsRGF0YVNvdXJjZSkgIT09IEpTT04uc3RyaW5naWZ5KG5ld0RhdGEpKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBkYXRhU291cmNlOiBuZXdEYXRhLFxyXG4gICAgICAgICAgYWxsRGF0YVNvdXJjZTogbmV3RGF0YSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbiAmJiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xyXG4gICAgICBjb25zdCBzdGF0ZUNoaWxkcmVuUHJvcHM6IGFueSA9IFtdO1xyXG4gICAgICBhbGxDaGlsZHJlbi5tYXAoKHM6IGFueSkgPT4ge1xyXG4gICAgICAgIHN0YXRlQ2hpbGRyZW5Qcm9wcy5wdXNoKHMucHJvcHMpO1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgY2hpbGRyZW5Qcm9wczogYW55ID0gW107XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoYzogYW55KSA9PiB7XHJcbiAgICAgICAgY2hpbGRyZW5Qcm9wcy5wdXNoKGMucHJvcHMpO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHN0YXRlQ2hpbGRyZW5Qcm9wcykgIT09IEpTT04uc3RyaW5naWZ5KGNoaWxkcmVuUHJvcHMpXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICAgICAgYWxsQ2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSA9IChzdGF0ZSwgY2FsbGJhY2spID0+IHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfTtcclxuICB9XHJcbiAgb25TZWFyY2godmFsdWUpIHtcclxuICAgIGNvbnN0IHsgYWxsRGF0YVNvdXJjZSwgYWxsQ2hpbGRyZW4gfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IGZpbHRlck9wdGlvbiA9IHRydWUsIG9uU2VhcmNoLCBjaGlsZHJlbiwgc3RvcmUgPSB7fSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCB7IGxhYmVsRmllbGQgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHZpZXduYW1lIH0gPSBzdG9yZTtcclxuICAgIGxhYmVsRmllbGQgPSBsYWJlbEZpZWxkID8gbGFiZWxGaWVsZCA6IHZpZXduYW1lID8gXCJkaWN0VmFsdWVcIiA6IFwibGFiZWxcIjtcclxuICAgIGlmIChmaWx0ZXJPcHRpb24pIHtcclxuICAgICAgbGV0IHJlc3VsdCA9IFtdO1xyXG4gICAgICBpZiAoIWNoaWxkcmVuKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICBhbGxEYXRhU291cmNlLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgbGV0IGxhYmVsID0gXCJcIjtcclxuICAgICAgICAgICAgaWYgKGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgbGFiZWwgPSBpdGVtW2xhYmVsRmllbGRdO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhYmVsRmllbGRzOiBhbnkgPSBsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICAgICAgICBsYWJlbEZpZWxkcy5tYXAoKGwsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbCA9IGluZGV4ID09IDAgPyBsYWJlbCArIGl0ZW1bbF0gOiBsYWJlbCArIFwiLVwiICsgaXRlbVtsXTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgZmxhZyA9IFBpbnlpbk1hdGNoLm1hdGNoKGxhYmVsLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgICAgICAgcmVzdWx0LnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IHJlc3VsdCxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgZGF0YVNvdXJjZTogYWxsRGF0YVNvdXJjZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFsbENoaWxkcmVuKSkge1xyXG4gICAgICAgICAgICBhbGxDaGlsZHJlbi5tYXAoKGNoaWxkOiBhbnksIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgbGV0IGxhYmVsID0gY2hpbGQ/LnByb3BzPy5jaGlsZHJlbjtcclxuICAgICAgICAgICAgICBsZXQgZmxhZyA9IFBpbnlpbk1hdGNoLm1hdGNoKGxhYmVsLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgaWYgKGZsYWcpIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiByZXN1bHQsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25TZWFyY2ggJiYgb25TZWFyY2godmFsdWUpO1xyXG4gIH1cclxuICByZW5kZXJPcHRpb24ob3B0aW9uRGF0YSkge1xyXG4gICAgbGV0IHtcclxuICAgICAgc3RvcmUgPSB7fSxcclxuICAgICAgdmFsdWVUeXBlID0gXCJzdHJpbmdcIixcclxuICAgICAgbGFiZWxGaWVsZCxcclxuICAgICAgdmFsdWVGaWVsZCxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyB2aWV3bmFtZSB9ID0gc3RvcmU7XHJcbiAgICB2YWx1ZUZpZWxkID0gdmFsdWVGaWVsZCA/IHZhbHVlRmllbGQgOiB2aWV3bmFtZSA/IFwiZGljdEtleVwiIDogXCJ2YWx1ZVwiO1xyXG4gICAgbGFiZWxGaWVsZCA9IGxhYmVsRmllbGQgPyBsYWJlbEZpZWxkIDogdmlld25hbWUgPyBcImRpY3RWYWx1ZVwiIDogXCJsYWJlbFwiO1xyXG4gICAgcmV0dXJuIG9wdGlvbkRhdGEubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgIGxldCB2YWx1ZTogYW55O1xyXG4gICAgICBpZiAodmFsdWVGaWVsZC5zcGxpdChcIixcIikubGVuZ3RoID09IDEpIHtcclxuICAgICAgICB2YWx1ZSA9XHJcbiAgICAgICAgICB2YWx1ZVR5cGUgPT09IFwibnVtYmVyXCIgPyBOdW1iZXIoaXRlbVt2YWx1ZUZpZWxkXSkgOiBpdGVtW3ZhbHVlRmllbGRdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlRmllbGRzOiBhbnkgPSB2YWx1ZUZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICB2YWx1ZT0nJ1xyXG4gICAgICAgIHZhbHVlRmllbGRzLm1hcCgodiwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIHZhbHVlID0gaW5kZXggPT0gMCA/IHZhbHVlICsgaXRlbVt2XSA6IHZhbHVlICsgXCIsXCIgKyBpdGVtW3ZdO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBrZXkgPSBpdGVtLmlkID8gKGl0ZW0uaWQgIT09IFwidW5kZWZpbmVkXCIgPyBpdGVtLmlkIDogdmFsdWUpIDogdmFsdWU7XHJcbiAgICAgIGxldCBsYWJlbCA9IFwiXCI7XHJcbiAgICAgIGlmIChsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgIGxhYmVsID0gaXRlbVtsYWJlbEZpZWxkXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBsYWJlbEZpZWxkczogYW55ID0gbGFiZWxGaWVsZC5zcGxpdChcIixcIik7XHJcbiAgICAgICAgbGFiZWxGaWVsZHMubWFwKChsLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgbGFiZWwgPSBpbmRleCA9PSAwID8gbGFiZWwgKyBpdGVtW2xdIDogbGFiZWwgKyBcIi1cIiArIGl0ZW1bbF07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8T3B0aW9uXHJcbiAgICAgICAgICBrZXk9e2tleX1cclxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cclxuICAgICAgICAgIGxhYmVsPXtsYWJlbH1cclxuICAgICAgICAgIGRpc2FibGVkPXtpdGVtLmRpc2FibGVkID8gdHJ1ZSA6IGZhbHNlfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtsYWJlbH1cclxuICAgICAgICA8L09wdGlvbj5cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICByZW5kZXJDaGlsZHJlbigpIHtcclxuICAgIGNvbnN0IHsgc2hvd0dyb3VwID0gdHJ1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgZGF0YVNvdXJjZSwgY2hpbGRyZW4gfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBvcHRHcm91cERhdGEgPSB7fSxcclxuICAgICAgICBvcHRpb25EYXRhID0gW107XHJcbiAgICAgIGRhdGFTb3VyY2UuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGxldCBsYWJlbCA9IGl0ZW0uZ3JvdXBOYW1lO1xyXG4gICAgICAgIGlmIChsYWJlbCAmJiBzaG93R3JvdXApIHtcclxuICAgICAgICAgIGlmICghb3B0R3JvdXBEYXRhW2xhYmVsXSkgb3B0R3JvdXBEYXRhW2xhYmVsXSA9IFtdO1xyXG4gICAgICAgICAgb3B0R3JvdXBEYXRhW2xhYmVsXS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvcHRpb25EYXRhLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgbGV0IG9wdGlvbiA9IHRoaXMucmVuZGVyT3B0aW9uKG9wdGlvbkRhdGEpO1xyXG4gICAgICBsZXQgb3B0R3JvdXAgPSBPYmplY3Qua2V5cyhvcHRHcm91cERhdGEpLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxPcHRHcm91cCBrZXk9e2tleX0gbGFiZWw9e2tleX0+XHJcbiAgICAgICAgICAgIHt0aGlzLnJlbmRlck9wdGlvbihvcHRHcm91cERhdGFba2V5XSl9XHJcbiAgICAgICAgICA8L09wdEdyb3VwPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDw+XHJcbiAgICAgICAgICB7b3B0aW9ufVxyXG4gICAgICAgICAge29wdEdyb3VwfVxyXG4gICAgICAgIDwvPlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkNoYW5nZSh2YWx1ZSwgb3B0aW9ucykge1xyXG4gICAgY29uc3QgeyBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWxlY3RWYWx1ZTogdmFsdWUsXHJcbiAgICB9KTtcclxuICAgIGlmIChvbkNoYW5nZSkge1xyXG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5nZXRTZWxlY3REYXRhKHZhbHVlKTtcclxuICAgICAgb25DaGFuZ2UodmFsdWUsIG9wdGlvbnMsIGRhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvblNlbGVjdCh2YWx1ZSwgb3B0aW9ucykge1xyXG4gICAgY29uc3QgeyBvblNlbGVjdCB9ID0gdGhpcy5wcm9wcztcclxuXHJcbiAgICBpZiAob25TZWxlY3QpIHtcclxuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZ2V0U2VsZWN0RGF0YSh2YWx1ZSk7XHJcbiAgICAgIG9uU2VsZWN0KHZhbHVlLCBvcHRpb25zLCBkYXRhKTtcclxuICAgIH1cclxuICB9XHJcbiAgb25Ecm9wZG93blZpc2libGVDaGFuZ2Uob3Blbikge1xyXG4gICAgaWYgKCFvcGVuKSB7XHJcbiAgICAgIHRoaXMucmVzZXREYXRhKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIHN0b3JlLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICBvbkNoYW5nZSxcclxuICAgICAgb25TZWxlY3QsXHJcbiAgICAgIG9wdGlvbnMsXHJcbiAgICAgIGxhYmVsRmllbGQsXHJcbiAgICAgIHZhbHVlRmllbGQsXHJcbiAgICAgIGRlZmF1bHRTdHlsZSxcclxuICAgICAgc2hvd0dyb3VwID0gdHJ1ZSxcclxuICAgICAgYWRkRGF0YSxcclxuICAgICAgZGVsZXRlRGF0YSxcclxuICAgICAgdmFsdWVUeXBlLFxyXG4gICAgICAuLi5wYXJhbXNcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IHByb3BzID0ge1xyXG4gICAgICBmaWx0ZXJPcHRpb246IGZhbHNlLFxyXG4gICAgICBzaG93U2VhcmNoOiB0cnVlLFxyXG4gICAgICBvcHRpb25GaWx0ZXJQcm9wOiBcImxhYmVsXCIsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiBcIuivt+mAieaLqVwiLFxyXG4gICAgICBhbGxvd0NsZWFyOiB0cnVlLFxyXG4gICAgfSBhcyBhbnk7XHJcbiAgICBsZXQgeyBhbnRkU3R5bGUsIG1vdW50RWxlbWVudElkIH0gPSBjb25maWcoKTtcclxuICAgIGlmIChtb3VudEVsZW1lbnRJZCkge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBnZXRQb3B1cENvbnRhaW5lcjogKCkgPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobW91bnRFbGVtZW50SWQpLFxyXG4gICAgICAgIC4uLnByb3BzLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKChkZWZhdWx0U3R5bGUgfHwgYW50ZFN0eWxlKSAmJiBkZWZhdWx0U3R5bGUgPT09IHRydWUpIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKHN0eWxlc1tcIm5zY19zZWxlY3RcIl0sIHRoaXMucHJvcHMuY2xhc3NOYW1lKX0+XHJcbiAgICAgICAgICA8U2VsZWN0XHJcbiAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLnNlbGVjdFZhbHVlfVxyXG4gICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBvblNlYXJjaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBvblNlbGVjdD17dGhpcy5vblNlbGVjdC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZT17dGhpcy5vbkRyb3Bkb3duVmlzaWJsZUNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt0aGlzLnJlbmRlckNoaWxkcmVuKCl9XHJcbiAgICAgICAgICA8L1NlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPFNlbGVjdFxyXG4gICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuc2VsZWN0VmFsdWV9XHJcbiAgICAgICAgICBvblNlYXJjaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25DaGFuZ2UuYmluZCh0aGlzKX1cclxuICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLm9uU2VsZWN0LmJpbmQodGhpcyl9XHJcbiAgICAgICAgICBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZT17dGhpcy5vbkRyb3Bkb3duVmlzaWJsZUNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7dGhpcy5yZW5kZXJDaGlsZHJlbigpfVxyXG4gICAgICAgIDwvU2VsZWN0PlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxhQUFhLFFBQVEsT0FBTztBQUU1QyxPQUFPQyxLQUFLLE1BQXNCLGFBQWE7QUFDL0MsU0FBU0MsS0FBSyxRQUFRLHVCQUF1QjtBQUM3QyxPQUFPQyxNQUFNLE1BQU0sY0FBYztBQUNqQyxPQUFPQyxNQUFNLE1BQU0sY0FBYztBQUNqQyxPQUFPQyxHQUFHLE1BQU0sWUFBWTtBQUU1QixPQUFPQyxXQUFXLE1BQU0sY0FBYztBQUN0QyxTQUFTQyxjQUFjLFFBQVEsbUJBQW1CO0FBQ2xELE1BQU07RUFBRUMsTUFBTTtFQUFFQztBQUFTLENBQUMsR0FBQUMsT0FBUztBQWlCbkMsZUFBZSxNQUFNQyxTQUFTLFNBQVNYLGFBQWEsQ0FBZTtFQVdqRVksV0FBV0EsQ0FBQ0MsS0FBSyxFQUFFO0lBQ2pCLEtBQUssQ0FBQ0EsS0FBSyxDQUFDO0lBQUNDLGVBQUEsZ0JBVFA7TUFDTkMsVUFBVSxFQUFFLEVBQUU7TUFDZEMsV0FBVyxFQUFFLElBQUk7TUFDakJDLGFBQWEsRUFBRSxFQUFFO01BQ2pCQyxRQUFRLEVBQUUsSUFBSTtNQUNkQyxXQUFXLEVBQUU7SUFDZixDQUFDO0lBQUFMLGVBQUEsZ0JBQ08sQ0FBQyxDQUFDO0lBR1IsTUFBTTtNQUNKTSxJQUFJO01BQ0pDLEtBQUssR0FBRyxDQUFDLENBQUM7TUFDVkgsUUFBUTtNQUNSSSxPQUFPO01BQ1BDLE9BQU8sR0FBRyxFQUFFO01BQ1pDLFVBQVUsR0FBRztJQUNmLENBQUMsR0FBR1gsS0FBSztJQUNULE1BQU07UUFDSlksR0FBRztRQUNIQyxTQUFTLEVBQUVDLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDN0JDLFFBQVE7UUFDUkMsTUFBTTtRQUNOQyxRQUFRO1FBQ1JDLFFBQVEsR0FBRztNQUViLENBQUMsR0FBR1YsS0FBSztNQURKVyxNQUFNLEdBQUFDLHdCQUFBLENBQ1BaLEtBQUssRUFBQWEsU0FBQTtJQUNULE1BQU1DLFVBQVUsR0FBR1AsUUFBUSxHQUFHLFNBQVMsR0FBRyxPQUFPO0lBQ2pELElBQUk7TUFBRVEsT0FBTztNQUFFQztJQUFXLENBQUMsR0FBR2xDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLElBQUltQyxjQUFjLEdBQUdQLFFBQVEsSUFBSSxLQUFLLEdBQUdLLE9BQU8sR0FBR0MsVUFBVTtJQUM3RCxNQUFNRSxVQUFVLEdBQUluQixJQUFJLElBQUs7TUFDM0IsSUFBSSxDQUFDb0IsS0FBSyxDQUFDQyxPQUFPLENBQUNyQixJQUFJLENBQUMsRUFBRTtRQUN4QixPQUFPLEVBQUU7TUFDWDtNQUNBLElBQUlzQixPQUFPLEdBQUcsQ0FBQyxHQUFHdEIsSUFBSSxDQUFDO01BQ3ZCLElBQUlHLE9BQU8sQ0FBQ29CLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDdEJELE9BQU8sR0FBRyxDQUFDLEdBQUduQixPQUFPLEVBQUUsR0FBR21CLE9BQU8sQ0FBQztNQUNwQztNQUNBLElBQUlsQixVQUFVLENBQUNtQixNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3pCLElBQUlDLFVBQVUsR0FBRyxFQUFFO1FBQ25CLE1BQU1DLFdBQWdCLEdBQUdWLFVBQVUsQ0FBQ1csS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUM5Q0osT0FBTyxDQUFDSyxHQUFHLENBQUMsQ0FBQ0MsSUFBSSxFQUFFQyxDQUFDLEtBQUs7VUFDdkIsSUFBSUMsS0FBSyxHQUFHLEVBQUU7VUFDZEwsV0FBVyxDQUFDRSxHQUFHLENBQUMsQ0FBQ0ksQ0FBQyxFQUFFQyxLQUFLLEtBQUs7WUFDNUJGLEtBQUssR0FBR0UsS0FBSyxJQUFJLENBQUMsR0FBR0YsS0FBSyxHQUFHRixJQUFJLENBQUNHLENBQUMsQ0FBQyxHQUFHRCxLQUFLLEdBQUcsR0FBRyxHQUFHRixJQUFJLENBQUNHLENBQUMsQ0FBQztVQUM5RCxDQUFDLENBQUM7VUFDRixJQUFJM0IsVUFBVSxDQUFDNkIsT0FBTyxDQUFDSCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUNuQ04sVUFBVSxDQUFDVSxJQUFJLENBQUNOLElBQUksQ0FBQztVQUN2QjtRQUNGLENBQUMsQ0FBQztRQUNGLE9BQU9KLFVBQVU7TUFDbkIsQ0FBQyxNQUFNO1FBQ0wsT0FBT0YsT0FBTztNQUNoQjtJQUNGLENBQUM7SUFDRCxJQUFJLENBQUN4QixRQUFRLEVBQUU7TUFDYixJQUFJLEVBQUVFLElBQUksSUFBSVEsUUFBUSxJQUFJSCxHQUFHLElBQUlILE9BQU8sQ0FBQyxFQUFFO1FBQ3pDLE1BQU0sSUFBSWlDLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQztNQUNwRDtNQUNBLElBQUlDLEtBQUssR0FBRyxJQUFJO01BQ2hCLElBQUlDLFVBQVUsR0FBQUMsYUFBQTtRQUNaQyxLQUFLLEVBQUUsT0FBTztRQUNkQyxTQUFTLEVBQUUsSUFBSTtRQUNmbEMsU0FBUyxFQUFFO1VBQ1RtQyxZQUFZLEVBQUUsU0FBQUEsQ0FBVXhDLEtBQUssRUFBRUMsT0FBTyxFQUFFO1lBQ3RDcEIsS0FBSyxDQUFDNEQsUUFBUSxDQUFDbkMsYUFBYSxDQUFDa0MsWUFBWSxFQUFFTCxLQUFLLEVBQUUsQ0FBQ25DLEtBQUssRUFBRUMsT0FBTyxDQUFDLENBQUM7VUFDckUsQ0FBQztVQUNEeUMsSUFBSSxFQUFFLFNBQUFBLENBQVUzQyxJQUFJLEVBQUU0QyxTQUFTLEVBQUUzQyxLQUFLLEVBQUU7WUFDdEMsTUFBTXFCLE9BQU8sR0FBR0gsVUFBVSxDQUFDbkIsSUFBSSxDQUFDO1lBQ2hDb0MsS0FBSyxDQUFDUyxRQUFRLENBQUM7Y0FBRWxELFVBQVUsRUFBRTJCLE9BQU87Y0FBRXpCLGFBQWEsRUFBRXlCO1lBQVEsQ0FBQyxDQUFDO1lBQy9EeEMsS0FBSyxDQUFDNEQsUUFBUSxDQUFDbkMsYUFBYSxDQUFDb0MsSUFBSSxFQUFFUCxLQUFLLEVBQUUsQ0FBQ3BDLElBQUksRUFBRTRDLFNBQVMsRUFBRTNDLEtBQUssQ0FBQyxDQUFDO1VBQ3JFLENBQUM7VUFDRDZDLFdBQVcsRUFBRSxTQUFBQSxDQUFVOUMsSUFBSSxFQUFFNEMsU0FBUyxFQUFFM0MsS0FBSyxFQUFFO1lBQzdDLE1BQU1xQixPQUFPLEdBQUdILFVBQVUsQ0FBQ25CLElBQUksQ0FBQztZQUNoQ29DLEtBQUssQ0FBQ1MsUUFBUSxDQUFDO2NBQUVsRCxVQUFVLEVBQUUyQixPQUFPO2NBQUV6QixhQUFhLEVBQUV5QjtZQUFRLENBQUMsQ0FBQztZQUMvRHhDLEtBQUssQ0FBQzRELFFBQVEsQ0FBQ25DLGFBQWEsQ0FBQ3VDLFdBQVcsRUFBRVYsS0FBSyxFQUFFLENBQy9DcEMsSUFBSSxFQUNKNEMsU0FBUyxFQUNUM0MsS0FBSyxDQUNOLENBQUM7VUFDSjtRQUNGO01BQUMsR0FDRVcsTUFBTSxDQUNWO01BQ0QsSUFBSSxDQUFDSixRQUFRLElBQUlILEdBQUcsS0FBS0wsSUFBSSxJQUFJLElBQUksSUFBSUUsT0FBTyxJQUFJLElBQUksRUFBRTtRQUN4RCxJQUFJNkMsUUFBUSxHQUFHdEMsTUFBTTtRQUNyQixJQUFJdUMsVUFBVSxHQUFHdEMsUUFBUTtRQUN6QixJQUFJRixRQUFRLEVBQUU7VUFDWixJQUFJLE9BQU9DLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDL0JzQyxRQUFRLEdBQUcsSUFBSTtZQUNmQyxVQUFVLEdBQUdBLFVBQVUsR0FBR0EsVUFBVSxHQUFHeEMsUUFBUTtVQUNqRDtRQUNGO1FBRUE2QixVQUFVLEdBQUFDLGFBQUEsQ0FBQUEsYUFBQSxLQUNMO1VBQ0RXLFFBQVEsRUFBRSxJQUFJO1VBQ2Q1QyxHQUFHLEVBQUVBLEdBQUcsSUFBSWEsY0FBYyxHQUFHVixRQUFRO1VBQUU7VUFDdkNDLE1BQU0sRUFBRXNDLFFBQVE7VUFDaEJyQyxRQUFRLEVBQUVzQztRQUNaLENBQUMsR0FDRVgsVUFBVSxDQUNkO01BQ0g7TUFDQSxJQUFJLENBQUNwQyxLQUFLLEdBQUcsSUFBSXBCLEtBQUssQ0FBQ3dELFVBQVUsQ0FBQztJQUNwQztFQUNGO0VBRUFhLFNBQVNBLENBQUEsRUFBRztJQUNWLE1BQU07TUFBRXBEO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQ0wsS0FBSztJQUMvQixNQUFNO01BQUVJLGFBQWE7TUFBRUU7SUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDb0QsS0FBSztJQUNqRCxJQUFJckQsUUFBUSxFQUFFO01BQ1osSUFBSSxDQUFDK0MsUUFBUSxDQUFDO1FBQUUvQyxRQUFRLEVBQUVDO01BQVksQ0FBQyxDQUFDO0lBQzFDLENBQUMsTUFBTTtNQUNMLElBQUksQ0FBQzhDLFFBQVEsQ0FBQztRQUNabEQsVUFBVSxFQUFFRTtNQUNkLENBQUMsQ0FBQztJQUNKO0VBQ0Y7RUFFQXVELE9BQU9BLENBQUEsRUFBRztJQUNSLE9BQU8sSUFBSSxDQUFDRCxLQUFLLENBQUN0RCxhQUFhO0VBQ2pDO0VBRUF3RCxRQUFRQSxDQUFBLEVBQUc7SUFDVCxPQUFPLElBQUksQ0FBQ0YsS0FBSyxDQUFDdkQsV0FBVztFQUMvQjtFQUNBMEQsUUFBUUEsQ0FBQ3hCLEtBQUssRUFBRTtJQUNkLElBQUksQ0FBQ2UsUUFBUSxDQUFDO01BQ1pqRCxXQUFXLEVBQUVrQztJQUNmLENBQUMsQ0FBQztFQUNKO0VBRUF5QixhQUFhQSxDQUFDekIsS0FBSyxFQUFFO0lBQ25CLE1BQU07TUFBRW5DO0lBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQ3dELEtBQUs7SUFDakMsSUFBSTtNQUFFbEQsS0FBSyxHQUFHLENBQUMsQ0FBQztNQUFFYztJQUFXLENBQUMsR0FBRyxJQUFJLENBQUN0QixLQUFLO0lBQzNDLE1BQU07TUFBRWU7SUFBUyxDQUFDLEdBQUdQLEtBQUs7SUFDMUJjLFVBQVUsR0FBR0EsVUFBVSxHQUFHQSxVQUFVLEdBQUdQLFFBQVEsR0FBRyxTQUFTLEdBQUcsT0FBTztJQUNyRSxNQUFNYyxPQUFPLEdBQUduQyxjQUFjLENBQUNRLFVBQVUsRUFBRTtNQUFFNkQsUUFBUSxFQUFFekM7SUFBVyxDQUFDLENBQUM7SUFDcEUsT0FBT08sT0FBTyxDQUFDUSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7RUFDN0I7RUFFQTJCLGlCQUFpQkEsQ0FBQSxFQUFHO0lBQ2xCLE1BQU07TUFBRXpELElBQUk7TUFBRUUsT0FBTztNQUFFSjtJQUFTLENBQUMsR0FBRyxJQUFJLENBQUNMLEtBQUs7SUFDOUMsSUFBSSxDQUFDSyxRQUFRLEtBQUtFLElBQUksSUFBSUUsT0FBTyxDQUFDLEVBQUU7TUFDbEMsSUFBSSxDQUFDMkMsUUFBUSxDQUFDO1FBQ1psRCxVQUFVLEVBQUVLLElBQUksR0FBR0EsSUFBSSxHQUFHRSxPQUFPO1FBQ2pDTCxhQUFhLEVBQUVHLElBQUksR0FBR0EsSUFBSSxHQUFHRTtNQUMvQixDQUFDLENBQUM7SUFDSixDQUFDLE1BQU0sSUFBSUosUUFBUSxFQUFFO01BQ25CLElBQUksQ0FBQytDLFFBQVEsQ0FBQztRQUNaL0MsUUFBUSxFQUFFQSxRQUFRO1FBQ2xCQyxXQUFXLEVBQUVEO01BQ2YsQ0FBQyxDQUFDO0lBQ0o7RUFDRjtFQUNBNEQsa0JBQWtCQSxDQUFDQyxRQUFRLEVBQUVDLFFBQVEsRUFBRUMsUUFBUSxFQUFFO0lBQy9DLE1BQU07TUFBRTdELElBQUk7TUFBRUUsT0FBTztNQUFFSjtJQUFTLENBQUMsR0FBRyxJQUFJLENBQUNMLEtBQUs7SUFDOUMsTUFBTTtNQUFFSSxhQUFhO01BQUVFO0lBQVksQ0FBQyxHQUFHLElBQUksQ0FBQ29ELEtBQUs7SUFDakQsSUFBSSxDQUFDckQsUUFBUSxLQUFLRSxJQUFJLElBQUlFLE9BQU8sQ0FBQyxFQUFFO01BQ2xDLE1BQU1vQixPQUFPLEdBQUd0QixJQUFJLEdBQUdBLElBQUksR0FBR0UsT0FBTztNQUNyQyxJQUFJNEQsSUFBSSxDQUFDQyxTQUFTLENBQUNsRSxhQUFhLENBQUMsS0FBS2lFLElBQUksQ0FBQ0MsU0FBUyxDQUFDekMsT0FBTyxDQUFDLEVBQUU7UUFDN0QsSUFBSSxDQUFDdUIsUUFBUSxDQUFDO1VBQ1psRCxVQUFVLEVBQUUyQixPQUFPO1VBQ25CekIsYUFBYSxFQUFFeUI7UUFDakIsQ0FBQyxDQUFDO01BQ0o7SUFDRixDQUFDLE1BQU0sSUFBSXhCLFFBQVEsSUFBSXNCLEtBQUssQ0FBQ0MsT0FBTyxDQUFDdkIsUUFBUSxDQUFDLEVBQUU7TUFDOUMsTUFBTWtFLGtCQUF1QixHQUFHLEVBQUU7TUFDbENqRSxXQUFXLENBQUM0QixHQUFHLENBQUVzQyxDQUFNLElBQUs7UUFDMUJELGtCQUFrQixDQUFDOUIsSUFBSSxDQUFDK0IsQ0FBQyxDQUFDeEUsS0FBSyxDQUFDO01BQ2xDLENBQUMsQ0FBQztNQUNGLE1BQU15RSxhQUFrQixHQUFHLEVBQUU7TUFDN0JwRSxRQUFRLENBQUM2QixHQUFHLENBQUV3QyxDQUFNLElBQUs7UUFDdkJELGFBQWEsQ0FBQ2hDLElBQUksQ0FBQ2lDLENBQUMsQ0FBQzFFLEtBQUssQ0FBQztNQUM3QixDQUFDLENBQUM7TUFDRixJQUNFcUUsSUFBSSxDQUFDQyxTQUFTLENBQUNDLGtCQUFrQixDQUFDLEtBQUtGLElBQUksQ0FBQ0MsU0FBUyxDQUFDRyxhQUFhLENBQUMsRUFDcEU7UUFDQSxJQUFJLENBQUNyQixRQUFRLENBQUM7VUFDWi9DLFFBQVEsRUFBRUEsUUFBUTtVQUNsQkMsV0FBVyxFQUFFRDtRQUNmLENBQUMsQ0FBQztNQUNKO0lBQ0Y7RUFDRjtFQUNBc0Usb0JBQW9CQSxDQUFBLEVBQUc7SUFDckIsSUFBSSxDQUFDdkIsUUFBUSxHQUFHLENBQUNNLEtBQUssRUFBRVQsUUFBUSxLQUFLO01BQ25DO0lBQ0YsQ0FBQztFQUNIO0VBQ0EyQixRQUFRQSxDQUFDdkMsS0FBSyxFQUFFO0lBQ2QsTUFBTTtNQUFFakMsYUFBYTtNQUFFRTtJQUFZLENBQUMsR0FBRyxJQUFJLENBQUNvRCxLQUFLO0lBQ2pELE1BQU07TUFBRW1CLFlBQVksR0FBRyxJQUFJO01BQUVELFFBQVE7TUFBRXZFLFFBQVE7TUFBRUcsS0FBSyxHQUFHLENBQUM7SUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDUixLQUFLO0lBQzFFLElBQUk7TUFBRThFO0lBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQzlFLEtBQUs7SUFDL0IsTUFBTTtNQUFFZTtJQUFTLENBQUMsR0FBR1AsS0FBSztJQUMxQnNFLFVBQVUsR0FBR0EsVUFBVSxHQUFHQSxVQUFVLEdBQUcvRCxRQUFRLEdBQUcsV0FBVyxHQUFHLE9BQU87SUFDdkUsSUFBSThELFlBQVksRUFBRTtNQUNoQixJQUFJRSxNQUFNLEdBQUcsRUFBRTtNQUNmLElBQUksQ0FBQzFFLFFBQVEsRUFBRTtRQUNiLElBQUlnQyxLQUFLLEVBQUU7VUFDVGpDLGFBQWEsQ0FBQzRFLE9BQU8sQ0FBRTdDLElBQUksSUFBSztZQUM5QixJQUFJOEMsS0FBSyxHQUFHLEVBQUU7WUFDZCxJQUFJSCxVQUFVLENBQUM3QyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUNILE1BQU0sSUFBSSxDQUFDLEVBQUU7Y0FDckNtRCxLQUFLLEdBQUc5QyxJQUFJLENBQUMyQyxVQUFVLENBQUM7WUFDMUIsQ0FBQyxNQUFNO2NBQ0wsTUFBTUksV0FBZ0IsR0FBR0osVUFBVSxDQUFDN0MsS0FBSyxDQUFDLEdBQUcsQ0FBQztjQUM5Q2lELFdBQVcsQ0FBQ2hELEdBQUcsQ0FBQyxDQUFDaUQsQ0FBQyxFQUFFNUMsS0FBSyxLQUFLO2dCQUM1QjBDLEtBQUssR0FBRzFDLEtBQUssSUFBSSxDQUFDLEdBQUcwQyxLQUFLLEdBQUc5QyxJQUFJLENBQUNnRCxDQUFDLENBQUMsR0FBR0YsS0FBSyxHQUFHLEdBQUcsR0FBRzlDLElBQUksQ0FBQ2dELENBQUMsQ0FBQztjQUM5RCxDQUFDLENBQUM7WUFDSjtZQUNBLElBQUlDLElBQUksR0FBRzNGLFdBQVcsQ0FBQzRGLEtBQUssQ0FBQ0osS0FBSyxFQUFFNUMsS0FBSyxDQUFDO1lBQzFDLElBQUkrQyxJQUFJLEVBQUU7Y0FDUkwsTUFBTSxDQUFDdEMsSUFBSSxDQUFDTixJQUFJLENBQUM7WUFDbkI7VUFDRixDQUFDLENBQUM7VUFDRixJQUFJLENBQUNpQixRQUFRLENBQUM7WUFDWmxELFVBQVUsRUFBRTZFO1VBQ2QsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxNQUFNO1VBQ0wsSUFBSSxDQUFDM0IsUUFBUSxDQUFDO1lBQ1psRCxVQUFVLEVBQUVFO1VBQ2QsQ0FBQyxDQUFDO1FBQ0o7TUFDRixDQUFDLE1BQU07UUFDTCxJQUFJaUMsS0FBSyxFQUFFO1VBQ1QsSUFBSVYsS0FBSyxDQUFDQyxPQUFPLENBQUN0QixXQUFXLENBQUMsRUFBRTtZQUM5QkEsV0FBVyxDQUFDNEIsR0FBRyxDQUFDLENBQUNvRCxLQUFVLEVBQUUvQyxLQUFLLEtBQUs7Y0FBQSxJQUFBZ0QsWUFBQTtjQUNyQyxJQUFJTixLQUFLLEdBQUdLLEtBQUssYUFBTEEsS0FBSyxnQkFBQUMsWUFBQSxHQUFMRCxLQUFLLENBQUV0RixLQUFLLGNBQUF1RixZQUFBLHVCQUFaQSxZQUFBLENBQWNsRixRQUFRO2NBQ2xDLElBQUkrRSxJQUFJLEdBQUczRixXQUFXLENBQUM0RixLQUFLLENBQUNKLEtBQUssRUFBRTVDLEtBQUssQ0FBQztjQUMxQyxJQUFJK0MsSUFBSSxFQUFFO2dCQUNSTCxNQUFNLENBQUN0QyxJQUFJLENBQUM2QyxLQUFLLENBQUM7Y0FDcEI7WUFDRixDQUFDLENBQUM7VUFDSjtVQUNBLElBQUksQ0FBQ2xDLFFBQVEsQ0FBQztZQUNaL0MsUUFBUSxFQUFFMEU7VUFDWixDQUFDLENBQUM7UUFDSixDQUFDLE1BQU07VUFDTCxJQUFJLENBQUMzQixRQUFRLENBQUM7WUFDWi9DLFFBQVEsRUFBRUE7VUFDWixDQUFDLENBQUM7UUFDSjtNQUNGO0lBQ0Y7SUFDQXVFLFFBQVEsSUFBSUEsUUFBUSxDQUFDdkMsS0FBSyxDQUFDO0VBQzdCO0VBQ0FtRCxZQUFZQSxDQUFDQyxVQUFVLEVBQUU7SUFDdkIsSUFBSTtNQUNGakYsS0FBSyxHQUFHLENBQUMsQ0FBQztNQUNWa0YsU0FBUyxHQUFHLFFBQVE7TUFDcEJaLFVBQVU7TUFDVnhEO0lBQ0YsQ0FBQyxHQUFHLElBQUksQ0FBQ3RCLEtBQUs7SUFDZCxNQUFNO01BQUVlO0lBQVMsQ0FBQyxHQUFHUCxLQUFLO0lBQzFCYyxVQUFVLEdBQUdBLFVBQVUsR0FBR0EsVUFBVSxHQUFHUCxRQUFRLEdBQUcsU0FBUyxHQUFHLE9BQU87SUFDckUrRCxVQUFVLEdBQUdBLFVBQVUsR0FBR0EsVUFBVSxHQUFHL0QsUUFBUSxHQUFHLFdBQVcsR0FBRyxPQUFPO0lBQ3ZFLE9BQU8wRSxVQUFVLENBQUN2RCxHQUFHLENBQUVDLElBQUksSUFBSztNQUM5QixJQUFJRSxLQUFVO01BQ2QsSUFBSWYsVUFBVSxDQUFDVyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUNILE1BQU0sSUFBSSxDQUFDLEVBQUU7UUFDckNPLEtBQUssR0FDSHFELFNBQVMsS0FBSyxRQUFRLEdBQUdDLE1BQU0sQ0FBQ3hELElBQUksQ0FBQ2IsVUFBVSxDQUFDLENBQUMsR0FBR2EsSUFBSSxDQUFDYixVQUFVLENBQUM7TUFDeEUsQ0FBQyxNQUFNO1FBQ0wsTUFBTVUsV0FBZ0IsR0FBR1YsVUFBVSxDQUFDVyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQzlDSSxLQUFLLEdBQUMsRUFBRTtRQUNSTCxXQUFXLENBQUNFLEdBQUcsQ0FBQyxDQUFDSSxDQUFDLEVBQUVDLEtBQUssS0FBSztVQUM1QkYsS0FBSyxHQUFHRSxLQUFLLElBQUksQ0FBQyxHQUFHRixLQUFLLEdBQUdGLElBQUksQ0FBQ0csQ0FBQyxDQUFDLEdBQUdELEtBQUssR0FBRyxHQUFHLEdBQUdGLElBQUksQ0FBQ0csQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQztNQUNKO01BQ0EsSUFBSXNELEdBQUcsR0FBR3pELElBQUksQ0FBQzBELEVBQUUsR0FBSTFELElBQUksQ0FBQzBELEVBQUUsS0FBSyxXQUFXLEdBQUcxRCxJQUFJLENBQUMwRCxFQUFFLEdBQUd4RCxLQUFLLEdBQUlBLEtBQUs7TUFDdkUsSUFBSTRDLEtBQUssR0FBRyxFQUFFO01BQ2QsSUFBSUgsVUFBVSxDQUFDN0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDSCxNQUFNLElBQUksQ0FBQyxFQUFFO1FBQ3JDbUQsS0FBSyxHQUFHOUMsSUFBSSxDQUFDMkMsVUFBVSxDQUFDO01BQzFCLENBQUMsTUFBTTtRQUNMLE1BQU1JLFdBQWdCLEdBQUdKLFVBQVUsQ0FBQzdDLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDOUNpRCxXQUFXLENBQUNoRCxHQUFHLENBQUMsQ0FBQ2lELENBQUMsRUFBRTVDLEtBQUssS0FBSztVQUM1QjBDLEtBQUssR0FBRzFDLEtBQUssSUFBSSxDQUFDLEdBQUcwQyxLQUFLLEdBQUc5QyxJQUFJLENBQUNnRCxDQUFDLENBQUMsR0FBR0YsS0FBSyxHQUFHLEdBQUcsR0FBRzlDLElBQUksQ0FBQ2dELENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUM7TUFDSjtNQUNBLG9CQUNFakcsS0FBQSxDQUFBNEcsYUFBQSxDQUFDbkcsTUFBTTtRQUNMaUcsR0FBRyxFQUFFQSxHQUFJO1FBQ1R2RCxLQUFLLEVBQUVBLEtBQU07UUFDYjRDLEtBQUssRUFBRUEsS0FBTTtRQUNiYyxRQUFRLEVBQUU1RCxJQUFJLENBQUM0RCxRQUFRLEdBQUcsSUFBSSxHQUFHO01BQU0sR0FFdENkLEtBQ0ssQ0FBQztJQUViLENBQUMsQ0FBQztFQUNKO0VBQ0FlLGNBQWNBLENBQUEsRUFBRztJQUNmLE1BQU07TUFBRUMsU0FBUyxHQUFHO0lBQUssQ0FBQyxHQUFHLElBQUksQ0FBQ2pHLEtBQUs7SUFDdkMsTUFBTTtNQUFFRSxVQUFVO01BQUVHO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQ3FELEtBQUs7SUFDM0MsSUFBSXJELFFBQVEsRUFBRTtNQUNaLG9CQUFPbkIsS0FBQSxDQUFBNEcsYUFBQSxDQUFBNUcsS0FBQSxDQUFBZ0gsUUFBQSxRQUFHN0YsUUFBVyxDQUFDO0lBQ3hCLENBQUMsTUFBTTtNQUNMLElBQUk4RixZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ25CVixVQUFVLEdBQUcsRUFBRTtNQUNqQnZGLFVBQVUsQ0FBQzhFLE9BQU8sQ0FBRTdDLElBQUksSUFBSztRQUMzQixJQUFJOEMsS0FBSyxHQUFHOUMsSUFBSSxDQUFDaUUsU0FBUztRQUMxQixJQUFJbkIsS0FBSyxJQUFJZ0IsU0FBUyxFQUFFO1VBQ3RCLElBQUksQ0FBQ0UsWUFBWSxDQUFDbEIsS0FBSyxDQUFDLEVBQUVrQixZQUFZLENBQUNsQixLQUFLLENBQUMsR0FBRyxFQUFFO1VBQ2xEa0IsWUFBWSxDQUFDbEIsS0FBSyxDQUFDLENBQUN4QyxJQUFJLENBQUNOLElBQUksQ0FBQztRQUNoQyxDQUFDLE1BQU07VUFDTHNELFVBQVUsQ0FBQ2hELElBQUksQ0FBQ04sSUFBSSxDQUFDO1FBQ3ZCO01BQ0YsQ0FBQyxDQUFDO01BQ0YsSUFBSWtFLE1BQU0sR0FBRyxJQUFJLENBQUNiLFlBQVksQ0FBQ0MsVUFBVSxDQUFDO01BQzFDLElBQUlhLFFBQVEsR0FBR0MsTUFBTSxDQUFDQyxJQUFJLENBQUNMLFlBQVksQ0FBQyxDQUFDakUsR0FBRyxDQUFFMEQsR0FBRyxJQUFLO1FBQ3BELG9CQUNFMUcsS0FBQSxDQUFBNEcsYUFBQSxDQUFDbEcsUUFBUTtVQUFDZ0csR0FBRyxFQUFFQSxHQUFJO1VBQUNYLEtBQUssRUFBRVc7UUFBSSxHQUM1QixJQUFJLENBQUNKLFlBQVksQ0FBQ1csWUFBWSxDQUFDUCxHQUFHLENBQUMsQ0FDNUIsQ0FBQztNQUVmLENBQUMsQ0FBQztNQUNGLG9CQUNFMUcsS0FBQSxDQUFBNEcsYUFBQSxDQUFBNUcsS0FBQSxDQUFBZ0gsUUFBQSxRQUNHRyxNQUFNLEVBQ05DLFFBQ0QsQ0FBQztJQUVQO0VBQ0Y7RUFDQUcsUUFBUUEsQ0FBQ3BFLEtBQUssRUFBRTVCLE9BQU8sRUFBRTtJQUN2QixNQUFNO01BQUVnRztJQUFTLENBQUMsR0FBRyxJQUFJLENBQUN6RyxLQUFLO0lBQy9CLElBQUksQ0FBQ29ELFFBQVEsQ0FBQztNQUNaakQsV0FBVyxFQUFFa0M7SUFDZixDQUFDLENBQUM7SUFDRixJQUFJb0UsUUFBUSxFQUFFO01BQ1osTUFBTWxHLElBQUksR0FBRyxJQUFJLENBQUN1RCxhQUFhLENBQUN6QixLQUFLLENBQUM7TUFDdENvRSxRQUFRLENBQUNwRSxLQUFLLEVBQUU1QixPQUFPLEVBQUVGLElBQUksQ0FBQztJQUNoQztFQUNGO0VBQ0FtRyxRQUFRQSxDQUFDckUsS0FBSyxFQUFFNUIsT0FBTyxFQUFFO0lBQ3ZCLE1BQU07TUFBRWlHO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzFHLEtBQUs7SUFFL0IsSUFBSTBHLFFBQVEsRUFBRTtNQUNaLE1BQU1uRyxJQUFJLEdBQUcsSUFBSSxDQUFDdUQsYUFBYSxDQUFDekIsS0FBSyxDQUFDO01BQ3RDcUUsUUFBUSxDQUFDckUsS0FBSyxFQUFFNUIsT0FBTyxFQUFFRixJQUFJLENBQUM7SUFDaEM7RUFDRjtFQUNBb0csdUJBQXVCQSxDQUFDQyxJQUFJLEVBQUU7SUFDNUIsSUFBSSxDQUFDQSxJQUFJLEVBQUU7TUFDVCxJQUFJLENBQUNuRCxTQUFTLENBQUMsQ0FBQztJQUNsQjtFQUNGO0VBQ0FvRCxNQUFNQSxDQUFBLEVBQUc7SUFDUCxNQUFBQyxXQUFBLEdBZUksSUFBSSxDQUFDOUcsS0FBSztNQWZSO1FBQ0pLLFFBQVE7UUFDUkcsS0FBSztRQUNMRCxJQUFJO1FBQ0prRyxRQUFRO1FBQ1JDLFFBQVE7UUFDUmpHLE9BQU87UUFDUHFFLFVBQVU7UUFDVnhELFVBQVU7UUFDVnlGLFlBQVk7UUFDWmQsU0FBUyxHQUFHLElBQUk7UUFDaEJ2RixPQUFPO1FBQ1BDLFVBQVU7UUFDVitFO01BRUYsQ0FBQyxHQUFBb0IsV0FBQTtNQURJRSxNQUFNLEdBQUE1Rix3QkFBQSxDQUFBMEYsV0FBQSxFQUFBRyxVQUFBO0lBRVgsSUFBSWpILEtBQUssR0FBRztNQUNWNkUsWUFBWSxFQUFFLEtBQUs7TUFDbkJxQyxVQUFVLEVBQUUsSUFBSTtNQUNoQkMsZ0JBQWdCLEVBQUUsT0FBTztNQUN6QkMsV0FBVyxFQUFFLEtBQUs7TUFDbEJDLFVBQVUsRUFBRTtJQUNkLENBQVE7SUFDUixJQUFJO01BQUVDLFNBQVM7TUFBRUM7SUFBZSxDQUFDLEdBQUdqSSxNQUFNLENBQUMsQ0FBQztJQUM1QyxJQUFJaUksY0FBYyxFQUFFO01BQ2xCdkgsS0FBSyxHQUFBNkMsYUFBQTtRQUNIMkUsaUJBQWlCLEVBQUVBLENBQUEsS0FBTUMsUUFBUSxDQUFDQyxjQUFjLENBQUNILGNBQWM7TUFBQyxHQUM3RHZILEtBQUssQ0FDVDtJQUNIO0lBQ0EsSUFBSSxDQUFDK0csWUFBWSxJQUFJTyxTQUFTLEtBQUtQLFlBQVksS0FBSyxJQUFJLEVBQUU7TUFDeEQsb0JBQ0U3SCxLQUFBLENBQUE0RyxhQUFBO1FBQUs2QixTQUFTLEVBQUVuSSxHQUFHLENBQUNELE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJLENBQUNTLEtBQUssQ0FBQzJILFNBQVM7TUFBRSxnQkFDOUR6SSxLQUFBLENBQUE0RyxhQUFBLENBQUFqRyxPQUFBLEVBQUErSCxRQUFBO1FBQ0V2RixLQUFLLEVBQUUsSUFBSSxDQUFDcUIsS0FBSyxDQUFDdkQsV0FBWTtRQUM5QnNHLFFBQVEsRUFBRSxJQUFJLENBQUNBLFFBQVEsQ0FBQ29CLElBQUksQ0FBQyxJQUFJLENBQUU7UUFDbkNqRCxRQUFRLEVBQUUsSUFBSSxDQUFDQSxRQUFRLENBQUNpRCxJQUFJLENBQUMsSUFBSSxDQUFFO1FBQ25DbkIsUUFBUSxFQUFFLElBQUksQ0FBQ0EsUUFBUSxDQUFDbUIsSUFBSSxDQUFDLElBQUksQ0FBRTtRQUNuQ2xCLHVCQUF1QixFQUFFLElBQUksQ0FBQ0EsdUJBQXVCLENBQUNrQixJQUFJLENBQUMsSUFBSTtNQUFFLEdBQzdEN0gsS0FBSyxFQUNMZ0gsTUFBTSxHQUVULElBQUksQ0FBQ2hCLGNBQWMsQ0FBQyxDQUNmLENBQ0wsQ0FBQztJQUVWLENBQUMsTUFBTTtNQUNMLG9CQUNFOUcsS0FBQSxDQUFBNEcsYUFBQSxDQUFBakcsT0FBQSxFQUFBK0gsUUFBQTtRQUNFdkYsS0FBSyxFQUFFLElBQUksQ0FBQ3FCLEtBQUssQ0FBQ3ZELFdBQVk7UUFDOUJ5RSxRQUFRLEVBQUUsSUFBSSxDQUFDQSxRQUFRLENBQUNpRCxJQUFJLENBQUMsSUFBSSxDQUFFO1FBQ25DcEIsUUFBUSxFQUFFLElBQUksQ0FBQ0EsUUFBUSxDQUFDb0IsSUFBSSxDQUFDLElBQUksQ0FBRTtRQUNuQ25CLFFBQVEsRUFBRSxJQUFJLENBQUNBLFFBQVEsQ0FBQ21CLElBQUksQ0FBQyxJQUFJLENBQUU7UUFDbkNsQix1QkFBdUIsRUFBRSxJQUFJLENBQUNBLHVCQUF1QixDQUFDa0IsSUFBSSxDQUFDLElBQUk7TUFBRSxHQUM3RDdILEtBQUssRUFDTGdILE1BQU0sR0FFVCxJQUFJLENBQUNoQixjQUFjLENBQUMsQ0FDZixDQUFDO0lBRWI7RUFDRjtBQUNGO0FBQUMvRixlQUFBLENBN1pvQkgsU0FBUyxZQUNaSCxNQUFNO0FBQUFNLGVBQUEsQ0FESEgsU0FBUyxjQUVWRixRQUFRIn0=
|