@carto/kepler.gl 0.0.65-alpha.labels.7 → 0.0.65-alpha.labels.9
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/components/side-panel/layer-panel/text-label-panel.js +67 -81
- package/dist/constants/default-settings.js +1 -1
- package/dist/deckgl-layers/point-label-layer/point-label-layer.js +4 -3
- package/dist/layers/point-layer/point-layer.js +2 -1
- package/dist/reducers/vis-state-updaters.js +15 -7
- package/package.json +1 -1
- package/src/components/side-panel/layer-panel/.layer-config-group.js.swp +0 -0
- package/src/components/side-panel/layer-panel/.text-label-panel.js.swp +0 -0
- package/src/components/side-panel/layer-panel/text-label-panel.js +0 -10
- package/src/deckgl-layers/point-label-layer/point-label-layer.js +3 -2
- package/src/layers/point-layer/point-layer.js +1 -0
- package/src/reducers/vis-state-updaters.js +11 -8
- package/src/deckgl-layers/point-label-layer/.point-label-layer.js.swp +0 -0
|
@@ -76,91 +76,77 @@ function TextLabelPanelFactory(RangeSlider, LayerConfigGroup, FieldSelector, Col
|
|
|
76
76
|
}).filter(function (d) {
|
|
77
77
|
return d;
|
|
78
78
|
});
|
|
79
|
-
return (
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
79
|
+
return /*#__PURE__*/_react["default"].createElement(LayerConfigGroup, {
|
|
80
|
+
label: 'panel.text.label',
|
|
81
|
+
collapsible: true
|
|
82
|
+
}, /*#__PURE__*/_react["default"].createElement(_layerConfigGroup.ConfigGroupCollapsibleHeader, null, /*#__PURE__*/_react["default"].createElement(FieldSelector, {
|
|
83
|
+
fields: fields,
|
|
84
|
+
value: currentFields,
|
|
85
|
+
onSelect: function onSelect(selected) {
|
|
86
|
+
return updateLayerTextLabel('all', 'fields', selected);
|
|
87
|
+
},
|
|
88
|
+
multiSelect: true
|
|
89
|
+
})), /*#__PURE__*/_react["default"].createElement(_layerConfigGroup.ConfigGroupCollapsibleContent, null, textLabel.map(function (tl, idx) {
|
|
90
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
91
|
+
key: "".concat(tl.field ? tl.field.name : 'null', "-").concat(idx),
|
|
92
|
+
className: "side-panel-section-group"
|
|
93
|
+
}, /*#__PURE__*/_react["default"].createElement(_styledComponents.PanelLabel, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
94
|
+
id: "panel.text.".concat(idx === 0 ? 'main' : 'secondary', "Label")
|
|
95
|
+
})), /*#__PURE__*/_react["default"].createElement(_styledComponents.SidePanelSection, null, /*#__PURE__*/_react["default"].createElement(FieldSelector, {
|
|
96
96
|
fields: fields,
|
|
97
|
-
value:
|
|
98
|
-
|
|
99
|
-
|
|
97
|
+
value: tl.field && tl.field.name || 'placeholder.selectField',
|
|
98
|
+
placeholder: 'placeholder.empty',
|
|
99
|
+
onSelect: function onSelect(v) {
|
|
100
|
+
return updateLayerTextLabel(idx, 'field', v);
|
|
100
101
|
},
|
|
101
|
-
|
|
102
|
-
})), /*#__PURE__*/_react["default"].createElement(
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
id: "panel.text.fontSize"
|
|
118
|
-
})), /*#__PURE__*/_react["default"].createElement(RangeSlider, (0, _extends2["default"])({}, _layerFactory.LAYER_TEXT_CONFIGS.fontSize, {
|
|
119
|
-
value1: tl.size,
|
|
120
|
-
isRange: false,
|
|
121
|
-
onChange: function onChange(v) {
|
|
122
|
-
return updateLayerTextLabel(idx, 'size', v[1]);
|
|
123
|
-
}
|
|
124
|
-
}))), /*#__PURE__*/_react["default"].createElement(_styledComponents.SidePanelSection, null, /*#__PURE__*/_react["default"].createElement(_styledComponents.PanelLabel, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
125
|
-
id: "panel.text.fontColor"
|
|
126
|
-
})), /*#__PURE__*/_react["default"].createElement(ColorSelector, {
|
|
127
|
-
colorSets: [{
|
|
128
|
-
selectedColor: tl.color,
|
|
129
|
-
setColor: function setColor(v) {
|
|
130
|
-
return updateLayerTextLabel(idx, 'color', v);
|
|
131
|
-
}
|
|
132
|
-
}]
|
|
133
|
-
})), /*#__PURE__*/_react["default"].createElement(_styledComponents.SidePanelSection, null, /*#__PURE__*/_react["default"].createElement(_styledComponents.PanelLabel, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
134
|
-
id: "panel.text.outlineColor"
|
|
135
|
-
})), /*#__PURE__*/_react["default"].createElement(ColorSelector, {
|
|
136
|
-
colorSets: [{
|
|
137
|
-
selectedColor: tl.outlineColor,
|
|
138
|
-
setColor: function setColor(v) {
|
|
139
|
-
return updateLayerTextLabel(idx, 'outlineColor', v);
|
|
140
|
-
}
|
|
141
|
-
}]
|
|
142
|
-
})), idx === 0 && /*#__PURE__*/_react["default"].createElement(_styledComponents.SidePanelSection, null, /*#__PURE__*/_react["default"].createElement(_styledComponents.SpaceBetweenFlexbox, null, /*#__PURE__*/_react["default"].createElement(_styledComponents.SBFlexboxItem, null, /*#__PURE__*/_react["default"].createElement(_styledComponents.PanelLabel, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
143
|
-
id: "panel.text.textAnchor"
|
|
144
|
-
})), /*#__PURE__*/_react["default"].createElement(_itemSelector["default"], (0, _extends2["default"])({}, _layerFactory.LAYER_TEXT_CONFIGS.textAnchor, {
|
|
145
|
-
selectedItems: tl.anchor,
|
|
146
|
-
onChange: function onChange(val) {
|
|
147
|
-
return updateLayerTextLabel(idx, 'anchor', val);
|
|
102
|
+
erasable: true
|
|
103
|
+
})), /*#__PURE__*/_react["default"].createElement(_styledComponents.SidePanelSection, null, /*#__PURE__*/_react["default"].createElement(_styledComponents.PanelLabel, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
104
|
+
id: "panel.text.fontSize"
|
|
105
|
+
})), /*#__PURE__*/_react["default"].createElement(RangeSlider, (0, _extends2["default"])({}, _layerFactory.LAYER_TEXT_CONFIGS.fontSize, {
|
|
106
|
+
value1: tl.size,
|
|
107
|
+
isRange: false,
|
|
108
|
+
onChange: function onChange(v) {
|
|
109
|
+
return updateLayerTextLabel(idx, 'size', v[1]);
|
|
110
|
+
}
|
|
111
|
+
}))), /*#__PURE__*/_react["default"].createElement(_styledComponents.SidePanelSection, null, /*#__PURE__*/_react["default"].createElement(_styledComponents.PanelLabel, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
112
|
+
id: "panel.text.fontColor"
|
|
113
|
+
})), /*#__PURE__*/_react["default"].createElement(ColorSelector, {
|
|
114
|
+
colorSets: [{
|
|
115
|
+
selectedColor: tl.color,
|
|
116
|
+
setColor: function setColor(v) {
|
|
117
|
+
return updateLayerTextLabel(idx, 'color', v);
|
|
148
118
|
}
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
119
|
+
}]
|
|
120
|
+
})), /*#__PURE__*/_react["default"].createElement(_styledComponents.SidePanelSection, null, /*#__PURE__*/_react["default"].createElement(_styledComponents.PanelLabel, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
121
|
+
id: "panel.text.outlineColor"
|
|
122
|
+
})), /*#__PURE__*/_react["default"].createElement(ColorSelector, {
|
|
123
|
+
colorSets: [{
|
|
124
|
+
selectedColor: tl.outlineColor,
|
|
125
|
+
setColor: function setColor(v) {
|
|
126
|
+
return updateLayerTextLabel(idx, 'outlineColor', v);
|
|
155
127
|
}
|
|
156
|
-
}
|
|
157
|
-
}), /*#__PURE__*/_react["default"].createElement(_styledComponents.SidePanelSection, null, /*#__PURE__*/_react["default"].createElement(
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
128
|
+
}]
|
|
129
|
+
})), idx === 0 && /*#__PURE__*/_react["default"].createElement(_styledComponents.SidePanelSection, null, /*#__PURE__*/_react["default"].createElement(_styledComponents.SpaceBetweenFlexbox, null, /*#__PURE__*/_react["default"].createElement(_styledComponents.SBFlexboxItem, null, /*#__PURE__*/_react["default"].createElement(_styledComponents.PanelLabel, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
130
|
+
id: "panel.text.textAnchor"
|
|
131
|
+
})), /*#__PURE__*/_react["default"].createElement(_itemSelector["default"], (0, _extends2["default"])({}, _layerFactory.LAYER_TEXT_CONFIGS.textAnchor, {
|
|
132
|
+
selectedItems: tl.anchor,
|
|
133
|
+
onChange: function onChange(val) {
|
|
134
|
+
return updateLayerTextLabel(idx, 'anchor', val);
|
|
135
|
+
}
|
|
136
|
+
}))), /*#__PURE__*/_react["default"].createElement(_styledComponents.SBFlexboxItem, null, /*#__PURE__*/_react["default"].createElement(_styledComponents.PanelLabel, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
137
|
+
id: "panel.text.alignment"
|
|
138
|
+
})), /*#__PURE__*/_react["default"].createElement(_itemSelector["default"], (0, _extends2["default"])({}, _layerFactory.LAYER_TEXT_CONFIGS.textAlignment, {
|
|
139
|
+
selectedItems: tl.alignment,
|
|
140
|
+
onChange: function onChange(val) {
|
|
141
|
+
return updateLayerTextLabel(idx, 'alignment', val);
|
|
161
142
|
}
|
|
162
|
-
}))))
|
|
163
|
-
)
|
|
143
|
+
}))))));
|
|
144
|
+
}), /*#__PURE__*/_react["default"].createElement(_styledComponents.SidePanelSection, null, /*#__PURE__*/_react["default"].createElement(AddButton, {
|
|
145
|
+
disabled: textLabel.length >= 2,
|
|
146
|
+
onClick: function onClick(val) {
|
|
147
|
+
return updateLayerTextLabel(textLabel.length);
|
|
148
|
+
}
|
|
149
|
+
}))));
|
|
164
150
|
}
|
|
165
151
|
}]);
|
|
166
152
|
return TextLabelPanel;
|
|
@@ -187,4 +173,4 @@ function TextLabelPanelFactory(RangeSlider, LayerConfigGroup, FieldSelector, Col
|
|
|
187
173
|
|
|
188
174
|
var _default = TextLabelPanelFactory;
|
|
189
175
|
exports["default"] = _default;
|
|
190
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvdGV4dC1sYWJlbC1wYW5lbC5qcyJdLCJuYW1lcyI6WyJUZXh0TGFiZWxQYW5lbEZhY3RvcnkiLCJkZXBzIiwiUmFuZ2VTbGlkZXJGYWN0b3J5IiwiTGF5ZXJDb25maWdHcm91cEZhY3RvcnkiLCJGaWVsZFNlbGVjdG9yRmFjdG9yeSIsIkNvbG9yU2VsZWN0b3JGYWN0b3J5IiwiUmFuZ2VTbGlkZXIiLCJMYXllckNvbmZpZ0dyb3VwIiwiRmllbGRTZWxlY3RvciIsIkNvbG9yU2VsZWN0b3IiLCJUZXh0TGFiZWxQYW5lbCIsInByb3BzIiwibGF5ZXIiLCJ1cGRhdGVMYXllclRleHRMYWJlbCIsInRleHRMYWJlbCIsImZpZWxkcyIsIkFkZEJ1dHRvbiIsImN1cnJlbnRGaWVsZHMiLCJtYXAiLCJ0bCIsImZpZWxkIiwibmFtZSIsImZpbHRlciIsImQiLCJzZWxlY3RlZCIsImlkeCIsInYiLCJMQVlFUl9URVhUX0NPTkZJR1MiLCJmb250U2l6ZSIsInNpemUiLCJzZWxlY3RlZENvbG9yIiwiY29sb3IiLCJzZXRDb2xvciIsIm91dGxpbmVDb2xvciIsInRleHRBbmNob3IiLCJhbmNob3IiLCJ2YWwiLCJ0ZXh0QWxpZ25tZW50IiwiYWxpZ25tZW50IiwibGVuZ3RoIiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwiYXJyYXlPZiIsIm9iamVjdCIsImZ1bmMiLCJpc1JlcXVpcmVkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUVBOztBQU9BOztBQUNBOztBQUNBOztBQUlBOztBQUVBOztBQUNBOztBQUNBOzs7Ozs7QUFFQUEscUJBQXFCLENBQUNDLElBQXRCLEdBQTZCLENBQzNCQyx1QkFEMkIsRUFFM0JDLDRCQUYyQixFQUczQkMseUJBSDJCLEVBSTNCQyx5QkFKMkIsQ0FBN0I7O0FBTUEsU0FBU0wscUJBQVQsQ0FB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QUFLLFFBQUEsTUFBTSxFQUFDO0FBQVosUUFERixlQUVFLGdDQUFDLDhCQUFEO0FBQWtCLFFBQUEsRUFBRSxFQUFDO0FBQXJCLFFBRkYsQ0FEYztBQUFBO0FBREksR0FSa0U7QUF3STFGLFNBQU9ELGNBQVA7QUFDRDs7ZUFFY1YscUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ2xvY2FsaXphdGlvbic7XG5cbmltcG9ydCB7XG4gIEJ1dHRvbixcbiAgUGFuZWxMYWJlbCxcbiAgU0JGbGV4Ym94SXRlbSxcbiAgU2lkZVBhbmVsU2VjdGlvbixcbiAgU3BhY2VCZXR3ZWVuRmxleGJveFxufSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0FkZH0gZnJvbSAnY29tcG9uZW50cy9jb21tb24vaWNvbnMnO1xuaW1wb3J0IEl0ZW1TZWxlY3RvciBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2l0ZW0tc2VsZWN0b3InO1xuaW1wb3J0IExheWVyQ29uZmlnR3JvdXBGYWN0b3J5LCB7XG4gIENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50LFxuICBDb25maWdHcm91cENvbGxhcHNpYmxlSGVhZGVyXG59IGZyb20gJy4vbGF5ZXItY29uZmlnLWdyb3VwJztcbmltcG9ydCBSYW5nZVNsaWRlckZhY3RvcnkgZnJvbSAnY29tcG9uZW50cy9jb21tb24vcmFuZ2Utc2xpZGVyJztcblxuaW1wb3J0IHtMQVlFUl9URVhUX0NPTkZJR1N9IGZyb20gJ2xheWVycy9sYXllci1mYWN0b3J5JztcbmltcG9ydCBGaWVsZFNlbGVjdG9yRmFjdG9yeSBmcm9tICcuLi8uLi9jb21tb24vZmllbGQtc2VsZWN0b3InO1xuaW1wb3J0IENvbG9yU2VsZWN0b3JGYWN0b3J5IGZyb20gJy4vY29sb3Itc2VsZWN0b3InO1xuXG5UZXh0TGFiZWxQYW5lbEZhY3RvcnkuZGVwcyA9IFtcbiAgUmFuZ2VTbGlkZXJGYWN0b3J5LFxuICBMYXllckNvbmZpZ0dyb3VwRmFjdG9yeSxcbiAgRmllbGRTZWxlY3RvckZhY3RvcnksXG4gIENvbG9yU2VsZWN0b3JGYWN0b3J5XG5dO1xuZnVuY3Rpb24gVGV4dExhYmVsUGFuZWxGYWN0b3J5KFJhbmdlU2xpZGVyLCBMYXllckNvbmZpZ0dyb3VwLCBGaWVsZFNlbGVjdG9yLCBDb2xvclNlbGVjdG9yKSB7XG4gIGNsYXNzIFRleHRMYWJlbFBhbmVsIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgZmllbGRzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMub2JqZWN0KSxcbiAgICAgIHRleHRMYWJlbDogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLm9iamVjdCksXG4gICAgICB1cGRhdGVMYXllclRleHRMYWJlbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZFxuICAgIH07XG5cbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgQWRkQnV0dG9uOiBwcm9wcyA9PiAoXG4gICAgICAgIDxCdXR0b24gey4uLnByb3BzfSBsaW5rPlxuICAgICAgICAgIDxBZGQgaGVpZ2h0PVwiMTJweFwiIC8+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJwYW5lbC50ZXh0LmFkZE1vcmVMYWJlbFwiIC8+XG4gICAgICAgIDwvQnV0dG9uPlxuICAgICAgKVxuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7bGF5ZXIsIHVwZGF0ZUxheWVyVGV4dExhYmVsLCB0ZXh0TGFiZWwsIGZpZWxkcywgQWRkQnV0dG9ufSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBjdXJyZW50RmllbGRzID0gdGV4dExhYmVsLm1hcCh0bCA9PiB0bC5maWVsZCAmJiB0bC5maWVsZC5uYW1lKS5maWx0ZXIoZCA9PiBkKTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgLy8gU3dpdGNoIG9ubHkgd29ya3Mgd2l0aCBncm91cC9wcm9wZXJ0eSBzZXQgdG8gY3VzdG9tTWFya2Vycz8/P1xuICAgICAgICAvKiA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgIHR5cGU9XCJib29sZWFuXCJcbiAgICAgICAgICBkaXNhYmxlZD17dW5kZWZpbmVkfVxuICAgICAgICAgIGxheWVyPXtsYXllcn1cbiAgICAgICAgICBncm91cD1cImxhYmVsc1wiXG4gICAgICAgICAgcHJvcGVydHk9XCJsYWJlbHNFbmFibGVkXCJcbiAgICAgICAgICBsYWJlbD1cInBhbmVsLnRleHQubGFiZWxcIlxuICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgID4qL1xuICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J3BhbmVsLnRleHQubGFiZWwnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUhlYWRlcj5cbiAgICAgICAgICAgIDxGaWVsZFNlbGVjdG9yXG4gICAgICAgICAgICAgIGZpZWxkcz17ZmllbGRzfVxuICAgICAgICAgICAgICB2YWx1ZT17Y3VycmVudEZpZWxkc31cbiAgICAgICAgICAgICAgb25TZWxlY3Q9e3NlbGVjdGVkID0+IHVwZGF0ZUxheWVyVGV4dExhYmVsKCdhbGwnLCAnZmllbGRzJywgc2VsZWN0ZWQpfVxuICAgICAgICAgICAgICBtdWx0aVNlbGVjdFxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVIZWFkZXI+XG4gICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAge3RleHRMYWJlbC5tYXAoKHRsLCBpZHgpID0+IChcbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGtleT17YCR7dGwuZmllbGQgPyB0bC5maWVsZC5uYW1lIDogJ251bGwnfS0ke2lkeH1gfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNpZGUtcGFuZWwtc2VjdGlvbi1ncm91cFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXtgcGFuZWwudGV4dC4ke2lkeCA9PT0gMCA/ICdtYWluJyA6ICdzZWNvbmRhcnknfUxhYmVsYH0gLz5cbiAgICAgICAgICAgICAgICA8L1BhbmVsTGFiZWw+XG4gICAgICAgICAgICAgICAgPFNpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAgICAgICAgICA8RmllbGRTZWxlY3RvclxuICAgICAgICAgICAgICAgICAgICBmaWVsZHM9e2ZpZWxkc31cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9eyh0bC5maWVsZCAmJiB0bC5maWVsZC5uYW1lKSB8fCAncGxhY2Vob2xkZXIuc2VsZWN0RmllbGQnfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17J3BsYWNlaG9sZGVyLmVtcHR5J31cbiAgICAgICAgICAgICAgICAgICAgb25TZWxlY3Q9e3YgPT4gdXBkYXRlTGF5ZXJUZXh0TGFiZWwoaWR4LCAnZmllbGQnLCB2KX1cbiAgICAgICAgICAgICAgICAgICAgZXJhc2FibGVcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgICAgICAgIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgPFBhbmVsTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPVwicGFuZWwudGV4dC5mb250U2l6ZVwiIC8+XG4gICAgICAgICAgICAgICAgICA8L1BhbmVsTGFiZWw+XG4gICAgICAgICAgICAgICAgICA8UmFuZ2VTbGlkZXJcbiAgICAgICAgICAgICAgICAgICAgey4uLkxBWUVSX1RFWFRfQ09ORklHUy5mb250U2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWUxPXt0bC5zaXplfVxuICAgICAgICAgICAgICAgICAgICBpc1JhbmdlPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e3YgPT4gdXBkYXRlTGF5ZXJUZXh0TGFiZWwoaWR4LCAnc2l6ZScsIHZbMV0pfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAgICAgICAgPFNpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAgICAgICAgICA8UGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJwYW5lbC50ZXh0LmZvbnRDb2xvclwiIC8+XG4gICAgICAgICAgICAgICAgICA8L1BhbmVsTGFiZWw+XG4gICAgICAgICAgICAgICAgICA8Q29sb3JTZWxlY3RvclxuICAgICAgICAgICAgICAgICAgICBjb2xvclNldHM9e1tcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZENvbG9yOiB0bC5jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbG9yOiB2ID0+IHVwZGF0ZUxheWVyVGV4dExhYmVsKGlkeCwgJ2NvbG9yJywgdilcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF19XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvU2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICAgICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgIDxQYW5lbExhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cInBhbmVsLnRleHQub3V0bGluZUNvbG9yXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxDb2xvclNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yU2V0cz17W1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkQ29sb3I6IHRsLm91dGxpbmVDb2xvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbG9yOiB2ID0+IHVwZGF0ZUxheWVyVGV4dExhYmVsKGlkeCwgJ291dGxpbmVDb2xvcicsIHYpXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAgICAgICAge2lkeCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPFNwYWNlQmV0d2VlbkZsZXhib3g+XG4gICAgICAgICAgICAgICAgICAgICAgPFNCRmxleGJveEl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJwYW5lbC50ZXh0LnRleHRBbmNob3JcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QYW5lbExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW1TZWxlY3RvclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uTEFZRVJfVEVYVF9DT05GSUdTLnRleHRBbmNob3J9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbXM9e3RsLmFuY2hvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e3ZhbCA9PiB1cGRhdGVMYXllclRleHRMYWJlbChpZHgsICdhbmNob3InLCB2YWwpfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L1NCRmxleGJveEl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgPFNCRmxleGJveEl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJwYW5lbC50ZXh0LmFsaWdubWVudFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1BhbmVsTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8SXRlbVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5MQVlFUl9URVhUX0NPTkZJR1MudGV4dEFsaWdubWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcz17dGwuYWxpZ25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17dmFsID0+IHVwZGF0ZUxheWVyVGV4dExhYmVsKGlkeCwgJ2FsaWdubWVudCcsIHZhbCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvU0JGbGV4Ym94SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgPC9TcGFjZUJldHdlZW5GbGV4Ym94PlxuICAgICAgICAgICAgICAgICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICAgICAgPEFkZEJ1dHRvblxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXt0ZXh0TGFiZWwubGVuZ3RoID49IDJ9XG4gICAgICAgICAgICAgICAgb25DbGljaz17dmFsID0+IHVwZGF0ZUxheWVyVGV4dExhYmVsKHRleHRMYWJlbC5sZW5ndGgpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFRleHRMYWJlbFBhbmVsO1xufVxuXG5leHBvcnQgZGVmYXVsdCBUZXh0TGFiZWxQYW5lbEZhY3Rvcnk7XG4iXX0=
|
|
176
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvdGV4dC1sYWJlbC1wYW5lbC5qcyJdLCJuYW1lcyI6WyJUZXh0TGFiZWxQYW5lbEZhY3RvcnkiLCJkZXBzIiwiUmFuZ2VTbGlkZXJGYWN0b3J5IiwiTGF5ZXJDb25maWdHcm91cEZhY3RvcnkiLCJGaWVsZFNlbGVjdG9yRmFjdG9yeSIsIkNvbG9yU2VsZWN0b3JGYWN0b3J5IiwiUmFuZ2VTbGlkZXIiLCJMYXllckNvbmZpZ0dyb3VwIiwiRmllbGRTZWxlY3RvciIsIkNvbG9yU2VsZWN0b3IiLCJUZXh0TGFiZWxQYW5lbCIsInByb3BzIiwibGF5ZXIiLCJ1cGRhdGVMYXllclRleHRMYWJlbCIsInRleHRMYWJlbCIsImZpZWxkcyIsIkFkZEJ1dHRvbiIsImN1cnJlbnRGaWVsZHMiLCJtYXAiLCJ0bCIsImZpZWxkIiwibmFtZSIsImZpbHRlciIsImQiLCJzZWxlY3RlZCIsImlkeCIsInYiLCJMQVlFUl9URVhUX0NPTkZJR1MiLCJmb250U2l6ZSIsInNpemUiLCJzZWxlY3RlZENvbG9yIiwiY29sb3IiLCJzZXRDb2xvciIsIm91dGxpbmVDb2xvciIsInRleHRBbmNob3IiLCJhbmNob3IiLCJ2YWwiLCJ0ZXh0QWxpZ25tZW50IiwiYWxpZ25tZW50IiwibGVuZ3RoIiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwiYXJyYXlPZiIsIm9iamVjdCIsImZ1bmMiLCJpc1JlcXVpcmVkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUVBOztBQU9BOztBQUNBOztBQUNBOztBQUlBOztBQUVBOztBQUNBOztBQUNBOzs7Ozs7QUFFQUEscUJBQXFCLENBQUNDLElBQXRCLEdBQTZCLENBQzNCQyx1QkFEMkIsRUFFM0JDLDRCQUYyQixFQUczQkMseUJBSDJCLEVBSTNCQyx5QkFKMkIsQ0FBN0I7O0FBTUEsU0FBU0wscUJBQVQsQ0FB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QUUsRUFBQztBQUFyQixRQUZGLENBRGM7QUFBQTtBQURJLEdBUmtFO0FBOEgxRixTQUFPRCxjQUFQO0FBQ0Q7O2VBRWNWLHFCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdsb2NhbGl6YXRpb24nO1xuXG5pbXBvcnQge1xuICBCdXR0b24sXG4gIFBhbmVsTGFiZWwsXG4gIFNCRmxleGJveEl0ZW0sXG4gIFNpZGVQYW5lbFNlY3Rpb24sXG4gIFNwYWNlQmV0d2VlbkZsZXhib3hcbn0gZnJvbSAnY29tcG9uZW50cy9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtBZGR9IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2ljb25zJztcbmltcG9ydCBJdGVtU2VsZWN0b3IgZnJvbSAnY29tcG9uZW50cy9jb21tb24vaXRlbS1zZWxlY3Rvci9pdGVtLXNlbGVjdG9yJztcbmltcG9ydCBMYXllckNvbmZpZ0dyb3VwRmFjdG9yeSwge1xuICBDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudCxcbiAgQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUhlYWRlclxufSBmcm9tICcuL2xheWVyLWNvbmZpZy1ncm91cCc7XG5pbXBvcnQgUmFuZ2VTbGlkZXJGYWN0b3J5IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL3JhbmdlLXNsaWRlcic7XG5cbmltcG9ydCB7TEFZRVJfVEVYVF9DT05GSUdTfSBmcm9tICdsYXllcnMvbGF5ZXItZmFjdG9yeSc7XG5pbXBvcnQgRmllbGRTZWxlY3RvckZhY3RvcnkgZnJvbSAnLi4vLi4vY29tbW9uL2ZpZWxkLXNlbGVjdG9yJztcbmltcG9ydCBDb2xvclNlbGVjdG9yRmFjdG9yeSBmcm9tICcuL2NvbG9yLXNlbGVjdG9yJztcblxuVGV4dExhYmVsUGFuZWxGYWN0b3J5LmRlcHMgPSBbXG4gIFJhbmdlU2xpZGVyRmFjdG9yeSxcbiAgTGF5ZXJDb25maWdHcm91cEZhY3RvcnksXG4gIEZpZWxkU2VsZWN0b3JGYWN0b3J5LFxuICBDb2xvclNlbGVjdG9yRmFjdG9yeVxuXTtcbmZ1bmN0aW9uIFRleHRMYWJlbFBhbmVsRmFjdG9yeShSYW5nZVNsaWRlciwgTGF5ZXJDb25maWdHcm91cCwgRmllbGRTZWxlY3RvciwgQ29sb3JTZWxlY3Rvcikge1xuICBjbGFzcyBUZXh0TGFiZWxQYW5lbCBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgIGZpZWxkczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLm9iamVjdCksXG4gICAgICB0ZXh0TGFiZWw6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5vYmplY3QpLFxuICAgICAgdXBkYXRlTGF5ZXJUZXh0TGFiZWw6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIEFkZEJ1dHRvbjogcHJvcHMgPT4gKFxuICAgICAgICA8QnV0dG9uIHsuLi5wcm9wc30gbGluaz5cbiAgICAgICAgICA8QWRkIGhlaWdodD1cIjEycHhcIiAvPlxuICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPVwicGFuZWwudGV4dC5hZGRNb3JlTGFiZWxcIiAvPlxuICAgICAgICA8L0J1dHRvbj5cbiAgICAgIClcbiAgICB9O1xuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge2xheWVyLCB1cGRhdGVMYXllclRleHRMYWJlbCwgdGV4dExhYmVsLCBmaWVsZHMsIEFkZEJ1dHRvbn0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgY3VycmVudEZpZWxkcyA9IHRleHRMYWJlbC5tYXAodGwgPT4gdGwuZmllbGQgJiYgdGwuZmllbGQubmFtZSkuZmlsdGVyKGQgPT4gZCk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsncGFuZWwudGV4dC5sYWJlbCd9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlSGVhZGVyPlxuICAgICAgICAgICAgPEZpZWxkU2VsZWN0b3JcbiAgICAgICAgICAgICAgZmllbGRzPXtmaWVsZHN9XG4gICAgICAgICAgICAgIHZhbHVlPXtjdXJyZW50RmllbGRzfVxuICAgICAgICAgICAgICBvblNlbGVjdD17c2VsZWN0ZWQgPT4gdXBkYXRlTGF5ZXJUZXh0TGFiZWwoJ2FsbCcsICdmaWVsZHMnLCBzZWxlY3RlZCl9XG4gICAgICAgICAgICAgIG11bHRpU2VsZWN0XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUhlYWRlcj5cbiAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICB7dGV4dExhYmVsLm1hcCgodGwsIGlkeCkgPT4gKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAga2V5PXtgJHt0bC5maWVsZCA/IHRsLmZpZWxkLm5hbWUgOiAnbnVsbCd9LSR7aWR4fWB9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic2lkZS1wYW5lbC1zZWN0aW9uLWdyb3VwXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYW5lbExhYmVsPlxuICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9e2BwYW5lbC50ZXh0LiR7aWR4ID09PSAwID8gJ21haW4nIDogJ3NlY29uZGFyeSd9TGFiZWxgfSAvPlxuICAgICAgICAgICAgICAgIDwvUGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgIDxGaWVsZFNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkcz17ZmllbGRzfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17KHRsLmZpZWxkICYmIHRsLmZpZWxkLm5hbWUpIHx8ICdwbGFjZWhvbGRlci5zZWxlY3RGaWVsZCd9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXsncGxhY2Vob2xkZXIuZW1wdHknfVxuICAgICAgICAgICAgICAgICAgICBvblNlbGVjdD17diA9PiB1cGRhdGVMYXllclRleHRMYWJlbChpZHgsICdmaWVsZCcsIHYpfVxuICAgICAgICAgICAgICAgICAgICBlcmFzYWJsZVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAgICAgICAgPFNpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAgICAgICAgICA8UGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJwYW5lbC50ZXh0LmZvbnRTaXplXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxSYW5nZVNsaWRlclxuICAgICAgICAgICAgICAgICAgICB7Li4uTEFZRVJfVEVYVF9DT05GSUdTLmZvbnRTaXplfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTE9e3RsLnNpemV9XG4gICAgICAgICAgICAgICAgICAgIGlzUmFuZ2U9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17diA9PiB1cGRhdGVMYXllclRleHRMYWJlbChpZHgsICdzaXplJywgdlsxXSl9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvU2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICAgICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgIDxQYW5lbExhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cInBhbmVsLnRleHQuZm9udENvbG9yXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxDb2xvclNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yU2V0cz17W1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkQ29sb3I6IHRsLmNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q29sb3I6IHYgPT4gdXBkYXRlTGF5ZXJUZXh0TGFiZWwoaWR4LCAnY29sb3InLCB2KVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgICAgICAgIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgPFBhbmVsTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPVwicGFuZWwudGV4dC5vdXRsaW5lQ29sb3JcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9QYW5lbExhYmVsPlxuICAgICAgICAgICAgICAgICAgPENvbG9yU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgICAgY29sb3JTZXRzPXtbXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRDb2xvcjogdGwub3V0bGluZUNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q29sb3I6IHYgPT4gdXBkYXRlTGF5ZXJUZXh0TGFiZWwoaWR4LCAnb3V0bGluZUNvbG9yJywgdilcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF19XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvU2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICAgICAgICB7aWR4ID09PSAwICYmIChcbiAgICAgICAgICAgICAgICAgIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8U3BhY2VCZXR3ZWVuRmxleGJveD5cbiAgICAgICAgICAgICAgICAgICAgICA8U0JGbGV4Ym94SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQYW5lbExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cInBhbmVsLnRleHQudGV4dEFuY2hvclwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1BhbmVsTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8SXRlbVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5MQVlFUl9URVhUX0NPTkZJR1MudGV4dEFuY2hvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcz17dGwuYW5jaG9yfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17dmFsID0+IHVwZGF0ZUxheWVyVGV4dExhYmVsKGlkeCwgJ2FuY2hvcicsIHZhbCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvU0JGbGV4Ym94SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICA8U0JGbGV4Ym94SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQYW5lbExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cInBhbmVsLnRleHQuYWxpZ25tZW50XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLkxBWUVSX1RFWFRfQ09ORklHUy50ZXh0QWxpZ25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXt0bC5hbGlnbm1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXt2YWwgPT4gdXBkYXRlTGF5ZXJUZXh0TGFiZWwoaWR4LCAnYWxpZ25tZW50JywgdmFsKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9TQkZsZXhib3hJdGVtPlxuICAgICAgICAgICAgICAgICAgICA8L1NwYWNlQmV0d2VlbkZsZXhib3g+XG4gICAgICAgICAgICAgICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgICAgICA8QWRkQnV0dG9uXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3RleHRMYWJlbC5sZW5ndGggPj0gMn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt2YWwgPT4gdXBkYXRlTGF5ZXJUZXh0TGFiZWwodGV4dExhYmVsLmxlbmd0aCl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gVGV4dExhYmVsUGFuZWw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFRleHRMYWJlbFBhbmVsRmFjdG9yeTtcbiJdfQ==
|
|
@@ -134,7 +134,7 @@ var KEPLER_GL_NAME = 'kepler.gl'; // __PACKAGE_VERSION__ is automatically inject
|
|
|
134
134
|
// an empty string which will allow us to retrieve the latest umd version
|
|
135
135
|
|
|
136
136
|
exports.KEPLER_GL_NAME = KEPLER_GL_NAME;
|
|
137
|
-
var KEPLER_GL_VERSION = "0.0.65-alpha.labels.
|
|
137
|
+
var KEPLER_GL_VERSION = "0.0.65-alpha.labels.9";
|
|
138
138
|
exports.KEPLER_GL_VERSION = KEPLER_GL_VERSION;
|
|
139
139
|
var KEPLER_GL_WEBSITE = 'http://kepler.gl/';
|
|
140
140
|
exports.KEPLER_GL_WEBSITE = KEPLER_GL_WEBSITE;
|
|
@@ -248,13 +248,14 @@ var PointLabelLayer = /*#__PURE__*/function (_CompositeLayer) {
|
|
|
248
248
|
updateTriggers = _this$props4.updateTriggers;
|
|
249
249
|
var getPixelOffset = this.calculatePixelOffset(false);
|
|
250
250
|
var backgroundPadding = this.calculateBackgroundPadding();
|
|
251
|
-
var out = [
|
|
251
|
+
var out = [// Text doesn't update via updateTrigger for some reason
|
|
252
|
+
this.renderTextLayer("".concat(updateTriggers.getText, "-primary"), {
|
|
252
253
|
backgroundPadding: backgroundPadding,
|
|
253
254
|
getText: getText,
|
|
254
255
|
getPixelOffset: getPixelOffset,
|
|
255
256
|
background: true // Only use background for primary label for faster collisions
|
|
256
257
|
|
|
257
|
-
}), getSecondaryText && this.renderTextLayer(
|
|
258
|
+
}), getSecondaryText && this.renderTextLayer("".concat(updateTriggers.getSecondaryText, "-secondary"), _objectSpread(_objectSpread(_objectSpread({
|
|
258
259
|
getText: getSecondaryText,
|
|
259
260
|
getPixelOffset: this.calculatePixelOffset(true),
|
|
260
261
|
getAlignmentBaseline: 'top',
|
|
@@ -277,4 +278,4 @@ var PointLabelLayer = /*#__PURE__*/function (_CompositeLayer) {
|
|
|
277
278
|
exports.PointLabelLayer = PointLabelLayer;
|
|
278
279
|
(0, _defineProperty2["default"])(PointLabelLayer, "layerName", 'PointLabelLayer');
|
|
279
280
|
(0, _defineProperty2["default"])(PointLabelLayer, "defaultProps", defaultProps);
|
|
280
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWNrZ2wtbGF5ZXJzL3BvaW50LWxhYmVsLWxheWVyL3BvaW50LWxhYmVsLWxheWVyLmpzIl0sIm5hbWVzIjpbIlNIT1dfVEVYVF9CT1JERVIiLCJMRUZUIiwiVE9QIiwiUklHSFQiLCJCT1RUT00iLCJFbmhhbmNlZFRleHRCYWNrZ3JvdW5kTGF5ZXIiLCJzaGFkZXJzIiwidnMiLCJyZXBsYWNlQWxsIiwicmVwbGFjZSIsIlRleHRCYWNrZ3JvdW5kTGF5ZXIiLCJFbmhhbmNlZFRleHRMYXllciIsImxheWVyIiwicmVuZGVyUGFzcyIsImJhY2tncm91bmQiLCJpZCIsImluY2x1ZGVzIiwicHJvcHMiLCJnZXRCb3JkZXJXaWR0aCIsIlRleHRMYXllciIsImRlZmF1bHRQcm9wcyIsImdldFJhZGl1cyIsInR5cGUiLCJ2YWx1ZSIsInJhZGl1c1NjYWxlIiwibWluIiwiUG9pbnRMYWJlbExheWVyIiwic2Vjb25kYXJ5IiwiYW5jaG9yIiwiZ2V0VGV4dEFuY2hvciIsImFsaWdubWVudCIsImdldEFsaWdubWVudEJhc2VsaW5lIiwiZ2V0U2Vjb25kYXJ5VGV4dCIsInNlY29uZGFyeVNpemVTY2FsZSIsInNpemVTY2FsZSIsInhNdWx0IiwieU11bHQiLCJ4UGFkZGluZyIsInlQYWRkaW5nIiwic2Vjb25kYXJ5T2Zmc2V0IiwieU9mZnNldCIsInJhZGl1c1BhZGRpbmciLCJkIiwiaW5mbyIsInIiLCJwYWRkaW5nWCIsInBhZGRpbmdZIiwiYmFja2dyb3VuZFBhZGRpbmciLCJ1cGRhdGVUcmlnZ2Vyc092ZXJyaWRlIiwidXBkYXRlVHJpZ2dlcnMiLCJkYXRhIiwiY2hhcmFjdGVyU2V0IiwiZm9udEZhbWlseSIsImZvbnRTZXR0aW5ncyIsImZvbnRXZWlnaHQiLCJvdXRsaW5lQ29sb3IiLCJvdXRsaW5lV2lkdGgiLCJnZXRDb2xvciIsImdldFBvc2l0aW9uIiwiZ2V0U3ViTGF5ZXJQcm9wcyIsImdldFBpeGVsT2Zmc2V0IiwiZ2V0U2l6ZSIsIl9zdWJMYXllclByb3BzIiwiZ2V0QmFja2dyb3VuZENvbG9yIiwiZ2V0Qm9yZGVyQ29sb3IiLCJnZXRUZXh0IiwiZ2V0U2Vjb25kYXJ5Q29sb3IiLCJzZWNvbmRhcnlPdXRsaW5lQ29sb3IiLCJjYWxjdWxhdGVQaXhlbE9mZnNldCIsImNhbGN1bGF0ZUJhY2tncm91bmRQYWRkaW5nIiwib3V0IiwicmVuZGVyVGV4dExheWVyIiwiQ29tcG9zaXRlTGF5ZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7Ozs7Ozs7OztBQUVBO0FBQ0EsSUFBTUEsZ0JBQWdCLEdBQUcsS0FBekI7SUFFT0MsSSxHQUE2QixDO0lBQXZCQyxHLEdBQTBCLEM7SUFBckJDLEssR0FBd0IsQztJQUFqQkMsTSxHQUFvQixDOztJQUV2Q0MsMkI7Ozs7Ozs7Ozs7OztXQUNKLHNCQUFhO0FBQ1gsVUFBTUMsT0FBTyxnSUFBYjtBQUNBLFVBQUlDLEVBQUUsR0FBR0QsT0FBTyxDQUFDQyxFQUFqQixDQUZXLENBSVg7QUFDQTs7QUFDQUEsTUFBQUEsRUFBRSxHQUFHQSxFQUFFLENBQUNDLFVBQUgsQ0FBYyxVQUFkLEVBQTBCLFdBQTFCLENBQUw7QUFDQUQsTUFBQUEsRUFBRSxHQUFHQSxFQUFFLENBQUNFLE9BQUgsQ0FDSCxtQkFERyxFQUVILHdHQUZHLENBQUw7QUFLQSw2Q0FBV0gsT0FBWDtBQUFvQkMsUUFBQUEsRUFBRSxFQUFGQTtBQUFwQjtBQUNEOzs7RUFkdUNHLDRCLEdBaUIxQztBQUNBOzs7SUFDTUMsaUI7Ozs7Ozs7Ozs7OztXQUNKLDhCQUFvQztBQUFBLFVBQXBCQyxLQUFvQixRQUFwQkEsS0FBb0I7QUFBQSxVQUFiQyxVQUFhLFFBQWJBLFVBQWE7QUFDbEMsVUFBTUMsVUFBVSxHQUFHRixLQUFLLENBQUNHLEVBQU4sQ0FBU0MsUUFBVCxDQUFrQixvQkFBbEIsQ0FBbkI7O0FBQ0EsVUFBSUgsVUFBVSxLQUFLLFdBQW5CLEVBQWdDO0FBQzlCLGVBQU9DLFVBQVAsQ0FEOEIsQ0FDWDtB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LFVBQU1yQixpQkFBaUIsR0FBRyxLQUFLc0IsMEJBQUwsRUFBMUI7QUFDQSxVQUFNQyxHQUFHLEdBQUcsQ0FDVixLQUFLQyxlQUFMLENBQXFCLFNBQXJCLEVBQWdDO0FBQzlCeEIsUUFBQUEsaUJBQWlCLEVBQWpCQSxpQkFEOEI7QUFFOUJrQixRQUFBQSxPQUFPLEVBQVBBLE9BRjhCO0FBRzlCTCxRQUFBQSxjQUFjLEVBQWRBLGNBSDhCO0FBSTlCOUMsUUFBQUEsVUFBVSxFQUFFLElBSmtCLENBSWI7O0FBSmEsT0FBaEMsQ0FEVSxFQU9Wa0IsZ0JBQWdCLElBQ2QsS0FBS3VDLGVBQUwsQ0FBcUIsV0FBckI7QUFDRU4sUUFBQUEsT0FBTyxFQUFFakMsZ0JBRFg7QUFFRTRCLFFBQUFBLGNBQWMsRUFBRSxLQUFLUSxvQkFBTCxDQUEwQixJQUExQixDQUZsQjtBQUdFckMsUUFBQUEsb0JBQW9CLEVBQUUsS0FIeEI7QUFJRWtCLFFBQUFBLGNBQWMsRUFBRTtBQUFDZ0IsVUFBQUEsT0FBTyxFQUFFaEIsY0FBYyxDQUFDakI7QUFBekI7QUFKbEIsU0FPTWtDLGlCQUFpQixJQUFJO0FBQUNULFFBQUFBLFFBQVEsRUFBRVM7QUFBWCxPQVAzQixHQVFNakMsa0JBQWtCLElBQUk7QUFBQ0MsUUFBQUEsU0FBUyxFQUFFRDtBQUFaLE9BUjVCLEdBU01rQyxxQkFBcUIsSUFBSTtBQUFDWixRQUFBQSxZQUFZLEVBQUVZO0FBQWYsT0FUL0IsRUFSUSxDQUFaO0FBcUJBLGFBQU9HLEdBQVA7QUFDRDs7O0VBektrQ0Usb0I7OztpQ0FBeEI5QyxlLGVBQ1EsaUI7aUNBRFJBLGUsa0JBRVdOLFkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvc2l0ZUxheWVyfSBmcm9tICdAZGVjay5nbC9jb3JlJztcbmltcG9ydCB7VGV4dExheWVyLCBfVGV4dEJhY2tncm91bmRMYXllciBhcyBUZXh0QmFja2dyb3VuZExheWVyfSBmcm9tICdAZGVjay5nbC9sYXllcnMnO1xuXG4vLyBUT0RPIHJlbW92ZSBwcmlvciB0byByZWxlYXNlXG5jb25zdCBTSE9XX1RFWFRfQk9SREVSID0gZmFsc2U7XG5cbmNvbnN0IFtMRUZULCBUT1AsIFJJR0hULCBCT1RUT01dID0gWzAsIDEsIDIsIDNdO1xuXG5jbGFzcyBFbmhhbmNlZFRleHRCYWNrZ3JvdW5kTGF5ZXIgZXh0ZW5kcyBUZXh0QmFja2dyb3VuZExheWVyIHtcbiAgZ2V0U2hhZGVycygpIHtcbiAgICBjb25zdCBzaGFkZXJzID0gc3VwZXIuZ2V0U2hhZGVycygpO1xuICAgIGxldCB2cyA9IHNoYWRlcnMudnM7XG5cbiAgICAvLyBNb2RpZnkgc2hhZGVyIHNvIHRoYXQgdGhlIHBhZGRpbmcgaXMgb2Zmc2V0IGJ5IHRoZSBwaXhlbCBvZmZzZXQgdG8gZW5zdXJlIHRoZSBwYWRkaW5nXG4gICAgLy8gYWx3YXlzIGNhcHR1cmVzIHRoZSBhbmNob3IgcG9pbnQuIEFzIHBhZGRpbmcgaXMgdW5pZm9ybSB3ZSBjYW5ub3QgcGFzcyBpdCBhIHBlci1sYWJlbCB2YWx1ZVxuICAgIHZzID0gdnMucmVwbGFjZUFsbCgncGFkZGluZy4nLCAnX3BhZGRpbmcuJyk7XG4gICAgdnMgPSB2cy5yZXBsYWNlKFxuICAgICAgJ3ZvaWQgbWFpbih2b2lkKSB7JyxcbiAgICAgICd2b2lkIG1haW4odm9pZCkge1xcbiAgdmVjNCBfcGFkZGluZyA9IHBhZGRpbmcgKyBpbnN0YW5jZVBpeGVsT2Zmc2V0cy54eXh5ICogdmVjNCgxLjAsIDEuMCwgLTEuMCwgLTEuMCk7J1xuICAgICk7XG5cbiAgICByZXR1cm4gey4uLnNoYWRlcnMsIHZzfTtcbiAgfVxufVxuXG4vLyBUZXh0TGF5ZXIgd2hpY2ggaW5jbHVkZXMgbW9kaWZpZWQgdGV4dC1iYWNrZ3JvdW5kLWxheWVyLXZlcnRleCBzaGFkZXIgYW5kIG9ubHkgcmVuZGVycyB0aGVcbi8vIHByaW1hcnkgYmFja2dyb3VuZCBsYXllciBpbiB0aGUgY29sbGlzaW9uIHBhc3NcbmNsYXNzIEVuaGFuY2VkVGV4dExheWVyIGV4dGVuZHMgVGV4dExheWVyIHtcbiAgZmlsdGVyU3ViTGF5ZXIoe2xheWVyLCByZW5kZXJQYXNzfSkge1xuICAgIGNvbnN0IGJhY2tncm91bmQgPSBsYXllci5pZC5pbmNsdWRlcygncHJpbWFyeS1iYWNrZ3JvdW5kJyk7XG4gICAgaWYgKHJlbmRlclBhc3MgPT09ICdjb2xsaXNpb24nKSB7XG4gICAgICByZXR1cm4gYmFja2dyb3VuZDsgLy8gT25seSBkcmF3IHByaW1hcnkgYmFja2dyb3VuZCBsYXllciBpbiBjb2xsaXNpb24gcGFzc1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gIWJhY2tncm91bmQgfHwgKFNIT1dfVEVYVF9CT1JERVIgJiYgdGhpcy5wcm9wcy5nZXRCb3JkZXJXaWR0aCk7IC8vIERvIG5vdCBkcmF3IGJhY2tncm91bmQgbGF5ZXIgaW4gb3RoZXIgcGFzc2VzXG4gICAgfVxuICB9XG59XG5cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgLi4uVGV4dExheWVyLmRlZmF1bHRQcm9wcyxcbiAgZ2V0UmFkaXVzOiB7dHlwZTogJ2FjY2Vzc29yJywgdmFsdWU6IDF9LFxuICByYWRpdXNTY2FsZToge3R5cGU6ICdudW1iZXInLCBtaW46IDAsIHZhbHVlOiAxfVxufTtcblxuZXhwb3J0IGNsYXNzIFBvaW50TGFiZWxMYXllciBleHRlbmRzIENvbXBvc2l0ZUxheWVyIHtcbiAgc3RhdGljIGxheWVyTmFtZSA9ICdQb2ludExhYmVsTGF5ZXInO1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuXG4gIGNhbGN1bGF0ZVBpeGVsT2Zmc2V0KHNlY29uZGFyeSkge1xuICAgIGNvbnN0IHtcbiAgICAgIGdldFRleHRBbmNob3I6IGFuY2hvcixcbiAgICAgIGdldEFsaWdubWVudEJhc2VsaW5lOiBhbGlnbm1lbnQsXG4gICAgICBnZXRSYWRpdXMsXG4gICAgICBnZXRTZWNvbmRhcnlUZXh0LFxuICAgICAgcmFkaXVzU2NhbGUsXG4gICAgICBzZWNvbmRhcnlTaXplU2NhbGUsXG4gICAgICBzaXplU2NhbGVcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB4TXVsdCA9IGFuY2hvciA9PT0gJ21pZGRsZScgPyAwIDogYW5jaG9yID09PSAnc3RhcnQnID8gMSA6IC0xO1xuICAgIGNvbnN0IHlNdWx0ID0gYWxpZ25tZW50ID09PSAnY2VudGVyJyA/IDAgOiBhbGlnbm1lbnQgPT09ICdib3R0b20nID8gMSA6IC0xO1xuXG4gICAgLy8gUGFkZGluZyBiYXNlZCBvbiBmb250IHNpemUgKGZvbnQgc2l6ZSAvIDQpXG4gICAgY29uc3QgeFBhZGRpbmcgPSBzaXplU2NhbGUgLyA0O1xuICAgIGNvbnN0IHlQYWRkaW5nID0gc2l6ZVNjYWxlICogKDEgKyAxIC8gNCk7XG5cbiAgICAvLyBQbGFjZSBzZWNvbmRhcnkgbGFiZWwgdW5kZXIgbWFpbiBsYWJlbCAoc2Vjb25kYXJ5IGxhYmVsIGFsd2F5cyAndG9wJyBiYXNlbGluZSBhbGlnbmVkKVxuICAgIGNvbnN0IHNlY29uZGFyeU9mZnNldCA9IDAuNiAqICgxIC0geU11bHQpICogc2l6ZVNjYWxlO1xuICAgIGxldCB5T2Zmc2V0ID0gc2Vjb25kYXJ5ID8gc2Vjb25kYXJ5T2Zmc2V0IDogMDtcblxuICAgIC8vIFNwZWNpYWwgY2FzZSwgcG9zaXRpb24gcmVsYXRpdmUgdG8gc2Vjb25kYXJ5IGxhYmVsXG4gICAgaWYgKGFuY2hvciA9PT0gJ21pZGRsZScgJiYgYWxpZ25tZW50ID09PSAndG9wJyAmJiBnZXRTZWNvbmRhcnlUZXh0KSB7XG4gICAgICB5T2Zmc2V0IC09IHNlY29uZGFyeU9mZnNldDtcbiAgICAgIHlPZmZzZXQgLT0gc2Vjb25kYXJ5U2l6ZVNjYWxlO1xuICAgICAgeU9mZnNldCArPSBzaXplU2NhbGU7XG4gICAgfVxuXG4gICAgLy8gUGFkZGluZyBiYXNlZCBvbiBwb2ludCByYWRpdXMgKHJhZGl1cy8gNClcbiAgICBjb25zdCByYWRpdXNQYWRkaW5nID0gMSArIDEgLyA0O1xuXG4gICAgcmV0dXJuIHR5cGVvZiBnZXRSYWRpdXMgPT09ICdmdW5jdGlvbidcbiAgICAgID8gKGQsIGluZm8pID0+IHtcbiAgICAgICAgICBjb25zdCByID0gKGluZm8gPyBnZXRSYWRpdXMoZCwgaW5mbykgOiAxKSAqIHJhZGl1c1NjYWxlICogcmFkaXVzUGFkZGluZztcbiAgICAgICAgICByZXR1cm4gW3hNdWx0ICogKHIgKyB4UGFkZGluZyksIHlNdWx0ICogKHIgKyB5UGFkZGluZykgKyB5T2Zmc2V0XTtcbiAgICAgICAgfVxuICAgICAgOiBbXG4gICAgICAgICAgeE11bHQgKiAoZ2V0UmFkaXVzICogcmFkaXVzU2NhbGUgKiByYWRpdXNQYWRkaW5nICsgeFBhZGRpbmcpLFxuICAgICAgICAgIHlNdWx0ICogKGdldFJhZGl1cyAqIHJhZGl1c1NjYWxlICogcmFkaXVzUGFkZGluZyArIHlQYWRkaW5nKSArIHlPZmZzZXRcbiAgICAgICAgXTtcbiAgfVxuXG4gIGNhbGN1bGF0ZUJhY2tncm91bmRQYWRkaW5nKCkge1xuICAgIGNvbnN0IHtnZXRUZXh0QW5jaG9yOiBhbmNob3IsIGdldEFsaWdubWVudEJhc2VsaW5lOiBhbGlnbm1lbnQsIHNpemVTY2FsZX0gPSB0aGlzLnByb3BzO1xuXG4gICAgLy8gSGV1cmlzdGljcyB0byBhdm9pZCBsYWJlbCBvdmVybGFwIChzaG91bGQgd2UgYmFzZSB0aGlzIG9uIHRoZSB0ZXh0IGxlbmd0aD8pXG4gICAgY29uc3QgcGFkZGluZ1ggPSAxMiAqIHNpemVTY2FsZTtcbiAgICBjb25zdCBwYWRkaW5nWSA9IDMgKiBzaXplU2NhbGU7XG4gICAgY29uc3QgYmFja2dyb3VuZFBhZGRpbmcgPSBbMCwgMCwgMCwgMF07XG4gICAgaWYgKGFsaWdubWVudCA9PT0gJ3RvcCcpIHtcbiAgICAgIGJhY2tncm91bmRQYWRkaW5nW1RPUF0gPSBwYWRkaW5nWTtcbiAgICB9IGVsc2UgaWYgKGFsaWdubWVudCA9PT0gJ2JvdHRvbScpIHtcbiAgICAgIGJhY2tncm91bmRQYWRkaW5nW0JPVFRPTV0gPSBwYWRkaW5nWTtcbiAgICB9IGVsc2Uge1xuICAgICAgYmFja2dyb3VuZFBhZGRpbmdbVE9QXSA9IDAuNSAqIHBhZGRpbmdZO1xuICAgICAgYmFja2dyb3VuZFBhZGRpbmdbQk9UVE9NXSA9IDAuNSAqIHBhZGRpbmdZO1xuICAgIH1cbiAgICBpZiAoYW5jaG9yID09PSAnc3RhcnQnKSB7XG4gICAgICBiYWNrZ3JvdW5kUGFkZGluZ1tMRUZUXSA9IHBhZGRpbmdYO1xuICAgIH0gZWxzZSBpZiAoYW5jaG9yID09PSAnZW5kJykge1xuICAgICAgYmFja2dyb3VuZFBhZGRpbmdbUklHSFRdID0gcGFkZGluZ1g7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJhY2tncm91bmRQYWRkaW5nW0xFRlRdID0gMC41ICogcGFkZGluZ1g7XG4gICAgICBiYWNrZ3JvdW5kUGFkZGluZ1tSSUdIVF0gPSAwLjUgKiBwYWRkaW5nWDtcbiAgICB9XG5cbiAgICByZXR1cm4gYmFja2dyb3VuZFBhZGRpbmc7XG4gIH1cblxuICByZW5kZXJUZXh0TGF5ZXIoaWQsIHt1cGRhdGVUcmlnZ2VyczogdXBkYXRlVHJpZ2dlcnNPdmVycmlkZSwgLi4ucHJvcHN9KSB7XG4gICAgY29uc3Qge1xuICAgICAgZGF0YSxcblxuICAgICAgY2hhcmFjdGVyU2V0LFxuICAgICAgZm9udEZhbWlseSxcbiAgICAgIGZvbnRTZXR0aW5ncyxcbiAgICAgIGZvbnRXZWlnaHQsXG4gICAgICBvdXRsaW5lQ29sb3IsXG4gICAgICBvdXRsaW5lV2lkdGgsXG4gICAgICBzaXplU2NhbGUsXG4gICAgICByYWRpdXNTY2FsZSxcblxuICAgICAgZ2V0QWxpZ25tZW50QmFzZWxpbmUsXG4gICAgICBnZXRDb2xvcixcbiAgICAgIGdldFBvc2l0aW9uLFxuICAgICAgZ2V0VGV4dEFuY2hvcixcblxuICAgICAgdXBkYXRlVHJpZ2dlcnNcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBuZXcgRW5oYW5jZWRUZXh0TGF5ZXIoXG4gICAgICB0aGlzLmdldFN1YkxheWVyUHJvcHMoe1xuICAgICAgICBpZCxcbiAgICAgICAgZGF0YTogZGF0YSxcblxuICAgICAgICBjaGFyYWN0ZXJTZXQsXG4gICAgICAgIGZvbnRGYW1pbHksXG4gICAgICAgIGZvbnRTZXR0aW5ncyxcbiAgICAgICAgZm9udFdlaWdodCxcbiAgICAgICAgb3V0bGluZUNvbG9yLFxuICAgICAgICBvdXRsaW5lV2lkdGgsXG4gICAgICAgIHNpemVTY2FsZSxcblxuICAgICAgICBnZXRBbGlnbm1lbnRCYXNlbGluZSxcbiAgICAgICAgZ2V0Q29sb3IsXG4gICAgICAgIGdldFBvc2l0aW9uLFxuICAgICAgICBnZXRUZXh0QW5jaG9yLFxuXG4gICAgICAgIHVwZGF0ZVRyaWdnZXJzOiB7XG4gICAgICAgICAgLi4udXBkYXRlVHJpZ2dlcnMsXG4gICAgICAgICAgLi4udXBkYXRlVHJpZ2dlcnNPdmVycmlkZSxcbiAgICAgICAgICBnZXRQaXhlbE9mZnNldDogW1xuICAgICAgICAgICAgdXBkYXRlVHJpZ2dlcnMuZ2V0UmFkaXVzLFxuICAgICAgICAgICAgdXBkYXRlVHJpZ2dlcnMuZ2V0VGV4dEFuY2hvcixcbiAgICAgICAgICAgIHVwZGF0ZVRyaWdnZXJzLmdldEFsaWdubWVudEJhc2VsaW5lLFxuICAgICAgICAgICAgcmFkaXVzU2NhbGUsXG4gICAgICAgICAgICBzaXplU2NhbGVcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAge1xuICAgICAgICBnZXRTaXplOiAxLFxuICAgICAgICBfc3ViTGF5ZXJQcm9wczoge2JhY2tncm91bmQ6IHt0eXBlOiBFbmhhbmNlZFRleHRCYWNrZ3JvdW5kTGF5ZXJ9fVxuICAgICAgfSxcbiAgICAgIC8vIERFQlVHXG4gICAgICBTSE9XX1RFWFRfQk9SREVSXG4gICAgICAgID8ge2dldEJhY2tncm91bmRDb2xvcjogWzAsIDAsIDAsIDBdLCBnZXRCb3JkZXJDb2xvcjogWzI1NSwgMCwgMCwgODBdLCBnZXRCb3JkZXJXaWR0aDogMX1cbiAgICAgICAgOiB7fSxcbiAgICAgIHByb3BzXG4gICAgKTtcbiAgfVxuXG4gIHJlbmRlckxheWVycygpIHtcbiAgICBjb25zdCB7XG4gICAgICBnZXRUZXh0LFxuICAgICAgZ2V0U2Vjb25kYXJ5Q29sb3IsXG4gICAgICBnZXRTZWNvbmRhcnlUZXh0LFxuICAgICAgc2Vjb25kYXJ5T3V0bGluZUNvbG9yLFxuICAgICAgc2Vjb25kYXJ5U2l6ZVNjYWxlLFxuICAgICAgdXBkYXRlVHJpZ2dlcnNcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBnZXRQaXhlbE9mZnNldCA9IHRoaXMuY2FsY3VsYXRlUGl4ZWxPZmZzZXQoZmFsc2UpO1xuICAgIGNvbnN0IGJhY2tncm91bmRQYWRkaW5nID0gdGhpcy5jYWxjdWxhdGVCYWNrZ3JvdW5kUGFkZGluZygpO1xuICAgIGNvbnN0IG91dCA9IFtcbiAgICAgIHRoaXMucmVuZGVyVGV4dExheWVyKCdwcmltYXJ5Jywge1xuICAgICAgICBiYWNrZ3JvdW5kUGFkZGluZyxcbiAgICAgICAgZ2V0VGV4dCxcbiAgICAgICAgZ2V0UGl4ZWxPZmZzZXQsXG4gICAgICAgIGJhY2tncm91bmQ6IHRydWUgLy8gT25seSB1c2UgYmFja2dyb3VuZCBmb3IgcHJpbWFyeSBsYWJlbCBmb3IgZmFzdGVyIGNvbGxpc2lvbnNcbiAgICAgIH0pLFxuICAgICAgZ2V0U2Vjb25kYXJ5VGV4dCAmJlxuICAgICAgICB0aGlzLnJlbmRlclRleHRMYXllcignc2Vjb25kYXJ5Jywge1xuICAgICAgICAgIGdldFRleHQ6IGdldFNlY29uZGFyeVRleHQsXG4gICAgICAgICAgZ2V0UGl4ZWxPZmZzZXQ6IHRoaXMuY2FsY3VsYXRlUGl4ZWxPZmZzZXQodHJ1ZSksXG4gICAgICAgICAgZ2V0QWxpZ25tZW50QmFzZWxpbmU6ICd0b3AnLFxuICAgICAgICAgIHVwZGF0ZVRyaWdnZXJzOiB7Z2V0VGV4dDogdXBkYXRlVHJpZ2dlcnMuZ2V0U2Vjb25kYXJ5VGV4dH0sXG5cbiAgICAgICAgICAvLyBPcHRpb25hbCBvdmVycmlkZXNcbiAgICAgICAgICAuLi4oZ2V0U2Vjb25kYXJ5Q29sb3IgJiYge2dldENvbG9yOiBnZXRTZWNvbmRhcnlDb2xvcn0pLFxuICAgICAgICAgIC4uLihzZWNvbmRhcnlTaXplU2NhbGUgJiYge3NpemVTY2FsZTogc2Vjb25kYXJ5U2l6ZVNjYWxlfSksXG4gICAgICAgICAgLi4uKHNlY29uZGFyeU91dGxpbmVDb2xvciAmJiB7b3V0bGluZUNvbG9yOiBzZWNvbmRhcnlPdXRsaW5lQ29sb3J9KVxuICAgICAgICB9KVxuICAgIF07XG5cbiAgICByZXR1cm4gb3V0O1xuICB9XG59XG4iXX0=
|
|
281
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWNrZ2wtbGF5ZXJzL3BvaW50LWxhYmVsLWxheWVyL3BvaW50LWxhYmVsLWxheWVyLmpzIl0sIm5hbWVzIjpbIlNIT1dfVEVYVF9CT1JERVIiLCJMRUZUIiwiVE9QIiwiUklHSFQiLCJCT1RUT00iLCJFbmhhbmNlZFRleHRCYWNrZ3JvdW5kTGF5ZXIiLCJzaGFkZXJzIiwidnMiLCJyZXBsYWNlQWxsIiwicmVwbGFjZSIsIlRleHRCYWNrZ3JvdW5kTGF5ZXIiLCJFbmhhbmNlZFRleHRMYXllciIsImxheWVyIiwicmVuZGVyUGFzcyIsImJhY2tncm91bmQiLCJpZCIsImluY2x1ZGVzIiwicHJvcHMiLCJnZXRCb3JkZXJXaWR0aCIsIlRleHRMYXllciIsImRlZmF1bHRQcm9wcyIsImdldFJhZGl1cyIsInR5cGUiLCJ2YWx1ZSIsInJhZGl1c1NjYWxlIiwibWluIiwiUG9pbnRMYWJlbExheWVyIiwic2Vjb25kYXJ5IiwiYW5jaG9yIiwiZ2V0VGV4dEFuY2hvciIsImFsaWdubWVudCIsImdldEFsaWdubWVudEJhc2VsaW5lIiwiZ2V0U2Vjb25kYXJ5VGV4dCIsInNlY29uZGFyeVNpemVTY2FsZSIsInNpemVTY2FsZSIsInhNdWx0IiwieU11bHQiLCJ4UGFkZGluZyIsInlQYWRkaW5nIiwic2Vjb25kYXJ5T2Zmc2V0IiwieU9mZnNldCIsInJhZGl1c1BhZGRpbmciLCJkIiwiaW5mbyIsInIiLCJwYWRkaW5nWCIsInBhZGRpbmdZIiwiYmFja2dyb3VuZFBhZGRpbmciLCJ1cGRhdGVUcmlnZ2Vyc092ZXJyaWRlIiwidXBkYXRlVHJpZ2dlcnMiLCJkYXRhIiwiY2hhcmFjdGVyU2V0IiwiZm9udEZhbWlseSIsImZvbnRTZXR0aW5ncyIsImZvbnRXZWlnaHQiLCJvdXRsaW5lQ29sb3IiLCJvdXRsaW5lV2lkdGgiLCJnZXRDb2xvciIsImdldFBvc2l0aW9uIiwiZ2V0U3ViTGF5ZXJQcm9wcyIsImdldFBpeGVsT2Zmc2V0IiwiZ2V0U2l6ZSIsIl9zdWJMYXllclByb3BzIiwiZ2V0QmFja2dyb3VuZENvbG9yIiwiZ2V0Qm9yZGVyQ29sb3IiLCJnZXRUZXh0IiwiZ2V0U2Vjb25kYXJ5Q29sb3IiLCJzZWNvbmRhcnlPdXRsaW5lQ29sb3IiLCJjYWxjdWxhdGVQaXhlbE9mZnNldCIsImNhbGN1bGF0ZUJhY2tncm91bmRQYWRkaW5nIiwib3V0IiwicmVuZGVyVGV4dExheWVyIiwiQ29tcG9zaXRlTGF5ZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7Ozs7Ozs7OztBQUVBO0FBQ0EsSUFBTUEsZ0JBQWdCLEdBQUcsS0FBekI7SUFFT0MsSSxHQUE2QixDO0lBQXZCQyxHLEdBQTBCLEM7SUFBckJDLEssR0FBd0IsQztJQUFqQkMsTSxHQUFvQixDOztJQUV2Q0MsMkI7Ozs7Ozs7Ozs7OztXQUNKLHNCQUFhO0FBQ1gsVUFBTUMsT0FBTyxnSUFBYjtBQUNBLFVBQUlDLEVBQUUsR0FBR0QsT0FBTyxDQUFDQyxFQUFqQixDQUZXLENBSVg7QUFDQTs7QUFDQUEsTUFBQUEsRUFBRSxHQUFHQSxFQUFFLENBQUNDLFVBQUgsQ0FBYyxVQUFkLEVBQTBCLFdBQTFCLENBQUw7QUFDQUQsTUFBQUEsRUFBRSxHQUFHQSxFQUFFLENBQUNFLE9BQUgsQ0FDSCxtQkFERyxFQUVILHdHQUZHLENBQUw7QUFLQSw2Q0FBV0gsT0FBWDtBQUFvQkMsUUFBQUEsRUFBRSxFQUFGQTtBQUFwQjtBQUNEOzs7RUFkdUNHLDRCLEdBaUIxQztBQUNBOzs7SUFDTUMsaUI7Ozs7Ozs7Ozs7OztXQUNKLDhCQUFvQztBQUFBLFVBQXBCQyxLQUFvQixRQUFwQkEsS0FBb0I7QUFBQSxVQUFiQyxVQUFhLFFBQWJBLFVBQWE7QUFDbEMsVUFBTUMsVUFBVSxHQUFHRixLQUFLLENBQUNHLEVBQU4sQ0FBU0MsUUFBVCxDQUFrQixvQkFBbEIsQ0FBbkI7O0FBQ0EsVUFBSUgsVUFBVSxLQUFLLFdBQW5CLEVBQWdDO0FBQzlCLGVBQU9DLFVBQVAsQ0FEOEIsQ0FDWDtB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LFVBQU1yQixpQkFBaUIsR0FBRyxLQUFLc0IsMEJBQUwsRUFBMUI7QUFDQSxVQUFNQyxHQUFHLEdBQUcsQ0FDVjtBQUNBLFdBQUtDLGVBQUwsV0FBd0J0QixjQUFjLENBQUNnQixPQUF2QyxlQUEwRDtBQUN4RGxCLFFBQUFBLGlCQUFpQixFQUFqQkEsaUJBRHdEO0FBRXhEa0IsUUFBQUEsT0FBTyxFQUFQQSxPQUZ3RDtBQUd4REwsUUFBQUEsY0FBYyxFQUFkQSxjQUh3RDtBQUl4RDlDLFFBQUFBLFVBQVUsRUFBRSxJQUo0QyxDQUl2Qzs7QUFKdUMsT0FBMUQsQ0FGVSxFQVFWa0IsZ0JBQWdCLElBQ2QsS0FBS3VDLGVBQUwsV0FBd0J0QixjQUFjLENBQUNqQixnQkFBdkM7QUFDRWlDLFFBQUFBLE9BQU8sRUFBRWpDLGdCQURYO0FBRUU0QixRQUFBQSxjQUFjLEVBQUUsS0FBS1Esb0JBQUwsQ0FBMEIsSUFBMUIsQ0FGbEI7QUFHRXJDLFFBQUFBLG9CQUFvQixFQUFFLEtBSHhCO0FBSUVrQixRQUFBQSxjQUFjLEVBQUU7QUFBQ2dCLFVBQUFBLE9BQU8sRUFBRWhCLGNBQWMsQ0FBQ2pCO0FBQXpCO0FBSmxCLFNBT01rQyxpQkFBaUIsSUFBSTtBQUFDVCxRQUFBQSxRQUFRLEVBQUVTO0FBQVgsT0FQM0IsR0FRTWpDLGtCQUFrQixJQUFJO0FBQUNDLFFBQUFBLFNBQVMsRUFBRUQ7QUFBWixPQVI1QixHQVNNa0MscUJBQXFCLElBQUk7QUFBQ1osUUFBQUEsWUFBWSxFQUFFWTtBQUFmLE9BVC9CLEVBVFEsQ0FBWjtBQXNCQSxhQUFPRyxHQUFQO0FBQ0Q7OztFQTFLa0NFLG9COzs7aUNBQXhCOUMsZSxlQUNRLGlCO2lDQURSQSxlLGtCQUVXTixZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb3NpdGVMYXllcn0gZnJvbSAnQGRlY2suZ2wvY29yZSc7XG5pbXBvcnQge1RleHRMYXllciwgX1RleHRCYWNrZ3JvdW5kTGF5ZXIgYXMgVGV4dEJhY2tncm91bmRMYXllcn0gZnJvbSAnQGRlY2suZ2wvbGF5ZXJzJztcblxuLy8gVE9ETyByZW1vdmUgcHJpb3IgdG8gcmVsZWFzZVxuY29uc3QgU0hPV19URVhUX0JPUkRFUiA9IGZhbHNlO1xuXG5jb25zdCBbTEVGVCwgVE9QLCBSSUdIVCwgQk9UVE9NXSA9IFswLCAxLCAyLCAzXTtcblxuY2xhc3MgRW5oYW5jZWRUZXh0QmFja2dyb3VuZExheWVyIGV4dGVuZHMgVGV4dEJhY2tncm91bmRMYXllciB7XG4gIGdldFNoYWRlcnMoKSB7XG4gICAgY29uc3Qgc2hhZGVycyA9IHN1cGVyLmdldFNoYWRlcnMoKTtcbiAgICBsZXQgdnMgPSBzaGFkZXJzLnZzO1xuXG4gICAgLy8gTW9kaWZ5IHNoYWRlciBzbyB0aGF0IHRoZSBwYWRkaW5nIGlzIG9mZnNldCBieSB0aGUgcGl4ZWwgb2Zmc2V0IHRvIGVuc3VyZSB0aGUgcGFkZGluZ1xuICAgIC8vIGFsd2F5cyBjYXB0dXJlcyB0aGUgYW5jaG9yIHBvaW50LiBBcyBwYWRkaW5nIGlzIHVuaWZvcm0gd2UgY2Fubm90IHBhc3MgaXQgYSBwZXItbGFiZWwgdmFsdWVcbiAgICB2cyA9IHZzLnJlcGxhY2VBbGwoJ3BhZGRpbmcuJywgJ19wYWRkaW5nLicpO1xuICAgIHZzID0gdnMucmVwbGFjZShcbiAgICAgICd2b2lkIG1haW4odm9pZCkgeycsXG4gICAgICAndm9pZCBtYWluKHZvaWQpIHtcXG4gIHZlYzQgX3BhZGRpbmcgPSBwYWRkaW5nICsgaW5zdGFuY2VQaXhlbE9mZnNldHMueHl4eSAqIHZlYzQoMS4wLCAxLjAsIC0xLjAsIC0xLjApOydcbiAgICApO1xuXG4gICAgcmV0dXJuIHsuLi5zaGFkZXJzLCB2c307XG4gIH1cbn1cblxuLy8gVGV4dExheWVyIHdoaWNoIGluY2x1ZGVzIG1vZGlmaWVkIHRleHQtYmFja2dyb3VuZC1sYXllci12ZXJ0ZXggc2hhZGVyIGFuZCBvbmx5IHJlbmRlcnMgdGhlXG4vLyBwcmltYXJ5IGJhY2tncm91bmQgbGF5ZXIgaW4gdGhlIGNvbGxpc2lvbiBwYXNzXG5jbGFzcyBFbmhhbmNlZFRleHRMYXllciBleHRlbmRzIFRleHRMYXllciB7XG4gIGZpbHRlclN1YkxheWVyKHtsYXllciwgcmVuZGVyUGFzc30pIHtcbiAgICBjb25zdCBiYWNrZ3JvdW5kID0gbGF5ZXIuaWQuaW5jbHVkZXMoJ3ByaW1hcnktYmFja2dyb3VuZCcpO1xuICAgIGlmIChyZW5kZXJQYXNzID09PSAnY29sbGlzaW9uJykge1xuICAgICAgcmV0dXJuIGJhY2tncm91bmQ7IC8vIE9ubHkgZHJhdyBwcmltYXJ5IGJhY2tncm91bmQgbGF5ZXIgaW4gY29sbGlzaW9uIHBhc3NcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICFiYWNrZ3JvdW5kIHx8IChTSE9XX1RFWFRfQk9SREVSICYmIHRoaXMucHJvcHMuZ2V0Qm9yZGVyV2lkdGgpOyAvLyBEbyBub3QgZHJhdyBiYWNrZ3JvdW5kIGxheWVyIGluIG90aGVyIHBhc3Nlc1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gIC4uLlRleHRMYXllci5kZWZhdWx0UHJvcHMsXG4gIGdldFJhZGl1czoge3R5cGU6ICdhY2Nlc3NvcicsIHZhbHVlOiAxfSxcbiAgcmFkaXVzU2NhbGU6IHt0eXBlOiAnbnVtYmVyJywgbWluOiAwLCB2YWx1ZTogMX1cbn07XG5cbmV4cG9ydCBjbGFzcyBQb2ludExhYmVsTGF5ZXIgZXh0ZW5kcyBDb21wb3NpdGVMYXllciB7XG4gIHN0YXRpYyBsYXllck5hbWUgPSAnUG9pbnRMYWJlbExheWVyJztcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IGRlZmF1bHRQcm9wcztcblxuICBjYWxjdWxhdGVQaXhlbE9mZnNldChzZWNvbmRhcnkpIHtcbiAgICBjb25zdCB7XG4gICAgICBnZXRUZXh0QW5jaG9yOiBhbmNob3IsXG4gICAgICBnZXRBbGlnbm1lbnRCYXNlbGluZTogYWxpZ25tZW50LFxuICAgICAgZ2V0UmFkaXVzLFxuICAgICAgZ2V0U2Vjb25kYXJ5VGV4dCxcbiAgICAgIHJhZGl1c1NjYWxlLFxuICAgICAgc2Vjb25kYXJ5U2l6ZVNjYWxlLFxuICAgICAgc2l6ZVNjYWxlXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeE11bHQgPSBhbmNob3IgPT09ICdtaWRkbGUnID8gMCA6IGFuY2hvciA9PT0gJ3N0YXJ0JyA/IDEgOiAtMTtcbiAgICBjb25zdCB5TXVsdCA9IGFsaWdubWVudCA9PT0gJ2NlbnRlcicgPyAwIDogYWxpZ25tZW50ID09PSAnYm90dG9tJyA/IDEgOiAtMTtcblxuICAgIC8vIFBhZGRpbmcgYmFzZWQgb24gZm9udCBzaXplIChmb250IHNpemUgLyA0KVxuICAgIGNvbnN0IHhQYWRkaW5nID0gc2l6ZVNjYWxlIC8gNDtcbiAgICBjb25zdCB5UGFkZGluZyA9IHNpemVTY2FsZSAqICgxICsgMSAvIDQpO1xuXG4gICAgLy8gUGxhY2Ugc2Vjb25kYXJ5IGxhYmVsIHVuZGVyIG1haW4gbGFiZWwgKHNlY29uZGFyeSBsYWJlbCBhbHdheXMgJ3RvcCcgYmFzZWxpbmUgYWxpZ25lZClcbiAgICBjb25zdCBzZWNvbmRhcnlPZmZzZXQgPSAwLjYgKiAoMSAtIHlNdWx0KSAqIHNpemVTY2FsZTtcbiAgICBsZXQgeU9mZnNldCA9IHNlY29uZGFyeSA/IHNlY29uZGFyeU9mZnNldCA6IDA7XG5cbiAgICAvLyBTcGVjaWFsIGNhc2UsIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHNlY29uZGFyeSBsYWJlbFxuICAgIGlmIChhbmNob3IgPT09ICdtaWRkbGUnICYmIGFsaWdubWVudCA9PT0gJ3RvcCcgJiYgZ2V0U2Vjb25kYXJ5VGV4dCkge1xuICAgICAgeU9mZnNldCAtPSBzZWNvbmRhcnlPZmZzZXQ7XG4gICAgICB5T2Zmc2V0IC09IHNlY29uZGFyeVNpemVTY2FsZTtcbiAgICAgIHlPZmZzZXQgKz0gc2l6ZVNjYWxlO1xuICAgIH1cblxuICAgIC8vIFBhZGRpbmcgYmFzZWQgb24gcG9pbnQgcmFkaXVzIChyYWRpdXMvIDQpXG4gICAgY29uc3QgcmFkaXVzUGFkZGluZyA9IDEgKyAxIC8gNDtcblxuICAgIHJldHVybiB0eXBlb2YgZ2V0UmFkaXVzID09PSAnZnVuY3Rpb24nXG4gICAgICA/IChkLCBpbmZvKSA9PiB7XG4gICAgICAgICAgY29uc3QgciA9IChpbmZvID8gZ2V0UmFkaXVzKGQsIGluZm8pIDogMSkgKiByYWRpdXNTY2FsZSAqIHJhZGl1c1BhZGRpbmc7XG4gICAgICAgICAgcmV0dXJuIFt4TXVsdCAqIChyICsgeFBhZGRpbmcpLCB5TXVsdCAqIChyICsgeVBhZGRpbmcpICsgeU9mZnNldF07XG4gICAgICAgIH1cbiAgICAgIDogW1xuICAgICAgICAgIHhNdWx0ICogKGdldFJhZGl1cyAqIHJhZGl1c1NjYWxlICogcmFkaXVzUGFkZGluZyArIHhQYWRkaW5nKSxcbiAgICAgICAgICB5TXVsdCAqIChnZXRSYWRpdXMgKiByYWRpdXNTY2FsZSAqIHJhZGl1c1BhZGRpbmcgKyB5UGFkZGluZykgKyB5T2Zmc2V0XG4gICAgICAgIF07XG4gIH1cblxuICBjYWxjdWxhdGVCYWNrZ3JvdW5kUGFkZGluZygpIHtcbiAgICBjb25zdCB7Z2V0VGV4dEFuY2hvcjogYW5jaG9yLCBnZXRBbGlnbm1lbnRCYXNlbGluZTogYWxpZ25tZW50LCBzaXplU2NhbGV9ID0gdGhpcy5wcm9wcztcblxuICAgIC8vIEhldXJpc3RpY3MgdG8gYXZvaWQgbGFiZWwgb3ZlcmxhcCAoc2hvdWxkIHdlIGJhc2UgdGhpcyBvbiB0aGUgdGV4dCBsZW5ndGg/KVxuICAgIGNvbnN0IHBhZGRpbmdYID0gMTIgKiBzaXplU2NhbGU7XG4gICAgY29uc3QgcGFkZGluZ1kgPSAzICogc2l6ZVNjYWxlO1xuICAgIGNvbnN0IGJhY2tncm91bmRQYWRkaW5nID0gWzAsIDAsIDAsIDBdO1xuICAgIGlmIChhbGlnbm1lbnQgPT09ICd0b3AnKSB7XG4gICAgICBiYWNrZ3JvdW5kUGFkZGluZ1tUT1BdID0gcGFkZGluZ1k7XG4gICAgfSBlbHNlIGlmIChhbGlnbm1lbnQgPT09ICdib3R0b20nKSB7XG4gICAgICBiYWNrZ3JvdW5kUGFkZGluZ1tCT1RUT01dID0gcGFkZGluZ1k7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJhY2tncm91bmRQYWRkaW5nW1RPUF0gPSAwLjUgKiBwYWRkaW5nWTtcbiAgICAgIGJhY2tncm91bmRQYWRkaW5nW0JPVFRPTV0gPSAwLjUgKiBwYWRkaW5nWTtcbiAgICB9XG4gICAgaWYgKGFuY2hvciA9PT0gJ3N0YXJ0Jykge1xuICAgICAgYmFja2dyb3VuZFBhZGRpbmdbTEVGVF0gPSBwYWRkaW5nWDtcbiAgICB9IGVsc2UgaWYgKGFuY2hvciA9PT0gJ2VuZCcpIHtcbiAgICAgIGJhY2tncm91bmRQYWRkaW5nW1JJR0hUXSA9IHBhZGRpbmdYO1xuICAgIH0gZWxzZSB7XG4gICAgICBiYWNrZ3JvdW5kUGFkZGluZ1tMRUZUXSA9IDAuNSAqIHBhZGRpbmdYO1xuICAgICAgYmFja2dyb3VuZFBhZGRpbmdbUklHSFRdID0gMC41ICogcGFkZGluZ1g7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJhY2tncm91bmRQYWRkaW5nO1xuICB9XG5cbiAgcmVuZGVyVGV4dExheWVyKGlkLCB7dXBkYXRlVHJpZ2dlcnM6IHVwZGF0ZVRyaWdnZXJzT3ZlcnJpZGUsIC4uLnByb3BzfSkge1xuICAgIGNvbnN0IHtcbiAgICAgIGRhdGEsXG5cbiAgICAgIGNoYXJhY3RlclNldCxcbiAgICAgIGZvbnRGYW1pbHksXG4gICAgICBmb250U2V0dGluZ3MsXG4gICAgICBmb250V2VpZ2h0LFxuICAgICAgb3V0bGluZUNvbG9yLFxuICAgICAgb3V0bGluZVdpZHRoLFxuICAgICAgc2l6ZVNjYWxlLFxuICAgICAgcmFkaXVzU2NhbGUsXG5cbiAgICAgIGdldEFsaWdubWVudEJhc2VsaW5lLFxuICAgICAgZ2V0Q29sb3IsXG4gICAgICBnZXRQb3NpdGlvbixcbiAgICAgIGdldFRleHRBbmNob3IsXG5cbiAgICAgIHVwZGF0ZVRyaWdnZXJzXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gbmV3IEVuaGFuY2VkVGV4dExheWVyKFxuICAgICAgdGhpcy5nZXRTdWJMYXllclByb3BzKHtcbiAgICAgICAgaWQsXG4gICAgICAgIGRhdGE6IGRhdGEsXG5cbiAgICAgICAgY2hhcmFjdGVyU2V0LFxuICAgICAgICBmb250RmFtaWx5LFxuICAgICAgICBmb250U2V0dGluZ3MsXG4gICAgICAgIGZvbnRXZWlnaHQsXG4gICAgICAgIG91dGxpbmVDb2xvcixcbiAgICAgICAgb3V0bGluZVdpZHRoLFxuICAgICAgICBzaXplU2NhbGUsXG5cbiAgICAgICAgZ2V0QWxpZ25tZW50QmFzZWxpbmUsXG4gICAgICAgIGdldENvbG9yLFxuICAgICAgICBnZXRQb3NpdGlvbixcbiAgICAgICAgZ2V0VGV4dEFuY2hvcixcblxuICAgICAgICB1cGRhdGVUcmlnZ2Vyczoge1xuICAgICAgICAgIC4uLnVwZGF0ZVRyaWdnZXJzLFxuICAgICAgICAgIC4uLnVwZGF0ZVRyaWdnZXJzT3ZlcnJpZGUsXG4gICAgICAgICAgZ2V0UGl4ZWxPZmZzZXQ6IFtcbiAgICAgICAgICAgIHVwZGF0ZVRyaWdnZXJzLmdldFJhZGl1cyxcbiAgICAgICAgICAgIHVwZGF0ZVRyaWdnZXJzLmdldFRleHRBbmNob3IsXG4gICAgICAgICAgICB1cGRhdGVUcmlnZ2Vycy5nZXRBbGlnbm1lbnRCYXNlbGluZSxcbiAgICAgICAgICAgIHJhZGl1c1NjYWxlLFxuICAgICAgICAgICAgc2l6ZVNjYWxlXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHtcbiAgICAgICAgZ2V0U2l6ZTogMSxcbiAgICAgICAgX3N1YkxheWVyUHJvcHM6IHtiYWNrZ3JvdW5kOiB7dHlwZTogRW5oYW5jZWRUZXh0QmFja2dyb3VuZExheWVyfX1cbiAgICAgIH0sXG4gICAgICAvLyBERUJVR1xuICAgICAgU0hPV19URVhUX0JPUkRFUlxuICAgICAgICA/IHtnZXRCYWNrZ3JvdW5kQ29sb3I6IFswLCAwLCAwLCAwXSwgZ2V0Qm9yZGVyQ29sb3I6IFsyNTUsIDAsIDAsIDgwXSwgZ2V0Qm9yZGVyV2lkdGg6IDF9XG4gICAgICAgIDoge30sXG4gICAgICBwcm9wc1xuICAgICk7XG4gIH1cblxuICByZW5kZXJMYXllcnMoKSB7XG4gICAgY29uc3Qge1xuICAgICAgZ2V0VGV4dCxcbiAgICAgIGdldFNlY29uZGFyeUNvbG9yLFxuICAgICAgZ2V0U2Vjb25kYXJ5VGV4dCxcbiAgICAgIHNlY29uZGFyeU91dGxpbmVDb2xvcixcbiAgICAgIHNlY29uZGFyeVNpemVTY2FsZSxcbiAgICAgIHVwZGF0ZVRyaWdnZXJzXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgZ2V0UGl4ZWxPZmZzZXQgPSB0aGlzLmNhbGN1bGF0ZVBpeGVsT2Zmc2V0KGZhbHNlKTtcbiAgICBjb25zdCBiYWNrZ3JvdW5kUGFkZGluZyA9IHRoaXMuY2FsY3VsYXRlQmFja2dyb3VuZFBhZGRpbmcoKTtcbiAgICBjb25zdCBvdXQgPSBbXG4gICAgICAvLyBUZXh0IGRvZXNuJ3QgdXBkYXRlIHZpYSB1cGRhdGVUcmlnZ2VyIGZvciBzb21lIHJlYXNvblxuICAgICAgdGhpcy5yZW5kZXJUZXh0TGF5ZXIoYCR7dXBkYXRlVHJpZ2dlcnMuZ2V0VGV4dH0tcHJpbWFyeWAsIHtcbiAgICAgICAgYmFja2dyb3VuZFBhZGRpbmcsXG4gICAgICAgIGdldFRleHQsXG4gICAgICAgIGdldFBpeGVsT2Zmc2V0LFxuICAgICAgICBiYWNrZ3JvdW5kOiB0cnVlIC8vIE9ubHkgdXNlIGJhY2tncm91bmQgZm9yIHByaW1hcnkgbGFiZWwgZm9yIGZhc3RlciBjb2xsaXNpb25zXG4gICAgICB9KSxcbiAgICAgIGdldFNlY29uZGFyeVRleHQgJiZcbiAgICAgICAgdGhpcy5yZW5kZXJUZXh0TGF5ZXIoYCR7dXBkYXRlVHJpZ2dlcnMuZ2V0U2Vjb25kYXJ5VGV4dH0tc2Vjb25kYXJ5YCwge1xuICAgICAgICAgIGdldFRleHQ6IGdldFNlY29uZGFyeVRleHQsXG4gICAgICAgICAgZ2V0UGl4ZWxPZmZzZXQ6IHRoaXMuY2FsY3VsYXRlUGl4ZWxPZmZzZXQodHJ1ZSksXG4gICAgICAgICAgZ2V0QWxpZ25tZW50QmFzZWxpbmU6ICd0b3AnLFxuICAgICAgICAgIHVwZGF0ZVRyaWdnZXJzOiB7Z2V0VGV4dDogdXBkYXRlVHJpZ2dlcnMuZ2V0U2Vjb25kYXJ5VGV4dH0sXG5cbiAgICAgICAgICAvLyBPcHRpb25hbCBvdmVycmlkZXNcbiAgICAgICAgICAuLi4oZ2V0U2Vjb25kYXJ5Q29sb3IgJiYge2dldENvbG9yOiBnZXRTZWNvbmRhcnlDb2xvcn0pLFxuICAgICAgICAgIC4uLihzZWNvbmRhcnlTaXplU2NhbGUgJiYge3NpemVTY2FsZTogc2Vjb25kYXJ5U2l6ZVNjYWxlfSksXG4gICAgICAgICAgLi4uKHNlY29uZGFyeU91dGxpbmVDb2xvciAmJiB7b3V0bGluZUNvbG9yOiBzZWNvbmRhcnlPdXRsaW5lQ29sb3J9KVxuICAgICAgICB9KVxuICAgIF07XG5cbiAgICByZXR1cm4gb3V0O1xuICB9XG59XG4iXX0=
|
|
@@ -338,6 +338,7 @@ var PointLayer = /*#__PURE__*/function (_Layer) {
|
|
|
338
338
|
getFilterValue: data.getFilterValue,
|
|
339
339
|
extensions: extensions,
|
|
340
340
|
filterRange: defaultLayerProps.filterRange,
|
|
341
|
+
maskId: defaultLayerProps.maskId,
|
|
341
342
|
visible: defaultLayerProps.visible
|
|
342
343
|
}, brushingProps);
|
|
343
344
|
|
|
@@ -472,4 +473,4 @@ var PointLayer = /*#__PURE__*/function (_Layer) {
|
|
|
472
473
|
}(_baseLayer["default"]);
|
|
473
474
|
|
|
474
475
|
exports["default"] = PointLayer;
|
|
475
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvcG9pbnQtbGF5ZXIvcG9pbnQtbGF5ZXIuanMiXSwibmFtZXMiOlsicG9pbnRQb3NBY2Nlc3NvciIsImxhdCIsImxuZyIsImFsdGl0dWRlIiwiZGMiLCJkIiwidmFsdWVBdCIsImluZGV4IiwiZmllbGRJZHgiLCJwb2ludFJlcXVpcmVkQ29sdW1ucyIsInBvaW50T3B0aW9uYWxDb2x1bW5zIiwiYnJ1c2hpbmdFeHRlbnNpb24iLCJCcnVzaGluZ0V4dGVuc2lvbiIsInBvaW50VmlzQ29uZmlncyIsInJhZGl1cyIsImN1c3RvbU1hcmtlcnMiLCJjdXN0b21NYXJrZXJzVXJsIiwiY3VzdG9tTWFya2Vyc1JhbmdlIiwibGFiZWxzRW5hYmxlZCIsIm9wYWNpdHkiLCJvdXRsaW5lIiwidGhpY2tuZXNzIiwic3Ryb2tlQ29sb3IiLCJjb2xvclJhbmdlIiwic3Ryb2tlQ29sb3JSYW5nZSIsInJhZGl1c1JhbmdlIiwiZmlsbGVkIiwidHlwZSIsImxhYmVsIiwiZGVmYXVsdFZhbHVlIiwicHJvcGVydHkiLCJQb2ludExheWVyIiwicHJvcHMiLCJyZWdpc3RlclZpc0NvbmZpZyIsImdldFBvc2l0aW9uQWNjZXNzb3IiLCJkYXRhQ29udGFpbmVyIiwiY29uZmlnIiwiY29sdW1ucyIsIlBvaW50TGF5ZXJJY29uIiwiZGVmYXVsdFBvaW50Q29sdW1uUGFpcnMiLCJjb2xvciIsImFjY2Vzc29yIiwiY29uZGl0aW9uIiwidmlzQ29uZmlnIiwia2V5IiwiZmllbGQiLCJzY2FsZSIsImRvbWFpbiIsInJhbmdlIiwiY2hhbm5lbFNjYWxlVHlwZSIsIkNIQU5ORUxfU0NBTEVTIiwic2l6ZSIsImZpeGVkIiwiY3VzdG9tTWFya2VyIiwic3VwcG9ydGVkRmllbGRUeXBlcyIsInJvdGF0aW9uIiwiaWRlbnRpdHkiLCJudWxsVmFsdWUiLCJyb3RhdGlvbkZpZWxkIiwiZGF0YXNldCIsImRlZmF1bHRDb2xvckZpZWxkIiwidXBkYXRlTGF5ZXJDb25maWciLCJjb2xvckZpZWxkIiwidXBkYXRlTGF5ZXJWaXN1YWxDaGFubmVsIiwic3Ryb2tlQ29sb3JGaWVsZCIsInN0cm9rZUNvbG9yRG9tYWluIiwic3Ryb2tlQ29sb3JTY2FsZSIsImN1c3RvbU1hcmtlcnNGaWVsZCIsImN1c3RvbU1hcmtlcnNTY2FsZSIsImdldFBvc2l0aW9uIiwiZmlsdGVyZWRJbmRleCIsImRhdGEiLCJpIiwibGVuZ3RoIiwicG9zIiwiZXZlcnkiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsInB1c2giLCJwb3NpdGlvbiIsImRhdGFzZXRzIiwib2xkTGF5ZXJEYXRhIiwidGV4dExhYmVsIiwiZGF0YUlkIiwiZ3B1RmlsdGVyIiwidXBkYXRlRGF0YSIsInRyaWdnZXJDaGFuZ2VkIiwidGV4dExhYmVscyIsImFjY2Vzc29ycyIsImdldEF0dHJpYnV0ZUFjY2Vzc29ycyIsImdldEZpbHRlclZhbHVlIiwiZmlsdGVyVmFsdWVBY2Nlc3NvciIsImJvdW5kcyIsImdldFBvaW50c0JvdW5kcyIsInVwZGF0ZU1ldGEiLCJvYmplY3RJbmZvIiwicGlja2VkIiwibGF5ZXIiLCJpZCIsIm9wdHMiLCJvYmplY3RIb3ZlcmVkIiwiaW50ZXJhY3Rpb25Db25maWciLCJyYWRpdXNTY2FsZSIsImdldFJhZGl1c1NjYWxlIiwiZGVmYXVsdExheWVyUHJvcHMiLCJnZXREZWZhdWx0RGVja0xheWVyUHJvcHMiLCJicnVzaGluZ1Byb3BzIiwiZ2V0QnJ1c2hpbmdFeHRlbnNpb25Qcm9wcyIsImV4dGVuc2lvbnMiLCJ1cGRhdGVUcmlnZ2VycyIsImZpbHRlclZhbHVlVXBkYXRlVHJpZ2dlcnMiLCJnZXRWaXN1YWxDaGFubmVsVXBkYXRlVHJpZ2dlcnMiLCJzaGFyZWRQcm9wcyIsImZpbHRlclJhbmdlIiwidmlzaWJsZSIsImhvdmVyZWRPYmplY3QiLCJoYXNIb3ZlcmVkT2JqZWN0IiwidGV4dExhYmVsTGF5ZXIiLCJyZW5kZXJUZXh0TGFiZWxMYXllciIsImdldFJhZGl1cyIsImNvbW1vbkxheWVyUHJvcHMiLCJwYXJhbWV0ZXJzIiwiZGVwdGhUZXN0IiwiY3VzdG9tTWFya2Vyc0NvbmZpZ3VyZWQiLCJCb29sZWFuIiwiY3VzdG9tTWFya2Vyc01pc0NvbmZpZ3VyZWQiLCJtYXhJY29uU2l6ZSIsImdldE1heE1hcmtlclNpemUiLCJ1c2VNYXNrIiwiaWNvbkxheWVyUHJvcHMiLCJnZXRJY29uIiwiZ2V0Q3VzdG9tTWFya2VySWNvbkFjY2Vzc29yIiwiZ2V0SWNvblVybCIsImdldFNpemUiLCJnZXRBbmdsZSIsImdldFJvdGF0aW9uIiwic2l6ZVNjYWxlIiwic2l6ZVVuaXRzIiwibG9hZE9wdGlvbnMiLCJpbWFnZSIsImltYWdlYml0bWFwIiwicmVzaXplV2lkdGgiLCJyZXNpemVIZWlnaHQiLCJyZXNpemVRdWFsaXR5IiwiSWNvbkxheWVyIiwiZ2V0Q29sb3IiLCJnZXRGaWxsQ29sb3IiLCJVTktOT1dOX0NPTE9SIiwiZ2V0RGVmYXVsdEhvdmVyTGF5ZXJQcm9wcyIsImhpZ2hsaWdodENvbG9yIiwic2NhdHRlclBsb3RMYXllclByb3BzIiwic3Ryb2tlZCIsImxpbmVXaWR0aFNjYWxlIiwicmFkaXVzTWF4UGl4ZWxzIiwiU2NhdHRlcnBsb3RMYXllciIsInJhZGl1c1VuaXRzIiwibGluZVdpZHRoVW5pdHMiLCJnZXRMaW5lQ29sb3IiLCJmaWVsZFBhaXJzIiwiZm9yRWFjaCIsInBhaXIiLCJsYXRGaWVsZCIsImxuZ0ZpZWxkIiwibGF5ZXJOYW1lIiwiZGVmYXVsdE5hbWUiLCJwcm9wIiwidmFsdWUiLCJERUZBVUxUX0xBWUVSX0NPTE9SIiwiaXNWaXNpYmxlIiwib3B0aW9uYWwiLCJMYXllciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7OztBQUVPLElBQU1BLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBbUI7QUFBQSxNQUFFQyxHQUFGLFFBQUVBLEdBQUY7QUFBQSxNQUFPQyxHQUFQLFFB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QzFGLE1BQVYsR0FBbUIwRixTQUFuQixHQUErQjtBQUQzQixTQUFiLENBTHlCLENBU3pCOztBQUNBLFlBQUlGLFFBQVEsQ0FBQ0ssS0FBVCxJQUFrQkMsb0NBQXRCLEVBQTJDO0FBQ3pDRixVQUFBQSxJQUFJLENBQUM3SCxLQUFMLEdBQWEsMEJBQVMrSCxxQ0FBb0JOLFFBQVEsQ0FBQ0ssS0FBN0IsQ0FBVCxDQUFiO0FBQ0QsU0Fad0IsQ0FjekI7OztBQUNBLFlBQUl0SSxLQUFLLENBQUN5QyxNQUFOLEtBQWlCLENBQXJCLEVBQXdCO0FBQ3RCNEYsVUFBQUEsSUFBSSxDQUFDRyxTQUFMLEdBQWlCLElBQWpCO0FBQ0Q7O0FBRURILFFBQUFBLElBQUksQ0FBQ2hJLE9BQUwsR0FBZTtBQUNicEMsVUFBQUEsR0FBRyxFQUFFZ0ssUUFEUTtBQUViL0osVUFBQUEsR0FBRyxFQUFFZ0ssUUFGUTtBQUdiL0osVUFBQUEsUUFBUSxFQUFFO0FBQUNtSyxZQUFBQSxLQUFLLEVBQUUsSUFBUjtBQUFjOUosWUFBQUEsUUFBUSxFQUFFLENBQUMsQ0FBekI7QUFBNEJpSyxZQUFBQSxRQUFRLEVBQUU7QUFBdEM7QUFIRyxTQUFmO0FBTUF6SSxRQUFBQSxLQUFLLENBQUM4QyxJQUFOLENBQVd1RixJQUFYO0FBQ0QsT0ExQkQ7QUE0QkEsYUFBTztBQUFDckksUUFBQUEsS0FBSyxFQUFMQTtBQUFELE9BQVA7QUFDRDs7O0VBMUlxQzBJLHFCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHtCcnVzaGluZ0V4dGVuc2lvbn0gZnJvbSAnQGRlY2suZ2wvZXh0ZW5zaW9ucyc7XG5pbXBvcnQge1NjYXR0ZXJwbG90TGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2xheWVycyc7XG5pbXBvcnQge0ljb25MYXllcn0gZnJvbSAnQGRlY2suZ2wvbGF5ZXJzJztcblxuaW1wb3J0IExheWVyIGZyb20gJy4uL2Jhc2UtbGF5ZXInO1xuaW1wb3J0IHtoZXhUb1JnYn0gZnJvbSAndXRpbHMvY29sb3ItdXRpbHMnO1xuaW1wb3J0IHtuZWdhdGVBY2Nlc3Nvcn0gZnJvbSAndXRpbHMvbGF5ZXItdXRpbHMnO1xuaW1wb3J0IHtmaW5kRGVmYXVsdENvbG9yRmllbGR9IGZyb20gJ3V0aWxzL2RhdGFzZXQtdXRpbHMnO1xuaW1wb3J0IFBvaW50TGF5ZXJJY29uIGZyb20gJy4vcG9pbnQtbGF5ZXItaWNvbic7XG5pbXBvcnQge0RFRkFVTFRfTEFZRVJfQ09MT1IsIENIQU5ORUxfU0NBTEVTLCBVTktOT1dOX0NPTE9SfSBmcm9tICdjb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5cbmltcG9ydCB7Zm9ybWF0VGV4dExhYmVsRGF0YX0gZnJvbSAnLi4vbGF5ZXItdGV4dC1sYWJlbCc7XG5cbmV4cG9ydCBjb25zdCBwb2ludFBvc0FjY2Vzc29yID0gKHtsYXQsIGxuZywgYWx0aXR1ZGV9KSA9PiBkYyA9PiBkID0+IFtcbiAgZGMudmFsdWVBdChkLmluZGV4LCBsbmcuZmllbGRJZHgpLFxuICBkYy52YWx1ZUF0KGQuaW5kZXgsIGxhdC5maWVsZElkeCksXG4gIGFsdGl0dWRlICYmIGFsdGl0dWRlLmZpZWxkSWR4ID4gLTEgPyBkYy52YWx1ZUF0KGQuaW5kZXgsIGFsdGl0dWRlLmZpZWxkSWR4KSA6IDBcbl07XG5cbmV4cG9ydCBjb25zdCBwb2ludFJlcXVpcmVkQ29sdW1ucyA9IFsnbGF0JywgJ2xuZyddO1xuZXhwb3J0IGNvbnN0IHBvaW50T3B0aW9uYWxDb2x1bW5zID0gWydhbHRpdHVkZSddO1xuXG5jb25zdCBicnVzaGluZ0V4dGVuc2lvbiA9IG5ldyBCcnVzaGluZ0V4dGVuc2lvbigpO1xuXG5leHBvcnQgY29uc3QgcG9pbnRWaXNDb25maWdzID0ge1xuICByYWRpdXM6ICdyYWRpdXMnLFxuICBjdXN0b21NYXJrZXJzOiAnY3VzdG9tTWFya2VycycsXG4gIGN1c3RvbU1hcmtlcnNVcmw6ICdjdXN0b21NYXJrZXJzVXJsJyxcbiAgY3VzdG9tTWFya2Vyc1JhbmdlOiAnY3VzdG9tTWFya2Vyc1JhbmdlJyxcbiAgbGFiZWxzRW5hYmxlZDogJ2xhYmVsc0VuYWJsZWQnLFxuICBvcGFjaXR5OiAnb3BhY2l0eScsXG4gIG91dGxpbmU6ICdvdXRsaW5lJyxcbiAgdGhpY2tuZXNzOiAndGhpY2tuZXNzJyxcbiAgc3Ryb2tlQ29sb3I6ICdzdHJva2VDb2xvcicsXG4gIGNvbG9yUmFuZ2U6ICdjb2xvclJhbmdlJyxcbiAgc3Ryb2tlQ29sb3JSYW5nZTogJ3N0cm9rZUNvbG9yUmFuZ2UnLFxuICByYWRpdXNSYW5nZTogJ3JhZGl1c1JhbmdlJyxcbiAgZmlsbGVkOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGxhYmVsOiAnbGF5ZXIuZmlsbENvbG9yJyxcbiAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgcHJvcGVydHk6ICdmaWxsZWQnXG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBvaW50TGF5ZXIgZXh0ZW5kcyBMYXllciB7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgdGhpcy5yZWdpc3RlclZpc0NvbmZpZyhwb2ludFZpc0NvbmZpZ3MpO1xuICAgIHRoaXMuZ2V0UG9zaXRpb25BY2Nlc3NvciA9IGRhdGFDb250YWluZXIgPT5cbiAgICAgIHBvaW50UG9zQWNjZXNzb3IodGhpcy5jb25maWcuY29sdW1ucykoZGF0YUNvbnRhaW5lcik7XG4gIH1cblxuICBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gJ3BvaW50JztcbiAgfVxuXG4gIGdldCBpc0FnZ3JlZ2F0ZWQoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0IGxheWVySWNvbigpIHtcbiAgICByZXR1cm4gUG9pbnRMYXllckljb247XG4gIH1cbiAgZ2V0IHJlcXVpcmVkTGF5ZXJDb2x1bW5zKCkge1xuICAgIHJldHVybiBwb2ludFJlcXVpcmVkQ29sdW1ucztcbiAgfVxuXG4gIGdldCBvcHRpb25hbENvbHVtbnMoKSB7XG4gICAgcmV0dXJuIHBvaW50T3B0aW9uYWxDb2x1bW5zO1xuICB9XG5cbiAgZ2V0IGNvbHVtblBhaXJzKCkge1xuICAgIHJldHVybiB0aGlzLmRlZmF1bHRQb2ludENvbHVtblBhaXJzO1xuICB9XG5cbiAgZ2V0IG5vbmVMYXllckRhdGFBZmZlY3RpbmdQcm9wcygpIHtcbiAgICByZXR1cm4gWy4uLnN1cGVyLm5vbmVMYXllckRhdGFBZmZlY3RpbmdQcm9wcywgJ3JhZGl1cyddO1xuICB9XG5cbiAgZ2V0IHZpc3VhbENoYW5uZWxzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBjb2xvcjoge1xuICAgICAgICAuLi5zdXBlci52aXN1YWxDaGFubmVscy5jb2xvcixcbiAgICAgICAgYWNjZXNzb3I6ICdnZXRGaWxsQ29sb3InLFxuICAgICAgICBjb25kaXRpb246IGNvbmZpZyA9PiBjb25maWcudmlzQ29uZmlnLmZpbGxlZCxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBjb25maWcgPT4gY29uZmlnLmNvbG9yXG4gICAgICB9LFxuICAgICAgc3Ryb2tlQ29sb3I6IHtcbiAgICAgICAgcHJvcGVydHk6ICdzdHJva2VDb2xvcicsXG4gICAgICAgIGtleTogJ3N0cm9rZUNvbG9yJyxcbiAgICAgICAgZmllbGQ6ICdzdHJva2VDb2xvckZpZWxkJyxcbiAgICAgICAgc2NhbGU6ICdzdHJva2VDb2xvclNjYWxlJyxcbiAgICAgICAgZG9tYWluOiAnc3Ryb2tlQ29sb3JEb21haW4nLFxuICAgICAgICByYW5nZTogJ3N0cm9rZUNvbG9yUmFuZ2UnLFxuICAgICAgICBjaGFubmVsU2NhbGVUeXBlOiBDSEFOTkVMX1NDQUxFUy5jb2xvcixcbiAgICAgICAgYWNjZXNzb3I6ICdnZXRMaW5lQ29sb3InLFxuICAgICAgICBjb25kaXRpb246IGNvbmZpZyA9PiBjb25maWcudmlzQ29uZmlnLm91dGxpbmUsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogY29uZmlnID0+IGNvbmZpZy52aXNDb25maWcuc3Ryb2tlQ29sb3IgfHwgY29uZmlnLmNvbG9yXG4gICAgICB9LFxuICAgICAgc2l6ZToge1xuICAgICAgICAuLi5zdXBlci52aXN1YWxDaGFubmVscy5zaXplLFxuICAgICAgICBwcm9wZXJ0eTogJ3JhZGl1cycsXG4gICAgICAgIHJhbmdlOiAncmFkaXVzUmFuZ2UnLFxuICAgICAgICBjaGFubmVsU2NhbGVUeXBlOiAncmFkaXVzJyxcbiAgICAgICAgYWNjZXNzb3I6ICdnZXRSYWRpdXMnLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IDFcbiAgICAgIH0sXG4gICAgICBjdXN0b21NYXJrZXJzOiB7XG4gICAgICAgIHByb3BlcnR5OiAnY3VzdG9tTWFya2VycycsXG4gICAgICAgIGtleTogJ2N1c3RvbU1hcmtlcnMnLFxuICAgICAgICBmaWVsZDogJ2N1c3RvbU1hcmtlcnNGaWVsZCcsXG4gICAgICAgIHNjYWxlOiAnY3VzdG9tTWFya2Vyc1NjYWxlJyxcbiAgICAgICAgZG9tYWluOiAnY3VzdG9tTWFya2Vyc0RvbWFpbicsXG4gICAgICAgIHJhbmdlOiAnY3VzdG9tTWFya2Vyc1JhbmdlJyxcbiAgICAgICAgZml4ZWQ6ICdjdXN0b21NYXJrZXJzVXJsJyxcbiAgICAgICAgY2hhbm5lbFNjYWxlVHlwZTogQ0hBTk5FTF9TQ0FMRVMuY3VzdG9tTWFya2VyLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldEljb25VcmwnLFxuICAgICAgICBzdXBwb3J0ZWRGaWVsZFR5cGVzOiBbJ3N0cmluZyddLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGNvbmZpZyA9PiBjb25maWcudmlzQ29uZmlnLmN1c3RvbU1hcmtlcnNVcmwsXG4gICAgICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy52aXNDb25maWcuY3VzdG9tTWFya2Vyc1xuICAgICAgfSxcbiAgICAgIHJvdGF0aW9uOiB7XG4gICAgICAgIHByb3BlcnR5OiAncm90YXRpb24nLFxuICAgICAgICBrZXk6ICdyb3RhdGlvbicsXG4gICAgICAgIGZpZWxkOiAncm90YXRpb25GaWVsZCcsXG4gICAgICAgIGNoYW5uZWxTY2FsZVR5cGU6IENIQU5ORUxfU0NBTEVTLmlkZW50aXR5LFxuICAgICAgICBhY2Nlc3NvcjogJ2dldFJvdGF0aW9uJyxcbiAgICAgICAgc3VwcG9ydGVkRmllbGRUeXBlczogWydmbG9hdCcsICdpbnRlZ2VyJywgJ3JlYWwnLCAnbnVtYmVyJ10sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogKCkgPT4gMCxcbiAgICAgICAgbnVsbFZhbHVlOiAwLFxuICAgICAgICBjb25kaXRpb246IGNvbmZpZyA9PiBjb25maWcucm90YXRpb25GaWVsZFxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBzZXRJbml0aWFsTGF5ZXJDb25maWcoZGF0YXNldCkge1xuICAgIGNvbnN0IGRlZmF1bHRDb2xvckZpZWxkID0gZmluZERlZmF1bHRDb2xvckZpZWxkKGRhdGFzZXQpO1xuXG4gICAgaWYgKGRlZmF1bHRDb2xvckZpZWxkKSB7XG4gICAgICB0aGlzLnVwZGF0ZUxheWVyQ29uZmlnKHtcbiAgICAgICAgY29sb3JGaWVsZDogZGVmYXVsdENvbG9yRmllbGRcbiAgICAgIH0pO1xuICAgICAgdGhpcy51cGRhdGVMYXllclZpc3VhbENoYW5uZWwoZGF0YXNldCwgJ2NvbG9yJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzdGF0aWMgZmluZERlZmF1bHRMYXllclByb3BzKHtmaWVsZFBhaXJzID0gW119KSB7XG4gICAgY29uc3QgcHJvcHMgPSBbXTtcblxuICAgIC8vIE1ha2UgbGF5ZXIgZm9yIGVhY2ggcGFpclxuICAgIGZpZWxkUGFpcnMuZm9yRWFjaChwYWlyID0+IHtcbiAgICAgIGNvbnN0IGxhdEZpZWxkID0gcGFpci5wYWlyLmxhdDtcbiAgICAgIGNvbnN0IGxuZ0ZpZWxkID0gcGFpci5wYWlyLmxuZztcbiAgICAgIGNvbnN0IGxheWVyTmFtZSA9IHBhaXIuZGVmYXVsdE5hbWU7XG5cbiAgICAgIGNvbnN0IHByb3AgPSB7XG4gICAgICAgIGxhYmVsOiBsYXllck5hbWUubGVuZ3RoID8gbGF5ZXJOYW1lIDogJ1BvaW50J1xuICAgICAgfTtcblxuICAgICAgLy8gZGVmYXVsdCBsYXllciBjb2xvciBmb3IgYmVnaW50cmlwIGFuZCBkcm9wb2ZmIHBvaW50XG4gICAgICBpZiAobGF0RmllbGQudmFsdWUgaW4gREVGQVVMVF9MQVlFUl9DT0xPUikge1xuICAgICAgICBwcm9wLmNvbG9yID0gaGV4VG9SZ2IoREVGQVVMVF9MQVlFUl9DT0xPUltsYXRGaWVsZC52YWx1ZV0pO1xuICAgICAgfVxuXG4gICAgICAvLyBzZXQgdGhlIGZpcnN0IGxheWVyIHRvIGJlIHZpc2libGVcbiAgICAgIGlmIChwcm9wcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcHJvcC5pc1Zpc2libGUgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBwcm9wLmNvbHVtbnMgPSB7XG4gICAgICAgIGxhdDogbGF0RmllbGQsXG4gICAgICAgIGxuZzogbG5nRmllbGQsXG4gICAgICAgIGFsdGl0dWRlOiB7dmFsdWU6IG51bGwsIGZpZWxkSWR4OiAtMSwgb3B0aW9uYWw6IHRydWV9XG4gICAgICB9O1xuXG4gICAgICBwcm9wcy5wdXNoKHByb3ApO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtwcm9wc307XG4gIH1cblxuICBnZXREZWZhdWx0TGF5ZXJDb25maWcocHJvcHMgPSB7fSkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdXBlci5nZXREZWZhdWx0TGF5ZXJDb25maWcocHJvcHMpLFxuXG4gICAgICAvLyBhZGQgc3Ryb2tlIGNvbG9yIHZpc3VhbCBjaGFubmVsXG4gICAgICBzdHJva2VDb2xvckZpZWxkOiBudWxsLFxuICAgICAgc3Ryb2tlQ29sb3JEb21haW46IFswLCAxXSxcbiAgICAgIHN0cm9rZUNvbG9yU2NhbGU6ICdxdWFudGlsZScsXG5cbiAgICAgIGN1c3RvbU1hcmtlcnNGaWVsZDogbnVsbCxcbiAgICAgIGN1c3RvbU1hcmtlcnNTY2FsZTogJ29yZGluYWwnXG4gICAgfTtcbiAgfVxuXG4gIGNhbGN1bGF0ZURhdGFBdHRyaWJ1dGUoe2ZpbHRlcmVkSW5kZXh9LCBnZXRQb3NpdGlvbikge1xuICAgIGNvbnN0IGRhdGEgPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsdGVyZWRJbmRleC5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgaW5kZXggPSBmaWx0ZXJlZEluZGV4W2ldO1xuICAgICAgY29uc3QgcG9zID0gZ2V0UG9zaXRpb24oe2luZGV4fSk7XG5cbiAgICAgIC8vIGlmIGRvZXNuJ3QgaGF2ZSBwb2ludCBsYXQgb3IgbG5nLCBkbyBub3QgYWRkIHRoZSBwb2ludFxuICAgICAgLy8gZGVjay5nbCBjYW4ndCBoYW5kbGUgcG9zaXRpb24gPSBudWxsXG4gICAgICBpZiAocG9zLmV2ZXJ5KE51bWJlci5pc0Zpbml0ZSkpIHtcbiAgICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAgICBwb3NpdGlvbjogcG9zLFxuICAgICAgICAgIGluZGV4XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGZvcm1hdExheWVyRGF0YShkYXRhc2V0cywgb2xkTGF5ZXJEYXRhKSB7XG4gICAgY29uc3Qge3RleHRMYWJlbH0gPSB0aGlzLmNvbmZpZztcbiAgICBjb25zdCB7Z3B1RmlsdGVyLCBkYXRhQ29udGFpbmVyfSA9IGRhdGFzZXRzW3RoaXMuY29uZmlnLmRhdGFJZF07XG4gICAgY29uc3Qge2RhdGEsIHRyaWdnZXJDaGFuZ2VkfSA9IHRoaXMudXBkYXRlRGF0YShkYXRhc2V0cywgb2xkTGF5ZXJEYXRhKTtcbiAgICBjb25zdCBnZXRQb3NpdGlvbiA9IHRoaXMuZ2V0UG9zaXRpb25BY2Nlc3NvcihkYXRhQ29udGFpbmVyKTtcblxuICAgIC8vIGdldCBhbGwgZGlzdGluY3QgY2hhcmFjdGVycyBpbiB0aGUgdGV4dCBsYWJlbHNcbiAgICBjb25zdCB0ZXh0TGFiZWxzID0gZm9ybWF0VGV4dExhYmVsRGF0YSh7dGV4dExhYmVsLCBkYXRhQ29udGFpbmVyfSk7XG5cbiAgICBjb25zdCBhY2Nlc3NvcnMgPSB0aGlzLmdldEF0dHJpYnV0ZUFjY2Vzc29ycyh7ZGF0YUNvbnRhaW5lcn0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGEsXG4gICAgICBnZXRQb3NpdGlvbixcbiAgICAgIGdldEZpbHRlclZhbHVlOiBncHVGaWx0ZXIuZmlsdGVyVmFsdWVBY2Nlc3NvcihkYXRhQ29udGFpbmVyKSgpLFxuICAgICAgdGV4dExhYmVscyxcbiAgICAgIC4uLmFjY2Vzc29yc1xuICAgIH07XG4gIH1cbiAgLyogZXNsaW50LWVuYWJsZSBjb21wbGV4aXR5ICovXG5cbiAgdXBkYXRlTGF5ZXJNZXRhKGRhdGFDb250YWluZXIpIHtcbiAgICBjb25zdCBnZXRQb3NpdGlvbiA9IHRoaXMuZ2V0UG9zaXRpb25BY2Nlc3NvcihkYXRhQ29udGFpbmVyKTtcbiAgICBjb25zdCBib3VuZHMgPSB0aGlzLmdldFBvaW50c0JvdW5kcyhkYXRhQ29udGFpbmVyLCBnZXRQb3NpdGlvbik7XG4gICAgdGhpcy51cGRhdGVNZXRhKHtib3VuZHN9KTtcbiAgfVxuXG4gIGlzTGF5ZXJIb3ZlcmVkKG9iamVjdEluZm8pIHtcbiAgICByZXR1cm4gKFxuICAgICAgKG9iamVjdEluZm8/LnBpY2tlZCAmJiBvYmplY3RJbmZvPy5sYXllcj8ucHJvcHM/LmlkID09PSB0aGlzLmlkKSB8fFxuICAgICAgb2JqZWN0SW5mbz8ubGF5ZXI/LnByb3BzPy5pZCA9PT0gYCR7dGhpcy5pZH0taWNvbmBcbiAgICApO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHksIG1heC1zdGF0ZW1lbnRzXG4gIHJlbmRlckxheWVyKG9wdHMpIHtcbiAgICBjb25zdCB7ZGF0YSwgZ3B1RmlsdGVyLCBvYmplY3RIb3ZlcmVkLCBpbnRlcmFjdGlvbkNvbmZpZ30gPSBvcHRzO1xuICAgIGNvbnN0IHtjdXN0b21NYXJrZXJzLCBjdXN0b21NYXJrZXJzVXJsLCBjdXN0b21NYXJrZXJzUmFuZ2V9ID0gdGhpcy5jb25maWcudmlzQ29uZmlnO1xuXG4gICAgY29uc3QgcmFkaXVzU2NhbGUgPSB0aGlzLmdldFJhZGl1c1NjYWxlKCk7XG5cbiAgICBjb25zdCBkZWZhdWx0TGF5ZXJQcm9wcyA9IHRoaXMuZ2V0RGVmYXVsdERlY2tMYXllclByb3BzKG9wdHMpO1xuICAgIGNvbnN0IGJydXNoaW5nUHJvcHMgPSB0aGlzLmdldEJydXNoaW5nRXh0ZW5zaW9uUHJvcHMoaW50ZXJhY3Rpb25Db25maWcpO1xuICAgIGNvbnN0IGV4dGVuc2lvbnMgPSBbLi4uZGVmYXVsdExheWVyUHJvcHMuZXh0ZW5zaW9ucywgYnJ1c2hpbmdFeHRlbnNpb25dO1xuXG4gICAgY29uc3QgdXBkYXRlVHJpZ2dlcnMgPSB7XG4gICAgICBnZXRQb3NpdGlvbjogdGhpcy5jb25maWcuY29sdW1ucyxcbiAgICAgIGdldEZpbHRlclZhbHVlOiBncHVGaWx0ZXIuZmlsdGVyVmFsdWVVcGRhdGVUcmlnZ2VycyxcbiAgICAgIC4uLnRoaXMuZ2V0VmlzdWFsQ2hhbm5lbFVwZGF0ZVRyaWdnZXJzKClcbiAgICB9O1xuXG4gICAgY29uc3Qgc2hhcmVkUHJvcHMgPSB7XG4gICAgICBnZXRGaWx0ZXJWYWx1ZTogZGF0YS5nZXRGaWx0ZXJWYWx1ZSxcbiAgICAgIGV4dGVuc2lvbnMsXG4gICAgICBmaWx0ZXJSYW5nZTogZGVmYXVsdExheWVyUHJvcHMuZmlsdGVyUmFuZ2UsXG4gICAgICB2aXNpYmxlOiBkZWZhdWx0TGF5ZXJQcm9wcy52aXNpYmxlLFxuICAgICAgLi4uYnJ1c2hpbmdQcm9wc1xuICAgIH07XG4gICAgY29uc3QgaG92ZXJlZE9iamVjdCA9IHRoaXMuaGFzSG92ZXJlZE9iamVjdChvYmplY3RIb3ZlcmVkKTtcblxuICAgIGNvbnN0IHRleHRMYWJlbExheWVyID0gdGhpcy5yZW5kZXJUZXh0TGFiZWxMYXllcihcbiAgICAgIHtcbiAgICAgICAgZ2V0UG9zaXRpb246IGRhdGEuZ2V0UG9zaXRpb24sXG4gICAgICAgIHNoYXJlZFByb3BzLFxuICAgICAgICAvLyBUT0RPIHJlbW92ZSB0aGlzIHNjYWxpbmcgYnkgaGFsZiBoZXJlIGFuZCBlbHNld2hlcmVcbiAgICAgICAgcmFkaXVzU2NhbGU6IGN1c3RvbU1hcmtlcnMgPyByYWRpdXNTY2FsZSAvIDIgOiByYWRpdXNTY2FsZSxcbiAgICAgICAgZ2V0UmFkaXVzOiBkYXRhLmdldFJhZGl1cyxcbiAgICAgICAgdXBkYXRlVHJpZ2dlcnNcbiAgICAgIH0sXG4gICAgICBvcHRzXG4gICAgKTtcbiAgICBjb25zdCBjb21tb25MYXllclByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdExheWVyUHJvcHMsXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIC8vIGNpcmNsZXMgd2lsbCBiZSBmbGF0IG9uIHRoZSBtYXAgd2hlbiB0aGUgYWx0aXR1ZGUgY29sdW1uIGlzIG5vdCB1c2VkXG4gICAgICAgIGRlcHRoVGVzdDogdGhpcy5jb25maWcuY29sdW1ucy5hbHRpdHVkZT8uZmllbGRJZHggPiAtMVxuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBjdXN0b21NYXJrZXJzRmllbGQgPSB0aGlzLmNvbmZpZy5jdXN0b21NYXJrZXJzRmllbGQ7XG4gICAgY29uc3QgY3VzdG9tTWFya2Vyc0NvbmZpZ3VyZWQgPVxuICAgICAgY3VzdG9tTWFya2VycyAmJiBCb29sZWFuKGN1c3RvbU1hcmtlcnNVcmwgfHwgKGN1c3RvbU1hcmtlcnNGaWVsZCAmJiBjdXN0b21NYXJrZXJzUmFuZ2UpKTtcbiAgICBjb25zdCBjdXN0b21NYXJrZXJzTWlzQ29uZmlndXJlZCA9IGN1c3RvbU1hcmtlcnMgJiYgIWN1c3RvbU1hcmtlcnNDb25maWd1cmVkO1xuXG4gICAgaWYgKGN1c3RvbU1hcmtlcnNDb25maWd1cmVkKSB7XG4gICAgICBjb25zdCBtYXhJY29uU2l6ZSA9IHRoaXMuZ2V0TWF4TWFya2VyU2l6ZSgpO1xuICAgICAgY29uc3QgdXNlTWFzayA9IEJvb2xlYW4odGhpcy5jb25maWcudmlzQ29uZmlnLmZpbGxlZCk7XG4gICAgICBjb25zdCBpY29uTGF5ZXJQcm9wcyA9IHtcbiAgICAgICAgZ2V0SWNvbjogdGhpcy5nZXRDdXN0b21NYXJrZXJJY29uQWNjZXNzb3IoZGF0YS5nZXRJY29uVXJsLCB1c2VNYXNrKSxcbiAgICAgICAgZ2V0UG9zaXRpb246IGRhdGEuZ2V0UG9zaXRpb24sXG4gICAgICAgIGdldFNpemU6IGRhdGEuZ2V0UmFkaXVzLFxuICAgICAgICBnZXRBbmdsZTogbmVnYXRlQWNjZXNzb3IoZGF0YS5nZXRSb3RhdGlvbiksXG4gICAgICAgIHNpemVTY2FsZTogcmFkaXVzU2NhbGUsXG4gICAgICAgIHNpemVVbml0czogJ3BpeGVscycsXG4gICAgICAgIGxvYWRPcHRpb25zOiB7XG4gICAgICAgICAgaW1hZ2U6IHtcbiAgICAgICAgICAgIHR5cGU6ICdpbWFnZWJpdG1hcCdcbiAgICAgICAgICB9LFxuICAgICAgICAgIGltYWdlYml0bWFwOiB7XG4gICAgICAgICAgICByZXNpemVXaWR0aDogbWF4SWNvblNpemUsXG4gICAgICAgICAgICByZXNpemVIZWlnaHQ6IG1heEljb25TaXplLFxuICAgICAgICAgICAgcmVzaXplUXVhbGl0eTogJ2hpZ2gnXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gW1xuICAgICAgICBuZXcgSWNvbkxheWVyKHtcbiAgICAgICAgICAuLi5jb21tb25MYXllclByb3BzLFxuICAgICAgICAgIC4uLmljb25MYXllclByb3BzLFxuICAgICAgICAgIGlkOiBgJHtkZWZhdWx0TGF5ZXJQcm9wcy5pZH0taWNvbmAsXG4gICAgICAgICAgZGF0YTogZGF0YS5kYXRhLFxuICAgICAgICAgIGdldENvbG9yOiB0aGlzLmNvbmZpZy52aXNDb25maWcuZmlsbGVkID8gZGF0YS5nZXRGaWxsQ29sb3IgOiBVTktOT1dOX0NPTE9SLFxuICAgICAgICAgIGdldEZpbHRlclZhbHVlOiBkYXRhLmdldEZpbHRlclZhbHVlLFxuICAgICAgICAgIHVwZGF0ZVRyaWdnZXJzOiB7XG4gICAgICAgICAgICBnZXRGaWx0ZXJWYWx1ZTogdXBkYXRlVHJpZ2dlcnMuZ2V0RmlsdGVyVmFsdWUsXG4gICAgICAgICAgICBnZXRDb2xvcjogey4uLnVwZGF0ZVRyaWdnZXJzLmdldEZpbGxDb2xvciwgZmlsbGVkOiB0aGlzLmNvbmZpZy52aXNDb25maWcuZmlsbGVkfSxcbiAgICAgICAgICAgIGdldEljb246IHsuLi51cGRhdGVUcmlnZ2Vycy5nZXRJY29uVXJsLCBtYXhJY29uU2l6ZSwgdXNlTWFza30sXG4gICAgICAgICAgICBnZXRTaXplOiB1cGRhdGVUcmlnZ2Vycy5nZXRSYWRpdXMsXG4gICAgICAgICAgICBnZXRBbmdsZTogdXBkYXRlVHJpZ2dlcnMuZ2V0Um90YXRpb25cbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICAuLi4oaG92ZXJlZE9iamVjdFxuICAgICAgICAgID8gW1xuICAgICAgICAgICAgICBuZXcgSWNvbkxheWVyKHtcbiAgICAgICAgICAgICAgICAuLi5pY29uTGF5ZXJQcm9wcyxcbiAgICAgICAgICAgICAgICAuLi50aGlzLmdldERlZmF1bHRIb3ZlckxheWVyUHJvcHMoKSxcbiAgICAgICAgICAgICAgICBpZDogYCR7ZGVmYXVsdExheWVyUHJvcHMuaWR9LWljb24taG92ZXJlZGAsXG4gICAgICAgICAgICAgICAgZGF0YTogW2hvdmVyZWRPYmplY3RdLFxuICAgICAgICAgICAgICAgIGdldENvbG9yOiB0aGlzLmNvbmZpZy5oaWdobGlnaHRDb2xvclxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgXVxuICAgICAgICAgIDogW10pLFxuICAgICAgICAuLi50ZXh0TGFiZWxMYXllclxuICAgICAgXTtcbiAgICB9XG5cbiAgICBjb25zdCBzY2F0dGVyUGxvdExheWVyUHJvcHMgPSB7XG4gICAgICBzdHJva2VkOiB0aGlzLmNvbmZpZy52aXNDb25maWcub3V0bGluZSxcbiAgICAgIGZpbGxlZDogdGhpcy5jb25maWcudmlzQ29uZmlnLmZpbGxlZCxcbiAgICAgIGxpbmVXaWR0aFNjYWxlOiB0aGlzLmNvbmZpZy52aXNDb25maWcudGhpY2tuZXNzLFxuICAgICAgLy8gVE9ETzogaW52ZW50IGJldHRlciB3YXkgdG8gcmVuZGVyIHNvbWV0aGluZyB3aGVuIGN1c3RvbU1hcmtlcnMgYXJlIG5vdCB5ZXQgY29uZmlndXJlZFxuICAgICAgcmFkaXVzU2NhbGU6IGN1c3RvbU1hcmtlcnNNaXNDb25maWd1cmVkID8gcmFkaXVzU2NhbGUgLyAyIDogcmFkaXVzU2NhbGUsXG4gICAgICByYWRpdXNNYXhQaXhlbHM6IDUwMFxuICAgIH07XG5cbiAgICByZXR1cm4gW1xuICAgICAgbmV3IFNjYXR0ZXJwbG90TGF5ZXIoe1xuICAgICAgICAuLi5icnVzaGluZ1Byb3BzLFxuICAgICAgICAuLi5kYXRhLFxuICAgICAgICAuLi5jb21tb25MYXllclByb3BzLFxuICAgICAgICAuLi5zY2F0dGVyUGxvdExheWVyUHJvcHMsXG4gICAgICAgIHJhZGl1c1VuaXRzOiAncGl4ZWxzJyxcbiAgICAgICAgbGluZVdpZHRoVW5pdHM6ICdwaXhlbHMnLFxuICAgICAgICB1cGRhdGVUcmlnZ2VycyxcbiAgICAgICAgZXh0ZW5zaW9uc1xuICAgICAgfSksXG4gICAgICAvLyBob3ZlciBsYXllclxuICAgICAgLi4uKGhvdmVyZWRPYmplY3RcbiAgICAgICAgPyBbXG4gICAgICAgICAgICBuZXcgU2NhdHRlcnBsb3RMYXllcih7XG4gICAgICAgICAgICAgIC4uLnRoaXMuZ2V0RGVmYXVsdEhvdmVyTGF5ZXJQcm9wcygpLFxuICAgICAgICAgICAgICAuLi5zY2F0dGVyUGxvdExheWVyUHJvcHMsXG4gICAgICAgICAgICAgIGRhdGE6IFtob3ZlcmVkT2JqZWN0XSxcbiAgICAgICAgICAgICAgZ2V0TGluZUNvbG9yOiB0aGlzLmNvbmZpZy5oaWdobGlnaHRDb2xvcixcbiAgICAgICAgICAgICAgZ2V0RmlsbENvbG9yOiB0aGlzLmNvbmZpZy5oaWdobGlnaHRDb2xvcixcbiAgICAgICAgICAgICAgZ2V0UmFkaXVzOiBkYXRhLmdldFJhZGl1cyxcbiAgICAgICAgICAgICAgZ2V0UG9zaXRpb246IGRhdGEuZ2V0UG9zaXRpb25cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgXVxuICAgICAgICA6IFtdKSxcbiAgICAgIC8vIHRleHQgbGFiZWwgbGF5ZXJcbiAgICAgIC4uLnRleHRMYWJlbExheWVyXG4gICAgXTtcbiAgfVxufVxuIl19
|
|
476
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvcG9pbnQtbGF5ZXIvcG9pbnQtbGF5ZXIuanMiXSwibmFtZXMiOlsicG9pbnRQb3NBY2Nlc3NvciIsImxhdCIsImxuZyIsImFsdGl0dWRlIiwiZGMiLCJkIiwidmFsdWVBdCIsImluZGV4IiwiZmllbGRJZHgiLCJwb2ludFJlcXVpcmVkQ29sdW1ucyIsInBvaW50T3B0aW9uYWxDb2x1bW5zIiwiYnJ1c2hpbmdFeHRlbnNpb24iLCJCcnVzaGluZ0V4dGVuc2lvbiIsInBvaW50VmlzQ29uZmlncyIsInJhZGl1cyIsImN1c3RvbU1hcmtlcnMiLCJjdXN0b21NYXJrZXJzVXJsIiwiY3VzdG9tTWFya2Vyc1JhbmdlIiwibGFiZWxzRW5hYmxlZCIsIm9wYWNpdHkiLCJvdXRsaW5lIiwidGhpY2tuZXNzIiwic3Ryb2tlQ29sb3IiLCJjb2xvclJhbmdlIiwic3Ryb2tlQ29sb3JSYW5nZSIsInJhZGl1c1JhbmdlIiwiZmlsbGVkIiwidHlwZSIsImxhYmVsIiwiZGVmYXVsdFZhbHVlIiwicHJvcGVydHkiLCJQb2ludExheWVyIiwicHJvcHMiLCJyZWdpc3RlclZpc0NvbmZpZyIsImdldFBvc2l0aW9uQWNjZXNzb3IiLCJkYXRhQ29udGFpbmVyIiwiY29uZmlnIiwiY29sdW1ucyIsIlBvaW50TGF5ZXJJY29uIiwiZGVmYXVsdFBvaW50Q29sdW1uUGFpcnMiLCJjb2xvciIsImFjY2Vzc29yIiwiY29uZGl0aW9uIiwidmlzQ29uZmlnIiwia2V5IiwiZmllbGQiLCJzY2FsZSIsImRvbWFpbiIsInJhbmdlIiwiY2hhbm5lbFNjYWxlVHlwZSIsIkNIQU5ORUxfU0NBTEVTIiwic2l6ZSIsImZpeGVkIiwiY3VzdG9tTWFya2VyIiwic3VwcG9ydGVkRmllbGRUeXBlcyIsInJvdGF0aW9uIiwiaWRlbnRpdHkiLCJudWxsVmFsdWUiLCJyb3RhdGlvbkZpZWxkIiwiZGF0YXNldCIsImRlZmF1bHRDb2xvckZpZWxkIiwidXBkYXRlTGF5ZXJDb25maWciLCJjb2xvckZpZWxkIiwidXBkYXRlTGF5ZXJWaXN1YWxDaGFubmVsIiwic3Ryb2tlQ29sb3JGaWVsZCIsInN0cm9rZUNvbG9yRG9tYWluIiwic3Ryb2tlQ29sb3JTY2FsZSIsImN1c3RvbU1hcmtlcnNGaWVsZCIsImN1c3RvbU1hcmtlcnNTY2FsZSIsImdldFBvc2l0aW9uIiwiZmlsdGVyZWRJbmRleCIsImRhdGEiLCJpIiwibGVuZ3RoIiwicG9zIiwiZXZlcnkiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsInB1c2giLCJwb3NpdGlvbiIsImRhdGFzZXRzIiwib2xkTGF5ZXJEYXRhIiwidGV4dExhYmVsIiwiZGF0YUlkIiwiZ3B1RmlsdGVyIiwidXBkYXRlRGF0YSIsInRyaWdnZXJDaGFuZ2VkIiwidGV4dExhYmVscyIsImFjY2Vzc29ycyIsImdldEF0dHJpYnV0ZUFjY2Vzc29ycyIsImdldEZpbHRlclZhbHVlIiwiZmlsdGVyVmFsdWVBY2Nlc3NvciIsImJvdW5kcyIsImdldFBvaW50c0JvdW5kcyIsInVwZGF0ZU1ldGEiLCJvYmplY3RJbmZvIiwicGlja2VkIiwibGF5ZXIiLCJpZCIsIm9wdHMiLCJvYmplY3RIb3ZlcmVkIiwiaW50ZXJhY3Rpb25Db25maWciLCJyYWRpdXNTY2FsZSIsImdldFJhZGl1c1NjYWxlIiwiZGVmYXVsdExheWVyUHJvcHMiLCJnZXREZWZhdWx0RGVja0xheWVyUHJvcHMiLCJicnVzaGluZ1Byb3BzIiwiZ2V0QnJ1c2hpbmdFeHRlbnNpb25Qcm9wcyIsImV4dGVuc2lvbnMiLCJ1cGRhdGVUcmlnZ2VycyIsImZpbHRlclZhbHVlVXBkYXRlVHJpZ2dlcnMiLCJnZXRWaXN1YWxDaGFubmVsVXBkYXRlVHJpZ2dlcnMiLCJzaGFyZWRQcm9wcyIsImZpbHRlclJhbmdlIiwibWFza0lkIiwidmlzaWJsZSIsImhvdmVyZWRPYmplY3QiLCJoYXNIb3ZlcmVkT2JqZWN0IiwidGV4dExhYmVsTGF5ZXIiLCJyZW5kZXJUZXh0TGFiZWxMYXllciIsImdldFJhZGl1cyIsImNvbW1vbkxheWVyUHJvcHMiLCJwYXJhbWV0ZXJzIiwiZGVwdGhUZXN0IiwiY3VzdG9tTWFya2Vyc0NvbmZpZ3VyZWQiLCJCb29sZWFuIiwiY3VzdG9tTWFya2Vyc01pc0NvbmZpZ3VyZWQiLCJtYXhJY29uU2l6ZSIsImdldE1heE1hcmtlclNpemUiLCJ1c2VNYXNrIiwiaWNvbkxheWVyUHJvcHMiLCJnZXRJY29uIiwiZ2V0Q3VzdG9tTWFya2VySWNvbkFjY2Vzc29yIiwiZ2V0SWNvblVybCIsImdldFNpemUiLCJnZXRBbmdsZSIsImdldFJvdGF0aW9uIiwic2l6ZVNjYWxlIiwic2l6ZVVuaXRzIiwibG9hZE9wdGlvbnMiLCJpbWFnZSIsImltYWdlYml0bWFwIiwicmVzaXplV2lkdGgiLCJyZXNpemVIZWlnaHQiLCJyZXNpemVRdWFsaXR5IiwiSWNvbkxheWVyIiwiZ2V0Q29sb3IiLCJnZXRGaWxsQ29sb3IiLCJVTktOT1dOX0NPTE9SIiwiZ2V0RGVmYXVsdEhvdmVyTGF5ZXJQcm9wcyIsImhpZ2hsaWdodENvbG9yIiwic2NhdHRlclBsb3RMYXllclByb3BzIiwic3Ryb2tlZCIsImxpbmVXaWR0aFNjYWxlIiwicmFkaXVzTWF4UGl4ZWxzIiwiU2NhdHRlcnBsb3RMYXllciIsInJhZGl1c1VuaXRzIiwibGluZVdpZHRoVW5pdHMiLCJnZXRMaW5lQ29sb3IiLCJmaWVsZFBhaXJzIiwiZm9yRWFjaCIsInBhaXIiLCJsYXRGaWVsZCIsImxuZ0ZpZWxkIiwibGF5ZXJOYW1lIiwiZGVmYXVsdE5hbWUiLCJwcm9wIiwidmFsdWUiLCJERUZBVUxUX0xBWUVSX0NPTE9SIiwiaXNWaXNpYmxlIiwib3B0aW9uYWwiLCJMYXllciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7OztBQUVPLElBQU1BLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBbUI7QUFBQSxNQUFFQyxHQUFGLFFBQUVBLEdBQUY7QUFBQSxNQUFP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LFlBQU1DLElBQUksR0FBRztBQUNYMUksVUFBQUEsS0FBSyxFQUFFd0ksU0FBUyxDQUFDM0YsTUFBVixHQUFtQjJGLFNBQW5CLEdBQStCO0FBRDNCLFNBQWIsQ0FMeUIsQ0FTekI7O0FBQ0EsWUFBSUYsUUFBUSxDQUFDSyxLQUFULElBQWtCQyxvQ0FBdEIsRUFBMkM7QUFDekNGLFVBQUFBLElBQUksQ0FBQzlILEtBQUwsR0FBYSwwQkFBU2dJLHFDQUFvQk4sUUFBUSxDQUFDSyxLQUE3QixDQUFULENBQWI7QUFDRCxTQVp3QixDQWN6Qjs7O0FBQ0EsWUFBSXZJLEtBQUssQ0FBQ3lDLE1BQU4sS0FBaUIsQ0FBckIsRUFBd0I7QUFDdEI2RixVQUFBQSxJQUFJLENBQUNHLFNBQUwsR0FBaUIsSUFBakI7QUFDRDs7QUFFREgsUUFBQUEsSUFBSSxDQUFDakksT0FBTCxHQUFlO0FBQ2JwQyxVQUFBQSxHQUFHLEVBQUVpSyxRQURRO0FBRWJoSyxVQUFBQSxHQUFHLEVBQUVpSyxRQUZRO0FBR2JoSyxVQUFBQSxRQUFRLEVBQUU7QUFBQ29LLFlBQUFBLEtBQUssRUFBRSxJQUFSO0FBQWMvSixZQUFBQSxRQUFRLEVBQUUsQ0FBQyxDQUF6QjtBQUE0QmtLLFlBQUFBLFFBQVEsRUFBRTtBQUF0QztBQUhHLFNBQWY7QUFNQTFJLFFBQUFBLEtBQUssQ0FBQzhDLElBQU4sQ0FBV3dGLElBQVg7QUFDRCxPQTFCRDtBQTRCQSxhQUFPO0FBQUN0SSxRQUFBQSxLQUFLLEVBQUxBO0FBQUQsT0FBUDtBQUNEOzs7RUExSXFDMkkscUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge0JydXNoaW5nRXh0ZW5zaW9ufSBmcm9tICdAZGVjay5nbC9leHRlbnNpb25zJztcbmltcG9ydCB7U2NhdHRlcnBsb3RMYXllcn0gZnJvbSAnQGRlY2suZ2wvbGF5ZXJzJztcbmltcG9ydCB7SWNvbkxheWVyfSBmcm9tICdAZGVjay5nbC9sYXllcnMnO1xuXG5pbXBvcnQgTGF5ZXIgZnJvbSAnLi4vYmFzZS1sYXllcic7XG5pbXBvcnQge2hleFRvUmdifSBmcm9tICd1dGlscy9jb2xvci11dGlscyc7XG5pbXBvcnQge25lZ2F0ZUFjY2Vzc29yfSBmcm9tICd1dGlscy9sYXllci11dGlscyc7XG5pbXBvcnQge2ZpbmREZWZhdWx0Q29sb3JGaWVsZH0gZnJvbSAndXRpbHMvZGF0YXNldC11dGlscyc7XG5pbXBvcnQgUG9pbnRMYXllckljb24gZnJvbSAnLi9wb2ludC1sYXllci1pY29uJztcbmltcG9ydCB7REVGQVVMVF9MQVlFUl9DT0xPUiwgQ0hBTk5FTF9TQ0FMRVMsIFVOS05PV05fQ09MT1J9IGZyb20gJ2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcblxuaW1wb3J0IHtmb3JtYXRUZXh0TGFiZWxEYXRhfSBmcm9tICcuLi9sYXllci10ZXh0LWxhYmVsJztcblxuZXhwb3J0IGNvbnN0IHBvaW50UG9zQWNjZXNzb3IgPSAoe2xhdCwgbG5nLCBhbHRpdHVkZX0pID0+IGRjID0+IGQgPT4gW1xuICBkYy52YWx1ZUF0KGQuaW5kZXgsIGxuZy5maWVsZElkeCksXG4gIGRjLnZhbHVlQXQoZC5pbmRleCwgbGF0LmZpZWxkSWR4KSxcbiAgYWx0aXR1ZGUgJiYgYWx0aXR1ZGUuZmllbGRJZHggPiAtMSA/IGRjLnZhbHVlQXQoZC5pbmRleCwgYWx0aXR1ZGUuZmllbGRJZHgpIDogMFxuXTtcblxuZXhwb3J0IGNvbnN0IHBvaW50UmVxdWlyZWRDb2x1bW5zID0gWydsYXQnLCAnbG5nJ107XG5leHBvcnQgY29uc3QgcG9pbnRPcHRpb25hbENvbHVtbnMgPSBbJ2FsdGl0dWRlJ107XG5cbmNvbnN0IGJydXNoaW5nRXh0ZW5zaW9uID0gbmV3IEJydXNoaW5nRXh0ZW5zaW9uKCk7XG5cbmV4cG9ydCBjb25zdCBwb2ludFZpc0NvbmZpZ3MgPSB7XG4gIHJhZGl1czogJ3JhZGl1cycsXG4gIGN1c3RvbU1hcmtlcnM6ICdjdXN0b21NYXJrZXJzJyxcbiAgY3VzdG9tTWFya2Vyc1VybDogJ2N1c3RvbU1hcmtlcnNVcmwnLFxuICBjdXN0b21NYXJrZXJzUmFuZ2U6ICdjdXN0b21NYXJrZXJzUmFuZ2UnLFxuICBsYWJlbHNFbmFibGVkOiAnbGFiZWxzRW5hYmxlZCcsXG4gIG9wYWNpdHk6ICdvcGFjaXR5JyxcbiAgb3V0bGluZTogJ291dGxpbmUnLFxuICB0aGlja25lc3M6ICd0aGlja25lc3MnLFxuICBzdHJva2VDb2xvcjogJ3N0cm9rZUNvbG9yJyxcbiAgY29sb3JSYW5nZTogJ2NvbG9yUmFuZ2UnLFxuICBzdHJva2VDb2xvclJhbmdlOiAnc3Ryb2tlQ29sb3JSYW5nZScsXG4gIHJhZGl1c1JhbmdlOiAncmFkaXVzUmFuZ2UnLFxuICBmaWxsZWQ6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgbGFiZWw6ICdsYXllci5maWxsQ29sb3InLFxuICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICBwcm9wZXJ0eTogJ2ZpbGxlZCdcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUG9pbnRMYXllciBleHRlbmRzIExheWVyIHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICB0aGlzLnJlZ2lzdGVyVmlzQ29uZmlnKHBvaW50VmlzQ29uZmlncyk7XG4gICAgdGhpcy5nZXRQb3NpdGlvbkFjY2Vzc29yID0gZGF0YUNvbnRhaW5lciA9PlxuICAgICAgcG9pbnRQb3NBY2Nlc3Nvcih0aGlzLmNvbmZpZy5jb2x1bW5zKShkYXRhQ29udGFpbmVyKTtcbiAgfVxuXG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiAncG9pbnQnO1xuICB9XG5cbiAgZ2V0IGlzQWdncmVnYXRlZCgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXQgbGF5ZXJJY29uKCkge1xuICAgIHJldHVybiBQb2ludExheWVySWNvbjtcbiAgfVxuICBnZXQgcmVxdWlyZWRMYXllckNvbHVtbnMoKSB7XG4gICAgcmV0dXJuIHBvaW50UmVxdWlyZWRDb2x1bW5zO1xuICB9XG5cbiAgZ2V0IG9wdGlvbmFsQ29sdW1ucygpIHtcbiAgICByZXR1cm4gcG9pbnRPcHRpb25hbENvbHVtbnM7XG4gIH1cblxuICBnZXQgY29sdW1uUGFpcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFBvaW50Q29sdW1uUGFpcnM7XG4gIH1cblxuICBnZXQgbm9uZUxheWVyRGF0YUFmZmVjdGluZ1Byb3BzKCkge1xuICAgIHJldHVybiBbLi4uc3VwZXIubm9uZUxheWVyRGF0YUFmZmVjdGluZ1Byb3BzLCAncmFkaXVzJ107XG4gIH1cblxuICBnZXQgdmlzdWFsQ2hhbm5lbHMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiB7XG4gICAgICAgIC4uLnN1cGVyLnZpc3VhbENoYW5uZWxzLmNvbG9yLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldEZpbGxDb2xvcicsXG4gICAgICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy52aXNDb25maWcuZmlsbGVkLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGNvbmZpZyA9PiBjb25maWcuY29sb3JcbiAgICAgIH0sXG4gICAgICBzdHJva2VDb2xvcjoge1xuICAgICAgICBwcm9wZXJ0eTogJ3N0cm9rZUNvbG9yJyxcbiAgICAgICAga2V5OiAnc3Ryb2tlQ29sb3InLFxuICAgICAgICBmaWVsZDogJ3N0cm9rZUNvbG9yRmllbGQnLFxuICAgICAgICBzY2FsZTogJ3N0cm9rZUNvbG9yU2NhbGUnLFxuICAgICAgICBkb21haW46ICdzdHJva2VDb2xvckRvbWFpbicsXG4gICAgICAgIHJhbmdlOiAnc3Ryb2tlQ29sb3JSYW5nZScsXG4gICAgICAgIGNoYW5uZWxTY2FsZVR5cGU6IENIQU5ORUxfU0NBTEVTLmNvbG9yLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldExpbmVDb2xvcicsXG4gICAgICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy52aXNDb25maWcub3V0bGluZSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBjb25maWcgPT4gY29uZmlnLnZpc0NvbmZpZy5zdHJva2VDb2xvciB8fCBjb25maWcuY29sb3JcbiAgICAgIH0sXG4gICAgICBzaXplOiB7XG4gICAgICAgIC4uLnN1cGVyLnZpc3VhbENoYW5uZWxzLnNpemUsXG4gICAgICAgIHByb3BlcnR5OiAncmFkaXVzJyxcbiAgICAgICAgcmFuZ2U6ICdyYWRpdXNSYW5nZScsXG4gICAgICAgIGNoYW5uZWxTY2FsZVR5cGU6ICdyYWRpdXMnLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldFJhZGl1cycsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogMVxuICAgICAgfSxcbiAgICAgIGN1c3RvbU1hcmtlcnM6IHtcbiAgICAgICAgcHJvcGVydHk6ICdjdXN0b21NYXJrZXJzJyxcbiAgICAgICAga2V5OiAnY3VzdG9tTWFya2VycycsXG4gICAgICAgIGZpZWxkOiAnY3VzdG9tTWFya2Vyc0ZpZWxkJyxcbiAgICAgICAgc2NhbGU6ICdjdXN0b21NYXJrZXJzU2NhbGUnLFxuICAgICAgICBkb21haW46ICdjdXN0b21NYXJrZXJzRG9tYWluJyxcbiAgICAgICAgcmFuZ2U6ICdjdXN0b21NYXJrZXJzUmFuZ2UnLFxuICAgICAgICBmaXhlZDogJ2N1c3RvbU1hcmtlcnNVcmwnLFxuICAgICAgICBjaGFubmVsU2NhbGVUeXBlOiBDSEFOTkVMX1NDQUxFUy5jdXN0b21NYXJrZXIsXG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0SWNvblVybCcsXG4gICAgICAgIHN1cHBvcnRlZEZpZWxkVHlwZXM6IFsnc3RyaW5nJ10sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogY29uZmlnID0+IGNvbmZpZy52aXNDb25maWcuY3VzdG9tTWFya2Vyc1VybCxcbiAgICAgICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLnZpc0NvbmZpZy5jdXN0b21NYXJrZXJzXG4gICAgICB9LFxuICAgICAgcm90YXRpb246IHtcbiAgICAgICAgcHJvcGVydHk6ICdyb3RhdGlvbicsXG4gICAgICAgIGtleTogJ3JvdGF0aW9uJyxcbiAgICAgICAgZmllbGQ6ICdyb3RhdGlvbkZpZWxkJyxcbiAgICAgICAgY2hhbm5lbFNjYWxlVHlwZTogQ0hBTk5FTF9TQ0FMRVMuaWRlbnRpdHksXG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0Um90YXRpb24nLFxuICAgICAgICBzdXBwb3J0ZWRGaWVsZFR5cGVzOiBbJ2Zsb2F0JywgJ2ludGVnZXInLCAncmVhbCcsICdudW1iZXInXSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAoKSA9PiAwLFxuICAgICAgICBudWxsVmFsdWU6IDAsXG4gICAgICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy5yb3RhdGlvbkZpZWxkXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHNldEluaXRpYWxMYXllckNvbmZpZyhkYXRhc2V0KSB7XG4gICAgY29uc3QgZGVmYXVsdENvbG9yRmllbGQgPSBmaW5kRGVmYXVsdENvbG9yRmllbGQoZGF0YXNldCk7XG5cbiAgICBpZiAoZGVmYXVsdENvbG9yRmllbGQpIHtcbiAgICAgIHRoaXMudXBkYXRlTGF5ZXJDb25maWcoe1xuICAgICAgICBjb2xvckZpZWxkOiBkZWZhdWx0Q29sb3JGaWVsZFxuICAgICAgfSk7XG4gICAgICB0aGlzLnVwZGF0ZUxheWVyVmlzdWFsQ2hhbm5lbChkYXRhc2V0LCAnY29sb3InKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHN0YXRpYyBmaW5kRGVmYXVsdExheWVyUHJvcHMoe2ZpZWxkUGFpcnMgPSBbXX0pIHtcbiAgICBjb25zdCBwcm9wcyA9IFtdO1xuXG4gICAgLy8gTWFrZSBsYXllciBmb3IgZWFjaCBwYWlyXG4gICAgZmllbGRQYWlycy5mb3JFYWNoKHBhaXIgPT4ge1xuICAgICAgY29uc3QgbGF0RmllbGQgPSBwYWlyLnBhaXIubGF0O1xuICAgICAgY29uc3QgbG5nRmllbGQgPSBwYWlyLnBhaXIubG5nO1xuICAgICAgY29uc3QgbGF5ZXJOYW1lID0gcGFpci5kZWZhdWx0TmFtZTtcblxuICAgICAgY29uc3QgcHJvcCA9IHtcbiAgICAgICAgbGFiZWw6IGxheWVyTmFtZS5sZW5ndGggPyBsYXllck5hbWUgOiAnUG9pbnQnXG4gICAgICB9O1xuXG4gICAgICAvLyBkZWZhdWx0IGxheWVyIGNvbG9yIGZvciBiZWdpbnRyaXAgYW5kIGRyb3BvZmYgcG9pbnRcbiAgICAgIGlmIChsYXRGaWVsZC52YWx1ZSBpbiBERUZBVUxUX0xBWUVSX0NPTE9SKSB7XG4gICAgICAgIHByb3AuY29sb3IgPSBoZXhUb1JnYihERUZBVUxUX0xBWUVSX0NPTE9SW2xhdEZpZWxkLnZhbHVlXSk7XG4gICAgICB9XG5cbiAgICAgIC8vIHNldCB0aGUgZmlyc3QgbGF5ZXIgdG8gYmUgdmlzaWJsZVxuICAgICAgaWYgKHByb3BzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBwcm9wLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHByb3AuY29sdW1ucyA9IHtcbiAgICAgICAgbGF0OiBsYXRGaWVsZCxcbiAgICAgICAgbG5nOiBsbmdGaWVsZCxcbiAgICAgICAgYWx0aXR1ZGU6IHt2YWx1ZTogbnVsbCwgZmllbGRJZHg6IC0xLCBvcHRpb25hbDogdHJ1ZX1cbiAgICAgIH07XG5cbiAgICAgIHByb3BzLnB1c2gocHJvcCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge3Byb3BzfTtcbiAgfVxuXG4gIGdldERlZmF1bHRMYXllckNvbmZpZyhwcm9wcyA9IHt9KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN1cGVyLmdldERlZmF1bHRMYXllckNvbmZpZyhwcm9wcyksXG5cbiAgICAgIC8vIGFkZCBzdHJva2UgY29sb3IgdmlzdWFsIGNoYW5uZWxcbiAgICAgIHN0cm9rZUNvbG9yRmllbGQ6IG51bGwsXG4gICAgICBzdHJva2VDb2xvckRvbWFpbjogWzAsIDFdLFxuICAgICAgc3Ryb2tlQ29sb3JTY2FsZTogJ3F1YW50aWxlJyxcblxuICAgICAgY3VzdG9tTWFya2Vyc0ZpZWxkOiBudWxsLFxuICAgICAgY3VzdG9tTWFya2Vyc1NjYWxlOiAnb3JkaW5hbCdcbiAgICB9O1xuICB9XG5cbiAgY2FsY3VsYXRlRGF0YUF0dHJpYnV0ZSh7ZmlsdGVyZWRJbmRleH0sIGdldFBvc2l0aW9uKSB7XG4gICAgY29uc3QgZGF0YSA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWx0ZXJlZEluZGV4Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBpbmRleCA9IGZpbHRlcmVkSW5kZXhbaV07XG4gICAgICBjb25zdCBwb3MgPSBnZXRQb3NpdGlvbih7aW5kZXh9KTtcblxuICAgICAgLy8gaWYgZG9lc24ndCBoYXZlIHBvaW50IGxhdCBvciBsbmcsIGRvIG5vdCBhZGQgdGhlIHBvaW50XG4gICAgICAvLyBkZWNrLmdsIGNhbid0IGhhbmRsZSBwb3NpdGlvbiA9IG51bGxcbiAgICAgIGlmIChwb3MuZXZlcnkoTnVtYmVyLmlzRmluaXRlKSkge1xuICAgICAgICBkYXRhLnB1c2goe1xuICAgICAgICAgIHBvc2l0aW9uOiBwb3MsXG4gICAgICAgICAgaW5kZXhcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgZm9ybWF0TGF5ZXJEYXRhKGRhdGFzZXRzLCBvbGRMYXllckRhdGEpIHtcbiAgICBjb25zdCB7dGV4dExhYmVsfSA9IHRoaXMuY29uZmlnO1xuICAgIGNvbnN0IHtncHVGaWx0ZXIsIGRhdGFDb250YWluZXJ9ID0gZGF0YXNldHNbdGhpcy5jb25maWcuZGF0YUlkXTtcbiAgICBjb25zdCB7ZGF0YSwgdHJpZ2dlckNoYW5nZWR9ID0gdGhpcy51cGRhdGVEYXRhKGRhdGFzZXRzLCBvbGRMYXllckRhdGEpO1xuICAgIGNvbnN0IGdldFBvc2l0aW9uID0gdGhpcy5nZXRQb3NpdGlvbkFjY2Vzc29yKGRhdGFDb250YWluZXIpO1xuXG4gICAgLy8gZ2V0IGFsbCBkaXN0aW5jdCBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0IGxhYmVsc1xuICAgIGNvbnN0IHRleHRMYWJlbHMgPSBmb3JtYXRUZXh0TGFiZWxEYXRhKHt0ZXh0TGFiZWwsIGRhdGFDb250YWluZXJ9KTtcblxuICAgIGNvbnN0IGFjY2Vzc29ycyA9IHRoaXMuZ2V0QXR0cmlidXRlQWNjZXNzb3JzKHtkYXRhQ29udGFpbmVyfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YSxcbiAgICAgIGdldFBvc2l0aW9uLFxuICAgICAgZ2V0RmlsdGVyVmFsdWU6IGdwdUZpbHRlci5maWx0ZXJWYWx1ZUFjY2Vzc29yKGRhdGFDb250YWluZXIpKCksXG4gICAgICB0ZXh0TGFiZWxzLFxuICAgICAgLi4uYWNjZXNzb3JzXG4gICAgfTtcbiAgfVxuICAvKiBlc2xpbnQtZW5hYmxlIGNvbXBsZXhpdHkgKi9cblxuICB1cGRhdGVMYXllck1ldGEoZGF0YUNvbnRhaW5lcikge1xuICAgIGNvbnN0IGdldFBvc2l0aW9uID0gdGhpcy5nZXRQb3NpdGlvbkFjY2Vzc29yKGRhdGFDb250YWluZXIpO1xuICAgIGNvbnN0IGJvdW5kcyA9IHRoaXMuZ2V0UG9pbnRzQm91bmRzKGRhdGFDb250YWluZXIsIGdldFBvc2l0aW9uKTtcbiAgICB0aGlzLnVwZGF0ZU1ldGEoe2JvdW5kc30pO1xuICB9XG5cbiAgaXNMYXllckhvdmVyZWQob2JqZWN0SW5mbykge1xuICAgIHJldHVybiAoXG4gICAgICAob2JqZWN0SW5mbz8ucGlja2VkICYmIG9iamVjdEluZm8/LmxheWVyPy5wcm9wcz8uaWQgPT09IHRoaXMuaWQpIHx8XG4gICAgICBvYmplY3RJbmZvPy5sYXllcj8ucHJvcHM/LmlkID09PSBgJHt0aGlzLmlkfS1pY29uYFxuICAgICk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eSwgbWF4LXN0YXRlbWVudHNcbiAgcmVuZGVyTGF5ZXIob3B0cykge1xuICAgIGNvbnN0IHtkYXRhLCBncHVGaWx0ZXIsIG9iamVjdEhvdmVyZWQsIGludGVyYWN0aW9uQ29uZmlnfSA9IG9wdHM7XG4gICAgY29uc3Qge2N1c3RvbU1hcmtlcnMsIGN1c3RvbU1hcmtlcnNVcmwsIGN1c3RvbU1hcmtlcnNSYW5nZX0gPSB0aGlzLmNvbmZpZy52aXNDb25maWc7XG5cbiAgICBjb25zdCByYWRpdXNTY2FsZSA9IHRoaXMuZ2V0UmFkaXVzU2NhbGUoKTtcblxuICAgIGNvbnN0IGRlZmF1bHRMYXllclByb3BzID0gdGhpcy5nZXREZWZhdWx0RGVja0xheWVyUHJvcHMob3B0cyk7XG4gICAgY29uc3QgYnJ1c2hpbmdQcm9wcyA9IHRoaXMuZ2V0QnJ1c2hpbmdFeHRlbnNpb25Qcm9wcyhpbnRlcmFjdGlvbkNvbmZpZyk7XG4gICAgY29uc3QgZXh0ZW5zaW9ucyA9IFsuLi5kZWZhdWx0TGF5ZXJQcm9wcy5leHRlbnNpb25zLCBicnVzaGluZ0V4dGVuc2lvbl07XG5cbiAgICBjb25zdCB1cGRhdGVUcmlnZ2VycyA9IHtcbiAgICAgIGdldFBvc2l0aW9uOiB0aGlzLmNvbmZpZy5jb2x1bW5zLFxuICAgICAgZ2V0RmlsdGVyVmFsdWU6IGdwdUZpbHRlci5maWx0ZXJWYWx1ZVVwZGF0ZVRyaWdnZXJzLFxuICAgICAgLi4udGhpcy5nZXRWaXN1YWxDaGFubmVsVXBkYXRlVHJpZ2dlcnMoKVxuICAgIH07XG5cbiAgICBjb25zdCBzaGFyZWRQcm9wcyA9IHtcbiAgICAgIGdldEZpbHRlclZhbHVlOiBkYXRhLmdldEZpbHRlclZhbHVlLFxuICAgICAgZXh0ZW5zaW9ucyxcbiAgICAgIGZpbHRlclJhbmdlOiBkZWZhdWx0TGF5ZXJQcm9wcy5maWx0ZXJSYW5nZSxcbiAgICAgIG1hc2tJZDogZGVmYXVsdExheWVyUHJvcHMubWFza0lkLFxuICAgICAgdmlzaWJsZTogZGVmYXVsdExheWVyUHJvcHMudmlzaWJsZSxcbiAgICAgIC4uLmJydXNoaW5nUHJvcHNcbiAgICB9O1xuICAgIGNvbnN0IGhvdmVyZWRPYmplY3QgPSB0aGlzLmhhc0hvdmVyZWRPYmplY3Qob2JqZWN0SG92ZXJlZCk7XG5cbiAgICBjb25zdCB0ZXh0TGFiZWxMYXllciA9IHRoaXMucmVuZGVyVGV4dExhYmVsTGF5ZXIoXG4gICAgICB7XG4gICAgICAgIGdldFBvc2l0aW9uOiBkYXRhLmdldFBvc2l0aW9uLFxuICAgICAgICBzaGFyZWRQcm9wcyxcbiAgICAgICAgLy8gVE9ETyByZW1vdmUgdGhpcyBzY2FsaW5nIGJ5IGhhbGYgaGVyZSBhbmQgZWxzZXdoZXJlXG4gICAgICAgIHJhZGl1c1NjYWxlOiBjdXN0b21NYXJrZXJzID8gcmFkaXVzU2NhbGUgLyAyIDogcmFkaXVzU2NhbGUsXG4gICAgICAgIGdldFJhZGl1czogZGF0YS5nZXRSYWRpdXMsXG4gICAgICAgIHVwZGF0ZVRyaWdnZXJzXG4gICAgICB9LFxuICAgICAgb3B0c1xuICAgICk7XG4gICAgY29uc3QgY29tbW9uTGF5ZXJQcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRMYXllclByb3BzLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAvLyBjaXJjbGVzIHdpbGwgYmUgZmxhdCBvbiB0aGUgbWFwIHdoZW4gdGhlIGFsdGl0dWRlIGNvbHVtbiBpcyBub3QgdXNlZFxuICAgICAgICBkZXB0aFRlc3Q6IHRoaXMuY29uZmlnLmNvbHVtbnMuYWx0aXR1ZGU/LmZpZWxkSWR4ID4gLTFcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgY3VzdG9tTWFya2Vyc0ZpZWxkID0gdGhpcy5jb25maWcuY3VzdG9tTWFya2Vyc0ZpZWxkO1xuICAgIGNvbnN0IGN1c3RvbU1hcmtlcnNDb25maWd1cmVkID1cbiAgICAgIGN1c3RvbU1hcmtlcnMgJiYgQm9vbGVhbihjdXN0b21NYXJrZXJzVXJsIHx8IChjdXN0b21NYXJrZXJzRmllbGQgJiYgY3VzdG9tTWFya2Vyc1JhbmdlKSk7XG4gICAgY29uc3QgY3VzdG9tTWFya2Vyc01pc0NvbmZpZ3VyZWQgPSBjdXN0b21NYXJrZXJzICYmICFjdXN0b21NYXJrZXJzQ29uZmlndXJlZDtcblxuICAgIGlmIChjdXN0b21NYXJrZXJzQ29uZmlndXJlZCkge1xuICAgICAgY29uc3QgbWF4SWNvblNpemUgPSB0aGlzLmdldE1heE1hcmtlclNpemUoKTtcbiAgICAgIGNvbnN0IHVzZU1hc2sgPSBCb29sZWFuKHRoaXMuY29uZmlnLnZpc0NvbmZpZy5maWxsZWQpO1xuICAgICAgY29uc3QgaWNvbkxheWVyUHJvcHMgPSB7XG4gICAgICAgIGdldEljb246IHRoaXMuZ2V0Q3VzdG9tTWFya2VySWNvbkFjY2Vzc29yKGRhdGEuZ2V0SWNvblVybCwgdXNlTWFzayksXG4gICAgICAgIGdldFBvc2l0aW9uOiBkYXRhLmdldFBvc2l0aW9uLFxuICAgICAgICBnZXRTaXplOiBkYXRhLmdldFJhZGl1cyxcbiAgICAgICAgZ2V0QW5nbGU6IG5lZ2F0ZUFjY2Vzc29yKGRhdGEuZ2V0Um90YXRpb24pLFxuICAgICAgICBzaXplU2NhbGU6IHJhZGl1c1NjYWxlLFxuICAgICAgICBzaXplVW5pdHM6ICdwaXhlbHMnLFxuICAgICAgICBsb2FkT3B0aW9uczoge1xuICAgICAgICAgIGltYWdlOiB7XG4gICAgICAgICAgICB0eXBlOiAnaW1hZ2ViaXRtYXAnXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpbWFnZWJpdG1hcDoge1xuICAgICAgICAgICAgcmVzaXplV2lkdGg6IG1heEljb25TaXplLFxuICAgICAgICAgICAgcmVzaXplSGVpZ2h0OiBtYXhJY29uU2l6ZSxcbiAgICAgICAgICAgIHJlc2l6ZVF1YWxpdHk6ICdoaWdoJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIFtcbiAgICAgICAgbmV3IEljb25MYXllcih7XG4gICAgICAgICAgLi4uY29tbW9uTGF5ZXJQcm9wcyxcbiAgICAgICAgICAuLi5pY29uTGF5ZXJQcm9wcyxcbiAgICAgICAgICBpZDogYCR7ZGVmYXVsdExheWVyUHJvcHMuaWR9LWljb25gLFxuICAgICAgICAgIGRhdGE6IGRhdGEuZGF0YSxcbiAgICAgICAgICBnZXRDb2xvcjogdGhpcy5jb25maWcudmlzQ29uZmlnLmZpbGxlZCA/IGRhdGEuZ2V0RmlsbENvbG9yIDogVU5LTk9XTl9DT0xPUixcbiAgICAgICAgICBnZXRGaWx0ZXJWYWx1ZTogZGF0YS5nZXRGaWx0ZXJWYWx1ZSxcbiAgICAgICAgICB1cGRhdGVUcmlnZ2Vyczoge1xuICAgICAgICAgICAgZ2V0RmlsdGVyVmFsdWU6IHVwZGF0ZVRyaWdnZXJzLmdldEZpbHRlclZhbHVlLFxuICAgICAgICAgICAgZ2V0Q29sb3I6IHsuLi51cGRhdGVUcmlnZ2Vycy5nZXRGaWxsQ29sb3IsIGZpbGxlZDogdGhpcy5jb25maWcudmlzQ29uZmlnLmZpbGxlZH0sXG4gICAgICAgICAgICBnZXRJY29uOiB7Li4udXBkYXRlVHJpZ2dlcnMuZ2V0SWNvblVybCwgbWF4SWNvblNpemUsIHVzZU1hc2t9LFxuICAgICAgICAgICAgZ2V0U2l6ZTogdXBkYXRlVHJpZ2dlcnMuZ2V0UmFkaXVzLFxuICAgICAgICAgICAgZ2V0QW5nbGU6IHVwZGF0ZVRyaWdnZXJzLmdldFJvdGF0aW9uXG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgLi4uKGhvdmVyZWRPYmplY3RcbiAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgbmV3IEljb25MYXllcih7XG4gICAgICAgICAgICAgICAgLi4uaWNvbkxheWVyUHJvcHMsXG4gICAgICAgICAgICAgICAgLi4udGhpcy5nZXREZWZhdWx0SG92ZXJMYXllclByb3BzKCksXG4gICAgICAgICAgICAgICAgaWQ6IGAke2RlZmF1bHRMYXllclByb3BzLmlkfS1pY29uLWhvdmVyZWRgLFxuICAgICAgICAgICAgICAgIGRhdGE6IFtob3ZlcmVkT2JqZWN0XSxcbiAgICAgICAgICAgICAgICBnZXRDb2xvcjogdGhpcy5jb25maWcuaGlnaGxpZ2h0Q29sb3JcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIF1cbiAgICAgICAgICA6IFtdKSxcbiAgICAgICAgLi4udGV4dExhYmVsTGF5ZXJcbiAgICAgIF07XG4gICAgfVxuXG4gICAgY29uc3Qgc2NhdHRlclBsb3RMYXllclByb3BzID0ge1xuICAgICAgc3Ryb2tlZDogdGhpcy5jb25maWcudmlzQ29uZmlnLm91dGxpbmUsXG4gICAgICBmaWxsZWQ6IHRoaXMuY29uZmlnLnZpc0NvbmZpZy5maWxsZWQsXG4gICAgICBsaW5lV2lkdGhTY2FsZTogdGhpcy5jb25maWcudmlzQ29uZmlnLnRoaWNrbmVzcyxcbiAgICAgIC8vIFRPRE86IGludmVudCBiZXR0ZXIgd2F5IHRvIHJlbmRlciBzb21ldGhpbmcgd2hlbiBjdXN0b21NYXJrZXJzIGFyZSBub3QgeWV0IGNvbmZpZ3VyZWRcbiAgICAgIHJhZGl1c1NjYWxlOiBjdXN0b21NYXJrZXJzTWlzQ29uZmlndXJlZCA/IHJhZGl1c1NjYWxlIC8gMiA6IHJhZGl1c1NjYWxlLFxuICAgICAgcmFkaXVzTWF4UGl4ZWxzOiA1MDBcbiAgICB9O1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIG5ldyBTY2F0dGVycGxvdExheWVyKHtcbiAgICAgICAgLi4uYnJ1c2hpbmdQcm9wcyxcbiAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgLi4uY29tbW9uTGF5ZXJQcm9wcyxcbiAgICAgICAgLi4uc2NhdHRlclBsb3RMYXllclByb3BzLFxuICAgICAgICByYWRpdXNVbml0czogJ3BpeGVscycsXG4gICAgICAgIGxpbmVXaWR0aFVuaXRzOiAncGl4ZWxzJyxcbiAgICAgICAgdXBkYXRlVHJpZ2dlcnMsXG4gICAgICAgIGV4dGVuc2lvbnNcbiAgICAgIH0pLFxuICAgICAgLy8gaG92ZXIgbGF5ZXJcbiAgICAgIC4uLihob3ZlcmVkT2JqZWN0XG4gICAgICAgID8gW1xuICAgICAgICAgICAgbmV3IFNjYXR0ZXJwbG90TGF5ZXIoe1xuICAgICAgICAgICAgICAuLi50aGlzLmdldERlZmF1bHRIb3ZlckxheWVyUHJvcHMoKSxcbiAgICAgICAgICAgICAgLi4uc2NhdHRlclBsb3RMYXllclByb3BzLFxuICAgICAgICAgICAgICBkYXRhOiBbaG92ZXJlZE9iamVjdF0sXG4gICAgICAgICAgICAgIGdldExpbmVDb2xvcjogdGhpcy5jb25maWcuaGlnaGxpZ2h0Q29sb3IsXG4gICAgICAgICAgICAgIGdldEZpbGxDb2xvcjogdGhpcy5jb25maWcuaGlnaGxpZ2h0Q29sb3IsXG4gICAgICAgICAgICAgIGdldFJhZGl1czogZGF0YS5nZXRSYWRpdXMsXG4gICAgICAgICAgICAgIGdldFBvc2l0aW9uOiBkYXRhLmdldFBvc2l0aW9uXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIF1cbiAgICAgICAgOiBbXSksXG4gICAgICAvLyB0ZXh0IGxhYmVsIGxheWVyXG4gICAgICAuLi50ZXh0TGFiZWxMYXllclxuICAgIF07XG4gIH1cbn1cbiJdfQ==
|