@carto/kepler.gl 0.0.84 → 0.0.85-alpha.0
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/common/data-table/grid.js +3 -3
- package/dist/components/common/item-selector/item-selector.js +3 -3
- package/dist/components/common/portaled.js +3 -3
- package/dist/constants/default-settings.js +2 -2
- package/dist/reducers/map-style-updaters.js +3 -3
- package/dist/reducers/vis-state-merger.js +3 -3
- package/dist/reducers/vis-state-updaters.js +3 -3
- package/dist/schemas/vis-state-schema.js +4 -4
- package/dist/utils/filter-utils.js +3 -3
- package/dist/utils/map-style-utils/mapbox-gl-style-editor.js +3 -3
- package/dist/utils/split-map-utils.js +3 -3
- package/package.json +1 -1
- package/src/components/common/data-table/grid.tsx +1 -1
- package/src/components/common/item-selector/item-selector.tsx +1 -1
- package/src/components/common/portaled.tsx +1 -1
- package/src/reducers/map-style-updaters.ts +1 -1
- package/src/reducers/vis-state-merger.ts +1 -1
- package/src/reducers/vis-state-updaters.ts +1 -1
- package/src/schemas/vis-state-schema.ts +1 -1
- package/src/utils/filter-utils.ts +1 -1
- package/src/utils/map-style-utils/mapbox-gl-style-editor.ts +1 -1
- package/src/utils/split-map-utils.ts +1 -1
|
@@ -28,7 +28,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
28
28
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
29
29
|
var _uniq = _interopRequireDefault(require("lodash/uniq"));
|
|
30
30
|
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
31
|
-
var
|
|
31
|
+
var _flattenDeep = _interopRequireDefault(require("lodash/flattenDeep"));
|
|
32
32
|
var _utils = require("../utils/utils");
|
|
33
33
|
var _filterUtils = require("../utils/filter-utils");
|
|
34
34
|
var _splitMapUtils = require("../utils/split-map-utils");
|
|
@@ -78,7 +78,7 @@ function mergeFilters(state, filtersToMerge, fromConfig) {
|
|
|
78
78
|
updatedFilters = (0, _gpuFilterUtils.resetFilterGpuMode)(updatedFilters);
|
|
79
79
|
updatedFilters = (0, _gpuFilterUtils.assignGpuChannels)(updatedFilters);
|
|
80
80
|
// filter data
|
|
81
|
-
var datasetsToFilter = (0, _uniq["default"])((0,
|
|
81
|
+
var datasetsToFilter = (0, _uniq["default"])((0, _flattenDeep["default"])(validated.map(function (f) {
|
|
82
82
|
return f.dataId;
|
|
83
83
|
})));
|
|
84
84
|
var filtered = (0, _filterUtils.applyFiltersToDatasets)(datasetsToFilter, updatedDatasets, updatedFilters, state.layers);
|
|
@@ -566,4 +566,4 @@ var VIS_STATE_MERGERS = exports.VIS_STATE_MERGERS = [{
|
|
|
566
566
|
merge: mergeAnimationConfig,
|
|
567
567
|
prop: 'animationConfig'
|
|
568
568
|
}];
|
|
569
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdW5pcSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3BpY2siLCJfZmxhdHRlbmRlZXAiLCJfdXRpbHMiLCJfZmlsdGVyVXRpbHMiLCJfc3BsaXRNYXBVdGlscyIsIl9ncHVGaWx0ZXJVdGlscyIsIl9kZWZhdWx0U2V0dGluZ3MiLCJfc2NoZW1hcyIsIl9leGNsdWRlZCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiciIsImUiLCJ0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJsZW5ndGgiLCJfbiIsIkYiLCJzIiwibiIsImRvbmUiLCJ2YWx1ZSIsImYiLCJUeXBlRXJyb3IiLCJvIiwiYSIsInUiLCJjYWxsIiwibmV4dCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0Iiwib3duS2V5cyIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIm1lcmdlRmlsdGVycyIsInN0YXRlIiwiZmlsdGVyc1RvTWVyZ2UiLCJmcm9tQ29uZmlnIiwiX3ZhbGlkYXRlRmlsdGVyc1VwZGF0IiwidmFsaWRhdGVGaWx0ZXJzVXBkYXRlRGF0YXNldHMiLCJ2YWxpZGF0ZWQiLCJmYWlsZWQiLCJ1cGRhdGVkRGF0YXNldHMiLCJ1cGRhdGVkRmlsdGVycyIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJmaWx0ZXJzIiwicmVzZXRGaWx0ZXJHcHVNb2RlIiwiYXNzaWduR3B1Q2hhbm5lbHMiLCJkYXRhc2V0c1RvRmlsdGVyIiwidW5pcSIsImZsYXR0ZW5EZWVwIiwibWFwIiwiZGF0YUlkIiwiZmlsdGVyZWQiLCJhcHBseUZpbHRlcnNUb0RhdGFzZXRzIiwibGF5ZXJzIiwiZGF0YXNldHMiLCJmaWx0ZXJUb0JlTWVyZ2VkIiwiY3JlYXRlTGF5ZXJGcm9tQ29uZmlnIiwibGF5ZXJDb25maWciLCJfdmFsaWRhdGVMYXllcnNCeURhdGEiLCJ2YWxpZGF0ZUxheWVyc0J5RGF0YXNldHMiLCJsYXllckNsYXNzZXMiLCJuZXdMYXllciIsInVwZGF0ZUxheWVyRG9tYWluIiwic2VyaWFsaXplTGF5ZXIiLCJzYXZlZFZpc1N0YXRlIiwidmlzU3RhdGVTY2hlbWEiLCJDVVJSRU5UX1ZFUlNJT04iLCJzYXZlIiwibGF5ZXJPcmRlciIsInZpc1N0YXRlIiwibG9hZGVkTGF5ZXIiLCJsb2FkIiwibWVyZ2VMYXllcnMiLCJsYXllcnNUb01lcmdlIiwidW5kZWZpbmVkIiwicHJlc2VydmVMYXllck9yZGVyIiwibCIsImlkIiwiX3ZhbGlkYXRlTGF5ZXJzQnlEYXRhMiIsIm1lcmdlZExheWVyIiwidW5tZXJnZWQiLCJfaW5zZXJ0TGF5ZXJBdFJpZ2h0T3IiLCJpbnNlcnRMYXllckF0UmlnaHRPcmRlciIsIm5ld0xheWVyT3JkZXIiLCJuZXdMYXllcnMiLCJsYXllclRvQmVNZXJnZWQiLCJjdXJyZW50TGF5ZXJzIiwibGF5ZXJzVG9JbnNlcnQiLCJjdXJyZW50T3JkZXIiLCJwcmVzZXJ2ZWRPcmRlciIsImxheWVyT3JkZXJRdWV1ZSIsImkiLCJfaXRlcmF0b3IiLCJfc3RlcCIsImV4cGVjdGVkSWR4IiwiaW5kZXhPZiIsImluc2VydEF0IiwicHJlY2VlZElkeCIsInByZWNlZWRMYXllciIsImFycmF5SW5zZXJ0IiwiZXJyIiwiZmluZEluZGV4IiwibWVyZ2VJbnRlcmFjdGlvbnMiLCJpbnRlcmFjdGlvblRvQmVNZXJnZWQiLCJtZXJnZWQiLCJrZXkiLCJpbnRlcmFjdGlvbkNvbmZpZyIsImN1cnJlbnRDb25maWciLCJjb25maWciLCJfcmVmIiwiZW5hYmxlZCIsImNvbmZpZ1NhdmVkIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiIsImNvbmZpZ1RvTWVyZ2UiLCJfbWVyZ2VJbnRlcmFjdGlvblRvb2wiLCJtZXJnZUludGVyYWN0aW9uVG9vbHRpcENvbmZpZyIsIm1lcmdlZFRvb2x0aXAiLCJ1bm1lcmdlZFRvb2x0aXAiLCJmaWVsZHNUb1Nob3ciLCJ0b29sdGlwIiwiQm9vbGVhbiIsInBpY2siLCJtZXJnZVNwbGl0TWFwcyIsInNwbGl0TWFwcyIsInNtIiwiZW50cmllcyIsIl9yZWYyIiwiX3JlZjMiLCJfc2xpY2VkVG9BcnJheTIiLCJwdXNoVG8iLCJmaW5kIiwiZ2V0SW5pdGlhbE1hcExheWVyc0ZvclNwbGl0TWFwIiwic3BsaXRNYXBzVG9CZU1lcmdlZCIsInRvb2x0aXBDb25maWciLCJfbG9vcCIsImFsbEZpZWxkcyIsImZpZWxkcyIsImQiLCJmb3VuZEZpZWxkc1RvU2hvdyIsIm1ldGFkYXRhIiwiaXNEeW5hbWljU3BhdGlhbEluZGV4IiwiZmllbGQiLCJpbmNsdWRlcyIsIm1lcmdlTGF5ZXJCbGVuZGluZyIsImxheWVyQmxlbmRpbmciLCJMQVlFUl9CTEVORElOR1MiLCJtZXJnZUFuaW1hdGlvbkNvbmZpZyIsImFuaW1hdGlvbiIsImN1cnJlbnRUaW1lIiwiYW5pbWF0aW9uQ29uZmlnIiwiZG9tYWluIiwidmFsaWRhdGVTYXZlZExheWVyQ29sdW1ucyIsInNhdmVkQ29scyIsImVtcHR5Q29scyIsImNvbHVtbnMiLCJfbG9vcDIiLCJfT2JqZWN0JGtleXMiLCJfaSIsInNhdmVkIiwiZmllbGRJZHgiLCJfcmVmNCIsImFsbENvbEZvdW5kIiwiZXZlcnkiLCJ2YWxpZGF0ZUNvbHVtbiIsImNvbHVtbiIsIm9wdGlvbmFsIiwidmFsaWRhdG9yIiwidmFsaWRhdGVTYXZlZFRleHRMYWJlbCIsIl9yZWY1Iiwic2F2ZWRUZXh0TGFiZWwiLCJfcmVmNiIsImxheWVyVGV4dExhYmVsIiwic2F2ZWRUZXh0TGFiZWxzIiwidGV4dExhYmVsIiwiZmQiLCJyZWR1Y2UiLCJhY2N1IiwidmFsaWRhdGVTYXZlZFZpc3VhbENoYW5uZWxzIiwic2F2ZWRMYXllciIsInZhbHVlcyIsInZpc3VhbENoYW5uZWxzIiwiX3JlZjciLCJzY2FsZSIsImZvdW5kRmllbGQiLCJjb2xvckZpZWxkUHJvcHMiLCJfc2F2ZWRMYXllciRjb25maWckZmkiLCJjb2xvckNvbHVtbiIsImNvbG9yQ29sdW1uRmllbGQiLCJjb2xvckNvbHVtbklkeCIsImZvdW5kQ2hhbm5lbCIsInVwZGF0ZUxheWVyQ29uZmlnIiwidmFsaWRhdGVWaXN1YWxDaGFubmVsIiwibGF5ZXIiLCJfbGF5ZXIkY29uZmlnIiwidmFsaWRhdGVMYXllciIsInZhbGlkYXRlTGF5ZXJXaXRoRGF0YSIsIl9yZWYxMCIsIm9wdGlvbnMiLCJ0eXBlIiwiaGFzT3duUHJvcGVydHkiLCJsYWJlbCIsImNvbG9yIiwiaXNWaXNpYmxlIiwiaGlkZGVuIiwiaGlnaGxpZ2h0Q29sb3IiLCJ2aXNpYmlsaXR5Qnlab29tIiwiY29sdW1uQ29uZmlnIiwiZ2V0TGF5ZXJDb2x1bW5zIiwiYWxsb3dFbXB0eUNvbHVtbiIsInZpc0NvbmZpZyIsImNvcHlMYXllckNvbmZpZyIsInNoYWxsb3dDb3B5IiwiaXNWYWxpZE1lcmdlciIsIm1lcmdlciIsImlzT2JqZWN0IiwibWVyZ2UiLCJwcm9wIiwiVklTX1NUQVRFX01FUkdFUlMiLCJleHBvcnRzIiwidG9NZXJnZVByb3AiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVkdWNlcnMvdmlzLXN0YXRlLW1lcmdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgdW5pcSBmcm9tICdsb2Rhc2gvdW5pcSc7XG5pbXBvcnQgcGljayBmcm9tICdsb2Rhc2gvcGljayc7XG5pbXBvcnQgZmxhdHRlbkRlZXAgZnJvbSAnbG9kYXNoL2ZsYXR0ZW5kZWVwJztcbmltcG9ydCB7aXNPYmplY3QsIGFycmF5SW5zZXJ0fSBmcm9tICd1dGlscy91dGlscyc7XG5pbXBvcnQge2FwcGx5RmlsdGVyc1RvRGF0YXNldHMsIHZhbGlkYXRlRmlsdGVyc1VwZGF0ZURhdGFzZXRzfSBmcm9tICd1dGlscy9maWx0ZXItdXRpbHMnO1xuXG5pbXBvcnQge2dldEluaXRpYWxNYXBMYXllcnNGb3JTcGxpdE1hcH0gZnJvbSAndXRpbHMvc3BsaXQtbWFwLXV0aWxzJztcbmltcG9ydCB7cmVzZXRGaWx0ZXJHcHVNb2RlLCBhc3NpZ25HcHVDaGFubmVsc30gZnJvbSAndXRpbHMvZ3B1LWZpbHRlci11dGlscyc7XG5pbXBvcnQge0xBWUVSX0JMRU5ESU5HU30gZnJvbSAnY29uc3RhbnRzL2RlZmF1bHQtc2V0dGluZ3MnO1xuaW1wb3J0IHtDVVJSRU5UX1ZFUlNJT04sIHZpc1N0YXRlU2NoZW1hfSBmcm9tICdzY2hlbWFzJztcblxuaW1wb3J0IHtWaXNTdGF0ZSwgRGF0YXNldHN9IGZyb20gJy4vdmlzLXN0YXRlLXVwZGF0ZXJzJztcbmltcG9ydCB7S2VwbGVyVGFibGV9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7UGFyc2VkQ29uZmlnLCBQYXJzZWRMYXllcn0gZnJvbSAnc2NoZW1hcyc7XG5pbXBvcnQge0xheWVyLCBMYXllckNvbHVtbnMsIExheWVyQ29sdW1ufSBmcm9tICdsYXllcnMnO1xuaW1wb3J0IHtUb29sdGlwSW5mb30gZnJvbSAnLi92aXMtc3RhdGUtdXBkYXRlcnMnO1xuaW1wb3J0IHtTYXZlZEludGVyYWN0aW9uQ29uZmlnfSBmcm9tICdzY2hlbWFzL3NjaGVtYS1tYW5hZ2VyJztcblxuZXhwb3J0IHR5cGUgTWVyZ2VyID0ge1xuICBtZXJnZTogKHN0YXRlOiBWaXNTdGF0ZSwgY29uZmlnOiBhbnksIGZyb21Db25maWc/OiBib29sZWFuKSA9PiBWaXNTdGF0ZTtcbiAgcHJvcDogc3RyaW5nO1xuICB0b01lcmdlUHJvcD86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBWaXNTdGF0ZU1lcmdlcnMgPSBNZXJnZXJbXTtcblxuLyoqXG4gKiBNZXJnZSBsb2FkZWQgZmlsdGVycyB3aXRoIGN1cnJlbnQgc3RhdGUsIGlmIG5vIGZpZWxkcyBvciBkYXRhIGFyZSBsb2FkZWRcbiAqIHNhdmUgaXQgZm9yIGxhdGVyXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VGaWx0ZXJzKFxuICBzdGF0ZTogVmlzU3RhdGUsXG4gIGZpbHRlcnNUb01lcmdlOiBOb25OdWxsYWJsZTxQYXJzZWRDb25maWdbJ3Zpc1N0YXRlJ10+WydmaWx0ZXJzJ10sXG4gIGZyb21Db25maWc/OiBib29sZWFuXG4pOiBWaXNTdGF0ZSB7XG4gIGlmICghQXJyYXkuaXNBcnJheShmaWx0ZXJzVG9NZXJnZSkgfHwgIWZpbHRlcnNUb01lcmdlLmxlbmd0aCkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIGNvbnN0IHt2YWxpZGF0ZWQsIGZhaWxlZCwgdXBkYXRlZERhdGFzZXRzfSA9IHZhbGlkYXRlRmlsdGVyc1VwZGF0ZURhdGFzZXRzKHN0YXRlLCBmaWx0ZXJzVG9NZXJnZSk7XG5cbiAgLy8gbWVyZ2UgZmlsdGVyIHdpdGggZXhpc3RpbmdcbiAgbGV0IHVwZGF0ZWRGaWx0ZXJzID0gWy4uLihzdGF0ZS5maWx0ZXJzIHx8IFtdKSwgLi4udmFsaWRhdGVkXTtcbiAgdXBkYXRlZEZpbHRlcnMgPSByZXNldEZpbHRlckdwdU1vZGUodXBkYXRlZEZpbHRlcnMpO1xuICB1cGRhdGVkRmlsdGVycyA9IGFzc2lnbkdwdUNoYW5uZWxzKHVwZGF0ZWRGaWx0ZXJzKTtcbiAgLy8gZmlsdGVyIGRhdGFcbiAgY29uc3QgZGF0YXNldHNUb0ZpbHRlciA9IHVuaXEoZmxhdHRlbkRlZXAodmFsaWRhdGVkLm1hcChmID0+IGYuZGF0YUlkKSkpO1xuXG4gIGNvbnN0IGZpbHRlcmVkID0gYXBwbHlGaWx0ZXJzVG9EYXRhc2V0cyhcbiAgICBkYXRhc2V0c1RvRmlsdGVyLFxuICAgIHVwZGF0ZWREYXRhc2V0cyxcbiAgICB1cGRhdGVkRmlsdGVycyxcbiAgICBzdGF0ZS5sYXllcnNcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIGZpbHRlcnM6IHVwZGF0ZWRGaWx0ZXJzLFxuICAgIGRhdGFzZXRzOiBmaWx0ZXJlZCxcbiAgICBmaWx0ZXJUb0JlTWVyZ2VkOiBbLi4uc3RhdGUuZmlsdGVyVG9CZU1lcmdlZCwgLi4uZmFpbGVkXVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTGF5ZXJGcm9tQ29uZmlnKHN0YXRlOiBWaXNTdGF0ZSwgbGF5ZXJDb25maWc6IGFueSk6IExheWVyIHwgbnVsbCB7XG4gIC8vIGZpcnN0IHZhbGlkYXRlIGNvbmZpZyBhZ2FpbnN0IGRhdGFzZXRcbiAgY29uc3Qge3ZhbGlkYXRlZCwgZmFpbGVkfSA9IHZhbGlkYXRlTGF5ZXJzQnlEYXRhc2V0cyhzdGF0ZS5kYXRhc2V0cywgc3RhdGUubGF5ZXJDbGFzc2VzLCBbXG4gICAgbGF5ZXJDb25maWdcbiAgXSk7XG5cbiAgaWYgKGZhaWxlZD8ubGVuZ3RoIHx8ICF2YWxpZGF0ZWQubGVuZ3RoKSB7XG4gICAgLy8gZmFpbGVkXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBuZXdMYXllciA9IHZhbGlkYXRlZFswXTtcbiAgbmV3TGF5ZXIudXBkYXRlTGF5ZXJEb21haW4oc3RhdGUuZGF0YXNldHMpO1xuICByZXR1cm4gbmV3TGF5ZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVMYXllcihuZXdMYXllcik6IFBhcnNlZExheWVyIHtcbiAgY29uc3Qgc2F2ZWRWaXNTdGF0ZSA9IHZpc1N0YXRlU2NoZW1hW0NVUlJFTlRfVkVSU0lPTl0uc2F2ZSh7XG4gICAgbGF5ZXJzOiBbbmV3TGF5ZXJdLFxuICAgIGxheWVyT3JkZXI6IFswXVxuICB9KS52aXNTdGF0ZTtcbiAgY29uc3QgbG9hZGVkTGF5ZXIgPSB2aXNTdGF0ZVNjaGVtYVtDVVJSRU5UX1ZFUlNJT05dLmxvYWQoc2F2ZWRWaXNTdGF0ZSkudmlzU3RhdGUubGF5ZXJzWzBdO1xuICByZXR1cm4gbG9hZGVkTGF5ZXI7XG59XG5cbi8qKlxuICogTWVyZ2UgbGF5ZXJzIGZyb20gZGUtc2VyaWFsaXplZCBzdGF0ZSwgaWYgbm8gZmllbGRzIG9yIGRhdGEgYXJlIGxvYWRlZFxuICogc2F2ZSBpdCBmb3IgbGF0ZXJcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUxheWVycyhcbiAgc3RhdGU6IFZpc1N0YXRlLFxuICBsYXllcnNUb01lcmdlOiBOb25OdWxsYWJsZTxQYXJzZWRDb25maWdbJ3Zpc1N0YXRlJ10+WydsYXllcnMnXSA9IFtdLFxuICBmcm9tQ29uZmlnPzogYm9vbGVhblxuKTogVmlzU3RhdGUge1xuICBjb25zdCBwcmVzZXJ2ZUxheWVyT3JkZXIgPSBmcm9tQ29uZmlnID8gbGF5ZXJzVG9NZXJnZS5tYXAobCA9PiBsLmlkKSA6IHN0YXRlLnByZXNlcnZlTGF5ZXJPcmRlcjtcblxuICBpZiAoIUFycmF5LmlzQXJyYXkobGF5ZXJzVG9NZXJnZSkgfHwgIWxheWVyc1RvTWVyZ2UubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgY29uc3Qge3ZhbGlkYXRlZDogbWVyZ2VkTGF5ZXIsIGZhaWxlZDogdW5tZXJnZWR9ID0gdmFsaWRhdGVMYXllcnNCeURhdGFzZXRzKFxuICAgIHN0YXRlLmRhdGFzZXRzLFxuICAgIHN0YXRlLmxheWVyQ2xhc3NlcyxcbiAgICBsYXllcnNUb01lcmdlXG4gICk7XG5cbiAgLy8gcHV0IG5ldyBsYXllcnMgaW4gZnJvbnQgb2YgY3VycmVudCBsYXllcnNcbiAgY29uc3Qge25ld0xheWVyT3JkZXIsIG5ld0xheWVyc30gPSBpbnNlcnRMYXllckF0UmlnaHRPcmRlcihcbiAgICBzdGF0ZS5sYXllcnMsXG4gICAgbWVyZ2VkTGF5ZXIsXG4gICAgc3RhdGUubGF5ZXJPcmRlcixcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgcHJlc2VydmVMYXllck9yZGVyXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBsYXllcnM6IG5ld0xheWVycyxcbiAgICBsYXllck9yZGVyOiBuZXdMYXllck9yZGVyLFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICBwcmVzZXJ2ZUxheWVyT3JkZXIsXG4gICAgbGF5ZXJUb0JlTWVyZ2VkOiBbLi4uc3RhdGUubGF5ZXJUb0JlTWVyZ2VkLCAuLi51bm1lcmdlZF1cbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydExheWVyQXRSaWdodE9yZGVyKFxuICBjdXJyZW50TGF5ZXJzLFxuICBsYXllcnNUb0luc2VydCxcbiAgY3VycmVudE9yZGVyLFxuICBwcmVzZXJ2ZWRPcmRlcjogc3RyaW5nW10gPSBbXVxuKSB7XG4gIC8vIHBlcnNlcnZlZE9yZGVyIFsnYScsICdiJywgJ2MnXTtcbiAgLy8gbGF5ZXJPcmRlciBbMSwgMCwgM11cbiAgLy8gbGF5ZXJPcmRlck1hcCBbJ2EnLCAnYyddXG4gIGxldCBsYXllck9yZGVyUXVldWUgPSBjdXJyZW50T3JkZXIubWFwKGkgPT4gY3VycmVudExheWVyc1tpXS5pZCk7XG4gIGxldCBuZXdMYXllcnMgPSBjdXJyZW50TGF5ZXJzO1xuXG4gIGZvciAoY29uc3QgbmV3TGF5ZXIgb2YgbGF5ZXJzVG9JbnNlcnQpIHtcbiAgICAvLyBmaW5kIHdoZXJlIHRvIGluc2VydCBpdFxuICAgIGNvbnN0IGV4cGVjdGVkSWR4ID0gcHJlc2VydmVkT3JkZXIuaW5kZXhPZihuZXdMYXllci5pZCk7XG4gICAgLy8gaWYgY2FudCBmaW5kIHBsYWNlIHRvIGluc2VydCwgaW5zZXJ0IGF0IHRoZSBmb250XG4gICAgbGV0IGluc2VydEF0ID0gMDtcblxuICAgIGlmIChleHBlY3RlZElkeCA+IDApIHtcbiAgICAgIC8vIGxvb2sgZm9yIGxheWVyIHRvIGluc2VydCBhZnRlclxuICAgICAgbGV0IGkgPSBleHBlY3RlZElkeCArIDE7XG4gICAgICBsZXQgcHJlY2VlZElkeCA9IC0xO1xuICAgICAgd2hpbGUgKGktLSA+IDAgJiYgcHJlY2VlZElkeCA9PT0gLTEpIHtcbiAgICAgICAgY29uc3QgcHJlY2VlZExheWVyID0gcHJlc2VydmVkT3JkZXJbaV07XG4gICAgICAgIHByZWNlZWRJZHggPSBsYXllck9yZGVyUXVldWUuaW5kZXhPZihwcmVjZWVkTGF5ZXIpO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJlY2VlZElkeCA+IC0xKSB7XG4gICAgICAgIGluc2VydEF0ID0gcHJlY2VlZElkeCArIDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGF5ZXJPcmRlclF1ZXVlID0gYXJyYXlJbnNlcnQobGF5ZXJPcmRlclF1ZXVlLCBpbnNlcnRBdCwgbmV3TGF5ZXIuaWQpO1xuICAgIG5ld0xheWVycyA9IG5ld0xheWVycy5jb25jYXQobmV3TGF5ZXIpO1xuICB9XG5cbiAgLy8gcmVjb25zdHJ1Y3QgbGF5ZXJPcmRlciBhZnRlciBpbnNlcnRcbiAgY29uc3QgbmV3TGF5ZXJPcmRlciA9IGxheWVyT3JkZXJRdWV1ZS5tYXAoaWQgPT4gbmV3TGF5ZXJzLmZpbmRJbmRleChsID0+IGwuaWQgPT09IGlkKSk7XG5cbiAgcmV0dXJuIHtcbiAgICBuZXdMYXllck9yZGVyLFxuICAgIG5ld0xheWVyc1xuICB9O1xufVxuXG4vKipcbiAqIE1lcmdlIGludGVyYWN0aW9ucyB3aXRoIHNhdmVkIGNvbmZpZ1xuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlSW50ZXJhY3Rpb25zKFxuICBzdGF0ZTogVmlzU3RhdGUsXG4gIGludGVyYWN0aW9uVG9CZU1lcmdlZDogUGFydGlhbDxTYXZlZEludGVyYWN0aW9uQ29uZmlnPiB8IHVuZGVmaW5lZCxcbiAgZnJvbUNvbmZpZz86IGJvb2xlYW5cbik6IFZpc1N0YXRlIHtcbiAgY29uc3QgbWVyZ2VkOiBQYXJ0aWFsPFNhdmVkSW50ZXJhY3Rpb25Db25maWc+ID0ge307XG4gIGNvbnN0IHVubWVyZ2VkOiBQYXJ0aWFsPFNhdmVkSW50ZXJhY3Rpb25Db25maWc+ID0ge307XG5cbiAgaWYgKGludGVyYWN0aW9uVG9CZU1lcmdlZCkge1xuICAgIChPYmplY3Qua2V5cyhpbnRlcmFjdGlvblRvQmVNZXJnZWQpIGFzIEFycmF5PGtleW9mIFNhdmVkSW50ZXJhY3Rpb25Db25maWc+KS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBpZiAoIXN0YXRlLmludGVyYWN0aW9uQ29uZmlnW2tleV0pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjdXJyZW50Q29uZmlnID1cbiAgICAgICAga2V5ID09PSAndG9vbHRpcCcgfHwga2V5ID09PSAnYnJ1c2gnID8gc3RhdGUuaW50ZXJhY3Rpb25Db25maWdba2V5XS5jb25maWcgOiBudWxsO1xuXG4gICAgICBjb25zdCB7ZW5hYmxlZCwgLi4uY29uZmlnU2F2ZWR9ID0gaW50ZXJhY3Rpb25Ub0JlTWVyZ2VkW2tleV0gfHwge307XG5cbiAgICAgIGxldCBjb25maWdUb01lcmdlID0gY29uZmlnU2F2ZWQ7XG5cbiAgICAgIGlmIChrZXkgPT09ICd0b29sdGlwJykge1xuICAgICAgICBjb25zdCB7bWVyZ2VkVG9vbHRpcCwgdW5tZXJnZWRUb29sdGlwfSA9IG1lcmdlSW50ZXJhY3Rpb25Ub29sdGlwQ29uZmlnKFxuICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgIGNvbmZpZ1NhdmVkIGFzIFNhdmVkSW50ZXJhY3Rpb25Db25maWdbJ3Rvb2x0aXAnXVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIG1lcmdlIG5ldyBkYXRhc2V0IHRvb2x0aXBzIHdpdGggb3JpZ2luYWwgZGF0YXNldCB0b29sdGlwc1xuICAgICAgICBjb25maWdUb01lcmdlID0ge1xuICAgICAgICAgIGZpZWxkc1RvU2hvdzoge1xuICAgICAgICAgICAgLi4uKGN1cnJlbnRDb25maWcgYXMgVG9vbHRpcEluZm9bJ2NvbmZpZyddKS5maWVsZHNUb1Nob3csXG4gICAgICAgICAgICAuLi5tZXJnZWRUb29sdGlwXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyh1bm1lcmdlZFRvb2x0aXApLmxlbmd0aCkge1xuICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgICAgICB1bm1lcmdlZC50b29sdGlwID0ge2ZpZWxkc1RvU2hvdzogdW5tZXJnZWRUb29sdGlwLCBlbmFibGVkOiBCb29sZWFuKGVuYWJsZWQpfTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICBtZXJnZWRba2V5XSA9IHtcbiAgICAgICAgLi4uc3RhdGUuaW50ZXJhY3Rpb25Db25maWdba2V5XSxcbiAgICAgICAgZW5hYmxlZDogQm9vbGVhbihlbmFibGVkKSxcbiAgICAgICAgLi4uKGN1cnJlbnRDb25maWdcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgY29uZmlnOiBwaWNrKFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIC4uLmN1cnJlbnRDb25maWcsXG4gICAgICAgICAgICAgICAgICAuLi5jb25maWdUb01lcmdlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhjdXJyZW50Q29uZmlnKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fSlcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICBpbnRlcmFjdGlvbkNvbmZpZzoge1xuICAgICAgLi4uc3RhdGUuaW50ZXJhY3Rpb25Db25maWcsXG4gICAgICAuLi5tZXJnZWRcbiAgICB9LFxuICAgIGludGVyYWN0aW9uVG9CZU1lcmdlZDogdW5tZXJnZWRcbiAgfTtcbn1cblxuLyoqXG4gKiBNZXJnZSBzcGxpdE1hcHMgY29uZmlnIHdpdGggY3VycmVudCB2aXNTdGV0ZS5cbiAqIDEuIGlmIGN1cnJlbnQgbWFwIGlzIHNwbGl0LCBidXQgc3BsaXRNYXAgRE9FU05PVCBjb250YWluIG1hcHNcbiAqICAgIDogZG9uJ3QgbWVyZ2UgYW55dGhpbmdcbiAqIDIuIGlmIGN1cnJlbnQgbWFwIGlzIE5PVCBzcGxpdCwgYnV0IHNwbGl0TWFwcyBjb250YWluIG1hcHNcbiAqICAgIDogYWRkIHRvIHNwbGl0TWFwcywgYW5kIGFkZCBjdXJyZW50IGxheWVycyB0byBzcGxpdE1hcHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlU3BsaXRNYXBzKFxuICBzdGF0ZTogVmlzU3RhdGUsXG4gIHNwbGl0TWFwczogTm9uTnVsbGFibGU8UGFyc2VkQ29uZmlnWyd2aXNTdGF0ZSddPlsnc3BsaXRNYXBzJ10gPSBbXSxcbiAgZnJvbUNvbmZpZz86IGJvb2xlYW5cbik6IFZpc1N0YXRlIHtcbiAgY29uc3QgbWVyZ2VkID0gWy4uLnN0YXRlLnNwbGl0TWFwc107XG4gIGNvbnN0IHVubWVyZ2VkID0gW107XG4gIHNwbGl0TWFwcy5mb3JFYWNoKChzbSwgaSkgPT4ge1xuICAgIE9iamVjdC5lbnRyaWVzKHNtLmxheWVycykuZm9yRWFjaCgoW2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgIC8vIGNoZWNrIGlmIGxheWVyIGV4aXN0c1xuICAgICAgY29uc3QgcHVzaFRvID0gc3RhdGUubGF5ZXJzLmZpbmQobCA9PiBsLmlkID09PSBpZCkgPyBtZXJnZWQgOiB1bm1lcmdlZDtcblxuICAgICAgLy8gY3JlYXRlIG1hcCBwYW5lbCBpZiBjdXJyZW50IG1hcCBpcyBub3Qgc3BsaXRcbiAgICAgIHB1c2hUb1tpXSA9IHB1c2hUb1tpXSB8fCB7XG4gICAgICAgIGxheWVyczogcHVzaFRvID09PSBtZXJnZWQgPyBnZXRJbml0aWFsTWFwTGF5ZXJzRm9yU3BsaXRNYXAoc3RhdGUubGF5ZXJzKSA6IFtdXG4gICAgICB9O1xuICAgICAgcHVzaFRvW2ldLmxheWVycyA9IHtcbiAgICAgICAgLi4ucHVzaFRvW2ldLmxheWVycyxcbiAgICAgICAgW2lkXTogdmFsdWVcbiAgICAgIH07XG4gICAgfSk7XG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgc3BsaXRNYXBzOiBtZXJnZWQsXG4gICAgc3BsaXRNYXBzVG9CZU1lcmdlZDogWy4uLnN0YXRlLnNwbGl0TWFwc1RvQmVNZXJnZWQsIC4uLnVubWVyZ2VkXVxuICB9O1xufVxuXG4vKipcbiAqIE1lcmdlIGludGVyYWN0aW9uQ29uZmlnLnRvb2x0aXAgd2l0aCBzYXZlZCBjb25maWcsXG4gKiB2YWxpZGF0ZSBmaWVsZHNUb1Nob3dcbiAqXG4gKiBAcGFyYW0gc3RhdGVcbiAqIEBwYXJhbSB0b29sdGlwQ29uZmlnXG4gKiBAcmV0dXJuIC0ge21lcmdlZFRvb2x0aXA6IHt9LCB1bm1lcmdlZFRvb2x0aXA6IHt9fVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VJbnRlcmFjdGlvblRvb2x0aXBDb25maWcoXG4gIHN0YXRlOiBWaXNTdGF0ZSxcbiAgdG9vbHRpcENvbmZpZzogUGljazxUb29sdGlwSW5mb1snY29uZmlnJ10sICdmaWVsZHNUb1Nob3cnPiB8IG51bGwgPSBudWxsXG4pIHtcbiAgY29uc3QgdW5tZXJnZWRUb29sdGlwOiBUb29sdGlwSW5mb1snY29uZmlnJ11bJ2ZpZWxkc1RvU2hvdyddID0ge307XG4gIGNvbnN0IG1lcmdlZFRvb2x0aXA6IFRvb2x0aXBJbmZvWydjb25maWcnXVsnZmllbGRzVG9TaG93J10gPSB7fTtcblxuICBpZiAoXG4gICAgIXRvb2x0aXBDb25maWcgfHxcbiAgICAhdG9vbHRpcENvbmZpZy5maWVsZHNUb1Nob3cgfHxcbiAgICAhT2JqZWN0LmtleXModG9vbHRpcENvbmZpZy5maWVsZHNUb1Nob3cpLmxlbmd0aFxuICApIHtcbiAgICByZXR1cm4ge21lcmdlZFRvb2x0aXAsIHVubWVyZ2VkVG9vbHRpcH07XG4gIH1cblxuICBmb3IgKGNvbnN0IGRhdGFJZCBpbiB0b29sdGlwQ29uZmlnLmZpZWxkc1RvU2hvdykge1xuICAgIGlmICghc3RhdGUuZGF0YXNldHNbZGF0YUlkXSkge1xuICAgICAgLy8gaXMgbm90IHlldCBsb2FkZWRcbiAgICAgIHVubWVyZ2VkVG9vbHRpcFtkYXRhSWRdID0gdG9vbHRpcENvbmZpZy5maWVsZHNUb1Nob3dbZGF0YUlkXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaWYgZGF0YXNldCBpcyBsb2FkZWRcbiAgICAgIGNvbnN0IGFsbEZpZWxkcyA9IHN0YXRlLmRhdGFzZXRzW2RhdGFJZF0uZmllbGRzLm1hcChkID0+IGQubmFtZSk7XG4gICAgICBjb25zdCBmb3VuZEZpZWxkc1RvU2hvdyA9IChzdGF0ZS5kYXRhc2V0c1tkYXRhSWRdLm1ldGFkYXRhIGFzIGFueSkuaXNEeW5hbWljU3BhdGlhbEluZGV4XG4gICAgICAgID8gdG9vbHRpcENvbmZpZy5maWVsZHNUb1Nob3dbZGF0YUlkXVxuICAgICAgICA6IHRvb2x0aXBDb25maWcuZmllbGRzVG9TaG93W2RhdGFJZF0uZmlsdGVyKGZpZWxkID0+IGFsbEZpZWxkcy5pbmNsdWRlcyhmaWVsZC5uYW1lKSk7XG5cbiAgICAgIG1lcmdlZFRvb2x0aXBbZGF0YUlkXSA9IGZvdW5kRmllbGRzVG9TaG93O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7bWVyZ2VkVG9vbHRpcCwgdW5tZXJnZWRUb29sdGlwfTtcbn1cbi8qKlxuICogTWVyZ2UgbGF5ZXJCbGVuZGluZyB3aXRoIHNhdmVkXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VMYXllckJsZW5kaW5nKFxuICBzdGF0ZTogVmlzU3RhdGUsXG4gIGxheWVyQmxlbmRpbmc6IE5vbk51bGxhYmxlPFBhcnNlZENvbmZpZ1sndmlzU3RhdGUnXT5bJ2xheWVyQmxlbmRpbmcnXSxcbiAgZnJvbUNvbmZpZz86IGJvb2xlYW5cbik6IFZpc1N0YXRlIHtcbiAgaWYgKGxheWVyQmxlbmRpbmcgJiYgTEFZRVJfQkxFTkRJTkdTW2xheWVyQmxlbmRpbmddKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbGF5ZXJCbGVuZGluZ1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gc3RhdGU7XG59XG5cbi8qKlxuICogTWVyZ2UgYW5pbWF0aW9uIGNvbmZpZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VBbmltYXRpb25Db25maWcoXG4gIHN0YXRlOiBWaXNTdGF0ZSxcbiAgYW5pbWF0aW9uOiBOb25OdWxsYWJsZTxQYXJzZWRDb25maWdbJ3Zpc1N0YXRlJ10+WydhbmltYXRpb25Db25maWcnXSxcbiAgZnJvbUNvbmZpZz86IGJvb2xlYW5cbik6IFZpc1N0YXRlIHtcbiAgaWYgKGFuaW1hdGlvbiAmJiBhbmltYXRpb24uY3VycmVudFRpbWUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBhbmltYXRpb25Db25maWc6IHtcbiAgICAgICAgLi4uc3RhdGUuYW5pbWF0aW9uQ29uZmlnLFxuICAgICAgICAuLi5hbmltYXRpb24sXG4gICAgICAgIGRvbWFpbjogbnVsbFxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICByZXR1cm4gc3RhdGU7XG59XG5cbi8qKlxuICogVmFsaWRhdGUgc2F2ZWQgbGF5ZXIgY29sdW1ucyB3aXRoIG5ldyBkYXRhLFxuICogdXBkYXRlIGZpZWxkSWR4IGJhc2VkIG9uIG5ldyBmaWVsZHNcbiAqXG4gKiBAcGFyYW0gZmllbGRzXG4gKiBAcGFyYW0gc2F2ZWRDb2xzXG4gKiBAcGFyYW0gZW1wdHlDb2xzXG4gKiBAcmV0dXJuIC0gdmFsaWRhdGVkIGNvbHVtbnMgb3IgbnVsbFxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVNhdmVkTGF5ZXJDb2x1bW5zKFxuICBmaWVsZHM6IEtlcGxlclRhYmxlWydmaWVsZHMnXSxcbiAgc2F2ZWRDb2xzOiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICB9ID0ge30sXG4gIGVtcHR5Q29sczogTGF5ZXJDb2x1bW5zXG4pIHtcbiAgLy8gUHJlcGFyZSBjb2x1bW5zIGZvciB0aGUgdmFsaWRhdG9yXG4gIGNvbnN0IGNvbHVtbnM6IHR5cGVvZiBlbXB0eUNvbHMgPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZW1wdHlDb2xzKSkge1xuICAgIGNvbHVtbnNba2V5XSA9IHsuLi5lbXB0eUNvbHNba2V5XX07XG5cbiAgICBjb25zdCBzYXZlZCA9IHNhdmVkQ29sc1trZXldO1xuICAgIGlmIChzYXZlZCkge1xuICAgICAgY29uc3QgZmllbGRJZHggPSBmaWVsZHMuZmluZEluZGV4KCh7bmFtZX0pID0+IG5hbWUgPT09IHNhdmVkKTtcblxuICAgICAgaWYgKGZpZWxkSWR4ID4gLTEpIHtcbiAgICAgICAgLy8gdXBkYXRlIGZvdW5kIGNvbHVtbnNcbiAgICAgICAgY29sdW1uc1trZXldLmZpZWxkSWR4ID0gZmllbGRJZHg7XG4gICAgICAgIGNvbHVtbnNba2V5XS52YWx1ZSA9IHNhdmVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIGZpbmQgYWN0dWFsIGNvbHVtbiBmaWVsZElkeCwgaW4gY2FzZSBpdCBoYXMgY2hhbmdlZFxuICBjb25zdCBhbGxDb2xGb3VuZCA9IE9iamVjdC5rZXlzKGNvbHVtbnMpLmV2ZXJ5KGtleSA9PlxuICAgIHZhbGlkYXRlQ29sdW1uKGNvbHVtbnNba2V5XSwgY29sdW1ucywgZmllbGRzKVxuICApO1xuXG4gIGlmIChhbGxDb2xGb3VuZCkge1xuICAgIHJldHVybiBjb2x1bW5zO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUNvbHVtbihcbiAgY29sdW1uOiBMYXllckNvbHVtbiAmIHt2YWxpZGF0b3I/OiB0eXBlb2YgdmFsaWRhdGVDb2x1bW59LFxuICBjb2x1bW5zOiBMYXllckNvbHVtbnMsXG4gIGFsbEZpZWxkczogS2VwbGVyVGFibGVbJ2ZpZWxkcyddXG4pOiBib29sZWFuIHtcbiAgaWYgKGNvbHVtbi5vcHRpb25hbCB8fCBjb2x1bW4udmFsdWUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAoY29sdW1uLnZhbGlkYXRvcikge1xuICAgIHJldHVybiBjb2x1bW4udmFsaWRhdG9yKGNvbHVtbiwgY29sdW1ucywgYWxsRmllbGRzKTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogVmFsaWRhdGUgc2F2ZWQgdGV4dCBsYWJlbCBjb25maWcgd2l0aCBuZXcgZGF0YVxuICogcmVmZXIgdG8gdmlzLXN0YXRlLXNjaGVtYS5qcyBUZXh0TGFiZWxTY2hlbWFWMVxuICpcbiAqIEBwYXJhbSB7QXJyYXk8T2JqZWN0Pn0gZmllbGRzXG4gKiBAcGFyYW0ge09iamVjdH0gc2F2ZWRUZXh0TGFiZWxcbiAqIEByZXR1cm4ge09iamVjdH0gLSB2YWxpZGF0ZWQgdGV4dGxhYmVsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVNhdmVkVGV4dExhYmVsKGZpZWxkcywgW2xheWVyVGV4dExhYmVsXSwgc2F2ZWRUZXh0TGFiZWwpIHtcbiAgY29uc3Qgc2F2ZWRUZXh0TGFiZWxzID0gQXJyYXkuaXNBcnJheShzYXZlZFRleHRMYWJlbCkgPyBzYXZlZFRleHRMYWJlbCA6IFtzYXZlZFRleHRMYWJlbF07XG5cbiAgLy8gdmFsaWRhdGUgZmllbGRcbiAgcmV0dXJuIHNhdmVkVGV4dExhYmVscy5tYXAodGV4dExhYmVsID0+IHtcbiAgICBjb25zdCBmaWVsZCA9IHRleHRMYWJlbC5maWVsZFxuICAgICAgPyBmaWVsZHMuZmluZChmZCA9PlxuICAgICAgICAgIE9iamVjdC5rZXlzKHRleHRMYWJlbC5maWVsZCkuZXZlcnkoa2V5ID0+IHRleHRMYWJlbC5maWVsZFtrZXldID09PSBmZFtrZXldKVxuICAgICAgICApXG4gICAgICA6IG51bGw7XG5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMobGF5ZXJUZXh0TGFiZWwpLnJlZHVjZShcbiAgICAgIChhY2N1LCBrZXkpID0+ICh7XG4gICAgICAgIC4uLmFjY3UsXG4gICAgICAgIFtrZXldOiBrZXkgPT09ICdmaWVsZCcgPyBmaWVsZCA6IHRleHRMYWJlbFtrZXldIHx8IGxheWVyVGV4dExhYmVsW2tleV1cbiAgICAgIH0pLFxuICAgICAge31cbiAgICApO1xuICB9KTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBzYXZlZCB2aXN1YWwgY2hhbm5lbHMgY29uZmlnIHdpdGggbmV3IGRhdGEsXG4gKiByZWZlciB0byB2aXMtc3RhdGUtc2NoZW1hLmpzIFZpc3VhbENoYW5uZWxTY2hlbWFWMVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTYXZlZFZpc3VhbENoYW5uZWxzKFxuICBmaWVsZHM6IEtlcGxlclRhYmxlWydmaWVsZHMnXSxcbiAgbmV3TGF5ZXI6IExheWVyLFxuICBzYXZlZExheWVyOiBQYXJzZWRMYXllclxuKTogbnVsbCB8IExheWVyIHtcbiAgT2JqZWN0LnZhbHVlcyhuZXdMYXllci52aXN1YWxDaGFubmVscykuZm9yRWFjaCgoe2ZpZWxkLCBzY2FsZSwga2V5fSkgPT4ge1xuICAgIGxldCBmb3VuZEZpZWxkO1xuICAgIGNvbnN0IGNvbG9yRmllbGRQcm9wcyA9IHt9O1xuICAgIGlmIChzYXZlZExheWVyLmNvbmZpZykge1xuICAgICAgaWYgKHNhdmVkTGF5ZXIuY29uZmlnW2ZpZWxkXSkge1xuICAgICAgICBmb3VuZEZpZWxkID0gZmllbGRzLmZpbmQoXG4gICAgICAgICAgZmQgPT4gc2F2ZWRMYXllci5jb25maWcgJiYgZmQubmFtZSA9PT0gc2F2ZWRMYXllci5jb25maWdbZmllbGRdLm5hbWVcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNhdmVkTGF5ZXIuY29uZmlnW2ZpZWxkXT8uY29sb3JDb2x1bW4pIHtcbiAgICAgICAgY29uc3QgY29sb3JDb2x1bW5GaWVsZCA9IGZpZWxkcy5maW5kKFxuICAgICAgICAgIGZkID0+IHNhdmVkTGF5ZXIuY29uZmlnICYmIGZkLm5hbWUgPT09IHNhdmVkTGF5ZXIuY29uZmlnW2ZpZWxkXS5jb2xvckNvbHVtblxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChjb2xvckNvbHVtbkZpZWxkKSB7XG4gICAgICAgICAgKGNvbG9yRmllbGRQcm9wcyBhcyBhbnkpLmNvbG9yQ29sdW1uID0gY29sb3JDb2x1bW5GaWVsZC5uYW1lO1xuICAgICAgICAgIChjb2xvckZpZWxkUHJvcHMgYXMgYW55KS5jb2xvckNvbHVtbklkeCA9IGNvbG9yQ29sdW1uRmllbGQuZmllbGRJZHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgZm91bmRDaGFubmVsID0ge1xuICAgICAgICAuLi4oZm91bmRGaWVsZCA/IHtbZmllbGRdOiB7Li4uZm91bmRGaWVsZCwgLi4uY29sb3JGaWVsZFByb3BzfX0gOiB7fSksXG4gICAgICAgIC4uLihzYXZlZExheWVyLmNvbmZpZ1tzY2FsZV0gPyB7W3NjYWxlXTogc2F2ZWRMYXllci5jb25maWdbc2NhbGVdfSA6IHt9KVxuICAgICAgfTtcbiAgICAgIGlmIChPYmplY3Qua2V5cyhmb3VuZENoYW5uZWwpLmxlbmd0aCkge1xuICAgICAgICBuZXdMYXllci51cGRhdGVMYXllckNvbmZpZyhmb3VuZENoYW5uZWwpO1xuICAgICAgfVxuXG4gICAgICBuZXdMYXllci52YWxpZGF0ZVZpc3VhbENoYW5uZWwoa2V5KTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gbmV3TGF5ZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUxheWVyc0J5RGF0YXNldHMoXG4gIGRhdGFzZXRzOiBEYXRhc2V0cyxcbiAgbGF5ZXJDbGFzc2VzOiBWaXNTdGF0ZVsnbGF5ZXJDbGFzc2VzJ10sXG4gIGxheWVyczogTm9uTnVsbGFibGU8UGFyc2VkQ29uZmlnWyd2aXNTdGF0ZSddPlsnbGF5ZXJzJ10gPSBbXVxuKSB7XG4gIGNvbnN0IHZhbGlkYXRlZDogTGF5ZXJbXSA9IFtdO1xuICBjb25zdCBmYWlsZWQ6IE5vbk51bGxhYmxlPFBhcnNlZENvbmZpZ1sndmlzU3RhdGUnXT5bJ2xheWVycyddID0gW107XG5cbiAgbGF5ZXJzLmZvckVhY2gobGF5ZXIgPT4ge1xuICAgIGxldCB2YWxpZGF0ZUxheWVyOiBMYXllciB8IG51bGwgPSBudWxsO1xuXG4gICAgaWYgKGxheWVyPy5jb25maWc/LmRhdGFJZCkge1xuICAgICAgaWYgKGRhdGFzZXRzW2xheWVyLmNvbmZpZy5kYXRhSWRdKSB7XG4gICAgICAgIC8vIGRhdGFzZXRzIGFyZSBhbHJlYWR5IGxvYWRlZFxuICAgICAgICB2YWxpZGF0ZUxheWVyID0gdmFsaWRhdGVMYXllcldpdGhEYXRhKGRhdGFzZXRzW2xheWVyLmNvbmZpZy5kYXRhSWRdLCBsYXllciwgbGF5ZXJDbGFzc2VzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmFsaWRhdGVMYXllcikge1xuICAgICAgdmFsaWRhdGVkLnB1c2godmFsaWRhdGVMYXllcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGRhdGFzZXRzIG5vdCB5ZXQgbG9hZGVkXG4gICAgICBmYWlsZWQucHVzaChsYXllcik7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4ge3ZhbGlkYXRlZCwgZmFpbGVkfTtcbn1cbi8qKlxuICogVmFsaWRhdGUgc2F2ZWQgbGF5ZXIgY29uZmlnIHdpdGggbmV3IGRhdGEsXG4gKiB1cGRhdGUgZmllbGRJZHggYmFzZWQgb24gbmV3IGZpZWxkc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVMYXllcldpdGhEYXRhKFxuICB7ZmllbGRzLCBpZDogZGF0YUlkfTogS2VwbGVyVGFibGUsXG4gIHNhdmVkTGF5ZXI6IFBhcnNlZExheWVyLFxuICBsYXllckNsYXNzZXM6IFZpc1N0YXRlWydsYXllckNsYXNzZXMnXSxcbiAgb3B0aW9uczoge1xuICAgIGFsbG93RW1wdHlDb2x1bW4/OiBib29sZWFuO1xuICB9ID0ge31cbik6IExheWVyIHwgbnVsbCB7XG4gIGNvbnN0IHt0eXBlfSA9IHNhdmVkTGF5ZXI7XG4gIC8vIGxheWVyIGRvZXNudCBoYXZlIGEgdmFsaWQgdHlwZVxuICBpZiAoIXR5cGUgfHwgIWxheWVyQ2xhc3Nlcy5oYXNPd25Qcm9wZXJ0eSh0eXBlKSB8fCAhc2F2ZWRMYXllci5jb25maWcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGxldCBuZXdMYXllciA9IG5ldyBsYXllckNsYXNzZXNbdHlwZV0oe1xuICAgIGlkOiBzYXZlZExheWVyLmlkLFxuICAgIGRhdGFJZCxcbiAgICBsYWJlbDogc2F2ZWRMYXllci5jb25maWcubGFiZWwsXG4gICAgY29sb3I6IHNhdmVkTGF5ZXIuY29uZmlnLmNvbG9yLFxuICAgIGlzVmlzaWJsZTogc2F2ZWRMYXllci5jb25maWcuaXNWaXNpYmxlLFxuICAgIGhpZGRlbjogc2F2ZWRMYXllci5jb25maWcuaGlkZGVuLFxuICAgIGhpZ2hsaWdodENvbG9yOiBzYXZlZExheWVyLmNvbmZpZy5oaWdobGlnaHRDb2xvcixcbiAgICB2aXNpYmlsaXR5Qnlab29tOiAoc2F2ZWRMYXllci5jb25maWcgYXMgYW55KS52aXNpYmlsaXR5Qnlab29tIFxuICB9KTtcblxuICAvLyBmaW5kIGNvbHVtbiBmaWVsZElkeFxuICBjb25zdCBjb2x1bW5Db25maWcgPSBuZXdMYXllci5nZXRMYXllckNvbHVtbnMoKTtcbiAgaWYgKE9iamVjdC5rZXlzKGNvbHVtbkNvbmZpZykubGVuZ3RoKSB7XG4gICAgY29uc3QgY29sdW1ucyA9IHZhbGlkYXRlU2F2ZWRMYXllckNvbHVtbnMoZmllbGRzLCBzYXZlZExheWVyLmNvbmZpZy5jb2x1bW5zLCBjb2x1bW5Db25maWcpO1xuICAgIGlmIChjb2x1bW5zKSB7XG4gICAgICBuZXdMYXllci51cGRhdGVMYXllckNvbmZpZyh7Y29sdW1uc30pO1xuICAgIH0gZWxzZSBpZiAoIW9wdGlvbnMuYWxsb3dFbXB0eUNvbHVtbikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLy8gdmlzdWFsIGNoYW5uZWwgZmllbGQgaXMgc2F2ZWQgdG8gYmUge25hbWUsIHR5cGV9XG4gIC8vIGZpbmQgdmlzdWFsIGNoYW5uZWwgZmllbGQgYnkgbWF0Y2hpbmcgYm90aCBuYW1lIGFuZCB0eXBlXG4gIC8vIHJlZmVyIHRvIHZpcy1zdGF0ZS1zY2hlbWEuanMgVmlzdWFsQ2hhbm5lbFNjaGVtYVYxXG4gIG5ld0xheWVyID0gdmFsaWRhdGVTYXZlZFZpc3VhbENoYW5uZWxzKGZpZWxkcywgbmV3TGF5ZXIsIHNhdmVkTGF5ZXIpO1xuXG4gIGNvbnN0IHRleHRMYWJlbCA9XG4gICAgc2F2ZWRMYXllci5jb25maWcudGV4dExhYmVsICYmIG5ld0xheWVyLmNvbmZpZy50ZXh0TGFiZWxcbiAgICAgID8gdmFsaWRhdGVTYXZlZFRleHRMYWJlbChmaWVsZHMsIG5ld0xheWVyLmNvbmZpZy50ZXh0TGFiZWwsIHNhdmVkTGF5ZXIuY29uZmlnLnRleHRMYWJlbClcbiAgICAgIDogbmV3TGF5ZXIuY29uZmlnLnRleHRMYWJlbDtcblxuICAvLyBjb3B5IHZpc0NvbmZpZyBvdmVyIHRvIGVtcHR5TGF5ZXIgdG8gbWFrZSBzdXJlIGl0IGhhcyBhbGwgdGhlIHByb3BzXG4gIGNvbnN0IHZpc0NvbmZpZyA9IG5ld0xheWVyLmNvcHlMYXllckNvbmZpZyhcbiAgICBuZXdMYXllci5jb25maWcudmlzQ29uZmlnLFxuICAgIHNhdmVkTGF5ZXIuY29uZmlnLnZpc0NvbmZpZyB8fCB7fSxcbiAgICB7c2hhbGxvd0NvcHk6IFsnY29sb3JSYW5nZScsICdzdHJva2VDb2xvclJhbmdlJ119XG4gICk7XG5cbiAgbmV3TGF5ZXIudXBkYXRlTGF5ZXJDb25maWcoe1xuICAgIHZpc0NvbmZpZyxcbiAgICB0ZXh0TGFiZWxcbiAgfSk7XG5cbiAgcmV0dXJuIG5ld0xheWVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZE1lcmdlcihtZXJnZXI6IE1lcmdlcik6IGJvb2xlYW4ge1xuICByZXR1cm4gaXNPYmplY3QobWVyZ2VyKSAmJiB0eXBlb2YgbWVyZ2VyLm1lcmdlID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBtZXJnZXIucHJvcCA9PT0gJ3N0cmluZyc7XG59XG5cbmV4cG9ydCBjb25zdCBWSVNfU1RBVEVfTUVSR0VSUzogVmlzU3RhdGVNZXJnZXJzID0gW1xuICB7bWVyZ2U6IG1lcmdlTGF5ZXJzLCBwcm9wOiAnbGF5ZXJzJywgdG9NZXJnZVByb3A6ICdsYXllclRvQmVNZXJnZWQnfSxcbiAge21lcmdlOiBtZXJnZUZpbHRlcnMsIHByb3A6ICdmaWx0ZXJzJywgdG9NZXJnZVByb3A6ICdmaWx0ZXJUb0JlTWVyZ2VkJ30sXG4gIHttZXJnZTogbWVyZ2VJbnRlcmFjdGlvbnMsIHByb3A6ICdpbnRlcmFjdGlvbkNvbmZpZycsIHRvTWVyZ2VQcm9wOiAnaW50ZXJhY3Rpb25Ub0JlTWVyZ2VkJ30sXG4gIHttZXJnZTogbWVyZ2VMYXllckJsZW5kaW5nLCBwcm9wOiAnbGF5ZXJCbGVuZGluZyd9LFxuICB7bWVyZ2U6IG1lcmdlU3BsaXRNYXBzLCBwcm9wOiAnc3BsaXRNYXBzJywgdG9NZXJnZVByb3A6ICdzcGxpdE1hcHNUb0JlTWVyZ2VkJ30sXG4gIHttZXJnZTogbWVyZ2VBbmltYXRpb25Db25maWcsIHByb3A6ICdhbmltYXRpb25Db25maWcnfVxuXTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxLQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxZQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxZQUFBLEdBQUFKLE9BQUE7QUFFQSxJQUFBSyxjQUFBLEdB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VUFBVSxDQUFDdEUsTUFBTSxDQUFDaUUsU0FBUyxJQUFJaEgsUUFBUSxDQUFDK0MsTUFBTSxDQUFDaUUsU0FBUyxHQUNwRE4sc0JBQXNCLENBQUMvQixNQUFNLEVBQUUzRSxRQUFRLENBQUMrQyxNQUFNLENBQUNpRSxTQUFTLEVBQUVLLFVBQVUsQ0FBQ3RFLE1BQU0sQ0FBQ2lFLFNBQVMsQ0FBQyxHQUN0RmhILFFBQVEsQ0FBQytDLE1BQU0sQ0FBQ2lFLFNBQVM7O0VBRS9CO0VBQ0EsSUFBTW9DLFNBQVMsR0FBR3BKLFFBQVEsQ0FBQ3FKLGVBQWUsQ0FDeENySixRQUFRLENBQUMrQyxNQUFNLENBQUNxRyxTQUFTLEVBQ3pCL0IsVUFBVSxDQUFDdEUsTUFBTSxDQUFDcUcsU0FBUyxJQUFJLENBQUMsQ0FBQyxFQUNqQztJQUFDRSxXQUFXLEVBQUUsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCO0VBQUMsQ0FDbEQsQ0FBQztFQUVEdEosUUFBUSxDQUFDaUksaUJBQWlCLENBQUM7SUFDekJtQixTQUFTLEVBQVRBLFNBQVM7SUFDVHBDLFNBQVMsRUFBVEE7RUFDRixDQUFDLENBQUM7RUFFRixPQUFPaEgsUUFBUTtBQUNqQjtBQUVPLFNBQVN1SixhQUFhQSxDQUFDQyxNQUFjLEVBQVc7RUFDckQsT0FBTyxJQUFBQyxlQUFRLEVBQUNELE1BQU0sQ0FBQyxJQUFJLE9BQU9BLE1BQU0sQ0FBQ0UsS0FBSyxLQUFLLFVBQVUsSUFBSSxPQUFPRixNQUFNLENBQUNHLElBQUksS0FBSyxRQUFRO0FBQ2xHO0FBRU8sSUFBTUMsaUJBQWtDLEdBQUFDLE9BQUEsQ0FBQUQsaUJBQUEsR0FBRyxDQUNoRDtFQUFDRixLQUFLLEVBQUUvSSxXQUFXO0VBQUVnSixJQUFJLEVBQUUsUUFBUTtFQUFFRyxXQUFXLEVBQUU7QUFBaUIsQ0FBQyxFQUNwRTtFQUFDSixLQUFLLEVBQUV4TCxZQUFZO0VBQUV5TCxJQUFJLEVBQUUsU0FBUztFQUFFRyxXQUFXLEVBQUU7QUFBa0IsQ0FBQyxFQUN2RTtFQUFDSixLQUFLLEVBQUVqSCxpQkFBaUI7RUFBRWtILElBQUksRUFBRSxtQkFBbUI7RUFBRUcsV0FBVyxFQUFFO0FBQXVCLENBQUMsRUFDM0Y7RUFBQ0osS0FBSyxFQUFFeEUsa0JBQWtCO0VBQUV5RSxJQUFJLEVBQUU7QUFBZSxDQUFDLEVBQ2xEO0VBQUNELEtBQUssRUFBRTdGLGNBQWM7RUFBRThGLElBQUksRUFBRSxXQUFXO0VBQUVHLFdBQVcsRUFBRTtBQUFxQixDQUFDLEVBQzlFO0VBQUNKLEtBQUssRUFBRXJFLG9CQUFvQjtFQUFFc0UsSUFBSSxFQUFFO0FBQWlCLENBQUMsQ0FDdkQiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
569
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdW5pcSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3BpY2siLCJfZmxhdHRlbkRlZXAiLCJfdXRpbHMiLCJfZmlsdGVyVXRpbHMiLCJfc3BsaXRNYXBVdGlscyIsIl9ncHVGaWx0ZXJVdGlscyIsIl9kZWZhdWx0U2V0dGluZ3MiLCJfc2NoZW1hcyIsIl9leGNsdWRlZCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiciIsImUiLCJ0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJsZW5ndGgiLCJfbiIsIkYiLCJzIiwibiIsImRvbmUiLCJ2YWx1ZSIsImYiLCJUeXBlRXJyb3IiLCJvIiwiYSIsInUiLCJjYWxsIiwibmV4dCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0Iiwib3duS2V5cyIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIm1lcmdlRmlsdGVycyIsInN0YXRlIiwiZmlsdGVyc1RvTWVyZ2UiLCJmcm9tQ29uZmlnIiwiX3ZhbGlkYXRlRmlsdGVyc1VwZGF0IiwidmFsaWRhdGVGaWx0ZXJzVXBkYXRlRGF0YXNldHMiLCJ2YWxpZGF0ZWQiLCJmYWlsZWQiLCJ1cGRhdGVkRGF0YXNldHMiLCJ1cGRhdGVkRmlsdGVycyIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJmaWx0ZXJzIiwicmVzZXRGaWx0ZXJHcHVNb2RlIiwiYXNzaWduR3B1Q2hhbm5lbHMiLCJkYXRhc2V0c1RvRmlsdGVyIiwidW5pcSIsImZsYXR0ZW5EZWVwIiwibWFwIiwiZGF0YUlkIiwiZmlsdGVyZWQiLCJhcHBseUZpbHRlcnNUb0RhdGFzZXRzIiwibGF5ZXJzIiwiZGF0YXNldHMiLCJmaWx0ZXJUb0JlTWVyZ2VkIiwiY3JlYXRlTGF5ZXJGcm9tQ29uZmlnIiwibGF5ZXJDb25maWciLCJfdmFsaWRhdGVMYXllcnNCeURhdGEiLCJ2YWxpZGF0ZUxheWVyc0J5RGF0YXNldHMiLCJsYXllckNsYXNzZXMiLCJuZXdMYXllciIsInVwZGF0ZUxheWVyRG9tYWluIiwic2VyaWFsaXplTGF5ZXIiLCJzYXZlZFZpc1N0YXRlIiwidmlzU3RhdGVTY2hlbWEiLCJDVVJSRU5UX1ZFUlNJT04iLCJzYXZlIiwibGF5ZXJPcmRlciIsInZpc1N0YXRlIiwibG9hZGVkTGF5ZXIiLCJsb2FkIiwibWVyZ2VMYXllcnMiLCJsYXllcnNUb01lcmdlIiwidW5kZWZpbmVkIiwicHJlc2VydmVMYXllck9yZGVyIiwibCIsImlkIiwiX3ZhbGlkYXRlTGF5ZXJzQnlEYXRhMiIsIm1lcmdlZExheWVyIiwidW5tZXJnZWQiLCJfaW5zZXJ0TGF5ZXJBdFJpZ2h0T3IiLCJpbnNlcnRMYXllckF0UmlnaHRPcmRlciIsIm5ld0xheWVyT3JkZXIiLCJuZXdMYXllcnMiLCJsYXllclRvQmVNZXJnZWQiLCJjdXJyZW50TGF5ZXJzIiwibGF5ZXJzVG9JbnNlcnQiLCJjdXJyZW50T3JkZXIiLCJwcmVzZXJ2ZWRPcmRlciIsImxheWVyT3JkZXJRdWV1ZSIsImkiLCJfaXRlcmF0b3IiLCJfc3RlcCIsImV4cGVjdGVkSWR4IiwiaW5kZXhPZiIsImluc2VydEF0IiwicHJlY2VlZElkeCIsInByZWNlZWRMYXllciIsImFycmF5SW5zZXJ0IiwiZXJyIiwiZmluZEluZGV4IiwibWVyZ2VJbnRlcmFjdGlvbnMiLCJpbnRlcmFjdGlvblRvQmVNZXJnZWQiLCJtZXJnZWQiLCJrZXkiLCJpbnRlcmFjdGlvbkNvbmZpZyIsImN1cnJlbnRDb25maWciLCJjb25maWciLCJfcmVmIiwiZW5hYmxlZCIsImNvbmZpZ1NhdmVkIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiIsImNvbmZpZ1RvTWVyZ2UiLCJfbWVyZ2VJbnRlcmFjdGlvblRvb2wiLCJtZXJnZUludGVyYWN0aW9uVG9vbHRpcENvbmZpZyIsIm1lcmdlZFRvb2x0aXAiLCJ1bm1lcmdlZFRvb2x0aXAiLCJmaWVsZHNUb1Nob3ciLCJ0b29sdGlwIiwiQm9vbGVhbiIsInBpY2siLCJtZXJnZVNwbGl0TWFwcyIsInNwbGl0TWFwcyIsInNtIiwiZW50cmllcyIsIl9yZWYyIiwiX3JlZjMiLCJfc2xpY2VkVG9BcnJheTIiLCJwdXNoVG8iLCJmaW5kIiwiZ2V0SW5pdGlhbE1hcExheWVyc0ZvclNwbGl0TWFwIiwic3BsaXRNYXBzVG9CZU1lcmdlZCIsInRvb2x0aXBDb25maWciLCJfbG9vcCIsImFsbEZpZWxkcyIsImZpZWxkcyIsImQiLCJmb3VuZEZpZWxkc1RvU2hvdyIsIm1ldGFkYXRhIiwiaXNEeW5hbWljU3BhdGlhbEluZGV4IiwiZmllbGQiLCJpbmNsdWRlcyIsIm1lcmdlTGF5ZXJCbGVuZGluZyIsImxheWVyQmxlbmRpbmciLCJMQVlFUl9CTEVORElOR1MiLCJtZXJnZUFuaW1hdGlvbkNvbmZpZyIsImFuaW1hdGlvbiIsImN1cnJlbnRUaW1lIiwiYW5pbWF0aW9uQ29uZmlnIiwiZG9tYWluIiwidmFsaWRhdGVTYXZlZExheWVyQ29sdW1ucyIsInNhdmVkQ29scyIsImVtcHR5Q29scyIsImNvbHVtbnMiLCJfbG9vcDIiLCJfT2JqZWN0JGtleXMiLCJfaSIsInNhdmVkIiwiZmllbGRJZHgiLCJfcmVmNCIsImFsbENvbEZvdW5kIiwiZXZlcnkiLCJ2YWxpZGF0ZUNvbHVtbiIsImNvbHVtbiIsIm9wdGlvbmFsIiwidmFsaWRhdG9yIiwidmFsaWRhdGVTYXZlZFRleHRMYWJlbCIsIl9yZWY1Iiwic2F2ZWRUZXh0TGFiZWwiLCJfcmVmNiIsImxheWVyVGV4dExhYmVsIiwic2F2ZWRUZXh0TGFiZWxzIiwidGV4dExhYmVsIiwiZmQiLCJyZWR1Y2UiLCJhY2N1IiwidmFsaWRhdGVTYXZlZFZpc3VhbENoYW5uZWxzIiwic2F2ZWRMYXllciIsInZhbHVlcyIsInZpc3VhbENoYW5uZWxzIiwiX3JlZjciLCJzY2FsZSIsImZvdW5kRmllbGQiLCJjb2xvckZpZWxkUHJvcHMiLCJfc2F2ZWRMYXllciRjb25maWckZmkiLCJjb2xvckNvbHVtbiIsImNvbG9yQ29sdW1uRmllbGQiLCJjb2xvckNvbHVtbklkeCIsImZvdW5kQ2hhbm5lbCIsInVwZGF0ZUxheWVyQ29uZmlnIiwidmFsaWRhdGVWaXN1YWxDaGFubmVsIiwibGF5ZXIiLCJfbGF5ZXIkY29uZmlnIiwidmFsaWRhdGVMYXllciIsInZhbGlkYXRlTGF5ZXJXaXRoRGF0YSIsIl9yZWYxMCIsIm9wdGlvbnMiLCJ0eXBlIiwiaGFzT3duUHJvcGVydHkiLCJsYWJlbCIsImNvbG9yIiwiaXNWaXNpYmxlIiwiaGlkZGVuIiwiaGlnaGxpZ2h0Q29sb3IiLCJ2aXNpYmlsaXR5Qnlab29tIiwiY29sdW1uQ29uZmlnIiwiZ2V0TGF5ZXJDb2x1bW5zIiwiYWxsb3dFbXB0eUNvbHVtbiIsInZpc0NvbmZpZyIsImNvcHlMYXllckNvbmZpZyIsInNoYWxsb3dDb3B5IiwiaXNWYWxpZE1lcmdlciIsIm1lcmdlciIsImlzT2JqZWN0IiwibWVyZ2UiLCJwcm9wIiwiVklTX1NUQVRFX01FUkdFUlMiLCJleHBvcnRzIiwidG9NZXJnZVByb3AiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVkdWNlcnMvdmlzLXN0YXRlLW1lcmdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgdW5pcSBmcm9tICdsb2Rhc2gvdW5pcSc7XG5pbXBvcnQgcGljayBmcm9tICdsb2Rhc2gvcGljayc7XG5pbXBvcnQgZmxhdHRlbkRlZXAgZnJvbSAnbG9kYXNoL2ZsYXR0ZW5EZWVwJztcbmltcG9ydCB7aXNPYmplY3QsIGFycmF5SW5zZXJ0fSBmcm9tICd1dGlscy91dGlscyc7XG5pbXBvcnQge2FwcGx5RmlsdGVyc1RvRGF0YXNldHMsIHZhbGlkYXRlRmlsdGVyc1VwZGF0ZURhdGFzZXRzfSBmcm9tICd1dGlscy9maWx0ZXItdXRpbHMnO1xuXG5pbXBvcnQge2dldEluaXRpYWxNYXBMYXllcnNGb3JTcGxpdE1hcH0gZnJvbSAndXRpbHMvc3BsaXQtbWFwLXV0aWxzJztcbmltcG9ydCB7cmVzZXRGaWx0ZXJHcHVNb2RlLCBhc3NpZ25HcHVDaGFubmVsc30gZnJvbSAndXRpbHMvZ3B1LWZpbHRlci11dGlscyc7XG5pbXBvcnQge0xBWUVSX0JMRU5ESU5HU30gZnJvbSAnY29uc3RhbnRzL2RlZmF1bHQtc2V0dGluZ3MnO1xuaW1wb3J0IHtDVVJSRU5UX1ZFUlNJT04sIHZpc1N0YXRlU2NoZW1hfSBmcm9tICdzY2hlbWFzJztcblxuaW1wb3J0IHtWaXNTdGF0ZSwgRGF0YXNldHN9IGZyb20gJy4vdmlzLXN0YXRlLXVwZGF0ZXJzJztcbmltcG9ydCB7S2VwbGVyVGFibGV9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7UGFyc2VkQ29uZmlnLCBQYXJzZWRMYXllcn0gZnJvbSAnc2NoZW1hcyc7XG5pbXBvcnQge0xheWVyLCBMYXllckNvbHVtbnMsIExheWVyQ29sdW1ufSBmcm9tICdsYXllcnMnO1xuaW1wb3J0IHtUb29sdGlwSW5mb30gZnJvbSAnLi92aXMtc3RhdGUtdXBkYXRlcnMnO1xuaW1wb3J0IHtTYXZlZEludGVyYWN0aW9uQ29uZmlnfSBmcm9tICdzY2hlbWFzL3NjaGVtYS1tYW5hZ2VyJztcblxuZXhwb3J0IHR5cGUgTWVyZ2VyID0ge1xuICBtZXJnZTogKHN0YXRlOiBWaXNTdGF0ZSwgY29uZmlnOiBhbnksIGZyb21Db25maWc/OiBib29sZWFuKSA9PiBWaXNTdGF0ZTtcbiAgcHJvcDogc3RyaW5nO1xuICB0b01lcmdlUHJvcD86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBWaXNTdGF0ZU1lcmdlcnMgPSBNZXJnZXJbXTtcblxuLyoqXG4gKiBNZXJnZSBsb2FkZWQgZmlsdGVycyB3aXRoIGN1cnJlbnQgc3RhdGUsIGlmIG5vIGZpZWxkcyBvciBkYXRhIGFyZSBsb2FkZWRcbiAqIHNhdmUgaXQgZm9yIGxhdGVyXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VGaWx0ZXJzKFxuICBzdGF0ZTogVmlzU3RhdGUsXG4gIGZpbHRlcnNUb01lcmdlOiBOb25OdWxsYWJsZTxQYXJzZWRDb25maWdbJ3Zpc1N0YXRlJ10+WydmaWx0ZXJzJ10sXG4gIGZyb21Db25maWc/OiBib29sZWFuXG4pOiBWaXNTdGF0ZSB7XG4gIGlmICghQXJyYXkuaXNBcnJheShmaWx0ZXJzVG9NZXJnZSkgfHwgIWZpbHRlcnNUb01lcmdlLmxlbmd0aCkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIGNvbnN0IHt2YWxpZGF0ZWQsIGZhaWxlZCwgdXBkYXRlZERhdGFzZXRzfSA9IHZhbGlkYXRlRmlsdGVyc1VwZGF0ZURhdGFzZXRzKHN0YXRlLCBmaWx0ZXJzVG9NZXJnZSk7XG5cbiAgLy8gbWVyZ2UgZmlsdGVyIHdpdGggZXhpc3RpbmdcbiAgbGV0IHVwZGF0ZWRGaWx0ZXJzID0gWy4uLihzdGF0ZS5maWx0ZXJzIHx8IFtdKSwgLi4udmFsaWRhdGVkXTtcbiAgdXBkYXRlZEZpbHRlcnMgPSByZXNldEZpbHRlckdwdU1vZGUodXBkYXRlZEZpbHRlcnMpO1xuICB1cGRhdGVkRmlsdGVycyA9IGFzc2lnbkdwdUNoYW5uZWxzKHVwZGF0ZWRGaWx0ZXJzKTtcbiAgLy8gZmlsdGVyIGRhdGFcbiAgY29uc3QgZGF0YXNldHNUb0ZpbHRlciA9IHVuaXEoZmxhdHRlbkRlZXAodmFsaWRhdGVkLm1hcChmID0+IGYuZGF0YUlkKSkpO1xuXG4gIGNvbnN0IGZpbHRlcmVkID0gYXBwbHlGaWx0ZXJzVG9EYXRhc2V0cyhcbiAgICBkYXRhc2V0c1RvRmlsdGVyLFxuICAgIHVwZGF0ZWREYXRhc2V0cyxcbiAgICB1cGRhdGVkRmlsdGVycyxcbiAgICBzdGF0ZS5sYXllcnNcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIGZpbHRlcnM6IHVwZGF0ZWRGaWx0ZXJzLFxuICAgIGRhdGFzZXRzOiBmaWx0ZXJlZCxcbiAgICBmaWx0ZXJUb0JlTWVyZ2VkOiBbLi4uc3RhdGUuZmlsdGVyVG9CZU1lcmdlZCwgLi4uZmFpbGVkXVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTGF5ZXJGcm9tQ29uZmlnKHN0YXRlOiBWaXNTdGF0ZSwgbGF5ZXJDb25maWc6IGFueSk6IExheWVyIHwgbnVsbCB7XG4gIC8vIGZpcnN0IHZhbGlkYXRlIGNvbmZpZyBhZ2FpbnN0IGRhdGFzZXRcbiAgY29uc3Qge3ZhbGlkYXRlZCwgZmFpbGVkfSA9IHZhbGlkYXRlTGF5ZXJzQnlEYXRhc2V0cyhzdGF0ZS5kYXRhc2V0cywgc3RhdGUubGF5ZXJDbGFzc2VzLCBbXG4gICAgbGF5ZXJDb25maWdcbiAgXSk7XG5cbiAgaWYgKGZhaWxlZD8ubGVuZ3RoIHx8ICF2YWxpZGF0ZWQubGVuZ3RoKSB7XG4gICAgLy8gZmFpbGVkXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBuZXdMYXllciA9IHZhbGlkYXRlZFswXTtcbiAgbmV3TGF5ZXIudXBkYXRlTGF5ZXJEb21haW4oc3RhdGUuZGF0YXNldHMpO1xuICByZXR1cm4gbmV3TGF5ZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVMYXllcihuZXdMYXllcik6IFBhcnNlZExheWVyIHtcbiAgY29uc3Qgc2F2ZWRWaXNTdGF0ZSA9IHZpc1N0YXRlU2NoZW1hW0NVUlJFTlRfVkVSU0lPTl0uc2F2ZSh7XG4gICAgbGF5ZXJzOiBbbmV3TGF5ZXJdLFxuICAgIGxheWVyT3JkZXI6IFswXVxuICB9KS52aXNTdGF0ZTtcbiAgY29uc3QgbG9hZGVkTGF5ZXIgPSB2aXNTdGF0ZVNjaGVtYVtDVVJSRU5UX1ZFUlNJT05dLmxvYWQoc2F2ZWRWaXNTdGF0ZSkudmlzU3RhdGUubGF5ZXJzWzBdO1xuICByZXR1cm4gbG9hZGVkTGF5ZXI7XG59XG5cbi8qKlxuICogTWVyZ2UgbGF5ZXJzIGZyb20gZGUtc2VyaWFsaXplZCBzdGF0ZSwgaWYgbm8gZmllbGRzIG9yIGRhdGEgYXJlIGxvYWRlZFxuICogc2F2ZSBpdCBmb3IgbGF0ZXJcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUxheWVycyhcbiAgc3RhdGU6IFZpc1N0YXRlLFxuICBsYXllcnNUb01lcmdlOiBOb25OdWxsYWJsZTxQYXJzZWRDb25maWdbJ3Zpc1N0YXRlJ10+WydsYXllcnMnXSA9IFtdLFxuICBmcm9tQ29uZmlnPzogYm9vbGVhblxuKTogVmlzU3RhdGUge1xuICBjb25zdCBwcmVzZXJ2ZUxheWVyT3JkZXIgPSBmcm9tQ29uZmlnID8gbGF5ZXJzVG9NZXJnZS5tYXAobCA9PiBsLmlkKSA6IHN0YXRlLnByZXNlcnZlTGF5ZXJPcmRlcjtcblxuICBpZiAoIUFycmF5LmlzQXJyYXkobGF5ZXJzVG9NZXJnZSkgfHwgIWxheWVyc1RvTWVyZ2UubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgY29uc3Qge3ZhbGlkYXRlZDogbWVyZ2VkTGF5ZXIsIGZhaWxlZDogdW5tZXJnZWR9ID0gdmFsaWRhdGVMYXllcnNCeURhdGFzZXRzKFxuICAgIHN0YXRlLmRhdGFzZXRzLFxuICAgIHN0YXRlLmxheWVyQ2xhc3NlcyxcbiAgICBsYXllcnNUb01lcmdlXG4gICk7XG5cbiAgLy8gcHV0IG5ldyBsYXllcnMgaW4gZnJvbnQgb2YgY3VycmVudCBsYXllcnNcbiAgY29uc3Qge25ld0xheWVyT3JkZXIsIG5ld0xheWVyc30gPSBpbnNlcnRMYXllckF0UmlnaHRPcmRlcihcbiAgICBzdGF0ZS5sYXllcnMsXG4gICAgbWVyZ2VkTGF5ZXIsXG4gICAgc3RhdGUubGF5ZXJPcmRlcixcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgcHJlc2VydmVMYXllck9yZGVyXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBsYXllcnM6IG5ld0xheWVycyxcbiAgICBsYXllck9yZGVyOiBuZXdMYXllck9yZGVyLFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICBwcmVzZXJ2ZUxheWVyT3JkZXIsXG4gICAgbGF5ZXJUb0JlTWVyZ2VkOiBbLi4uc3RhdGUubGF5ZXJUb0JlTWVyZ2VkLCAuLi51bm1lcmdlZF1cbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydExheWVyQXRSaWdodE9yZGVyKFxuICBjdXJyZW50TGF5ZXJzLFxuICBsYXllcnNUb0luc2VydCxcbiAgY3VycmVudE9yZGVyLFxuICBwcmVzZXJ2ZWRPcmRlcjogc3RyaW5nW10gPSBbXVxuKSB7XG4gIC8vIHBlcnNlcnZlZE9yZGVyIFsnYScsICdiJywgJ2MnXTtcbiAgLy8gbGF5ZXJPcmRlciBbMSwgMCwgM11cbiAgLy8gbGF5ZXJPcmRlck1hcCBbJ2EnLCAnYyddXG4gIGxldCBsYXllck9yZGVyUXVldWUgPSBjdXJyZW50T3JkZXIubWFwKGkgPT4gY3VycmVudExheWVyc1tpXS5pZCk7XG4gIGxldCBuZXdMYXllcnMgPSBjdXJyZW50TGF5ZXJzO1xuXG4gIGZvciAoY29uc3QgbmV3TGF5ZXIgb2YgbGF5ZXJzVG9JbnNlcnQpIHtcbiAgICAvLyBmaW5kIHdoZXJlIHRvIGluc2VydCBpdFxuICAgIGNvbnN0IGV4cGVjdGVkSWR4ID0gcHJlc2VydmVkT3JkZXIuaW5kZXhPZihuZXdMYXllci5pZCk7XG4gICAgLy8gaWYgY2FudCBmaW5kIHBsYWNlIHRvIGluc2VydCwgaW5zZXJ0IGF0IHRoZSBmb250XG4gICAgbGV0IGluc2VydEF0ID0gMDtcblxuICAgIGlmIChleHBlY3RlZElkeCA+IDApIHtcbiAgICAgIC8vIGxvb2sgZm9yIGxheWVyIHRvIGluc2VydCBhZnRlclxuICAgICAgbGV0IGkgPSBleHBlY3RlZElkeCArIDE7XG4gICAgICBsZXQgcHJlY2VlZElkeCA9IC0xO1xuICAgICAgd2hpbGUgKGktLSA+IDAgJiYgcHJlY2VlZElkeCA9PT0gLTEpIHtcbiAgICAgICAgY29uc3QgcHJlY2VlZExheWVyID0gcHJlc2VydmVkT3JkZXJbaV07XG4gICAgICAgIHByZWNlZWRJZHggPSBsYXllck9yZGVyUXVldWUuaW5kZXhPZihwcmVjZWVkTGF5ZXIpO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJlY2VlZElkeCA+IC0xKSB7XG4gICAgICAgIGluc2VydEF0ID0gcHJlY2VlZElkeCArIDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGF5ZXJPcmRlclF1ZXVlID0gYXJyYXlJbnNlcnQobGF5ZXJPcmRlclF1ZXVlLCBpbnNlcnRBdCwgbmV3TGF5ZXIuaWQpO1xuICAgIG5ld0xheWVycyA9IG5ld0xheWVycy5jb25jYXQobmV3TGF5ZXIpO1xuICB9XG5cbiAgLy8gcmVjb25zdHJ1Y3QgbGF5ZXJPcmRlciBhZnRlciBpbnNlcnRcbiAgY29uc3QgbmV3TGF5ZXJPcmRlciA9IGxheWVyT3JkZXJRdWV1ZS5tYXAoaWQgPT4gbmV3TGF5ZXJzLmZpbmRJbmRleChsID0+IGwuaWQgPT09IGlkKSk7XG5cbiAgcmV0dXJuIHtcbiAgICBuZXdMYXllck9yZGVyLFxuICAgIG5ld0xheWVyc1xuICB9O1xufVxuXG4vKipcbiAqIE1lcmdlIGludGVyYWN0aW9ucyB3aXRoIHNhdmVkIGNvbmZpZ1xuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlSW50ZXJhY3Rpb25zKFxuICBzdGF0ZTogVmlzU3RhdGUsXG4gIGludGVyYWN0aW9uVG9CZU1lcmdlZDogUGFydGlhbDxTYXZlZEludGVyYWN0aW9uQ29uZmlnPiB8IHVuZGVmaW5lZCxcbiAgZnJvbUNvbmZpZz86IGJvb2xlYW5cbik6IFZpc1N0YXRlIHtcbiAgY29uc3QgbWVyZ2VkOiBQYXJ0aWFsPFNhdmVkSW50ZXJhY3Rpb25Db25maWc+ID0ge307XG4gIGNvbnN0IHVubWVyZ2VkOiBQYXJ0aWFsPFNhdmVkSW50ZXJhY3Rpb25Db25maWc+ID0ge307XG5cbiAgaWYgKGludGVyYWN0aW9uVG9CZU1lcmdlZCkge1xuICAgIChPYmplY3Qua2V5cyhpbnRlcmFjdGlvblRvQmVNZXJnZWQpIGFzIEFycmF5PGtleW9mIFNhdmVkSW50ZXJhY3Rpb25Db25maWc+KS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBpZiAoIXN0YXRlLmludGVyYWN0aW9uQ29uZmlnW2tleV0pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjdXJyZW50Q29uZmlnID1cbiAgICAgICAga2V5ID09PSAndG9vbHRpcCcgfHwga2V5ID09PSAnYnJ1c2gnID8gc3RhdGUuaW50ZXJhY3Rpb25Db25maWdba2V5XS5jb25maWcgOiBudWxsO1xuXG4gICAgICBjb25zdCB7ZW5hYmxlZCwgLi4uY29uZmlnU2F2ZWR9ID0gaW50ZXJhY3Rpb25Ub0JlTWVyZ2VkW2tleV0gfHwge307XG5cbiAgICAgIGxldCBjb25maWdUb01lcmdlID0gY29uZmlnU2F2ZWQ7XG5cbiAgICAgIGlmIChrZXkgPT09ICd0b29sdGlwJykge1xuICAgICAgICBjb25zdCB7bWVyZ2VkVG9vbHRpcCwgdW5tZXJnZWRUb29sdGlwfSA9IG1lcmdlSW50ZXJhY3Rpb25Ub29sdGlwQ29uZmlnKFxuICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgIGNvbmZpZ1NhdmVkIGFzIFNhdmVkSW50ZXJhY3Rpb25Db25maWdbJ3Rvb2x0aXAnXVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIG1lcmdlIG5ldyBkYXRhc2V0IHRvb2x0aXBzIHdpdGggb3JpZ2luYWwgZGF0YXNldCB0b29sdGlwc1xuICAgICAgICBjb25maWdUb01lcmdlID0ge1xuICAgICAgICAgIGZpZWxkc1RvU2hvdzoge1xuICAgICAgICAgICAgLi4uKGN1cnJlbnRDb25maWcgYXMgVG9vbHRpcEluZm9bJ2NvbmZpZyddKS5maWVsZHNUb1Nob3csXG4gICAgICAgICAgICAuLi5tZXJnZWRUb29sdGlwXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyh1bm1lcmdlZFRvb2x0aXApLmxlbmd0aCkge1xuICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgICAgICB1bm1lcmdlZC50b29sdGlwID0ge2ZpZWxkc1RvU2hvdzogdW5tZXJnZWRUb29sdGlwLCBlbmFibGVkOiBCb29sZWFuKGVuYWJsZWQpfTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICBtZXJnZWRba2V5XSA9IHtcbiAgICAgICAgLi4uc3RhdGUuaW50ZXJhY3Rpb25Db25maWdba2V5XSxcbiAgICAgICAgZW5hYmxlZDogQm9vbGVhbihlbmFibGVkKSxcbiAgICAgICAgLi4uKGN1cnJlbnRDb25maWdcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgY29uZmlnOiBwaWNrKFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIC4uLmN1cnJlbnRDb25maWcsXG4gICAgICAgICAgICAgICAgICAuLi5jb25maWdUb01lcmdlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhjdXJyZW50Q29uZmlnKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fSlcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICBpbnRlcmFjdGlvbkNvbmZpZzoge1xuICAgICAgLi4uc3RhdGUuaW50ZXJhY3Rpb25Db25maWcsXG4gICAgICAuLi5tZXJnZWRcbiAgICB9LFxuICAgIGludGVyYWN0aW9uVG9CZU1lcmdlZDogdW5tZXJnZWRcbiAgfTtcbn1cblxuLyoqXG4gKiBNZXJnZSBzcGxpdE1hcHMgY29uZmlnIHdpdGggY3VycmVudCB2aXNTdGV0ZS5cbiAqIDEuIGlmIGN1cnJlbnQgbWFwIGlzIHNwbGl0LCBidXQgc3BsaXRNYXAgRE9FU05PVCBjb250YWluIG1hcHNcbiAqICAgIDogZG9uJ3QgbWVyZ2UgYW55dGhpbmdcbiAqIDIuIGlmIGN1cnJlbnQgbWFwIGlzIE5PVCBzcGxpdCwgYnV0IHNwbGl0TWFwcyBjb250YWluIG1hcHNcbiAqICAgIDogYWRkIHRvIHNwbGl0TWFwcywgYW5kIGFkZCBjdXJyZW50IGxheWVycyB0byBzcGxpdE1hcHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlU3BsaXRNYXBzKFxuICBzdGF0ZTogVmlzU3RhdGUsXG4gIHNwbGl0TWFwczogTm9uTnVsbGFibGU8UGFyc2VkQ29uZmlnWyd2aXNTdGF0ZSddPlsnc3BsaXRNYXBzJ10gPSBbXSxcbiAgZnJvbUNvbmZpZz86IGJvb2xlYW5cbik6IFZpc1N0YXRlIHtcbiAgY29uc3QgbWVyZ2VkID0gWy4uLnN0YXRlLnNwbGl0TWFwc107XG4gIGNvbnN0IHVubWVyZ2VkID0gW107XG4gIHNwbGl0TWFwcy5mb3JFYWNoKChzbSwgaSkgPT4ge1xuICAgIE9iamVjdC5lbnRyaWVzKHNtLmxheWVycykuZm9yRWFjaCgoW2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgIC8vIGNoZWNrIGlmIGxheWVyIGV4aXN0c1xuICAgICAgY29uc3QgcHVzaFRvID0gc3RhdGUubGF5ZXJzLmZpbmQobCA9PiBsLmlkID09PSBpZCkgPyBtZXJnZWQgOiB1bm1lcmdlZDtcblxuICAgICAgLy8gY3JlYXRlIG1hcCBwYW5lbCBpZiBjdXJyZW50IG1hcCBpcyBub3Qgc3BsaXRcbiAgICAgIHB1c2hUb1tpXSA9IHB1c2hUb1tpXSB8fCB7XG4gICAgICAgIGxheWVyczogcHVzaFRvID09PSBtZXJnZWQgPyBnZXRJbml0aWFsTWFwTGF5ZXJzRm9yU3BsaXRNYXAoc3RhdGUubGF5ZXJzKSA6IFtdXG4gICAgICB9O1xuICAgICAgcHVzaFRvW2ldLmxheWVycyA9IHtcbiAgICAgICAgLi4ucHVzaFRvW2ldLmxheWVycyxcbiAgICAgICAgW2lkXTogdmFsdWVcbiAgICAgIH07XG4gICAgfSk7XG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgc3BsaXRNYXBzOiBtZXJnZWQsXG4gICAgc3BsaXRNYXBzVG9CZU1lcmdlZDogWy4uLnN0YXRlLnNwbGl0TWFwc1RvQmVNZXJnZWQsIC4uLnVubWVyZ2VkXVxuICB9O1xufVxuXG4vKipcbiAqIE1lcmdlIGludGVyYWN0aW9uQ29uZmlnLnRvb2x0aXAgd2l0aCBzYXZlZCBjb25maWcsXG4gKiB2YWxpZGF0ZSBmaWVsZHNUb1Nob3dcbiAqXG4gKiBAcGFyYW0gc3RhdGVcbiAqIEBwYXJhbSB0b29sdGlwQ29uZmlnXG4gKiBAcmV0dXJuIC0ge21lcmdlZFRvb2x0aXA6IHt9LCB1bm1lcmdlZFRvb2x0aXA6IHt9fVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VJbnRlcmFjdGlvblRvb2x0aXBDb25maWcoXG4gIHN0YXRlOiBWaXNTdGF0ZSxcbiAgdG9vbHRpcENvbmZpZzogUGljazxUb29sdGlwSW5mb1snY29uZmlnJ10sICdmaWVsZHNUb1Nob3cnPiB8IG51bGwgPSBudWxsXG4pIHtcbiAgY29uc3QgdW5tZXJnZWRUb29sdGlwOiBUb29sdGlwSW5mb1snY29uZmlnJ11bJ2ZpZWxkc1RvU2hvdyddID0ge307XG4gIGNvbnN0IG1lcmdlZFRvb2x0aXA6IFRvb2x0aXBJbmZvWydjb25maWcnXVsnZmllbGRzVG9TaG93J10gPSB7fTtcblxuICBpZiAoXG4gICAgIXRvb2x0aXBDb25maWcgfHxcbiAgICAhdG9vbHRpcENvbmZpZy5maWVsZHNUb1Nob3cgfHxcbiAgICAhT2JqZWN0LmtleXModG9vbHRpcENvbmZpZy5maWVsZHNUb1Nob3cpLmxlbmd0aFxuICApIHtcbiAgICByZXR1cm4ge21lcmdlZFRvb2x0aXAsIHVubWVyZ2VkVG9vbHRpcH07XG4gIH1cblxuICBmb3IgKGNvbnN0IGRhdGFJZCBpbiB0b29sdGlwQ29uZmlnLmZpZWxkc1RvU2hvdykge1xuICAgIGlmICghc3RhdGUuZGF0YXNldHNbZGF0YUlkXSkge1xuICAgICAgLy8gaXMgbm90IHlldCBsb2FkZWRcbiAgICAgIHVubWVyZ2VkVG9vbHRpcFtkYXRhSWRdID0gdG9vbHRpcENvbmZpZy5maWVsZHNUb1Nob3dbZGF0YUlkXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaWYgZGF0YXNldCBpcyBsb2FkZWRcbiAgICAgIGNvbnN0IGFsbEZpZWxkcyA9IHN0YXRlLmRhdGFzZXRzW2RhdGFJZF0uZmllbGRzLm1hcChkID0+IGQubmFtZSk7XG4gICAgICBjb25zdCBmb3VuZEZpZWxkc1RvU2hvdyA9IChzdGF0ZS5kYXRhc2V0c1tkYXRhSWRdLm1ldGFkYXRhIGFzIGFueSkuaXNEeW5hbWljU3BhdGlhbEluZGV4XG4gICAgICAgID8gdG9vbHRpcENvbmZpZy5maWVsZHNUb1Nob3dbZGF0YUlkXVxuICAgICAgICA6IHRvb2x0aXBDb25maWcuZmllbGRzVG9TaG93W2RhdGFJZF0uZmlsdGVyKGZpZWxkID0+IGFsbEZpZWxkcy5pbmNsdWRlcyhmaWVsZC5uYW1lKSk7XG5cbiAgICAgIG1lcmdlZFRvb2x0aXBbZGF0YUlkXSA9IGZvdW5kRmllbGRzVG9TaG93O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7bWVyZ2VkVG9vbHRpcCwgdW5tZXJnZWRUb29sdGlwfTtcbn1cbi8qKlxuICogTWVyZ2UgbGF5ZXJCbGVuZGluZyB3aXRoIHNhdmVkXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VMYXllckJsZW5kaW5nKFxuICBzdGF0ZTogVmlzU3RhdGUsXG4gIGxheWVyQmxlbmRpbmc6IE5vbk51bGxhYmxlPFBhcnNlZENvbmZpZ1sndmlzU3RhdGUnXT5bJ2xheWVyQmxlbmRpbmcnXSxcbiAgZnJvbUNvbmZpZz86IGJvb2xlYW5cbik6IFZpc1N0YXRlIHtcbiAgaWYgKGxheWVyQmxlbmRpbmcgJiYgTEFZRVJfQkxFTkRJTkdTW2xheWVyQmxlbmRpbmddKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbGF5ZXJCbGVuZGluZ1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gc3RhdGU7XG59XG5cbi8qKlxuICogTWVyZ2UgYW5pbWF0aW9uIGNvbmZpZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VBbmltYXRpb25Db25maWcoXG4gIHN0YXRlOiBWaXNTdGF0ZSxcbiAgYW5pbWF0aW9uOiBOb25OdWxsYWJsZTxQYXJzZWRDb25maWdbJ3Zpc1N0YXRlJ10+WydhbmltYXRpb25Db25maWcnXSxcbiAgZnJvbUNvbmZpZz86IGJvb2xlYW5cbik6IFZpc1N0YXRlIHtcbiAgaWYgKGFuaW1hdGlvbiAmJiBhbmltYXRpb24uY3VycmVudFRpbWUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBhbmltYXRpb25Db25maWc6IHtcbiAgICAgICAgLi4uc3RhdGUuYW5pbWF0aW9uQ29uZmlnLFxuICAgICAgICAuLi5hbmltYXRpb24sXG4gICAgICAgIGRvbWFpbjogbnVsbFxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICByZXR1cm4gc3RhdGU7XG59XG5cbi8qKlxuICogVmFsaWRhdGUgc2F2ZWQgbGF5ZXIgY29sdW1ucyB3aXRoIG5ldyBkYXRhLFxuICogdXBkYXRlIGZpZWxkSWR4IGJhc2VkIG9uIG5ldyBmaWVsZHNcbiAqXG4gKiBAcGFyYW0gZmllbGRzXG4gKiBAcGFyYW0gc2F2ZWRDb2xzXG4gKiBAcGFyYW0gZW1wdHlDb2xzXG4gKiBAcmV0dXJuIC0gdmFsaWRhdGVkIGNvbHVtbnMgb3IgbnVsbFxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVNhdmVkTGF5ZXJDb2x1bW5zKFxuICBmaWVsZHM6IEtlcGxlclRhYmxlWydmaWVsZHMnXSxcbiAgc2F2ZWRDb2xzOiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICB9ID0ge30sXG4gIGVtcHR5Q29sczogTGF5ZXJDb2x1bW5zXG4pIHtcbiAgLy8gUHJlcGFyZSBjb2x1bW5zIGZvciB0aGUgdmFsaWRhdG9yXG4gIGNvbnN0IGNvbHVtbnM6IHR5cGVvZiBlbXB0eUNvbHMgPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZW1wdHlDb2xzKSkge1xuICAgIGNvbHVtbnNba2V5XSA9IHsuLi5lbXB0eUNvbHNba2V5XX07XG5cbiAgICBjb25zdCBzYXZlZCA9IHNhdmVkQ29sc1trZXldO1xuICAgIGlmIChzYXZlZCkge1xuICAgICAgY29uc3QgZmllbGRJZHggPSBmaWVsZHMuZmluZEluZGV4KCh7bmFtZX0pID0+IG5hbWUgPT09IHNhdmVkKTtcblxuICAgICAgaWYgKGZpZWxkSWR4ID4gLTEpIHtcbiAgICAgICAgLy8gdXBkYXRlIGZvdW5kIGNvbHVtbnNcbiAgICAgICAgY29sdW1uc1trZXldLmZpZWxkSWR4ID0gZmllbGRJZHg7XG4gICAgICAgIGNvbHVtbnNba2V5XS52YWx1ZSA9IHNhdmVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIGZpbmQgYWN0dWFsIGNvbHVtbiBmaWVsZElkeCwgaW4gY2FzZSBpdCBoYXMgY2hhbmdlZFxuICBjb25zdCBhbGxDb2xGb3VuZCA9IE9iamVjdC5rZXlzKGNvbHVtbnMpLmV2ZXJ5KGtleSA9PlxuICAgIHZhbGlkYXRlQ29sdW1uKGNvbHVtbnNba2V5XSwgY29sdW1ucywgZmllbGRzKVxuICApO1xuXG4gIGlmIChhbGxDb2xGb3VuZCkge1xuICAgIHJldHVybiBjb2x1bW5zO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUNvbHVtbihcbiAgY29sdW1uOiBMYXllckNvbHVtbiAmIHt2YWxpZGF0b3I/OiB0eXBlb2YgdmFsaWRhdGVDb2x1bW59LFxuICBjb2x1bW5zOiBMYXllckNvbHVtbnMsXG4gIGFsbEZpZWxkczogS2VwbGVyVGFibGVbJ2ZpZWxkcyddXG4pOiBib29sZWFuIHtcbiAgaWYgKGNvbHVtbi5vcHRpb25hbCB8fCBjb2x1bW4udmFsdWUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAoY29sdW1uLnZhbGlkYXRvcikge1xuICAgIHJldHVybiBjb2x1bW4udmFsaWRhdG9yKGNvbHVtbiwgY29sdW1ucywgYWxsRmllbGRzKTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogVmFsaWRhdGUgc2F2ZWQgdGV4dCBsYWJlbCBjb25maWcgd2l0aCBuZXcgZGF0YVxuICogcmVmZXIgdG8gdmlzLXN0YXRlLXNjaGVtYS5qcyBUZXh0TGFiZWxTY2hlbWFWMVxuICpcbiAqIEBwYXJhbSB7QXJyYXk8T2JqZWN0Pn0gZmllbGRzXG4gKiBAcGFyYW0ge09iamVjdH0gc2F2ZWRUZXh0TGFiZWxcbiAqIEByZXR1cm4ge09iamVjdH0gLSB2YWxpZGF0ZWQgdGV4dGxhYmVsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVNhdmVkVGV4dExhYmVsKGZpZWxkcywgW2xheWVyVGV4dExhYmVsXSwgc2F2ZWRUZXh0TGFiZWwpIHtcbiAgY29uc3Qgc2F2ZWRUZXh0TGFiZWxzID0gQXJyYXkuaXNBcnJheShzYXZlZFRleHRMYWJlbCkgPyBzYXZlZFRleHRMYWJlbCA6IFtzYXZlZFRleHRMYWJlbF07XG5cbiAgLy8gdmFsaWRhdGUgZmllbGRcbiAgcmV0dXJuIHNhdmVkVGV4dExhYmVscy5tYXAodGV4dExhYmVsID0+IHtcbiAgICBjb25zdCBmaWVsZCA9IHRleHRMYWJlbC5maWVsZFxuICAgICAgPyBmaWVsZHMuZmluZChmZCA9PlxuICAgICAgICAgIE9iamVjdC5rZXlzKHRleHRMYWJlbC5maWVsZCkuZXZlcnkoa2V5ID0+IHRleHRMYWJlbC5maWVsZFtrZXldID09PSBmZFtrZXldKVxuICAgICAgICApXG4gICAgICA6IG51bGw7XG5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMobGF5ZXJUZXh0TGFiZWwpLnJlZHVjZShcbiAgICAgIChhY2N1LCBrZXkpID0+ICh7XG4gICAgICAgIC4uLmFjY3UsXG4gICAgICAgIFtrZXldOiBrZXkgPT09ICdmaWVsZCcgPyBmaWVsZCA6IHRleHRMYWJlbFtrZXldIHx8IGxheWVyVGV4dExhYmVsW2tleV1cbiAgICAgIH0pLFxuICAgICAge31cbiAgICApO1xuICB9KTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBzYXZlZCB2aXN1YWwgY2hhbm5lbHMgY29uZmlnIHdpdGggbmV3IGRhdGEsXG4gKiByZWZlciB0byB2aXMtc3RhdGUtc2NoZW1hLmpzIFZpc3VhbENoYW5uZWxTY2hlbWFWMVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTYXZlZFZpc3VhbENoYW5uZWxzKFxuICBmaWVsZHM6IEtlcGxlclRhYmxlWydmaWVsZHMnXSxcbiAgbmV3TGF5ZXI6IExheWVyLFxuICBzYXZlZExheWVyOiBQYXJzZWRMYXllclxuKTogbnVsbCB8IExheWVyIHtcbiAgT2JqZWN0LnZhbHVlcyhuZXdMYXllci52aXN1YWxDaGFubmVscykuZm9yRWFjaCgoe2ZpZWxkLCBzY2FsZSwga2V5fSkgPT4ge1xuICAgIGxldCBmb3VuZEZpZWxkO1xuICAgIGNvbnN0IGNvbG9yRmllbGRQcm9wcyA9IHt9O1xuICAgIGlmIChzYXZlZExheWVyLmNvbmZpZykge1xuICAgICAgaWYgKHNhdmVkTGF5ZXIuY29uZmlnW2ZpZWxkXSkge1xuICAgICAgICBmb3VuZEZpZWxkID0gZmllbGRzLmZpbmQoXG4gICAgICAgICAgZmQgPT4gc2F2ZWRMYXllci5jb25maWcgJiYgZmQubmFtZSA9PT0gc2F2ZWRMYXllci5jb25maWdbZmllbGRdLm5hbWVcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNhdmVkTGF5ZXIuY29uZmlnW2ZpZWxkXT8uY29sb3JDb2x1bW4pIHtcbiAgICAgICAgY29uc3QgY29sb3JDb2x1bW5GaWVsZCA9IGZpZWxkcy5maW5kKFxuICAgICAgICAgIGZkID0+IHNhdmVkTGF5ZXIuY29uZmlnICYmIGZkLm5hbWUgPT09IHNhdmVkTGF5ZXIuY29uZmlnW2ZpZWxkXS5jb2xvckNvbHVtblxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChjb2xvckNvbHVtbkZpZWxkKSB7XG4gICAgICAgICAgKGNvbG9yRmllbGRQcm9wcyBhcyBhbnkpLmNvbG9yQ29sdW1uID0gY29sb3JDb2x1bW5GaWVsZC5uYW1lO1xuICAgICAgICAgIChjb2xvckZpZWxkUHJvcHMgYXMgYW55KS5jb2xvckNvbHVtbklkeCA9IGNvbG9yQ29sdW1uRmllbGQuZmllbGRJZHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgZm91bmRDaGFubmVsID0ge1xuICAgICAgICAuLi4oZm91bmRGaWVsZCA/IHtbZmllbGRdOiB7Li4uZm91bmRGaWVsZCwgLi4uY29sb3JGaWVsZFByb3BzfX0gOiB7fSksXG4gICAgICAgIC4uLihzYXZlZExheWVyLmNvbmZpZ1tzY2FsZV0gPyB7W3NjYWxlXTogc2F2ZWRMYXllci5jb25maWdbc2NhbGVdfSA6IHt9KVxuICAgICAgfTtcbiAgICAgIGlmIChPYmplY3Qua2V5cyhmb3VuZENoYW5uZWwpLmxlbmd0aCkge1xuICAgICAgICBuZXdMYXllci51cGRhdGVMYXllckNvbmZpZyhmb3VuZENoYW5uZWwpO1xuICAgICAgfVxuXG4gICAgICBuZXdMYXllci52YWxpZGF0ZVZpc3VhbENoYW5uZWwoa2V5KTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gbmV3TGF5ZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUxheWVyc0J5RGF0YXNldHMoXG4gIGRhdGFzZXRzOiBEYXRhc2V0cyxcbiAgbGF5ZXJDbGFzc2VzOiBWaXNTdGF0ZVsnbGF5ZXJDbGFzc2VzJ10sXG4gIGxheWVyczogTm9uTnVsbGFibGU8UGFyc2VkQ29uZmlnWyd2aXNTdGF0ZSddPlsnbGF5ZXJzJ10gPSBbXVxuKSB7XG4gIGNvbnN0IHZhbGlkYXRlZDogTGF5ZXJbXSA9IFtdO1xuICBjb25zdCBmYWlsZWQ6IE5vbk51bGxhYmxlPFBhcnNlZENvbmZpZ1sndmlzU3RhdGUnXT5bJ2xheWVycyddID0gW107XG5cbiAgbGF5ZXJzLmZvckVhY2gobGF5ZXIgPT4ge1xuICAgIGxldCB2YWxpZGF0ZUxheWVyOiBMYXllciB8IG51bGwgPSBudWxsO1xuXG4gICAgaWYgKGxheWVyPy5jb25maWc/LmRhdGFJZCkge1xuICAgICAgaWYgKGRhdGFzZXRzW2xheWVyLmNvbmZpZy5kYXRhSWRdKSB7XG4gICAgICAgIC8vIGRhdGFzZXRzIGFyZSBhbHJlYWR5IGxvYWRlZFxuICAgICAgICB2YWxpZGF0ZUxheWVyID0gdmFsaWRhdGVMYXllcldpdGhEYXRhKGRhdGFzZXRzW2xheWVyLmNvbmZpZy5kYXRhSWRdLCBsYXllciwgbGF5ZXJDbGFzc2VzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmFsaWRhdGVMYXllcikge1xuICAgICAgdmFsaWRhdGVkLnB1c2godmFsaWRhdGVMYXllcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGRhdGFzZXRzIG5vdCB5ZXQgbG9hZGVkXG4gICAgICBmYWlsZWQucHVzaChsYXllcik7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4ge3ZhbGlkYXRlZCwgZmFpbGVkfTtcbn1cbi8qKlxuICogVmFsaWRhdGUgc2F2ZWQgbGF5ZXIgY29uZmlnIHdpdGggbmV3IGRhdGEsXG4gKiB1cGRhdGUgZmllbGRJZHggYmFzZWQgb24gbmV3IGZpZWxkc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVMYXllcldpdGhEYXRhKFxuICB7ZmllbGRzLCBpZDogZGF0YUlkfTogS2VwbGVyVGFibGUsXG4gIHNhdmVkTGF5ZXI6IFBhcnNlZExheWVyLFxuICBsYXllckNsYXNzZXM6IFZpc1N0YXRlWydsYXllckNsYXNzZXMnXSxcbiAgb3B0aW9uczoge1xuICAgIGFsbG93RW1wdHlDb2x1bW4/OiBib29sZWFuO1xuICB9ID0ge31cbik6IExheWVyIHwgbnVsbCB7XG4gIGNvbnN0IHt0eXBlfSA9IHNhdmVkTGF5ZXI7XG4gIC8vIGxheWVyIGRvZXNudCBoYXZlIGEgdmFsaWQgdHlwZVxuICBpZiAoIXR5cGUgfHwgIWxheWVyQ2xhc3Nlcy5oYXNPd25Qcm9wZXJ0eSh0eXBlKSB8fCAhc2F2ZWRMYXllci5jb25maWcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGxldCBuZXdMYXllciA9IG5ldyBsYXllckNsYXNzZXNbdHlwZV0oe1xuICAgIGlkOiBzYXZlZExheWVyLmlkLFxuICAgIGRhdGFJZCxcbiAgICBsYWJlbDogc2F2ZWRMYXllci5jb25maWcubGFiZWwsXG4gICAgY29sb3I6IHNhdmVkTGF5ZXIuY29uZmlnLmNvbG9yLFxuICAgIGlzVmlzaWJsZTogc2F2ZWRMYXllci5jb25maWcuaXNWaXNpYmxlLFxuICAgIGhpZGRlbjogc2F2ZWRMYXllci5jb25maWcuaGlkZGVuLFxuICAgIGhpZ2hsaWdodENvbG9yOiBzYXZlZExheWVyLmNvbmZpZy5oaWdobGlnaHRDb2xvcixcbiAgICB2aXNpYmlsaXR5Qnlab29tOiAoc2F2ZWRMYXllci5jb25maWcgYXMgYW55KS52aXNpYmlsaXR5Qnlab29tIFxuICB9KTtcblxuICAvLyBmaW5kIGNvbHVtbiBmaWVsZElkeFxuICBjb25zdCBjb2x1bW5Db25maWcgPSBuZXdMYXllci5nZXRMYXllckNvbHVtbnMoKTtcbiAgaWYgKE9iamVjdC5rZXlzKGNvbHVtbkNvbmZpZykubGVuZ3RoKSB7XG4gICAgY29uc3QgY29sdW1ucyA9IHZhbGlkYXRlU2F2ZWRMYXllckNvbHVtbnMoZmllbGRzLCBzYXZlZExheWVyLmNvbmZpZy5jb2x1bW5zLCBjb2x1bW5Db25maWcpO1xuICAgIGlmIChjb2x1bW5zKSB7XG4gICAgICBuZXdMYXllci51cGRhdGVMYXllckNvbmZpZyh7Y29sdW1uc30pO1xuICAgIH0gZWxzZSBpZiAoIW9wdGlvbnMuYWxsb3dFbXB0eUNvbHVtbikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLy8gdmlzdWFsIGNoYW5uZWwgZmllbGQgaXMgc2F2ZWQgdG8gYmUge25hbWUsIHR5cGV9XG4gIC8vIGZpbmQgdmlzdWFsIGNoYW5uZWwgZmllbGQgYnkgbWF0Y2hpbmcgYm90aCBuYW1lIGFuZCB0eXBlXG4gIC8vIHJlZmVyIHRvIHZpcy1zdGF0ZS1zY2hlbWEuanMgVmlzdWFsQ2hhbm5lbFNjaGVtYVYxXG4gIG5ld0xheWVyID0gdmFsaWRhdGVTYXZlZFZpc3VhbENoYW5uZWxzKGZpZWxkcywgbmV3TGF5ZXIsIHNhdmVkTGF5ZXIpO1xuXG4gIGNvbnN0IHRleHRMYWJlbCA9XG4gICAgc2F2ZWRMYXllci5jb25maWcudGV4dExhYmVsICYmIG5ld0xheWVyLmNvbmZpZy50ZXh0TGFiZWxcbiAgICAgID8gdmFsaWRhdGVTYXZlZFRleHRMYWJlbChmaWVsZHMsIG5ld0xheWVyLmNvbmZpZy50ZXh0TGFiZWwsIHNhdmVkTGF5ZXIuY29uZmlnLnRleHRMYWJlbClcbiAgICAgIDogbmV3TGF5ZXIuY29uZmlnLnRleHRMYWJlbDtcblxuICAvLyBjb3B5IHZpc0NvbmZpZyBvdmVyIHRvIGVtcHR5TGF5ZXIgdG8gbWFrZSBzdXJlIGl0IGhhcyBhbGwgdGhlIHByb3BzXG4gIGNvbnN0IHZpc0NvbmZpZyA9IG5ld0xheWVyLmNvcHlMYXllckNvbmZpZyhcbiAgICBuZXdMYXllci5jb25maWcudmlzQ29uZmlnLFxuICAgIHNhdmVkTGF5ZXIuY29uZmlnLnZpc0NvbmZpZyB8fCB7fSxcbiAgICB7c2hhbGxvd0NvcHk6IFsnY29sb3JSYW5nZScsICdzdHJva2VDb2xvclJhbmdlJ119XG4gICk7XG5cbiAgbmV3TGF5ZXIudXBkYXRlTGF5ZXJDb25maWcoe1xuICAgIHZpc0NvbmZpZyxcbiAgICB0ZXh0TGFiZWxcbiAgfSk7XG5cbiAgcmV0dXJuIG5ld0xheWVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZE1lcmdlcihtZXJnZXI6IE1lcmdlcik6IGJvb2xlYW4ge1xuICByZXR1cm4gaXNPYmplY3QobWVyZ2VyKSAmJiB0eXBlb2YgbWVyZ2VyLm1lcmdlID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBtZXJnZXIucHJvcCA9PT0gJ3N0cmluZyc7XG59XG5cbmV4cG9ydCBjb25zdCBWSVNfU1RBVEVfTUVSR0VSUzogVmlzU3RhdGVNZXJnZXJzID0gW1xuICB7bWVyZ2U6IG1lcmdlTGF5ZXJzLCBwcm9wOiAnbGF5ZXJzJywgdG9NZXJnZVByb3A6ICdsYXllclRvQmVNZXJnZWQnfSxcbiAge21lcmdlOiBtZXJnZUZpbHRlcnMsIHByb3A6ICdmaWx0ZXJzJywgdG9NZXJnZVByb3A6ICdmaWx0ZXJUb0JlTWVyZ2VkJ30sXG4gIHttZXJnZTogbWVyZ2VJbnRlcmFjdGlvbnMsIHByb3A6ICdpbnRlcmFjdGlvbkNvbmZpZycsIHRvTWVyZ2VQcm9wOiAnaW50ZXJhY3Rpb25Ub0JlTWVyZ2VkJ30sXG4gIHttZXJnZTogbWVyZ2VMYXllckJsZW5kaW5nLCBwcm9wOiAnbGF5ZXJCbGVuZGluZyd9LFxuICB7bWVyZ2U6IG1lcmdlU3BsaXRNYXBzLCBwcm9wOiAnc3BsaXRNYXBzJywgdG9NZXJnZVByb3A6ICdzcGxpdE1hcHNUb0JlTWVyZ2VkJ30sXG4gIHttZXJnZTogbWVyZ2VBbmltYXRpb25Db25maWcsIHByb3A6ICdhbmltYXRpb25Db25maWcnfVxuXTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxLQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxZQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxZQUFBLEdBQUFKLE9BQUE7QUFFQSxJQUFBSyxjQUFBLEdB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VUFBVSxDQUFDdEUsTUFBTSxDQUFDaUUsU0FBUyxJQUFJaEgsUUFBUSxDQUFDK0MsTUFBTSxDQUFDaUUsU0FBUyxHQUNwRE4sc0JBQXNCLENBQUMvQixNQUFNLEVBQUUzRSxRQUFRLENBQUMrQyxNQUFNLENBQUNpRSxTQUFTLEVBQUVLLFVBQVUsQ0FBQ3RFLE1BQU0sQ0FBQ2lFLFNBQVMsQ0FBQyxHQUN0RmhILFFBQVEsQ0FBQytDLE1BQU0sQ0FBQ2lFLFNBQVM7O0VBRS9CO0VBQ0EsSUFBTW9DLFNBQVMsR0FBR3BKLFFBQVEsQ0FBQ3FKLGVBQWUsQ0FDeENySixRQUFRLENBQUMrQyxNQUFNLENBQUNxRyxTQUFTLEVBQ3pCL0IsVUFBVSxDQUFDdEUsTUFBTSxDQUFDcUcsU0FBUyxJQUFJLENBQUMsQ0FBQyxFQUNqQztJQUFDRSxXQUFXLEVBQUUsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCO0VBQUMsQ0FDbEQsQ0FBQztFQUVEdEosUUFBUSxDQUFDaUksaUJBQWlCLENBQUM7SUFDekJtQixTQUFTLEVBQVRBLFNBQVM7SUFDVHBDLFNBQVMsRUFBVEE7RUFDRixDQUFDLENBQUM7RUFFRixPQUFPaEgsUUFBUTtBQUNqQjtBQUVPLFNBQVN1SixhQUFhQSxDQUFDQyxNQUFjLEVBQVc7RUFDckQsT0FBTyxJQUFBQyxlQUFRLEVBQUNELE1BQU0sQ0FBQyxJQUFJLE9BQU9BLE1BQU0sQ0FBQ0UsS0FBSyxLQUFLLFVBQVUsSUFBSSxPQUFPRixNQUFNLENBQUNHLElBQUksS0FBSyxRQUFRO0FBQ2xHO0FBRU8sSUFBTUMsaUJBQWtDLEdBQUFDLE9BQUEsQ0FBQUQsaUJBQUEsR0FBRyxDQUNoRDtFQUFDRixLQUFLLEVBQUUvSSxXQUFXO0VBQUVnSixJQUFJLEVBQUUsUUFBUTtFQUFFRyxXQUFXLEVBQUU7QUFBaUIsQ0FBQyxFQUNwRTtFQUFDSixLQUFLLEVBQUV4TCxZQUFZO0VBQUV5TCxJQUFJLEVBQUUsU0FBUztFQUFFRyxXQUFXLEVBQUU7QUFBa0IsQ0FBQyxFQUN2RTtFQUFDSixLQUFLLEVBQUVqSCxpQkFBaUI7RUFBRWtILElBQUksRUFBRSxtQkFBbUI7RUFBRUcsV0FBVyxFQUFFO0FBQXVCLENBQUMsRUFDM0Y7RUFBQ0osS0FBSyxFQUFFeEUsa0JBQWtCO0VBQUV5RSxJQUFJLEVBQUU7QUFBZSxDQUFDLEVBQ2xEO0VBQUNELEtBQUssRUFBRTdGLGNBQWM7RUFBRThGLElBQUksRUFBRSxXQUFXO0VBQUVHLFdBQVcsRUFBRTtBQUFxQixDQUFDLEVBQzlFO0VBQUNKLEtBQUssRUFBRXJFLG9CQUFvQjtFQUFFc0UsSUFBSSxFQUFFO0FBQWlCLENBQUMsQ0FDdkQiLCJpZ25vcmVMaXN0IjpbXX0=
|