kepler.gl 3.2.0 → 3.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/ai-assistant/src/config/models.d.ts +8 -0
- package/dist/src/components/src/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +3 -2
- package/dist/src/localization/src/translations/en.d.ts +1 -0
- package/dist/src/utils/src/arrow-data-container.d.ts +3 -2
- package/dist/src/utils/src/data-container-utils.d.ts +2 -0
- package/package.json +2 -2
- package/src/actions/package.json +8 -8
- package/src/ai-assistant/dist/components/ai-assistant-config.js +40 -24
- package/src/ai-assistant/dist/config/models.d.ts +8 -0
- package/src/ai-assistant/dist/config/models.js +16 -8
- package/src/ai-assistant/dist/localization.js +7 -7
- package/src/ai-assistant/dist/reducers/index.js +3 -2
- package/src/ai-assistant/package.json +16 -16
- package/src/ai-assistant/src/components/ai-assistant-config.tsx +39 -28
- package/src/ai-assistant/src/config/models.ts +37 -25
- package/src/ai-assistant/src/localization.ts +6 -6
- package/src/ai-assistant/src/reducers/index.ts +2 -1
- package/src/cloud-providers/package.json +2 -2
- package/src/common-utils/package.json +3 -3
- package/src/components/dist/common/color-legend.js +8 -8
- package/src/components/dist/common/data-table/index.js +13 -9
- package/src/components/dist/map/map-legend-panel.js +10 -4
- package/src/components/dist/map/map-legend.js +2 -2
- package/src/components/dist/plot-container.js +4 -2
- package/src/components/dist/side-panel/interaction-panel/interaction-panel.js +2 -2
- package/src/components/dist/side-panel/layer-panel/color-breaks-panel.js +11 -2
- package/src/components/dist/side-panel/layer-panel/color-scale-selector.js +65 -12
- package/src/components/dist/side-panel/layer-panel/custom-palette.js +18 -7
- package/src/components/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +3 -2
- package/src/components/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +18 -4
- package/src/components/package.json +15 -15
- package/src/components/src/common/color-legend.tsx +15 -2
- package/src/components/src/common/data-table/index.tsx +1 -1
- package/src/components/src/map/map-legend-panel.tsx +21 -2
- package/src/components/src/map/map-legend.tsx +1 -1
- package/src/components/src/plot-container.tsx +2 -1
- package/src/components/src/side-panel/interaction-panel/interaction-panel.tsx +1 -0
- package/src/components/src/side-panel/layer-panel/color-breaks-panel.tsx +14 -3
- package/src/components/src/side-panel/layer-panel/color-scale-selector.tsx +62 -8
- package/src/components/src/side-panel/layer-panel/custom-palette.tsx +11 -5
- package/src/components/src/side-panel/layer-panel/vector-tile-layer-configurator.tsx +19 -2
- package/src/constants/dist/default-settings.js +1 -1
- package/src/constants/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/1b/11/43d4199b6142de0b88c672f2b036c5aa4ca836cf35977bbafcdb1962b91e94f8336655a57f0742571ceb13fc69ef4ba0e3cb91dc9a8d61ef041c6eb15e7a +1 -0
- package/src/constants/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/b3/bd/e4f91c7af9e320b979e29ad3b9e3a4dfcd61e4a09d6e4579104c40dcace7651b443fdd6d7ff5d947ed6c9df2c0bbbcc76a2ea86d6398e4945257eeb80dd5 +1 -0
- package/src/constants/node_modules/.cache/terser-webpack-plugin/index-v5/ac/e2/e903ec95ada0b0075fdcfb6133e2e75c9b3b0504a29ca665704aaed90b2b +2 -0
- package/src/constants/node_modules/.cache/terser-webpack-plugin/index-v5/b4/c5/a43653dff3b380f7b0793080a57c980a9a136764933e79454de0fe43a5ca +2 -0
- package/src/constants/package.json +2 -2
- package/src/constants/umd/keplergl.min.js +1 -1
- package/src/deckgl-arrow-layers/package.json +2 -2
- package/src/deckgl-layers/package.json +4 -4
- package/src/duckdb/dist/table/duckdb-table-utils.js +3 -2
- package/src/duckdb/package.json +6 -6
- package/src/duckdb/src/table/duckdb-table-utils.ts +5 -1
- package/src/effects/package.json +5 -5
- package/src/layers/dist/geojson-layer/geojson-utils.js +23 -5
- package/src/layers/dist/icon-layer/icon-layer.js +12 -2
- package/src/layers/dist/vector-tile/common-tile/tile-dataset.d.ts +4 -0
- package/src/layers/dist/vector-tile/common-tile/tile-dataset.js +10 -1
- package/src/layers/dist/vector-tile/vector-tile-layer.d.ts +11 -0
- package/src/layers/dist/vector-tile/vector-tile-layer.js +113 -7
- package/src/layers/package.json +9 -9
- package/src/layers/src/geojson-layer/geojson-utils.ts +22 -0
- package/src/layers/src/icon-layer/icon-layer.ts +49 -38
- package/src/layers/src/vector-tile/common-tile/tile-dataset.ts +7 -0
- package/src/layers/src/vector-tile/vector-tile-layer.ts +110 -6
- package/src/localization/dist/translations/en.d.ts +1 -0
- package/src/localization/dist/translations/en.js +2 -1
- package/src/localization/package.json +1 -1
- package/src/localization/src/translations/en.ts +1 -0
- package/src/processors/dist/data-processor.js +15 -5
- package/src/processors/package.json +7 -7
- package/src/processors/src/data-processor.ts +19 -4
- package/src/reducers/package.json +16 -16
- package/src/schemas/package.json +7 -7
- package/src/styles/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/52/82/28cacf6fd462b779c22675964b655bf3a9f3ce9ec3c9b141a401a5bf90cb7d904ac65ab8e484570130b12771af0a0d5bab20e6976cfa773666763e046a6a +1 -0
- package/src/styles/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/53/93/f8e389b6450ee0636bf336363d2d6865d8a1fe2445c15cc1e36c651e1ddf448358eb74e894f4bf6fc48ef881dc64cc221c48b133ecf0e02132f2c5fbfe11 +1 -0
- package/src/styles/node_modules/.cache/terser-webpack-plugin/index-v5/2e/45/ed6e0c1beb8bca4698a47b5feda8789a22d96978bc4839949bd26e827454 +2 -0
- package/src/styles/node_modules/.cache/terser-webpack-plugin/index-v5/56/db/b5a812c56b0d1dcdcd33da37e464062a19c8752cb2296603dc72d2c54d31 +2 -0
- package/src/styles/package.json +2 -2
- package/src/styles/umd/keplergl.min.js +1 -1
- package/src/table/dist/dataset-utils.js +18 -7
- package/src/table/dist/kepler-table.js +2 -1
- package/src/table/package.json +5 -5
- package/src/table/src/dataset-utils.ts +7 -2
- package/src/table/src/kepler-table.ts +1 -0
- package/src/tasks/package.json +2 -2
- package/src/types/actions.d.ts +1 -0
- package/src/types/package.json +1 -1
- package/src/utils/dist/arrow-data-container.d.ts +3 -2
- package/src/utils/dist/arrow-data-container.js +3 -3
- package/src/utils/dist/data-container-utils.d.ts +2 -0
- package/src/utils/dist/data-container-utils.js +3 -2
- package/src/utils/package.json +4 -4
- package/src/utils/src/arrow-data-container.ts +9 -7
- package/src/utils/src/data-container-utils.ts +3 -1
- package/umd/keplergl.min.js +1366 -1333
|
@@ -112,6 +112,15 @@ function ColorBreaksPanelFactory(CustomPalette, ColumnStatsChart) {
|
|
|
112
112
|
var currentBreaks = (0, _react.useMemo)(function () {
|
|
113
113
|
return isEditingCustomBreaks ? (0, _utils.colorMapToColorBreaks)(customPalette.colorMap) : colorBreaks;
|
|
114
114
|
}, [customPalette.colorMap, isEditingCustomBreaks, colorBreaks]);
|
|
115
|
+
|
|
116
|
+
// Update layers on editing custom breaks
|
|
117
|
+
(0, _react.useEffect)(function () {
|
|
118
|
+
var _ref5 = customPalette || {},
|
|
119
|
+
type = _ref5.type;
|
|
120
|
+
if (isEditingCustomBreaks && (type === _constants.SCALE_TYPES.customOrdinal || type === _constants.SCALE_TYPES.custom)) {
|
|
121
|
+
onScaleChange(type, customPalette);
|
|
122
|
+
}
|
|
123
|
+
}, [isEditingCustomBreaks, customPalette, onScaleChange]);
|
|
115
124
|
var onClickEditCustomBreaks = (0, _react.useCallback)(function () {
|
|
116
125
|
setColorUI({
|
|
117
126
|
colorRangeConfig: {
|
|
@@ -174,7 +183,7 @@ function ColorBreaksPanelFactory(CustomPalette, ColumnStatsChart) {
|
|
|
174
183
|
}) : currentBreaks && allBins.length > 1 && (0, _utils.isNumericColorBreaks)(colorBreaks) ? /*#__PURE__*/_react["default"].createElement(ColorBreaksDisplay, {
|
|
175
184
|
currentBreaks: currentBreaks,
|
|
176
185
|
onEdit: isCustomBreaks ? onClickEditCustomBreaks : null
|
|
177
|
-
}) :
|
|
186
|
+
}) : (isCustomBreaks || customPalette.type === _constants.SCALE_TYPES.customOrdinal) && customPalette.colorMap && (_customPalette$name = customPalette.name) !== null && _customPalette$name !== void 0 && _customPalette$name.endsWith(colorField.name) ? /*#__PURE__*/_react["default"].createElement(CategoricalColorDisplay, {
|
|
178
187
|
colorMap: customPalette.colorMap,
|
|
179
188
|
onEdit: isCustomBreaks ? onClickEditCustomBreaks : null
|
|
180
189
|
}) : null));
|
|
@@ -182,4 +191,4 @@ function ColorBreaksPanelFactory(CustomPalette, ColumnStatsChart) {
|
|
|
182
191
|
return /*#__PURE__*/_react["default"].memo(ColorBreaksPanel);
|
|
183
192
|
}
|
|
184
193
|
var _default = exports["default"] = ColorBreaksPanelFactory;
|
|
185
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tbW9uVXRpbHMiLCJyZXF1aXJlIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2NvbHVtblN0YXRzQ2hhcnQiLCJfaWNvbnMiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfY3VzdG9tUGFsZXR0ZSIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiU3R5bGVkQ29sb3JCcmVha3NQYW5lbCIsInN0eWxlZCIsImRpdiIsImF0dHJzIiwiY2xhc3NOYW1lIiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJTdHlsZWRDb2xvckJyZWFrc0Rpc3BsYXkiLCJDb2xvckJyZWFrc1BhbmVsV3JhcHBlciIsIkVkaXRCdXR0b24iLCJleHBvcnRzIiwiX3JlZiIsIm9uQ2xpY2tFZGl0IiwiY3JlYXRlRWxlbWVudCIsIkJ1dHRvbiIsImxpbmsiLCJvbkNsaWNrIiwiRWRpdCIsImhlaWdodCIsIkNvbG9yQnJlYWtzRGlzcGxheSIsIl9yZWYyIiwiY3VycmVudEJyZWFrcyIsIm9uRWRpdCIsIm5vdE9yZGluYWxDb2xvckJyZWFrcyIsIm1hcCIsIml0ZW0iLCJpbmRleCIsIkNvbG9yUGFsZXR0ZUl0ZW0iLCJrZXkiLCJDb2xvclN3YXRjaCIsImNvbG9yIiwiZGF0YSIsIkVkaXRhYmxlQ29sb3JSYW5nZSIsImlzTGFzdCIsImVkaXRhYmxlIiwiQ2F0ZWdvcmljYWxDb2xvckRpc3BsYXkiLCJfcmVmMyIsImNvbG9yTWFwIiwiY20iLCJDYXRlZ29yaWNhbFNlbGVjdG9yIiwic2VsZWN0ZWRWYWx1ZXMiLCJ0b0FycmF5IiwiYWxsVmFsdWVzIiwiQ29sb3JCcmVha3NQYW5lbEZhY3RvcnkiLCJkZXBzIiwiQ3VzdG9tUGFsZXR0ZUZhY3RvcnkiLCJDb2x1bW5TdGF0c0NoYXJ0RmFjdG9yeSIsIkN1c3RvbVBhbGV0dGUiLCJDb2x1bW5TdGF0c0NoYXJ0IiwiQ29sb3JCcmVha3NQYW5lbCIsIl9yZWY0IiwiX2N1c3RvbVBhbGV0dGUkbmFtZSIsImNvbG9yQnJlYWtzIiwiY29sb3JVSUNvbmZpZyIsImRhdGFzZXQiLCJjb2xvckZpZWxkIiwiaXNDdXN0b21CcmVha3MiLCJhbGxCaW5zIiwiZmlsdGVyZWRCaW5zIiwiaXNGaWx0ZXJlZCIsImhpc3RvZ3JhbURvbWFpbiIsIm9yZGluYWxEb21haW4iLCJzZXRDb2xvclVJIiwib25TY2FsZUNoYW5nZSIsIm9uQXBwbHkiLCJvbkNhbmNlbCIsImN1c3RvbVBhbGV0dGUiLCJzaG93U2tldGNoZXIiLCJjb2xvclJhbmdlQ29uZmlnIiwiaXNFZGl0aW5nQ3VzdG9tQnJlYWtzIiwiQm9vbGVhbiIsImN1c3RvbUJyZWFrcyIsInVzZU1lbW8iLCJjb2xvck1hcFRvQ29sb3JCcmVha3MiLCJvbkNsaWNrRWRpdEN1c3RvbUJyZWFrcyIsInVzZUNhbGxiYWNrIiwib25DaWxja0NhbmNlbCIsIm9uQ29sdW1uU3RhdHNDaGFydENoYW5nZWQiLCJuZXdDb2xvckJyZWFrcyIsIm5ld0NvbG9ycyIsImNiIiwibmV3Q29sb3JNYXAiLCJjb2xvckJyZWFrc1RvQ29sb3JNYXAiLCJuZXdDdXN0b21QYWxldHRlIiwiY29sb3JzIiwiU0NBTEVfVFlQRVMiLCJjdXN0b20iLCJvbkNoYW5nZWRVcGRhdGVyIiwic2V0Q29sb3JQYWxldHRlVUkiLCJ0eXBlIiwibmFtZSIsImVuZHNXaXRoIiwiUmVhY3QiLCJtZW1vIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2lkZS1wYW5lbC9sYXllci1wYW5lbC9jb2xvci1icmVha3MtcGFuZWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7dG9BcnJheX0gZnJvbSAnQGtlcGxlci5nbC9jb21tb24tdXRpbHMnO1xuaW1wb3J0IHtTQ0FMRV9UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtLZXBsZXJUYWJsZX0gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge0JpbiwgQ29sb3JNYXAsIENvbG9yVUksIEZpZWxkfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7XG4gIENvbG9yQnJlYWssXG4gIENvbG9yQnJlYWtPcmRpbmFsLFxuICBjb2xvckJyZWFrc1RvQ29sb3JNYXAsXG4gIGNvbG9yTWFwVG9Db2xvckJyZWFrcyxcbiAgaXNOdW1lcmljQ29sb3JCcmVha3MgYXMgbm90T3JkaW5hbENvbG9yQnJlYWtzXG59IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IENvbHVtblN0YXRzQ2hhcnRGYWN0b3J5IGZyb20gJy4uLy4uL2NvbW1vbi9jb2x1bW4tc3RhdHMtY2hhcnQnO1xuaW1wb3J0IHtFZGl0fSBmcm9tICcuLi8uLi9jb21tb24vaWNvbnMnO1xuaW1wb3J0IHtCdXR0b259IGZyb20gJy4uLy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgQ3VzdG9tUGFsZXR0ZUZhY3RvcnksIHtcbiAgQ29sb3JQYWxldHRlSXRlbSxcbiAgQ29sb3JTd2F0Y2gsXG4gIEVkaXRhYmxlQ29sb3JSYW5nZSxcbiAgQ2F0ZWdvcmljYWxTZWxlY3RvcixcbiAgU2V0Q29sb3JVSUZ1bmNcbn0gZnJvbSAnLi9jdXN0b20tcGFsZXR0ZSc7XG5cbmNvbnN0IFN0eWxlZENvbG9yQnJlYWtzUGFuZWwgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnc3R5bGVkLWNvbG9yLWJyZWFrcy1wYW5lbCdcbn0pYFxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuYDtcblxuY29uc3QgU3R5bGVkQ29sb3JCcmVha3NEaXNwbGF5ID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ3N0eWxlZC1jb2xvci1icmVha3MtZGlzcGxheSdcbn0pYFxuICBwYWRkaW5nOiA4cHggMTJweCAwIDEycHg7XG5gO1xuXG5jb25zdCBDb2xvckJyZWFrc1BhbmVsV3JhcHBlciA9IHN0eWxlZC5kaXZgYDtcblxudHlwZSBFZGl0QnV0dG9uUHJvcHMgPSB7b25DbGlja0VkaXQ6ICgpID0+IHZvaWR9O1xuXG5leHBvcnQgY29uc3QgRWRpdEJ1dHRvbjogUmVhY3QuRkM8RWRpdEJ1dHRvblByb3BzPiA9ICh7b25DbGlja0VkaXR9KSA9PiAoXG4gIDxCdXR0b24gY2xhc3NOYW1lPVwiZWRpdHBfX2J1dHRvblwiIGxpbmsgb25DbGljaz17b25DbGlja0VkaXR9PlxuICAgIDxFZGl0IGhlaWdodD1cIjE2cHhcIiAvPlxuICAgIEVkaXRcbiAgPC9CdXR0b24+XG4pO1xuXG5leHBvcnQgdHlwZSBDb2xvckJyZWFrc0Rpc3BsYXlQcm9wcyA9IHtcbiAgY3VycmVudEJyZWFrcz86IENvbG9yQnJlYWtbXSB8IENvbG9yQnJlYWtPcmRpbmFsW10gfCBudWxsO1xuICBvbkVkaXQ6ICgoKSA9PiB2b2lkKSB8IG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgQ29sb3JCcmVha3NEaXNwbGF5OiBSZWFjdC5GQzxDb2xvckJyZWFrc0Rpc3BsYXlQcm9wcz4gPSAoe2N1cnJlbnRCcmVha3MsIG9uRWRpdH0pID0+IHtcbiAgaWYgKCFub3RPcmRpbmFsQ29sb3JCcmVha3MoY3VycmVudEJyZWFrcykpIHtcbiAgICAvLyBkb24ndCBkaXNwbGF5IGNvbG9yIGJyZWFrcyBmb3Igb3JkaW5hbCBicmVha3MsIHVzZXIgY2FuIGNoYW5nZSBpdCBpbiBjdXN0b20gYnJlYWtzXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQ29sb3JCcmVha3NEaXNwbGF5PlxuICAgICAge29uRWRpdCA/IDxFZGl0QnV0dG9uIG9uQ2xpY2tFZGl0PXtvbkVkaXR9IC8+IDogbnVsbH1cbiAgICAgIHtjdXJyZW50QnJlYWtzLm1hcCgoaXRlbSwgaW5kZXgpID0+IChcbiAgICAgICAgPENvbG9yUGFsZXR0ZUl0ZW0gY2xhc3NOYW1lPVwiZGlzYWJsZWRcIiBrZXk9e2luZGV4fT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImN1c3RvbS1wYWxldHRlLWlucHV0X19sZWZ0XCI+XG4gICAgICAgICAgICA8Q29sb3JTd2F0Y2ggY29sb3I9e2l0ZW0uZGF0YX0gLz5cbiAgICAgICAgICAgIDxFZGl0YWJsZUNvbG9yUmFuZ2VcbiAgICAgICAgICAgICAgaXRlbT17aXRlbX1cbiAgICAgICAgICAgICAgaXNMYXN0PXtpbmRleCA9PT0gY3VycmVudEJyZWFrcy5sZW5ndGggLSAxfVxuICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgIGVkaXRhYmxlPXtmYWxzZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvQ29sb3JQYWxldHRlSXRlbT5cbiAgICAgICkpfVxuICAgIDwvU3R5bGVkQ29sb3JCcmVha3NEaXNwbGF5PlxuICApO1xufTtcblxuZXhwb3J0IHR5cGUgQ2F0ZWdvcmljYWxDb2xvckRpc3BsYXlQcm9wcyA9IHtcbiAgY29sb3JNYXA/OiBDb2xvck1hcDtcbiAgb25FZGl0OiAoKCkgPT4gdm9pZCkgfCBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IENhdGVnb3JpY2FsQ29sb3JEaXNwbGF5OiBSZWFjdC5GQzxDYXRlZ29yaWNhbENvbG9yRGlzcGxheVByb3BzPiA9ICh7XG4gIGNvbG9yTWFwLFxuICBvbkVkaXRcbn06IENhdGVnb3JpY2FsQ29sb3JEaXNwbGF5UHJvcHMpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQ29sb3JCcmVha3NEaXNwbGF5PlxuICAgICAge29uRWRpdCA/IDxFZGl0QnV0dG9uIG9uQ2xpY2tFZGl0PXtvbkVkaXR9IC8+IDogbnVsbH1cbiAgICAgIHtjb2xvck1hcD8ubWFwKChjbSwgaW5kZXgpID0+IChcbiAgICAgICAgPENvbG9yUGFsZXR0ZUl0ZW0gY2xhc3NOYW1lPVwiZGlzYWJsZWRcIiBrZXk9e2luZGV4fT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImN1c3RvbS1wYWxldHRlLWlucHV0X19sZWZ0XCI+XG4gICAgICAgICAgICA8Q29sb3JTd2F0Y2ggY29sb3I9e2NtWzFdfSAvPlxuICAgICAgICAgICAgPENhdGVnb3JpY2FsU2VsZWN0b3JcbiAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlcz17dG9BcnJheShjbVswXSl9XG4gICAgICAgICAgICAgIGFsbFZhbHVlcz17W119XG4gICAgICAgICAgICAgIGVkaXRhYmxlPXtmYWxzZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvQ29sb3JQYWxldHRlSXRlbT5cbiAgICAgICkpfVxuICAgIDwvU3R5bGVkQ29sb3JCcmVha3NEaXNwbGF5PlxuICApO1xufTtcblxuZXhwb3J0IHR5cGUgQ29sb3JCcmVha3NQYW5lbFByb3BzID0ge1xuICBjb2xvckJyZWFrczogQ29sb3JCcmVha1tdIHwgQ29sb3JCcmVha09yZGluYWxbXSB8IG51bGw7XG4gIGNvbG9yVUlDb25maWc6IENvbG9yVUk7XG4gIGRhdGFzZXQ6IEtlcGxlclRhYmxlIHwgdW5kZWZpbmVkO1xuICBjb2xvckZpZWxkOiBGaWVsZDtcbiAgaXNDdXN0b21CcmVha3M6IGJvb2xlYW47XG4gIGFsbEJpbnM6IEJpbltdO1xuICBmaWx0ZXJlZEJpbnM6IEJpbltdO1xuICBpc0ZpbHRlcmVkOiBib29sZWFuO1xuICBoaXN0b2dyYW1Eb21haW46IG51bWJlcltdO1xuICBvcmRpbmFsRG9tYWluOiBudW1iZXJbXSB8IHN0cmluZ1tdO1xuICBzZXRDb2xvclVJOiBTZXRDb2xvclVJRnVuYztcbiAgb25TY2FsZUNoYW5nZTogKHY6IHN0cmluZywgdmlzQ29uZmc/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiB2b2lkO1xuICBvbkFwcGx5OiAoZTogUmVhY3QuTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgb25DYW5jZWw6ICgpID0+IHZvaWQ7XG59O1xuXG5Db2xvckJyZWFrc1BhbmVsRmFjdG9yeS5kZXBzID0gW0N1c3RvbVBhbGV0dGVGYWN0b3J5LCBDb2x1bW5TdGF0c0NoYXJ0RmFjdG9yeV07XG5cbmZ1bmN0aW9uIENvbG9yQnJlYWtzUGFuZWxGYWN0b3J5KFxuICBDdXN0b21QYWxldHRlOiBSZXR1cm5UeXBlPHR5cGVvZiBDdXN0b21QYWxldHRlRmFjdG9yeT4sXG4gIENvbHVtblN0YXRzQ2hhcnQ6IFJldHVyblR5cGU8dHlwZW9mIENvbHVtblN0YXRzQ2hhcnRGYWN0b3J5PlxuKTogUmVhY3QuRkM8Q29sb3JCcmVha3NQYW5lbFByb3BzPiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG4gIGNvbnN0IENvbG9yQnJlYWtzUGFuZWw6IFJlYWN0LkZDPENvbG9yQnJlYWtzUGFuZWxQcm9wcz4gPSAoe1xuICAgIGNvbG9yQnJlYWtzLFxuICAgIGNvbG9yVUlDb25maWcsXG4gICAgZGF0YXNldCxcbiAgICBjb2xvckZpZWxkLFxuICAgIGlzQ3VzdG9tQnJlYWtzLFxuICAgIGFsbEJpbnMsXG4gICAgZmlsdGVyZWRCaW5zLFxuICAgIGlzRmlsdGVyZWQsXG4gICAgaGlzdG9ncmFtRG9tYWluLFxuICAgIG9yZGluYWxEb21haW4sXG4gICAgc2V0Q29sb3JVSSxcbiAgICBvblNjYWxlQ2hhbmdlLFxuICAgIG9uQXBwbHksXG4gICAgb25DYW5jZWxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHtjdXN0b21QYWxldHRlLCBzaG93U2tldGNoZXIsIGNvbG9yUmFuZ2VDb25maWd9ID0gY29sb3JVSUNvbmZpZztcbiAgICBjb25zdCBpc0VkaXRpbmdDdXN0b21CcmVha3MgPSBCb29sZWFuKGNvbG9yUmFuZ2VDb25maWcuY3VzdG9tQnJlYWtzKTtcblxuICAgIGNvbnN0IGN1cnJlbnRCcmVha3MgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKGlzRWRpdGluZ0N1c3RvbUJyZWFrcyA/IGNvbG9yTWFwVG9Db2xvckJyZWFrcyhjdXN0b21QYWxldHRlLmNvbG9yTWFwKSA6IGNvbG9yQnJlYWtzKSxcbiAgICAgIFtjdXN0b21QYWxldHRlLmNvbG9yTWFwLCBpc0VkaXRpbmdDdXN0b21CcmVha3MsIGNvbG9yQnJlYWtzXVxuICAgICk7XG5cbiAgICBjb25zdCBvbkNsaWNrRWRpdEN1c3RvbUJyZWFrcyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldENvbG9yVUkoe1xuICAgICAgICBjb2xvclJhbmdlQ29uZmlnOiB7XG4gICAgICAgICAgY3VzdG9tQnJlYWtzOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sIFtzZXRDb2xvclVJXSk7XG5cbiAgICBjb25zdCBvbkNpbGNrQ2FuY2VsID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0Q29sb3JVSSh7XG4gICAgICAgIHNob3dTa2V0Y2hlcjogZmFsc2UsXG4gICAgICAgIGNvbG9yUmFuZ2VDb25maWc6IHtcbiAgICAgICAgICBjdXN0b21CcmVha3M6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgb25DYW5jZWwoKTtcbiAgICB9LCBbc2V0Q29sb3JVSSwgb25DYW5jZWxdKTtcblxuICAgIGNvbnN0IG9uQ29sdW1uU3RhdHNDaGFydENoYW5nZWQgPSB1c2VDYWxsYmFjayhcbiAgICAgIG5ld0NvbG9yQnJlYWtzID0+IHtcbiAgICAgICAgY29uc3QgbmV3Q29sb3JzID0gbmV3Q29sb3JCcmVha3MubWFwKGNiID0+IGNiLmRhdGEpO1xuICAgICAgICBjb25zdCBuZXdDb2xvck1hcCA9IGNvbG9yQnJlYWtzVG9Db2xvck1hcChuZXdDb2xvckJyZWFrcyk7XG5cbiAgICAgICAgY29uc3QgbmV3Q3VzdG9tUGFsZXR0ZSA9IHtcbiAgICAgICAgICAuLi5jdXN0b21QYWxldHRlLFxuICAgICAgICAgIGNvbG9yTWFwOiBuZXdDb2xvck1hcCxcbiAgICAgICAgICBjb2xvcnM6IG5ld0NvbG9yc1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIHVwZGF0ZSBjdXN0b20gcGFsbGV0dGUgZWRpdG9yXG4gICAgICAgIGlmICghaXNFZGl0aW5nQ3VzdG9tQnJlYWtzKSB7XG4gICAgICAgICAgc2V0Q29sb3JVSSh7XG4gICAgICAgICAgICBjb2xvclJhbmdlQ29uZmlnOiB7XG4gICAgICAgICAgICAgIGN1c3RvbUJyZWFrczogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGN1c3RvbVBhbGV0dGU6IG5ld0N1c3RvbVBhbGV0dGVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRDb2xvclVJKHtjdXN0b21QYWxldHRlOiBuZXdDdXN0b21QYWxldHRlfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0cmlnZ2VyIHRoZSBtYXAgdG8gcmUtcmVuZGVyIHVzaW5nIG5ld0N1c3RvbVBhbGV0dGVcbiAgICAgICAgb25TY2FsZUNoYW5nZShTQ0FMRV9UWVBFUy5jdXN0b20sIG5ld0N1c3RvbVBhbGV0dGUpO1xuICAgICAgfSxcbiAgICAgIFtzZXRDb2xvclVJLCBjdXN0b21QYWxldHRlLCBpc0VkaXRpbmdDdXN0b21CcmVha3MsIG9uU2NhbGVDaGFuZ2VdXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8Q29sb3JCcmVha3NQYW5lbFdyYXBwZXI+XG4gICAgICAgIHtkYXRhc2V0ICYmIGFsbEJpbnMubGVuZ3RoID4gMSAmJiBub3RPcmRpbmFsQ29sb3JCcmVha3MoY29sb3JCcmVha3MpID8gKFxuICAgICAgICAgIDxDb2x1bW5TdGF0c0NoYXJ0XG4gICAgICAgICAgICBjb2xvckZpZWxkPXtjb2xvckZpZWxkfVxuICAgICAgICAgICAgZGF0YXNldD17ZGF0YXNldH1cbiAgICAgICAgICAgIGNvbG9yQnJlYWtzPXtjdXJyZW50QnJlYWtzfVxuICAgICAgICAgICAgYWxsQmlucz17YWxsQmluc31cbiAgICAgICAgICAgIGZpbHRlcmVkQmlucz17ZmlsdGVyZWRCaW5zfVxuICAgICAgICAgICAgaXNGaWx0ZXJlZD17aXNGaWx0ZXJlZH1cbiAgICAgICAgICAgIGhpc3RvZ3JhbURvbWFpbj17aGlzdG9ncmFtRG9tYWlufVxuICAgICAgICAgICAgb25DaGFuZ2VkVXBkYXRlcj17b25Db2x1bW5TdGF0c0NoYXJ0Q2hhbmdlZH1cbiAgICAgICAgICAvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPFN0eWxlZENvbG9yQnJlYWtzUGFuZWw+XG4gICAgICAgICAge2lzRWRpdGluZ0N1c3RvbUJyZWFrcyA/IChcbiAgICAgICAgICAgIDxDdXN0b21QYWxldHRlXG4gICAgICAgICAgICAgIG9yZGluYWxEb21haW49e29yZGluYWxEb21haW59XG4gICAgICAgICAgICAgIGN1c3RvbVBhbGV0dGU9e2N1c3RvbVBhbGV0dGV9XG4gICAgICAgICAgICAgIHNldENvbG9yUGFsZXR0ZVVJPXtzZXRDb2xvclVJfVxuICAgICAgICAgICAgICBzaG93U2tldGNoZXI9e3Nob3dTa2V0Y2hlcn1cbiAgICAgICAgICAgICAgb25BcHBseT17b25BcHBseX1cbiAgICAgICAgICAgICAgb25DYW5jZWw9e29uQ2lsY2tDYW5jZWx9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiBjdXJyZW50QnJlYWtzICYmIGFsbEJpbnMubGVuZ3RoID4gMSAmJiBub3RPcmRpbmFsQ29sb3JCcmVha3MoY29sb3JCcmVha3MpID8gKFxuICAgICAgICAgICAgPENvbG9yQnJlYWtzRGlzcGxheVxuICAgICAgICAgICAgICBjdXJyZW50QnJlYWtzPXtjdXJyZW50QnJlYWtzfVxuICAgICAgICAgICAgICBvbkVkaXQ9e2lzQ3VzdG9tQnJlYWtzID8gb25DbGlja0VkaXRDdXN0b21CcmVha3MgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApIDogY3VzdG9tUGFsZXR0ZS5jb2xvck1hcCAmJlxuICAgICAgICAgICAgY3VzdG9tUGFsZXR0ZS50eXBlID09PSAnY3VzdG9tT3JkaW5hbCcgJiZcbiAgICAgICAgICAgIGN1c3RvbVBhbGV0dGUubmFtZT8uZW5kc1dpdGgoY29sb3JGaWVsZC5uYW1lKSA/IChcbiAgICAgICAgICAgIDxDYXRlZ29yaWNhbENvbG9yRGlzcGxheVxuICAgICAgICAgICAgICBjb2xvck1hcD17Y3VzdG9tUGFsZXR0ZS5jb2xvck1hcH1cbiAgICAgICAgICAgICAgb25FZGl0PXtpc0N1c3RvbUJyZWFrcyA/IG9uQ2xpY2tFZGl0Q3VzdG9tQnJlYWtzIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvU3R5bGVkQ29sb3JCcmVha3NQYW5lbD5cbiAgICAgIDwvQ29sb3JCcmVha3NQYW5lbFdyYXBwZXI+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gUmVhY3QubWVtbyhDb2xvckJy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
|
|
194
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tbW9uVXRpbHMiLCJyZXF1aXJlIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2NvbHVtblN0YXRzQ2hhcnQiLCJfaWNvbnMiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfY3VzdG9tUGFsZXR0ZSIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiU3R5bGVkQ29sb3JCcmVha3NQYW5lbCIsInN0eWxlZCIsImRpdiIsImF0dHJzIiwiY2xhc3NOYW1lIiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJTdHlsZWRDb2xvckJyZWFrc0Rpc3BsYXkiLCJDb2xvckJyZWFrc1BhbmVsV3JhcHBlciIsIkVkaXRCdXR0b24iLCJleHBvcnRzIiwiX3JlZiIsIm9uQ2xpY2tFZGl0IiwiY3JlYXRlRWxlbWVudCIsIkJ1dHRvbiIsImxpbmsiLCJvbkNsaWNrIiwiRWRpdCIsImhlaWdodCIsIkNvbG9yQnJlYWtzRGlzcGxheSIsIl9yZWYyIiwiY3VycmVudEJyZWFrcyIsIm9uRWRpdCIsIm5vdE9yZGluYWxDb2xvckJyZWFrcyIsIm1hcCIsIml0ZW0iLCJpbmRleCIsIkNvbG9yUGFsZXR0ZUl0ZW0iLCJrZXkiLCJDb2xvclN3YXRjaCIsImNvbG9yIiwiZGF0YSIsIkVkaXRhYmxlQ29sb3JSYW5nZSIsImlzTGFzdCIsImVkaXRhYmxlIiwiQ2F0ZWdvcmljYWxDb2xvckRpc3BsYXkiLCJfcmVmMyIsImNvbG9yTWFwIiwiY20iLCJDYXRlZ29yaWNhbFNlbGVjdG9yIiwic2VsZWN0ZWRWYWx1ZXMiLCJ0b0FycmF5IiwiYWxsVmFsdWVzIiwiQ29sb3JCcmVha3NQYW5lbEZhY3RvcnkiLCJkZXBzIiwiQ3VzdG9tUGFsZXR0ZUZhY3RvcnkiLCJDb2x1bW5TdGF0c0NoYXJ0RmFjdG9yeSIsIkN1c3RvbVBhbGV0dGUiLCJDb2x1bW5TdGF0c0NoYXJ0IiwiQ29sb3JCcmVha3NQYW5lbCIsIl9yZWY0IiwiX2N1c3RvbVBhbGV0dGUkbmFtZSIsImNvbG9yQnJlYWtzIiwiY29sb3JVSUNvbmZpZyIsImRhdGFzZXQiLCJjb2xvckZpZWxkIiwiaXNDdXN0b21CcmVha3MiLCJhbGxCaW5zIiwiZmlsdGVyZWRCaW5zIiwiaXNGaWx0ZXJlZCIsImhpc3RvZ3JhbURvbWFpbiIsIm9yZGluYWxEb21haW4iLCJzZXRDb2xvclVJIiwib25TY2FsZUNoYW5nZSIsIm9uQXBwbHkiLCJvbkNhbmNlbCIsImN1c3RvbVBhbGV0dGUiLCJzaG93U2tldGNoZXIiLCJjb2xvclJhbmdlQ29uZmlnIiwiaXNFZGl0aW5nQ3VzdG9tQnJlYWtzIiwiQm9vbGVhbiIsImN1c3RvbUJyZWFrcyIsInVzZU1lbW8iLCJjb2xvck1hcFRvQ29sb3JCcmVha3MiLCJ1c2VFZmZlY3QiLCJfcmVmNSIsInR5cGUiLCJTQ0FMRV9UWVBFUyIsImN1c3RvbU9yZGluYWwiLCJjdXN0b20iLCJvbkNsaWNrRWRpdEN1c3RvbUJyZWFrcyIsInVzZUNhbGxiYWNrIiwib25DaWxja0NhbmNlbCIsIm9uQ29sdW1uU3RhdHNDaGFydENoYW5nZWQiLCJuZXdDb2xvckJyZWFrcyIsIm5ld0NvbG9ycyIsImNiIiwibmV3Q29sb3JNYXAiLCJjb2xvckJyZWFrc1RvQ29sb3JNYXAiLCJuZXdDdXN0b21QYWxldHRlIiwiY29sb3JzIiwib25DaGFuZ2VkVXBkYXRlciIsInNldENvbG9yUGFsZXR0ZVVJIiwibmFtZSIsImVuZHNXaXRoIiwiUmVhY3QiLCJtZW1vIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2lkZS1wYW5lbC9sYXllci1wYW5lbC9jb2xvci1icmVha3MtcGFuZWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7dG9BcnJheX0gZnJvbSAnQGtlcGxlci5nbC9jb21tb24tdXRpbHMnO1xuaW1wb3J0IHtTQ0FMRV9UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtLZXBsZXJUYWJsZX0gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge0JpbiwgQ29sb3JNYXAsIENvbG9yVUksIEZpZWxkfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7XG4gIENvbG9yQnJlYWssXG4gIENvbG9yQnJlYWtPcmRpbmFsLFxuICBjb2xvckJyZWFrc1RvQ29sb3JNYXAsXG4gIGNvbG9yTWFwVG9Db2xvckJyZWFrcyxcbiAgaXNOdW1lcmljQ29sb3JCcmVha3MgYXMgbm90T3JkaW5hbENvbG9yQnJlYWtzXG59IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZUVmZmVjdH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgQ29sdW1uU3RhdHNDaGFydEZhY3RvcnkgZnJvbSAnLi4vLi4vY29tbW9uL2NvbHVtbi1zdGF0cy1jaGFydCc7XG5pbXBvcnQge0VkaXR9IGZyb20gJy4uLy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge0J1dHRvbn0gZnJvbSAnLi4vLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBDdXN0b21QYWxldHRlRmFjdG9yeSwge1xuICBDb2xvclBhbGV0dGVJdGVtLFxuICBDb2xvclN3YXRjaCxcbiAgRWRpdGFibGVDb2xvclJhbmdlLFxuICBDYXRlZ29yaWNhbFNlbGVjdG9yLFxuICBTZXRDb2xvclVJRnVuY1xufSBmcm9tICcuL2N1c3RvbS1wYWxldHRlJztcblxuY29uc3QgU3R5bGVkQ29sb3JCcmVha3NQYW5lbCA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdzdHlsZWQtY29sb3ItYnJlYWtzLXBhbmVsJ1xufSlgXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG5gO1xuXG5jb25zdCBTdHlsZWRDb2xvckJyZWFrc0Rpc3BsYXkgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnc3R5bGVkLWNvbG9yLWJyZWFrcy1kaXNwbGF5J1xufSlgXG4gIHBhZGRpbmc6IDhweCAxMnB4IDAgMTJweDtcbmA7XG5cbmNvbnN0IENvbG9yQnJlYWtzUGFuZWxXcmFwcGVyID0gc3R5bGVkLmRpdmBgO1xuXG50eXBlIEVkaXRCdXR0b25Qcm9wcyA9IHtvbkNsaWNrRWRpdDogKCkgPT4gdm9pZH07XG5cbmV4cG9ydCBjb25zdCBFZGl0QnV0dG9uOiBSZWFjdC5GQzxFZGl0QnV0dG9uUHJvcHM+ID0gKHtvbkNsaWNrRWRpdH0pID0+IChcbiAgPEJ1dHRvbiBjbGFzc05hbWU9XCJlZGl0cF9fYnV0dG9uXCIgbGluayBvbkNsaWNrPXtvbkNsaWNrRWRpdH0+XG4gICAgPEVkaXQgaGVpZ2h0PVwiMTZweFwiIC8+XG4gICAgRWRpdFxuICA8L0J1dHRvbj5cbik7XG5cbmV4cG9ydCB0eXBlIENvbG9yQnJlYWtzRGlzcGxheVByb3BzID0ge1xuICBjdXJyZW50QnJlYWtzPzogQ29sb3JCcmVha1tdIHwgQ29sb3JCcmVha09yZGluYWxbXSB8IG51bGw7XG4gIG9uRWRpdDogKCgpID0+IHZvaWQpIHwgbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCBDb2xvckJyZWFrc0Rpc3BsYXk6IFJlYWN0LkZDPENvbG9yQnJlYWtzRGlzcGxheVByb3BzPiA9ICh7Y3VycmVudEJyZWFrcywgb25FZGl0fSkgPT4ge1xuICBpZiAoIW5vdE9yZGluYWxDb2xvckJyZWFrcyhjdXJyZW50QnJlYWtzKSkge1xuICAgIC8vIGRvbid0IGRpc3BsYXkgY29sb3IgYnJlYWtzIGZvciBvcmRpbmFsIGJyZWFrcywgdXNlciBjYW4gY2hhbmdlIGl0IGluIGN1c3RvbSBicmVha3NcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb2xvckJyZWFrc0Rpc3BsYXk+XG4gICAgICB7b25FZGl0ID8gPEVkaXRCdXR0b24gb25DbGlja0VkaXQ9e29uRWRpdH0gLz4gOiBudWxsfVxuICAgICAge2N1cnJlbnRCcmVha3MubWFwKChpdGVtLCBpbmRleCkgPT4gKFxuICAgICAgICA8Q29sb3JQYWxldHRlSXRlbSBjbGFzc05hbWU9XCJkaXNhYmxlZFwiIGtleT17aW5kZXh9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY3VzdG9tLXBhbGV0dGUtaW5wdXRfX2xlZnRcIj5cbiAgICAgICAgICAgIDxDb2xvclN3YXRjaCBjb2xvcj17aXRlbS5kYXRhfSAvPlxuICAgICAgICAgICAgPEVkaXRhYmxlQ29sb3JSYW5nZVxuICAgICAgICAgICAgICBpdGVtPXtpdGVtfVxuICAgICAgICAgICAgICBpc0xhc3Q9e2luZGV4ID09PSBjdXJyZW50QnJlYWtzLmxlbmd0aCAtIDF9XG4gICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgZWRpdGFibGU9e2ZhbHNlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Db2xvclBhbGV0dGVJdGVtPlxuICAgICAgKSl9XG4gICAgPC9TdHlsZWRDb2xvckJyZWFrc0Rpc3BsYXk+XG4gICk7XG59O1xuXG5leHBvcnQgdHlwZSBDYXRlZ29yaWNhbENvbG9yRGlzcGxheVByb3BzID0ge1xuICBjb2xvck1hcD86IENvbG9yTWFwO1xuICBvbkVkaXQ6ICgoKSA9PiB2b2lkKSB8IG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgQ2F0ZWdvcmljYWxDb2xvckRpc3BsYXk6IFJlYWN0LkZDPENhdGVnb3JpY2FsQ29sb3JEaXNwbGF5UHJvcHM+ID0gKHtcbiAgY29sb3JNYXAsXG4gIG9uRWRpdFxufTogQ2F0ZWdvcmljYWxDb2xvckRpc3BsYXlQcm9wcykgPT4ge1xuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb2xvckJyZWFrc0Rpc3BsYXk+XG4gICAgICB7b25FZGl0ID8gPEVkaXRCdXR0b24gb25DbGlja0VkaXQ9e29uRWRpdH0gLz4gOiBudWxsfVxuICAgICAge2NvbG9yTWFwPy5tYXAoKGNtLCBpbmRleCkgPT4gKFxuICAgICAgICA8Q29sb3JQYWxldHRlSXRlbSBjbGFzc05hbWU9XCJkaXNhYmxlZFwiIGtleT17aW5kZXh9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY3VzdG9tLXBhbGV0dGUtaW5wdXRfX2xlZnRcIj5cbiAgICAgICAgICAgIDxDb2xvclN3YXRjaCBjb2xvcj17Y21bMV19IC8+XG4gICAgICAgICAgICA8Q2F0ZWdvcmljYWxTZWxlY3RvclxuICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWVzPXt0b0FycmF5KGNtWzBdKX1cbiAgICAgICAgICAgICAgYWxsVmFsdWVzPXtbXX1cbiAgICAgICAgICAgICAgZWRpdGFibGU9e2ZhbHNlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Db2xvclBhbGV0dGVJdGVtPlxuICAgICAgKSl9XG4gICAgPC9TdHlsZWRDb2xvckJyZWFrc0Rpc3BsYXk+XG4gICk7XG59O1xuXG5leHBvcnQgdHlwZSBDb2xvckJyZWFrc1BhbmVsUHJvcHMgPSB7XG4gIGNvbG9yQnJlYWtzOiBDb2xvckJyZWFrW10gfCBDb2xvckJyZWFrT3JkaW5hbFtdIHwgbnVsbDtcbiAgY29sb3JVSUNvbmZpZzogQ29sb3JVSTtcbiAgZGF0YXNldDogS2VwbGVyVGFibGUgfCB1bmRlZmluZWQ7XG4gIGNvbG9yRmllbGQ6IEZpZWxkO1xuICBpc0N1c3RvbUJyZWFrczogYm9vbGVhbjtcbiAgYWxsQmluczogQmluW107XG4gIGZpbHRlcmVkQmluczogQmluW107XG4gIGlzRmlsdGVyZWQ6IGJvb2xlYW47XG4gIGhpc3RvZ3JhbURvbWFpbjogbnVtYmVyW107XG4gIG9yZGluYWxEb21haW46IG51bWJlcltdIHwgc3RyaW5nW107XG4gIHNldENvbG9yVUk6IFNldENvbG9yVUlGdW5jO1xuICBvblNjYWxlQ2hhbmdlOiAodjogc3RyaW5nLCB2aXNDb25mZz86IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IHZvaWQ7XG4gIG9uQXBwbHk6IChlOiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB2b2lkO1xuICBvbkNhbmNlbDogKCkgPT4gdm9pZDtcbn07XG5cbkNvbG9yQnJlYWtzUGFuZWxGYWN0b3J5LmRlcHMgPSBbQ3VzdG9tUGFsZXR0ZUZhY3RvcnksIENvbHVtblN0YXRzQ2hhcnRGYWN0b3J5XTtcblxuZnVuY3Rpb24gQ29sb3JCcmVha3NQYW5lbEZhY3RvcnkoXG4gIEN1c3RvbVBhbGV0dGU6IFJldHVyblR5cGU8dHlwZW9mIEN1c3RvbVBhbGV0dGVGYWN0b3J5PixcbiAgQ29sdW1uU3RhdHNDaGFydDogUmV0dXJuVHlwZTx0eXBlb2YgQ29sdW1uU3RhdHNDaGFydEZhY3Rvcnk+XG4pOiBSZWFjdC5GQzxDb2xvckJyZWFrc1BhbmVsUHJvcHM+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbiAgY29uc3QgQ29sb3JCcmVha3NQYW5lbDogUmVhY3QuRkM8Q29sb3JCcmVha3NQYW5lbFByb3BzPiA9ICh7XG4gICAgY29sb3JCcmVha3MsXG4gICAgY29sb3JVSUNvbmZpZyxcbiAgICBkYXRhc2V0LFxuICAgIGNvbG9yRmllbGQsXG4gICAgaXNDdXN0b21CcmVha3MsXG4gICAgYWxsQmlucyxcbiAgICBmaWx0ZXJlZEJpbnMsXG4gICAgaXNGaWx0ZXJlZCxcbiAgICBoaXN0b2dyYW1Eb21haW4sXG4gICAgb3JkaW5hbERvbWFpbixcbiAgICBzZXRDb2xvclVJLFxuICAgIG9uU2NhbGVDaGFuZ2UsXG4gICAgb25BcHBseSxcbiAgICBvbkNhbmNlbFxuICB9KSA9PiB7XG4gICAgY29uc3Qge2N1c3RvbVBhbGV0dGUsIHNob3dTa2V0Y2hlciwgY29sb3JSYW5nZUNvbmZpZ30gPSBjb2xvclVJQ29uZmlnO1xuICAgIGNvbnN0IGlzRWRpdGluZ0N1c3RvbUJyZWFrcyA9IEJvb2xlYW4oY29sb3JSYW5nZUNvbmZpZy5jdXN0b21CcmVha3MpO1xuXG4gICAgY29uc3QgY3VycmVudEJyZWFrcyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAoaXNFZGl0aW5nQ3VzdG9tQnJlYWtzID8gY29sb3JNYXBUb0NvbG9yQnJlYWtzKGN1c3RvbVBhbGV0dGUuY29sb3JNYXApIDogY29sb3JCcmVha3MpLFxuICAgICAgW2N1c3RvbVBhbGV0dGUuY29sb3JNYXAsIGlzRWRpdGluZ0N1c3RvbUJyZWFrcywgY29sb3JCcmVha3NdXG4gICAgKTtcblxuICAgIC8vIFVwZGF0ZSBsYXllcnMgb24gZWRpdGluZyBjdXN0b20gYnJlYWtzXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHt0eXBlfSA9IGN1c3RvbVBhbGV0dGUgfHwge307XG4gICAgICBpZiAoXG4gICAgICAgIGlzRWRpdGluZ0N1c3RvbUJyZWFrcyAmJlxuICAgICAgICAodHlwZSA9PT0gU0NBTEVfVFlQRVMuY3VzdG9tT3JkaW5hbCB8fCB0eXBlID09PSBTQ0FMRV9UWVBFUy5jdXN0b20pXG4gICAgICApIHtcbiAgICAgICAgb25TY2FsZUNoYW5nZSh0eXBlLCBjdXN0b21QYWxldHRlKTtcbiAgICAgIH1cbiAgICB9LCBbaXNFZGl0aW5nQ3VzdG9tQnJlYWtzLCBjdXN0b21QYWxldHRlLCBvblNjYWxlQ2hhbmdlXSk7XG5cbiAgICBjb25zdCBvbkNsaWNrRWRpdEN1c3RvbUJyZWFrcyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldENvbG9yVUkoe1xuICAgICAgICBjb2xvclJhbmdlQ29uZmlnOiB7XG4gICAgICAgICAgY3VzdG9tQnJlYWtzOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sIFtzZXRDb2xvclVJXSk7XG5cbiAgICBjb25zdCBvbkNpbGNrQ2FuY2VsID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0Q29sb3JVSSh7XG4gICAgICAgIHNob3dTa2V0Y2hlcjogZmFsc2UsXG4gICAgICAgIGNvbG9yUmFuZ2VDb25maWc6IHtcbiAgICAgICAgICBjdXN0b21CcmVha3M6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgb25DYW5jZWwoKTtcbiAgICB9LCBbc2V0Q29sb3JVSSwgb25DYW5jZWxdKTtcblxuICAgIGNvbnN0IG9uQ29sdW1uU3RhdHNDaGFydENoYW5nZWQgPSB1c2VDYWxsYmFjayhcbiAgICAgIG5ld0NvbG9yQnJlYWtzID0+IHtcbiAgICAgICAgY29uc3QgbmV3Q29sb3JzID0gbmV3Q29sb3JCcmVha3MubWFwKGNiID0+IGNiLmRhdGEpO1xuICAgICAgICBjb25zdCBuZXdDb2xvck1hcCA9IGNvbG9yQnJlYWtzVG9Db2xvck1hcChuZXdDb2xvckJyZWFrcyk7XG5cbiAgICAgICAgY29uc3QgbmV3Q3VzdG9tUGFsZXR0ZSA9IHtcbiAgICAgICAgICAuLi5jdXN0b21QYWxldHRlLFxuICAgICAgICAgIGNvbG9yTWFwOiBuZXdDb2xvck1hcCxcbiAgICAgICAgICBjb2xvcnM6IG5ld0NvbG9yc1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIHVwZGF0ZSBjdXN0b20gcGFsbGV0dGUgZWRpdG9yXG4gICAgICAgIGlmICghaXNFZGl0aW5nQ3VzdG9tQnJlYWtzKSB7XG4gICAgICAgICAgc2V0Q29sb3JVSSh7XG4gICAgICAgICAgICBjb2xvclJhbmdlQ29uZmlnOiB7XG4gICAgICAgICAgICAgIGN1c3RvbUJyZWFrczogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGN1c3RvbVBhbGV0dGU6IG5ld0N1c3RvbVBhbGV0dGVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRDb2xvclVJKHtjdXN0b21QYWxldHRlOiBuZXdDdXN0b21QYWxldHRlfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0cmlnZ2VyIHRoZSBtYXAgdG8gcmUtcmVuZGVyIHVzaW5nIG5ld0N1c3RvbVBhbGV0dGVcbiAgICAgICAgb25TY2FsZUNoYW5nZShTQ0FMRV9UWVBFUy5jdXN0b20sIG5ld0N1c3RvbVBhbGV0dGUpO1xuICAgICAgfSxcbiAgICAgIFtzZXRDb2xvclVJLCBjdXN0b21QYWxldHRlLCBpc0VkaXRpbmdDdXN0b21CcmVha3MsIG9uU2NhbGVDaGFuZ2VdXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8Q29sb3JCcmVha3NQYW5lbFdyYXBwZXI+XG4gICAgICAgIHtkYXRhc2V0ICYmIGFsbEJpbnMubGVuZ3RoID4gMSAmJiBub3RPcmRpbmFsQ29sb3JCcmVha3MoY29sb3JCcmVha3MpID8gKFxuICAgICAgICAgIDxDb2x1bW5TdGF0c0NoYXJ0XG4gICAgICAgICAgICBjb2xvckZpZWxkPXtjb2xvckZpZWxkfVxuICAgICAgICAgICAgZGF0YXNldD17ZGF0YXNldH1cbiAgICAgICAgICAgIGNvbG9yQnJlYWtzPXtjdXJyZW50QnJlYWtzfVxuICAgICAgICAgICAgYWxsQmlucz17YWxsQmluc31cbiAgICAgICAgICAgIGZpbHRlcmVkQmlucz17ZmlsdGVyZWRCaW5zfVxuICAgICAgICAgICAgaXNGaWx0ZXJlZD17aXNGaWx0ZXJlZH1cbiAgICAgICAgICAgIGhpc3RvZ3JhbURvbWFpbj17aGlzdG9ncmFtRG9tYWlufVxuICAgICAgICAgICAgb25DaGFuZ2VkVXBkYXRlcj17b25Db2x1bW5TdGF0c0NoYXJ0Q2hhbmdlZH1cbiAgICAgICAgICAvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPFN0eWxlZENvbG9yQnJlYWtzUGFuZWw+XG4gICAgICAgICAge2lzRWRpdGluZ0N1c3RvbUJyZWFrcyA/IChcbiAgICAgICAgICAgIDxDdXN0b21QYWxldHRlXG4gICAgICAgICAgICAgIG9yZGluYWxEb21haW49e29yZGluYWxEb21haW59XG4gICAgICAgICAgICAgIGN1c3RvbVBhbGV0dGU9e2N1c3RvbVBhbGV0dGV9XG4gICAgICAgICAgICAgIHNldENvbG9yUGFsZXR0ZVVJPXtzZXRDb2xvclVJfVxuICAgICAgICAgICAgICBzaG93U2tldGNoZXI9e3Nob3dTa2V0Y2hlcn1cbiAgICAgICAgICAgICAgb25BcHBseT17b25BcHBseX1cbiAgICAgICAgICAgICAgb25DYW5jZWw9e29uQ2lsY2tDYW5jZWx9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiBjdXJyZW50QnJlYWtzICYmIGFsbEJpbnMubGVuZ3RoID4gMSAmJiBub3RPcmRpbmFsQ29sb3JCcmVha3MoY29sb3JCcmVha3MpID8gKFxuICAgICAgICAgICAgPENvbG9yQnJlYWtzRGlzcGxheVxuICAgICAgICAgICAgICBjdXJyZW50QnJlYWtzPXtjdXJyZW50QnJlYWtzfVxuICAgICAgICAgICAgICBvbkVkaXQ9e2lzQ3VzdG9tQnJlYWtzID8gb25DbGlja0VkaXRDdXN0b21CcmVha3MgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApIDogKGlzQ3VzdG9tQnJlYWtzIHx8IGN1c3RvbVBhbGV0dGUudHlwZSA9PT0gU0NBTEVfVFlQRVMuY3VzdG9tT3JkaW5hbCkgJiZcbiAgICAgICAgICAgIGN1c3RvbVBhbGV0dGUuY29sb3JNYXAgJiZcbiAgICAgICAgICAgIGN1c3RvbVBhbGV0dGUubmFtZT8uZW5kc1dpdGgoY29sb3JGaWVsZC5uYW1lKSA/IChcbiAgICAgICAgICAgIDxDYXRlZ29yaWNhbENvbG9yRGlzcGxheVxuICAgICAgICAgICAgICBjb2xvck1hcD17Y3VzdG9tUGFsZXR0ZS5jb2xvck1hcH1cbiAgICAgICAgICAgICAgb25FZGl0PXtpc0N1c3RvbUJyZWFrcyA/IG9uQ2xpY2tFZGl0Q3VzdG9tQnJlYWtzIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvU3R5bGVkQ29sb3JCcmVha3NQYW5lbD5cbiAgICAgIDwvQ29sb3JCcmVha3NQYW5lbFdyYXBwZXI+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gUmVhY3QubWVtbyhDb2xvckJyZWFrc1BhbmVsKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29sb3JCcmVha3NQYW5lbEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxZQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFHQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFPQSxJQUFBRyxNQUFBLEdBQUFDLHVCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBSyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBTixPQUFBO0FBQ0EsSUFBQU8saUJBQUEsR0FBQUQsc0JBQUEsQ0FBQU4sT0FBQTtBQUNBLElBQUFRLE1BQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLGtCQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxjQUFBLEdBQUFOLHVCQUFBLENBQUFKLE9BQUE7QUFNMEIsSUFBQVcsZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQXpCMUI7QUFDQTtBQUFBLFNBQUFDLHlCQUFBQyxDQUFBLDZC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
|
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = void 0;
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
12
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
12
13
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
@@ -26,6 +27,8 @@ var _templateObject, _templateObject2, _templateObject3, _templateObject4; // SP
|
|
|
26
27
|
// Copyright contributors to the kepler.gl project
|
|
27
28
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
28
29
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
30
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
31
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
29
32
|
// 'tippy-js'
|
|
30
33
|
|
|
31
34
|
var HISTOGRAM_BINS = 30;
|
|
@@ -65,7 +68,7 @@ function ColorScaleSelectorFactory(ColorBreaksPanel) {
|
|
|
65
68
|
}));
|
|
66
69
|
};
|
|
67
70
|
var ColorScaleSelector = function ColorScaleSelector(_ref) {
|
|
68
|
-
var _colorUIConfig$colorR, _field$filterProps;
|
|
71
|
+
var _colorUIConfig$colorR, _colorUIConfig$custom2, _field$filterProps;
|
|
69
72
|
var layer = _ref.layer,
|
|
70
73
|
field = _ref.field,
|
|
71
74
|
dataset = _ref.dataset,
|
|
@@ -87,6 +90,20 @@ function ColorScaleSelectorFactory(ColorBreaksPanel) {
|
|
|
87
90
|
tippyInstance = _useState2[0],
|
|
88
91
|
setTippyInstance = _useState2[1];
|
|
89
92
|
var isEditingColorBreaks = colorUIConfig === null || colorUIConfig === void 0 || (_colorUIConfig$colorR = colorUIConfig.colorRangeConfig) === null || _colorUIConfig$colorR === void 0 ? void 0 : _colorUIConfig$colorR.customBreaks;
|
|
93
|
+
|
|
94
|
+
// Stores the previous selection for live preview: when choosing Custom/Custom Ordinal, we apply a temporary palette.
|
|
95
|
+
// Cancel restores {scale, range} from this ref; Confirm keeps the change and clears the ref.
|
|
96
|
+
// If the user switches between different custom scale types (e.g., from "Custom" to "Custom Ordinal") or is already in a custom scale state,
|
|
97
|
+
// this ref is updated to always store the most recent non-custom selection. Only the latest non-custom selection is restorable on cancel.
|
|
98
|
+
var prevSelectionRef = _react["default"].useRef(null);
|
|
99
|
+
|
|
100
|
+
// when custom color scale - but Confirm is not clicked yet
|
|
101
|
+
var pendingOption = (0, _react.useMemo)(function () {
|
|
102
|
+
return isEditingColorBreaks ? (dropdownSelectProps.options || []).find(function (o) {
|
|
103
|
+
var _colorUIConfig$custom;
|
|
104
|
+
return getOptionValue(o) === (colorUIConfig === null || colorUIConfig === void 0 || (_colorUIConfig$custom = colorUIConfig.customPalette) === null || _colorUIConfig$custom === void 0 ? void 0 : _colorUIConfig$custom.type);
|
|
105
|
+
}) || null : null;
|
|
106
|
+
}, [isEditingColorBreaks, dropdownSelectProps.options, getOptionValue, colorUIConfig === null || colorUIConfig === void 0 || (_colorUIConfig$custom2 = colorUIConfig.customPalette) === null || _colorUIConfig$custom2 === void 0 ? void 0 : _colorUIConfig$custom2.type]);
|
|
90
107
|
var colorScale = (0, _react.useMemo)(function () {
|
|
91
108
|
return (0, _utils.getLayerColorScale)({
|
|
92
109
|
range: range,
|
|
@@ -157,15 +174,17 @@ function ColorScaleSelectorFactory(ColorBreaksPanel) {
|
|
|
157
174
|
}, [dataset, fieldValueAccessor, allBins, isFiltered, field === null || field === void 0 ? void 0 : field.type, ordinalDomain]);
|
|
158
175
|
var onSelectScale = (0, _react.useCallback)(function (val) {
|
|
159
176
|
// highlight selected option
|
|
160
|
-
if (!val
|
|
177
|
+
if (!val) return;
|
|
161
178
|
var selectedScale = getOptionValue(val);
|
|
162
|
-
if (selectedScale === _constants.SCALE_TYPES.custom) {
|
|
163
|
-
var customPalette = (0, _utils.initCustomPaletteByCustomScale)({
|
|
179
|
+
if (selectedScale === _constants.SCALE_TYPES.custom || selectedScale === _constants.SCALE_TYPES.customOrdinal) {
|
|
180
|
+
var customPalette = (0, _utils.initCustomPaletteByCustomScale)(_objectSpread({
|
|
164
181
|
scale: selectedScale,
|
|
165
182
|
field: field,
|
|
166
183
|
range: range,
|
|
167
184
|
colorBreaks: colorBreaks
|
|
168
|
-
}
|
|
185
|
+
}, selectedScale === _constants.SCALE_TYPES.customOrdinal ? {
|
|
186
|
+
ordinalDomain: ordinalDomain
|
|
187
|
+
} : {}));
|
|
169
188
|
setColorUI({
|
|
170
189
|
showColorChart: true,
|
|
171
190
|
colorRangeConfig: {
|
|
@@ -173,25 +192,58 @@ function ColorScaleSelectorFactory(ColorBreaksPanel) {
|
|
|
173
192
|
},
|
|
174
193
|
customPalette: customPalette
|
|
175
194
|
});
|
|
195
|
+
// store previous selection for cancel, then preview custom on the map
|
|
196
|
+
if (!prevSelectionRef.current) {
|
|
197
|
+
prevSelectionRef.current = {
|
|
198
|
+
scale: scaleType,
|
|
199
|
+
range: range
|
|
200
|
+
};
|
|
201
|
+
}
|
|
176
202
|
onSelect(selectedScale, customPalette);
|
|
177
|
-
} else if ((0, _utils.hasColorMap)(range)
|
|
203
|
+
} else if ((0, _utils.hasColorMap)(range)) {
|
|
178
204
|
// not custom
|
|
179
205
|
// remove colorMap
|
|
180
206
|
// eslint-disable-next-line no-unused-vars
|
|
181
207
|
var _ = range.colorMap,
|
|
182
208
|
newRange = (0, _objectWithoutProperties2["default"])(range, _excluded2);
|
|
209
|
+
// reset colorUI before changing the scale
|
|
210
|
+
setColorUI({
|
|
211
|
+
showColorChart: false,
|
|
212
|
+
colorRangeConfig: {
|
|
213
|
+
customBreaks: false
|
|
214
|
+
}
|
|
215
|
+
});
|
|
183
216
|
onSelect(selectedScale, newRange);
|
|
184
217
|
} else {
|
|
218
|
+
// reset colorUI before changing the scale
|
|
219
|
+
setColorUI({
|
|
220
|
+
showColorChart: false,
|
|
221
|
+
colorRangeConfig: {
|
|
222
|
+
customBreaks: false
|
|
223
|
+
}
|
|
224
|
+
});
|
|
185
225
|
onSelect(selectedScale);
|
|
186
226
|
}
|
|
187
|
-
}, [
|
|
227
|
+
}, [field, setColorUI, onSelect, range, getOptionValue, colorBreaks, ordinalDomain, scaleType]);
|
|
188
228
|
var onApply = (0, _react.useCallback)(function () {
|
|
189
|
-
|
|
229
|
+
var _colorUIConfig$custom3;
|
|
230
|
+
// change scale type only if confirmed
|
|
231
|
+
var nextScaleType = (colorUIConfig === null || colorUIConfig === void 0 || (_colorUIConfig$custom3 = colorUIConfig.customPalette) === null || _colorUIConfig$custom3 === void 0 ? void 0 : _colorUIConfig$custom3.type) || scaleType;
|
|
232
|
+
onSelect(nextScaleType, colorUIConfig.customPalette);
|
|
190
233
|
hideTippy(tippyInstance);
|
|
234
|
+
prevSelectionRef.current = null;
|
|
191
235
|
}, [onSelect, colorUIConfig.customPalette, tippyInstance, scaleType]);
|
|
192
236
|
var onCancel = (0, _react.useCallback)(function () {
|
|
237
|
+
// restore previous selection if any
|
|
238
|
+
if (prevSelectionRef.current) {
|
|
239
|
+
var _prevSelectionRef$cur = prevSelectionRef.current,
|
|
240
|
+
prevScale = _prevSelectionRef$cur.scale,
|
|
241
|
+
prevRange = _prevSelectionRef$cur.range;
|
|
242
|
+
onSelect(prevScale, prevRange);
|
|
243
|
+
}
|
|
193
244
|
hideTippy(tippyInstance);
|
|
194
|
-
|
|
245
|
+
prevSelectionRef.current = null;
|
|
246
|
+
}, [tippyInstance, onSelect]);
|
|
195
247
|
var isCustomBreaks = scaleType === _constants.SCALE_TYPES.custom || scaleType === _constants.SCALE_TYPES.customOrdinal;
|
|
196
248
|
return /*#__PURE__*/_react["default"].createElement(DropdownPropContext.Provider, {
|
|
197
249
|
value: {
|
|
@@ -227,17 +279,18 @@ function ColorScaleSelectorFactory(ColorBreaksPanel) {
|
|
|
227
279
|
onOptionSelected: onSelectScale,
|
|
228
280
|
customListComponent: ColorScaleSelectDropdown,
|
|
229
281
|
searchable: false,
|
|
230
|
-
showOptionsWhenEmpty: true
|
|
282
|
+
showOptionsWhenEmpty: true,
|
|
283
|
+
selectedItems: pendingOption ? [pendingOption] : dropdownSelectProps.selectedItems
|
|
231
284
|
})));
|
|
232
285
|
}
|
|
233
286
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
234
287
|
className: "dropdown-select"
|
|
235
288
|
}, /*#__PURE__*/_react["default"].createElement(_dropdownSelect["default"], (0, _extends2["default"])({}, dropdownSelectProps, {
|
|
236
289
|
displayOption: displayOption,
|
|
237
|
-
value: dropdownSelectProps.selectedItems[0]
|
|
290
|
+
value: pendingOption || dropdownSelectProps.selectedItems[0]
|
|
238
291
|
}))))));
|
|
239
292
|
};
|
|
240
293
|
return ColorScaleSelector;
|
|
241
294
|
}
|
|
242
295
|
var _default = exports["default"] = ColorScaleSelectorFactory;
|
|
243
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29uc3RhbnRzIiwiX3V0aWxzIiwiX2NvbG9yQnJlYWtzUGFuZWwiLCJfZHJvcGRvd25TZWxlY3QiLCJfYWNjZXNzb3IiLCJfZHJvcGRvd25MaXN0IiwiX2xhenlUaXBweSIsIl90eXBlYWhlYWQiLCJfZXhjbHVkZWQiLCJfZXhjbHVkZWQyIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiSElTVE9HUkFNX0JJTlMiLCJEcm9wZG93blByb3BDb250ZXh0IiwiUmVhY3QiLCJjcmVhdGVDb250ZXh0IiwiUE9QUEVSX09QVElPTlMiLCJtb2RpZmllcnMiLCJuYW1lIiwib3B0aW9ucyIsIm9mZnNldCIsIkRyb3Bkb3duQm90dG9tIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsImxpZ2h0IiwidGhlbWUiLCJkcm9wZG93bkxpc3RCb3JkZXJUb3BMVCIsImRyb3Bkb3duTGlzdEJvcmRlclRvcCIsIlN0eWxlZFNjYWxlU2VsZWN0RHJvcGRvd24iLCJkcm9wZG93bkxpc3RTaGFkb3ciLCJEcm9wZG93bldyYXBwZXIiLCJkcm9wZG93bldyYXBwZXJaIiwiZHJvcGRvd25XYXBwZXJNYXJnaW4iLCJTdHlsZWRDb2xvclNjYWxlU2VsZWN0b3IiLCJoaWRlVGlwcHkiLCJ0aXBweUluc3RhbmNlIiwiaGlkZSIsIkNvbG9yU2NhbGVTZWxlY3RvckZhY3RvcnkiLCJkZXBzIiwiQ29sb3JCcmVha3NQYW5lbEZhY3RvcnkiLCJDb2xvckJyZWFrc1BhbmVsIiwiQ29sb3JTY2FsZVNlbGVjdERyb3Bkb3duIiwiY3JlYXRlRWxlbWVudCIsIkNvbnN1bWVyIiwiY29udGV4dCIsIkNvbG9yU2NhbGVTZWxlY3RvciIsIl9yZWYiLCJfY29sb3JVSUNvbmZpZyRjb2xvclIiLCJfZmllbGQkZmlsdGVyUHJvcHMiLCJsYXllciIsImZpZWxkIiwiZGF0YXNldCIsIm9uU2VsZWN0Iiwic2NhbGVUeXBlIiwiZG9tYWluIiwiYWdncmVnYXRlZEJpbnMiLCJyYW5nZSIsInNldENvbG9yVUkiLCJjb2xvclVJQ29uZmlnIiwiY2hhbm5lbEtleSIsImRyb3Bkb3duU2VsZWN0UHJvcHMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyIiwiZGlzcGxheU9wdGlvbiIsIkFjY2Vzc29yIiwiZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0ZvciIsImdldE9wdGlvblZhbHVlIiwidXNlTWVtbyIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNldFRpcHB5SW5zdGFuY2UiLCJpc0VkaXRpbmdDb2xvckJyZWFrcyIsImNvbG9yUmFuZ2VDb25maWciLCJjdXN0b21CcmVha3MiLCJjb2xvclNjYWxlIiwiZ2V0TGF5ZXJDb2xvclNjYWxlIiwiY29sb3JCcmVha3MiLCJfZmllbGQkdHlwZSIsImdldExlZ2VuZE9mU2NhbGUiLCJzY2FsZSIsImJ5Wm9vbSIsImxlbmd0aCIsImZpZWxkVHlwZSIsInR5cGUiLCJBTExfRklFTERfVFlQRVMiLCJyZWFsIiwiY29sdW1uU3RhdHMiLCJmaWx0ZXJQcm9wcyIsImZpZWxkVmFsdWVBY2Nlc3NvciIsImlkeCIsImdldFZhbHVlIiwiZGF0YUNvbnRhaW5lciIsInJvd0FzQXJyYXkiLCJvcmRpbmFsRG9tYWluIiwiY29uZmlnIiwidmlzdWFsQ2hhbm5lbHMiLCJhbGxCaW5zIiwic3RyaW5nIiwiaGlzdG9ncmFtRnJvbU9yZGluYWwiLCJhbGxJbmRleGVzIiwiaGlzdG9ncmFtRnJvbVZhbHVlcyIsInZhbHVlcyIsIm1hcCIsImJpbiIsInZhbHVlIiwiYmlucyIsImhpc3RvZ3JhbURvbWFpbiIsImdldEhpc3RvZ3JhbURvbWFpbiIsImlzRmlsdGVyZWQiLCJmaWx0ZXJlZEluZGV4Rm9yRG9tYWluIiwiZmlsdGVyZWRCaW5zIiwiZmlsdGVyRW1wdHlCaW5zIiwidGhyZXNob2xkcyIsImIiLCJ4MCIsImhpc3RvZ3JhbUZyb21UaHJlc2hvbGQiLCJvblNlbGVjdFNjYWxlIiwidXNlQ2FsbGJhY2siLCJ2YWwiLCJzZWxlY3RlZFNjYWxlIiwiU0NBTEVfVFlQRVMiLCJjdXN0b20iLCJjdXN0b21QYWxldHRlIiwiaW5pdEN1c3RvbVBhbGV0dGVCeUN1c3RvbVNjYWxlIiwic2hvd0NvbG9yQ2hhcnQiLCJoYXNDb2xvck1hcCIsImN1c3RvbU9yZGluYWwiLCJfIiwiY29sb3JNYXAiLCJuZXdSYW5nZSIsIm9uQXBwbHkiLCJvbkNhbmNlbCIsImlzQ3VzdG9tQnJlYWtzIiwiUHJvdmlkZXIiLCJjb2xvckZpZWxkIiwib25TY2FsZUNoYW5nZSIsInRyaWdnZXIiLCJwbGFjZW1lbnQiLCJhcHBlbmRUbyIsImludGVyYWN0aXZlIiwiaGlkZU9uQ2xpY2siLCJvbkNyZWF0ZSIsInBvcHBlck9wdGlvbnMiLCJyZW5kZXIiLCJhdHRycyIsImRpc2FibGVkIiwiX2V4dGVuZHMyIiwib25PcHRpb25TZWxlY3RlZCIsImN1c3RvbUxpc3RDb21wb25lbnQiLCJzZWFyY2hhYmxlIiwic2hvd09wdGlvbnNXaGVuRW1wdHkiLCJjbGFzc05hbWUiLCJzZWxlY3RlZEl0ZW1zIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvY29sb3Itc2NhbGUtc2VsZWN0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7QUxMX0ZJRUxEX1RZUEVTLCBTQ0FMRV9UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtBZ2dyZWdhdGVkQmluLCBMYXllciwgVmlzdWFsQ2hhbm5lbERvbWFpbn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtLZXBsZXJUYWJsZX0gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge0NvbG9yUmFuZ2UsIENvbG9yVUksIEZpZWxkfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7XG4gIGdldExheWVyQ29sb3JTY2FsZSxcbiAgZ2V0TGVnZW5kT2ZTY2FsZSxcbiAgaW5pdEN1c3RvbVBhbGV0dGVCeUN1c3RvbVNjYWxlLFxuICBoaXN0b2dyYW1Gcm9tVmFsdWVzLFxuICBoaXN0b2dyYW1Gcm9tT3JkaW5hbCxcbiAgaGlzdG9ncmFtRnJvbVRocmVzaG9sZCxcbiAgZ2V0SGlzdG9ncmFtRG9tYWluLFxuICBoYXNDb2xvck1hcFxufSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcblxuaW1wb3J0IENvbG9yQnJlYWtzUGFuZWxGYWN0b3J5LCB7Q29sb3JCcmVha3NQYW5lbFByb3BzfSBmcm9tICcuL2NvbG9yLWJyZWFrcy1wYW5lbCc7XG5pbXBvcnQge1NldENvbG9yVUlGdW5jfSBmcm9tICcuL2N1c3RvbS1wYWxldHRlJztcbmltcG9ydCBEcm9wZG93blNlbGVjdCBmcm9tICcuLi8uLi9jb21tb24vaXRlbS1zZWxlY3Rvci9kcm9wZG93bi1zZWxlY3QnO1xuaW1wb3J0IEFjY2Vzc29yIGZyb20gJy4uLy4uL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2FjY2Vzc29yJztcbmltcG9ydCBEcm9wZG93bkxpc3QgZnJvbSAnLi4vLi4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvZHJvcGRvd24tbGlzdCc7XG5pbXBvcnQgTGF6eVRpcHB5IGZyb20gJy4uLy4uL21hcC9sYXp5LXRpcHB5JztcbmltcG9ydCBUeXBlYWhlYWQgZnJvbSAnLi4vLi4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvdHlwZWFoZWFkJztcblxudHlwZSBUaXBweUluc3RhbmNlID0gYW55OyAvLyAndGlwcHktanMnXG5cbmNvbnN0IEhJU1RPR1JBTV9CSU5TID0gMzA7XG5cbmV4cG9ydCB0eXBlIFNjYWxlT3B0aW9uID0ge1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIE9uU2VsZWN0RnVuYyA9ICh2OiBzdHJpbmcsIHZpc0NvbmZnPzogUmVjb3JkPHN0cmluZywgYW55PikgPT4gdm9pZDtcblxuZXhwb3J0IHR5cGUgQ29udGV4dFByb3BzID0gQ29sb3JCcmVha3NQYW5lbFByb3BzO1xuXG5leHBvcnQgdHlwZSBDb2xvclNjYWxlU2VsZWN0b3JQcm9wcyA9IHtcbiAgbGF5ZXI6IExheWVyO1xuICBmaWVsZDogRmllbGQ7XG4gIGRhdGFzZXQ6IEtlcGxlclRhYmxlO1xuICBzY2FsZVR5cGU6IHN0cmluZztcbiAgZG9tYWluOiBWaXN1YWxDaGFubmVsRG9tYWluO1xuICByYW5nZTogQ29sb3JSYW5nZTtcbiAgb25TZWxlY3Q6IE9uU2VsZWN0RnVuYztcbiAgc2V0Q29sb3JVSTogU2V0Q29sb3JVSUZ1bmM7XG4gIGNvbG9yVUlDb25maWc6IENvbG9yVUk7XG4gIG9wdGlvbnM6IFNjYWxlT3B0aW9uW107XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgc2VsZWN0ZWRJdGVtczogU2NhbGVPcHRpb25bXTtcbiAgbXVsdGlTZWxlY3Q6IGJvb2xlYW47XG4gIHNlYXJjaGFibGU6IGJvb2xlYW47XG4gIGRpc3BsYXlPcHRpb246IHN0cmluZztcbiAgZ2V0T3B0aW9uVmFsdWU6IHN0cmluZztcbiAgYWdncmVnYXRlZEJpbnM/OiBBZ2dyZWdhdGVkQmluW107XG4gIGNoYW5uZWxLZXk6IHN0cmluZztcbn07XG5cbmNvbnN0IERyb3Bkb3duUHJvcENvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KHt9KTtcbmNvbnN0IFBPUFBFUl9PUFRJT05TID0ge1xuICBtb2RpZmllcnM6IFtcbiAgICAvLyB6ZXJvIG9mZnNldHMgc2luY2UgdGhleSBhcmUgYWxyZWFkeSBhZGRlZCBpbiBWZXJ0aWNhbFRvb2xiYXJcbiAgICB7bmFtZTogJ29mZnNldCcsIG9wdGlvbnM6IHtvZmZzZXQ6IFswLCAwXX19XG4gIF1cbn07XG5cbmNvbnN0IERyb3Bkb3duQm90dG9tID0gc3R5bGVkLmRpdjx7bGlnaHQ/OiBib29sZWFufT5gXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZFxuICAgICR7cHJvcHMgPT5cbiAgICAgIHByb3BzLmxpZ2h0ID8gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0Qm9yZGVyVG9wTFQgOiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCb3JkZXJUb3B9O1xuYDtcblxuY29uc3QgU3R5bGVkU2NhbGVTZWxlY3REcm9wZG93biA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0U2hhZG93fTtcbiAgLmxpc3Qtc2VsZWN0b3Ige1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxuICAubGlzdF9faXRlbSB7XG4gICAgcGFkZGluZzogNHB4IDlweDtcbiAgfVxuYDtcbmNvbnN0IERyb3Bkb3duV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGJvcmRlcjogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25XcmFwcGVyWn07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLXRvcDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bldhcHBlck1hcmdpbn1weDtcbmA7XG5cbmNvbnN0IFN0eWxlZENvbG9yU2NhbGVTZWxlY3RvciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLnR5cGVhaGVhZCB7XG4gICAgLy8gYWRkcyBwYWRkaW5nIHRvIGJvdHRvbSBvZiBkcm9wZG93blxuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIH1cbiAgW2RhdGEtdGlwcHktcm9vdF0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5gO1xuXG5mdW5jdGlvbiBoaWRlVGlwcHkodGlwcHlJbnN0YW5jZSkge1xuICBpZiAodGlwcHlJbnN0YW5jZSkge1xuICAgIHRpcHB5SW5zdGFuY2UuaGlkZSgpO1xuICB9XG59XG5Db2xvclNjYWxlU2VsZWN0b3JGYWN0b3J5LmRlcHMgPSBbQ29sb3JCcmVha3NQYW5lbEZhY3RvcnldO1xuXG5mdW5jdGlvbiBDb2xvclNjYWxlU2VsZWN0b3JGYWN0b3J5KFxuICBDb2xvckJyZWFrc1BhbmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBDb2xvckJyZWFrc1BhbmVsRmFjdG9yeT5cbik6IFJlYWN0LkZDPENvbG9yU2NhbGVTZWxlY3RvclByb3BzPiB7XG4gIGNvbnN0IENvbG9yU2NhbGVTZWxlY3REcm9wZG93biA9IHByb3BzID0+IChcbiAgICA8U3R5bGVkU2NhbGVTZWxlY3REcm9wZG93bj5cbiAgICAgIDxEcm9wZG93bkxpc3Qgey4uLnByb3BzfSAvPlxuICAgICAgPERyb3Bkb3duUHJvcENvbnRleHQuQ29uc3VtZXI+XG4gICAgICAgIHsoY29udGV4dDogYW55KSA9PiAoXG4gICAgICAgICAgPERyb3Bkb3duQm90dG9tPlxuICAgICAgICAgICAgPENvbG9yQnJlYWtzUGFuZWwgey4uLmNvbnRleHR9IC8+XG4gICAgICAgICAgPC9Ecm9wZG93bkJvdHRvbT5cbiAgICAgICAgKX1cbiAgICAgIDwvRHJvcGRvd25Qcm9wQ29udGV4dC5Db25zdW1lcj5cbiAgICA8L1N0eWxlZFNjYWxlU2VsZWN0RHJvcGRvd24+XG4gICk7XG5cbiAgY29uc3QgQ29sb3JTY2FsZVNlbGVjdG9yOiBSZWFjdC5GQzxDb2xvclNjYWxlU2VsZWN0b3JQcm9wcz4gPSAoe1xuICAgIGxheWVyLFxuICAgIGZpZWxkLFxuICAgIGRhdGFzZXQsXG4gICAgb25TZWxlY3QsXG4gICAgc2NhbGVUeXBlLFxuICAgIGRvbWFpbixcbiAgICBhZ2dyZWdhdGVkQmlucyxcbiAgICByYW5nZSxcbiAgICBzZXRDb2xvclVJLFxuICAgIGNvbG9yVUlDb25maWcsXG4gICAgY2hhbm5lbEtleSxcbiAgICAuLi5kcm9wZG93blNlbGVjdFByb3BzXG4gIH0pID0+IHtcbiAgICBjb25zdCBkaXNwbGF5T3B0aW9uID0gQWNjZXNzb3IuZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0Zvcihkcm9wZG93blNlbGVjdFByb3BzLmRpc3BsYXlPcHRpb24pO1xuICAgIGNvbnN0IGdldE9wdGlvblZhbHVlID0gdXNlTWVtbyhcbiAgICAgICgpID0+IEFjY2Vzc29yLmdlbmVyYXRlT3B0aW9uVG9TdHJpbmdGb3IoZHJvcGRvd25TZWxlY3RQcm9wcy5nZXRPcHRpb25WYWx1ZSksXG4gICAgICBbZHJvcGRvd25TZWxlY3RQcm9wcy5nZXRPcHRpb25WYWx1ZV1cbiAgICApO1xuICAgIGNvbnN0IFt0aXBweUluc3RhbmNlLCBzZXRUaXBweUluc3RhbmNlXSA9IHVzZVN0YXRlPFRpcHB5SW5zdGFuY2U+KCk7XG4gICAgY29uc3QgaXNFZGl0aW5nQ29sb3JCcmVha3MgPSBjb2xvclVJQ29uZmlnPy5jb2xvclJhbmdlQ29uZmlnPy5jdXN0b21CcmVha3M7XG4gICAgY29uc3QgY29sb3JTY2FsZSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PlxuICAgICAgICBnZXRMYXllckNvbG9yU2NhbGUoe1xuICAgICAgICAgIHJhbmdlLFxuICAgICAgICAgIGRvbWFpbixcbiAgICAgICAgICBzY2FsZVR5cGUsXG4gICAgICAgICAgbGF5ZXJcbiAgICAgICAgfSksXG4gICAgICBbcmFuZ2UsIGRvbWFpbiwgc2NhbGVUeXBlLCBsYXllcl1cbiAgICApO1xuXG4gICAgY29uc3QgY29sb3JCcmVha3MgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIHJldHVybiBjb2xvclNjYWxlXG4gICAgICAgID8gZ2V0TGVnZW5kT2ZTY2FsZSh7XG4gICAgICAgICAgICBzY2FsZTogY29sb3JTY2FsZS5ieVpvb20gJiYgZG9tYWluID8gY29sb3JTY2FsZShkb21haW4/Lmxlbmd0aCAtIDEpIDogY29sb3JTY2FsZSxcbiAgICAgICAgICAgIHNjYWxlVHlwZSxcbiAgICAgICAgICAgIGZpZWxkVHlwZTogZmllbGQ/LnR5cGUgPz8gQUxMX0ZJRUxEX1RZUEVTLnJlYWxcbiAgICAgICAgICB9KVxuICAgICAgICA6IG51bGw7XG4gICAgfSwgW2NvbG9yU2NhbGUsIHNjYWxlVHlwZSwgZmllbGQ/LnR5cGUsIGRvbWFpbl0pO1xuXG4gICAgY29uc3QgY29sdW1uU3RhdHMgPSBmaWVsZD8uZmlsdGVyUHJvcHM/LmNvbHVtblN0YXRzO1xuXG4gICAgY29uc3QgZmllbGRWYWx1ZUFjY2Vzc29yID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICByZXR1cm4gZmllbGRcbiAgICAgICAgPyBpZHggPT4gZGF0YXNldC5nZXRWYWx1ZShmaWVsZC5uYW1lLCBpZHgpXG4gICAgICAgIDogaWR4ID0+IGRhdGFzZXQuZGF0YUNvbnRhaW5lci5yb3dBc0FycmF5KGlkeCk7XG4gICAgfSwgW2RhdGFzZXQsIGZpZWxkXSk7XG5cbiAgICBjb25zdCBvcmRpbmFsRG9tYWluID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICByZXR1cm4gbGF5ZXIuY29uZmlnW2xheWVyLnZpc3VhbENoYW5uZWxzW2NoYW5uZWxLZXldLmRvbWFpbl0gfHwgW107XG4gICAgfSwgW2NoYW5uZWxLZXksIGxheWVyLmNvbmZpZywgbGF5ZXIudmlzdWFsQ2hhbm5lbHNdKTtcblxuICAgIC8vIGFnZ3JlZ2F0ZWRCaW5zIHNob3VsZCBiZSB0aGUgcmF3IGRhdGFcbiAgICBjb25zdCBhbGxCaW5zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoZmllbGQ/LnR5cGUgPT09IEFMTF9GSUVMRF9UWVBFUy5zdHJpbmcpIHtcbiAgICAgICAgLy8gVXNlIG9yZGluYWwgYmlucyBmb3Igc3RyaW5nIGNvbHVtbnMsIGFzIGQzIGNvdWxkIHBvdGVudGlhbGx5IGdlbmVyYXRlIGludmFsaWQgbnVtZXJpYyBiaW5zLCBhbmQgY3Jhc2hcbiAgICAgICAgcmV0dXJuIGhpc3RvZ3JhbUZyb21PcmRpbmFsKG9yZGluYWxEb21haW4sIGRhdGFzZXQuYWxsSW5kZXhlcywgZmllbGRWYWx1ZUFjY2Vzc29yKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGFnZ3JlZ2F0ZWRCaW5zKSB7XG4gICAgICAgIHJldHVybiBoaXN0b2dyYW1Gcm9tVmFsdWVzKFxuICAgICAgICAgIE9iamVjdC52YWx1ZXMoYWdncmVnYXRlZEJpbnMpLm1hcChiaW4gPT4gYmluLmkpLFxuICAgICAgICAgIEhJU1RPR1JBTV9CSU5TLFxuICAgICAgICAgIGlkeCA9PiBhZ2dyZWdhdGVkQmluc1tpZHhdLnZhbHVlXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY29sdW1uU3RhdHM/LmJpbnNcbiAgICAgICAgPyBjb2x1bW5TdGF0cz8uYmluc1xuICAgICAgICA6IGhpc3RvZ3JhbUZyb21WYWx1ZXMoZGF0YXNldC5hbGxJbmRleGVzLCBISVNUT0dSQU1fQklOUywgZmllbGRWYWx1ZUFjY2Vzc29yKTtcbiAgICB9LCBbYWdncmVnYXRlZEJpbnMsIGNvbHVtblN0YXRzLCBkYXRhc2V0LCBmaWVsZFZhbHVlQWNjZXNzb3IsIGZpZWxkPy50eXBlLCBvcmRpbmFsRG9tYWluXSk7XG5cbiAgICBjb25zdCBoaXN0b2dyYW1Eb21haW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIHJldHVybiBnZXRIaXN0b2dyYW1Eb21haW4oe2FnZ3JlZ2F0ZWRCaW5zLCBjb2x1bW5TdGF0cywgZGF0YXNldCwgZmllbGRWYWx1ZUFjY2Vzc29yfSk7XG4gICAgfSwgW2RhdGFzZXQsIGZpZWxkVmFsdWVBY2Nlc3NvciwgYWdncmVnYXRlZEJpbnMsIGNvbHVtblN0YXRzXSk7XG5cbiAgICBjb25zdCBpc0ZpbHRlcmVkID0gYWdncmVnYXRlZEJpbnNcbiAgICAgID8gZmFsc2VcbiAgICAgIDogZGF0YXNldC5maWx0ZXJlZEluZGV4Rm9yRG9tYWluLmxlbmd0aCAhPT0gZGF0YXNldC5hbGxJbmRleGVzLmxlbmd0aDtcblxuICAgIC8vIGdldCBmaWx0ZXJlZEJpbnMgKG5vdCBhcHBseSB0byBhZ2dyZWdhdGUgbGF5ZXIpXG4gICAgY29uc3QgZmlsdGVyZWRCaW5zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWlzRmlsdGVyZWQpIHtcbiAgICAgICAgcmV0dXJuIGFsbEJpbnM7XG4gICAgICB9XG4gICAgICBpZiAoZmllbGQ/LnR5cGUgPT09IEFMTF9GSUVMRF9UWVBFUy5zdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIGhpc3RvZ3JhbUZyb21PcmRpbmFsKFxuICAgICAgICAgIG9yZGluYWxEb21haW4gYXMgYW55LFxuICAgICAgICAgIGRhdGFzZXQuZmlsdGVyZWRJbmRleEZvckRvbWFpbixcbiAgICAgICAgICBmaWVsZFZhbHVlQWNjZXNzb3JcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIC8vIG51bWVyaWMgdGhyZXNob2xkc1xuICAgICAgY29uc3QgZmlsdGVyRW1wdHlCaW5zID0gZmFsc2U7XG4gICAgICBjb25zdCB0aHJlc2hvbGRzID0gYWxsQmlucy5tYXAoYiA9PiBiLngwKTtcbiAgICAgIHJldHVybiBoaXN0b2dyYW1Gcm9tVGhyZXNob2xkKFxuICAgICAgICB0aHJlc2hvbGRzLFxuICAgICAgICBkYXRhc2V0LmZpbHRlcmVkSW5kZXhGb3JEb21haW4sXG4gICAgICAgIGZpZWxkVmFsdWVBY2Nlc3NvcixcbiAgICAgICAgZmlsdGVyRW1wdHlCaW5zXG4gICAgICApO1xuICAgIH0sIFtkYXRhc2V0LCBmaWVsZFZhbHVlQWNjZXNzb3IsIGFsbEJpbnMsIGlzRmlsdGVyZWQsIGZpZWxkPy50eXBlLCBvcmRpbmFsRG9tYWluXSk7XG5cbiAgICBjb25zdCBvblNlbGVjdFNjYWxlID0gdXNlQ2FsbGJhY2soXG4gICAgICB2YWwgPT4ge1xuICAgICAgICAvLyBoaWdobGlnaHQgc2VsZWN0ZWQgb3B0aW9uXG4gICAgICAgIGlmICghdmFsIHx8IGlzRWRpdGluZ0NvbG9yQnJlYWtzKSByZXR1cm47XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkU2NhbGUgPSBnZXRPcHRpb25WYWx1ZSh2YWwpO1xuICAgICAgICBpZiAoc2VsZWN0ZWRTY2FsZSA9PT0gU0NBTEVfVFlQRVMuY3VzdG9tKSB7XG4gICAgICAgICAgY29uc3QgY3VzdG9tUGFsZXR0ZSA9IGluaXRDdXN0b21QYWxldHRlQnlDdXN0b21TY2FsZSh7XG4gICAgICAgICAgICBzY2FsZTogc2VsZWN0ZWRTY2FsZSxcbiAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgcmFuZ2UsXG4gICAgICAgICAgICBjb2xvckJyZWFrc1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHNldENvbG9yVUkoe1xuICAgICAgICAgICAgc2hvd0NvbG9yQ2hhcnQ6IHRydWUsXG4gICAgICAgICAgICBjb2xvclJhbmdlQ29uZmlnOiB7XG4gICAgICAgICAgICAgIGN1c3RvbUJyZWFrczogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGN1c3RvbVBhbGV0dGVcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBvblNlbGVjdChzZWxlY3RlZFNjYWxlLCBjdXN0b21QYWxldHRlKTtcbiAgICAgICAgfSBlbHNlIGlmIChoYXNDb2xvck1hcChyYW5nZSkgJiYgc2VsZWN0ZWRTY2FsZSAhPT0gU0NBTEVfVFlQRVMuY3VzdG9tT3JkaW5hbCkge1xuICAgICAgICAgIC8vIG5vdCBjdXN0b21cbiAgICAgICAgICAvLyByZW1vdmUgY29sb3JNYXBcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgICAgICAgICBjb25zdCB7Y29sb3JNYXA6IF8sIC4uLm5ld1JhbmdlfSA9IHJhbmdlO1xuICAgICAgICAgIG9uU2VsZWN0KHNlbGVjdGVkU2NhbGUsIG5ld1JhbmdlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvblNlbGVjdChzZWxlY3RlZFNjYWxlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtpc0VkaXRpbmdDb2xvckJyZWFrcywgZmllbGQsIHNldENvbG9yVUksIG9uU2VsZWN0LCByYW5nZSwgZ2V0T3B0aW9uVmFsdWUsIGNvbG9yQnJlYWtzXVxuICAgICk7XG5cbiAgICBjb25zdCBvbkFwcGx5ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25TZWxlY3Qoc2NhbGVUeXBlLCBjb2xvclVJQ29uZmlnLmN1c3RvbVBhbGV0dGUpO1xuICAgICAgaGlkZVRpcHB5KHRpcHB5SW5zdGFuY2UpO1xuICAgIH0sIFtvblNlbGVjdCwgY29sb3JVSUNvbmZpZy5jdXN0b21QYWxldHRlLCB0aXBweUluc3RhbmNlLCBzY2FsZVR5cGVdKTtcblxuICAgIGNvbnN0IG9uQ2FuY2VsID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaGlkZVRpcHB5KHRpcHB5SW5zdGFuY2UpO1xuICAgIH0sIFt0aXBweUluc3RhbmNlXSk7XG5cbiAgICBjb25zdCBpc0N1c3RvbUJyZWFrcyA9XG4gICAgICBzY2FsZVR5cGUgPT09IFNDQUxFX1RZUEVTLmN1c3RvbSB8fCBzY2FsZVR5cGUgPT09IFNDQUxFX1RZUEVTLmN1c3RvbU9yZGluYWw7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERyb3Bkb3duUHJvcENvbnRleHQuUHJvdmlkZXJcbiAgICAgICAgdmFsdWU9e3tcbiAgICAgICAgICBzZXRDb2xvclVJLFxuICAgICAgICAgIGNvbG9yRmllbGQ6IGZpZWxkLFxuICAgICAgICAgIGRhdGFzZXQsXG4gICAgICAgICAgY29sb3JVSUNvbmZpZyxcbiAgICAgICAgICBjb2xvckJyZWFrcyxcbiAgICAgICAgICBpc0N1c3RvbUJyZWFrcyxcbiAgICAgICAgICBhbGxCaW5zLFxuICAgICAgICAgIGZpbHRlcmVkQmlucyxcbiAgICAgICAgICBpc0ZpbHRlcmVkLFxuICAgICAgICAgIGhpc3RvZ3JhbURvbWFpbixcbiAgICAgICAgICBvcmRpbmFsRG9tYWluLFxuICAgICAgICAgIG9uU2NhbGVDaGFuZ2U6IG9uU2VsZWN0LFxuICAgICAgICAgIG9uQXBwbHksXG4gICAgICAgICAgb25DYW5jZWxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFN0eWxlZENvbG9yU2NhbGVTZWxlY3Rvcj5cbiAgICAgICAgICA8TGF6eVRpcHB5XG4gICAgICAgICAgICB0cmlnZ2VyPVwiY2xpY2tcIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXN0YXJ0XCJcbiAgICAgICAgICAgIGFwcGVuZFRvPVwicGFyZW50XCJcbiAgICAgICAgICAgIGludGVyYWN0aXZlPXt0cnVlfVxuICAgICAgICAgICAgaGlkZU9uQ2xpY2s9eyFpc0VkaXRpbmdDb2xvckJyZWFrc31cbiAgICAgICAgICAgIG9uQ3JlYXRlPXtzZXRUaXBweUluc3RhbmNlfVxuICAgICAgICAgICAgcG9wcGVyT3B0aW9ucz17UE9QUEVSX09QVElPTlN9XG4gICAgICAgICAgICByZW5kZXI9e2F0dHJzID0+IChcbiAgICAgICAgICAgICAgPERyb3Bkb3duV3JhcHBlciB7Li4uYXR0cnN9PlxuICAgICAgICAgICAgICAgIHsvKiBAdHMtaWdub3JlKi99XG4gICAgICAgICAgICAgICAgeyFkcm9wZG93blNlbGVjdFByb3BzLmRpc2FibGVkICYmIChcbiAgICAgICAgICAgICAgICAgIDxUeXBlYWhlYWRcbiAgICAgICAgICAgICAgICAgICAgey4uLmRyb3Bkb3duU2VsZWN0UHJvcHN9XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlPcHRpb249e2Rpc3BsYXlPcHRpb259XG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgZ2V0T3B0aW9uVmFsdWU9e2dldE9wdGlvblZhbHVlfVxuICAgICAgICAgICAgICAgICAgICBvbk9wdGlvblNlbGVjdGVkPXtvblNlbGVjdFNjYWxlfVxuICAgICAgICAgICAgICAgICAgICBjdXN0b21MaXN0Q29tcG9uZW50PXtDb2xvclNjYWxlU2VsZWN0RHJvcGRvd259XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaGFibGU9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICBzaG93T3B0aW9uc1doZW5FbXB0eVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L0Ryb3Bkb3duV3JhcHBlcj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkcm9wZG93bi1zZWxlY3RcIj5cbiAgICAgICAgICAgICAgey8qIEB0cy1pZ25vcmUqL31cbiAgICAgICAgICAgICAgPERyb3Bkb3duU2VsZWN0XG4gICAgICAgICAgICAgICAgey4uLmRyb3Bkb3duU2VsZWN0UHJvcHN9XG4gICAgICAgICAgICAgICAgZGlzcGxheU9wdGlvbj17ZGlzcGxheU9wdGlvbn1cbiAgICAgICAgICAgICAgICB2YWx1ZT17ZHJvcGRvd25TZWxlY3RQcm9wcy5zZWxlY3RlZEl0ZW1zWzBdfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9MYXp5VGlwcHk+XG4gICAgICAgIDwvU3R5bGVkQ29sb3JTY2FsZVNlbGVjdG9yPlxuICAgICAgPC9Ecm9wZG93blByb3BDb250ZXh0LlByb3ZpZGVyPlxuICAgICk7XG4gIH07XG4gIHJldHVybiBDb2xvclNjYWxlU2VsZWN0b3I7XG59XG5leHBvcnQgZGVmYXVsdCBDb2xvclNjYWxlU2VsZWN0b3JGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsVUFBQSxHQUFBSCxPQUFBO0FBSUEsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBV0EsSUFBQUssaUJBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFNLGVBQUEsR0FBQUosc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFPLFNBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFRLGFBQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFTLFVBQUEsR0FBQVAsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFVLFVBQUEsR0FBQVIsc0JBQUEsQ0FBQUYsT0FBQTtBQUE2RCxJQUFBVyxTQUFBO0VBQUFDLFVBQUE7QUFBQSxJQUFBQyxlQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBM0I3RDtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFuQix3QkFBQW1CLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFB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
|
|
296
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29uc3RhbnRzIiwiX3V0aWxzIiwiX2NvbG9yQnJlYWtzUGFuZWwiLCJfZHJvcGRvd25TZWxlY3QiLCJfYWNjZXNzb3IiLCJfZHJvcGRvd25MaXN0IiwiX2xhenlUaXBweSIsIl90eXBlYWhlYWQiLCJfZXhjbHVkZWQiLCJfZXhjbHVkZWQyIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiSElTVE9HUkFNX0JJTlMiLCJEcm9wZG93blByb3BDb250ZXh0IiwiUmVhY3QiLCJjcmVhdGVDb250ZXh0IiwiUE9QUEVSX09QVElPTlMiLCJtb2RpZmllcnMiLCJuYW1lIiwib3B0aW9ucyIsIm9mZnNldCIsIkRyb3Bkb3duQm90dG9tIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsImxpZ2h0IiwidGhlbWUiLCJkcm9wZG93bkxpc3RCb3JkZXJUb3BMVCIsImRyb3Bkb3duTGlzdEJvcmRlclRvcCIsIlN0eWxlZFNjYWxlU2VsZWN0RHJvcGRvd24iLCJkcm9wZG93bkxpc3RTaGFkb3ciLCJEcm9wZG93bldyYXBwZXIiLCJkcm9wZG93bldyYXBwZXJaIiwiZHJvcGRvd25XYXBwZXJNYXJnaW4iLCJTdHlsZWRDb2xvclNjYWxlU2VsZWN0b3IiLCJoaWRlVGlwcHkiLCJ0aXBweUluc3RhbmNlIiwiaGlkZSIsIkNvbG9yU2NhbGVTZWxlY3RvckZhY3RvcnkiLCJkZXBzIiwiQ29sb3JCcmVha3NQYW5lbEZhY3RvcnkiLCJDb2xvckJyZWFrc1BhbmVsIiwiQ29sb3JTY2FsZVNlbGVjdERyb3Bkb3duIiwiY3JlYXRlRWxlbWVudCIsIkNvbnN1bWVyIiwiY29udGV4dCIsIkNvbG9yU2NhbGVTZWxlY3RvciIsIl9yZWYiLCJfY29sb3JVSUNvbmZpZyRjb2xvclIiLCJfY29sb3JVSUNvbmZpZyRjdXN0b20yIiwiX2ZpZWxkJGZpbHRlclByb3BzIiwibGF5ZXIiLCJmaWVsZCIsImRhdGFzZXQiLCJvblNlbGVjdCIsInNjYWxlVHlwZSIsImRvbWFpbiIsImFnZ3JlZ2F0ZWRCaW5zIiwicmFuZ2UiLCJzZXRDb2xvclVJIiwiY29sb3JVSUNvbmZpZyIsImNoYW5uZWxLZXkiLCJkcm9wZG93blNlbGVjdFByb3BzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiIsImRpc3BsYXlPcHRpb24iLCJBY2Nlc3NvciIsImdlbmVyYXRlT3B0aW9uVG9TdHJpbmdGb3IiLCJnZXRPcHRpb25WYWx1ZSIsInVzZU1lbW8iLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJzZXRUaXBweUluc3RhbmNlIiwiaXNFZGl0aW5nQ29sb3JCcmVha3MiLCJjb2xvclJhbmdlQ29uZmlnIiwiY3VzdG9tQnJlYWtzIiwicHJldlNlbGVjdGlvblJlZiIsInVzZVJlZiIsInBlbmRpbmdPcHRpb24iLCJmaW5kIiwiX2NvbG9yVUlDb25maWckY3VzdG9tIiwiY3VzdG9tUGFsZXR0ZSIsInR5cGUiLCJjb2xvclNjYWxlIiwiZ2V0TGF5ZXJDb2xvclNjYWxlIiwiY29sb3JCcmVha3MiLCJfZmllbGQkdHlwZSIsImdldExlZ2VuZE9mU2NhbGUiLCJzY2FsZSIsImJ5Wm9vbSIsImZpZWxkVHlwZSIsIkFMTF9GSUVMRF9UWVBFUyIsInJlYWwiLCJjb2x1bW5TdGF0cyIsImZpbHRlclByb3BzIiwiZmllbGRWYWx1ZUFjY2Vzc29yIiwiaWR4IiwiZ2V0VmFsdWUiLCJkYXRhQ29udGFpbmVyIiwicm93QXNBcnJheSIsIm9yZGluYWxEb21haW4iLCJjb25maWciLCJ2aXN1YWxDaGFubmVscyIsImFsbEJpbnMiLCJzdHJpbmciLCJoaXN0b2dyYW1Gcm9tT3JkaW5hbCIsImFsbEluZGV4ZXMiLCJoaXN0b2dyYW1Gcm9tVmFsdWVzIiwidmFsdWVzIiwibWFwIiwiYmluIiwidmFsdWUiLCJiaW5zIiwiaGlzdG9ncmFtRG9tYWluIiwiZ2V0SGlzdG9ncmFtRG9tYWluIiwiaXNGaWx0ZXJlZCIsImZpbHRlcmVkSW5kZXhGb3JEb21haW4iLCJmaWx0ZXJlZEJpbnMiLCJmaWx0ZXJFbXB0eUJpbnMiLCJ0aHJlc2hvbGRzIiwiYiIsIngwIiwiaGlzdG9ncmFtRnJvbVRocmVzaG9sZCIsIm9uU2VsZWN0U2NhbGUiLCJ1c2VDYWxsYmFjayIsInZhbCIsInNlbGVjdGVkU2NhbGUiLCJTQ0FMRV9UWVBFUyIsImN1c3RvbSIsImN1c3RvbU9yZGluYWwiLCJpbml0Q3VzdG9tUGFsZXR0ZUJ5Q3VzdG9tU2NhbGUiLCJzaG93Q29sb3JDaGFydCIsImN1cnJlbnQiLCJoYXNDb2xvck1hcCIsIl8iLCJjb2xvck1hcCIsIm5ld1JhbmdlIiwib25BcHBseSIsIl9jb2xvclVJQ29uZmlnJGN1c3RvbTMiLCJuZXh0U2NhbGVUeXBlIiwib25DYW5jZWwiLCJfcHJldlNlbGVjdGlvblJlZiRjdXIiLCJwcmV2U2NhbGUiLCJwcmV2UmFuZ2UiLCJpc0N1c3RvbUJyZWFrcyIsIlByb3ZpZGVyIiwiY29sb3JGaWVsZCIsIm9uU2NhbGVDaGFuZ2UiLCJ0cmlnZ2VyIiwicGxhY2VtZW50IiwiYXBwZW5kVG8iLCJpbnRlcmFjdGl2ZSIsImhpZGVPbkNsaWNrIiwib25DcmVhdGUiLCJwb3BwZXJPcHRpb25zIiwicmVuZGVyIiwiYXR0cnMiLCJkaXNhYmxlZCIsIl9leHRlbmRzMiIsIm9uT3B0aW9uU2VsZWN0ZWQiLCJjdXN0b21MaXN0Q29tcG9uZW50Iiwic2VhcmNoYWJsZSIsInNob3dPcHRpb25zV2hlbkVtcHR5Iiwic2VsZWN0ZWRJdGVtcyIsImNsYXNzTmFtZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zaWRlLXBhbmVsL2xheWVyLXBhbmVsL2NvbG9yLXNjYWxlLXNlbGVjdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQge0FMTF9GSUVMRF9UWVBFUywgU0NBTEVfVFlQRVN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7QWdncmVnYXRlZEJpbiwgTGF5ZXIsIFZpc3VhbENoYW5uZWxEb21haW59IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7S2VwbGVyVGFibGV9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuaW1wb3J0IHtDb2xvclJhbmdlLCBDb2xvclVJLCBGaWVsZH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge1xuICBnZXRMYXllckNvbG9yU2NhbGUsXG4gIGdldExlZ2VuZE9mU2NhbGUsXG4gIGluaXRDdXN0b21QYWxldHRlQnlDdXN0b21TY2FsZSxcbiAgaGlzdG9ncmFtRnJvbVZhbHVlcyxcbiAgaGlzdG9ncmFtRnJvbU9yZGluYWwsXG4gIGhpc3RvZ3JhbUZyb21UaHJlc2hvbGQsXG4gIGdldEhpc3RvZ3JhbURvbWFpbixcbiAgaGFzQ29sb3JNYXBcbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbmltcG9ydCBDb2xvckJyZWFrc1BhbmVsRmFjdG9yeSwge0NvbG9yQnJlYWtzUGFuZWxQcm9wc30gZnJvbSAnLi9jb2xvci1icmVha3MtcGFuZWwnO1xuaW1wb3J0IHtTZXRDb2xvclVJRnVuY30gZnJvbSAnLi9jdXN0b20tcGFsZXR0ZSc7XG5pbXBvcnQgRHJvcGRvd25TZWxlY3QgZnJvbSAnLi4vLi4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvZHJvcGRvd24tc2VsZWN0JztcbmltcG9ydCBBY2Nlc3NvciBmcm9tICcuLi8uLi9jb21tb24vaXRlbS1zZWxlY3Rvci9hY2Nlc3Nvcic7XG5pbXBvcnQgRHJvcGRvd25MaXN0IGZyb20gJy4uLy4uL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2Ryb3Bkb3duLWxpc3QnO1xuaW1wb3J0IExhenlUaXBweSBmcm9tICcuLi8uLi9tYXAvbGF6eS10aXBweSc7XG5pbXBvcnQgVHlwZWFoZWFkIGZyb20gJy4uLy4uL2NvbW1vbi9pdGVtLXNlbGVjdG9yL3R5cGVhaGVhZCc7XG5cbnR5cGUgVGlwcHlJbnN0YW5jZSA9IGFueTsgLy8gJ3RpcHB5LWpzJ1xuXG5jb25zdCBISVNUT0dSQU1fQklOUyA9IDMwO1xuXG5leHBvcnQgdHlwZSBTY2FsZU9wdGlvbiA9IHtcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBPblNlbGVjdEZ1bmMgPSAodjogc3RyaW5nLCB2aXNDb25mZz86IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIENvbnRleHRQcm9wcyA9IENvbG9yQnJlYWtzUGFuZWxQcm9wcztcblxuZXhwb3J0IHR5cGUgQ29sb3JTY2FsZVNlbGVjdG9yUHJvcHMgPSB7XG4gIGxheWVyOiBMYXllcjtcbiAgZmllbGQ6IEZpZWxkO1xuICBkYXRhc2V0OiBLZXBsZXJUYWJsZTtcbiAgc2NhbGVUeXBlOiBzdHJpbmc7XG4gIGRvbWFpbjogVmlzdWFsQ2hhbm5lbERvbWFpbjtcbiAgcmFuZ2U6IENvbG9yUmFuZ2U7XG4gIG9uU2VsZWN0OiBPblNlbGVjdEZ1bmM7XG4gIHNldENvbG9yVUk6IFNldENvbG9yVUlGdW5jO1xuICBjb2xvclVJQ29uZmlnOiBDb2xvclVJO1xuICBvcHRpb25zOiBTY2FsZU9wdGlvbltdO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIHNlbGVjdGVkSXRlbXM6IFNjYWxlT3B0aW9uW107XG4gIG11bHRpU2VsZWN0OiBib29sZWFuO1xuICBzZWFyY2hhYmxlOiBib29sZWFuO1xuICBkaXNwbGF5T3B0aW9uOiBzdHJpbmc7XG4gIGdldE9wdGlvblZhbHVlOiBzdHJpbmc7XG4gIGFnZ3JlZ2F0ZWRCaW5zPzogQWdncmVnYXRlZEJpbltdO1xuICBjaGFubmVsS2V5OiBzdHJpbmc7XG59O1xuXG5jb25zdCBEcm9wZG93blByb3BDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh7fSk7XG5jb25zdCBQT1BQRVJfT1BUSU9OUyA9IHtcbiAgbW9kaWZpZXJzOiBbXG4gICAgLy8gemVybyBvZmZzZXRzIHNpbmNlIHRoZXkgYXJlIGFscmVhZHkgYWRkZWQgaW4gVmVydGljYWxUb29sYmFyXG4gICAge25hbWU6ICdvZmZzZXQnLCBvcHRpb25zOiB7b2Zmc2V0OiBbMCwgMF19fVxuICBdXG59O1xuXG5jb25zdCBEcm9wZG93bkJvdHRvbSA9IHN0eWxlZC5kaXY8e2xpZ2h0PzogYm9vbGVhbn0+YFxuICBib3JkZXItdG9wOiAxcHggc29saWRcbiAgICAke3Byb3BzID0+XG4gICAgICBwcm9wcy5saWdodCA/IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJvcmRlclRvcExUIDogcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0Qm9yZGVyVG9wfTtcbmA7XG5cbmNvbnN0IFN0eWxlZFNjYWxlU2VsZWN0RHJvcGRvd24gPSBzdHlsZWQuZGl2YFxuICBib3gtc2hhZG93OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdFNoYWRvd307XG4gIC5saXN0LXNlbGVjdG9yIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlci10b3A6IDA7XG4gIH1cbiAgLmxpc3RfX2l0ZW0ge1xuICAgIHBhZGRpbmc6IDRweCA5cHg7XG4gIH1cbmA7XG5jb25zdCBEcm9wZG93bldyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBib3JkZXI6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duV3JhcHBlclp9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi10b3A6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25XYXBwZXJNYXJnaW59cHg7XG5gO1xuXG5jb25zdCBTdHlsZWRDb2xvclNjYWxlU2VsZWN0b3IgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC50eXBlYWhlYWQge1xuICAgIC8vIGFkZHMgcGFkZGluZyB0byBib3R0b20gb2YgZHJvcGRvd25cbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICB9XG4gIFtkYXRhLXRpcHB5LXJvb3RdIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuYDtcblxuZnVuY3Rpb24gaGlkZVRpcHB5KHRpcHB5SW5zdGFuY2UpIHtcbiAgaWYgKHRpcHB5SW5zdGFuY2UpIHtcbiAgICB0aXBweUluc3RhbmNlLmhpZGUoKTtcbiAgfVxufVxuQ29sb3JTY2FsZVNlbGVjdG9yRmFjdG9yeS5kZXBzID0gW0NvbG9yQnJlYWtzUGFuZWxGYWN0b3J5XTtcblxuZnVuY3Rpb24gQ29sb3JTY2FsZVNlbGVjdG9yRmFjdG9yeShcbiAgQ29sb3JCcmVha3NQYW5lbDogUmV0dXJuVHlwZTx0eXBlb2YgQ29sb3JCcmVha3NQYW5lbEZhY3Rvcnk+XG4pOiBSZWFjdC5GQzxDb2xvclNjYWxlU2VsZWN0b3JQcm9wcz4ge1xuICBjb25zdCBDb2xvclNjYWxlU2VsZWN0RHJvcGRvd24gPSBwcm9wcyA9PiAoXG4gICAgPFN0eWxlZFNjYWxlU2VsZWN0RHJvcGRvd24+XG4gICAgICA8RHJvcGRvd25MaXN0IHsuLi5wcm9wc30gLz5cbiAgICAgIDxEcm9wZG93blByb3BDb250ZXh0LkNvbnN1bWVyPlxuICAgICAgICB7KGNvbnRleHQ6IGFueSkgPT4gKFxuICAgICAgICAgIDxEcm9wZG93bkJvdHRvbT5cbiAgICAgICAgICAgIDxDb2xvckJyZWFrc1BhbmVsIHsuLi5jb250ZXh0fSAvPlxuICAgICAgICAgIDwvRHJvcGRvd25Cb3R0b20+XG4gICAgICAgICl9XG4gICAgICA8L0Ryb3Bkb3duUHJvcENvbnRleHQuQ29uc3VtZXI+XG4gICAgPC9TdHlsZWRTY2FsZVNlbGVjdERyb3Bkb3duPlxuICApO1xuXG4gIGNvbnN0IENvbG9yU2NhbGVTZWxlY3RvcjogUmVhY3QuRkM8Q29sb3JTY2FsZVNlbGVjdG9yUHJvcHM+ID0gKHtcbiAgICBsYXllcixcbiAgICBmaWVsZCxcbiAgICBkYXRhc2V0LFxuICAgIG9uU2VsZWN0LFxuICAgIHNjYWxlVHlwZSxcbiAgICBkb21haW4sXG4gICAgYWdncmVnYXRlZEJpbnMsXG4gICAgcmFuZ2UsXG4gICAgc2V0Q29sb3JVSSxcbiAgICBjb2xvclVJQ29uZmlnLFxuICAgIGNoYW5uZWxLZXksXG4gICAgLi4uZHJvcGRvd25TZWxlY3RQcm9wc1xuICB9KSA9PiB7XG4gICAgY29uc3QgZGlzcGxheU9wdGlvbiA9IEFjY2Vzc29yLmdlbmVyYXRlT3B0aW9uVG9TdHJpbmdGb3IoZHJvcGRvd25TZWxlY3RQcm9wcy5kaXNwbGF5T3B0aW9uKTtcbiAgICBjb25zdCBnZXRPcHRpb25WYWx1ZSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBBY2Nlc3Nvci5nZW5lcmF0ZU9wdGlvblRvU3RyaW5nRm9yKGRyb3Bkb3duU2VsZWN0UHJvcHMuZ2V0T3B0aW9uVmFsdWUpLFxuICAgICAgW2Ryb3Bkb3duU2VsZWN0UHJvcHMuZ2V0T3B0aW9uVmFsdWVdXG4gICAgKTtcbiAgICBjb25zdCBbdGlwcHlJbnN0YW5jZSwgc2V0VGlwcHlJbnN0YW5jZV0gPSB1c2VTdGF0ZTxUaXBweUluc3RhbmNlPigpO1xuICAgIGNvbnN0IGlzRWRpdGluZ0NvbG9yQnJlYWtzID0gY29sb3JVSUNvbmZpZz8uY29sb3JSYW5nZUNvbmZpZz8uY3VzdG9tQnJlYWtzO1xuXG4gICAgLy8gU3RvcmVzIHRoZSBwcmV2aW91cyBzZWxlY3Rpb24gZm9yIGxpdmUgcHJldmlldzogd2hlbiBjaG9vc2luZyBDdXN0b20vQ3VzdG9tIE9yZGluYWwsIHdlIGFwcGx5IGEgdGVtcG9yYXJ5IHBhbGV0dGUuXG4gICAgLy8gQ2FuY2VsIHJlc3RvcmVzIHtzY2FsZSwgcmFuZ2V9IGZyb20gdGhpcyByZWY7IENvbmZpcm0ga2VlcHMgdGhlIGNoYW5nZSBhbmQgY2xlYXJzIHRoZSByZWYuXG4gICAgLy8gSWYgdGhlIHVzZXIgc3dpdGNoZXMgYmV0d2VlbiBkaWZmZXJlbnQgY3VzdG9tIHNjYWxlIHR5cGVzIChlLmcuLCBmcm9tIFwiQ3VzdG9tXCIgdG8gXCJDdXN0b20gT3JkaW5hbFwiKSBvciBpcyBhbHJlYWR5IGluIGEgY3VzdG9tIHNjYWxlIHN0YXRlLFxuICAgIC8vIHRoaXMgcmVmIGlzIHVwZGF0ZWQgdG8gYWx3YXlzIHN0b3JlIHRoZSBtb3N0IHJlY2VudCBub24tY3VzdG9tIHNlbGVjdGlvbi4gT25seSB0aGUgbGF0ZXN0IG5vbi1jdXN0b20gc2VsZWN0aW9uIGlzIHJlc3RvcmFibGUgb24gY2FuY2VsLlxuICAgIGNvbnN0IHByZXZTZWxlY3Rpb25SZWYgPSBSZWFjdC51c2VSZWY8e3NjYWxlOiBzdHJpbmc7IHJhbmdlOiBDb2xvclJhbmdlfSB8IG51bGw+KG51bGwpO1xuXG4gICAgLy8gd2hlbiBjdXN0b20gY29sb3Igc2NhbGUgLSBidXQgQ29uZmlybSBpcyBub3QgY2xpY2tlZCB5ZXRcbiAgICBjb25zdCBwZW5kaW5nT3B0aW9uID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGlzRWRpdGluZ0NvbG9yQnJlYWtzXG4gICAgICAgICAgPyAoZHJvcGRvd25TZWxlY3RQcm9wcy5vcHRpb25zIHx8IFtdKS5maW5kKFxuICAgICAgICAgICAgICBvID0+IGdldE9wdGlvblZhbHVlKG8pID09PSBjb2xvclVJQ29uZmlnPy5jdXN0b21QYWxldHRlPy50eXBlXG4gICAgICAgICAgICApIHx8IG51bGxcbiAgICAgICAgICA6IG51bGwsXG4gICAgICBbXG4gICAgICAgIGlzRWRpdGluZ0NvbG9yQnJlYWtzLFxuICAgICAgICBkcm9wZG93blNlbGVjdFByb3BzLm9wdGlvbnMsXG4gICAgICAgIGdldE9wdGlvblZhbHVlLFxuICAgICAgICBjb2xvclVJQ29uZmlnPy5jdXN0b21QYWxldHRlPy50eXBlXG4gICAgICBdXG4gICAgKTtcbiAgICBjb25zdCBjb2xvclNjYWxlID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGdldExheWVyQ29sb3JTY2FsZSh7XG4gICAgICAgICAgcmFuZ2UsXG4gICAgICAgICAgZG9tYWluLFxuICAgICAgICAgIHNjYWxlVHlwZSxcbiAgICAgICAgICBsYXllclxuICAgICAgICB9KSxcbiAgICAgIFtyYW5nZSwgZG9tYWluLCBzY2FsZVR5cGUsIGxheWVyXVxuICAgICk7XG5cbiAgICBjb25zdCBjb2xvckJyZWFrcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgcmV0dXJuIGNvbG9yU2NhbGVcbiAgICAgICAgPyBnZXRMZWdlbmRPZlNjYWxlKHtcbiAgICAgICAgICAgIHNjYWxlOiBjb2xvclNjYWxlLmJ5Wm9vbSAmJiBkb21haW4gPyBjb2xvclNjYWxlKGRvbWFpbj8ubGVuZ3RoIC0gMSkgOiBjb2xvclNjYWxlLFxuICAgICAgICAgICAgc2NhbGVUeXBlLFxuICAgICAgICAgICAgZmllbGRUeXBlOiBmaWVsZD8udHlwZSA/PyBBTExfRklFTERfVFlQRVMucmVhbFxuICAgICAgICAgIH0pXG4gICAgICAgIDogbnVsbDtcbiAgICB9LCBbY29sb3JTY2FsZSwgc2NhbGVUeXBlLCBmaWVsZD8udHlwZSwgZG9tYWluXSk7XG5cbiAgICBjb25zdCBjb2x1bW5TdGF0cyA9IGZpZWxkPy5maWx0ZXJQcm9wcz8uY29sdW1uU3RhdHM7XG5cbiAgICBjb25zdCBmaWVsZFZhbHVlQWNjZXNzb3IgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIHJldHVybiBmaWVsZFxuICAgICAgICA/IGlkeCA9PiBkYXRhc2V0LmdldFZhbHVlKGZpZWxkLm5hbWUsIGlkeClcbiAgICAgICAgOiBpZHggPT4gZGF0YXNldC5kYXRhQ29udGFpbmVyLnJvd0FzQXJyYXkoaWR4KTtcbiAgICB9LCBbZGF0YXNldCwgZmllbGRdKTtcblxuICAgIGNvbnN0IG9yZGluYWxEb21haW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIHJldHVybiBsYXllci5jb25maWdbbGF5ZXIudmlzdWFsQ2hhbm5lbHNbY2hhbm5lbEtleV0uZG9tYWluXSB8fCBbXTtcbiAgICB9LCBbY2hhbm5lbEtleSwgbGF5ZXIuY29uZmlnLCBsYXllci52aXN1YWxDaGFubmVsc10pO1xuXG4gICAgLy8gYWdncmVnYXRlZEJpbnMgc2hvdWxkIGJlIHRoZSByYXcgZGF0YVxuICAgIGNvbnN0IGFsbEJpbnMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChmaWVsZD8udHlwZSA9PT0gQUxMX0ZJRUxEX1RZUEVTLnN0cmluZykge1xuICAgICAgICAvLyBVc2Ugb3JkaW5hbCBiaW5zIGZvciBzdHJpbmcgY29sdW1ucywgYXMgZDMgY291bGQgcG90ZW50aWFsbHkgZ2VuZXJhdGUgaW52YWxpZCBudW1lcmljIGJpbnMsIGFuZCBjcmFzaFxuICAgICAgICByZXR1cm4gaGlzdG9ncmFtRnJvbU9yZGluYWwob3JkaW5hbERvbWFpbiwgZGF0YXNldC5hbGxJbmRleGVzLCBmaWVsZFZhbHVlQWNjZXNzb3IpO1xuICAgICAgfVxuXG4gICAgICBpZiAoYWdncmVnYXRlZEJpbnMpIHtcbiAgICAgICAgcmV0dXJuIGhpc3RvZ3JhbUZyb21WYWx1ZXMoXG4gICAgICAgICAgT2JqZWN0LnZhbHVlcyhhZ2dyZWdhdGVkQmlucykubWFwKGJpbiA9PiBiaW4uaSksXG4gICAgICAgICAgSElTVE9HUkFNX0JJTlMsXG4gICAgICAgICAgaWR4ID0+IGFnZ3JlZ2F0ZWRCaW5zW2lkeF0udmFsdWVcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjb2x1bW5TdGF0cz8uYmluc1xuICAgICAgICA/IGNvbHVtblN0YXRzPy5iaW5zXG4gICAgICAgIDogaGlzdG9ncmFtRnJvbVZhbHVlcyhkYXRhc2V0LmFsbEluZGV4ZXMsIEhJU1RPR1JBTV9CSU5TLCBmaWVsZFZhbHVlQWNjZXNzb3IpO1xuICAgIH0sIFthZ2dyZWdhdGVkQmlucywgY29sdW1uU3RhdHMsIGRhdGFzZXQsIGZpZWxkVmFsdWVBY2Nlc3NvciwgZmllbGQ/LnR5cGUsIG9yZGluYWxEb21haW5dKTtcblxuICAgIGNvbnN0IGhpc3RvZ3JhbURvbWFpbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgcmV0dXJuIGdldEhpc3RvZ3JhbURvbWFpbih7YWdncmVnYXRlZEJpbnMsIGNvbHVtblN0YXRzLCBkYXRhc2V0LCBmaWVsZFZhbHVlQWNjZXNzb3J9KTtcbiAgICB9LCBbZGF0YXNldCwgZmllbGRWYWx1ZUFjY2Vzc29yLCBhZ2dyZWdhdGVkQmlucywgY29sdW1uU3RhdHNdKTtcblxuICAgIGNvbnN0IGlzRmlsdGVyZWQgPSBhZ2dyZWdhdGVkQmluc1xuICAgICAgPyBmYWxzZVxuICAgICAgOiBkYXRhc2V0LmZpbHRlcmVkSW5kZXhGb3JEb21haW4ubGVuZ3RoICE9PSBkYXRhc2V0LmFsbEluZGV4ZXMubGVuZ3RoO1xuXG4gICAgLy8gZ2V0IGZpbHRlcmVkQmlucyAobm90IGFwcGx5IHRvIGFnZ3JlZ2F0ZSBsYXllcilcbiAgICBjb25zdCBmaWx0ZXJlZEJpbnMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghaXNGaWx0ZXJlZCkge1xuICAgICAgICByZXR1cm4gYWxsQmlucztcbiAgICAgIH1cbiAgICAgIGlmIChmaWVsZD8udHlwZSA9PT0gQUxMX0ZJRUxEX1RZUEVTLnN0cmluZykge1xuICAgICAgICByZXR1cm4gaGlzdG9ncmFtRnJvbU9yZGluYWwoXG4gICAgICAgICAgb3JkaW5hbERvbWFpbiBhcyBhbnksXG4gICAgICAgICAgZGF0YXNldC5maWx0ZXJlZEluZGV4Rm9yRG9tYWluLFxuICAgICAgICAgIGZpZWxkVmFsdWVBY2Nlc3NvclxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgLy8gbnVtZXJpYyB0aHJlc2hvbGRzXG4gICAgICBjb25zdCBmaWx0ZXJFbXB0eUJpbnMgPSBmYWxzZTtcbiAgICAgIGNvbnN0IHRocmVzaG9sZHMgPSBhbGxCaW5zLm1hcChiID0+IGIueDApO1xuICAgICAgcmV0dXJuIGhpc3RvZ3JhbUZyb21UaHJlc2hvbGQoXG4gICAgICAgIHRocmVzaG9sZHMsXG4gICAgICAgIGRhdGFzZXQuZmlsdGVyZWRJbmRleEZvckRvbWFpbixcbiAgICAgICAgZmllbGRWYWx1ZUFjY2Vzc29yLFxuICAgICAgICBmaWx0ZXJFbXB0eUJpbnNcbiAgICAgICk7XG4gICAgfSwgW2RhdGFzZXQsIGZpZWxkVmFsdWVBY2Nlc3NvciwgYWxsQmlucywgaXNGaWx0ZXJlZCwgZmllbGQ/LnR5cGUsIG9yZGluYWxEb21haW5dKTtcblxuICAgIGNvbnN0IG9uU2VsZWN0U2NhbGUgPSB1c2VDYWxsYmFjayhcbiAgICAgIHZhbCA9PiB7XG4gICAgICAgIC8vIGhpZ2hsaWdodCBzZWxlY3RlZCBvcHRpb25cbiAgICAgICAgaWYgKCF2YWwpIHJldHVybjtcblxuICAgICAgICBjb25zdCBzZWxlY3RlZFNjYWxlID0gZ2V0T3B0aW9uVmFsdWUodmFsKTtcbiAgICAgICAgaWYgKHNlbGVjdGVkU2NhbGUgPT09IFNDQUxFX1RZUEVTLmN1c3RvbSB8fCBzZWxlY3RlZFNjYWxlID09PSBTQ0FMRV9UWVBFUy5jdXN0b21PcmRpbmFsKSB7XG4gICAgICAgICAgY29uc3QgY3VzdG9tUGFsZXR0ZSA9IGluaXRDdXN0b21QYWxldHRlQnlDdXN0b21TY2FsZSh7XG4gICAgICAgICAgICBzY2FsZTogc2VsZWN0ZWRTY2FsZSxcbiAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgcmFuZ2UsXG4gICAgICAgICAgICBjb2xvckJyZWFrcyxcbiAgICAgICAgICAgIC4uLihzZWxlY3RlZFNjYWxlID09PSBTQ0FMRV9UWVBFUy5jdXN0b21PcmRpbmFsID8ge29yZGluYWxEb21haW59IDoge30pXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc2V0Q29sb3JVSSh7XG4gICAgICAgICAgICBzaG93Q29sb3JDaGFydDogdHJ1ZSxcbiAgICAgICAgICAgIGNvbG9yUmFuZ2VDb25maWc6IHtcbiAgICAgICAgICAgICAgY3VzdG9tQnJlYWtzOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY3VzdG9tUGFsZXR0ZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIC8vIHN0b3JlIHByZXZpb3VzIHNlbGVjdGlvbiBmb3IgY2FuY2VsLCB0aGVuIHByZXZpZXcgY3VzdG9tIG9uIHRoZSBtYXBcbiAgICAgICAgICBpZiAoIXByZXZTZWxlY3Rpb25SZWYuY3VycmVudCkge1xuICAgICAgICAgICAgcHJldlNlbGVjdGlvblJlZi5jdXJyZW50ID0ge3NjYWxlOiBzY2FsZVR5cGUsIHJhbmdlfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgb25TZWxlY3Qoc2VsZWN0ZWRTY2FsZSwgY3VzdG9tUGFsZXR0ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaGFzQ29sb3JNYXAocmFuZ2UpKSB7XG4gICAgICAgICAgLy8gbm90IGN1c3RvbVxuICAgICAgICAgIC8vIHJlbW92ZSBjb2xvck1hcFxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICAgICAgICAgIGNvbnN0IHtjb2xvck1hcDogXywgLi4ubmV3UmFuZ2V9ID0gcmFuZ2U7XG4gICAgICAgICAgLy8gcmVzZXQgY29sb3JVSSBiZWZvcmUgY2hhbmdpbmcgdGhlIHNjYWxlXG4gICAgICAgICAgc2V0Q29sb3JVSSh7XG4gICAgICAgICAgICBzaG93Q29sb3JDaGFydDogZmFsc2UsXG4gICAgICAgICAgICBjb2xvclJhbmdlQ29uZmlnOiB7XG4gICAgICAgICAgICAgIGN1c3RvbUJyZWFrczogZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBvblNlbGVjdChzZWxlY3RlZFNjYWxlLCBuZXdSYW5nZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gcmVzZXQgY29sb3JVSSBiZWZvcmUgY2hhbmdpbmcgdGhlIHNjYWxlXG4gICAgICAgICAgc2V0Q29sb3JVSSh7XG4gICAgICAgICAgICBzaG93Q29sb3JDaGFydDogZmFsc2UsXG4gICAgICAgICAgICBjb2xvclJhbmdlQ29uZmlnOiB7XG4gICAgICAgICAgICAgIGN1c3RvbUJyZWFrczogZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBvblNlbGVjdChzZWxlY3RlZFNjYWxlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtmaWVsZCwgc2V0Q29sb3JVSSwgb25TZWxlY3QsIHJhbmdlLCBnZXRPcHRpb25WYWx1ZSwgY29sb3JCcmVha3MsIG9yZGluYWxEb21haW4sIHNjYWxlVHlwZV1cbiAgICApO1xuXG4gICAgY29uc3Qgb25BcHBseSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIC8vIGNoYW5nZSBzY2FsZSB0eXBlIG9ubHkgaWYgY29uZmlybWVkXG4gICAgICBjb25zdCBuZXh0U2NhbGVUeXBlID0gY29sb3JVSUNvbmZpZz8uY3VzdG9tUGFsZXR0ZT8udHlwZSB8fCBzY2FsZVR5cGU7XG4gICAgICBvblNlbGVjdChuZXh0U2NhbGVUeXBlLCBjb2xvclVJQ29uZmlnLmN1c3RvbVBhbGV0dGUpO1xuICAgICAgaGlkZVRpcHB5KHRpcHB5SW5zdGFuY2UpO1xuICAgICAgcHJldlNlbGVjdGlvblJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9LCBbb25TZWxlY3QsIGNvbG9yVUlDb25maWcuY3VzdG9tUGFsZXR0ZSwgdGlwcHlJbnN0YW5jZSwgc2NhbGVUeXBlXSk7XG5cbiAgICBjb25zdCBvbkNhbmNlbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIC8vIHJlc3RvcmUgcHJldmlvdXMgc2VsZWN0aW9uIGlmIGFueVxuICAgICAgaWYgKHByZXZTZWxlY3Rpb25SZWYuY3VycmVudCkge1xuICAgICAgICBjb25zdCB7c2NhbGU6IHByZXZTY2FsZSwgcmFuZ2U6IHByZXZSYW5nZX0gPSBwcmV2U2VsZWN0aW9uUmVmLmN1cnJlbnQ7XG4gICAgICAgIG9uU2VsZWN0KHByZXZTY2FsZSwgcHJldlJhbmdlKTtcbiAgICAgIH1cbiAgICAgIGhpZGVUaXBweSh0aXBweUluc3RhbmNlKTtcbiAgICAgIHByZXZTZWxlY3Rpb25SZWYuY3VycmVudCA9IG51bGw7XG4gICAgfSwgW3RpcHB5SW5zdGFuY2UsIG9uU2VsZWN0XSk7XG5cbiAgICBjb25zdCBpc0N1c3RvbUJyZWFrcyA9XG4gICAgICBzY2FsZVR5cGUgPT09IFNDQUxFX1RZUEVTLmN1c3RvbSB8fCBzY2FsZVR5cGUgPT09IFNDQUxFX1RZUEVTLmN1c3RvbU9yZGluYWw7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERyb3Bkb3duUHJvcENvbnRleHQuUHJvdmlkZXJcbiAgICAgICAgdmFsdWU9e3tcbiAgICAgICAgICBzZXRDb2xvclVJLFxuICAgICAgICAgIGNvbG9yRmllbGQ6IGZpZWxkLFxuICAgICAgICAgIGRhdGFzZXQsXG4gICAgICAgICAgY29sb3JVSUNvbmZpZyxcbiAgICAgICAgICBjb2xvckJyZWFrcyxcbiAgICAgICAgICBpc0N1c3RvbUJyZWFrcyxcbiAgICAgICAgICBhbGxCaW5zLFxuICAgICAgICAgIGZpbHRlcmVkQmlucyxcbiAgICAgICAgICBpc0ZpbHRlcmVkLFxuICAgICAgICAgIGhpc3RvZ3JhbURvbWFpbixcbiAgICAgICAgICBvcmRpbmFsRG9tYWluLFxuICAgICAgICAgIG9uU2NhbGVDaGFuZ2U6IG9uU2VsZWN0LFxuICAgICAgICAgIG9uQXBwbHksXG4gICAgICAgICAgb25DYW5jZWxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFN0eWxlZENvbG9yU2NhbGVTZWxlY3Rvcj5cbiAgICAgICAgICA8TGF6eVRpcHB5XG4gICAgICAgICAgICB0cmlnZ2VyPVwiY2xpY2tcIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXN0YXJ0XCJcbiAgICAgICAgICAgIGFwcGVuZFRvPVwicGFyZW50XCJcbiAgICAgICAgICAgIGludGVyYWN0aXZlPXt0cnVlfVxuICAgICAgICAgICAgaGlkZU9uQ2xpY2s9eyFpc0VkaXRpbmdDb2xvckJyZWFrc31cbiAgICAgICAgICAgIG9uQ3JlYXRlPXtzZXRUaXBweUluc3RhbmNlfVxuICAgICAgICAgICAgcG9wcGVyT3B0aW9ucz17UE9QUEVSX09QVElPTlN9XG4gICAgICAgICAgICByZW5kZXI9e2F0dHJzID0+IChcbiAgICAgICAgICAgICAgPERyb3Bkb3duV3JhcHBlciB7Li4uYXR0cnN9PlxuICAgICAgICAgICAgICAgIHsvKiBAdHMtaWdub3JlKi99XG4gICAgICAgICAgICAgICAgeyFkcm9wZG93blNlbGVjdFByb3BzLmRpc2FibGVkICYmIChcbiAgICAgICAgICAgICAgICAgIDxUeXBlYWhlYWRcbiAgICAgICAgICAgICAgICAgICAgey4uLmRyb3Bkb3duU2VsZWN0UHJvcHN9XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlPcHRpb249e2Rpc3BsYXlPcHRpb259XG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgZ2V0T3B0aW9uVmFsdWU9e2dldE9wdGlvblZhbHVlfVxuICAgICAgICAgICAgICAgICAgICBvbk9wdGlvblNlbGVjdGVkPXtvblNlbGVjdFNjYWxlfVxuICAgICAgICAgICAgICAgICAgICBjdXN0b21MaXN0Q29tcG9uZW50PXtDb2xvclNjYWxlU2VsZWN0RHJvcGRvd259XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaGFibGU9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICBzaG93T3B0aW9uc1doZW5FbXB0eVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXtcbiAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nT3B0aW9uID8gW3BlbmRpbmdPcHRpb25dIDogZHJvcGRvd25TZWxlY3RQcm9wcy5zZWxlY3RlZEl0ZW1zXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9Ecm9wZG93bldyYXBwZXI+XG4gICAgICAgICAgICApfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZHJvcGRvd24tc2VsZWN0XCI+XG4gICAgICAgICAgICAgIHsvKiBAdHMtaWdub3JlKi99XG4gICAgICAgICAgICAgIDxEcm9wZG93blNlbGVjdFxuICAgICAgICAgICAgICAgIHsuLi5kcm9wZG93blNlbGVjdFByb3BzfVxuICAgICAgICAgICAgICAgIGRpc3BsYXlPcHRpb249e2Rpc3BsYXlPcHRpb259XG4gICAgICAgICAgICAgICAgdmFsdWU9e3BlbmRpbmdPcHRpb24gfHwgZHJvcGRvd25TZWxlY3RQcm9wcy5zZWxlY3RlZEl0ZW1zWzBdfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9MYXp5VGlwcHk+XG4gICAgICAgIDwvU3R5bGVkQ29sb3JTY2FsZVNlbGVjdG9yPlxuICAgICAgPC9Ecm9wZG93blByb3BDb250ZXh0LlByb3ZpZGVyPlxuICAgICk7XG4gIH07XG4gIHJldHVybiBDb2xvclNjYWxlU2VsZWN0b3I7XG59XG5leHBvcnQgZGVmYXVsdCBDb2xvclNjYWxlU2VsZWN0b3JGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUlBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQVdBLElBQUFLLGlCQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBTSxlQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTyxTQUFBLEdBQUFMLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUSxhQUFBLEdBQUFOLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUyxVQUFBLEdBQUFQLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBVSxVQUFBLEdBQUFSLHNCQUFBLENBQUFGLE9BQUE7QUFBNkQsSUFBQVcsU0FBQTtFQUFBQyxVQUFBO0FBQUEsSUFBQUMsZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQTNCN0Q7QUFDQTtBQUFBLFNBQUFDLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBbkIsd0JBQUFtQixDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEs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
|