@kepler.gl/components 3.1.1 → 3.1.2
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/dist/common/checkbox.js +14 -5
- package/dist/common/histogram-plot.js +13 -13
- package/dist/common/icons/index.js +1 -1
- package/dist/common/index.d.ts +1 -1
- package/dist/common/index.js +3 -3
- package/dist/common/item-selector/chickleted-input.js +5 -2
- package/dist/common/item-selector/dropdown-list.d.ts +1 -1
- package/dist/common/item-selector/dropdown-list.js +5 -5
- package/dist/common/item-selector/dropdown-select.js +8 -3
- package/dist/common/item-selector/item-selector.js +5 -2
- package/dist/common/item-selector/typeahead.js +8 -3
- package/dist/common/range-brush.js +4 -4
- package/dist/common/range-slider.js +7 -7
- package/dist/common/slider/slider-bar-handle.d.ts +2 -2
- package/dist/common/slider/slider-bar-handle.js +4 -4
- package/dist/common/slider/slider-handle.d.ts +3 -3
- package/dist/common/slider/slider-handle.js +11 -11
- package/dist/common/slider/slider.d.ts +3 -3
- package/dist/common/slider/slider.js +6 -6
- package/dist/common/styled-components.d.ts +4 -3
- package/dist/common/styled-components.js +47 -12
- package/dist/hooks/use-legend-position.d.ts +2 -10
- package/dist/hooks/use-legend-position.js +5 -3
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -4
- package/dist/kepler-gl.js +3 -13
- package/dist/loading-indicator.d.ts +2 -2
- package/dist/loading-indicator.js +5 -5
- package/dist/map/map-control.d.ts +2 -0
- package/dist/map/map-control.js +3 -3
- package/dist/map/map-legend-panel.d.ts +3 -1
- package/dist/map/map-legend-panel.js +23 -29
- package/dist/map-container.js +12 -10
- package/dist/side-panel/common/dataset-title.js +4 -4
- package/dist/side-panel/common/types.d.ts +1 -1
- package/dist/side-panel/common/types.js +1 -1
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +3 -3
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +7 -7
- package/dist/side-panel/layer-manager.js +84 -108
- package/dist/side-panel/layer-panel/color-palette.d.ts +2 -2
- package/dist/side-panel/layer-panel/color-palette.js +6 -6
- package/dist/side-panel/layer-panel/color-selector.js +7 -3
- package/dist/side-panel/layer-panel/custom-palette.js +7 -3
- package/dist/side-panel/layer-panel/dataset-section.js +3 -3
- package/dist/side-panel/layer-panel/layer-config-group.js +5 -2
- package/dist/side-panel/layer-panel/layer-list.js +5 -5
- package/dist/side-panel/layer-panel/layer-panel-header.js +9 -5
- package/dist/side-panel/map-manager.js +76 -101
- package/dist/side-panel/map-style-panel/map-layer-group-color-picker.js +3 -3
- package/dist/side-panel/map-style-panel/map-layer-group-item.js +4 -4
- package/dist/side-panel/panel-header-action.js +8 -8
- package/dist/side-panel/panel-view-list-toggle.d.ts +1 -1
- package/dist/side-panel/panel-view-list-toggle.js +3 -3
- package/package.json +15 -15
|
@@ -24,6 +24,7 @@ var _accessor = _interopRequireDefault(require("./accessor"));
|
|
|
24
24
|
var _dropdownList = _interopRequireWildcard(require("./dropdown-list"));
|
|
25
25
|
var _icons = require("../icons");
|
|
26
26
|
var _constants = require("@kepler.gl/constants");
|
|
27
|
+
var _styledComponents2 = require("../styled-components");
|
|
27
28
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4; // SPDX-License-Identifier: MIT
|
|
28
29
|
// Copyright contributors to the kepler.gl project
|
|
29
30
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
@@ -38,7 +39,9 @@ var DEFAULT_CLASS = 'typeahead';
|
|
|
38
39
|
* keyboard or mouse to select.
|
|
39
40
|
*/
|
|
40
41
|
|
|
41
|
-
var TypeaheadWrapper = _styledComponents["default"].div(
|
|
42
|
+
var TypeaheadWrapper = _styledComponents["default"].div.withConfig({
|
|
43
|
+
shouldForwardProp: _styledComponents2.shouldForwardProp
|
|
44
|
+
})(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n background-color: ", ";\n box-shadow: ", ";\n\n &:focus {\n outline: 0;\n }\n"])), function (props) {
|
|
42
45
|
return props.light ? props.theme.dropdownListBgdLT : props.theme.dropdownListBgd;
|
|
43
46
|
}, function (props) {
|
|
44
47
|
return props.theme.dropdownListShadow;
|
|
@@ -46,7 +49,9 @@ var TypeaheadWrapper = _styledComponents["default"].div(_templateObject || (_tem
|
|
|
46
49
|
var InputBox = _styledComponents["default"].div.attrs({
|
|
47
50
|
className: 'typeahead__input_box'
|
|
48
51
|
})(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 8px;\n"])));
|
|
49
|
-
var TypeaheadInput = _styledComponents["default"].input(
|
|
52
|
+
var TypeaheadInput = _styledComponents["default"].input.withConfig({
|
|
53
|
+
shouldForwardProp: _styledComponents2.shouldForwardProp
|
|
54
|
+
})(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n &:hover {\n cursor: pointer;\n background-color: ", ";\n }\n"])), function (props) {
|
|
50
55
|
return props.light ? props.theme.inputLT : props.theme.secondaryInput;
|
|
51
56
|
}, function (props) {
|
|
52
57
|
return props.light ? props.theme.selectBackgroundLT : props.theme.secondaryInputBgd;
|
|
@@ -430,4 +435,4 @@ var Typeahead = /*#__PURE__*/function (_Component) {
|
|
|
430
435
|
});
|
|
431
436
|
(0, _reactLifecyclesCompat.polyfill)(Typeahead);
|
|
432
437
|
var _default = exports["default"] = Typeahead;
|
|
433
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RMaWZlY3ljbGVzQ29tcGF0IiwiX2Z1enp5IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jbGFzc25hbWVzIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfd2luZG93IiwiX2FjY2Vzc29yIiwiX2Ryb3Bkb3duTGlzdCIsIl9pY29ucyIsIl9jb25zdGFudHMiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl90ZW1wbGF0ZU9iamVjdDQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfY2FsbFN1cGVyIiwibyIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiYXBwbHkiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsIkRFRkFVTFRfQ0xBU1MiLCJUeXBlYWhlYWRXcmFwcGVyIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsImxpZ2h0IiwidGhlbWUiLCJkcm9wZG93bkxpc3RCZ2RMVCIsImRyb3Bkb3duTGlzdEJnZCIsImRyb3Bkb3duTGlzdFNoYWRvdyIsIklucHV0Qm94IiwiYXR0cnMiLCJjbGFzc05hbWUiLCJUeXBlYWhlYWRJbnB1dCIsImlucHV0IiwiaW5wdXRMVCIsInNlY29uZGFyeUlucHV0Iiwic2VsZWN0QmFja2dyb3VuZExUIiwic2Vjb25kYXJ5SW5wdXRCZ2QiLCJJbnB1dEljb24iLCJpbnB1dFBsYWNlaG9sZGVyQ29sb3IiLCJnZW5lcmF0ZVNlYXJjaEZ1bmN0aW9uIiwic2VhcmNoT3B0aW9ucyIsImZpbHRlck9wdGlvbiIsIkNvbnNvbGUiLCJ3YXJuIiwidmFsdWUiLCJvcHRpb25zIiwiZmlsdGVyIiwibWFwcGVyIiwiQWNjZXNzb3IiLCJnZW5lcmF0ZUFjY2Vzc29yIiwiSURFTlRJVFlfRk4iLCJmdXp6eSIsImV4dHJhY3QiLCJtYXAiLCJyZXMiLCJpbmRleCIsInNlYXJjaE9wdGlvbnNPbklucHV0IiwiaW5wdXRWYWx1ZSIsImdldE9wdGlvbnNGb3JWYWx1ZSIsInN0YXRlIiwic2hvd09wdGlvbnNXaGVuRW1wdHkiLCJzZWFyY2hhYmxlIiwic2hvdWxkU2tpcFNlYXJjaCIsImVtcHR5VmFsdWUiLCJ0cmltIiwibGVuZ3RoIiwiaXNGb2N1c2VkIiwibm9vcCIsIlR5cGVhaGVhZCIsIl9Db21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfZGVmaW5lUHJvcGVydHkyIiwiY3JlYXRlUmVmIiwiZW50cnkiLCJjdXJyZW50IiwiZm9jdXMiLCJfdGhpcyRzdGF0ZSRlbnRyeVZhbHUiLCJOdW1iZXIiLCJhbGxvd0N1c3RvbVZhbHVlcyIsImVudHJ5VmFsdWUiLCJzZWFyY2hSZXN1bHRzIiwiaW5kZXhPZiIsIl9oYXNDdXN0b21WYWx1ZSIsIm9wdGlvbiIsImV2ZW50IiwiX3RoaXMkcHJvcHMkb25PcHRpb25TIiwiX3RoaXMkcHJvcHMiLCJzZXRTdGF0ZSIsInNlbGVjdGlvbiIsIm9uT3B0aW9uU2VsZWN0ZWQiLCJfdGhpcyRlbnRyeSRjdXJyZW50IiwiZ2V0U2VsZWN0aW9uIiwiX3RoaXMkcHJvcHMkb25LZXlEb3duIiwiX3RoaXMkcHJvcHMyIiwib25LZXlEb3duIiwiX29uT3B0aW9uU2VsZWN0ZWQiLCJzZWxlY3Rpb25JbmRleCIsIl9nZXRDdXN0b21WYWx1ZSIsImV2ZW50cyIsIktleUV2ZW50IiwiRE9NX1ZLX1VQIiwibmF2VXAiLCJET01fVktfRE9XTiIsIm5hdkRvd24iLCJET01fVktfUkVUVVJOIiwiRE9NX1ZLX0VOVEVSIiwiX29uRW50ZXIiLCJET01fVktfRVNDQVBFIiwiX29uRXNjYXBlIiwiRE9NX1ZLX1RBQiIsIl9vblRhYiIsImRlbHRhIiwiX2hhc0hpbnQiLCJuZXdJbmRleCIsIm1heFZpc2libGUiLCJzbGljZSIsIl9uYXYiLCJvbkNoYW5nZSIsIl9vblRleHRFbnRyeVVwZGF0ZWQiLCJzaGlmdEtleSIsIl90aGlzJHByb3BzJG9uS2V5RG93bjIiLCJfdGhpcyRwcm9wczMiLCJoYW5kbGVyIiwiZXZlbnRNYXAiLCJrZXlDb2RlIiwiX3RoaXMkcHJvcHMkb25LZXlEb3duMyIsIl90aGlzJHByb3BzNCIsInByZXZlbnREZWZhdWx0Iiwib25Gb2N1cyIsIm9uQmx1ciIsImluaXRpYWxWYWx1ZSIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwiY29tcG9uZW50RGlkTW91bnQiLCJhdXRvRm9jdXMiLCJfdGhpcyRyb290JGN1cnJlbnQiLCJyb290IiwiX3JlbmRlckluY3JlbWVudGFsU2VhcmNoUmVzdWx0cyIsIl90aGlzJHByb3BzJGN1c3RvbUxpcyIsImN1c3RvbUxpc3RDb21wb25lbnQiLCJDdXN0b21MaXN0Q29tcG9uZW50IiwiRHJvcGRvd25MaXN0IiwiY3JlYXRlRWxlbWVudCIsImZpeGVkT3B0aW9ucyIsImFyZVJlc3VsdHNUcnVuY2F0ZWQiLCJyZXN1bHRzVHJ1bmNhdGVkTWVzc2FnZSIsImN1c3RvbVZhbHVlIiwiY3VzdG9tQ2xhc3NlcyIsImN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IiwiY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudCIsImRlZmF1bHRDbGFzc05hbWVzIiwiZGlzcGxheU9wdGlvbiIsInNlbGVjdGVkSXRlbXMiLCJfaGFzRml4ZWRPcHRpb25zIiwiX3RoaXMkcHJvcHMkZml4ZWRPcHRpIiwiX3RoaXMkcHJvcHMkZml4ZWRPcHRpMiIsIl90aGlzJHByb3BzJGZpeGVkT3B0aTMiLCJfcmVuZGVySGlkZGVuSW5wdXQiLCJuYW1lIiwidHlwZSIsIkFycmF5IiwiaXNBcnJheSIsInJlbmRlciIsIl90aGlzJHByb3BzJGN1c3RvbUNsYSIsIl90aGlzJHByb3BzJGN1c3RvbUNsYTIiLCJpbnB1dENsYXNzZXMiLCJpbnB1dENsYXNzTGlzdCIsImNsYXNzTmFtZXMiLCJjbGFzc2VzIiwiY2xhc3NMaXN0IiwicmVmIiwidGFiSW5kZXgiLCJfb25LZXlEb3duIiwib25LZXlQcmVzcyIsIm9uS2V5VXAiLCJfb25Gb2N1cyIsIl9leHRlbmRzMiIsImRpc2FibGVkIiwiaW5wdXRQcm9wcyIsInBsYWNlaG9sZGVyIiwiX29uQ2hhbmdlIiwiX29uQmx1ciIsImlucHV0SWNvbiIsImhlaWdodCIsImdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyIsInByZXZPcHRpb25zIiwiQ29tcG9uZW50IiwicmVzdWx0cyIsImxpc3RJdGVtIiwibGlzdEFuY2hvciIsInRleHRhcmVhIiwiaW5wdXREaXNwbGF5T3B0aW9uIiwiTGlzdEl0ZW0iLCJTZWFyY2giLCJwb2x5ZmlsbCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vaXRlbS1zZWxlY3Rvci90eXBlYWhlYWQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgY3JlYXRlUmVmLCBFbGVtZW50VHlwZSwgS2V5Ym9hcmRFdmVudEhhbmRsZXJ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7cG9seWZpbGx9IGZyb20gJ3JlYWN0LWxpZmVjeWNsZXMtY29tcGF0JztcbmltcG9ydCBmdXp6eSBmcm9tICdmdXp6eSc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBzdHlsZWQsIHtJU3R5bGVkQ29tcG9uZW50fSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge2NvbnNvbGUgYXMgQ29uc29sZX0gZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5cbmltcG9ydCBBY2Nlc3NvciBmcm9tICcuL2FjY2Vzc29yJztcbmltcG9ydCBEcm9wZG93bkxpc3QsIHtMaXN0SXRlbX0gZnJvbSAnLi9kcm9wZG93bi1saXN0JztcbmltcG9ydCB7U2VhcmNofSBmcm9tICcuLi9pY29ucyc7XG5pbXBvcnQge0tleUV2ZW50fSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0Jhc2VDb21wb25lbnRQcm9wc30gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5jb25zdCBERUZBVUxUX0NMQVNTID0gJ3R5cGVhaGVhZCc7XG4vKipcbiAqIENvcGllZCBtb3N0bHkgZnJvbSAncmVhY3QtdHlwZWFoZWFkJywgYW4gYXV0by1jb21wbGV0aW5nIHRleHQgaW5wdXRcbiAqXG4gKiBSZW5kZXJzIGFuIHRleHQgaW5wdXQgdGhhdCBzaG93cyBvcHRpb25zIG5lYXJieSB0aGF0IHlvdSBjYW4gdXNlIHRoZVxuICoga2V5Ym9hcmQgb3IgbW91c2UgdG8gc2VsZWN0LlxuICovXG5cbmV4cG9ydCB0eXBlIFR5cGVhaGVhZFdyYXBwZXJQcm9wcyA9IEJhc2VDb21wb25lbnRQcm9wcyAmIHtcbiAgbGlnaHQ/OiBib29sZWFuO1xuICByZWY6IFJlYWN0LlJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG59O1xuXG5jb25zdCBUeXBlYWhlYWRXcmFwcGVyOiBJU3R5bGVkQ29tcG9uZW50PFxuICAnd2ViJyxcbiAgVHlwZWFoZWFkV3JhcHBlclByb3BzXG4+ID0gc3R5bGVkLmRpdjxUeXBlYWhlYWRXcmFwcGVyUHJvcHM+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+XG4gICAgcHJvcHMubGlnaHQgPyBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCZ2RMVCA6IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJnZH07XG4gIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0U2hhZG93fTtcblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG5gO1xuXG5jb25zdCBJbnB1dEJveCA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICd0eXBlYWhlYWRfX2lucHV0X2JveCdcbn0pYFxuICBwYWRkaW5nOiA4cHg7XG5gO1xuXG5leHBvcnQgdHlwZSBUeXBlYWhlYWRJbnB1dFByb3BzID0gQmFzZUNvbXBvbmVudFByb3BzICYge1xuICBsaWdodD86IGJvb2xlYW47XG4gIHZhbHVlPzogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgcmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBwbGFjZWhvbGRlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn07XG5cbmNvbnN0IFR5cGVhaGVhZElucHV0OiBJU3R5bGVkQ29tcG9uZW50PFxuICAnd2ViJyxcbiAgVHlwZWFoZWFkSW5wdXRQcm9wc1xuPiA9IHN0eWxlZC5pbnB1dDxUeXBlYWhlYWRJbnB1dFByb3BzPmBcbiAgJHtwcm9wcyA9PiAocHJvcHMubGlnaHQgPyBwcm9wcy50aGVtZS5pbnB1dExUIDogcHJvcHMudGhlbWUuc2Vjb25kYXJ5SW5wdXQpfVxuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PlxuICAgICAgcHJvcHMubGlnaHQgPyBwcm9wcy50aGVtZS5zZWxlY3RCYWNrZ3JvdW5kTFQgOiBwcm9wcy50aGVtZS5zZWNvbmRhcnlJbnB1dEJnZH07XG4gIH1cbmA7XG5cbmNvbnN0IElucHV0SWNvbiA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICd0eXBlYWhlYWRfX2lucHV0X2ljb24nXG59KWBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTVweDtcbiAgdG9wOiAxNHB4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dFBsYWNlaG9sZGVyQ29sb3J9O1xuYDtcblxuZnVuY3Rpb24gZ2VuZXJhdGVTZWFyY2hGdW5jdGlvbihwcm9wczogVHlwZWFoZWFkUHJvcHMpIHtcbiAgY29uc3Qge3NlYXJjaE9wdGlvbnMsIGZpbHRlck9wdGlvbn0gPSBwcm9wcztcbiAgaWYgKHR5cGVvZiBzZWFyY2hPcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKGZpbHRlck9wdGlvbiAhPT0gbnVsbCkge1xuICAgICAgQ29uc29sZS53YXJuKCdzZWFyY2hPcHRpb25zIHByb3AgaXMgYmVpbmcgdXNlZCwgZmlsdGVyT3B0aW9uIHByb3Agd2lsbCBiZSBpZ25vcmVkJyk7XG4gICAgfVxuICAgIHJldHVybiBzZWFyY2hPcHRpb25zO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBmaWx0ZXJPcHRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyB1c2UgY3VzdG9tIGZpbHRlciBvcHRpb25cbiAgICByZXR1cm4gKHZhbHVlLCBvcHRpb25zKSA9PiBvcHRpb25zLmZpbHRlcihvID0+IGZpbHRlck9wdGlvbih2YWx1ZSwgbykpO1xuICB9XG5cbiAgY29uc3QgbWFwcGVyID1cbiAgICB0eXBlb2YgZmlsdGVyT3B0aW9uID09PSAnc3RyaW5nJ1xuICAgICAgPyBBY2Nlc3Nvci5nZW5lcmF0ZUFjY2Vzc29yKGZpbHRlck9wdGlvbilcbiAgICAgIDogQWNjZXNzb3IuSURFTlRJVFlfRk47XG5cbiAgcmV0dXJuICh2YWx1ZSwgb3B0aW9ucykgPT4ge1xuICAgIHJldHVybiBmdXp6eS5maWx0ZXIodmFsdWUsIG9wdGlvbnMsIHtleHRyYWN0OiBtYXBwZXJ9KS5tYXAocmVzID0+IG9wdGlvbnNbcmVzLmluZGV4XSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIHNlYXJjaE9wdGlvbnNPbklucHV0KGlucHV0VmFsdWUsIHByb3BzKSB7XG4gIGNvbnN0IHNlYXJjaE9wdGlvbnMgPSBnZW5lcmF0ZVNlYXJjaEZ1bmN0aW9uKHByb3BzKTtcbiAgcmV0dXJuIHNlYXJjaE9wdGlvbnMoaW5wdXRWYWx1ZSwgcHJvcHMub3B0aW9ucyk7XG59XG5cbmZ1bmN0aW9uIGdldE9wdGlvbnNGb3JWYWx1ZSh2YWx1ZSwgcHJvcHMsIHN0YXRlKSB7XG4gIGNvbnN0IHtvcHRpb25zLCBzaG93T3B0aW9uc1doZW5FbXB0eX0gPSBwcm9wcztcblxuICBpZiAoIXByb3BzLnNlYXJjaGFibGUpIHtcbiAgICAvLyBkaXJlY3RseSBwYXNzIHRocm91Z2ggb3B0aW9ucyBpZiBjYW4gbm90IGJlIHNlYXJjaGVkXG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cbiAgaWYgKHNob3VsZFNraXBTZWFyY2godmFsdWUsIHN0YXRlLCBzaG93T3B0aW9uc1doZW5FbXB0eSkpIHtcbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuXG4gIGNvbnN0IHNlYXJjaE9wdGlvbnMgPSBnZW5lcmF0ZVNlYXJjaEZ1bmN0aW9uKHByb3BzKTtcbiAgcmV0dXJuIHNlYXJjaE9wdGlvbnModmFsdWUsIG9wdGlvbnMpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRTa2lwU2VhcmNoKGlucHV0LCBzdGF0ZSwgc2hvd09wdGlvbnNXaGVuRW1wdHkpIHtcbiAgY29uc3QgZW1wdHlWYWx1ZSA9ICFpbnB1dCB8fCBpbnB1dC50cmltKCkubGVuZ3RoID09PSAwO1xuXG4gIC8vIHRoaXMuc3RhdGUgbXVzdCBiZSBjaGVja2VkIGJlY2F1c2UgaXQgbWF5IG5vdCBiZSBkZWZpbmVkIHlldCBpZiB0aGlzIGZ1bmN0aW9uXG4gIC8vIGlzIGNhbGxlZCBmcm9tIHdpdGhpbiBnZXRJbml0aWFsU3RhdGVcbiAgY29uc3QgaXNGb2N1c2VkID0gc3RhdGUgJiYgc3RhdGUuaXNGb2N1c2VkO1xuICByZXR1cm4gIShzaG93T3B0aW9uc1doZW5FbXB0eSAmJiBpc0ZvY3VzZWQpICYmIGVtcHR5VmFsdWU7XG59XG5cbnR5cGUgT3B0aW9uID0gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG9iamVjdCB8IHVuZGVmaW5lZDtcbmludGVyZmFjZSBUeXBlYWhlYWRQcm9wcyB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGN1c3RvbUNsYXNzZXM/OiBhbnk7XG4gIHJlc3VsdHNUcnVuY2F0ZWRNZXNzYWdlPzogc3RyaW5nO1xuICBvcHRpb25zPzogUmVhZG9ubHlBcnJheTxPcHRpb24+O1xuICBmaXhlZE9wdGlvbnM/OiBSZWFkb25seUFycmF5PE9wdGlvbj4gfCBudWxsO1xuICBhbGxvd0N1c3RvbVZhbHVlcz86IG51bWJlcjtcbiAgaW5pdGlhbFZhbHVlPzogc3RyaW5nO1xuICB2YWx1ZT86IHN0cmluZztcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgdGV4dGFyZWE/OiBib29sZWFuO1xuICBpbnB1dFByb3BzPzogb2JqZWN0O1xuICBvbk9wdGlvblNlbGVjdGVkPzogKG9wdGlvbjogYW55LCBldmVudDogYW55KSA9PiBhbnk7XG4gIG9uQ2hhbmdlPzogKGV2ZW50OiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcbiAgb25LZXlEb3duPzogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4gdm9pZDtcbiAgb25LZXlQcmVzcz86IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgb25LZXlVcD86IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgb25Gb2N1cz86IChldmVudDogUmVhY3QuRm9jdXNFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWQ7XG4gIG9uQmx1cj86IChldmVudDogUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcbiAgZmlsdGVyT3B0aW9uPzogc3RyaW5nIHwgKChvOiBPcHRpb24sIHM6IHN0cmluZykgPT4gYm9vbGVhbik7XG4gIHNlYXJjaE9wdGlvbnM/OiAobzogT3B0aW9uLCBzOiBzdHJpbmcpID0+IGJvb2xlYW47XG4gIGRpc3BsYXlPcHRpb24/OiBzdHJpbmcgfCAoKG86IE9wdGlvbikgPT4gc3RyaW5nKTtcbiAgaW5wdXREaXNwbGF5T3B0aW9uPzogc3RyaW5nIHwgKChvOiBPcHRpb24pID0+IHN0cmluZyk7XG4gIGZvcm1JbnB1dE9wdGlvbj86IHN0cmluZyB8ICgobzogT3B0aW9uKSA9PiBzdHJpbmcpO1xuICBkZWZhdWx0Q2xhc3NOYW1lcz86IGJvb2xlYW47XG4gIGN1c3RvbUxpc3RDb21wb25lbnQ/OiBFbGVtZW50VHlwZTtcbiAgY3VzdG9tTGlzdEl0ZW1Db21wb25lbnQ/OiBFbGVtZW50VHlwZTtcbiAgY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudD86IEVsZW1lbnRUeXBlIHwgbnVsbDtcbiAgc2hvd09wdGlvbnNXaGVuRW1wdHk/OiBib29sZWFuO1xuICBzZWFyY2hhYmxlPzogYm9vbGVhbjtcbiAgbGlnaHQ/OiBib29sZWFuO1xuICBpbnB1dEljb246IEVsZW1lbnRUeXBlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIHNlbGVjdGVkSXRlbXM/OiBhbnlbXSB8IG51bGw7XG4gIGF1dG9Gb2N1czogYm9vbGVhbjtcbiAgLy8gZGVwcmVjYXRlZFxuICBtYXhWaXNpYmxlPzogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgVHlwZWFoZWFkU3RhdGUge1xuICBzZWFyY2hSZXN1bHRzOiBSZWFkb25seUFycmF5PHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBvYmplY3QgfCB1bmRlZmluZWQ+O1xuXG4gIC8vIFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBzb21ldGhpbmcgZWxzZSwgJ2VudHJ5VmFsdWUnXG4gIGVudHJ5VmFsdWU/OiBzdHJpbmc7XG5cbiAgLy8gQSB2YWxpZCB0eXBlYWhlYWQgdmFsdWVcbiAgc2VsZWN0aW9uPzogc3RyaW5nO1xuXG4gIC8vIEluZGV4IG9mIHRoZSBzZWxlY3Rpb25cbiAgc2VsZWN0aW9uSW5kZXg6IG51bGw7XG5cbiAgLy8gS2VlcCB0cmFjayBvZiB0aGUgZm9jdXMgc3RhdGUgb2YgdGhlIGlucHV0IGVsZW1lbnQsIHRvIGRldGVybWluZVxuICAvLyB3aGV0aGVyIHRvIHNob3cgb3B0aW9ucyB3aGVuIGVtcHR5IChpZiBzaG93T3B0aW9uc1doZW5FbXB0eSBpcyB0cnVlKVxuICBpc0ZvY3VzZWQ6IGJvb2xlYW47XG59XG5cbmZ1bmN0aW9uIG5vb3AoKSB7XG4gIHJldHVybjtcbn1cbmNsYXNzIFR5cGVhaGVhZCBleHRlbmRzIENvbXBvbmVudDxUeXBlYWhlYWRQcm9wcywgVHlwZWFoZWFkU3RhdGU+IHtcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBvcHRpb25zOiBbXSxcbiAgICBjdXN0b21DbGFzc2VzOiB7XG4gICAgICByZXN1bHRzOiAnbGlzdC1zZWxlY3RvcicsXG4gICAgICBpbnB1dDogJ3R5cGVhaGVhZF9faW5wdXQnLFxuICAgICAgbGlzdEl0ZW06ICdsaXN0X19pdGVtJyxcbiAgICAgIGxpc3RBbmNob3I6ICdsaXN0X19pdGVtX19hbmNob3InXG4gICAgfSxcbiAgICBhbGxvd0N1c3RvbVZhbHVlczogMCxcbiAgICBpbml0aWFsVmFsdWU6ICcnLFxuICAgIHZhbHVlOiAnJyxcbiAgICBwbGFjZWhvbGRlcjogJycsXG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIHRleHRhcmVhOiBmYWxzZSxcbiAgICBpbnB1dFByb3BzOiB7fSxcbiAgICBvbk9wdGlvblNlbGVjdGVkOiBub29wLFxuICAgIG9uQ2hhbmdlOiBub29wLFxuICAgIG9uS2V5RG93bjogbm9vcCxcbiAgICBvbktleVByZXNzOiBub29wLFxuICAgIG9uS2V5VXA6IG5vb3AsXG4gICAgb25Gb2N1czogbm9vcCxcbiAgICBvbkJsdXI6IG5vb3AsXG4gICAgZmlsdGVyT3B0aW9uOiBudWxsLFxuICAgIHNlYXJjaE9wdGlvbnM6IG51bGwsXG4gICAgaW5wdXREaXNwbGF5T3B0aW9uOiBudWxsLFxuICAgIGRlZmF1bHRDbGFzc05hbWVzOiB0cnVlLFxuICAgIGN1c3RvbUxpc3RDb21wb25lbnQ6IERyb3Bkb3duTGlzdCxcbiAgICBjdXN0b21MaXN0SXRlbUNvbXBvbmVudDogTGlzdEl0ZW0sXG4gICAgaW5wdXRJY29uOiBTZWFyY2gsXG4gICAgY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudDogbnVsbCxcbiAgICBzaG93T3B0aW9uc1doZW5FbXB0eTogdHJ1ZSxcbiAgICBzZWFyY2hhYmxlOiB0cnVlLFxuICAgIHJlc3VsdHNUcnVuY2F0ZWRNZXNzYWdlOiBudWxsLFxuICAgIGF1dG9Gb2N1czogdHJ1ZVxuICB9O1xuXG4gIHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMocHJvcHMsIHN0YXRlKSB7XG4gICAgaWYgKHByb3BzLm9wdGlvbnMgPT09IHN0YXRlLnByZXZPcHRpb25zKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgLy8gIGludm9rZWQgYWZ0ZXIgYSBjb21wb25lbnQgaXMgaW5zdGFudGlhdGVkIGFzIHdlbGwgYXMgYmVmb3JlIGl0IGlzIHJlLXJlbmRlcmVkXG4gICAgY29uc3Qgc2VhcmNoUmVzdWx0cyA9IGdldE9wdGlvbnNGb3JWYWx1ZShzdGF0ZS5lbnRyeVZhbHVlLCBwcm9wcywgc3RhdGUpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNlYXJjaFJlc3VsdHMsXG4gICAgICBwcmV2T3B0aW9uczogcHJvcHMub3B0aW9uc1xuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAvLyBpbml0aWF0ZSBzZWFyY2hSZXN1bHRzIHdpdGggb3B0aW9uc1xuICAgICAgc2VhcmNoUmVzdWx0czogdGhpcy5wcm9wcy5vcHRpb25zIHx8IFtdLFxuXG4gICAgICAvLyBUaGlzIHNob3VsZCBiZSBjYWxsZWQgc29tZXRoaW5nIGVsc2UsICdlbnRyeVZhbHVlJ1xuICAgICAgZW50cnlWYWx1ZTogdGhpcy5wcm9wcy52YWx1ZSB8fCB0aGlzLnByb3BzLmluaXRpYWxWYWx1ZSxcblxuICAgICAgLy8gQSB2YWxpZCB0eXBlYWhlYWQgdmFsdWVcbiAgICAgIHNlbGVjdGlvbjogdGhpcy5wcm9wcy52YWx1ZSxcblxuICAgICAgLy8gSW5kZXggb2YgdGhlIHNlbGVjdGlvblxuICAgICAgc2VsZWN0aW9uSW5kZXg6IG51bGwsXG5cbiAgICAgIC8vIEtlZXAgdHJhY2sgb2YgdGhlIGZvY3VzIHN0YXRlIG9mIHRoZSBpbnB1dCBlbGVtZW50LCB0byBkZXRlcm1pbmVcbiAgICAgIC8vIHdoZXRoZXIgdG8gc2hvdyBvcHRpb25zIHdoZW4gZW1wdHkgKGlmIHNob3dPcHRpb25zV2hlbkVtcHR5IGlzIHRydWUpXG4gICAgICBpc0ZvY3VzZWQ6IGZhbHNlXG4gICAgfTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIC8vIGNhbGwgZm9jdXMgb24gZW50cnkgb3IgZGl2IHRvIHRyaWdnZXIga2V5IGV2ZW50cyBsaXN0ZW5lclxuICAgIGlmICh0aGlzLnByb3BzLmF1dG9Gb2N1cykge1xuICAgICAgaWYgKHRoaXMuZW50cnkuY3VycmVudCkge1xuICAgICAgICB0aGlzLmVudHJ5LmN1cnJlbnQuZm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucm9vdC5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJvb3QgPSBjcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XG4gIGVudHJ5ID0gY3JlYXRlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KCk7XG5cbiAgZm9jdXMgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMuZW50cnkuY3VycmVudCkge1xuICAgICAgdGhpcy5lbnRyeS5jdXJyZW50LmZvY3VzKCk7XG4gICAgfVxuICB9O1xuXG4gIF9oYXNDdXN0b21WYWx1ZSA9ICgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgTnVtYmVyKHRoaXMucHJvcHMuYWxsb3dDdXN0b21WYWx1ZXMpID4gMCAmJlxuICAgICAgTnVtYmVyKHRoaXMuc3RhdGUuZW50cnlWYWx1ZT8ubGVuZ3RoKSA+PSBOdW1iZXIodGhpcy5wcm9wcy5hbGxvd0N1c3RvbVZhbHVlcykgJiZcbiAgICAgIHRoaXMuc3RhdGUuc2VhcmNoUmVzdWx0cy5pbmRleE9mKHRoaXMuc3RhdGUuZW50cnlWYWx1ZSkgPCAwXG4gICAgKTtcbiAgfTtcblxuICBfZ2V0Q3VzdG9tVmFsdWUgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuX2hhc0N1c3RvbVZhbHVlKCkgPyB0aGlzLnN0YXRlLmVudHJ5VmFsdWUgOiBudWxsO1xuICB9O1xuXG4gIF9yZW5kZXJJbmNyZW1lbnRhbFNlYXJjaFJlc3VsdHMoKSB7XG4gICAgY29uc3Qge2N1c3RvbUxpc3RDb21wb25lbnQ6IEN1c3RvbUxpc3RDb21wb25lbnQgPSBEcm9wZG93bkxpc3R9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gKFxuICAgICAgPEN1c3RvbUxpc3RDb21wb25lbnRcbiAgICAgICAgZml4ZWRPcHRpb25zPXt0aGlzLnByb3BzLmZpeGVkT3B0aW9uc31cbiAgICAgICAgb3B0aW9ucz17dGhpcy5zdGF0ZS5zZWFyY2hSZXN1bHRzfVxuICAgICAgICBhcmVSZXN1bHRzVHJ1bmNhdGVkPXtmYWxzZX1cbiAgICAgICAgcmVzdWx0c1RydW5jYXRlZE1lc3NhZ2U9e3RoaXMucHJvcHMucmVzdWx0c1RydW5jYXRlZE1lc3NhZ2V9XG4gICAgICAgIG9uT3B0aW9uU2VsZWN0ZWQ9e3RoaXMuX29uT3B0aW9uU2VsZWN0ZWR9XG4gICAgICAgIGFsbG93Q3VzdG9tVmFsdWVzPXt0aGlzLnByb3BzLmFsbG93Q3VzdG9tVmFsdWVzfVxuICAgICAgICBjdXN0b21WYWx1ZT17dGhpcy5fZ2V0Q3VzdG9tVmFsdWUoKX1cbiAgICAgICAgY3VzdG9tQ2xhc3Nlcz17dGhpcy5wcm9wcy5jdXN0b21DbGFzc2VzfVxuICAgICAgICBjdXN0b21MaXN0SXRlbUNvbXBvbmVudD17dGhpcy5wcm9wcy5jdXN0b21MaXN0SXRlbUNvbXBvbmVudH1cbiAgICAgICAgY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudD17dGhpcy5wcm9wcy5jdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50fVxuICAgICAgICBzZWxlY3Rpb25JbmRleD17dGhpcy5zdGF0ZS5zZWxlY3Rpb25JbmRleH1cbiAgICAgICAgZGVmYXVsdENsYXNzTmFtZXM9e3RoaXMucHJvcHMuZGVmYXVsdENsYXNzTmFtZXN9XG4gICAgICAgIGRpc3BsYXlPcHRpb249e3RoaXMucHJvcHMuZGlzcGxheU9wdGlvbn1cbiAgICAgICAgc2VsZWN0ZWRJdGVtcz17dGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1zfVxuICAgICAgICBsaWdodD17dGhpcy5wcm9wcy5saWdodH1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxuXG4gIGdldFNlbGVjdGlvbigpIHtcbiAgICBsZXQgaW5kZXg6IG51bWJlciB8IG51bGwgPSB0aGlzLnN0YXRlLnNlbGVjdGlvbkluZGV4O1xuICAgIGlmIChpbmRleCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGluZGV4ID0gTnVtYmVyKGluZGV4KTtcblxuICAgIGlmICh0aGlzLl9oYXNDdXN0b21WYWx1ZSgpKSB7XG4gICAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUuZW50cnlWYWx1ZTtcbiAgICAgIH1cbiAgICAgIGluZGV4LS07XG4gICAgfVxuICAgIGlmICh0aGlzLl9oYXNGaXhlZE9wdGlvbnMoKSkge1xuICAgICAgcmV0dXJuIGluZGV4IDwgTnVtYmVyKHRoaXMucHJvcHMuZml4ZWRPcHRpb25zPy5sZW5ndGgpXG4gICAgICAgID8gdGhpcy5wcm9wcy5maXhlZE9wdGlvbnM/LltpbmRleF1cbiAgICAgICAgOiB0aGlzLnN0YXRlLnNlYXJjaFJlc3VsdHNbaW5kZXggLSBOdW1iZXIodGhpcy5wcm9wcy5maXhlZE9wdGlvbnM/Lmxlbmd0aCldO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5zZWFyY2hSZXN1bHRzW2luZGV4XTtcbiAgfVxuXG4gIF9vbk9wdGlvblNlbGVjdGVkID0gKG9wdGlvbiwgZXZlbnQpID0+IHtcbiAgICBpZiAodGhpcy5wcm9wcy5zZWFyY2hhYmxlKSB7XG4gICAgICAvLyByZXNldCBlbnRyeSBpbnB1dFxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIC8vIHJlc2V0IHNlYXJjaCBvcHRpb25zIHdoZW4gc2VsZWN0aW9uIGhhcyBiZWVuIG1hZGVcbiAgICAgICAgc2VhcmNoUmVzdWx0czogdGhpcy5wcm9wcy5vcHRpb25zIHx8IFtdLFxuICAgICAgICBzZWxlY3Rpb246ICcnLFxuICAgICAgICBlbnRyeVZhbHVlOiAnJ1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5wcm9wcy5vbk9wdGlvblNlbGVjdGVkPy4ob3B0aW9uLCBldmVudCk7XG4gIH07XG5cbiAgLy8gdXNlICgpID0+IHt9IHRvIGF2b2lkIGJpbmRpbmcgJ3RoaXMnXG4gIF9vblRleHRFbnRyeVVwZGF0ZWQgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMucHJvcHMuc2VhcmNoYWJsZSkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmVudHJ5LmN1cnJlbnQ/LnZhbHVlO1xuXG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgc2VhcmNoUmVzdWx0czogc2VhcmNoT3B0aW9uc09uSW5wdXQodmFsdWUsIHRoaXMucHJvcHMpLFxuICAgICAgICBzZWxlY3Rpb246ICcnLFxuICAgICAgICBlbnRyeVZhbHVlOiB2YWx1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIF9vbkVudGVyID0gZXZlbnQgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCk7XG4gICAgaWYgKCFzZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMucHJvcHMub25LZXlEb3duPy4oZXZlbnQpO1xuICAgIH1cbiAgICB0aGlzLl9vbk9wdGlvblNlbGVjdGVkKHNlbGVjdGlvbiwgZXZlbnQpO1xuICB9O1xuXG4gIF9vbkVzY2FwZSA9ICgpID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHNlbGVjdGlvbkluZGV4OiBudWxsXG4gICAgfSk7XG4gIH07XG5cbiAgX29uVGFiID0gZXZlbnQgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCk7XG4gICAgbGV0IG9wdGlvbiA9IHNlbGVjdGlvblxuICAgICAgPyBzZWxlY3Rpb25cbiAgICAgIDogdGhpcy5zdGF0ZS5zZWFyY2hSZXN1bHRzLmxlbmd0aCA+IDBcbiAgICAgID8gdGhpcy5zdGF0ZS5zZWFyY2hSZXN1bHRzWzBdXG4gICAgICA6IG51bGw7XG5cbiAgICBpZiAob3B0aW9uID09PSBudWxsICYmIHRoaXMuX2hhc0N1c3RvbVZhbHVlKCkpIHtcbiAgICAgIG9wdGlvbiA9IHRoaXMuX2dldEN1c3RvbVZhbHVlKCk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbiAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuX29uT3B0aW9uU2VsZWN0ZWQob3B0aW9uLCBldmVudCk7XG4gICAgfVxuICB9O1xuXG4gIGV2ZW50TWFwID0gKCkgPT4ge1xuICAgIGNvbnN0IGV2ZW50cyA9IHt9O1xuXG4gICAgZXZlbnRzW0tleUV2ZW50LkRPTV9WS19VUF0gPSB0aGlzLm5hdlVwO1xuICAgIGV2ZW50c1tLZXlFdmVudC5ET01fVktfRE9XTl0gPSB0aGlzLm5hdkRvd247XG4gICAgZXZlbnRzW0tleUV2ZW50LkRPTV9WS19SRVRVUk5dID0gZXZlbnRzW0tleUV2ZW50LkRPTV9WS19FTlRFUl0gPSB0aGlzLl9vbkVudGVyO1xuICAgIGV2ZW50c1tLZXlFdmVudC5ET01fVktfRVNDQVBFXSA9IHRoaXMuX29uRXNjYXBlO1xuICAgIGV2ZW50c1tLZXlFdmVudC5ET01fVktfVEFCXSA9IHRoaXMuX29uVGFiO1xuXG4gICAgcmV0dXJuIGV2ZW50cztcbiAgfTtcblxuICBfbmF2ID0gZGVsdGEgPT4ge1xuICAgIGlmICghdGhpcy5faGFzSGludCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBuZXdJbmRleCA9XG4gICAgICB0aGlzLnN0YXRlLnNlbGVjdGlvbkluZGV4ID09PSBudWxsXG4gICAgICAgID8gZGVsdGEgPT09IDFcbiAgICAgICAgICA/IDBcbiAgICAgICAgICA6IGRlbHRhXG4gICAgICAgIDogdGhpcy5zdGF0ZS5zZWxlY3Rpb25JbmRleCArIGRlbHRhO1xuICAgIGxldCBsZW5ndGggPSB0aGlzLnByb3BzLm1heFZpc2libGVcbiAgICAgID8gdGhpcy5zdGF0ZS5zZWFyY2hSZXN1bHRzLnNsaWNlKDAsIHRoaXMucHJvcHMubWF4VmlzaWJsZSkubGVuZ3RoXG4gICAgICA6IHRoaXMuc3RhdGUuc2VhcmNoUmVzdWx0cy5sZW5ndGg7XG4gICAgaWYgKHRoaXMuX2hhc0N1c3RvbVZhbHVlKCkpIHtcbiAgICAgIGxlbmd0aCArPSAxO1xuICAgIH1cblxuICAgIGlmIChuZXdJbmRleCA8IDApIHtcbiAgICAgIG5ld0luZGV4ICs9IGxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKG5ld0luZGV4ID49IGxlbmd0aCkge1xuICAgICAgbmV3SW5kZXggLT0gbGVuZ3RoO1xuICAgIH1cblxuICAgIHRoaXMuc2V0U3RhdGUoe3NlbGVjdGlvbkluZGV4OiBuZXdJbmRleH0pO1xuICB9O1xuXG4gIG5hdkRvd24gPSAoKSA9PiB7XG4gICAgdGhpcy5fbmF2KDEpO1xuICB9O1xuXG4gIG5hdlVwID0gKCkgPT4ge1xuICAgIHRoaXMuX25hdigtMSk7XG4gIH07XG5cbiAgX29uQ2hhbmdlOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSBldmVudCA9PiB7XG4gICAgaWYgKHRoaXMucHJvcHMub25DaGFuZ2UpIHtcbiAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UoZXZlbnQpO1xuICAgIH1cblxuICAgIHRoaXMuX29uVGV4dEVudHJ5VXBkYXRlZCgpO1xuICB9O1xuXG4gIF9vbktleURvd246IFJlYWN0LktleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PiA9IGV2ZW50ID0+IHtcbiAgICAvLyBJZiB0aGVyZSBhcmUgbm8gdmlzaWJsZSBlbGVtZW50cywgZG9uJ3QgcGVyZm9ybSBzZWxlY3RvciBuYXZpZ2F0aW9uLlxuICAgIC8vIEp1c3QgcGFzcyB0aGlzIHVwIHRvIHRoZSB1cHN0cmVhbSBvbktleWRvd24gaGFuZGxlci5cbiAgICAvLyBBbHNvIHNraXAgaWYgdGhlIHVzZXIgaXMgcHJlc3NpbmcgdGhlIHNoaWZ0IGtleSwgc2luY2Ugbm9uZSBvZiBvdXIgaGFuZGxlcnMgYXJlIGxvb2tpbmcgZm9yIHNoaWZ0XG4gICAgaWYgKCF0aGlzLl9oYXNIaW50KCkgfHwgZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uS2V5RG93bj8uKGV2ZW50KTtcbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGVyID0gdGhpcy5ldmVudE1hcCgpW2V2ZW50LmtleUNvZGVdO1xuXG4gICAgaWYgKGhhbmRsZXIpIHtcbiAgICAgIGhhbmRsZXIoZXZlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vbktleURvd24/LihldmVudCk7XG4gICAgfVxuICAgIC8vIERvbid0IHByb3BhZ2F0ZSB0aGUga2V5c3Ryb2tlIGJhY2sgdG8gdGhlIERPTS9icm93c2VyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfTtcblxuICBfb25Gb2N1czogUmVhY3QuRm9jdXNFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+ID0gZXZlbnQgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoe2lzRm9jdXNlZDogdHJ1ZX0pO1xuICAgIGlmICh0aGlzLnByb3BzLm9uRm9jdXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uRm9jdXMoZXZlbnQpO1xuICAgIH1cbiAgfTtcblxuICBfb25CbHVyOiBSZWFjdC5Gb2N1c0V2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IGV2ZW50ID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHtpc0ZvY3VzZWQ6IGZhbHNlfSk7XG4gICAgaWYgKHRoaXMucHJvcHMub25CbHVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vbkJsdXIoZXZlbnQpO1xuICAgIH1cbiAgfTtcblxuICBfcmVuZGVySGlkZGVuSW5wdXQoKSB7XG4gICAgaWYgKCF0aGlzLnByb3BzLm5hbWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9e3RoaXMucHJvcHMubmFtZX0gdmFsdWU9e3RoaXMuc3RhdGUuc2VsZWN0aW9ufSAvPjtcbiAgfVxuXG4gIF9oYXNIaW50KCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLnNlYXJjaFJlc3VsdHMubGVuZ3RoID4gMCB8fCB0aGlzLl9oYXNDdXN0b21WYWx1ZSgpO1xuICB9XG5cbiAgX2hhc0ZpeGVkT3B0aW9ucygpIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLnByb3BzLmZpeGVkT3B0aW9ucykgJiYgdGhpcy5wcm9wcy5maXhlZE9wdGlvbnMubGVuZ3RoO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGlucHV0Q2xhc3NlcyA9IHt9O1xuICAgIGlucHV0Q2xhc3Nlc1t0aGlzLnByb3BzLmN1c3RvbUNsYXNzZXM/LmlucHV0XSA9IEJvb2xlYW4odGhpcy5wcm9wcy5jdXN0b21DbGFzc2VzPy5pbnB1dCk7XG4gICAgY29uc3QgaW5wdXRDbGFzc0xpc3QgPSBjbGFzc05hbWVzKGlucHV0Q2xhc3Nlcyk7XG5cbiAgICBjb25zdCBjbGFzc2VzID0ge1xuICAgICAgW0RFRkFVTFRfQ0xBU1NdOiB0aGlzLnByb3BzLmRlZmF1bHRDbGFzc05hbWVzXG4gICAgfTtcbiAgICBjbGFzc2VzW3RoaXMucHJvcHMuY2xhc3NOYW1lID8gdGhpcy5wcm9wcy5jbGFzc05hbWUgOiAnJ10gPSBCb29sZWFuKHRoaXMucHJvcHMuY2xhc3NOYW1lKTtcbiAgICBjb25zdCBjbGFzc0xpc3QgPSBjbGFzc05hbWVzKGNsYXNzZXMpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUeXBlYWhlYWRXcmFwcGVyXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NMaXN0fVxuICAgICAgICByZWY9e3RoaXMucm9vdH1cbiAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgIG9uS2V5RG93bj17dGhpcy5fb25LZXlEb3dufVxuICAgICAgICBvbktleVByZXNzPXt0aGlzLnByb3BzLm9uS2V5UHJlc3N9XG4gICAgICAgIG9uS2V5VXA9e3RoaXMucHJvcHMub25LZXlVcH1cbiAgICAgICAgb25Gb2N1cz17dGhpcy5fb25Gb2N1c31cbiAgICAgICAgbGlnaHQ9e3RoaXMucHJvcHMubGlnaHR9XG4gICAgICA+XG4gICAgICAgIHt0aGlzLl9yZW5kZXJIaWRkZW5JbnB1dCgpfVxuICAgICAgICB7dGhpcy5wcm9wcy5zZWFyY2hhYmxlID8gKFxuICAgICAgICAgIDxJbnB1dEJveD5cbiAgICAgICAgICAgIDxUeXBlYWhlYWRJbnB1dFxuICAgICAgICAgICAgICByZWY9e3RoaXMuZW50cnl9XG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e3RoaXMucHJvcHMuZGlzYWJsZWR9XG4gICAgICAgICAgICAgIHsuLi50aGlzLnByb3BzLmlucHV0UHJvcHN9XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0aGlzLnByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2lucHV0Q2xhc3NMaXN0fVxuICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5lbnRyeVZhbHVlfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5fb25DaGFuZ2V9XG4gICAgICAgICAgICAgIG9uQmx1cj17dGhpcy5fb25CbHVyfVxuICAgICAgICAgICAgICBsaWdodD17dGhpcy5wcm9wcy5saWdodH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8SW5wdXRJY29uPlxuICAgICAgICAgICAgICA8dGhpcy5wcm9wcy5pbnB1dEljb24gaGVpZ2h0PVwiMThweFwiIC8+XG4gICAgICAgICAgICA8L0lucHV0SWNvbj5cbiAgICAgICAgICA8L0lucHV0Qm94PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAge3RoaXMuX3JlbmRlckluY3JlbWVudGFsU2VhcmNoUmVzdWx0cygpfVxuICAgICAgPC9UeXBlYWhlYWRXcmFwcGVyPlxuICAgICk7XG4gIH1cbn1cblxucG9seWZpbGwoVHlwZWFoZWFkKTtcblxuZXhwb3J0IGRlZmF1bHQgVHlwZWFoZWFkO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsc0JBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLFdBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFLLGlCQUFBLEdBQUFGLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTSxPQUFBLEdBQUFOLE9BQUE7QUFFQSxJQUFBTyxTQUFBLEdBQUFKLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBUSxhQUFBLEdBQUFULHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxNQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxVQUFBLEdBQUFWLE9BQUE7QUFBOEMsSUFBQVcsZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQWI5QztBQUNBO0FB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
|
|
438
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RMaWZlY3ljbGVzQ29tcGF0IiwiX2Z1enp5IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jbGFzc25hbWVzIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfd2luZG93IiwiX2FjY2Vzc29yIiwiX2Ryb3Bkb3duTGlzdCIsIl9pY29ucyIsIl9jb25zdGFudHMiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl90ZW1wbGF0ZU9iamVjdDQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfY2FsbFN1cGVyIiwibyIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiYXBwbHkiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsIkRFRkFVTFRfQ0xBU1MiLCJUeXBlYWhlYWRXcmFwcGVyIiwic3R5bGVkIiwiZGl2Iiwid2l0aENvbmZpZyIsInNob3VsZEZvcndhcmRQcm9wIiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsImxpZ2h0IiwidGhlbWUiLCJkcm9wZG93bkxpc3RCZ2RMVCIsImRyb3Bkb3duTGlzdEJnZCIsImRyb3Bkb3duTGlzdFNoYWRvdyIsIklucHV0Qm94IiwiYXR0cnMiLCJjbGFzc05hbWUiLCJUeXBlYWhlYWRJbnB1dCIsImlucHV0IiwiaW5wdXRMVCIsInNlY29uZGFyeUlucHV0Iiwic2VsZWN0QmFja2dyb3VuZExUIiwic2Vjb25kYXJ5SW5wdXRCZ2QiLCJJbnB1dEljb24iLCJpbnB1dFBsYWNlaG9sZGVyQ29sb3IiLCJnZW5lcmF0ZVNlYXJjaEZ1bmN0aW9uIiwic2VhcmNoT3B0aW9ucyIsImZpbHRlck9wdGlvbiIsIkNvbnNvbGUiLCJ3YXJuIiwidmFsdWUiLCJvcHRpb25zIiwiZmlsdGVyIiwibWFwcGVyIiwiQWNjZXNzb3IiLCJnZW5lcmF0ZUFjY2Vzc29yIiwiSURFTlRJVFlfRk4iLCJmdXp6eSIsImV4dHJhY3QiLCJtYXAiLCJyZXMiLCJpbmRleCIsInNlYXJjaE9wdGlvbnNPbklucHV0IiwiaW5wdXRWYWx1ZSIsImdldE9wdGlvbnNGb3JWYWx1ZSIsInN0YXRlIiwic2hvd09wdGlvbnNXaGVuRW1wdHkiLCJzZWFyY2hhYmxlIiwic2hvdWxkU2tpcFNlYXJjaCIsImVtcHR5VmFsdWUiLCJ0cmltIiwibGVuZ3RoIiwiaXNGb2N1c2VkIiwibm9vcCIsIlR5cGVhaGVhZCIsIl9Db21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfZGVmaW5lUHJvcGVydHkyIiwiY3JlYXRlUmVmIiwiZW50cnkiLCJjdXJyZW50IiwiZm9jdXMiLCJfdGhpcyRzdGF0ZSRlbnRyeVZhbHUiLCJOdW1iZXIiLCJhbGxvd0N1c3RvbVZhbHVlcyIsImVudHJ5VmFsdWUiLCJzZWFyY2hSZXN1bHRzIiwiaW5kZXhPZiIsIl9oYXNDdXN0b21WYWx1ZSIsIm9wdGlvbiIsImV2ZW50IiwiX3RoaXMkcHJvcHMkb25PcHRpb25TIiwiX3RoaXMkcHJvcHMiLCJzZXRTdGF0ZSIsInNlbGVjdGlvbiIsIm9uT3B0aW9uU2VsZWN0ZWQiLCJfdGhpcyRlbnRyeSRjdXJyZW50IiwiZ2V0U2VsZWN0aW9uIiwiX3RoaXMkcHJvcHMkb25LZXlEb3duIiwiX3RoaXMkcHJvcHMyIiwib25LZXlEb3duIiwiX29uT3B0aW9uU2VsZWN0ZWQiLCJzZWxlY3Rpb25JbmRleCIsIl9nZXRDdXN0b21WYWx1ZSIsImV2ZW50cyIsIktleUV2ZW50IiwiRE9NX1ZLX1VQIiwibmF2VXAiLCJET01fVktfRE9XTiIsIm5hdkRvd24iLCJET01fVktfUkVUVVJOIiwiRE9NX1ZLX0VOVEVSIiwiX29uRW50ZXIiLCJET01fVktfRVNDQVBFIiwiX29uRXNjYXBlIiwiRE9NX1ZLX1RBQiIsIl9vblRhYiIsImRlbHRhIiwiX2hhc0hpbnQiLCJuZXdJbmRleCIsIm1heFZpc2libGUiLCJzbGljZSIsIl9uYXYiLCJvbkNoYW5nZSIsIl9vblRleHRFbnRyeVVwZGF0ZWQiLCJzaGlmdEtleSIsIl90aGlzJHByb3BzJG9uS2V5RG93bjIiLCJfdGhpcyRwcm9wczMiLCJoYW5kbGVyIiwiZXZlbnRNYXAiLCJrZXlDb2RlIiwiX3RoaXMkcHJvcHMkb25LZXlEb3duMyIsIl90aGlzJHByb3BzNCIsInByZXZlbnREZWZhdWx0Iiwib25Gb2N1cyIsIm9uQmx1ciIsImluaXRpYWxWYWx1ZSIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwiY29tcG9uZW50RGlkTW91bnQiLCJhdXRvRm9jdXMiLCJfdGhpcyRyb290JGN1cnJlbnQiLCJyb290IiwiX3JlbmRlckluY3JlbWVudGFsU2VhcmNoUmVzdWx0cyIsIl90aGlzJHByb3BzJGN1c3RvbUxpcyIsImN1c3RvbUxpc3RDb21wb25lbnQiLCJDdXN0b21MaXN0Q29tcG9uZW50IiwiRHJvcGRvd25MaXN0IiwiY3JlYXRlRWxlbWVudCIsImZpeGVkT3B0aW9ucyIsImFyZVJlc3VsdHNUcnVuY2F0ZWQiLCJyZXN1bHRzVHJ1bmNhdGVkTWVzc2FnZSIsImN1c3RvbVZhbHVlIiwiY3VzdG9tQ2xhc3NlcyIsImN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IiwiY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudCIsImRlZmF1bHRDbGFzc05hbWVzIiwiZGlzcGxheU9wdGlvbiIsInNlbGVjdGVkSXRlbXMiLCJfaGFzRml4ZWRPcHRpb25zIiwiX3RoaXMkcHJvcHMkZml4ZWRPcHRpIiwiX3RoaXMkcHJvcHMkZml4ZWRPcHRpMiIsIl90aGlzJHByb3BzJGZpeGVkT3B0aTMiLCJfcmVuZGVySGlkZGVuSW5wdXQiLCJuYW1lIiwidHlwZSIsIkFycmF5IiwiaXNBcnJheSIsInJlbmRlciIsIl90aGlzJHByb3BzJGN1c3RvbUNsYSIsIl90aGlzJHByb3BzJGN1c3RvbUNsYTIiLCJpbnB1dENsYXNzZXMiLCJpbnB1dENsYXNzTGlzdCIsImNsYXNzTmFtZXMiLCJjbGFzc2VzIiwiY2xhc3NMaXN0IiwicmVmIiwidGFiSW5kZXgiLCJfb25LZXlEb3duIiwib25LZXlQcmVzcyIsIm9uS2V5VXAiLCJfb25Gb2N1cyIsIl9leHRlbmRzMiIsImRpc2FibGVkIiwiaW5wdXRQcm9wcyIsInBsYWNlaG9sZGVyIiwiX29uQ2hhbmdlIiwiX29uQmx1ciIsImlucHV0SWNvbiIsImhlaWdodCIsImdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyIsInByZXZPcHRpb25zIiwiQ29tcG9uZW50IiwicmVzdWx0cyIsImxpc3RJdGVtIiwibGlzdEFuY2hvciIsInRleHRhcmVhIiwiaW5wdXREaXNwbGF5T3B0aW9uIiwiTGlzdEl0ZW0iLCJTZWFyY2giLCJwb2x5ZmlsbCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vaXRlbS1zZWxlY3Rvci90eXBlYWhlYWQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgY3JlYXRlUmVmLCBFbGVtZW50VHlwZSwgS2V5Ym9hcmRFdmVudEhhbmRsZXJ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7cG9seWZpbGx9IGZyb20gJ3JlYWN0LWxpZmVjeWNsZXMtY29tcGF0JztcbmltcG9ydCBmdXp6eSBmcm9tICdmdXp6eSc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBzdHlsZWQsIHtJU3R5bGVkQ29tcG9uZW50fSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge2NvbnNvbGUgYXMgQ29uc29sZX0gZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5cbmltcG9ydCBBY2Nlc3NvciBmcm9tICcuL2FjY2Vzc29yJztcbmltcG9ydCBEcm9wZG93bkxpc3QsIHtMaXN0SXRlbX0gZnJvbSAnLi9kcm9wZG93bi1saXN0JztcbmltcG9ydCB7U2VhcmNofSBmcm9tICcuLi9pY29ucyc7XG5pbXBvcnQge0tleUV2ZW50fSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0Jhc2VDb21wb25lbnRQcm9wc30gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHtzaG91bGRGb3J3YXJkUHJvcH0gZnJvbSAnLi4vc3R5bGVkLWNvbXBvbmVudHMnO1xuY29uc3QgREVGQVVMVF9DTEFTUyA9ICd0eXBlYWhlYWQnO1xuLyoqXG4gKiBDb3BpZWQgbW9zdGx5IGZyb20gJ3JlYWN0LXR5cGVhaGVhZCcsIGFuIGF1dG8tY29tcGxldGluZyB0ZXh0IGlucHV0XG4gKlxuICogUmVuZGVycyBhbiB0ZXh0IGlucHV0IHRoYXQgc2hvd3Mgb3B0aW9ucyBuZWFyYnkgdGhhdCB5b3UgY2FuIHVzZSB0aGVcbiAqIGtleWJvYXJkIG9yIG1vdXNlIHRvIHNlbGVjdC5cbiAqL1xuXG5leHBvcnQgdHlwZSBUeXBlYWhlYWRXcmFwcGVyUHJvcHMgPSBCYXNlQ29tcG9uZW50UHJvcHMgJiB7XG4gIGxpZ2h0PzogYm9vbGVhbjtcbiAgcmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xufTtcblxuY29uc3QgVHlwZWFoZWFkV3JhcHBlcjogSVN0eWxlZENvbXBvbmVudDwnd2ViJywgVHlwZWFoZWFkV3JhcHBlclByb3BzPiA9IHN0eWxlZC5kaXYud2l0aENvbmZpZyh7XG4gIHNob3VsZEZvcndhcmRQcm9wXG59KTxUeXBlYWhlYWRXcmFwcGVyUHJvcHM+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+XG4gICAgcHJvcHMubGlnaHQgPyBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCZ2RMVCA6IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJnZH07XG4gIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0U2hhZG93fTtcblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG5gO1xuXG5jb25zdCBJbnB1dEJveCA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICd0eXBlYWhlYWRfX2lucHV0X2JveCdcbn0pYFxuICBwYWRkaW5nOiA4cHg7XG5gO1xuXG5leHBvcnQgdHlwZSBUeXBlYWhlYWRJbnB1dFByb3BzID0gQmFzZUNvbXBvbmVudFByb3BzICYge1xuICBsaWdodD86IGJvb2xlYW47XG4gIHZhbHVlPzogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgcmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBwbGFjZWhvbGRlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn07XG5cbmNvbnN0IFR5cGVhaGVhZElucHV0OiBJU3R5bGVkQ29tcG9uZW50PCd3ZWInLCBUeXBlYWhlYWRJbnB1dFByb3BzPiA9IHN0eWxlZC5pbnB1dC53aXRoQ29uZmlnKHtcbiAgc2hvdWxkRm9yd2FyZFByb3Bcbn0pPFR5cGVhaGVhZElucHV0UHJvcHM+YFxuICAke3Byb3BzID0+IChwcm9wcy5saWdodCA/IHByb3BzLnRoZW1lLmlucHV0TFQgOiBwcm9wcy50aGVtZS5zZWNvbmRhcnlJbnB1dCl9XG4gICY6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+XG4gICAgICBwcm9wcy5saWdodCA/IHByb3BzLnRoZW1lLnNlbGVjdEJhY2tncm91bmRMVCA6IHByb3BzLnRoZW1lLnNlY29uZGFyeUlucHV0QmdkfTtcbiAgfVxuYDtcblxuY29uc3QgSW5wdXRJY29uID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ3R5cGVhaGVhZF9faW5wdXRfaWNvbidcbn0pYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxNXB4O1xuICB0b3A6IDE0cHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0UGxhY2Vob2xkZXJDb2xvcn07XG5gO1xuXG5mdW5jdGlvbiBnZW5lcmF0ZVNlYXJjaEZ1bmN0aW9uKHByb3BzOiBUeXBlYWhlYWRQcm9wcykge1xuICBjb25zdCB7c2VhcmNoT3B0aW9ucywgZmlsdGVyT3B0aW9ufSA9IHByb3BzO1xuICBpZiAodHlwZW9mIHNlYXJjaE9wdGlvbnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoZmlsdGVyT3B0aW9uICE9PSBudWxsKSB7XG4gICAgICBDb25zb2xlLndhcm4oJ3NlYXJjaE9wdGlvbnMgcHJvcCBpcyBiZWluZyB1c2VkLCBmaWx0ZXJPcHRpb24gcHJvcCB3aWxsIGJlIGlnbm9yZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHNlYXJjaE9wdGlvbnM7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGZpbHRlck9wdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIC8vIHVzZSBjdXN0b20gZmlsdGVyIG9wdGlvblxuICAgIHJldHVybiAodmFsdWUsIG9wdGlvbnMpID0+IG9wdGlvbnMuZmlsdGVyKG8gPT4gZmlsdGVyT3B0aW9uKHZhbHVlLCBvKSk7XG4gIH1cblxuICBjb25zdCBtYXBwZXIgPVxuICAgIHR5cGVvZiBmaWx0ZXJPcHRpb24gPT09ICdzdHJpbmcnXG4gICAgICA/IEFjY2Vzc29yLmdlbmVyYXRlQWNjZXNzb3IoZmlsdGVyT3B0aW9uKVxuICAgICAgOiBBY2Nlc3Nvci5JREVOVElUWV9GTjtcblxuICByZXR1cm4gKHZhbHVlLCBvcHRpb25zKSA9PiB7XG4gICAgcmV0dXJuIGZ1enp5LmZpbHRlcih2YWx1ZSwgb3B0aW9ucywge2V4dHJhY3Q6IG1hcHBlcn0pLm1hcChyZXMgPT4gb3B0aW9uc1tyZXMuaW5kZXhdKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gc2VhcmNoT3B0aW9uc09uSW5wdXQoaW5wdXRWYWx1ZSwgcHJvcHMpIHtcbiAgY29uc3Qgc2VhcmNoT3B0aW9ucyA9IGdlbmVyYXRlU2VhcmNoRnVuY3Rpb24ocHJvcHMpO1xuICByZXR1cm4gc2VhcmNoT3B0aW9ucyhpbnB1dFZhbHVlLCBwcm9wcy5vcHRpb25zKTtcbn1cblxuZnVuY3Rpb24gZ2V0T3B0aW9uc0ZvclZhbHVlKHZhbHVlLCBwcm9wcywgc3RhdGUpIHtcbiAgY29uc3Qge29wdGlvbnMsIHNob3dPcHRpb25zV2hlbkVtcHR5fSA9IHByb3BzO1xuXG4gIGlmICghcHJvcHMuc2VhcmNoYWJsZSkge1xuICAgIC8vIGRpcmVjdGx5IHBhc3MgdGhyb3VnaCBvcHRpb25zIGlmIGNhbiBub3QgYmUgc2VhcmNoZWRcbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuICBpZiAoc2hvdWxkU2tpcFNlYXJjaCh2YWx1ZSwgc3RhdGUsIHNob3dPcHRpb25zV2hlbkVtcHR5KSkge1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbiAgY29uc3Qgc2VhcmNoT3B0aW9ucyA9IGdlbmVyYXRlU2VhcmNoRnVuY3Rpb24ocHJvcHMpO1xuICByZXR1cm4gc2VhcmNoT3B0aW9ucyh2YWx1ZSwgb3B0aW9ucyk7XG59XG5cbmZ1bmN0aW9uIHNob3VsZFNraXBTZWFyY2goaW5wdXQsIHN0YXRlLCBzaG93T3B0aW9uc1doZW5FbXB0eSkge1xuICBjb25zdCBlbXB0eVZhbHVlID0gIWlucHV0IHx8IGlucHV0LnRyaW0oKS5sZW5ndGggPT09IDA7XG5cbiAgLy8gdGhpcy5zdGF0ZSBtdXN0IGJlIGNoZWNrZWQgYmVjYXVzZSBpdCBtYXkgbm90IGJlIGRlZmluZWQgeWV0IGlmIHRoaXMgZnVuY3Rpb25cbiAgLy8gaXMgY2FsbGVkIGZyb20gd2l0aGluIGdldEluaXRpYWxTdGF0ZVxuICBjb25zdCBpc0ZvY3VzZWQgPSBzdGF0ZSAmJiBzdGF0ZS5pc0ZvY3VzZWQ7XG4gIHJldHVybiAhKHNob3dPcHRpb25zV2hlbkVtcHR5ICYmIGlzRm9jdXNlZCkgJiYgZW1wdHlWYWx1ZTtcbn1cblxudHlwZSBPcHRpb24gPSBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgb2JqZWN0IHwgdW5kZWZpbmVkO1xuaW50ZXJmYWNlIFR5cGVhaGVhZFByb3BzIHtcbiAgbmFtZT86IHN0cmluZztcbiAgY3VzdG9tQ2xhc3Nlcz86IGFueTtcbiAgcmVzdWx0c1RydW5jYXRlZE1lc3NhZ2U/OiBzdHJpbmc7XG4gIG9wdGlvbnM/OiBSZWFkb25seUFycmF5PE9wdGlvbj47XG4gIGZpeGVkT3B0aW9ucz86IFJlYWRvbmx5QXJyYXk8T3B0aW9uPiB8IG51bGw7XG4gIGFsbG93Q3VzdG9tVmFsdWVzPzogbnVtYmVyO1xuICBpbml0aWFsVmFsdWU/OiBzdHJpbmc7XG4gIHZhbHVlPzogc3RyaW5nO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICB0ZXh0YXJlYT86IGJvb2xlYW47XG4gIGlucHV0UHJvcHM/OiBvYmplY3Q7XG4gIG9uT3B0aW9uU2VsZWN0ZWQ/OiAob3B0aW9uOiBhbnksIGV2ZW50OiBhbnkpID0+IGFueTtcbiAgb25DaGFuZ2U/OiAoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB2b2lkO1xuICBvbktleURvd24/OiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB2b2lkO1xuICBvbktleVByZXNzPzogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICBvbktleVVwPzogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICBvbkZvY3VzPzogKGV2ZW50OiBSZWFjdC5Gb2N1c0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4gdm9pZDtcbiAgb25CbHVyPzogKGV2ZW50OiBSZWFjdC5Gb2N1c0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB2b2lkO1xuICBmaWx0ZXJPcHRpb24/OiBzdHJpbmcgfCAoKG86IE9wdGlvbiwgczogc3RyaW5nKSA9PiBib29sZWFuKTtcbiAgc2VhcmNoT3B0aW9ucz86IChvOiBPcHRpb24sIHM6IHN0cmluZykgPT4gYm9vbGVhbjtcbiAgZGlzcGxheU9wdGlvbj86IHN0cmluZyB8ICgobzogT3B0aW9uKSA9PiBzdHJpbmcpO1xuICBpbnB1dERpc3BsYXlPcHRpb24/OiBzdHJpbmcgfCAoKG86IE9wdGlvbikgPT4gc3RyaW5nKTtcbiAgZm9ybUlucHV0T3B0aW9uPzogc3RyaW5nIHwgKChvOiBPcHRpb24pID0+IHN0cmluZyk7XG4gIGRlZmF1bHRDbGFzc05hbWVzPzogYm9vbGVhbjtcbiAgY3VzdG9tTGlzdENvbXBvbmVudD86IEVsZW1lbnRUeXBlO1xuICBjdXN0b21MaXN0SXRlbUNvbXBvbmVudD86IEVsZW1lbnRUeXBlO1xuICBjdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50PzogRWxlbWVudFR5cGUgfCBudWxsO1xuICBzaG93T3B0aW9uc1doZW5FbXB0eT86IGJvb2xlYW47XG4gIHNlYXJjaGFibGU/OiBib29sZWFuO1xuICBsaWdodD86IGJvb2xlYW47XG4gIGlucHV0SWNvbjogRWxlbWVudFR5cGU7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgc2VsZWN0ZWRJdGVtcz86IGFueVtdIHwgbnVsbDtcbiAgYXV0b0ZvY3VzOiBib29sZWFuO1xuICAvLyBkZXByZWNhdGVkXG4gIG1heFZpc2libGU/OiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBUeXBlYWhlYWRTdGF0ZSB7XG4gIHNlYXJjaFJlc3VsdHM6IFJlYWRvbmx5QXJyYXk8c3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG9iamVjdCB8IHVuZGVmaW5lZD47XG5cbiAgLy8gVGhpcyBzaG91bGQgYmUgY2FsbGVkIHNvbWV0aGluZyBlbHNlLCAnZW50cnlWYWx1ZSdcbiAgZW50cnlWYWx1ZT86IHN0cmluZztcblxuICAvLyBBIHZhbGlkIHR5cGVhaGVhZCB2YWx1ZVxuICBzZWxlY3Rpb24/OiBzdHJpbmc7XG5cbiAgLy8gSW5kZXggb2YgdGhlIHNlbGVjdGlvblxuICBzZWxlY3Rpb25JbmRleDogbnVsbDtcblxuICAvLyBLZWVwIHRyYWNrIG9mIHRoZSBmb2N1cyBzdGF0ZSBvZiB0aGUgaW5wdXQgZWxlbWVudCwgdG8gZGV0ZXJtaW5lXG4gIC8vIHdoZXRoZXIgdG8gc2hvdyBvcHRpb25zIHdoZW4gZW1wdHkgKGlmIHNob3dPcHRpb25zV2hlbkVtcHR5IGlzIHRydWUpXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbn1cblxuZnVuY3Rpb24gbm9vcCgpIHtcbiAgcmV0dXJuO1xufVxuY2xhc3MgVHlwZWFoZWFkIGV4dGVuZHMgQ29tcG9uZW50PFR5cGVhaGVhZFByb3BzLCBUeXBlYWhlYWRTdGF0ZT4ge1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIG9wdGlvbnM6IFtdLFxuICAgIGN1c3RvbUNsYXNzZXM6IHtcbiAgICAgIHJlc3VsdHM6ICdsaXN0LXNlbGVjdG9yJyxcbiAgICAgIGlucHV0OiAndHlwZWFoZWFkX19pbnB1dCcsXG4gICAgICBsaXN0SXRlbTogJ2xpc3RfX2l0ZW0nLFxuICAgICAgbGlzdEFuY2hvcjogJ2xpc3RfX2l0ZW1fX2FuY2hvcidcbiAgICB9LFxuICAgIGFsbG93Q3VzdG9tVmFsdWVzOiAwLFxuICAgIGluaXRpYWxWYWx1ZTogJycsXG4gICAgdmFsdWU6ICcnLFxuICAgIHBsYWNlaG9sZGVyOiAnJyxcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgdGV4dGFyZWE6IGZhbHNlLFxuICAgIGlucHV0UHJvcHM6IHt9LFxuICAgIG9uT3B0aW9uU2VsZWN0ZWQ6IG5vb3AsXG4gICAgb25DaGFuZ2U6IG5vb3AsXG4gICAgb25LZXlEb3duOiBub29wLFxuICAgIG9uS2V5UHJlc3M6IG5vb3AsXG4gICAgb25LZXlVcDogbm9vcCxcbiAgICBvbkZvY3VzOiBub29wLFxuICAgIG9uQmx1cjogbm9vcCxcbiAgICBmaWx0ZXJPcHRpb246IG51bGwsXG4gICAgc2VhcmNoT3B0aW9uczogbnVsbCxcbiAgICBpbnB1dERpc3BsYXlPcHRpb246IG51bGwsXG4gICAgZGVmYXVsdENsYXNzTmFtZXM6IHRydWUsXG4gICAgY3VzdG9tTGlzdENvbXBvbmVudDogRHJvcGRvd25MaXN0LFxuICAgIGN1c3RvbUxpc3RJdGVtQ29tcG9uZW50OiBMaXN0SXRlbSxcbiAgICBpbnB1dEljb246IFNlYXJjaCxcbiAgICBjdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50OiBudWxsLFxuICAgIHNob3dPcHRpb25zV2hlbkVtcHR5OiB0cnVlLFxuICAgIHNlYXJjaGFibGU6IHRydWUsXG4gICAgcmVzdWx0c1RydW5jYXRlZE1lc3NhZ2U6IG51bGwsXG4gICAgYXV0b0ZvY3VzOiB0cnVlXG4gIH07XG5cbiAgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhwcm9wcywgc3RhdGUpIHtcbiAgICBpZiAocHJvcHMub3B0aW9ucyA9PT0gc3RhdGUucHJldk9wdGlvbnMpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICAvLyAgaW52b2tlZCBhZnRlciBhIGNvbXBvbmVudCBpcyBpbnN0YW50aWF0ZWQgYXMgd2VsbCBhcyBiZWZvcmUgaXQgaXMgcmUtcmVuZGVyZWRcbiAgICBjb25zdCBzZWFyY2hSZXN1bHRzID0gZ2V0T3B0aW9uc0ZvclZhbHVlKHN0YXRlLmVudHJ5VmFsdWUsIHByb3BzLCBzdGF0ZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2VhcmNoUmVzdWx0cyxcbiAgICAgIHByZXZPcHRpb25zOiBwcm9wcy5vcHRpb25zXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIC8vIGluaXRpYXRlIHNlYXJjaFJlc3VsdHMgd2l0aCBvcHRpb25zXG4gICAgICBzZWFyY2hSZXN1bHRzOiB0aGlzLnByb3BzLm9wdGlvbnMgfHwgW10sXG5cbiAgICAgIC8vIFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBzb21ldGhpbmcgZWxzZSwgJ2VudHJ5VmFsdWUnXG4gICAgICBlbnRyeVZhbHVlOiB0aGlzLnByb3BzLnZhbHVlIHx8IHRoaXMucHJvcHMuaW5pdGlhbFZhbHVlLFxuXG4gICAgICAvLyBBIHZhbGlkIHR5cGVhaGVhZCB2YWx1ZVxuICAgICAgc2VsZWN0aW9uOiB0aGlzLnByb3BzLnZhbHVlLFxuXG4gICAgICAvLyBJbmRleCBvZiB0aGUgc2VsZWN0aW9uXG4gICAgICBzZWxlY3Rpb25JbmRleDogbnVsbCxcblxuICAgICAgLy8gS2VlcCB0cmFjayBvZiB0aGUgZm9jdXMgc3RhdGUgb2YgdGhlIGlucHV0IGVsZW1lbnQsIHRvIGRldGVybWluZVxuICAgICAgLy8gd2hldGhlciB0byBzaG93IG9wdGlvbnMgd2hlbiBlbXB0eSAoaWYgc2hvd09wdGlvbnNXaGVuRW1wdHkgaXMgdHJ1ZSlcbiAgICAgIGlzRm9jdXNlZDogZmFsc2VcbiAgICB9O1xuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgLy8gY2FsbCBmb2N1cyBvbiBlbnRyeSBvciBkaXYgdG8gdHJpZ2dlciBrZXkgZXZlbnRzIGxpc3RlbmVyXG4gICAgaWYgKHRoaXMucHJvcHMuYXV0b0ZvY3VzKSB7XG4gICAgICBpZiAodGhpcy5lbnRyeS5jdXJyZW50KSB7XG4gICAgICAgIHRoaXMuZW50cnkuY3VycmVudC5mb2N1cygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yb290LmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcm9vdCA9IGNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcbiAgZW50cnkgPSBjcmVhdGVSZWY8SFRNTElucHV0RWxlbWVudD4oKTtcblxuICBmb2N1cyA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5lbnRyeS5jdXJyZW50KSB7XG4gICAgICB0aGlzLmVudHJ5LmN1cnJlbnQuZm9jdXMoKTtcbiAgICB9XG4gIH07XG5cbiAgX2hhc0N1c3RvbVZhbHVlID0gKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBOdW1iZXIodGhpcy5wcm9wcy5hbGxvd0N1c3RvbVZhbHVlcykgPiAwICYmXG4gICAgICBOdW1iZXIodGhpcy5zdGF0ZS5lbnRyeVZhbHVlPy5sZW5ndGgpID49IE51bWJlcih0aGlzLnByb3BzLmFsbG93Q3VzdG9tVmFsdWVzKSAmJlxuICAgICAgdGhpcy5zdGF0ZS5zZWFyY2hSZXN1bHRzLmluZGV4T2YodGhpcy5zdGF0ZS5lbnRyeVZhbHVlKSA8IDBcbiAgICApO1xuICB9O1xuXG4gIF9nZXRDdXN0b21WYWx1ZSA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5faGFzQ3VzdG9tVmFsdWUoKSA/IHRoaXMuc3RhdGUuZW50cnlWYWx1ZSA6IG51bGw7XG4gIH07XG5cbiAgX3JlbmRlckluY3JlbWVudGFsU2VhcmNoUmVzdWx0cygpIHtcbiAgICBjb25zdCB7Y3VzdG9tTGlzdENvbXBvbmVudDogQ3VzdG9tTGlzdENvbXBvbmVudCA9IERyb3Bkb3duTGlzdH0gPSB0aGlzLnByb3BzO1xuICAgIHJldHVybiAoXG4gICAgICA8Q3VzdG9tTGlzdENvbXBvbmVudFxuICAgICAgICBmaXhlZE9wdGlvbnM9e3RoaXMucHJvcHMuZml4ZWRPcHRpb25zfVxuICAgICAgICBvcHRpb25zPXt0aGlzLnN0YXRlLnNlYXJjaFJlc3VsdHN9XG4gICAgICAgIGFyZVJlc3VsdHNUcnVuY2F0ZWQ9e2ZhbHNlfVxuICAgICAgICByZXN1bHRzVHJ1bmNhdGVkTWVzc2FnZT17dGhpcy5wcm9wcy5yZXN1bHRzVHJ1bmNhdGVkTWVzc2FnZX1cbiAgICAgICAgb25PcHRpb25TZWxlY3RlZD17dGhpcy5fb25PcHRpb25TZWxlY3RlZH1cbiAgICAgICAgYWxsb3dDdXN0b21WYWx1ZXM9e3RoaXMucHJvcHMuYWxsb3dDdXN0b21WYWx1ZXN9XG4gICAgICAgIGN1c3RvbVZhbHVlPXt0aGlzLl9nZXRDdXN0b21WYWx1ZSgpfVxuICAgICAgICBjdXN0b21DbGFzc2VzPXt0aGlzLnByb3BzLmN1c3RvbUNsYXNzZXN9XG4gICAgICAgIGN1c3RvbUxpc3RJdGVtQ29tcG9uZW50PXt0aGlzLnByb3BzLmN1c3RvbUxpc3RJdGVtQ29tcG9uZW50fVxuICAgICAgICBjdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50PXt0aGlzLnByb3BzLmN1c3RvbUxpc3RIZWFkZXJDb21wb25lbnR9XG4gICAgICAgIHNlbGVjdGlvbkluZGV4PXt0aGlzLnN0YXRlLnNlbGVjdGlvbkluZGV4fVxuICAgICAgICBkZWZhdWx0Q2xhc3NOYW1lcz17dGhpcy5wcm9wcy5kZWZhdWx0Q2xhc3NOYW1lc31cbiAgICAgICAgZGlzcGxheU9wdGlvbj17dGhpcy5wcm9wcy5kaXNwbGF5T3B0aW9ufVxuICAgICAgICBzZWxlY3RlZEl0ZW1zPXt0aGlzLnByb3BzLnNlbGVjdGVkSXRlbXN9XG4gICAgICAgIGxpZ2h0PXt0aGlzLnByb3BzLmxpZ2h0fVxuICAgICAgLz5cbiAgICApO1xuICB9XG5cbiAgZ2V0U2VsZWN0aW9uKCkge1xuICAgIGxldCBpbmRleDogbnVtYmVyIHwgbnVsbCA9IHRoaXMuc3RhdGUuc2VsZWN0aW9uSW5kZXg7XG4gICAgaWYgKGluZGV4ID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaW5kZXggPSBOdW1iZXIoaW5kZXgpO1xuXG4gICAgaWYgKHRoaXMuX2hhc0N1c3RvbVZhbHVlKCkpIHtcbiAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZS5lbnRyeVZhbHVlO1xuICAgICAgfVxuICAgICAgaW5kZXgtLTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2hhc0ZpeGVkT3B0aW9ucygpKSB7XG4gICAgICByZXR1cm4gaW5kZXggPCBOdW1iZXIodGhpcy5wcm9wcy5maXhlZE9wdGlvbnM/Lmxlbmd0aClcbiAgICAgICAgPyB0aGlzLnByb3BzLmZpeGVkT3B0aW9ucz8uW2luZGV4XVxuICAgICAgICA6IHRoaXMuc3RhdGUuc2VhcmNoUmVzdWx0c1tpbmRleCAtIE51bWJlcih0aGlzLnByb3BzLmZpeGVkT3B0aW9ucz8ubGVuZ3RoKV07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnN0YXRlLnNlYXJjaFJlc3VsdHNbaW5kZXhdO1xuICB9XG5cbiAgX29uT3B0aW9uU2VsZWN0ZWQgPSAob3B0aW9uLCBldmVudCkgPT4ge1xuICAgIGlmICh0aGlzLnByb3BzLnNlYXJjaGFibGUpIHtcbiAgICAgIC8vIHJlc2V0IGVudHJ5IGlucHV0XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgLy8gcmVzZXQgc2VhcmNoIG9wdGlvbnMgd2hlbiBzZWxlY3Rpb24gaGFzIGJlZW4gbWFkZVxuICAgICAgICBzZWFyY2hSZXN1bHRzOiB0aGlzLnByb3BzLm9wdGlvbnMgfHwgW10sXG4gICAgICAgIHNlbGVjdGlvbjogJycsXG4gICAgICAgIGVudHJ5VmFsdWU6ICcnXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnByb3BzLm9uT3B0aW9uU2VsZWN0ZWQ/LihvcHRpb24sIGV2ZW50KTtcbiAgfTtcblxuICAvLyB1c2UgKCkgPT4ge30gdG8gYXZvaWQgYmluZGluZyAndGhpcydcbiAgX29uVGV4dEVudHJ5VXBkYXRlZCA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5wcm9wcy5zZWFyY2hhYmxlKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZW50cnkuY3VycmVudD8udmFsdWU7XG5cbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBzZWFyY2hSZXN1bHRzOiBzZWFyY2hPcHRpb25zT25JbnB1dCh2YWx1ZSwgdGhpcy5wcm9wcyksXG4gICAgICAgIHNlbGVjdGlvbjogJycsXG4gICAgICAgIGVudHJ5VmFsdWU6IHZhbHVlXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgX29uRW50ZXIgPSBldmVudCA9PiB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKTtcbiAgICBpZiAoIXNlbGVjdGlvbikge1xuICAgICAgdGhpcy5wcm9wcy5vbktleURvd24/LihldmVudCk7XG4gICAgfVxuICAgIHRoaXMuX29uT3B0aW9uU2VsZWN0ZWQoc2VsZWN0aW9uLCBldmVudCk7XG4gIH07XG5cbiAgX29uRXNjYXBlID0gKCkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgc2VsZWN0aW9uSW5kZXg6IG51bGxcbiAgICB9KTtcbiAgfTtcblxuICBfb25UYWIgPSBldmVudCA9PiB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKTtcbiAgICBsZXQgb3B0aW9uID0gc2VsZWN0aW9uXG4gICAgICA/IHNlbGVjdGlvblxuICAgICAgOiB0aGlzLnN0YXRlLnNlYXJjaFJlc3VsdHMubGVuZ3RoID4gMFxuICAgICAgPyB0aGlzLnN0YXRlLnNlYXJjaFJlc3VsdHNbMF1cbiAgICAgIDogbnVsbDtcblxuICAgIGlmIChvcHRpb24gPT09IG51bGwgJiYgdGhpcy5faGFzQ3VzdG9tVmFsdWUoKSkge1xuICAgICAgb3B0aW9uID0gdGhpcy5fZ2V0Q3VzdG9tVmFsdWUoKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9uICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5fb25PcHRpb25TZWxlY3RlZChvcHRpb24sIGV2ZW50KTtcbiAgICB9XG4gIH07XG5cbiAgZXZlbnRNYXAgPSAoKSA9PiB7XG4gICAgY29uc3QgZXZlbnRzID0ge307XG5cbiAgICBldmVudHNbS2V5RXZlbnQuRE9NX1ZLX1VQXSA9IHRoaXMubmF2VXA7XG4gICAgZXZlbnRzW0tleUV2ZW50LkRPTV9WS19ET1dOXSA9IHRoaXMubmF2RG93bjtcbiAgICBldmVudHNbS2V5RXZlbnQuRE9NX1ZLX1JFVFVSTl0gPSBldmVudHNbS2V5RXZlbnQuRE9NX1ZLX0VOVEVSXSA9IHRoaXMuX29uRW50ZXI7XG4gICAgZXZlbnRzW0tleUV2ZW50LkRPTV9WS19FU0NBUEVdID0gdGhpcy5fb25Fc2NhcGU7XG4gICAgZXZlbnRzW0tleUV2ZW50LkRPTV9WS19UQUJdID0gdGhpcy5fb25UYWI7XG5cbiAgICByZXR1cm4gZXZlbnRzO1xuICB9O1xuXG4gIF9uYXYgPSBkZWx0YSA9PiB7XG4gICAgaWYgKCF0aGlzLl9oYXNIaW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IG5ld0luZGV4ID1cbiAgICAgIHRoaXMuc3RhdGUuc2VsZWN0aW9uSW5kZXggPT09IG51bGxcbiAgICAgICAgPyBkZWx0YSA9PT0gMVxuICAgICAgICAgID8gMFxuICAgICAgICAgIDogZGVsdGFcbiAgICAgICAgOiB0aGlzLnN0YXRlLnNlbGVjdGlvbkluZGV4ICsgZGVsdGE7XG4gICAgbGV0IGxlbmd0aCA9IHRoaXMucHJvcHMubWF4VmlzaWJsZVxuICAgICAgPyB0aGlzLnN0YXRlLnNlYXJjaFJlc3VsdHMuc2xpY2UoMCwgdGhpcy5wcm9wcy5tYXhWaXNpYmxlKS5sZW5ndGhcbiAgICAgIDogdGhpcy5zdGF0ZS5zZWFyY2hSZXN1bHRzLmxlbmd0aDtcbiAgICBpZiAodGhpcy5faGFzQ3VzdG9tVmFsdWUoKSkge1xuICAgICAgbGVuZ3RoICs9IDE7XG4gICAgfVxuXG4gICAgaWYgKG5ld0luZGV4IDwgMCkge1xuICAgICAgbmV3SW5kZXggKz0gbGVuZ3RoO1xuICAgIH0gZWxzZSBpZiAobmV3SW5kZXggPj0gbGVuZ3RoKSB7XG4gICAgICBuZXdJbmRleCAtPSBsZW5ndGg7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7c2VsZWN0aW9uSW5kZXg6IG5ld0luZGV4fSk7XG4gIH07XG5cbiAgbmF2RG93biA9ICgpID0+IHtcbiAgICB0aGlzLl9uYXYoMSk7XG4gIH07XG5cbiAgbmF2VXAgPSAoKSA9PiB7XG4gICAgdGhpcy5fbmF2KC0xKTtcbiAgfTtcblxuICBfb25DaGFuZ2U6IFJlYWN0LkNoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IGV2ZW50ID0+IHtcbiAgICBpZiAodGhpcy5wcm9wcy5vbkNoYW5nZSkge1xuICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZShldmVudCk7XG4gICAgfVxuXG4gICAgdGhpcy5fb25UZXh0RW50cnlVcGRhdGVkKCk7XG4gIH07XG5cbiAgX29uS2V5RG93bjogUmVhY3QuS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+ID0gZXZlbnQgPT4ge1xuICAgIC8vIElmIHRoZXJlIGFyZSBubyB2aXNpYmxlIGVsZW1lbnRzLCBkb24ndCBwZXJmb3JtIHNlbGVjdG9yIG5hdmlnYXRpb24uXG4gICAgLy8gSnVzdCBwYXNzIHRoaXMgdXAgdG8gdGhlIHVwc3RyZWFtIG9uS2V5ZG93biBoYW5kbGVyLlxuICAgIC8vIEFsc28gc2tpcCBpZiB0aGUgdXNlciBpcyBwcmVzc2luZyB0aGUgc2hpZnQga2V5LCBzaW5jZSBub25lIG9mIG91ciBoYW5kbGVycyBhcmUgbG9va2luZyBmb3Igc2hpZnRcbiAgICBpZiAoIXRoaXMuX2hhc0hpbnQoKSB8fCBldmVudC5zaGlmdEtleSkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25LZXlEb3duPy4oZXZlbnQpO1xuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmV2ZW50TWFwKClbZXZlbnQua2V5Q29kZV07XG5cbiAgICBpZiAoaGFuZGxlcikge1xuICAgICAgaGFuZGxlcihldmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uS2V5RG93bj8uKGV2ZW50KTtcbiAgICB9XG4gICAgLy8gRG9uJ3QgcHJvcGFnYXRlIHRoZSBrZXlzdHJva2UgYmFjayB0byB0aGUgRE9NL2Jyb3dzZXJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9O1xuXG4gIF9vbkZvY3VzOiBSZWFjdC5Gb2N1c0V2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD4gPSBldmVudCA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7aXNGb2N1c2VkOiB0cnVlfSk7XG4gICAgaWYgKHRoaXMucHJvcHMub25Gb2N1cykge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25Gb2N1cyhldmVudCk7XG4gICAgfVxuICB9O1xuXG4gIF9vbkJsdXI6IFJlYWN0LkZvY3VzRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gZXZlbnQgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoe2lzRm9jdXNlZDogZmFsc2V9KTtcbiAgICBpZiAodGhpcy5wcm9wcy5vbkJsdXIpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQmx1cihldmVudCk7XG4gICAgfVxuICB9O1xuXG4gIF9yZW5kZXJIaWRkZW5JbnB1dCgpIHtcbiAgICBpZiAoIXRoaXMucHJvcHMubmFtZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT17dGhpcy5wcm9wcy5uYW1lfSB2YWx1ZT17dGhpcy5zdGF0ZS5zZWxlY3Rpb259IC8+O1xuICB9XG5cbiAgX2hhc0hpbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc2VhcmNoUmVzdWx0cy5sZW5ndGggPiAwIHx8IHRoaXMuX2hhc0N1c3RvbVZhbHVlKCk7XG4gIH1cblxuICBfaGFzRml4ZWRPcHRpb25zKCkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMucHJvcHMuZml4ZWRPcHRpb25zKSAmJiB0aGlzLnByb3BzLmZpeGVkT3B0aW9ucy5sZW5ndGg7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgaW5wdXRDbGFzc2VzID0ge307XG4gICAgaW5wdXRDbGFzc2VzW3RoaXMucHJvcHMuY3VzdG9tQ2xhc3Nlcz8uaW5wdXRdID0gQm9vbGVhbih0aGlzLnByb3BzLmN1c3RvbUNsYXNzZXM/LmlucHV0KTtcbiAgICBjb25zdCBpbnB1dENsYXNzTGlzdCA9IGNsYXNzTmFtZXMoaW5wdXRDbGFzc2VzKTtcblxuICAgIGNvbnN0IGNsYXNzZXMgPSB7XG4gICAgICBbREVGQVVMVF9DTEFTU106IHRoaXMucHJvcHMuZGVmYXVsdENsYXNzTmFtZXNcbiAgICB9O1xuICAgIGNsYXNzZXNbdGhpcy5wcm9wcy5jbGFzc05hbWUgPyB0aGlzLnByb3BzLmNsYXNzTmFtZSA6ICcnXSA9IEJvb2xlYW4odGhpcy5wcm9wcy5jbGFzc05hbWUpO1xuICAgIGNvbnN0IGNsYXNzTGlzdCA9IGNsYXNzTmFtZXMoY2xhc3Nlcyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFR5cGVhaGVhZFdyYXBwZXJcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc0xpc3R9XG4gICAgICAgIHJlZj17dGhpcy5yb290fVxuICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgb25LZXlEb3duPXt0aGlzLl9vbktleURvd259XG4gICAgICAgIG9uS2V5UHJlc3M9e3RoaXMucHJvcHMub25LZXlQcmVzc31cbiAgICAgICAgb25LZXlVcD17dGhpcy5wcm9wcy5vbktleVVwfVxuICAgICAgICBvbkZvY3VzPXt0aGlzLl9vbkZvY3VzfVxuICAgICAgICBsaWdodD17dGhpcy5wcm9wcy5saWdodH1cbiAgICAgID5cbiAgICAgICAge3RoaXMuX3JlbmRlckhpZGRlbklucHV0KCl9XG4gICAgICAgIHt0aGlzLnByb3BzLnNlYXJjaGFibGUgPyAoXG4gICAgICAgICAgPElucHV0Qm94PlxuICAgICAgICAgICAgPFR5cGVhaGVhZElucHV0XG4gICAgICAgICAgICAgIHJlZj17dGhpcy5lbnRyeX1cbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICBkaXNhYmxlZD17dGhpcy5wcm9wcy5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgey4uLnRoaXMucHJvcHMuaW5wdXRQcm9wc31cbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3RoaXMucHJvcHMucGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17aW5wdXRDbGFzc0xpc3R9XG4gICAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLmVudHJ5VmFsdWV9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLl9vbkNoYW5nZX1cbiAgICAgICAgICAgICAgb25CbHVyPXt0aGlzLl9vbkJsdXJ9XG4gICAgICAgICAgICAgIGxpZ2h0PXt0aGlzLnByb3BzLmxpZ2h0fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxJbnB1dEljb24+XG4gICAgICAgICAgICAgIDx0aGlzLnByb3BzLmlucHV0SWNvbiBoZWlnaHQ9XCIxOHB4XCIgLz5cbiAgICAgICAgICAgIDwvSW5wdXRJY29uPlxuICAgICAgICAgIDwvSW5wdXRCb3g+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICB7dGhpcy5fcmVuZGVySW5jcmVtZW50YWxTZWFyY2hSZXN1bHRzKCl9XG4gICAgICA8L1R5cGVhaGVhZFdyYXBwZXI+XG4gICAgKTtcbiAgfVxufVxuXG5wb2x5ZmlsbChUeXBlYWhlYWQpO1xuXG5leHBvcnQgZGVmYXVsdCBUeXBlYWhlYWQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxzQkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUssaUJBQUEsR0FBQUYsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFNLE9BQUEsR0FBQU4sT0FBQTtBQUVBLElBQUFPLFNBQUEsR0FBQUosc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFRLGFBQUEsR0FBQVQsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLE1BQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLFVBQUEsR0FBQVYsT0FBQTtBQUVBLElBQUFXLGtCQUFBLEdBQUFYLE9BQUE7QUFBdUQsSUFBQVksZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQWZ2RDtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFsQix3QkFBQWtCLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWQsQ0FBQSxvQkFBQWMsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsQ0FBQSxTQUFBRyxDQUFBLEdBQUFQLENBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFjLENBQUEsVUFBQUcsQ0FBQSxLQUFBQSxDQUFBLENBQUFWLEdBQUEsSUFBQVUsQ0FBQSxDQUFBQyxHQUFBLElBQUFQLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSixDQUFBLEVBQUFNLENBQUEsRUFBQUcsQ0FBQSxJQUFBVCxDQUFBLENBQUFNLENBQUEsSUFBQWQsQ0FBQSxDQUFBYyxDQUFBLFlBQUFOLENBQUEsY0FBQVIsQ0FBQSxFQUFBRyxDQUFBLElBQUFBLENBQUEsQ0FBQWUsR0FBQSxDQUFBbEIsQ0FBQSxFQUFBUSxDQUFBLEdBQUFBLENBQUE7QUFBQSxTQUFBVyxXQUFBaEIsQ0FBQSxFQUFBaUIsQ0FBQSxFQUFBcEIsQ0FBQSxXQUFBb0IsQ0FBQSxPQUFBQyxnQkFBQSxhQUFBRCxDQUFBLE9BQUFFLDJCQUFBLGFBQUFuQixDQUFBLEVBQUFvQix5QkFBQSxLQUFBQyxPQUFBLENBQUFDLFNBQUEsQ0FBQUwsQ0FBQSxFQUFBcEIsQ0FBQSxZQUFBcUIsZ0JBQUEsYUFBQWxCLENBQUEsRUFBQXVCLFdBQUEsSUFBQU4sQ0FBQSxDQUFBTyxLQUFBLENBQUF4QixDQUFBLEVBQUFILENBQUE7QUFBQSxTQUFBdUIsMEJBQUEsY0FBQXBCLENBQUEsSUFBQXlCLE9BQUEsQ0FBQUMsU0FBQSxDQUFBQyxPQUFBLENBQUFkLElBQUEsQ0FBQVEsT0FBQSxDQUFBQyxTQUFBLENBQUFHLE9BQUEsaUNBQUF6QixDQUFBLGFBQUFvQix5QkFBQSxZQUFBQSwwQkFBQSxhQUFBcEIsQ0FBQTtBQWVBLElBQU00QixhQUFhLEdBQUcsV0FBVztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBT0EsSUFBTUMsZ0JBQWdFLEdBQUdDLDRCQUFNLENBQUNDLEdBQUcsQ0FBQ0MsVUFBVSxDQUFDO0VBQzdGQyxpQkFBaUIsRUFBakJBO0FBQ0YsQ0FBQyxDQUFDLENBQUF6QyxlQUFBLEtBQUFBLGVBQUEsT0FBQTBDLHVCQUFBLHlKQUdvQixVQUFBQyxLQUFLO0VBQUEsT0FDdkJBLEtBQUssQ0FBQ0MsS0FBSyxHQUFHRCxLQUFLLENBQUNFLEtBQUssQ0FBQ0MsaUJBQWlCLEdBQUdILEtBQUssQ0FBQ0UsS0FBSyxDQUFDRSxlQUFlO0FBQUEsR0FDN0QsVUFBQUosS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0UsS0FBSyxDQUFDRyxrQkFBa0I7QUFBQSxFQUt0RDtBQUVELElBQU1DLFFBQVEsR0FBR1gsNEJBQU0sQ0FBQ0MsR0FBRyxDQUFDVyxLQUFLLENBQUM7RUFDaENDLFNBQVMsRUFBRTtBQUNiLENBQUMsQ0FBQyxDQUFBbEQsZ0JBQUEsS0FBQUEsZ0JBQUEsT0FBQXlDLHVCQUFBLHVDQUVEO0FBV0QsSUFBTVUsY0FBNEQsR0FBR2QsNEJBQU0sQ0FBQ2UsS0FBSyxDQUFDYixVQUFVLENBQUM7RUFDM0ZDLGlCQUFpQixFQUFqQkE7QUFDRixDQUFDLENBQUMsQ0FBQXZDLGdCQUFBLEtBQUFBLGdCQUFBLE9BQUF3Qyx1QkFBQSxvR0FDRSxVQUFBQyxLQUFLO0VBQUEsT0FBS0EsS0FBSyxDQUFDQyxLQUFLLEdBQUdELEtBQUssQ0FBQ0UsS0FBSyxDQUFDUyxPQUFPLEdBQUdYLEtBQUssQ0FBQ0UsS0FBSyxDQUFDVSxjQUFjO0FBQUEsQ0FBQyxFQUdyRCxVQUFBWixLQUFLO0VBQUEsT0FDdkJBLEtBQUssQ0FBQ0MsS0FBSyxHQUFHRCxLQUFLLENBQUNFLEtBQUssQ0FBQ1csa0JBQWtCLEdBQUdiLEtBQUssQ0FBQ0UsS0FBSyxDQUFDWSxpQkFBaUI7QUFBQSxFQUVqRjtBQUVELElBQU1DLFNBQVMsR0FBR3BCLDRCQUFNLENBQUNDLEdBQUcsQ0FBQ1csS0FBSyxDQUFDO0VBQ2pDQyxTQUFTLEVBQUU7QUFDYixDQUFDLENBQUMsQ0FBQWhELGdCQUFBLEtBQUFBLGdCQUFBLE9BQUF1Qyx1QkFBQSw0RkFJUyxVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDRSxLQUFLLENBQUNjLHFCQUFxQjtBQUFBLEVBQ3BEO0FBRUQsU0FBU0Msc0JBQXNCQSxDQUFDakIsS0FBcUIsRUFBRTtFQUNyRCxJQUFPa0IsYUFBYSxHQUFrQmxCLEtBQUssQ0FBcENrQixhQUFhO0lBQUVDLFlBQVksR0FBSW5CLEtBQUssQ0FBckJtQixZQUFZO0VBQ2xDLElBQUksT0FBT0QsYUFBYSxLQUFLLFVBQVUsRUFBRTtJQUN2QyxJQUFJQyxZQUFZLEtBQUssSUFBSSxFQUFFO01BQ3pCQyxlQUFPLENBQUNDLElBQUksQ0FBQyxxRUFBcUUsQ0FBQztJQUNyRjtJQUNBLE9BQU9ILGFBQWE7RUFDdEIsQ0FBQyxNQUFNLElBQUksT0FBT0MsWUFBWSxLQUFLLFVBQVUsRUFBRTtJQUM3QztJQUNBLE9BQU8sVUFBQ0csS0FBSyxFQUFFQyxPQUFPO01BQUEsT0FBS0EsT0FBTyxDQUFDQyxNQUFNLENBQUMsVUFBQTFDLENBQUM7UUFBQSxPQUFJcUMsWUFBWSxDQUFDRyxLQUFLLEVBQUV4QyxDQUFDLENBQUM7TUFBQSxFQUFDO0lBQUE7RUFDeEU7RUFFQSxJQUFNMkMsTUFBTSxHQUNWLE9BQU9OLFlBQVksS0FBSyxRQUFRLEdBQzVCTyxvQkFBUSxDQUFDQyxnQkFBZ0IsQ0FBQ1IsWUFBWSxDQUFDLEdBQ3ZDTyxvQkFBUSxDQUFDRSxXQUFXO0VBRTFCLE9BQU8sVUFBQ04sS0FBSyxFQUFFQyxPQUFPLEVBQUs7SUFDekIsT0FBT00saUJBQUssQ0FBQ0wsTUFBTSxDQUFDRixLQUFLLEVBQUVDLE9BQU8sRUFBRTtNQUFDTyxPQUFPLEVBQUVMO0lBQU0sQ0FBQyxDQUFDLENBQUNNLEdBQUcsQ0FBQyxVQUFBQyxHQUFHO01BQUEsT0FBSVQsT0FBTyxDQUFDUyxHQUFHLENBQUNDLEtBQUssQ0FBQztJQUFBLEVBQUM7RUFDdkYsQ0FBQztBQUNIO0FBRUEsU0FBU0Msb0JBQW9CQSxDQUFDQyxVQUFVLEVBQUVuQyxLQUFLLEVBQUU7RUFDL0MsSUFBTWtCLGFBQWEsR0FBR0Qsc0JBQXNCLENBQUNqQixLQUFLLENBQUM7RUFDbkQsT0FBT2tCLGFBQWEsQ0FBQ2lCLFVBQVUsRUFBRW5DLEtBQUssQ0FBQ3VCLE9BQU8sQ0FBQztBQUNqRDtBQUVBLFNBQVNhLGtCQUFrQkEsQ0FBQ2QsS0FBSyxFQUFFdEIsS0FBSyxFQUFFcUMsS0FBSyxFQUFFO0VBQy9DLElBQU9kLE9BQU8sR0FBMEJ2QixLQUFLLENBQXRDdUIsT0FBTztJQUFFZSxvQkFBb0IsR0FBSXRDLEtBQUssQ0FBN0JzQyxvQkFBb0I7RUFFcEMsSUFBSSxDQUFDdEMsS0FBSyxDQUFDdUMsVUFBVSxFQUFFO0lBQ3JCO0lBQ0EsT0FBT2hCLE9BQU87RUFDaEI7RUFDQSxJQUFJaUIsZ0JBQWdCLENBQUNsQixLQUFLLEVBQUVlLEtBQUssRUFBRUMsb0JBQW9CLENBQUMsRUFBRTtJQUN4RCxPQUFPZixPQUFPO0VBQ2hCO0VBRUEsSUFBTUwsYUFBYSxHQUFHRCxzQkFBc0IsQ0FBQ2pCLEtBQUssQ0FBQztFQUNuRCxPQUFPa0IsYUFBYSxDQUFDSSxLQUFLLEVBQUVDLE9BQU8sQ0FBQztBQUN0QztBQUVBLFNBQVNpQixnQkFBZ0JBLENBQUM5QixLQUFLLEVBQUUyQixLQUFLLEVBQUVDLG9CQUFvQixFQUFFO0VBQzVELElBQU1HLFVBQVUsR0FBRyxDQUFDL0IsS0FBSyxJQUFJQSxLQUFLLENBQUNnQyxJQUFJLENBQUMsQ0FBQyxDQUFDQyxNQUFNLEtBQUssQ0FBQzs7RUFFdEQ7RUFDQTtFQUNBLElBQU1DLFNBQVMsR0FBR1AsS0FBSyxJQUFJQSxLQUFLLENBQUNPLFNBQVM7RUFDMUMsT0FBTyxFQUFFTixvQkFBb0IsSUFBSU0sU0FBUyxDQUFDLElBQUlILFVBQVU7QUFDM0Q7QUE0REEsU0FBU0ksSUFBSUEsQ0FBQSxFQUFHO0VBQ2Q7QUFDRjtBQUFDLElBQ0tDLFNBQVMsMEJBQUFDLFVBQUE7RUFtRGIsU0FBQUQsVUFBWTlDLEtBQUssRUFBRTtJQUFBLElBQUFnRCxLQUFBO0lBQUEsSUFBQUMsZ0JBQUEsbUJBQUFILFNBQUE7SUFDakJFLEtBQUEsR0FBQW5FLFVBQUEsT0FBQWlFLFNBQUEsR0FBTTlDLEtBQUs7SUFBRSxJQUFBa0QsZ0JBQUEsYUFBQUYsS0FBQSx1QkFnQ1IsSUFBQUcsZ0JBQVMsRUFBaUIsQ0FBQztJQUFBLElBQUFELGdCQUFBLGFBQUFGLEtBQUEsd0JBQzFCLElBQUFHLGdCQUFTLEVBQW1CLENBQUM7SUFBQSxJQUFBRCxnQkFBQSxhQUFBRixLQUFBLFdBRTdCLFlBQU07TUFDWixJQUFJQSxLQUFBLENBQUtJLEtBQUssQ0FBQ0MsT0FBTyxFQUFFO1FBQ3RCTCxLQUFBLENBQUtJLEtBQUssQ0FBQ0MsT0FBTyxDQUFDQyxLQUFLLENBQUMsQ0FBQztNQUM1QjtJQUNGLENBQUM7SUFBQSxJQUFBSixnQkFBQSxhQUFBRixLQUFBLHFCQUVpQixZQUFNO01BQUEsSUFBQU8scUJBQUE7TUFDdEIsT0FDRUMsTUFBTSxDQUFDUixLQUFBLENBQUtoRCxLQUFLLENBQUN5RCxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFDeENELE1BQU0sRUFBQUQscUJBQUEsR0FBQ1AsS0FBQSxDQUFLWCxLQUFLLENBQUNxQixVQUFVLGNBQUFILHFCQUFBLHVCQUFyQkEscUJBQUEsQ0FBdUJaLE1BQU0sQ0FBQyxJQUFJYSxNQUFNLENBQUNSLEtBQUEsQ0FBS2hELEtBQUssQ0FBQ3lELGlCQUFpQixDQUFDLElBQzdFVCxLQUFBLENBQUtYLEtBQUssQ0FBQ3NCLGFBQWEsQ0FBQ0MsT0FBTyxDQUFDWixLQUFBLENBQUtYLEtBQUssQ0FBQ3FCLFVBQVUsQ0FBQyxHQUFHLENBQUM7SUFFL0QsQ0FBQztJQUFBLElBQUFSLGdCQUFBLGFBQUFGLEtBQUEscUJBRWlCLFlBQU07TUFDdEIsT0FBT0EsS0FBQSxDQUFLYSxlQUFlLENBQUMsQ0FBQyxHQUFHYixLQUFBLENBQUtYLEtBQUssQ0FBQ3FCLFVBQVUsR0FBRyxJQUFJO0lBQzlELENBQUM7SUFBQSxJQUFBUixnQkFBQSxhQUFBRixLQUFBLHVCQThDbUIsVUFBQ2MsTUFBTSxFQUFFQyxLQUFLLEVBQUs7TUFBQSxJQUFBQyxxQkFBQSxFQUFBQyxXQUFBO01BQ3JDLElBQUlqQixLQUFBLENBQUtoRCxLQUFLLENBQUN1QyxVQUFVLEVBQUU7UUFDekI7UUFDQVMsS0FBQSxDQUFLa0IsUUFBUSxDQUFDO1VBQ1o7VUFDQVAsYUFBYSxFQUFFWCxLQUFBLENBQUtoRCxLQUFLLENBQUN1QixPQUFPLElBQUksRUFBRTtVQUN2QzRDLFNBQVMsRUFBRSxFQUFFO1VBQ2JULFVBQVUsRUFBRTtRQUNkLENBQUMsQ0FBQztNQUNKO01BRUEsQ0FBQU0scUJBQUEsSUFBQUMsV0FBQSxHQUFBakIsS0FBQSxDQUFLaEQsS0FBSyxFQUFDb0UsZ0JBQWdCLGNBQUFKLHFCQUFBLGVBQTNCQSxxQkFBQSxDQUFBdEYsSUFBQSxDQUFBdUYsV0FBQSxFQUE4QkgsTUFBTSxFQUFFQyxLQUFLLENBQUM7SUFDOUMsQ0FBQztJQUVEO0lBQUEsSUFBQWIsZ0JBQUEsYUFBQUYsS0FBQSx5QkFDc0IsWUFBTTtNQUMxQixJQUFJQSxLQUFBLENBQUtoRCxLQUFLLENBQUN1QyxVQUFVLEVBQUU7UUFBQSxJQUFBOEIsbUJBQUE7UUFDekIsSUFBTS9DLEtBQUssSUFBQStDLG1CQUFBLEdBQUdyQixLQUFBLENBQUtJLEtBQUssQ0FBQ0MsT0FBTyxjQUFBZ0IsbUJBQUEsdUJBQWxCQSxtQkFBQSxDQUFvQi9DLEtBQUs7UUFFdkMwQixLQUFBLENBQUtrQixRQUFRLENBQUM7VUFDWlAsYUFBYSxFQUFFekIsb0JBQW9CLENBQUNaLEtBQUssRUFBRTBCLEtBQUEsQ0FBS2hELEtBQUssQ0FBQztVQUN0RG1FLFNBQVMsRUFBRSxFQUFFO1VBQ2JULFVBQVUsRUFBRXBDO1FBQ2QsQ0FBQyxDQUFDO01BQ0o7SUFDRixDQUFDO0lBQUEsSUFBQTRCLGdCQUFBLGFBQUFGLEtBQUEsY0FFVSxVQUFBZSxLQUFLLEVBQUk7TUFDbEIsSUFBTUksU0FBUyxHQUFHbkIsS0FBQSxDQUFLc0IsWUFBWSxDQUFDLENBQUM7TUFDckMsSUFBSSxDQUFDSCxTQUFTLEVBQUU7UUFBQSxJQUFBSSxxQkFBQSxFQUFBQyxZQUFBO1FBQ2QsQ0FBQUQscUJBQUEsSUFBQUMsWUFBQSxHQUFBeEIsS0FBQSxDQUFLaEQsS0FBSyxFQUFDeUUsU0FBUyxjQUFBRixxQkFBQSxlQUFwQkEscUJBQUEsQ0FBQTdGLElBQUEsQ0FBQThGLFlBQUEsRUFBdUJULEtBQUssQ0FBQztNQUMvQjtNQUNBZixLQUFBLENBQUswQixpQkFBaUIsQ0FBQ1AsU0FBUyxFQUFFSixLQUFLLENBQUM7SUFDMUMsQ0FBQztJQUFBLElBQUFiLGdCQUFBLGFBQUFGLEtBQUEsZUFFVyxZQUFNO01BQ2hCQSxLQUFBLENBQUtrQixRQUFRLENBQUM7UUFDWlMsY0FBYyxFQUFFO01BQ2xCLENBQUMsQ0FBQztJQUNKLENBQUM7SUFBQSxJQUFBekIsZ0JBQUEsYUFBQUYsS0FBQSxZQUVRLFVBQUFlLEtBQUssRUFBSTtNQUNoQixJQUFNSSxTQUFTLEdBQUduQixLQUFBLENBQUtzQixZQUFZLENBQUMsQ0FBQztNQUNyQyxJQUFJUixNQUFNLEdBQUdLLFNBQVMsR0FDbEJBLFNBQVMsR0FDVG5CLEtBQUEsQ0FBS1gsS0FBSyxDQUFDc0IsYUFBYSxDQUFDaEIsTUFBTSxHQUFHLENBQUMsR0FDbkNLLEtBQUEsQ0FBS1gsS0FBSyxDQUFDc0IsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUMzQixJQUFJO01BRVIsSUFBSUcsTUFBTSxLQUFLLElBQUksSUFBSWQsS0FBQSxDQUFLYSxlQUFlLENBQUMsQ0FBQyxFQUFFO1FBQzdDQyxNQUFNLEdBQUdkLEtBQUEsQ0FBSzRCLGVBQWUsQ0FBQyxDQUFDO01BQ2pDO01BRUEsSUFBSWQsTUFBTSxLQUFLLElBQUksRUFBRTtRQUNuQixPQUFPZCxLQUFBLENBQUswQixpQkFBaUIsQ0FBQ1osTUFBTSxFQUFFQyxLQUFLLENBQUM7TUFDOUM7SUFDRixDQUFDO0lBQUEsSUFBQWIsZ0JBQUEsYUFBQUYsS0FBQSxjQUVVLFlBQU07TUFDZixJQUFNNkIsTUFBTSxHQUFHLENBQUMsQ0FBQztNQUVqQkEsTUFBTSxDQUFDQyxtQkFBUSxDQUFDQyxTQUFTLENBQUMsR0FBRy9CLEtBQUEsQ0FBS2dDLEtBQUs7TUFDdkNILE1BQU0sQ0FBQ0MsbUJBQVEsQ0FBQ0csV0FBVyxDQUFDLEdBQUdqQyxLQUFBLENBQUtrQyxPQUFPO01BQzNDTCxNQUFNLENBQUNDLG1CQUFRLENBQUNLLGFBQWEsQ0FBQyxHQUFHTixNQUFNLENBQUNDLG1CQUFRLENBQUNNLFlBQVksQ0FBQyxHQUFHcEMsS0FBQSxDQUFLcUMsUUFBUTtNQUM5RVIsTUFBTSxDQUFDQyxtQkFBUSxDQUFDUSxhQUFhLENBQUMsR0FBR3RDLEtBQUEsQ0FBS3VDLFNBQVM7TUFDL0NWLE1BQU0sQ0FBQ0MsbUJBQVEsQ0FBQ1UsVUFBVSxDQUFDLEdBQUd4QyxLQUFBLENBQUt5QyxNQUFNO01BRXpDLE9BQU9aLE1BQU07SUFDZixDQUFDO0lBQUEsSUFBQTNCLGdCQUFBLGFBQUFGLEtBQUEsVUFFTSxVQUFBMEMsS0FBSyxFQUFJO01BQ2QsSUFBSSxDQUFDMUMsS0FBQSxDQUFLMkMsUUFBUSxDQUFDLENBQUMsRUFBRTtRQUNwQjtNQUNGO01BQ0EsSUFBSUMsUUFBUSxHQUNWNUMsS0FBQSxDQUFLWCxLQUFLLENBQUNzQyxjQUFjLEtBQUssSUFBSSxHQUM5QmUsS0FBSyxLQUFLLENBQUMsR0FDVCxDQUFDLEdBQ0RBLEtBQUssR0FDUDFDLEtBQUEsQ0FBS1gsS0FBSyxDQUFDc0MsY0FBYyxHQUFHZSxLQUFLO01BQ3ZDLElBQUkvQyxNQUFNLEdBQUdLLEtBQUEsQ0FBS2hELEtBQUssQ0FBQzZGLFVBQVUsR0FDOUI3QyxLQUFBLENBQUtYLEtBQUssQ0FBQ3NCLGFBQWEsQ0FBQ21DLEtBQUssQ0FBQyxDQUFDLEVBQUU5QyxLQUFBLENBQUtoRCxLQUFLLENBQUM2RixVQUFVLENBQUMsQ0FBQ2xELE1BQU0sR0FDL0RLLEtBQUEsQ0FBS1gsS0FBSyxDQUFDc0IsYUFBYSxDQUFDaEIsTUFBTTtNQUNuQyxJQUFJSyxLQUFBLENBQUthLGVBQWUsQ0FBQyxDQUFDLEVBQUU7UUFDMUJsQixNQUFNLElBQUksQ0FBQztNQUNiO01BRUEsSUFBSWlELFFBQVEsR0FBRyxDQUFDLEVBQUU7UUFDaEJBLFFBQVEsSUFBSWpELE1BQU07TUFDcEIsQ0FBQyxNQUFNLElBQUlpRCxRQUFRLElBQUlqRCxNQUFNLEVBQUU7UUFDN0JpRCxRQUFRLElBQUlqRCxNQUFNO01BQ3BCO01BRUFLLEtBQUEsQ0FBS2tCLFFBQVEsQ0FBQztRQUFDUyxjQUFjLEVBQUVpQjtNQUFRLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQUEsSUFBQTFDLGdCQUFBLGFBQUFGLEtBQUEsYUFFUyxZQUFNO01BQ2RBLEtBQUEsQ0FBSytDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDZCxDQUFDO0lBQUEsSUFBQTdDLGdCQUFBLGFBQUFGLEtBQUEsV0FFTyxZQUFNO01BQ1pBLEtBQUEsQ0FBSytDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNmLENBQUM7SUFBQSxJQUFBN0MsZ0JBQUEsYUFBQUYsS0FBQSxlQUV1RCxVQUFBZSxLQUFLLEVBQUk7TUFDL0QsSUFBSWYsS0FBQSxDQUFLaEQsS0FBSyxDQUFDZ0csUUFBUSxFQUFFO1FBQ3ZCaEQsS0FBQSxDQUFLaEQsS0FBSyxDQUFDZ0csUUFBUSxDQUFDakMsS0FBSyxDQUFDO01BQzVCO01BRUFmLEtBQUEsQ0FBS2lELG1CQUFtQixDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUFBLElBQUEvQyxnQkFBQSxhQUFBRixLQUFBLGdCQUV3RCxVQUFBZSxLQUFLLEVBQUk7TUFDaEU7TUFDQTtNQUNBO01BQ0EsSUFBSSxDQUFDZixLQUFBLENBQUsyQyxRQUFRLENBQUMsQ0FBQyxJQUFJNUIsS0FBSyxDQUFDbUMsUUFBUSxFQUFFO1FBQUEsSUFBQUMsc0JBQUEsRUFBQUMsWUFBQTtRQUN0QyxRQUFBRCxzQkFBQSxHQUFPLENBQUFDLFlBQUEsR0FBQXBELEtBQUEsQ0FBS2hELEtBQUssRUFBQ3lFLFNBQVMsY0FBQTBCLHNCQUFBLHVCQUFwQkEsc0JBQUEsQ0FBQXpILElBQUEsQ0FBQTBILFlBQUEsRUFBdUJyQyxLQUFLLENBQUM7TUFDdEM7TUFFQSxJQUFNc0MsT0FBTyxHQUFHckQsS0FBQSxDQUFLc0QsUUFBUSxDQUFDLENBQUMsQ0FBQ3ZDLEtBQUssQ0FBQ3dDLE9BQU8sQ0FBQztNQUU5QyxJQUFJRixPQUFPLEVBQUU7UUFDWEEsT0FBTyxDQUFDdEMsS0FBSyxDQUFDO01BQ2hCLENBQUMsTUFBTTtRQUFBLElBQUF5QyxzQkFBQSxFQUFBQyxZQUFBO1FBQ0wsUUFBQUQsc0JBQUEsR0FBTyxDQUFBQyxZQUFBLEdBQUF6RCxLQUFBLENBQUtoRCxLQUFLLEVBQUN5RSxTQUFTLGNBQUErQixzQkFBQSx1QkFBcEJBLHNCQUFBLENBQUE5SCxJQUFBLENBQUErSCxZQUFBLEVBQXVCMUMsS0FBSyxDQUFDO01BQ3RDO01BQ0E7TUFDQUEsS0FBSyxDQUFDMkMsY0FBYyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUFBLElBQUF4RCxnQkFBQSxhQUFBRixLQUFBLGNBRW1ELFVBQUFlLEtBQUssRUFBSTtNQUMzRGYsS0FBQSxDQUFLa0IsUUFBUSxDQUFDO1FBQUN0QixTQUFTLEVBQUU7TUFBSSxDQUFDLENBQUM7TUFDaEMsSUFBSUksS0FBQSxDQUFLaEQsS0FBSyxDQUFDMkcsT0FBTyxFQUFFO1FBQ3RCLE9BQU8zRCxLQUFBLENBQUtoRCxLQUFLLENBQUMyRyxPQUFPLENBQUM1QyxLQUFLLENBQUM7TUFDbEM7SUFDRixDQUFDO0lBQUEsSUFBQWIsZ0JBQUEsYUFBQUYsS0FBQSxhQUVvRCxVQUFBZSxLQUFLLEVBQUk7TUFDNURmLEtBQUEsQ0FBS2tCLFFBQVEsQ0FBQztRQUFDdEIsU0FBUyxFQUFFO01BQUssQ0FBQyxDQUFDO01BQ2pDLElBQUlJLEtBQUEsQ0FBS2hELEtBQUssQ0FBQzRHLE1BQU0sRUFBRTtRQUNyQixPQUFPNUQsS0FBQSxDQUFLaEQsS0FBSyxDQUFDNEcsTUFBTSxDQUFDN0MsS0FBSyxDQUFDO01BQ2pDO0lBQ0YsQ0FBQztJQTlPQ2YsS0FBQSxDQUFLWCxLQUFLLEdBQUc7TUFDWDtNQUNBc0IsYUFBYSxFQUFFWCxLQUFBLENBQUtoRCxLQUFLLENBQUN1QixPQUFPLElBQUksRUFBRTtNQUV2QztNQUNBbUMsVUFBVSxFQUFFVixLQUFBLENBQUtoRCxLQUFLLENBQUNzQixLQUFLLElBQUkwQixLQUFBLENBQUtoRCxLQUFLLENBQUM2RyxZQUFZO01BRXZEO01BQ0ExQyxTQUFTLEVBQUVuQixLQUFBLENBQUtoRCxLQUFLLENBQUNzQixLQUFLO01BRTNCO01BQ0FxRCxjQUFjLEVBQUUsSUFBSTtNQUVwQjtNQUNBO01BQ0EvQixTQUFTLEVBQUU7SUFDYixDQUFDO0lBQUMsT0FBQUksS0FBQTtFQUNKO0VBQUMsSUFBQThELFVBQUEsYUFBQWhFLFNBQUEsRUFBQUMsVUFBQTtFQUFBLFdBQUFnRSxhQUFBLGFBQUFqRSxTQUFBO0lBQUFrRSxHQUFBO0lBQUExRixLQUFBLEVBRUQsU0FBQTJGLGlCQUFpQkEsQ0FBQSxFQUFHO01BQ2xCO01BQ0EsSUFBSSxJQUFJLENBQUNqSCxLQUFLLENBQUNrSCxTQUFTLEVBQUU7UUFDeEIsSUFBSSxJQUFJLENBQUM5RCxLQUFLLENBQUNDLE9BQU8sRUFBRTtVQUN0QixJQUFJLENBQUNELEtBQUssQ0FBQ0MsT0FBTyxDQUFDQyxLQUFLLENBQUMsQ0FBQztRQUM1QixDQUFDLE1BQU07VUFBQSxJQUFBNkQsa0JBQUE7VUFDTCxDQUFBQSxrQkFBQSxPQUFJLENBQUNDLElBQUksQ0FBQy9ELE9BQU8sY0FBQThELGtCQUFBLGVBQWpCQSxrQkFBQSxDQUFtQjdELEtBQUssQ0FBQyxDQUFDO1FBQzVCO01BQ0Y7SUFDRjtFQUFDO0lBQUEwRCxHQUFBO0lBQUExRixLQUFBLEVBdUJELFNBQUErRiwrQkFBK0JBLENBQUEsRUFBRztNQUNoQyxJQUFBQyxxQkFBQSxHQUFrRSxJQUFJLENBQUN0SCxLQUFLLENBQXJFdUgsbUJBQW1CO1FBQUVDLG1CQUFtQixHQUFBRixxQkFBQSxjQUFHRyx3QkFBWSxHQUFBSCxxQkFBQTtNQUM5RCxvQkFDRS9LLE1BQUEsWUFBQW1MLGFBQUEsQ0FBQ0YsbUJBQW1CO1FBQ2xCRyxZQUFZLEVBQUUsSUFBSSxDQUFDM0gsS0FBSyxDQUFDMkgsWUFBYTtRQUN0Q3BHLE9BQU8sRUFBRSxJQUFJLENBQUNjLEtBQUssQ0FBQ3NCLGFBQWM7UUFDbENpRSxtQkFBbUIsRUFBRSxLQUFNO1FBQzNCQyx1QkFBdUIsRUFBRSxJQUFJLENBQUM3SCxLQUFLLENBQUM2SCx1QkFBd0I7UUFDNUR6RCxnQkFBZ0IsRUFBRSxJQUFJLENBQUNNLGlCQUFrQjtRQUN6Q2pCLGlCQUFpQixFQUFFLElBQUksQ0FBQ3pELEtBQUssQ0FBQ3lELGlCQUFrQjtRQUNoRHFFLFdBQVcsRUFBRSxJQUFJLENBQUNsRCxlQUFlLENBQUMsQ0FBRTtRQUNwQ21ELGFBQWEsRUFBRSxJQUFJLENBQUMvSCxLQUFLLENBQUMrSCxhQUFjO1FBQ3hDQyx1QkFBdUIsRUFBRSxJQUFJLENBQUNoSSxLQUFLLENBQUNnSSx1QkFBd0I7UUFDNURDLHlCQUF5QixFQUFFLElBQUksQ0FBQ2pJLEtBQUssQ0FBQ2lJLHlCQUEwQjtRQUNoRXRELGNBQWMsRUFBRSxJQUFJLENBQUN0QyxLQUFLLENBQUNzQyxjQUFlO1FBQzFDdUQsaUJBQWlCLEVBQUUsSUFBSSxDQUFDbEksS0FBSyxDQUFDa0ksaUJBQWtCO1FBQ2hEQyxhQUFhLEVBQUUsSUFBSSxDQUFDbkksS0FBSyxDQUFDbUksYUFBYztRQUN4Q0MsYUFBYSxFQUFFLElBQUksQ0FBQ3BJLEtBQUssQ0FBQ29JLGFBQWM7UUFDeENuSSxLQUFLLEVBQUUsSUFBSSxDQUFDRCxLQUFLLENBQUNDO01BQU0sQ0FDekIsQ0FBQztJQUVOO0VBQUM7SUFBQStHLEdBQUE7SUFBQTFGLEtBQUEsRUFFRCxTQUFBZ0QsWUFBWUEsQ0FBQSxFQUFHO01BQ2IsSUFBSXJDLEtBQW9CLEdBQUcsSUFBSSxDQUFDSSxLQUFLLENBQUNzQyxjQUFjO01BQ3BELElBQUkxQyxLQUFLLEtBQUssSUFBSSxFQUFFO1FBQ2xCLE9BQU8sSUFBSTtNQUNiO01BQ0FBLEtBQUssR0FBR3VCLE1BQU0sQ0FBQ3ZCLEtBQUssQ0FBQztNQUVyQixJQUFJLElBQUksQ0FBQzRCLGVBQWUsQ0FBQyxDQUFDLEVBQUU7UUFDMUIsSUFBSTVCLEtBQUssS0FBSyxDQUFDLEVBQUU7VUFDZixPQUFPLElBQUksQ0FBQ0ksS0FBSyxDQUFDcUIsVUFBVTtRQUM5QjtRQUNBekIsS0FBSyxFQUFFO01BQ1Q7TUFDQSxJQUFJLElBQUksQ0FBQ29HLGdCQUFnQixDQUFDLENBQUMsRUFBRTtRQUFBLElBQUFDLHFCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLHNCQUFBO1FBQzNCLE9BQU92RyxLQUFLLEdBQUd1QixNQUFNLEVBQUE4RSxxQkFBQSxHQUFDLElBQUksQ0FBQ3RJLEtBQUssQ0FBQzJILFlBQVksY0FBQVcscUJBQUEsdUJBQXZCQSxxQkFBQSxDQUF5QjNGLE1BQU0sQ0FBQyxJQUFBNEYsc0JBQUEsR0FDbEQsSUFBSSxDQUFDdkksS0FBSyxDQUFDMkgsWUFBWSxjQUFBWSxzQkFBQSx1QkFBdkJBLHNCQUFBLENBQTBCdEcsS0FBSyxDQUFDLEdBQ2hDLElBQUksQ0FBQ0ksS0FBSyxDQUFDc0IsYUFBYSxDQUFDMUIsS0FBSyxHQUFHdUIsTUFBTSxFQUFBZ0Ysc0JBQUEsR0FBQyxJQUFJLENBQUN4SSxLQUFLLENBQUMySCxZQUFZLGNBQUFhLHNCQUFBLHVCQUF2QkEsc0JBQUEsQ0FBeUI3RixNQUFNLENBQUMsQ0FBQztNQUMvRTtNQUNBLE9BQU8sSUFBSSxDQUFDTixLQUFLLENBQUNzQixhQUFhLENBQUMxQixLQUFLLENBQUM7SUFDeEM7RUFBQztJQUFBK0UsR0FBQTtJQUFBMUYsS0FBQSxFQW1KRCxTQUFBbUgsa0JBQWtCQSxDQUFBLEVBQUc7TUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQ3pJLEtBQUssQ0FBQzBJLElBQUksRUFBRTtRQUNwQixPQUFPLElBQUk7TUFDYjtNQUVBLG9CQUFPbk0sTUFBQSxZQUFBbUwsYUFBQTtRQUFPaUIsSUFBSSxFQUFDLFFBQVE7UUFBQ0QsSUFBSSxFQUFFLElBQUksQ0FBQzFJLEtBQUssQ0FBQzBJLElBQUs7UUFBQ3BILEtBQUssRUFBRSxJQUFJLENBQUNlLEtBQUssQ0FBQzhCO01BQVUsQ0FBRSxDQUFDO0lBQ3BGO0VBQUM7SUFBQTZDLEdBQUE7SUFBQTFGLEtBQUEsRUFFRCxTQUFBcUUsUUFBUUEsQ0FBQSxFQUFHO01BQ1QsT0FBTyxJQUFJLENBQUN0RCxLQUFLLENBQUNzQixhQUFhLENBQUNoQixNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQ2tCLGVBQWUsQ0FBQyxDQUFDO0lBQ3RFO0VBQUM7SUFBQW1ELEdBQUE7SUFBQTFGLEtBQUEsRUFFRCxTQUFBK0csZ0JBQWdCQSxDQUFBLEVBQUc7TUFDakIsT0FBT08sS0FBSyxDQUFDQyxPQUFPLENBQUMsSUFBSSxDQUFDN0ksS0FBSyxDQUFDMkgsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDM0gsS0FBSyxDQUFDMkgsWUFBWSxDQUFDaEYsTUFBTTtJQUNqRjtFQUFDO0lBQUFxRSxHQUFBO0lBQUExRixLQUFBLEVBRUQsU0FBQXdILE1BQU1BLENBQUEsRUFBRztNQUFBLElBQUFDLHFCQUFBLEVBQUFDLHNCQUFBO01BQ1AsSUFBTUMsWUFBWSxHQUFHLENBQUMsQ0FBQztNQUN2QkEsWUFBWSxFQUFBRixxQkFBQSxHQUFDLElBQUksQ0FBQy9JLEtBQUssQ0FBQytILGFBQWEsY0FBQWdCLHFCQUFBLHVCQUF4QkEscUJBQUEsQ0FBMEJySSxLQUFLLENBQUMsR0FBR3BCLE9BQU8sRUFBQTBKLHNCQUFBLEdBQUMsSUFBSSxDQUFDaEosS0FBSyxDQUFDK0gsYUFBYSxjQUFBaUIsc0JBQUEsdUJBQXhCQSxzQkFBQSxDQUEwQnRJLEtBQUssQ0FBQztNQUN4RixJQUFNd0ksY0FBYyxHQUFHLElBQUFDLHNCQUFVLEVBQUNGLFlBQVksQ0FBQztNQUUvQyxJQUFNRyxPQUFPLE9BQUFsRyxnQkFBQSxpQkFDVnpELGFBQWEsRUFBRyxJQUFJLENBQUNPLEtBQUssQ0FBQ2tJLGlCQUFpQixDQUM5QztNQUNEa0IsT0FBTyxDQUFDLElBQUksQ0FBQ3BKLEtBQUssQ0FBQ1EsU0FBUyxHQUFHLElBQUksQ0FBQ1IsS0FBSyxDQUFDUSxTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUdsQixPQUFPLENBQUMsSUFBSSxDQUFDVSxLQUFLLENBQUNRLFNBQVMsQ0FBQztNQUN6RixJQUFNNkksU0FBUyxHQUFHLElBQUFGLHNCQUFVLEVBQUNDLE9BQU8sQ0FBQztNQUVyQyxvQkFDRTdNLE1BQUEsWUFBQW1MLGFBQUEsQ0FBQ2hJLGdCQUFnQjtRQUNmYyxTQUFTLEVBQUU2SSxTQUFVO1FBQ3JCQyxHQUFHLEVBQUUsSUFBSSxDQUFDbEMsSUFBSztRQUNmbUMsUUFBUSxFQUFFLENBQUU7UUFDWjlFLFNBQVMsRUFBRSxJQUFJLENBQUMrRSxVQUFXO1FBQzNCQyxVQUFVLEVBQUUsSUFBSSxDQUFDekosS0FBSyxDQUFDeUosVUFBVztRQUNsQ0MsT0FBTyxFQUFFLElBQUksQ0FBQzFKLEtBQUssQ0FBQzBKLE9BQVE7UUFDNUIvQyxPQUFPLEVBQUUsSUFBSSxDQUFDZ0QsUUFBUztRQUN2QjFKLEtBQUssRUFBRSxJQUFJLENBQUNELEtBQUssQ0FBQ0M7TUFBTSxHQUV2QixJQUFJLENBQUN3SSxrQkFBa0IsQ0FBQyxDQUFDLEVBQ3pCLElBQUksQ0FBQ3pJLEtBQUssQ0FBQ3VDLFVBQVUsZ0JBQ3BCaEcsTUFBQSxZQUFBbUwsYUFBQSxDQUFDcEgsUUFBUSxxQkFDUC9ELE1BQUEsWUFBQW1MLGFBQUEsQ0FBQ2pILGNBQWMsTUFBQW1KLFNBQUE7UUFDYk4sR0FBRyxFQUFFLElBQUksQ0FBQ2xHLEtBQU07UUFDaEJ1RixJQUFJLEVBQUMsTUFBTTtRQUNYa0IsUUFBUSxFQUFFLElBQUksQ0FBQzdKLEtBQUssQ0FBQzZKO01BQVMsR0FDMUIsSUFBSSxDQUFDN0osS0FBSyxDQUFDOEosVUFBVTtRQUN6QkMsV0FBVyxFQUFFLElBQUksQ0FBQy9KLEtBQUssQ0FBQytKLFdBQVk7UUFDcEN2SixTQUFTLEVBQUUwSSxjQUFlO1FBQzFCNUgsS0FBSyxFQUFFLElBQUksQ0FBQ2UsS0FBSyxDQUFDcUIsVUFBVztRQUM3QnNDLFFBQVEsRUFBRSxJQUFJLENBQUNnRSxTQUFVO1FBQ3pCcEQsTUFBTSxFQUFFLElBQUksQ0FBQ3FELE9BQVE7UUFDckJoSyxLQUFLLEVBQUUsSUFBSSxDQUFDRCxLQUFLLENBQUNDO01BQU0sRUFDekIsQ0FBQyxlQUNGMUQsTUFBQSxZQUFBbUwsYUFBQSxDQUFDM0csU0FBUyxxQkFDUnhFLE1BQUEsWUFBQW1MLGFBQUEsTUFBTTFILEtBQUssQ0FBQ2tLLFNBQVM7UUFBQ0MsTUFBTSxFQUFDO01BQU0sQ0FBRSxDQUM1QixDQUNILENBQUMsR0FDVCxJQUFJLEVBQ1AsSUFBSSxDQUFDOUMsK0JBQStCLENBQUMsQ0FDdEIsQ0FBQztJQUV2QjtFQUFDO0lBQUFMLEdBQUE7SUFBQTFGLEtBQUEsRUE5VEQsU0FBTzhJLHdCQUF3QkEsQ0FBQ3BLLEtBQUssRUFBRXFDLEtBQUssRUFBRTtNQUM1QyxJQUFJckMsS0FBSyxDQUFDdUIsT0FBTyxLQUFLYyxLQUFLLENBQUNnSSxXQUFXLEVBQUU7UUFDdkMsT0FBTyxDQUFDLENBQUM7TUFDWDs7TUFFQTtNQUNBLElBQU0xRyxhQUFhLEdBQUd2QixrQkFBa0IsQ0FBQ0MsS0FBSyxDQUFDcUIsVUFBVSxFQUFFMUQsS0FBSyxFQUFFcUMsS0FBSyxDQUFDO01BRXhFLE9BQU87UUFDTHNCLGFBQWEsRUFBYkEsYUFBYTtRQUNiMEcsV0FBVyxFQUFFckssS0FBSyxDQUFDdUI7TUFDckIsQ0FBQztJQUNIO0VBQUM7QUFBQSxFQWpEcUIrSSxnQkFBUztBQUFBLElBQUFwSCxnQkFBQSxhQUEzQkosU0FBUyxrQkFDUztFQUNwQnZCLE9BQU8sRUFBRSxFQUFFO0VBQ1h3RyxhQUFhLEVBQUU7SUFDYndDLE9BQU8sRUFBRSxlQUFlO0lBQ3hCN0osS0FBSyxFQUFFLGtCQUFrQjtJQUN6QjhKLFFBQVEsRUFBRSxZQUFZO0lBQ3RCQyxVQUFVLEVBQUU7RUFDZCxDQUFDO0VBQ0RoSCxpQkFBaUIsRUFBRSxDQUFDO0VBQ3BCb0QsWUFBWSxFQUFFLEVBQUU7RUFDaEJ2RixLQUFLLEVBQUUsRUFBRTtFQUNUeUksV0FBVyxFQUFFLEVBQUU7RUFDZkYsUUFBUSxFQUFFLEtBQUs7RUFDZmEsUUFBUSxFQUFFLEtBQUs7RUFDZlosVUFBVSxFQUFFLENBQUMsQ0FBQztFQUNkMUYsZ0JBQWdCLEVBQUV2QixJQUFJO0VBQ3RCbUQsUUFBUSxFQUFFbkQsSUFBSTtFQUNkNEIsU0FBUyxFQUFFNUIsSUFBSTtFQUNmNEcsVUFBVSxFQUFFNUcsSUFBSTtFQUNoQjZHLE9BQU8sRUFBRTdHLElBQUk7RUFDYjhELE9BQU8sRUFBRTlELElBQUk7RUFDYitELE1BQU0sRUFBRS9ELElBQUk7RUFDWjFCLFlBQVksRUFBRSxJQUFJO0VBQ2xCRCxhQUFhLEVBQUUsSUFBSTtFQUNuQnlKLGtCQUFrQixFQUFFLElBQUk7RUFDeEJ6QyxpQkFBaUIsRUFBRSxJQUFJO0VBQ3ZCWCxtQkFBbUIsRUFBRUUsd0JBQVk7RUFDakNPLHVCQUF1QixFQUFFNEMsc0JBQVE7RUFDakNWLFNBQVMsRUFBRVcsYUFBTTtFQUNqQjVDLHlCQUF5QixFQUFFLElBQUk7RUFDL0IzRixvQkFBb0IsRUFBRSxJQUFJO0VBQzFCQyxVQUFVLEVBQUUsSUFBSTtFQUNoQnNGLHVCQUF1QixFQUFFLElBQUk7RUFDN0JYLFNBQVMsRUFBRTtBQUNiLENBQUM7QUFtVUgsSUFBQTRELCtCQUFRLEVBQUNoSSxTQUFTLENBQUM7QUFBQyxJQUFBaUksUUFBQSxHQUFBQyxPQUFBLGNBRUxsSSxTQUFTIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -27,9 +27,9 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
27
27
|
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
28
28
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
29
29
|
var StyledG = _styledComponents["default"].g(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n .selection {\n stroke: none;\n fill: ", ";\n fill-opacity: ", ";\n }\n .handle {\n fill: ", ";\n fill-opacity: 0.3;\n }\n"])), function (props) {
|
|
30
|
-
return props
|
|
30
|
+
return props.$isRanged ? props.theme.rangeBrushBgd : props.theme.BLUE2;
|
|
31
31
|
}, function (props) {
|
|
32
|
-
return props
|
|
32
|
+
return props.$isRanged ? 0.3 : 1;
|
|
33
33
|
}, function (props) {
|
|
34
34
|
return props.theme.BLUE2;
|
|
35
35
|
});
|
|
@@ -251,7 +251,7 @@ function RangeBrushFactory() {
|
|
|
251
251
|
var isRanged = this.props.isRanged;
|
|
252
252
|
return /*#__PURE__*/_react["default"].createElement(StyledG, {
|
|
253
253
|
className: "kg-range-slider__brush",
|
|
254
|
-
isRanged: isRanged,
|
|
254
|
+
$isRanged: isRanged,
|
|
255
255
|
ref: this.rootContainer
|
|
256
256
|
});
|
|
257
257
|
}
|
|
@@ -263,4 +263,4 @@ function RangeBrushFactory() {
|
|
|
263
263
|
return (0, _styledComponents.withTheme)(RangeBrush);
|
|
264
264
|
}
|
|
265
265
|
var _default = exports["default"] = RangeBrushFactory;
|
|
266
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9kM1NlbGVjdGlvbiIsIl9kM0JydXNoIiwiX3V0aWxzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX2NhbGxTdXBlciIsIm8iLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJTdHlsZWRHIiwic3R5bGVkIiwiZyIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJpc1JhbmdlZCIsInRoZW1lIiwicmFuZ2VCcnVzaEJnZCIsIkJMVUUyIiwibW92ZVJpZ2h0Iiwic3RhcnRTZWwiLCJzZWxlY3Rpb24iLCJfc3RhcnRTZWwiLCJfc2xpY2VkVG9BcnJheTIiLCJzdGFydFNlbDAiLCJfc2VsZWN0aW9uIiwic2VsMCIsImdldEhhbmRsZVBhdGgiLCJicnVzaFJlc2l6ZVBhdGgiLCJkIiwiTnVtYmVyIiwidHlwZSIsIngiLCJoIiwidyIsInkiLCJoZWlnaHQiLCJjb25jYXQiLCJSYW5nZUJydXNoRmFjdG9yeSIsIlJhbmdlQnJ1c2giLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJfZGVmaW5lUHJvcGVydHkyIiwiY3JlYXRlUmVmIiwicm9vdENvbnRhaW5lciIsImN1cnJlbnQiLCJzZWxlY3QiLCJ1bmRlZmluZWQiLCJldnQiLCJfdGhpczIiLCJzb3VyY2VFdmVudCIsIl9ldnQkc2VsZWN0aW9uIiwic2VsMSIsInJpZ2h0IiwiX3RoaXMkcHJvcHMiLCJfdGhpcyRwcm9wcyRyYW5nZSIsInJhbmdlIiwibWluIiwibWF4IiwiX3RoaXMkcHJvcHMkc3RlcCIsInN0ZXAiLCJ3aWR0aCIsIm1hcmtzIiwiaW52ZXJ0IiwiZDAiLCJkMSIsIm5vcm1hbGl6ZVNsaWRlclZhbHVlIiwiX21vdmUiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiX29uQnJ1c2giLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiY29tcG9uZW50RGlkTW91bnQiLCJfdGhpczMiLCJfdGhpcyRyb290IiwiX3RoaXMkcm9vdDIiLCJfdGhpcyRwcm9wczIiLCJvbk1vdXNlb3ZlckhhbmRsZSIsIm9uTW91c2VvdXRIYW5kbGUiLCJyb290IiwiYnJ1c2giLCJicnVzaFgiLCJoYW5kbGVTaXplIiwib24iLCJldmVudCIsIm9uQnJ1c2hTdGFydCIsIm1vdmluZyIsIl9sYXN0U2VsIiwiYnJ1c2hpbmciLCJfYnJ1c2hlZCIsIl9jbGljayIsIm9uQnJ1c2hFbmQiLCJoYW5kbGUiLCJzZWxlY3RBbGwiLCJkYXRhIiwiZW50ZXIiLCJhcHBlbmQiLCJhdHRyIiwic2xpZGVySGFuZGxlQ29sb3IiLCJfdGhpcyRwcm9wcyR2YWx1ZSIsInZhbDAiLCJ2YWwxIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwiX3RoaXMkcHJvcHMzIiwiX3RoaXMkcHJvcHMzJHZhbHVlIiwiX3ByZXZQcm9wcyR2YWx1ZSIsInByZXZWYWwwIiwicHJldlZhbDEiLCJfdGhpcyRyb290MyIsIl90aGlzJHByb3BzNCIsIl90aGlzJHByb3BzNCRyYW5nZSIsInNjYWxlIiwibW92ZSIsIl90aGlzJHByb3BzNSIsIl90aGlzJHByb3BzNSR2YWx1ZSIsImN1cnJlbnRWYWwwIiwiY3VycmVudFZhbDEiLCJvbkJydXNoIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInJlZiIsIkNvbXBvbmVudCIsIndpdGhUaGVtZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vcmFuZ2UtYnJ1c2gudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgY3JlYXRlUmVmfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7d2l0aFRoZW1lfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge3NlbGVjdCwgU2VsZWN0aW9ufSBmcm9tICdkMy1zZWxlY3Rpb24nO1xuaW1wb3J0IHtCcnVzaEJlaGF2aW9yLCBicnVzaFh9IGZyb20gJ2QzLWJydXNoJztcbmltcG9ydCB7bm9ybWFsaXplU2xpZGVyVmFsdWV9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5pbnRlcmZhY2UgU3R5bGVkR1Byb3BzIHtcbiAgaXNSYW5nZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBTdHlsZWRHID0gc3R5bGVkLmc8U3R5bGVkR1Byb3BzPmBcbiAgLnNlbGVjdGlvbiB7XG4gICAgc3Ryb2tlOiBub25lO1xuICAgIGZpbGw6ICR7cHJvcHMgPT4gKHByb3BzLmlzUmFuZ2VkID8gcHJvcHMudGhlbWUucmFuZ2VCcnVzaEJnZCA6IHByb3BzLnRoZW1lLkJMVUUyKX07XG4gICAgZmlsbC1vcGFjaXR5OiAke3Byb3BzID0+IChwcm9wcy5pc1JhbmdlZCA/IDAuMyA6IDEpfTtcbiAgfVxuICAuaGFuZGxlIHtcbiAgICBmaWxsOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLkJMVUUyfTtcbiAgICBmaWxsLW9wYWNpdHk6IDAuMztcbiAgfVxuYDtcblxuZnVuY3Rpb24gbW92ZVJpZ2h0KHN0YXJ0U2VsLCBzZWxlY3Rpb24pIHtcbiAgY29uc3QgW3N0YXJ0U2VsMF0gPSBzdGFydFNlbDtcbiAgY29uc3QgW3NlbDBdID0gc2VsZWN0aW9uO1xuXG4gIHJldHVybiBCb29sZWFuKHN0YXJ0U2VsMCA9PT0gc2VsMCk7XG59XG4vLyBzdHlsZSBicnVzaCByZXNpemUgaGFuZGxlXG4vLyBodHRwczovL2dpdGh1Yi5jb20vY3Jvc3NmaWx0ZXIvY3Jvc3NmaWx0ZXIvYmxvYi9naC1wYWdlcy9pbmRleC5odG1sI0w0NjZcbmNvbnN0IGdldEhhbmRsZVBhdGggPSAocHJvcHM6IFJhbmdlQnJ1c2hQcm9wcykgPT4ge1xuICByZXR1cm4gZnVuY3Rpb24gYnJ1c2hSZXNpemVQYXRoKGQpIHtcbiAgICBjb25zdCBlID0gTnVtYmVyKGQudHlwZSA9PT0gJ2UnKTtcbiAgICBjb25zdCB4ID0gZSA/IDEgOiAtMTtcbiAgICBjb25zdCBoID0gMzk7XG4gICAgY29uc3QgdyA9IDQuNTtcbiAgICBjb25zdCB5ID0gKHByb3BzLmhlaWdodCAtIGgpIC8gMjtcbiAgICByZXR1cm4gYE0kezAuNSAqIHh9LCR7eX1jJHsyLjUgKiB4fSwwLCR7dyAqIHh9LDIsJHt3ICogeH0sJHt3fXYke2ggLSB3ICogMn1jMCwyLjUsJHtcbiAgICAgIC0yICogeFxuICAgIH0sJHt3fSwkey13ICogeH0sJHt3fVYke3l9emA7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBPbkJydXNoID0gKHZhbDA6IG51bWJlciwgdmFsMTogbnVtYmVyKSA9PiB2b2lkO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJhbmdlQnJ1c2hQcm9wcyB7XG4gIGlzUmFuZ2VkPzogYm9vbGVhbjtcbiAgdGhlbWU/OiBhbnk7XG4gIHJhbmdlOiBudW1iZXJbXTtcbiAgdmFsdWU6IG51bWJlcltdO1xuICBvbkJydXNoU3RhcnQ6ICgpID0+IHZvaWQ7XG4gIG9uQnJ1c2hFbmQ6ICgpID0+IHZvaWQ7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICBvbkJydXNoOiBPbkJydXNoO1xuICBzdGVwPzogbnVtYmVyO1xuICBtYXJrcz86IG51bWJlcltdO1xuICBvbk1vdXNlb3ZlckhhbmRsZTogKCkgPT4gdm9pZDtcbiAgb25Nb3VzZW91dEhhbmRsZTogKCkgPT4gdm9pZDtcbn1cblxuZnVuY3Rpb24gUmFuZ2VCcnVzaEZhY3RvcnkoKTogUmVhY3QuQ29tcG9uZW50VHlwZTxSYW5nZUJydXNoUHJvcHM+IHtcbiAgY2xhc3MgUmFuZ2VCcnVzaCBleHRlbmRzIENvbXBvbmVudDxSYW5nZUJydXNoUHJvcHM+IHtcbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgaXNSYW5nZWQ6IHRydWVcbiAgICB9O1xuXG4gICAgcm9vdENvbnRhaW5lciA9IGNyZWF0ZVJlZjxTVkdHRWxlbWVudD4oKTtcblxuICAgIGJydXNoaW5nID0gZmFsc2U7XG4gICAgbW92aW5nID0gZmFsc2U7XG5cbiAgICByb290ID0gdGhpcy5yb290Q29udGFpbmVyLmN1cnJlbnQgPyBzZWxlY3QodGhpcy5yb290Q29udGFpbmVyLmN1cnJlbnQpIDogdW5kZWZpbmVkO1xuICAgIGJydXNoOiBCcnVzaEJlaGF2aW9yPGFueT4gfCB1bmRlZmluZWQ7XG4gICAgX3N0YXJ0U2VsOiBudW1iZXJbXSB8IHVuZGVmaW5lZDtcbiAgICBfbGFzdFNlbDogbnVtYmVyW10gfCB1bmRlZmluZWQ7XG5cbiAgICBoYW5kbGU6IFNlbGVjdGlvbjxTVkdQYXRoRWxlbWVudCwge3R5cGU6IHN0cmluZ30sIFNWR0dFbGVtZW50IHwgbnVsbCwgdW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIC8vIFdlIHdhbnQgdGhlIFJlYWN0IGFwcCB0byByZXNwb25kIHRvIGJydXNoIHN0YXRlIGFuZCB2aWNlLXZlcnNhXG4gICAgICAvLyBidXQgZDMtYnJ1c2ggZmlyZXMgdGhlIHNhbWUgZXZlbnRzIGZvciBib3RoIHVzZXItaW5pdGlhdGVkIGJydXNoaW5nXG4gICAgICAvLyBhbmQgcHJvZ3JhbW1hdGljIGJydXNoaW5nIChicnVzaC5tb3ZlKS4gV2UgbmVlZCB0aGVzZSBmbGFncyB0b1xuICAgICAgLy8gZGlzdGluZ3Vpc2ggYmV0d2VlbiB0aGUgdXNlcy5cbiAgICAgIC8vXG4gICAgICAvLyBXZSBkb24ndCB1c2Ugc3RhdGUgYmVjYXVzZSB0aGF0IHdvdWxkIHRyaWdnZXIgYW5vdGhlciBgY29tcG9uZW50RGlkVXBkYXRlYFxuICAgICAgY29uc3Qge3RoZW1lLCBpc1JhbmdlZCwgb25Nb3VzZW92ZXJIYW5kbGUsIG9uTW91c2VvdXRIYW5kbGV9ID0gdGhpcy5wcm9wcztcblxuICAgICAgdGhpcy5yb290ID0gdGhpcy5yb290Q29udGFpbmVyLmN1cnJlbnQgPyBzZWxlY3QodGhpcy5yb290Q29udGFpbmVyLmN1cnJlbnQpIDogdW5kZWZpbmVkO1xuICAgICAgdGhpcy5icnVzaCA9IGJydXNoWCgpXG4gICAgICAgIC5oYW5kbGVTaXplKDMpXG4gICAgICAgIC5vbignc3RhcnQnLCBldmVudCA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLm9uQnJ1c2hTdGFydCA9PT0gJ2Z1bmN0aW9uJykgdGhpcy5wcm9wcy5vbkJydXNoU3RhcnQoKTtcbiAgICAgICAgICB0aGlzLl9zdGFydFNlbCA9IGV2ZW50LnNlbGVjdGlvbjtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdicnVzaCcsIGV2ZW50ID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5tb3ZpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGV2ZW50LnNlbGVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fbGFzdFNlbCA9IGV2ZW50LnNlbGVjdGlvbjtcbiAgICAgICAgICAgIHRoaXMuYnJ1c2hpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5fYnJ1c2hlZChldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAub24oJ2VuZCcsIGV2ZW50ID0+IHtcbiAgICAgICAgICBpZiAoIWV2ZW50LnNlbGVjdGlvbikge1xuICAgICAgICAgICAgaWYgKHRoaXMuYnJ1c2hpbmcpIHtcbiAgICAgICAgICAgICAgLy8gaGFuZGxlIG51bGwgc2VsZWN0aW9uXG4gICAgICAgICAgICAgIHRoaXMuX2NsaWNrKHRoaXMuX2xhc3RTZWwpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9zdGFydFNlbCkge1xuICAgICAgICAgICAgICAvLyBoYW5kbGUgY2xpY2tcbiAgICAgICAgICAgICAgdGhpcy5fY2xpY2sodGhpcy5fc3RhcnRTZWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vbkJydXNoRW5kID09PSAnZnVuY3Rpb24nKSB0aGlzLnByb3BzLm9uQnJ1c2hFbmQoKTtcblxuICAgICAgICAgIHRoaXMuYnJ1c2hpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLm1vdmluZyA9IGZhbHNlO1xuICAgICAgICB9KTtcblxuICAgICAgdGhpcy5yb290Py5jYWxsKHRoaXMuYnJ1c2gpO1xuICAgICAgY29uc3QgYnJ1c2hSZXNpemVQYXRoID0gZ2V0SGFuZGxlUGF0aCh0aGlzLnByb3BzKTtcbiAgICAgIHRoaXMuaGFuZGxlID0gdGhpcy5yb290XG4gICAgICAgID8uc2VsZWN0QWxsKCcuaGFuZGxlLS1jdXN0b20nKVxuICAgICAgICAuZGF0YShbe3R5cGU6ICd3J30sIHt0eXBlOiAnZSd9XSlcbiAgICAgICAgLmVudGVyKClcbiAgICAgICAgLmFwcGVuZCgncGF0aCcpXG4gICAgICAgIC5hdHRyKCdjbGFzcycsICdoYW5kbGUtLWN1c3RvbScpXG4gICAgICAgIC5hdHRyKCdkaXNwbGF5JywgaXNSYW5nZWQgPyBudWxsIDogJ25vbmUnKVxuICAgICAgICAuYXR0cignZmlsbCcsIHRoZW1lID8gdGhlbWUuc2xpZGVySGFuZGxlQ29sb3IgOiAnI0QzRDhFMCcpXG4gICAgICAgIC5hdHRyKCdjdXJzb3InLCAnZXctcmVzaXplJylcbiAgICAgICAgLmF0dHIoJ2QnLCBicnVzaFJlc2l6ZVBhdGgpXG4gICAgICAgIC5vbignbW91c2VvdmVyJywgKCkgPT4ge1xuICAgICAgICAgIGlmIChvbk1vdXNlb3ZlckhhbmRsZSkgb25Nb3VzZW92ZXJIYW5kbGUoKTtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdtb3VzZW91dCcsICgpID0+IHtcbiAgICAgICAgICBpZiAob25Nb3VzZW91dEhhbmRsZSkgb25Nb3VzZW91dEhhbmRsZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgY29uc3Qge1xuICAgICAgICB2YWx1ZTogW3ZhbDAsIHZhbDFdXG4gICAgICB9ID0gdGhpcy5wcm9wcztcbiAgICAgIHRoaXMubW92aW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuX21vdmUodmFsMCwgdmFsMSk7XG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgICAgY29uc3Qge1xuICAgICAgICB2YWx1ZTogW3ZhbDAsIHZhbDFdLFxuICAgICAgICB3aWR0aFxuICAgICAgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBbcHJldlZhbDAsIHByZXZWYWwxXSA9IHByZXZQcm9wcy52YWx1ZTtcblxuICAgICAgaWYgKHByZXZQcm9wcy53aWR0aCAhPT0gd2lkdGggfHwgcHJldlByb3BzLnJhbmdlWzBdICE9PSB0aGlzLnByb3BzLnJhbmdlWzBdIHx8IHByZXZQcm9wcy5yYW5nZVsxXSAhPT0gdGhpcy5wcm9wcy5yYW5nZVsxXSkge1xuICAgICAgICAvLyBkaW1lbnNpb24gY2hhbmdlIHNob3VsZCBub3QgdHJpZ2dlciB0aGlzLl9icnVzaGVkXG4gICAgICAgIHRoaXMubW92aW5nID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMuYnJ1c2gpIHRoaXMucm9vdD8uY2FsbCh0aGlzLmJydXNoKTtcbiAgICAgICAgdGhpcy5fbW92ZSh2YWwwLCB2YWwxKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLmJydXNoaW5nICYmICF0aGlzLm1vdmluZykge1xuICAgICAgICBpZiAocHJldlZhbDAgIT09IHZhbDAgfHwgcHJldlZhbDEgIT09IHZhbDEpIHtcbiAgICAgICAgICB0aGlzLm1vdmluZyA9IHRydWU7XG4gICAgICAgICAgdGhpcy5fbW92ZSh2YWwwLCB2YWwxKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMucHJvcHMuaXNSYW5nZWQgJiYgdGhpcy5oYW5kbGUpIHtcbiAgICAgICAgdGhpcy5oYW5kbGUuYXR0cignZGlzcGxheScsICdub25lJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgX2NsaWNrKHNlbGVjdGlvbikge1xuICAgICAgLy8gZmFrZSBicnVzaFxuICAgICAgdGhpcy5icnVzaGluZyA9IHRydWU7XG4gICAgICB0aGlzLl9icnVzaGVkKHtzb3VyY2VFdmVudDoge30sIHNlbGVjdGlvbn0pO1xuICAgIH1cblxuICAgIF9tb3ZlKHZhbDAgPSAwLCB2YWwxID0gMCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICByYW5nZTogW21pbiwgbWF4XSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGlzUmFuZ2VkXG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKHdpZHRoICYmIG1heCAtIG1pbiAmJiB0aGlzLmJydXNoICYmIHRoaXMuaGFuZGxlKSB7XG4gICAgICAgIGNvbnN0IHNjYWxlID0gKHg6IG51bWJlcikgPT4gKCh4IC0gbWluKSAqIHdpZHRoKSAvIChtYXggLSBtaW4pO1xuICAgICAgICBpZiAoIWlzUmFuZ2VkKSB7XG4gICAgICAgICAgLy8gb25seSBkcmF3IGEgMSBwaXhlbCBsaW5lXG4gICAgICAgICAgaWYgKHRoaXMucm9vdCkgdGhpcy5icnVzaC5tb3ZlKHRoaXMucm9vdCwgW3NjYWxlKHZhbDApLCBzY2FsZSh2YWwwKSArIDFdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodGhpcy5yb290KSB0aGlzLmJydXNoLm1vdmUodGhpcy5yb290LCBbc2NhbGUodmFsMCksIHNjYWxlKHZhbDEpXSk7XG5cbiAgICAgICAgICB0aGlzLmhhbmRsZVxuICAgICAgICAgICAgLmF0dHIoJ2Rpc3BsYXknLCBudWxsKVxuICAgICAgICAgICAgLmF0dHIoJ3RyYW5zZm9ybScsIChkLCBpKSA9PiBgdHJhbnNsYXRlKCR7W2kgPT09IDAgPyBzY2FsZSh2YWwwKSA6IHNjYWxlKHZhbDEpLCAwXX0pYCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBfYnJ1c2hlZCA9IChldnQ6IHtzb3VyY2VFdmVudDogYW55OyBzZWxlY3Rpb246IG51bWJlcltdfSkgPT4ge1xuICAgICAgLy8gSWdub3JlIGJydXNoIGV2ZW50cyB3aGljaCBkb24ndCBoYXZlIGFuIHVuZGVybHlpbmcgc291cmNlRXZlbnRcbiAgICAgIGlmICghZXZ0LnNvdXJjZUV2ZW50KSByZXR1cm47XG4gICAgICBjb25zdCBbc2VsMCwgc2VsMV0gPSBldnQuc2VsZWN0aW9uO1xuICAgICAgY29uc3QgcmlnaHQgPSBtb3ZlUmlnaHQodGhpcy5fc3RhcnRTZWwsIGV2dC5zZWxlY3Rpb24pO1xuXG4gICAgICBjb25zdCB7XG4gICAgICAgIHJhbmdlOiBbbWluLCBtYXhdLFxuICAgICAgICBzdGVwID0gMCxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIG1hcmtzLFxuICAgICAgICBpc1JhbmdlZFxuICAgICAgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBpbnZlcnQgPSAoeDogbnVtYmVyKSA9PiAoeCAqIChtYXggLSBtaW4pKSAvIHdpZHRoICsgbWluO1xuICAgICAgbGV0IGQwID0gaW52ZXJ0KHNlbDApO1xuICAgICAgbGV0IGQxID0gaW52ZXJ0KHNlbDEpO1xuICAgICAgLy8gdGhpcyBtYWtlcyBzdXJlIGlmIHBvaW50cyBhcmUgcmlnaHQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZG9tYWlucyBhcmUgZGlzcGxheWVkIGNvcnJlY3RseVxuICAgICAgLy8gdGhlIHByb2JsZW0gaGVyZSBpcyBiaXNlY3RMZWZ0eFxuICAgICAgZDAgPSBkMCA9PT0gbWluID8gZDAgOiBub3JtYWxpemVTbGlkZXJWYWx1ZShkMCwgbWluLCBzdGVwLCBtYXJrcyk7XG4gICAgICBkMSA9IG5vcm1hbGl6ZVNsaWRlclZhbHVlKGQxLCBtaW4sIHN0ZXAsIG1hcmtzKTtcblxuICAgICAgaWYgKGlzUmFuZ2VkKSB0aGlzLl9tb3ZlKGQwLCBkMSk7XG4gICAgICBlbHNlIHRoaXMuX21vdmUoLi4uKHJpZ2h0ID8gW2QxLCBkMV0gOiBbZDAsIGQwXSkpO1xuXG4gICAgICBpZiAoaXNSYW5nZWQpIHRoaXMuX29uQnJ1c2goZDAsIGQxKTtcbiAgICAgIGVsc2UgdGhpcy5fb25CcnVzaChyaWdodCA/IGQxIDogZDApO1xuICAgIH07XG5cbiAgICBfb25CcnVzaCh2YWwwID0gMCwgdmFsMSA9IDApIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaXNSYW5nZWQsXG4gICAgICAgIHZhbHVlOiBbY3VycmVudFZhbDAsIGN1cnJlbnRWYWwxXVxuICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChjdXJyZW50VmFsMCA9PT0gdmFsMCAmJiBjdXJyZW50VmFsMSA9PT0gdmFsMSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChpc1JhbmdlZCkge1xuICAgICAgICB0aGlzLnByb3BzLm9uQnJ1c2godmFsMCwgdmFsMSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnByb3BzLm9uQnJ1c2godmFsMCwgdmFsMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge2lzUmFuZ2VkfSA9IHRoaXMucHJvcHM7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkRyBjbGFzc05hbWU9XCJrZy1yYW5nZS1zbGlkZXJfX2JydXNoXCIgaXNSYW5nZWQ9e2lzUmFuZ2VkfSByZWY9e3RoaXMucm9vdENvbnRhaW5lcn0gLz5cbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHJldHVybiB3aXRoVGhlbWUoUmFuZ2VCcnVzaCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFJhbmdlQnJ1c2hGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFGLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxZQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxRQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFBc0QsSUFBQUssZUFBQSxFQVB0RDtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFSLHdCQUFBUSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFB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
|
|
266
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9kM1NlbGVjdGlvbiIsIl9kM0JydXNoIiwiX3V0aWxzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX2NhbGxTdXBlciIsIm8iLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJTdHlsZWRHIiwic3R5bGVkIiwiZyIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCIkaXNSYW5nZWQiLCJ0aGVtZSIsInJhbmdlQnJ1c2hCZ2QiLCJCTFVFMiIsIm1vdmVSaWdodCIsInN0YXJ0U2VsIiwic2VsZWN0aW9uIiwiX3N0YXJ0U2VsIiwiX3NsaWNlZFRvQXJyYXkyIiwic3RhcnRTZWwwIiwiX3NlbGVjdGlvbiIsInNlbDAiLCJnZXRIYW5kbGVQYXRoIiwiYnJ1c2hSZXNpemVQYXRoIiwiZCIsIk51bWJlciIsInR5cGUiLCJ4IiwiaCIsInciLCJ5IiwiaGVpZ2h0IiwiY29uY2F0IiwiUmFuZ2VCcnVzaEZhY3RvcnkiLCJSYW5nZUJydXNoIiwiX0NvbXBvbmVudCIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiX2RlZmluZVByb3BlcnR5MiIsImNyZWF0ZVJlZiIsInJvb3RDb250YWluZXIiLCJjdXJyZW50Iiwic2VsZWN0IiwidW5kZWZpbmVkIiwiZXZ0IiwiX3RoaXMyIiwic291cmNlRXZlbnQiLCJfZXZ0JHNlbGVjdGlvbiIsInNlbDEiLCJyaWdodCIsIl90aGlzJHByb3BzIiwiX3RoaXMkcHJvcHMkcmFuZ2UiLCJyYW5nZSIsIm1pbiIsIm1heCIsIl90aGlzJHByb3BzJHN0ZXAiLCJzdGVwIiwid2lkdGgiLCJtYXJrcyIsImlzUmFuZ2VkIiwiaW52ZXJ0IiwiZDAiLCJkMSIsIm5vcm1hbGl6ZVNsaWRlclZhbHVlIiwiX21vdmUiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiX29uQnJ1c2giLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiY29tcG9uZW50RGlkTW91bnQiLCJfdGhpczMiLCJfdGhpcyRyb290IiwiX3RoaXMkcm9vdDIiLCJfdGhpcyRwcm9wczIiLCJvbk1vdXNlb3ZlckhhbmRsZSIsIm9uTW91c2VvdXRIYW5kbGUiLCJyb290IiwiYnJ1c2giLCJicnVzaFgiLCJoYW5kbGVTaXplIiwib24iLCJldmVudCIsIm9uQnJ1c2hTdGFydCIsIm1vdmluZyIsIl9sYXN0U2VsIiwiYnJ1c2hpbmciLCJfYnJ1c2hlZCIsIl9jbGljayIsIm9uQnJ1c2hFbmQiLCJoYW5kbGUiLCJzZWxlY3RBbGwiLCJkYXRhIiwiZW50ZXIiLCJhcHBlbmQiLCJhdHRyIiwic2xpZGVySGFuZGxlQ29sb3IiLCJfdGhpcyRwcm9wcyR2YWx1ZSIsInZhbDAiLCJ2YWwxIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwiX3RoaXMkcHJvcHMzIiwiX3RoaXMkcHJvcHMzJHZhbHVlIiwiX3ByZXZQcm9wcyR2YWx1ZSIsInByZXZWYWwwIiwicHJldlZhbDEiLCJfdGhpcyRyb290MyIsIl90aGlzJHByb3BzNCIsIl90aGlzJHByb3BzNCRyYW5nZSIsInNjYWxlIiwibW92ZSIsIl90aGlzJHByb3BzNSIsIl90aGlzJHByb3BzNSR2YWx1ZSIsImN1cnJlbnRWYWwwIiwiY3VycmVudFZhbDEiLCJvbkJydXNoIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInJlZiIsIkNvbXBvbmVudCIsIndpdGhUaGVtZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vcmFuZ2UtYnJ1c2gudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgY3JlYXRlUmVmfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7d2l0aFRoZW1lfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge3NlbGVjdCwgU2VsZWN0aW9ufSBmcm9tICdkMy1zZWxlY3Rpb24nO1xuaW1wb3J0IHtCcnVzaEJlaGF2aW9yLCBicnVzaFh9IGZyb20gJ2QzLWJydXNoJztcbmltcG9ydCB7bm9ybWFsaXplU2xpZGVyVmFsdWV9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5pbnRlcmZhY2UgU3R5bGVkR1Byb3BzIHtcbiAgJGlzUmFuZ2VkPzogYm9vbGVhbjtcbn1cblxuY29uc3QgU3R5bGVkRyA9IHN0eWxlZC5nPFN0eWxlZEdQcm9wcz5gXG4gIC5zZWxlY3Rpb24ge1xuICAgIHN0cm9rZTogbm9uZTtcbiAgICBmaWxsOiAke3Byb3BzID0+IChwcm9wcy4kaXNSYW5nZWQgPyBwcm9wcy50aGVtZS5yYW5nZUJydXNoQmdkIDogcHJvcHMudGhlbWUuQkxVRTIpfTtcbiAgICBmaWxsLW9wYWNpdHk6ICR7cHJvcHMgPT4gKHByb3BzLiRpc1JhbmdlZCA/IDAuMyA6IDEpfTtcbiAgfVxuICAuaGFuZGxlIHtcbiAgICBmaWxsOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLkJMVUUyfTtcbiAgICBmaWxsLW9wYWNpdHk6IDAuMztcbiAgfVxuYDtcblxuZnVuY3Rpb24gbW92ZVJpZ2h0KHN0YXJ0U2VsLCBzZWxlY3Rpb24pIHtcbiAgY29uc3QgW3N0YXJ0U2VsMF0gPSBzdGFydFNlbDtcbiAgY29uc3QgW3NlbDBdID0gc2VsZWN0aW9uO1xuXG4gIHJldHVybiBCb29sZWFuKHN0YXJ0U2VsMCA9PT0gc2VsMCk7XG59XG4vLyBzdHlsZSBicnVzaCByZXNpemUgaGFuZGxlXG4vLyBodHRwczovL2dpdGh1Yi5jb20vY3Jvc3NmaWx0ZXIvY3Jvc3NmaWx0ZXIvYmxvYi9naC1wYWdlcy9pbmRleC5odG1sI0w0NjZcbmNvbnN0IGdldEhhbmRsZVBhdGggPSAocHJvcHM6IFJhbmdlQnJ1c2hQcm9wcykgPT4ge1xuICByZXR1cm4gZnVuY3Rpb24gYnJ1c2hSZXNpemVQYXRoKGQpIHtcbiAgICBjb25zdCBlID0gTnVtYmVyKGQudHlwZSA9PT0gJ2UnKTtcbiAgICBjb25zdCB4ID0gZSA/IDEgOiAtMTtcbiAgICBjb25zdCBoID0gMzk7XG4gICAgY29uc3QgdyA9IDQuNTtcbiAgICBjb25zdCB5ID0gKHByb3BzLmhlaWdodCAtIGgpIC8gMjtcbiAgICByZXR1cm4gYE0kezAuNSAqIHh9LCR7eX1jJHsyLjUgKiB4fSwwLCR7dyAqIHh9LDIsJHt3ICogeH0sJHt3fXYke2ggLSB3ICogMn1jMCwyLjUsJHtcbiAgICAgIC0yICogeFxuICAgIH0sJHt3fSwkey13ICogeH0sJHt3fVYke3l9emA7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBPbkJydXNoID0gKHZhbDA6IG51bWJlciwgdmFsMTogbnVtYmVyKSA9PiB2b2lkO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJhbmdlQnJ1c2hQcm9wcyB7XG4gIGlzUmFuZ2VkPzogYm9vbGVhbjtcbiAgdGhlbWU/OiBhbnk7XG4gIHJhbmdlOiBudW1iZXJbXTtcbiAgdmFsdWU6IG51bWJlcltdO1xuICBvbkJydXNoU3RhcnQ6ICgpID0+IHZvaWQ7XG4gIG9uQnJ1c2hFbmQ6ICgpID0+IHZvaWQ7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICBvbkJydXNoOiBPbkJydXNoO1xuICBzdGVwPzogbnVtYmVyO1xuICBtYXJrcz86IG51bWJlcltdO1xuICBvbk1vdXNlb3ZlckhhbmRsZTogKCkgPT4gdm9pZDtcbiAgb25Nb3VzZW91dEhhbmRsZTogKCkgPT4gdm9pZDtcbn1cblxuZnVuY3Rpb24gUmFuZ2VCcnVzaEZhY3RvcnkoKTogUmVhY3QuQ29tcG9uZW50VHlwZTxSYW5nZUJydXNoUHJvcHM+IHtcbiAgY2xhc3MgUmFuZ2VCcnVzaCBleHRlbmRzIENvbXBvbmVudDxSYW5nZUJydXNoUHJvcHM+IHtcbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgaXNSYW5nZWQ6IHRydWVcbiAgICB9O1xuXG4gICAgcm9vdENvbnRhaW5lciA9IGNyZWF0ZVJlZjxTVkdHRWxlbWVudD4oKTtcblxuICAgIGJydXNoaW5nID0gZmFsc2U7XG4gICAgbW92aW5nID0gZmFsc2U7XG5cbiAgICByb290ID0gdGhpcy5yb290Q29udGFpbmVyLmN1cnJlbnQgPyBzZWxlY3QodGhpcy5yb290Q29udGFpbmVyLmN1cnJlbnQpIDogdW5kZWZpbmVkO1xuICAgIGJydXNoOiBCcnVzaEJlaGF2aW9yPGFueT4gfCB1bmRlZmluZWQ7XG4gICAgX3N0YXJ0U2VsOiBudW1iZXJbXSB8IHVuZGVmaW5lZDtcbiAgICBfbGFzdFNlbDogbnVtYmVyW10gfCB1bmRlZmluZWQ7XG5cbiAgICBoYW5kbGU6IFNlbGVjdGlvbjxTVkdQYXRoRWxlbWVudCwge3R5cGU6IHN0cmluZ30sIFNWR0dFbGVtZW50IHwgbnVsbCwgdW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIC8vIFdlIHdhbnQgdGhlIFJlYWN0IGFwcCB0byByZXNwb25kIHRvIGJydXNoIHN0YXRlIGFuZCB2aWNlLXZlcnNhXG4gICAgICAvLyBidXQgZDMtYnJ1c2ggZmlyZXMgdGhlIHNhbWUgZXZlbnRzIGZvciBib3RoIHVzZXItaW5pdGlhdGVkIGJydXNoaW5nXG4gICAgICAvLyBhbmQgcHJvZ3JhbW1hdGljIGJydXNoaW5nIChicnVzaC5tb3ZlKS4gV2UgbmVlZCB0aGVzZSBmbGFncyB0b1xuICAgICAgLy8gZGlzdGluZ3Vpc2ggYmV0d2VlbiB0aGUgdXNlcy5cbiAgICAgIC8vXG4gICAgICAvLyBXZSBkb24ndCB1c2Ugc3RhdGUgYmVjYXVzZSB0aGF0IHdvdWxkIHRyaWdnZXIgYW5vdGhlciBgY29tcG9uZW50RGlkVXBkYXRlYFxuICAgICAgY29uc3Qge3RoZW1lLCBpc1JhbmdlZCwgb25Nb3VzZW92ZXJIYW5kbGUsIG9uTW91c2VvdXRIYW5kbGV9ID0gdGhpcy5wcm9wcztcblxuICAgICAgdGhpcy5yb290ID0gdGhpcy5yb290Q29udGFpbmVyLmN1cnJlbnQgPyBzZWxlY3QodGhpcy5yb290Q29udGFpbmVyLmN1cnJlbnQpIDogdW5kZWZpbmVkO1xuICAgICAgdGhpcy5icnVzaCA9IGJydXNoWCgpXG4gICAgICAgIC5oYW5kbGVTaXplKDMpXG4gICAgICAgIC5vbignc3RhcnQnLCBldmVudCA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLm9uQnJ1c2hTdGFydCA9PT0gJ2Z1bmN0aW9uJykgdGhpcy5wcm9wcy5vbkJydXNoU3RhcnQoKTtcbiAgICAgICAgICB0aGlzLl9zdGFydFNlbCA9IGV2ZW50LnNlbGVjdGlvbjtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdicnVzaCcsIGV2ZW50ID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5tb3ZpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGV2ZW50LnNlbGVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fbGFzdFNlbCA9IGV2ZW50LnNlbGVjdGlvbjtcbiAgICAgICAgICAgIHRoaXMuYnJ1c2hpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5fYnJ1c2hlZChldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAub24oJ2VuZCcsIGV2ZW50ID0+IHtcbiAgICAgICAgICBpZiAoIWV2ZW50LnNlbGVjdGlvbikge1xuICAgICAgICAgICAgaWYgKHRoaXMuYnJ1c2hpbmcpIHtcbiAgICAgICAgICAgICAgLy8gaGFuZGxlIG51bGwgc2VsZWN0aW9uXG4gICAgICAgICAgICAgIHRoaXMuX2NsaWNrKHRoaXMuX2xhc3RTZWwpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9zdGFydFNlbCkge1xuICAgICAgICAgICAgICAvLyBoYW5kbGUgY2xpY2tcbiAgICAgICAgICAgICAgdGhpcy5fY2xpY2sodGhpcy5fc3RhcnRTZWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vbkJydXNoRW5kID09PSAnZnVuY3Rpb24nKSB0aGlzLnByb3BzLm9uQnJ1c2hFbmQoKTtcblxuICAgICAgICAgIHRoaXMuYnJ1c2hpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLm1vdmluZyA9IGZhbHNlO1xuICAgICAgICB9KTtcblxuICAgICAgdGhpcy5yb290Py5jYWxsKHRoaXMuYnJ1c2gpO1xuICAgICAgY29uc3QgYnJ1c2hSZXNpemVQYXRoID0gZ2V0SGFuZGxlUGF0aCh0aGlzLnByb3BzKTtcbiAgICAgIHRoaXMuaGFuZGxlID0gdGhpcy5yb290XG4gICAgICAgID8uc2VsZWN0QWxsKCcuaGFuZGxlLS1jdXN0b20nKVxuICAgICAgICAuZGF0YShbe3R5cGU6ICd3J30sIHt0eXBlOiAnZSd9XSlcbiAgICAgICAgLmVudGVyKClcbiAgICAgICAgLmFwcGVuZCgncGF0aCcpXG4gICAgICAgIC5hdHRyKCdjbGFzcycsICdoYW5kbGUtLWN1c3RvbScpXG4gICAgICAgIC5hdHRyKCdkaXNwbGF5JywgaXNSYW5nZWQgPyBudWxsIDogJ25vbmUnKVxuICAgICAgICAuYXR0cignZmlsbCcsIHRoZW1lID8gdGhlbWUuc2xpZGVySGFuZGxlQ29sb3IgOiAnI0QzRDhFMCcpXG4gICAgICAgIC5hdHRyKCdjdXJzb3InLCAnZXctcmVzaXplJylcbiAgICAgICAgLmF0dHIoJ2QnLCBicnVzaFJlc2l6ZVBhdGgpXG4gICAgICAgIC5vbignbW91c2VvdmVyJywgKCkgPT4ge1xuICAgICAgICAgIGlmIChvbk1vdXNlb3ZlckhhbmRsZSkgb25Nb3VzZW92ZXJIYW5kbGUoKTtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdtb3VzZW91dCcsICgpID0+IHtcbiAgICAgICAgICBpZiAob25Nb3VzZW91dEhhbmRsZSkgb25Nb3VzZW91dEhhbmRsZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgY29uc3Qge1xuICAgICAgICB2YWx1ZTogW3ZhbDAsIHZhbDFdXG4gICAgICB9ID0gdGhpcy5wcm9wcztcbiAgICAgIHRoaXMubW92aW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuX21vdmUodmFsMCwgdmFsMSk7XG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgICAgY29uc3Qge1xuICAgICAgICB2YWx1ZTogW3ZhbDAsIHZhbDFdLFxuICAgICAgICB3aWR0aFxuICAgICAgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBbcHJldlZhbDAsIHByZXZWYWwxXSA9IHByZXZQcm9wcy52YWx1ZTtcblxuICAgICAgaWYgKFxuICAgICAgICBwcmV2UHJvcHMud2lkdGggIT09IHdpZHRoIHx8XG4gICAgICAgIHByZXZQcm9wcy5yYW5nZVswXSAhPT0gdGhpcy5wcm9wcy5yYW5nZVswXSB8fFxuICAgICAgICBwcmV2UHJvcHMucmFuZ2VbMV0gIT09IHRoaXMucHJvcHMucmFuZ2VbMV1cbiAgICAgICkge1xuICAgICAgICAvLyBkaW1lbnNpb24gY2hhbmdlIHNob3VsZCBub3QgdHJpZ2dlciB0aGlzLl9icnVzaGVkXG4gICAgICAgIHRoaXMubW92aW5nID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMuYnJ1c2gpIHRoaXMucm9vdD8uY2FsbCh0aGlzLmJydXNoKTtcbiAgICAgICAgdGhpcy5fbW92ZSh2YWwwLCB2YWwxKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLmJydXNoaW5nICYmICF0aGlzLm1vdmluZykge1xuICAgICAgICBpZiAocHJldlZhbDAgIT09IHZhbDAgfHwgcHJldlZhbDEgIT09IHZhbDEpIHtcbiAgICAgICAgICB0aGlzLm1vdmluZyA9IHRydWU7XG4gICAgICAgICAgdGhpcy5fbW92ZSh2YWwwLCB2YWwxKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMucHJvcHMuaXNSYW5nZWQgJiYgdGhpcy5oYW5kbGUpIHtcbiAgICAgICAgdGhpcy5oYW5kbGUuYXR0cignZGlzcGxheScsICdub25lJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgX2NsaWNrKHNlbGVjdGlvbikge1xuICAgICAgLy8gZmFrZSBicnVzaFxuICAgICAgdGhpcy5icnVzaGluZyA9IHRydWU7XG4gICAgICB0aGlzLl9icnVzaGVkKHtzb3VyY2VFdmVudDoge30sIHNlbGVjdGlvbn0pO1xuICAgIH1cblxuICAgIF9tb3ZlKHZhbDAgPSAwLCB2YWwxID0gMCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICByYW5nZTogW21pbiwgbWF4XSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGlzUmFuZ2VkXG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKHdpZHRoICYmIG1heCAtIG1pbiAmJiB0aGlzLmJydXNoICYmIHRoaXMuaGFuZGxlKSB7XG4gICAgICAgIGNvbnN0IHNjYWxlID0gKHg6IG51bWJlcikgPT4gKCh4IC0gbWluKSAqIHdpZHRoKSAvIChtYXggLSBtaW4pO1xuICAgICAgICBpZiAoIWlzUmFuZ2VkKSB7XG4gICAgICAgICAgLy8gb25seSBkcmF3IGEgMSBwaXhlbCBsaW5lXG4gICAgICAgICAgaWYgKHRoaXMucm9vdCkgdGhpcy5icnVzaC5tb3ZlKHRoaXMucm9vdCwgW3NjYWxlKHZhbDApLCBzY2FsZSh2YWwwKSArIDFdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodGhpcy5yb290KSB0aGlzLmJydXNoLm1vdmUodGhpcy5yb290LCBbc2NhbGUodmFsMCksIHNjYWxlKHZhbDEpXSk7XG5cbiAgICAgICAgICB0aGlzLmhhbmRsZVxuICAgICAgICAgICAgLmF0dHIoJ2Rpc3BsYXknLCBudWxsKVxuICAgICAgICAgICAgLmF0dHIoJ3RyYW5zZm9ybScsIChkLCBpKSA9PiBgdHJhbnNsYXRlKCR7W2kgPT09IDAgPyBzY2FsZSh2YWwwKSA6IHNjYWxlKHZhbDEpLCAwXX0pYCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBfYnJ1c2hlZCA9IChldnQ6IHtzb3VyY2VFdmVudDogYW55OyBzZWxlY3Rpb246IG51bWJlcltdfSkgPT4ge1xuICAgICAgLy8gSWdub3JlIGJydXNoIGV2ZW50cyB3aGljaCBkb24ndCBoYXZlIGFuIHVuZGVybHlpbmcgc291cmNlRXZlbnRcbiAgICAgIGlmICghZXZ0LnNvdXJjZUV2ZW50KSByZXR1cm47XG4gICAgICBjb25zdCBbc2VsMCwgc2VsMV0gPSBldnQuc2VsZWN0aW9uO1xuICAgICAgY29uc3QgcmlnaHQgPSBtb3ZlUmlnaHQodGhpcy5fc3RhcnRTZWwsIGV2dC5zZWxlY3Rpb24pO1xuXG4gICAgICBjb25zdCB7XG4gICAgICAgIHJhbmdlOiBbbWluLCBtYXhdLFxuICAgICAgICBzdGVwID0gMCxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIG1hcmtzLFxuICAgICAgICBpc1JhbmdlZFxuICAgICAgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBpbnZlcnQgPSAoeDogbnVtYmVyKSA9PiAoeCAqIChtYXggLSBtaW4pKSAvIHdpZHRoICsgbWluO1xuICAgICAgbGV0IGQwID0gaW52ZXJ0KHNlbDApO1xuICAgICAgbGV0IGQxID0gaW52ZXJ0KHNlbDEpO1xuICAgICAgLy8gdGhpcyBtYWtlcyBzdXJlIGlmIHBvaW50cyBhcmUgcmlnaHQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZG9tYWlucyBhcmUgZGlzcGxheWVkIGNvcnJlY3RseVxuICAgICAgLy8gdGhlIHByb2JsZW0gaGVyZSBpcyBiaXNlY3RMZWZ0eFxuICAgICAgZDAgPSBkMCA9PT0gbWluID8gZDAgOiBub3JtYWxpemVTbGlkZXJWYWx1ZShkMCwgbWluLCBzdGVwLCBtYXJrcyk7XG4gICAgICBkMSA9IG5vcm1hbGl6ZVNsaWRlclZhbHVlKGQxLCBtaW4sIHN0ZXAsIG1hcmtzKTtcblxuICAgICAgaWYgKGlzUmFuZ2VkKSB0aGlzLl9tb3ZlKGQwLCBkMSk7XG4gICAgICBlbHNlIHRoaXMuX21vdmUoLi4uKHJpZ2h0ID8gW2QxLCBkMV0gOiBbZDAsIGQwXSkpO1xuXG4gICAgICBpZiAoaXNSYW5nZWQpIHRoaXMuX29uQnJ1c2goZDAsIGQxKTtcbiAgICAgIGVsc2UgdGhpcy5fb25CcnVzaChyaWdodCA/IGQxIDogZDApO1xuICAgIH07XG5cbiAgICBfb25CcnVzaCh2YWwwID0gMCwgdmFsMSA9IDApIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaXNSYW5nZWQsXG4gICAgICAgIHZhbHVlOiBbY3VycmVudFZhbDAsIGN1cnJlbnRWYWwxXVxuICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChjdXJyZW50VmFsMCA9PT0gdmFsMCAmJiBjdXJyZW50VmFsMSA9PT0gdmFsMSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChpc1JhbmdlZCkge1xuICAgICAgICB0aGlzLnByb3BzLm9uQnJ1c2godmFsMCwgdmFsMSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnByb3BzLm9uQnJ1c2godmFsMCwgdmFsMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge2lzUmFuZ2VkfSA9IHRoaXMucHJvcHM7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkRyBjbGFzc05hbWU9XCJrZy1yYW5nZS1zbGlkZXJfX2JydXNoXCIgJGlzUmFuZ2VkPXtpc1JhbmdlZH0gcmVmPXt0aGlzLnJvb3RDb250YWluZXJ9IC8+XG4gICAgICApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gd2l0aFRoZW1lKFJhbmdlQnJ1c2gpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBSYW5nZUJydXNoRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBRix1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsWUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsUUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQXNELElBQUFLLGVBQUEsRUFQdEQ7QUFDQTtBQUFBLFNBQUFDLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBUix3QkFBQVEsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FB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
|