@kepler.gl/utils 3.1.0-alpha.6 → 3.1.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/application-config.d.ts +2 -0
- package/dist/application-config.js +4 -2
- package/dist/data-utils.js +14 -2
- package/dist/dataset-utils.js +5 -3
- package/dist/dom-to-image.js +1 -1
- package/dist/dom-utils.js +1 -1
- package/dist/map-style-utils/mapbox-gl-style-editor.js +7 -1
- package/dist/observe-dimensions.d.ts +2 -1
- package/dist/observe-dimensions.js +10 -4
- package/dist/utils.js +1 -1
- package/package.json +4 -4
@@ -25,6 +25,8 @@ export declare type KeplerApplicationConfig<Map> = {
|
|
25
25
|
baseMapLibraryConfig?: Record<BaseMapLibraryType, BaseMapLibraryConfig>;
|
26
26
|
plugins?: any[];
|
27
27
|
table?: any;
|
28
|
+
useArrowProgressiveLoading?: boolean;
|
29
|
+
showReleaseBanner?: boolean;
|
28
30
|
};
|
29
31
|
export declare const getApplicationConfig: () => Required<KeplerApplicationConfig<mapboxgl.Map>>;
|
30
32
|
export declare function initApplicationConfig<M>(appConfig?: KeplerApplicationConfig<M>): void;
|
@@ -52,7 +52,9 @@ var DEFAULT_APPLICATION_CONFIG = {
|
|
52
52
|
plugins: [],
|
53
53
|
// The default table class is KeplerTable.
|
54
54
|
// TODO include KeplerTable here when the circular dependency with @kepler.gl/table and @kepler.gl/utils are resolved.
|
55
|
-
table: null
|
55
|
+
table: null,
|
56
|
+
useArrowProgressiveLoading: true,
|
57
|
+
showReleaseBanner: true
|
56
58
|
};
|
57
59
|
var applicationConfig = DEFAULT_APPLICATION_CONFIG;
|
58
60
|
var getApplicationConfig = exports.getApplicationConfig = function getApplicationConfig() {
|
@@ -62,4 +64,4 @@ function initApplicationConfig() {
|
|
62
64
|
var appConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
63
65
|
Object.assign(applicationConfig, appConfig);
|
64
66
|
}
|
65
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
67
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJERUZBVUxUX0FQUExJQ0FUSU9OX0NPTkZJRyIsImRlZmF1bHRIdG1sTmFtZSIsImRlZmF1bHRJbWFnZU5hbWUiLCJkZWZhdWx0SnNvbk5hbWUiLCJkZWZhdWx0RGF0YU5hbWUiLCJkZWZhdWx0RXhwb3J0SnNvblNldHRpbmdzIiwiaGFzRGF0YSIsImJhc2VNYXBMaWJyYXJ5Q29uZmlnIiwibWFwbGlicmUiLCJnZXRNYXBMaWIiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJtYXBMaWJDc3NDbGFzcyIsIm1hcExpYkF0dHJpYnV0aW9uQ3NzQ2xhc3MiLCJtYXBMaWJOYW1lIiwibWFwTGliVXJsIiwibWFwYm94IiwicGx1Z2lucyIsInRhYmxlIiwidXNlQXJyb3dQcm9ncmVzc2l2ZUxvYWRpbmciLCJzaG93UmVsZWFzZUJhbm5lciIsImFwcGxpY2F0aW9uQ29uZmlnIiwiZ2V0QXBwbGljYXRpb25Db25maWciLCJleHBvcnRzIiwiaW5pdEFwcGxpY2F0aW9uQ29uZmlnIiwiYXBwQ29uZmlnIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiT2JqZWN0IiwiYXNzaWduIl0sInNvdXJjZXMiOlsiLi4vc3JjL2FwcGxpY2F0aW9uLWNvbmZpZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge01hcExpYiwgTWFwUmVmfSBmcm9tICdyZWFjdC1tYXAtZ2wnO1xuXG5pbXBvcnQgdHlwZSB7QmFzZU1hcExpYnJhcnlUeXBlfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmV4cG9ydCB0eXBlIE1hcExpYkluc3RhbmNlID0gTWFwTGliPGFueT47XG5leHBvcnQgdHlwZSBHZXRNYXBSZWYgPSBSZXR1cm5UeXBlPE1hcFJlZlsnZ2V0TWFwJ10+O1xuXG5leHBvcnQgdHlwZSBCYXNlTWFwTGlicmFyeUNvbmZpZyA9IHtcbiAgZ2V0TWFwTGliOiAoKSA9PiBQcm9taXNlPE1hcExpYkluc3RhbmNlPjtcbiAgbWFwTGliQXR0cmlidXRpb25Dc3NDbGFzczogc3RyaW5nO1xuICBtYXBMaWJDc3NDbGFzczogc3RyaW5nO1xuICBtYXBMaWJOYW1lOiBzdHJpbmc7XG4gIG1hcExpYlVybDogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBBIG1lY2hhbmlzbSB0byBvdmVycmlkZSBkZWZhdWx0IEtlcGxlciB2YWx1ZXMvc2V0dGluZ3Mgc28gdGhhdCB3ZVxuICogd2l0aG91dCBoYXZpbmcgdG8gbWFrZSBhcHBsaWNhdGlvbi1zcGVjaWZpYyBjaGFuZ2VzIHRvIHRoZSBrZXBsZXIgcmVwby5cbiAqL1xuZXhwb3J0IHR5cGUgS2VwbGVyQXBwbGljYXRpb25Db25maWc8TWFwPiA9IHtcbiAgLyoqIERlZmF1bHQgbmFtZSBvZiBleHBvcnQgSFRNTCBmaWxlLCBjYW4gYmUgb3ZlcnJpZGRlbiBieSB1c2VyICovXG4gIGRlZmF1bHRIdG1sTmFtZT86IHN0cmluZztcbiAgZGVmYXVsdEltYWdlTmFtZT86IHN0cmluZztcbiAgZGVmYXVsdEpzb25OYW1lPzogc3RyaW5nO1xuICBkZWZhdWx0RGF0YU5hbWU/OiBzdHJpbmc7XG4gIGRlZmF1bHRFeHBvcnRKc29uU2V0dGluZ3M/OiB7XG4gICAgaGFzRGF0YT86IGJvb2xlYW47XG4gIH07XG4gIGJhc2VNYXBMaWJyYXJ5Q29uZmlnPzogUmVjb3JkPEJhc2VNYXBMaWJyYXJ5VHlwZSwgQmFzZU1hcExpYnJhcnlDb25maWc+O1xuICBwbHVnaW5zPzogYW55W107XG4gIC8vIEtlcGxlclRhYmxlIGFsdGVybmF0aXZlXG4gIC8vIFRPRE8gaW1wcm92ZSB0eXBpbmcgYnkgZXhwb3J0aW5nIEtlcGxlclRhYmxlIGludGVyZmFjZSB0byBAa2VwbGVyLmdsL3R5cGVzXG4gIHRhYmxlPzogYW55O1xuXG4gIC8vIERpc2FibGUgcHJvZ3Jlc3NpdmUgbG9hZGluZyBmb3IgYXJyb3cgZmlsZXNcbiAgdXNlQXJyb3dQcm9ncmVzc2l2ZUxvYWRpbmc/OiBib29sZWFuO1xuICAvLyBTaG93IGJ1aWx0LWluIGJhbm5lciBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBLZXBsZXIuZ2xcbiAgc2hvd1JlbGVhc2VCYW5uZXI/OiBib29sZWFuO1xufTtcblxuY29uc3QgREVGQVVMVF9BUFBMSUNBVElPTl9DT05GSUc6IFJlcXVpcmVkPEtlcGxlckFwcGxpY2F0aW9uQ29uZmlnPG1hcGJveGdsLk1hcD4+ID0ge1xuICBkZWZhdWx0SHRtbE5hbWU6ICdrZXBsZXIuZ2wuaHRtbCcsXG4gIGRlZmF1bHRJbWFnZU5hbWU6ICdrZXBsZXIuZ2wucG5nJyxcbiAgZGVmYXVsdEpzb25OYW1lOiAna2VwbGVyLmdsLmpzb24nLFxuICBkZWZhdWx0RGF0YU5hbWU6ICdrZXBsZXIuZ2wnLFxuICBkZWZhdWx0RXhwb3J0SnNvblNldHRpbmdzOiB7XG4gICAgaGFzRGF0YTogdHJ1ZVxuICB9LFxuXG4gIGJhc2VNYXBMaWJyYXJ5Q29uZmlnOiB7XG4gICAgbWFwbGlicmU6IHtcbiAgICAgIGdldE1hcExpYjogKCkgPT4gaW1wb3J0KCdtYXBsaWJyZS1nbCcpLFxuICAgICAgbWFwTGliQ3NzQ2xhc3M6ICdtYXBsaWJyZWdsJyxcbiAgICAgIG1hcExpYkF0dHJpYnV0aW9uQ3NzQ2xhc3M6ICdtYXBsaWJyZS1hdHRyaWJ1dGlvbi1jb250YWluZXInLFxuICAgICAgbWFwTGliTmFtZTogJ01hcExpYnJlJyxcbiAgICAgIG1hcExpYlVybDogJ2h0dHBzOi8vd3d3Lm1hcGxpYnJlLm9yZy8nXG4gICAgfSxcbiAgICBtYXBib3g6IHtcbiAgICAgIGdldE1hcExpYjogKCkgPT4gaW1wb3J0KCdtYXBib3gtZ2wnKSxcbiAgICAgIG1hcExpYkNzc0NsYXNzOiAnbWFwYm94Z2wnLFxuICAgICAgbWFwTGliQXR0cmlidXRpb25Dc3NDbGFzczogJ21hcGJveC1hdHRyaWJ1dGlvbi1jb250YWluZXInLFxuICAgICAgbWFwTGliTmFtZTogJ01hcGJveCcsXG4gICAgICBtYXBMaWJVcmw6ICdodHRwczovL3d3dy5tYXBib3guY29tLydcbiAgICB9XG4gIH0sXG5cbiAgcGx1Z2luczogW10sXG4gIC8vIFRoZSBkZWZhdWx0IHRhYmxlIGNsYXNzIGlzIEtlcGxlclRhYmxlLlxuICAvLyBUT0RPIGluY2x1ZGUgS2VwbGVyVGFibGUgaGVyZSB3aGVuIHRoZSBjaXJjdWxhciBkZXBlbmRlbmN5IHdpdGggQGtlcGxlci5nbC90YWJsZSBhbmQgQGtlcGxlci5nbC91dGlscyBhcmUgcmVzb2x2ZWQuXG4gIHRhYmxlOiBudWxsLFxuXG4gIHVzZUFycm93UHJvZ3Jlc3NpdmVMb2FkaW5nOiB0cnVlLFxuICBzaG93UmVsZWFzZUJhbm5lcjogdHJ1ZVxufTtcblxuY29uc3QgYXBwbGljYXRpb25Db25maWc6IFJlcXVpcmVkPEtlcGxlckFwcGxpY2F0aW9uQ29uZmlnPG1hcGJveGdsLk1hcD4+ID1cbiAgREVGQVVMVF9BUFBMSUNBVElPTl9DT05GSUc7XG5cbmV4cG9ydCBjb25zdCBnZXRBcHBsaWNhdGlvbkNvbmZpZyA9ICgpOiBSZXF1aXJlZDxLZXBsZXJBcHBsaWNhdGlvbkNvbmZpZzxtYXBib3hnbC5NYXA+PiA9PlxuICBhcHBsaWNhdGlvbkNvbmZpZztcblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRBcHBsaWNhdGlvbkNvbmZpZzxNPihhcHBDb25maWc6IEtlcGxlckFwcGxpY2F0aW9uQ29uZmlnPE0+ID0ge30pIHtcbiAgT2JqZWN0LmFzc2lnbihhcHBsaWNhdGlvbkNvbmZpZywgYXBwQ29uZmlnKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTtBQUNBOztBQWlCQTtBQUNBO0FBQ0E7QUFDQTs7QUFzQkEsSUFBTUEsMEJBQTJFLEdBQUc7RUFDbEZDLGVBQWUsRUFBRSxnQkFBZ0I7RUFDakNDLGdCQUFnQixFQUFFLGVBQWU7RUFDakNDLGVBQWUsRUFBRSxnQkFBZ0I7RUFDakNDLGVBQWUsRUFBRSxXQUFXO0VBQzVCQyx5QkFBeUIsRUFBRTtJQUN6QkMsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUVEQyxvQkFBb0IsRUFBRTtJQUNwQkMsUUFBUSxFQUFFO01BQ1JDLFNBQVMsRUFBRSxTQUFYQSxTQUFTQSxDQUFBO1FBQUEsT0FBQUMsT0FBQSxDQUFBQyxPQUFBLEdBQUFDLElBQUE7VUFBQSxPQUFBQyx1QkFBQSxDQUFBQyxPQUFBLENBQWUsYUFBYTtRQUFBO01BQUEsQ0FBQztNQUN0Q0MsY0FBYyxFQUFFLFlBQVk7TUFDNUJDLHlCQUF5QixFQUFFLGdDQUFnQztNQUMzREMsVUFBVSxFQUFFLFVBQVU7TUFDdEJDLFNBQVMsRUFBRTtJQUNiLENBQUM7SUFDREMsTUFBTSxFQUFFO01BQ05WLFNBQVMsRUFBRSxTQUFYQSxTQUFTQSxDQUFBO1FBQUEsT0FBQUMsT0FBQSxDQUFBQyxPQUFBLEdBQUFDLElBQUE7VUFBQSxPQUFBQyx1QkFBQSxDQUFBQyxPQUFBLENBQWUsV0FBVztRQUFBO01BQUEsQ0FBQztNQUNwQ0MsY0FBYyxFQUFFLFVBQVU7TUFDMUJDLHlCQUF5QixFQUFFLDhCQUE4QjtNQUN6REMsVUFBVSxFQUFFLFFBQVE7TUFDcEJDLFNBQVMsRUFBRTtJQUNiO0VBQ0YsQ0FBQztFQUVERSxPQUFPLEVBQUUsRUFBRTtFQUNYO0VBQ0E7RUFDQUMsS0FBSyxFQUFFLElBQUk7RUFFWEMsMEJBQTBCLEVBQUUsSUFBSTtFQUNoQ0MsaUJBQWlCLEVBQUU7QUFDckIsQ0FBQztBQUVELElBQU1DLGlCQUFrRSxHQUN0RXhCLDBCQUEwQjtBQUVyQixJQUFNeUIsb0JBQW9CLEdBQUFDLE9BQUEsQ0FBQUQsb0JBQUEsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFBO0VBQUEsT0FDL0JELGlCQUFpQjtBQUFBO0FBRVosU0FBU0cscUJBQXFCQSxDQUFBLEVBQWdEO0VBQUEsSUFBNUNDLFNBQXFDLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLENBQUMsQ0FBQztFQUNqRkcsTUFBTSxDQUFDQyxNQUFNLENBQUNULGlCQUFpQixFQUFFSSxTQUFTLENBQUM7QUFDN0MiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/dist/data-utils.js
CHANGED
@@ -292,7 +292,13 @@ var FIELD_DISPLAY_FORMAT = exports.FIELD_DISPLAY_FORMAT = (_FIELD_DISPLAY_FORMAT
|
|
292
292
|
return typeof d === 'string' ? d : (0, _utils.isPlainObject)(d) ? JSON.stringify(d) : Array.isArray(d) ? "[".concat(String(d), "]") : '';
|
293
293
|
}), _constants.ALL_FIELD_TYPES.geoarrow, function (d) {
|
294
294
|
return d;
|
295
|
-
}), _constants.ALL_FIELD_TYPES.object,
|
295
|
+
}), _constants.ALL_FIELD_TYPES.object, function (value) {
|
296
|
+
try {
|
297
|
+
return JSON.stringify(value);
|
298
|
+
} catch (e) {
|
299
|
+
return String(value);
|
300
|
+
}
|
301
|
+
}), _constants.ALL_FIELD_TYPES.array, JSON.stringify), (0, _defineProperty2["default"])(_FIELD_DISPLAY_FORMAT, _constants.ALL_FIELD_TYPES.h3, defaultFormatter));
|
296
302
|
|
297
303
|
/**
|
298
304
|
* Parse field value and type and return a string representation
|
@@ -301,6 +307,12 @@ var parseFieldValue = exports.parseFieldValue = function parseFieldValue(value,
|
|
301
307
|
if (!(0, _commonUtils.notNullorUndefined)(value)) {
|
302
308
|
return '';
|
303
309
|
}
|
310
|
+
// BigInt values cannot be serialized with JSON.stringify() directly
|
311
|
+
// We need to explicitly convert them to strings using .toString()
|
312
|
+
// See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt#use_within_json
|
313
|
+
if (typeof value === 'bigint') {
|
314
|
+
return value.toString();
|
315
|
+
}
|
304
316
|
return FIELD_DISPLAY_FORMAT[type] ? FIELD_DISPLAY_FORMAT[type](value) : String(value);
|
305
317
|
};
|
306
318
|
|
@@ -486,4 +498,4 @@ function datetimeFormatter(timezone) {
|
|
486
498
|
};
|
487
499
|
};
|
488
500
|
}
|
489
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZDNGb3JtYXQiLCJfbW9tZW50VGltZXpvbmUiLCJfY29uc3RhbnRzIiwiX2NvbW1vblV0aWxzIiwiX3Bsb3QiLCJfdXRpbHMiLCJfRklFTERfRElTUExBWV9GT1JNQVQiLCJNQVhfTEFUSVRVREUiLCJleHBvcnRzIiwiTUlOX0xBVElUVURFIiwiTUFYX0xPTkdJVFVERSIsIk1JTl9MT05HSVRVREUiLCJ2YWxpZGF0ZUxhdGl0dWRlIiwibGF0aXR1ZGUiLCJ2YWxpZGF0ZUNvb3JkaW5hdGUiLCJ2YWxpZGF0ZUxvbmdpdHVkZSIsImxvbmdpdHVkZSIsInZhbHVlIiwibWluVmFsdWUiLCJtYXhWYWx1ZSIsInVuaXF1ZSIsInZhbHVlcyIsInJlc3VsdHMiLCJ1bmlxdWVTZXQiLCJTZXQiLCJmb3JFYWNoIiwidiIsIm5vdE51bGxvclVuZGVmaW5lZCIsInB1c2giLCJnZXRMYXRMbmdCb3VuZHMiLCJwb2ludHMiLCJpZHgiLCJsaW1pdCIsImxhdHMiLCJtYXAiLCJkIiwiTnVtYmVyIiwiQXJyYXkiLCJpc0FycmF5IiwiZmlsdGVyIiwiaXNGaW5pdGUiLCJzb3J0IiwibnVtYmVyU29ydCIsImxlbmd0aCIsIk1hdGgiLCJtYXgiLCJtaW4iLCJjbGFtcCIsIl9yZWYiLCJfcmVmMiIsIl9zbGljZWRUb0FycmF5MiIsInZhbCIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsImdldFNhbXBsZURhdGEiLCJkYXRhIiwic2FtcGxlU2l6ZSIsImdldFZhbHVlIiwic2FtcGxlU3RlcCIsImZsb29yIiwib3V0cHV0IiwiaSIsInRpbWVUb1VuaXhNaWxsaSIsImZvcm1hdCIsIm1vbWVudCIsInV0YyIsInZhbHVlT2YiLCJEYXRlIiwiaXNOdW1iZXIiLCJoYXNPd25Qcm9wZXJ0eSIsIm9iaiIsInByb3AiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJjYWxsIiwiYSIsImIiLCJnZXRTb3J0aW5nRnVuY3Rpb24iLCJmaWVsZFR5cGUiLCJBTExfRklFTERfVFlQRVMiLCJyZWFsIiwiaW50ZWdlciIsInRpbWVzdGFtcCIsInByZWNpc2VSb3VuZCIsIm51bSIsImRlY2ltYWxzIiwidCIsInBvdyIsInJvdW5kIiwic2lnbiIsInRvRml4ZWQiLCJyb3VuZFRvRm91ciIsImNvbmNhdCIsImdldFJvdW5kaW5nRGVjaW1hbEZyb21TdGVwIiwic3RlcCIsImlzTmFOIiwiYXNzZXJ0Iiwic3RlcFN0ciIsInRvU3RyaW5nIiwic3BsaXRFeHBvbmVudGlhbCIsInNwbGl0IiwiY29lZmZaZXJvIiwiY29lZmZEZWNpbWFsIiwicGFyc2VJbnQiLCJzcGxpdFplcm8iLCJub3JtYWxpemVTbGlkZXJWYWx1ZSIsIm1hcmtzIiwic25hcFRvTWFya3MiLCJyb3VuZFZhbFRvU3RlcCIsImRlY2ltYWwiLCJzdGVwcyIsInJlbWFpbiIsImNsb3Nlc3QiLCJyb3VuZGVkIiwiZGVmYXVsdEZvcm1hdHRlciIsIlN0cmluZyIsImZsb2F0Rm9ybWF0dGVyIiwiRklFTERfRElTUExBWV9GT1JNQVQiLCJfZGVmaW5lUHJvcGVydHkyIiwic3RyaW5nIiwiZGF0ZSIsImdlb2pzb24iLCJpc1BsYWluT2JqZWN0IiwiSlNPTiIsInN0cmluZ2lmeSIsImdlb2Fycm93Iiwib2JqZWN0IiwiYXJyYXkiLCJoMyIsInBhcnNlRmllbGRWYWx1ZSIsInR5cGUiLCJnZXRGb3JtYXR0ZXIiLCJmaWVsZCIsInRvb2x0aXBGb3JtYXQiLCJUT09MVElQX0ZPUk1BVFMiLCJmaW5kIiwiZiIsIlRPT0xUSVBfS0VZIiwiYXBwbHlEZWZhdWx0Rm9ybWF0IiwiYXBwbHlDdXN0b21Gb3JtYXQiLCJnZXRDb2x1bW5Gb3JtYXR0ZXIiLCJkaXNwbGF5Rm9ybWF0IiwiX3R5cGVvZjIiLCJhcHBseVZhbHVlTWFwIiwiVE9PTFRJUF9GT1JNQVRfVFlQRVMiLCJERUNJTUFMIiwiZDNGb3JtYXQiLCJEQVRFIiwiREFURV9USU1FIiwiZGF0ZXRpbWVGb3JtYXR0ZXIiLCJQRVJDRU5UQUdFIiwiREVDSU1BTF9ERUNJTUFMX0ZJWEVEXzIiLCJCT09MRUFOIiwiZ2V0Qm9vbGVhbkZvcm1hdHRlciIsImZvcm1hdExhcmdlTnVtYmVyIiwibiIsImZvcm1hdE51bWJlciIsInRyYW5zZm9ybWF0aW9uIiwiWSIsIloiLCJFIiwiUCIsIlQiLCJHIiwiTSIsImsiLCJoIiwiZGEiLCJjIiwibSIsIs68IiwicCIsInoiLCJ5IiwicmV2ZXJzZUZvcm1hdE51bWJlciIsInN0ciIsInJldHVyblZhbHVlIiwic3RyTnVtIiwidHJpbSIsInJlcGxhY2UiLCJlbnRyaWVzIiwiaW5jbHVkZXMiLCJwYXJzZUZsb2F0IiwidGltZXpvbmUiLCJ0cyIsInR6Il0sInNvdXJjZXMiOlsiLi4vc3JjL2RhdGEtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHtmb3JtYXQgYXMgZDNGb3JtYXR9IGZyb20gJ2QzLWZvcm1hdCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC10aW1lem9uZSc7XG5cbmltcG9ydCB7XG4gIEFMTF9GSUVMRF9UWVBFUyxcbiAgVE9PTFRJUF9GT1JNQVRTLFxuICBUT09MVElQX0ZPUk1BVF9UWVBFUyxcbiAgVE9PTFRJUF9LRVksXG4gIFRvb2x0aXBGb3JtYXRcbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtub3ROdWxsb3JVbmRlZmluZWR9IGZyb20gJ0BrZXBsZXIuZ2wvY29tbW9uLXV0aWxzJztcbmltcG9ydCB7RmllbGQsIE1pbGxpc2Vjb25kfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuaW1wb3J0IHtzbmFwVG9NYXJrc30gZnJvbSAnLi9wbG90JztcbmltcG9ydCB7aXNQbGFpbk9iamVjdH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCB0eXBlIEZpZWxkRm9ybWF0dGVyID0gKHZhbHVlOiBhbnkpID0+IHN0cmluZztcblxuLy8gV2UgbmVlZCB0aHJlYXQgbGF0aXR1ZGUgZGlmZmVyZW50bHkgb3RoZXJ3aXNlIG1hcmNhdG9yIHByb2plY3QgdmlldyB0aHJvd3Ncbi8vIGEgcHJvamVjdGlvbiBtYXRyaXggZXJyb3Jcbi8vIFVuY2F1Z2h0IEVycm9yOiBQaXhlbCBwcm9qZWN0IG1hdHJpeCBub3QgaW52ZXJ0aWJsZVxuLy8gYXQgV2ViTWVyY2F0b3JWaWV3cG9ydDE2LlZpZXdwb3J0NiAodmlld3BvcnQuanM6ODE6MTMpXG5leHBvcnQgY29uc3QgTUFYX0xBVElUVURFID0gODkuOTtcbmV4cG9ydCBjb25zdCBNSU5fTEFUSVRVREUgPSAtODkuOTtcbmV4cG9ydCBjb25zdCBNQVhfTE9OR0lUVURFID0gMTgwO1xuZXhwb3J0IGNvbnN0IE1JTl9MT05HSVRVREUgPSAtMTgwO1xuXG4vKipcbiAqIFZhbGlkYXRlcyBhIGxhdGl0dWRlIHZhbHVlLlxuICogRW5zdXJlcyB0aGF0IHRoZSBsYXRpdHVkZSBpcyB3aXRoaW4gdGhlIGRlZmluZWQgbWluaW11bSBhbmQgbWF4aW11bSBsYXRpdHVkZSBib3VuZHMuXG4gKiBJZiB0aGUgdmFsdWUgaXMgb3V0IG9mIGJvdW5kcywgaXQgcmV0dXJucyB0aGUgbmVhcmVzdCBib3VuZCB2YWx1ZS5cbiAqIEBwYXJhbSBsYXRpdHVkZSAtIFRoZSBsYXRpdHVkZSB2YWx1ZSB0byB2YWxpZGF0ZS5cbiAqIEByZXR1cm5zIFRoZSB2YWxpZGF0ZWQgbGF0aXR1ZGUgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUxhdGl0dWRlKGxhdGl0dWRlOiBudW1iZXIgfCB1bmRlZmluZWQpOiBudW1iZXIge1xuICByZXR1cm4gdmFsaWRhdGVDb29yZGluYXRlKGxhdGl0dWRlID8/IDAsIE1JTl9MQVRJVFVERSwgTUFYX0xBVElUVURFKTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgYSBsb25naXR1ZGUgdmFsdWUuXG4gKiBFbnN1cmVzIHRoYXQgdGhlIGxvbmdpdHVkZSBpcyB3aXRoaW4gdGhlIGRlZmluZWQgbWluaW11bSBhbmQgbWF4aW11bSBsb25naXR1ZGUgYm91bmRzLlxuICogSWYgdGhlIHZhbHVlIGlzIG91dCBvZiBib3VuZHMsIGl0IHJldHVybnMgdGhlIG5lYXJlc3QgYm91bmQgdmFsdWUuXG4gKiBAcGFyYW0gbG9uZ2l0dWRlIC0gVGhlIGxvbmdpdHVkZSB2YWx1ZSB0byB2YWxpZGF0ZS5cbiAqIEByZXR1cm5zIFRoZSB2YWxpZGF0ZWQgbG9uZ2l0dWRlIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVMb25naXR1ZGUobG9uZ2l0dWRlOiBudW1iZXIgfCB1bmRlZmluZWQpOiBudW1iZXIge1xuICByZXR1cm4gdmFsaWRhdGVDb29yZGluYXRlKGxvbmdpdHVkZSA/PyAwLCBNSU5fTE9OR0lUVURFLCBNQVhfTE9OR0lUVURFKTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgYSBjb29yZGluYXRlIHZhbHVlLlxuICogRW5zdXJlcyB0aGF0IHRoZSB2YWx1ZSBpcyB3aXRoaW4gdGhlIHNwZWNpZmllZCBtaW5pbXVtIGFuZCBtYXhpbXVtIGJvdW5kcy5cbiAqIElmIHRoZSB2YWx1ZSBpcyBvdXQgb2YgYm91bmRzLCBpdCByZXR1cm5zIHRoZSBuZWFyZXN0IGJvdW5kIHZhbHVlLlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIGNvb3JkaW5hdGUgdmFsdWUgdG8gdmFsaWRhdGUuXG4gKiBAcGFyYW0gbWluVmFsdWUgLSBUaGUgbWluaW11bSBib3VuZCBmb3IgdGhlIHZhbHVlLlxuICogQHBhcmFtIG1heFZhbHVlIC0gVGhlIG1heGltdW0gYm91bmQgZm9yIHRoZSB2YWx1ZS5cbiAqIEByZXR1cm5zIFRoZSB2YWxpZGF0ZWQgY29vcmRpbmF0ZSB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQ29vcmRpbmF0ZSh2YWx1ZTogbnVtYmVyLCBtaW5WYWx1ZTogbnVtYmVyLCBtYXhWYWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgaWYgKHZhbHVlIDw9IG1pblZhbHVlKSB7XG4gICAgcmV0dXJuIG1pblZhbHVlO1xuICB9XG4gIGlmICh2YWx1ZSA+PSBtYXhWYWx1ZSkge1xuICAgIHJldHVybiBtYXhWYWx1ZTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn1cblxuLyoqXG4gKiBzaW1wbGUgZ2V0dGluZyB1bmlxdWUgdmFsdWVzIG9mIGFuIGFycmF5XG4gKlxuICogQHBhcmFtIHZhbHVlc1xuICogQHJldHVybnMgdW5pcXVlIHZhbHVlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdW5pcXVlPFQ+KHZhbHVlczogVFtdKSB7XG4gIGNvbnN0IHJlc3VsdHM6IFRbXSA9IFtdO1xuICBjb25zdCB1bmlxdWVTZXQgPSBuZXcgU2V0KHZhbHVlcyk7XG4gIHVuaXF1ZVNldC5mb3JFYWNoKHYgPT4ge1xuICAgIGlmIChub3ROdWxsb3JVbmRlZmluZWQodikpIHtcbiAgICAgIHJlc3VsdHMucHVzaCh2KTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExhdExuZ0JvdW5kcyhcbiAgcG9pbnRzOiBudW1iZXJbXVtdLFxuICBpZHg6IG51bWJlcixcbiAgbGltaXQ6IFtudW1iZXIsIG51bWJlcl1cbik6IFtudW1iZXIsIG51bWJlcl0gfCBudWxsIHtcbiAgY29uc3QgbGF0cyA9IHBvaW50c1xuICAgIC5tYXAoZCA9PiBOdW1iZXIoQXJyYXkuaXNBcnJheShkKSkgJiYgZFtpZHhdKVxuICAgIC5maWx0ZXIoTnVtYmVyLmlzRmluaXRlKVxuICAgIC5zb3J0KG51bWJlclNvcnQpO1xuXG4gIGlmICghbGF0cy5sZW5ndGgpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIGNsYW1wIHRvIGxpbWl0XG4gIHJldHVybiBbTWF0aC5tYXgobGF0c1swXSwgbGltaXRbMF0pLCBNYXRoLm1pbihsYXRzW2xhdHMubGVuZ3RoIC0gMV0sIGxpbWl0WzFdKV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGFtcChbbWluLCBtYXhdOiBbbnVtYmVyLCBudW1iZXJdLCB2YWwgPSAwKTogbnVtYmVyIHtcbiAgcmV0dXJuIHZhbCA8PSBtaW4gPyBtaW4gOiB2YWwgPj0gbWF4ID8gbWF4IDogdmFsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2FtcGxlRGF0YShkYXRhLCBzYW1wbGVTaXplID0gNTAwLCBnZXRWYWx1ZSA9IGQgPT4gZCkge1xuICBjb25zdCBzYW1wbGVTdGVwID0gTWF0aC5tYXgoTWF0aC5mbG9vcihkYXRhLmxlbmd0aCAvIHNhbXBsZVNpemUpLCAxKTtcbiAgY29uc3Qgb3V0cHV0OiBhbnlbXSA9IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpICs9IHNhbXBsZVN0ZXApIHtcbiAgICBvdXRwdXQucHVzaChnZXRWYWx1ZShkYXRhW2ldKSk7XG4gIH1cblxuICByZXR1cm4gb3V0cHV0O1xufVxuXG4vKipcbiAqIENvbnZlcnQgZGlmZmVyZW50IHRpbWUgZm9ybWF0IHRvIHVuaXggbWlsbGlzZWNvbmRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aW1lVG9Vbml4TWlsbGkodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IERhdGUsIGZvcm1hdDogc3RyaW5nKTogTWlsbGlzZWNvbmQgfCBudWxsIHtcbiAgaWYgKG5vdE51bGxvclVuZGVmaW5lZCh2YWx1ZSkpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIG1vbWVudC51dGModmFsdWUsIGZvcm1hdCkudmFsdWVPZigpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIGZvcm1hdCA9PT0gJ3gnID8gdmFsdWUgKiAxMDAwIDogdmFsdWU7XG4gICAgfVxuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHJldHVybiB2YWx1ZS52YWx1ZU9mKCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIFdoZXRoZXIgZCBpcyBhIG51bWJlciwgdGhpcyBmaWx0ZXJlZCBvdXQgTmFOIGFzIHdlbGxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTnVtYmVyKGQ6IHVua25vd24pOiBkIGlzIG51bWJlciB7XG4gIHJldHVybiBOdW1iZXIuaXNGaW5pdGUoZCk7XG59XG5cbi8qKlxuICogd2hldGhlciBvYmplY3QgaGFzIHByb3BlcnR5XG4gKiBAcGFyYW0ge3N0cmluZ30gcHJvcFxuICogQHJldHVybnMge2Jvb2xlYW59IC0geWVzIG9yIG5vXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNPd25Qcm9wZXJ0eTxYIGV4dGVuZHMgb2JqZWN0LCBZIGV4dGVuZHMgUHJvcGVydHlLZXk+KFxuICBvYmo6IFgsXG4gIHByb3A6IFlcbik6IG9iaiBpcyBYICYgUmVjb3JkPFksIHVua25vd24+IHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbnVtYmVyU29ydChhOiBudW1iZXIsIGI6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiBhIC0gYjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNvcnRpbmdGdW5jdGlvbihmaWVsZFR5cGU6IHN0cmluZyk6IHR5cGVvZiBudW1iZXJTb3J0IHwgdW5kZWZpbmVkIHtcbiAgc3dpdGNoIChmaWVsZFR5cGUpIHtcbiAgICBjYXNlIEFMTF9GSUVMRF9UWVBFUy5yZWFsOlxuICAgIGNhc2UgQUxMX0ZJRUxEX1RZUEVTLmludGVnZXI6XG4gICAgY2FzZSBBTExfRklFTERfVFlQRVMudGltZXN0YW1wOlxuICAgICAgcmV0dXJuIG51bWJlclNvcnQ7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiByb3VuZCBudW1iZXIgd2l0aCBleGFjdCBudW1iZXIgb2YgZGVjaW1hbHNcbiAqIHJldHVybiBhcyBhIHN0cmluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJlY2lzZVJvdW5kKG51bTogbnVtYmVyLCBkZWNpbWFsczogbnVtYmVyKTogc3RyaW5nIHtcbiAgY29uc3QgdCA9IE1hdGgucG93KDEwLCBkZWNpbWFscyk7XG4gIHJldHVybiAoXG4gICAgTWF0aC5yb3VuZChcbiAgICAgIG51bSAqIHQgKyAoZGVjaW1hbHMgPiAwID8gMSA6IDApICogKE1hdGguc2lnbihudW0pICogKDEwIC8gTWF0aC5wb3coMTAwLCBkZWNpbWFscykpKVxuICAgICkgLyB0XG4gICkudG9GaXhlZChkZWNpbWFscyk7XG59XG5cbi8qKlxuICogcm91bmQgYSBnaXZpbmcgbnVtYmVyIGF0IG1vc3QgNCBkZWNpbWFsIHBsYWNlc1xuICogZS5nLiAxMCAtPiAxMCwgMS4xMjM0NSAtPiAxLjIzNDUsIDIuMCAtPiAyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByb3VuZFRvRm91cihudW06IG51bWJlcik6IG51bWJlciB7XG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgcmV0dXJuIE51bWJlcihgJHtNYXRoLnJvdW5kKGAke251bX1lKzRgKX1lLTRgKTtcbn1cbi8qKlxuICogZ2V0IG51bWJlciBvZiBkZWNpbWFscyB0byByb3VuZCB0byBmb3Igc2xpZGVyIGZyb20gc3RlcFxuICogQHBhcmFtIHN0ZXBcbiAqIEByZXR1cm5zLSBudW1iZXIgb2YgZGVjaW1hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um91bmRpbmdEZWNpbWFsRnJvbVN0ZXAoc3RlcDogbnVtYmVyKTogbnVtYmVyIHtcbiAgaWYgKGlzTmFOKHN0ZXApKSB7XG4gICAgYXNzZXJ0KCdzdGVwIGlzIG5vdCBhIG51bWJlcicpO1xuICAgIGFzc2VydChzdGVwKTtcbiAgfVxuXG4gIGNvbnN0IHN0ZXBTdHIgPSBzdGVwLnRvU3RyaW5nKCk7XG5cbiAgLy8gaW4gY2FzZSB0aGUgc3RlcCBpcyBhIHZlcnkgc21hbGwgbnVtYmVyIGUuZy4gMWUtNywgcmV0dXJuIGRlY2ltYWwgZS5nLiA3IGRpcmVjdGx5XG4gIGNvbnN0IHNwbGl0RXhwb25lbnRpYWwgPSBzdGVwU3RyLnNwbGl0KCdlLScpO1xuICBpZiAoc3BsaXRFeHBvbmVudGlhbC5sZW5ndGggPT09IDIpIHtcbiAgICBjb25zdCBjb2VmZlplcm8gPSBzcGxpdEV4cG9uZW50aWFsWzBdLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgY29lZmZEZWNpbWFsID0gY29lZmZaZXJvLmxlbmd0aCA9PT0gMSA/IDAgOiBjb2VmZlplcm9bMV0ubGVuZ3RoO1xuICAgIHJldHVybiBwYXJzZUludChzcGxpdEV4cG9uZW50aWFsWzFdLCAxMCkgKyBjb2VmZkRlY2ltYWw7XG4gIH1cblxuICBjb25zdCBzcGxpdFplcm8gPSBzdGVwU3RyLnNwbGl0KCcuJyk7XG4gIGlmIChzcGxpdFplcm8ubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgcmV0dXJuIHNwbGl0WmVyb1sxXS5sZW5ndGg7XG59XG5cbi8qKlxuICogSWYgbWFya3MgaXMgcHJvdmlkZWQsIHNuYXAgdG8gbWFya3MsIGlmIG5vdCBub3JtYWxpemUgdG8gc3RlcFxuICogQHBhcmFtIHZhbFxuICogQHBhcmFtIG1pblZhbHVlXG4gKiBAcGFyYW0gc3RlcFxuICogQHBhcmFtIG1hcmtzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVTbGlkZXJWYWx1ZShcbiAgdmFsOiBudW1iZXIsXG4gIG1pblZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQsXG4gIHN0ZXA6IG51bWJlcixcbiAgbWFya3M/OiBudW1iZXJbXSB8IG51bGxcbik6IG51bWJlciB7XG4gIGlmIChtYXJrcyAmJiBtYXJrcy5sZW5ndGgpIHtcbiAgICAvLyBVc2UgaW4gc2xpZGVyLCBnaXZlbiBhIG51bWJlciBhbmQgYW4gYXJyYXkgb2YgbnVtYmVycywgcmV0dXJuIHRoZSBuZWFycyBudW1iZXIgZnJvbSB0aGUgYXJyYXlcbiAgICByZXR1cm4gc25hcFRvTWFya3ModmFsLCBtYXJrcyk7XG4gIH1cblxuICByZXR1cm4gcm91bmRWYWxUb1N0ZXAobWluVmFsdWUsIHN0ZXAsIHZhbCk7XG59XG5cbi8qKlxuICogcm91bmQgdGhlIHZhbHVlIHRvIHN0ZXAgZm9yIHRoZSBzbGlkZXJcbiAqIEBwYXJhbSBtaW5WYWx1ZVxuICogQHBhcmFtIHN0ZXBcbiAqIEBwYXJhbSB2YWxcbiAqIEByZXR1cm5zIC0gcm91bmRlZCBudW1iZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJvdW5kVmFsVG9TdGVwKG1pblZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQsIHN0ZXA6IG51bWJlciwgdmFsOiBudW1iZXIpOiBudW1iZXIge1xuICBpZiAoIWlzTnVtYmVyKHN0ZXApIHx8ICFpc051bWJlcihtaW5WYWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsO1xuICB9XG5cbiAgY29uc3QgZGVjaW1hbCA9IGdldFJvdW5kaW5nRGVjaW1hbEZyb21TdGVwKHN0ZXApO1xuICBjb25zdCBzdGVwcyA9IE1hdGguZmxvb3IoKHZhbCAtIG1pblZhbHVlKSAvIHN0ZXApO1xuICBsZXQgcmVtYWluID0gdmFsIC0gKHN0ZXBzICogc3RlcCArIG1pblZhbHVlKTtcblxuICAvLyBoYXMgdG8gcm91bmQgYmVjYXVzZSBqYXZhc2NyaXB0IHR1cm5zIDAuMSBpbnRvIDAuOTk5OTk5OTk5OTk5OTk4N1xuICByZW1haW4gPSBOdW1iZXIocHJlY2lzZVJvdW5kKHJlbWFpbiwgOCkpO1xuXG4gIGxldCBjbG9zZXN0OiBudW1iZXI7XG4gIGlmIChyZW1haW4gPT09IDApIHtcbiAgICBjbG9zZXN0ID0gdmFsO1xuICB9IGVsc2UgaWYgKHJlbWFpbiA8IHN0ZXAgLyAyKSB7XG4gICAgY2xvc2VzdCA9IHN0ZXBzICogc3RlcCArIG1pblZhbHVlO1xuICB9IGVsc2Uge1xuICAgIGNsb3Nlc3QgPSAoc3RlcHMgKyAxKSAqIHN0ZXAgKyBtaW5WYWx1ZTtcbiAgfVxuXG4gIC8vIHByZWNpc2Ugcm91bmQgcmV0dXJuIGEgc3RyaW5nIHJvdW5kZWQgdG8gdGhlIGRlZmluZWQgZGVjaW1hbFxuICBjb25zdCByb3VuZGVkID0gcHJlY2lzZVJvdW5kKGNsb3Nlc3QsIGRlY2ltYWwpO1xuXG4gIHJldHVybiBOdW1iZXIocm91bmRlZCk7XG59XG5cbi8qKlxuICogR2V0IHRoZSB2YWx1ZSBmb3JtYXQgYmFzZWQgb24gZmllbGQgYW5kIGZvcm1hdCBvcHRpb25zXG4gKiBVc2VkIGluIHJlbmRlciB0b29sdGlwIHZhbHVlXG4gKi9cbmV4cG9ydCBjb25zdCBkZWZhdWx0Rm9ybWF0dGVyOiBGaWVsZEZvcm1hdHRlciA9IHYgPT4gKG5vdE51bGxvclVuZGVmaW5lZCh2KSA/IFN0cmluZyh2KSA6ICcnKTtcblxuZXhwb3J0IGNvbnN0IGZsb2F0Rm9ybWF0dGVyID0gdiA9PiAoaXNOdW1iZXIodikgPyBTdHJpbmcocm91bmRUb0ZvdXIodikpIDogJycpO1xuXG5leHBvcnQgY29uc3QgRklFTERfRElTUExBWV9GT1JNQVQ6IHtcbiAgW2tleTogc3RyaW5nXTogRmllbGRGb3JtYXR0ZXI7XG59ID0ge1xuICBbQUxMX0ZJRUxEX1RZUEVTLnN0cmluZ106IGRlZmF1bHRGb3JtYXR0ZXIsXG4gIFtBTExfRklFTERfVFlQRVMudGltZXN0YW1wXTogZGVmYXVsdEZvcm1hdHRlcixcbiAgW0FMTF9GSUVMRF9UWVBFUy5pbnRlZ2VyXTogZGVmYXVsdEZvcm1hdHRlcixcbiAgW0FMTF9GSUVMRF9UWVBFUy5yZWFsXTogZGVmYXVsdEZvcm1hdHRlcixcbiAgW0FMTF9GSUVMRF9UWVBFUy5ib29sZWFuXTogZGVmYXVsdEZvcm1hdHRlcixcbiAgW0FMTF9GSUVMRF9UWVBFUy5kYXRlXTogZGVmYXVsdEZvcm1hdHRlcixcbiAgW0FMTF9GSUVMRF9UWVBFUy5nZW9qc29uXTogZCA9PlxuICAgIHR5cGVvZiBkID09PSAnc3RyaW5nJ1xuICAgICAgPyBkXG4gICAgICA6IGlzUGxhaW5PYmplY3QoZClcbiAgICAgID8gSlNPTi5zdHJpbmdpZnkoZClcbiAgICAgIDogQXJyYXkuaXNBcnJheShkKVxuICAgICAgPyBgWyR7U3RyaW5nKGQpfV1gXG4gICAgICA6ICcnLFxuICBbQUxMX0ZJRUxEX1RZUEVTLmdlb2Fycm93XTogZCA9PiBkLFxuICBbQUxMX0ZJRUxEX1RZUEVTLm9iamVjdF06IEpTT04uc3RyaW5naWZ5LFxuICBbQUxMX0ZJRUxEX1RZUEVTLmFycmF5XTogSlNPTi5zdHJpbmdpZnksXG4gIFtBTExfRklFTERfVFlQRVMuaDNdOiBkZWZhdWx0Rm9ybWF0dGVyXG59O1xuXG4vKipcbiAqIFBhcnNlIGZpZWxkIHZhbHVlIGFuZCB0eXBlIGFuZCByZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IHBhcnNlRmllbGRWYWx1ZSA9ICh2YWx1ZTogYW55LCB0eXBlOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBpZiAoIW5vdE51bGxvclVuZGVmaW5lZCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgcmV0dXJuIEZJRUxEX0RJU1BMQVlfRk9STUFUW3R5cGVdID8gRklFTERfRElTUExBWV9GT1JNQVRbdHlwZV0odmFsdWUpIDogU3RyaW5nKHZhbHVlKTtcbn07XG5cbi8qKlxuICogR2V0IHRoZSB2YWx1ZSBmb3JtYXQgYmFzZWQgb24gZmllbGQgYW5kIGZvcm1hdCBvcHRpb25zXG4gKiBVc2VkIGluIHJlbmRlciB0b29sdGlwIHZhbHVlXG4gKiBAcGFyYW0gZm9ybWF0XG4gKiBAcGFyYW0gZmllbGRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1hdHRlcihcbiAgZm9ybWF0Pzogc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IG51bGwsXG4gIGZpZWxkPzogRmllbGRcbik6IEZpZWxkRm9ybWF0dGVyIHtcbiAgaWYgKCFmb3JtYXQpIHtcbiAgICByZXR1cm4gZGVmYXVsdEZvcm1hdHRlcjtcbiAgfVxuICBjb25zdCB0b29sdGlwRm9ybWF0ID0gT2JqZWN0LnZhbHVlcyhUT09MVElQX0ZPUk1BVFMpLmZpbmQoZiA9PiBmW1RPT0xUSVBfS0VZXSA9PT0gZm9ybWF0KTtcblxuICBpZiAodG9vbHRpcEZvcm1hdCkge1xuICAgIHJldHVybiBhcHBseURlZmF1bHRGb3JtYXQodG9vbHRpcEZvcm1hdCBhcyBUb29sdGlwRm9ybWF0KTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgZm9ybWF0ID09PSAnc3RyaW5nJyAmJiBmaWVsZCkge1xuICAgIHJldHVybiBhcHBseUN1c3RvbUZvcm1hdChmb3JtYXQsIGZpZWxkKTtcbiAgfVxuXG4gIHJldHVybiBkZWZhdWx0Rm9ybWF0dGVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29sdW1uRm9ybWF0dGVyKFxuICBmaWVsZDogUGljazxGaWVsZCwgJ3R5cGUnPiAmIFBhcnRpYWw8UGljazxGaWVsZCwgJ2Zvcm1hdCcgfCAnZGlzcGxheUZvcm1hdCc+PlxuKTogRmllbGRGb3JtYXR0ZXIge1xuICBjb25zdCB7Zm9ybWF0LCBkaXNwbGF5Rm9ybWF0fSA9IGZpZWxkO1xuXG4gIGlmICghZm9ybWF0ICYmICFkaXNwbGF5Rm9ybWF0KSB7XG4gICAgcmV0dXJuIEZJRUxEX0RJU1BMQVlfRk9STUFUW2ZpZWxkLnR5cGVdO1xuICB9XG4gIGNvbnN0IHRvb2x0aXBGb3JtYXQgPSBPYmplY3QudmFsdWVzKFRPT0xUSVBfRk9STUFUUykuZmluZChmID0+IGZbVE9PTFRJUF9LRVldID09PSBkaXNwbGF5Rm9ybWF0KTtcblxuICBpZiAodG9vbHRpcEZvcm1hdCkge1xuICAgIHJldHVybiBhcHBseURlZmF1bHRGb3JtYXQodG9vbHRpcEZvcm1hdCk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGRpc3BsYXlGb3JtYXQgPT09ICdzdHJpbmcnICYmIGZpZWxkKSB7XG4gICAgcmV0dXJuIGFwcGx5Q3VzdG9tRm9ybWF0KGRpc3BsYXlGb3JtYXQsIGZpZWxkKTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgZGlzcGxheUZvcm1hdCA9PT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gYXBwbHlWYWx1ZU1hcChkaXNwbGF5Rm9ybWF0KTtcbiAgfVxuXG4gIHJldHVybiBkZWZhdWx0Rm9ybWF0dGVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlWYWx1ZU1hcChmb3JtYXQpIHtcbiAgcmV0dXJuIHYgPT4gZm9ybWF0W3ZdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlEZWZhdWx0Rm9ybWF0KHRvb2x0aXBGb3JtYXQ6IFRvb2x0aXBGb3JtYXQpOiAodjogYW55KSA9PiBzdHJpbmcge1xuICBpZiAoIXRvb2x0aXBGb3JtYXQgfHwgIXRvb2x0aXBGb3JtYXQuZm9ybWF0KSB7XG4gICAgcmV0dXJuIGRlZmF1bHRGb3JtYXR0ZXI7XG4gIH1cblxuICBzd2l0Y2ggKHRvb2x0aXBGb3JtYXQudHlwZSkge1xuICAgIGNhc2UgVE9PTFRJUF9GT1JNQVRfVFlQRVMuREVDSU1BTDpcbiAgICAgIHJldHVybiBkM0Zvcm1hdCh0b29sdGlwRm9ybWF0LmZvcm1hdCk7XG4gICAgY2FzZSBUT09MVElQX0ZPUk1BVF9UWVBFUy5EQVRFOlxuICAgIGNhc2UgVE9PTFRJUF9GT1JNQVRfVFlQRVMuREFURV9USU1FOlxuICAgICAgcmV0dXJuIGRhdGV0aW1lRm9ybWF0dGVyKG51bGwpKHRvb2x0aXBGb3JtYXQuZm9ybWF0KTtcbiAgICBjYXNlIFRPT0xUSVBfRk9STUFUX1RZUEVTLlBFUkNFTlRBR0U6XG4gICAgICByZXR1cm4gdiA9PiBgJHtkM0Zvcm1hdChUT09MVElQX0ZPUk1BVFMuREVDSU1BTF9ERUNJTUFMX0ZJWEVEXzIuZm9ybWF0KSh2KX0lYDtcbiAgICBjYXNlIFRPT0xUSVBfRk9STUFUX1RZUEVTLkJPT0xFQU46XG4gICAgICByZXR1cm4gZ2V0Qm9vbGVhbkZvcm1hdHRlcih0b29sdGlwRm9ybWF0LmZvcm1hdCk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBkZWZhdWx0Rm9ybWF0dGVyO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCb29sZWFuRm9ybWF0dGVyKGZvcm1hdDogc3RyaW5nKTogRmllbGRGb3JtYXR0ZXIge1xuICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgIGNhc2UgJzAxJzpcbiAgICAgIHJldHVybiAodjogYm9vbGVhbikgPT4gKHYgPyAnMScgOiAnMCcpO1xuICAgIGNhc2UgJ3luJzpcbiAgICAgIHJldHVybiAodjogYm9vbGVhbikgPT4gKHYgPyAneWVzJyA6ICdubycpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZGVmYXVsdEZvcm1hdHRlcjtcbiAgfVxufVxuLy8gQWxsb3cgdXNlciB0byBzcGVjaWZ5IGN1c3RvbSB0b29sdGlwIGZvcm1hdCB2aWEgY29uZmlnXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlDdXN0b21Gb3JtYXQoZm9ybWF0LCBmaWVsZDoge3R5cGU/OiBzdHJpbmd9KTogRmllbGRGb3JtYXR0ZXIge1xuICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICBjYXNlIEFMTF9GSUVMRF9UWVBFUy5yZWFsOlxuICAgIGNhc2UgQUxMX0ZJRUxEX1RZUEVTLmludGVnZXI6XG4gICAgICByZXR1cm4gZDNGb3JtYXQoZm9ybWF0KTtcbiAgICBjYXNlIEFMTF9GSUVMRF9UWVBFUy5kYXRlOlxuICAgIGNhc2UgQUxMX0ZJRUxEX1RZUEVTLnRpbWVzdGFtcDpcbiAgICAgIHJldHVybiBkYXRldGltZUZvcm1hdHRlcihudWxsKShmb3JtYXQpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdiA9PiB2O1xuICB9XG59XG5cbmZ1bmN0aW9uIGZvcm1hdExhcmdlTnVtYmVyKG4pIHtcbiAgLy8gU0ktcHJlZml4IHdpdGggNCBzaWduaWZpY2FudCBkaWdpdHNcbiAgcmV0dXJuIGQzRm9ybWF0KCcuNH5zJykobik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXROdW1iZXIobjogbnVtYmVyLCB0eXBlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBBTExfRklFTERfVFlQRVMuaW50ZWdlcjpcbiAgICAgIGlmIChuIDwgMCkge1xuICAgICAgICByZXR1cm4gYC0ke2Zvcm1hdE51bWJlcigtbiwgJ2ludGVnZXInKX1gO1xuICAgICAgfVxuICAgICAgaWYgKG4gPCAxMDAwKSB7XG4gICAgICAgIHJldHVybiBgJHtNYXRoLnJvdW5kKG4pfWA7XG4gICAgICB9XG4gICAgICBpZiAobiA8IDEwICogMTAwMCkge1xuICAgICAgICByZXR1cm4gZDNGb3JtYXQoJywnKShNYXRoLnJvdW5kKG4pKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmb3JtYXRMYXJnZU51bWJlcihuKTtcbiAgICBjYXNlIEFMTF9GSUVMRF9UWVBFUy5yZWFsOlxuICAgICAgaWYgKG4gPCAwKSB7XG4gICAgICAgIHJldHVybiBgLSR7Zm9ybWF0TnVtYmVyKC1uLCAnbnVtYmVyJyl9YDtcbiAgICAgIH1cbiAgICAgIGlmIChuIDwgMTAwMCkge1xuICAgICAgICByZXR1cm4gZDNGb3JtYXQoJy40fnInKShuKTtcbiAgICAgIH1cbiAgICAgIGlmIChuIDwgMTAgKiAxMDAwKSB7XG4gICAgICAgIHJldHVybiBkM0Zvcm1hdCgnLC4yfmYnKShuKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmb3JtYXRMYXJnZU51bWJlcihuKTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZm9ybWF0TnVtYmVyKG4sICdyZWFsJyk7XG4gIH1cbn1cblxuY29uc3QgdHJhbnNmb3JtYXRpb24gPSB7XG4gIFk6IE1hdGgucG93KDEwLCAyNCksXG4gIFo6IE1hdGgucG93KDEwLCAyMSksXG4gIEU6IE1hdGgucG93KDEwLCAxOCksXG4gIFA6IE1hdGgucG93KDEwLCAxNSksXG4gIFQ6IE1hdGgucG93KDEwLCAxMiksXG4gIEc6IE1hdGgucG93KDEwLCA5KSxcbiAgTTogTWF0aC5wb3coMTAsIDYpLFxuICBrOiBNYXRoLnBvdygxMCwgMyksXG4gIGg6IE1hdGgucG93KDEwLCAyKSxcbiAgZGE6IE1hdGgucG93KDEwLCAxKSxcbiAgZDogTWF0aC5wb3coMTAsIC0xKSxcbiAgYzogTWF0aC5wb3coMTAsIC0yKSxcbiAgbTogTWF0aC5wb3coMTAsIC0zKSxcbiAgzrw6IE1hdGgucG93KDEwLCAtNiksXG4gIG46IE1hdGgucG93KDEwLCAtOSksXG4gIHA6IE1hdGgucG93KDEwLCAtMTIpLFxuICBmOiBNYXRoLnBvdygxMCwgLTE1KSxcbiAgYTogTWF0aC5wb3coMTAsIC0xOCksXG4gIHo6IE1hdGgucG93KDEwLCAtMjEpLFxuICB5OiBNYXRoLnBvdygxMCwgLTI0KVxufTtcblxuLyoqXG4gKiBDb252ZXJ0IGEgZm9ybWF0dGVkIG51bWJlciBmcm9tIHN0cmluZyBiYWNrIHRvIG51bWJlclxuICovXG5leHBvcnQgZnVuY3Rpb24gcmV2ZXJzZUZvcm1hdE51bWJlcihzdHI6IHN0cmluZyk6IG51bWJlciB7XG4gIGxldCByZXR1cm5WYWx1ZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIGNvbnN0IHN0ck51bSA9IHN0ci50cmltKCkucmVwbGFjZSgvLC9nLCAnJyk7XG4gIE9iamVjdC5lbnRyaWVzKHRyYW5zZm9ybWF0aW9uKS5mb3JFYWNoKGQgPT4ge1xuICAgIGlmIChzdHJOdW0uaW5jbHVkZXMoZFswXSkpIHtcbiAgICAgIHJldHVyblZhbHVlID0gcGFyc2VGbG9hdChzdHJOdW0pICogZFsxXTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH0pO1xuXG4gIC8vIGlmIG5vIHRyYW5zZm9ybWVyIGZvdW5kLCBjb252ZXJ0IHRvIG51YmVyIHJlZ2FyZGxlc3NcbiAgcmV0dXJuIHJldHVyblZhbHVlID09PSBudWxsID8gTnVtYmVyKHN0ck51bSkgOiByZXR1cm5WYWx1ZTtcbn1cblxuLyoqXG4gKiBGb3JtYXQgZXBvY2ggbWlsbGlzZWNvbmRzIHdpdGggYSBmb3JtYXQgc3RyaW5nXG4gKiBAdHlwZSB0aW1lem9uZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGF0ZXRpbWVGb3JtYXR0ZXIoXG4gIHRpbWV6b25lPzogc3RyaW5nIHwgbnVsbFxuKTogKGZvcm1hdD86IHN0cmluZykgPT4gKHRzOiBudW1iZXIpID0+IHN0cmluZyB7XG4gIHJldHVybiB0aW1lem9uZVxuICAgID8gZm9ybWF0ID0+IHRzID0+IG1vbWVudC51dGModHMpLnR6KHRpbWV6b25lKS5mb3JtYXQoZm9ybWF0KVxuICAgIDogLy8gcmV0dXJuIGVtcHR5IHN0cmluZyBpbnN0ZWFkIG9mICdJbnZhbGlkIGRhdGUnIGlmIHRzIGlzIHVuZGVmaW5lZC9udWxsXG4gICAgICBmb3JtYXQgPT4gdHMgPT4gdHMgPyBtb21lbnQudXRjKHRzKS5mb3JtYXQoZm9ybWF0KSA6ICcnO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFNBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGVBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQU9BLElBQUFJLFlBQUEsR0FBQUosT0FBQTtBQUdBLElBQUFLLEtBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE1BQUEsR0FBQU4sT0FBQTtBQUFzQyxJQUFBTyxxQkFBQSxFQWxCdEM7QUFDQTtBQXFCQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLElBQU1DLFlBQVksR0FBQUMsT0FBQSxDQUFBRCxZQUFBLEdBQUcsSUFBSTtBQUN6QixJQUFNRSxZQUFZLEdBQUFELE9BQUEsQ0FBQUMsWUFBQSxHQUFHLENBQUMsSUFBSTtBQUMxQixJQUFNQyxhQUFhLEdBQUFGLE9BQUEsQ0FBQUUsYUFBQSxHQUFHLEdBQUc7QUFDekIsSUFBTUMsYUFBYSxHQUFBSCxPQUFBLENBQUFHLGFBQUEsR0FBRyxDQUFDLEdBQUc7O0FBRWpDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0MsZ0JBQWdCQSxDQUFDQyxRQUE0QixFQUFVO0VBQ3JFLE9BQU9DLGtC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MkMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztFQUNwQnFGLENBQUMsRUFBRWhJLElBQUksQ0FBQzJDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7RUFDcEJzRixDQUFDLEVBQUVqSSxJQUFJLENBQUMyQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRTtBQUNyQixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNPLFNBQVN1RixtQkFBbUJBLENBQUNDLEdBQVcsRUFBVTtFQUN2RCxJQUFJQyxXQUEwQixHQUFHLElBQUk7RUFDckMsSUFBTUMsTUFBTSxHQUFHRixHQUFHLENBQUNHLElBQUksQ0FBQyxDQUFDLENBQUNDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO0VBQzNDM0csTUFBTSxDQUFDNEcsT0FBTyxDQUFDdkIsY0FBYyxDQUFDLENBQUNwSSxPQUFPLENBQUMsVUFBQVUsQ0FBQyxFQUFJO0lBQzFDLElBQUk4SSxNQUFNLENBQUNJLFFBQVEsQ0FBQ2xKLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO01BQ3pCNkksV0FBVyxHQUFHTSxVQUFVLENBQUNMLE1BQU0sQ0FBQyxHQUFHOUksQ0FBQyxDQUFDLENBQUMsQ0FBQztNQUN2QyxPQUFPLElBQUk7SUFDYjtJQUNBLE9BQU8sS0FBSztFQUNkLENBQUMsQ0FBQzs7RUFFRjtFQUNBLE9BQU82SSxXQUFXLEtBQUssSUFBSSxHQUFHNUksTUFBTSxDQUFDNkksTUFBTSxDQUFDLEdBQUdELFdBQVc7QUFDNUQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTM0IsaUJBQWlCQSxDQUMvQmtDLFFBQXdCLEVBQ3FCO0VBQzdDLE9BQU9BLFFBQVEsR0FDWCxVQUFBeEgsTUFBTTtJQUFBLE9BQUksVUFBQXlILEVBQUU7TUFBQSxPQUFJeEgsMEJBQU0sQ0FBQ0MsR0FBRyxDQUFDdUgsRUFBRSxDQUFDLENBQUNDLEVBQUUsQ0FBQ0YsUUFBUSxDQUFDLENBQUN4SCxNQUFNLENBQUNBLE1BQU0sQ0FBQztJQUFBO0VBQUE7RUFDMUQ7RUFDQSxVQUFBQSxNQUFNO0lBQUEsT0FBSSxVQUFBeUgsRUFBRTtNQUFBLE9BQUlBLEVBQUUsR0FBR3hILDBCQUFNLENBQUNDLEdBQUcsQ0FBQ3VILEVBQUUsQ0FBQyxDQUFDekgsTUFBTSxDQUFDQSxNQUFNLENBQUMsR0FBRyxFQUFFO0lBQUE7RUFBQTtBQUM3RCIsImlnbm9yZUxpc3QiOltdfQ==
|
501
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZDNGb3JtYXQiLCJfbW9tZW50VGltZXpvbmUiLCJfY29uc3RhbnRzIiwiX2NvbW1vblV0aWxzIiwiX3Bsb3QiLCJfdXRpbHMiLCJfRklFTERfRElTUExBWV9GT1JNQVQiLCJNQVhfTEFUSVRVREUiLCJleHBvcnRzIiwiTUlOX0xBVElUVURFIiwiTUFYX0xPTkdJVFVERSIsIk1JTl9MT05HSVRVREUiLCJ2YWxpZGF0ZUxhdGl0dWRlIiwibGF0aXR1ZGUiLCJ2YWxpZGF0ZUNvb3JkaW5hdGUiLCJ2YWxpZGF0ZUxvbmdpdHVkZSIsImxvbmdpdHVkZSIsInZhbHVlIiwibWluVmFsdWUiLCJtYXhWYWx1ZSIsInVuaXF1ZSIsInZhbHVlcyIsInJlc3VsdHMiLCJ1bmlxdWVTZXQiLCJTZXQiLCJmb3JFYWNoIiwidiIsIm5vdE51bGxvclVuZGVmaW5lZCIsInB1c2giLCJnZXRMYXRMbmdCb3VuZHMiLCJwb2ludHMiLCJpZHgiLCJsaW1pdCIsImxhdHMiLCJtYXAiLCJkIiwiTnVtYmVyIiwiQXJyYXkiLCJpc0FycmF5IiwiZmlsdGVyIiwiaXNGaW5pdGUiLCJzb3J0IiwibnVtYmVyU29ydCIsImxlbmd0aCIsIk1hdGgiLCJtYXgiLCJtaW4iLCJjbGFtcCIsIl9yZWYiLCJfcmVmMiIsIl9zbGljZWRUb0FycmF5MiIsInZhbCIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsImdldFNhbXBsZURhdGEiLCJkYXRhIiwic2FtcGxlU2l6ZSIsImdldFZhbHVlIiwic2FtcGxlU3RlcCIsImZsb29yIiwib3V0cHV0IiwiaSIsInRpbWVUb1VuaXhNaWxsaSIsImZvcm1hdCIsIm1vbWVudCIsInV0YyIsInZhbHVlT2YiLCJEYXRlIiwiaXNOdW1iZXIiLCJoYXNPd25Qcm9wZXJ0eSIsIm9iaiIsInByb3AiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJjYWxsIiwiYSIsImIiLCJnZXRTb3J0aW5nRnVuY3Rpb24iLCJmaWVsZFR5cGUiLCJBTExfRklFTERfVFlQRVMiLCJyZWFsIiwiaW50ZWdlciIsInRpbWVzdGFtcCIsInByZWNpc2VSb3VuZCIsIm51bSIsImRlY2ltYWxzIiwidCIsInBvdyIsInJvdW5kIiwic2lnbiIsInRvRml4ZWQiLCJyb3VuZFRvRm91ciIsImNvbmNhdCIsImdldFJvdW5kaW5nRGVjaW1hbEZyb21TdGVwIiwic3RlcCIsImlzTmFOIiwiYXNzZXJ0Iiwic3RlcFN0ciIsInRvU3RyaW5nIiwic3BsaXRFeHBvbmVudGlhbCIsInNwbGl0IiwiY29lZmZaZXJvIiwiY29lZmZEZWNpbWFsIiwicGFyc2VJbnQiLCJzcGxpdFplcm8iLCJub3JtYWxpemVTbGlkZXJWYWx1ZSIsIm1hcmtzIiwic25hcFRvTWFya3MiLCJyb3VuZFZhbFRvU3RlcCIsImRlY2ltYWwiLCJzdGVwcyIsInJlbWFpbiIsImNsb3Nlc3QiLCJyb3VuZGVkIiwiZGVmYXVsdEZvcm1hdHRlciIsIlN0cmluZyIsImZsb2F0Rm9ybWF0dGVyIiwiRklFTERfRElTUExBWV9GT1JNQVQiLCJfZGVmaW5lUHJvcGVydHkyIiwic3RyaW5nIiwiZGF0ZSIsImdlb2pzb24iLCJpc1BsYWluT2JqZWN0IiwiSlNPTiIsInN0cmluZ2lmeSIsImdlb2Fycm93Iiwib2JqZWN0IiwiZSIsImFycmF5IiwiaDMiLCJwYXJzZUZpZWxkVmFsdWUiLCJ0eXBlIiwiZ2V0Rm9ybWF0dGVyIiwiZmllbGQiLCJ0b29sdGlwRm9ybWF0IiwiVE9PTFRJUF9GT1JNQVRTIiwiZmluZCIsImYiLCJUT09MVElQX0tFWSIsImFwcGx5RGVmYXVsdEZvcm1hdCIsImFwcGx5Q3VzdG9tRm9ybWF0IiwiZ2V0Q29sdW1uRm9ybWF0dGVyIiwiZGlzcGxheUZvcm1hdCIsIl90eXBlb2YyIiwiYXBwbHlWYWx1ZU1hcCIsIlRPT0xUSVBfRk9STUFUX1RZUEVTIiwiREVDSU1BTCIsImQzRm9ybWF0IiwiREFURSIsIkRBVEVfVElNRSIsImRhdGV0aW1lRm9ybWF0dGVyIiwiUEVSQ0VOVEFHRSIsIkRFQ0lNQUxfREVDSU1BTF9GSVhFRF8yIiwiQk9PTEVBTiIsImdldEJvb2xlYW5Gb3JtYXR0ZXIiLCJmb3JtYXRMYXJnZU51bWJlciIsIm4iLCJmb3JtYXROdW1iZXIiLCJ0cmFuc2Zvcm1hdGlvbiIsIlkiLCJaIiwiRSIsIlAiLCJUIiwiRyIsIk0iLCJrIiwiaCIsImRhIiwiYyIsIm0iLCLOvCIsInAiLCJ6IiwieSIsInJldmVyc2VGb3JtYXROdW1iZXIiLCJzdHIiLCJyZXR1cm5WYWx1ZSIsInN0ck51bSIsInRyaW0iLCJyZXBsYWNlIiwiZW50cmllcyIsImluY2x1ZGVzIiwicGFyc2VGbG9hdCIsInRpbWV6b25lIiwidHMiLCJ0eiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRhLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7Zm9ybWF0IGFzIGQzRm9ybWF0fSBmcm9tICdkMy1mb3JtYXQnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQtdGltZXpvbmUnO1xuXG5pbXBvcnQge1xuICBBTExfRklFTERfVFlQRVMsXG4gIFRPT0xUSVBfRk9STUFUUyxcbiAgVE9PTFRJUF9GT1JNQVRfVFlQRVMsXG4gIFRPT0xUSVBfS0VZLFxuICBUb29sdGlwRm9ybWF0XG59IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7bm90TnVsbG9yVW5kZWZpbmVkfSBmcm9tICdAa2VwbGVyLmdsL2NvbW1vbi11dGlscyc7XG5pbXBvcnQge0ZpZWxkLCBNaWxsaXNlY29uZH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbmltcG9ydCB7c25hcFRvTWFya3N9IGZyb20gJy4vcGxvdCc7XG5pbXBvcnQge2lzUGxhaW5PYmplY3R9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgdHlwZSBGaWVsZEZvcm1hdHRlciA9ICh2YWx1ZTogYW55KSA9PiBzdHJpbmc7XG5cbi8vIFdlIG5lZWQgdGhyZWF0IGxhdGl0dWRlIGRpZmZlcmVudGx5IG90aGVyd2lzZSBtYXJjYXRvciBwcm9qZWN0IHZpZXcgdGhyb3dzXG4vLyBhIHByb2plY3Rpb24gbWF0cml4IGVycm9yXG4vLyBVbmNhdWdodCBFcnJvcjogUGl4ZWwgcHJvamVjdCBtYXRyaXggbm90IGludmVydGlibGVcbi8vIGF0IFdlYk1lcmNhdG9yVmlld3BvcnQxNi5WaWV3cG9ydDYgKHZpZXdwb3J0LmpzOjgxOjEzKVxuZXhwb3J0IGNvbnN0IE1BWF9MQVRJVFVERSA9IDg5Ljk7XG5leHBvcnQgY29uc3QgTUlOX0xBVElUVURFID0gLTg5Ljk7XG5leHBvcnQgY29uc3QgTUFYX0xPTkdJVFVERSA9IDE4MDtcbmV4cG9ydCBjb25zdCBNSU5fTE9OR0lUVURFID0gLTE4MDtcblxuLyoqXG4gKiBWYWxpZGF0ZXMgYSBsYXRpdHVkZSB2YWx1ZS5cbiAqIEVuc3VyZXMgdGhhdCB0aGUgbGF0aXR1ZGUgaXMgd2l0aGluIHRoZSBkZWZpbmVkIG1pbmltdW0gYW5kIG1heGltdW0gbGF0aXR1ZGUgYm91bmRzLlxuICogSWYgdGhlIHZhbHVlIGlzIG91dCBvZiBib3VuZHMsIGl0IHJldHVybnMgdGhlIG5lYXJlc3QgYm91bmQgdmFsdWUuXG4gKiBAcGFyYW0gbGF0aXR1ZGUgLSBUaGUgbGF0aXR1ZGUgdmFsdWUgdG8gdmFsaWRhdGUuXG4gKiBAcmV0dXJucyBUaGUgdmFsaWRhdGVkIGxhdGl0dWRlIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVMYXRpdHVkZShsYXRpdHVkZTogbnVtYmVyIHwgdW5kZWZpbmVkKTogbnVtYmVyIHtcbiAgcmV0dXJuIHZhbGlkYXRlQ29vcmRpbmF0ZShsYXRpdHVkZSA/PyAwLCBNSU5fTEFUSVRVREUsIE1BWF9MQVRJVFVERSk7XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIGEgbG9uZ2l0dWRlIHZhbHVlLlxuICogRW5zdXJlcyB0aGF0IHRoZSBsb25naXR1ZGUgaXMgd2l0aGluIHRoZSBkZWZpbmVkIG1pbmltdW0gYW5kIG1heGltdW0gbG9uZ2l0dWRlIGJvdW5kcy5cbiAqIElmIHRoZSB2YWx1ZSBpcyBvdXQgb2YgYm91bmRzLCBpdCByZXR1cm5zIHRoZSBuZWFyZXN0IGJvdW5kIHZhbHVlLlxuICogQHBhcmFtIGxvbmdpdHVkZSAtIFRoZSBsb25naXR1ZGUgdmFsdWUgdG8gdmFsaWRhdGUuXG4gKiBAcmV0dXJucyBUaGUgdmFsaWRhdGVkIGxvbmdpdHVkZSB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlTG9uZ2l0dWRlKGxvbmdpdHVkZTogbnVtYmVyIHwgdW5kZWZpbmVkKTogbnVtYmVyIHtcbiAgcmV0dXJuIHZhbGlkYXRlQ29vcmRpbmF0ZShsb25naXR1ZGUgPz8gMCwgTUlOX0xPTkdJVFVERSwgTUFYX0xPTkdJVFVERSk7XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIGEgY29vcmRpbmF0ZSB2YWx1ZS5cbiAqIEVuc3VyZXMgdGhhdCB0aGUgdmFsdWUgaXMgd2l0aGluIHRoZSBzcGVjaWZpZWQgbWluaW11bSBhbmQgbWF4aW11bSBib3VuZHMuXG4gKiBJZiB0aGUgdmFsdWUgaXMgb3V0IG9mIGJvdW5kcywgaXQgcmV0dXJucyB0aGUgbmVhcmVzdCBib3VuZCB2YWx1ZS5cbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBjb29yZGluYXRlIHZhbHVlIHRvIHZhbGlkYXRlLlxuICogQHBhcmFtIG1pblZhbHVlIC0gVGhlIG1pbmltdW0gYm91bmQgZm9yIHRoZSB2YWx1ZS5cbiAqIEBwYXJhbSBtYXhWYWx1ZSAtIFRoZSBtYXhpbXVtIGJvdW5kIGZvciB0aGUgdmFsdWUuXG4gKiBAcmV0dXJucyBUaGUgdmFsaWRhdGVkIGNvb3JkaW5hdGUgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUNvb3JkaW5hdGUodmFsdWU6IG51bWJlciwgbWluVmFsdWU6IG51bWJlciwgbWF4VmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gIGlmICh2YWx1ZSA8PSBtaW5WYWx1ZSkge1xuICAgIHJldHVybiBtaW5WYWx1ZTtcbiAgfVxuICBpZiAodmFsdWUgPj0gbWF4VmFsdWUpIHtcbiAgICByZXR1cm4gbWF4VmFsdWU7XG4gIH1cblxuICByZXR1cm4gdmFsdWU7XG59XG5cbi8qKlxuICogc2ltcGxlIGdldHRpbmcgdW5pcXVlIHZhbHVlcyBvZiBhbiBhcnJheVxuICpcbiAqIEBwYXJhbSB2YWx1ZXNcbiAqIEByZXR1cm5zIHVuaXF1ZSB2YWx1ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVuaXF1ZTxUPih2YWx1ZXM6IFRbXSkge1xuICBjb25zdCByZXN1bHRzOiBUW10gPSBbXTtcbiAgY29uc3QgdW5pcXVlU2V0ID0gbmV3IFNldCh2YWx1ZXMpO1xuICB1bmlxdWVTZXQuZm9yRWFjaCh2ID0+IHtcbiAgICBpZiAobm90TnVsbG9yVW5kZWZpbmVkKHYpKSB7XG4gICAgICByZXN1bHRzLnB1c2godik7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHJlc3VsdHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMYXRMbmdCb3VuZHMoXG4gIHBvaW50czogbnVtYmVyW11bXSxcbiAgaWR4OiBudW1iZXIsXG4gIGxpbWl0OiBbbnVtYmVyLCBudW1iZXJdXG4pOiBbbnVtYmVyLCBudW1iZXJdIHwgbnVsbCB7XG4gIGNvbnN0IGxhdHMgPSBwb2ludHNcbiAgICAubWFwKGQgPT4gTnVtYmVyKEFycmF5LmlzQXJyYXkoZCkpICYmIGRbaWR4XSlcbiAgICAuZmlsdGVyKE51bWJlci5pc0Zpbml0ZSlcbiAgICAuc29ydChudW1iZXJTb3J0KTtcblxuICBpZiAoIWxhdHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBjbGFtcCB0byBsaW1pdFxuICByZXR1cm4gW01hdGgubWF4KGxhdHNbMF0sIGxpbWl0WzBdKSwgTWF0aC5taW4obGF0c1tsYXRzLmxlbmd0aCAtIDFdLCBsaW1pdFsxXSldO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xhbXAoW21pbiwgbWF4XTogW251bWJlciwgbnVtYmVyXSwgdmFsID0gMCk6IG51bWJlciB7XG4gIHJldHVybiB2YWwgPD0gbWluID8gbWluIDogdmFsID49IG1heCA/IG1heCA6IHZhbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNhbXBsZURhdGEoZGF0YSwgc2FtcGxlU2l6ZSA9IDUwMCwgZ2V0VmFsdWUgPSBkID0+IGQpIHtcbiAgY29uc3Qgc2FtcGxlU3RlcCA9IE1hdGgubWF4KE1hdGguZmxvb3IoZGF0YS5sZW5ndGggLyBzYW1wbGVTaXplKSwgMSk7XG4gIGNvbnN0IG91dHB1dDogYW55W10gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSArPSBzYW1wbGVTdGVwKSB7XG4gICAgb3V0cHV0LnB1c2goZ2V0VmFsdWUoZGF0YVtpXSkpO1xuICB9XG5cbiAgcmV0dXJuIG91dHB1dDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGRpZmZlcmVudCB0aW1lIGZvcm1hdCB0byB1bml4IG1pbGxpc2Vjb25kc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdGltZVRvVW5peE1pbGxpKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBEYXRlLCBmb3JtYXQ6IHN0cmluZyk6IE1pbGxpc2Vjb25kIHwgbnVsbCB7XG4gIGlmIChub3ROdWxsb3JVbmRlZmluZWQodmFsdWUpKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBtb21lbnQudXRjKHZhbHVlLCBmb3JtYXQpLnZhbHVlT2YoKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBmb3JtYXQgPT09ICd4JyA/IHZhbHVlICogMTAwMCA6IHZhbHVlO1xuICAgIH1cbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICByZXR1cm4gdmFsdWUudmFsdWVPZigpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBXaGV0aGVyIGQgaXMgYSBudW1iZXIsIHRoaXMgZmlsdGVyZWQgb3V0IE5hTiBhcyB3ZWxsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc051bWJlcihkOiB1bmtub3duKTogZCBpcyBudW1iZXIge1xuICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKGQpO1xufVxuXG4vKipcbiAqIHdoZXRoZXIgb2JqZWN0IGhhcyBwcm9wZXJ0eVxuICogQHBhcmFtIHtzdHJpbmd9IHByb3BcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHllcyBvciBub1xuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzT3duUHJvcGVydHk8WCBleHRlbmRzIG9iamVjdCwgWSBleHRlbmRzIFByb3BlcnR5S2V5PihcbiAgb2JqOiBYLFxuICBwcm9wOiBZXG4pOiBvYmogaXMgWCAmIFJlY29yZDxZLCB1bmtub3duPiB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG51bWJlclNvcnQoYTogbnVtYmVyLCBiOiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gYSAtIGI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTb3J0aW5nRnVuY3Rpb24oZmllbGRUeXBlOiBzdHJpbmcpOiB0eXBlb2YgbnVtYmVyU29ydCB8IHVuZGVmaW5lZCB7XG4gIHN3aXRjaCAoZmllbGRUeXBlKSB7XG4gICAgY2FzZSBBTExfRklFTERfVFlQRVMucmVhbDpcbiAgICBjYXNlIEFMTF9GSUVMRF9UWVBFUy5pbnRlZ2VyOlxuICAgIGNhc2UgQUxMX0ZJRUxEX1RZUEVTLnRpbWVzdGFtcDpcbiAgICAgIHJldHVybiBudW1iZXJTb3J0O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogcm91bmQgbnVtYmVyIHdpdGggZXhhY3QgbnVtYmVyIG9mIGRlY2ltYWxzXG4gKiByZXR1cm4gYXMgYSBzdHJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByZWNpc2VSb3VuZChudW06IG51bWJlciwgZGVjaW1hbHM6IG51bWJlcik6IHN0cmluZyB7XG4gIGNvbnN0IHQgPSBNYXRoLnBvdygxMCwgZGVjaW1hbHMpO1xuICByZXR1cm4gKFxuICAgIE1hdGgucm91bmQoXG4gICAgICBudW0gKiB0ICsgKGRlY2ltYWxzID4gMCA/IDEgOiAwKSAqIChNYXRoLnNpZ24obnVtKSAqICgxMCAvIE1hdGgucG93KDEwMCwgZGVjaW1hbHMpKSlcbiAgICApIC8gdFxuICApLnRvRml4ZWQoZGVjaW1hbHMpO1xufVxuXG4vKipcbiAqIHJvdW5kIGEgZ2l2aW5nIG51bWJlciBhdCBtb3N0IDQgZGVjaW1hbCBwbGFjZXNcbiAqIGUuZy4gMTAgLT4gMTAsIDEuMTIzNDUgLT4gMS4yMzQ1LCAyLjAgLT4gMlxuICovXG5leHBvcnQgZnVuY3Rpb24gcm91bmRUb0ZvdXIobnVtOiBudW1iZXIpOiBudW1iZXIge1xuICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gIHJldHVybiBOdW1iZXIoYCR7TWF0aC5yb3VuZChgJHtudW19ZSs0YCl9ZS00YCk7XG59XG4vKipcbiAqIGdldCBudW1iZXIgb2YgZGVjaW1hbHMgdG8gcm91bmQgdG8gZm9yIHNsaWRlciBmcm9tIHN0ZXBcbiAqIEBwYXJhbSBzdGVwXG4gKiBAcmV0dXJucy0gbnVtYmVyIG9mIGRlY2ltYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJvdW5kaW5nRGVjaW1hbEZyb21TdGVwKHN0ZXA6IG51bWJlcik6IG51bWJlciB7XG4gIGlmIChpc05hTihzdGVwKSkge1xuICAgIGFzc2VydCgnc3RlcCBpcyBub3QgYSBudW1iZXInKTtcbiAgICBhc3NlcnQoc3RlcCk7XG4gIH1cblxuICBjb25zdCBzdGVwU3RyID0gc3RlcC50b1N0cmluZygpO1xuXG4gIC8vIGluIGNhc2UgdGhlIHN0ZXAgaXMgYSB2ZXJ5IHNtYWxsIG51bWJlciBlLmcuIDFlLTcsIHJldHVybiBkZWNpbWFsIGUuZy4gNyBkaXJlY3RseVxuICBjb25zdCBzcGxpdEV4cG9uZW50aWFsID0gc3RlcFN0ci5zcGxpdCgnZS0nKTtcbiAgaWYgKHNwbGl0RXhwb25lbnRpYWwubGVuZ3RoID09PSAyKSB7XG4gICAgY29uc3QgY29lZmZaZXJvID0gc3BsaXRFeHBvbmVudGlhbFswXS5zcGxpdCgnLicpO1xuICAgIGNvbnN0IGNvZWZmRGVjaW1hbCA9IGNvZWZmWmVyby5sZW5ndGggPT09IDEgPyAwIDogY29lZmZaZXJvWzFdLmxlbmd0aDtcbiAgICByZXR1cm4gcGFyc2VJbnQoc3BsaXRFeHBvbmVudGlhbFsxXSwgMTApICsgY29lZmZEZWNpbWFsO1xuICB9XG5cbiAgY29uc3Qgc3BsaXRaZXJvID0gc3RlcFN0ci5zcGxpdCgnLicpO1xuICBpZiAoc3BsaXRaZXJvLmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiAwO1xuICB9XG4gIHJldHVybiBzcGxpdFplcm9bMV0ubGVuZ3RoO1xufVxuXG4vKipcbiAqIElmIG1hcmtzIGlzIHByb3ZpZGVkLCBzbmFwIHRvIG1hcmtzLCBpZiBub3Qgbm9ybWFsaXplIHRvIHN0ZXBcbiAqIEBwYXJhbSB2YWxcbiAqIEBwYXJhbSBtaW5WYWx1ZVxuICogQHBhcmFtIHN0ZXBcbiAqIEBwYXJhbSBtYXJrc1xuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplU2xpZGVyVmFsdWUoXG4gIHZhbDogbnVtYmVyLFxuICBtaW5WYWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICBzdGVwOiBudW1iZXIsXG4gIG1hcmtzPzogbnVtYmVyW10gfCBudWxsXG4pOiBudW1iZXIge1xuICBpZiAobWFya3MgJiYgbWFya3MubGVuZ3RoKSB7XG4gICAgLy8gVXNlIGluIHNsaWRlciwgZ2l2ZW4gYSBudW1iZXIgYW5kIGFuIGFycmF5IG9mIG51bWJlcnMsIHJldHVybiB0aGUgbmVhcnMgbnVtYmVyIGZyb20gdGhlIGFycmF5XG4gICAgcmV0dXJuIHNuYXBUb01hcmtzKHZhbCwgbWFya3MpO1xuICB9XG5cbiAgcmV0dXJuIHJvdW5kVmFsVG9TdGVwKG1pblZhbHVlLCBzdGVwLCB2YWwpO1xufVxuXG4vKipcbiAqIHJvdW5kIHRoZSB2YWx1ZSB0byBzdGVwIGZvciB0aGUgc2xpZGVyXG4gKiBAcGFyYW0gbWluVmFsdWVcbiAqIEBwYXJhbSBzdGVwXG4gKiBAcGFyYW0gdmFsXG4gKiBAcmV0dXJucyAtIHJvdW5kZWQgbnVtYmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByb3VuZFZhbFRvU3RlcChtaW5WYWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkLCBzdGVwOiBudW1iZXIsIHZhbDogbnVtYmVyKTogbnVtYmVyIHtcbiAgaWYgKCFpc051bWJlcihzdGVwKSB8fCAhaXNOdW1iZXIobWluVmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbDtcbiAgfVxuXG4gIGNvbnN0IGRlY2ltYWwgPSBnZXRSb3VuZGluZ0RlY2ltYWxGcm9tU3RlcChzdGVwKTtcbiAgY29uc3Qgc3RlcHMgPSBNYXRoLmZsb29yKCh2YWwgLSBtaW5WYWx1ZSkgLyBzdGVwKTtcbiAgbGV0IHJlbWFpbiA9IHZhbCAtIChzdGVwcyAqIHN0ZXAgKyBtaW5WYWx1ZSk7XG5cbiAgLy8gaGFzIHRvIHJvdW5kIGJlY2F1c2UgamF2YXNjcmlwdCB0dXJucyAwLjEgaW50byAwLjk5OTk5OTk5OTk5OTk5ODdcbiAgcmVtYWluID0gTnVtYmVyKHByZWNpc2VSb3VuZChyZW1haW4sIDgpKTtcblxuICBsZXQgY2xvc2VzdDogbnVtYmVyO1xuICBpZiAocmVtYWluID09PSAwKSB7XG4gICAgY2xvc2VzdCA9IHZhbDtcbiAgfSBlbHNlIGlmIChyZW1haW4gPCBzdGVwIC8gMikge1xuICAgIGNsb3Nlc3QgPSBzdGVwcyAqIHN0ZXAgKyBtaW5WYWx1ZTtcbiAgfSBlbHNlIHtcbiAgICBjbG9zZXN0ID0gKHN0ZXBzICsgMSkgKiBzdGVwICsgbWluVmFsdWU7XG4gIH1cblxuICAvLyBwcmVjaXNlIHJvdW5kIHJldHVybiBhIHN0cmluZyByb3VuZGVkIHRvIHRoZSBkZWZpbmVkIGRlY2ltYWxcbiAgY29uc3Qgcm91bmRlZCA9IHByZWNpc2VSb3VuZChjbG9zZXN0LCBkZWNpbWFsKTtcblxuICByZXR1cm4gTnVtYmVyKHJvdW5kZWQpO1xufVxuXG4vKipcbiAqIEdldCB0aGUgdmFsdWUgZm9ybWF0IGJhc2VkIG9uIGZpZWxkIGFuZCBmb3JtYXQgb3B0aW9uc1xuICogVXNlZCBpbiByZW5kZXIgdG9vbHRpcCB2YWx1ZVxuICovXG5leHBvcnQgY29uc3QgZGVmYXVsdEZvcm1hdHRlcjogRmllbGRGb3JtYXR0ZXIgPSB2ID0+IChub3ROdWxsb3JVbmRlZmluZWQodikgPyBTdHJpbmcodikgOiAnJyk7XG5cbmV4cG9ydCBjb25zdCBmbG9hdEZvcm1hdHRlciA9IHYgPT4gKGlzTnVtYmVyKHYpID8gU3RyaW5nKHJvdW5kVG9Gb3VyKHYpKSA6ICcnKTtcblxuZXhwb3J0IGNvbnN0IEZJRUxEX0RJU1BMQVlfRk9STUFUOiB7XG4gIFtrZXk6IHN0cmluZ106IEZpZWxkRm9ybWF0dGVyO1xufSA9IHtcbiAgW0FMTF9GSUVMRF9UWVBFUy5zdHJpbmddOiBkZWZhdWx0Rm9ybWF0dGVyLFxuICBbQUxMX0ZJRUxEX1RZUEVTLnRpbWVzdGFtcF06IGRlZmF1bHRGb3JtYXR0ZXIsXG4gIFtBTExfRklFTERfVFlQRVMuaW50ZWdlcl06IGRlZmF1bHRGb3JtYXR0ZXIsXG4gIFtBTExfRklFTERfVFlQRVMucmVhbF06IGRlZmF1bHRGb3JtYXR0ZXIsXG4gIFtBTExfRklFTERfVFlQRVMuYm9vbGVhbl06IGRlZmF1bHRGb3JtYXR0ZXIsXG4gIFtBTExfRklFTERfVFlQRVMuZGF0ZV06IGRlZmF1bHRGb3JtYXR0ZXIsXG4gIFtBTExfRklFTERfVFlQRVMuZ2VvanNvbl06IGQgPT5cbiAgICB0eXBlb2YgZCA9PT0gJ3N0cmluZydcbiAgICAgID8gZFxuICAgICAgOiBpc1BsYWluT2JqZWN0KGQpXG4gICAgICA/IEpTT04uc3RyaW5naWZ5KGQpXG4gICAgICA6IEFycmF5LmlzQXJyYXkoZClcbiAgICAgID8gYFske1N0cmluZyhkKX1dYFxuICAgICAgOiAnJyxcbiAgW0FMTF9GSUVMRF9UWVBFUy5nZW9hcnJvd106IGQgPT4gZCxcbiAgW0FMTF9GSUVMRF9UWVBFUy5vYmplY3RdOiAodmFsdWU6IGFueSkgPT4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy5hcnJheV06IEpTT04uc3RyaW5naWZ5LFxuICBbQUxMX0ZJRUxEX1RZUEVTLmgzXTogZGVmYXVsdEZvcm1hdHRlclxufTtcblxuLyoqXG4gKiBQYXJzZSBmaWVsZCB2YWx1ZSBhbmQgdHlwZSBhbmQgcmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBwYXJzZUZpZWxkVmFsdWUgPSAodmFsdWU6IGFueSwgdHlwZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKCFub3ROdWxsb3JVbmRlZmluZWQodmFsdWUpKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIC8vIEJpZ0ludCB2YWx1ZXMgY2Fubm90IGJlIHNlcmlhbGl6ZWQgd2l0aCBKU09OLnN0cmluZ2lmeSgpIGRpcmVjdGx5XG4gIC8vIFdlIG5lZWQgdG8gZXhwbGljaXRseSBjb252ZXJ0IHRoZW0gdG8gc3RyaW5ncyB1c2luZyAudG9TdHJpbmcoKVxuICAvLyBTZWU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0JpZ0ludCN1c2Vfd2l0aGluX2pzb25cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2JpZ2ludCcpIHtcbiAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTtcbiAgfVxuICByZXR1cm4gRklFTERfRElTUExBWV9GT1JNQVRbdHlwZV0gPyBGSUVMRF9ESVNQTEFZX0ZPUk1BVFt0eXBlXSh2YWx1ZSkgOiBTdHJpbmcodmFsdWUpO1xufTtcblxuLyoqXG4gKiBHZXQgdGhlIHZhbHVlIGZvcm1hdCBiYXNlZCBvbiBmaWVsZCBhbmQgZm9ybWF0IG9wdGlvbnNcbiAqIFVzZWQgaW4gcmVuZGVyIHRvb2x0aXAgdmFsdWVcbiAqIEBwYXJhbSBmb3JtYXRcbiAqIEBwYXJhbSBmaWVsZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybWF0dGVyKFxuICBmb3JtYXQ/OiBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgbnVsbCxcbiAgZmllbGQ/OiBGaWVsZFxuKTogRmllbGRGb3JtYXR0ZXIge1xuICBpZiAoIWZvcm1hdCkge1xuICAgIHJldHVybiBkZWZhdWx0Rm9ybWF0dGVyO1xuICB9XG4gIGNvbnN0IHRvb2x0aXBGb3JtYXQgPSBPYmplY3QudmFsdWVzKFRPT0xUSVBfRk9STUFUUykuZmluZChmID0+IGZbVE9PTFRJUF9LRVldID09PSBmb3JtYXQpO1xuXG4gIGlmICh0b29sdGlwRm9ybWF0KSB7XG4gICAgcmV0dXJuIGFwcGx5RGVmYXVsdEZvcm1hdCh0b29sdGlwRm9ybWF0IGFzIFRvb2x0aXBGb3JtYXQpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBmb3JtYXQgPT09ICdzdHJpbmcnICYmIGZpZWxkKSB7XG4gICAgcmV0dXJuIGFwcGx5Q3VzdG9tRm9ybWF0KGZvcm1hdCwgZmllbGQpO1xuICB9XG5cbiAgcmV0dXJuIGRlZmF1bHRGb3JtYXR0ZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb2x1bW5Gb3JtYXR0ZXIoXG4gIGZpZWxkOiBQaWNrPEZpZWxkLCAndHlwZSc+ICYgUGFydGlhbDxQaWNrPEZpZWxkLCAnZm9ybWF0JyB8ICdkaXNwbGF5Rm9ybWF0Jz4+XG4pOiBGaWVsZEZvcm1hdHRlciB7XG4gIGNvbnN0IHtmb3JtYXQsIGRpc3BsYXlGb3JtYXR9ID0gZmllbGQ7XG5cbiAgaWYgKCFmb3JtYXQgJiYgIWRpc3BsYXlGb3JtYXQpIHtcbiAgICByZXR1cm4gRklFTERfRElTUExBWV9GT1JNQVRbZmllbGQudHlwZV07XG4gIH1cbiAgY29uc3QgdG9vbHRpcEZvcm1hdCA9IE9iamVjdC52YWx1ZXMoVE9PTFRJUF9GT1JNQVRTKS5maW5kKGYgPT4gZltUT09MVElQX0tFWV0gPT09IGRpc3BsYXlGb3JtYXQpO1xuXG4gIGlmICh0b29sdGlwRm9ybWF0KSB7XG4gICAgcmV0dXJuIGFwcGx5RGVmYXVsdEZvcm1hdCh0b29sdGlwRm9ybWF0KTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgZGlzcGxheUZvcm1hdCA9PT0gJ3N0cmluZycgJiYgZmllbGQpIHtcbiAgICByZXR1cm4gYXBwbHlDdXN0b21Gb3JtYXQoZGlzcGxheUZvcm1hdCwgZmllbGQpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBkaXNwbGF5Rm9ybWF0ID09PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBhcHBseVZhbHVlTWFwKGRpc3BsYXlGb3JtYXQpO1xuICB9XG5cbiAgcmV0dXJuIGRlZmF1bHRGb3JtYXR0ZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVZhbHVlTWFwKGZvcm1hdCkge1xuICByZXR1cm4gdiA9PiBmb3JtYXRbdl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseURlZmF1bHRGb3JtYXQodG9vbHRpcEZvcm1hdDogVG9vbHRpcEZvcm1hdCk6ICh2OiBhbnkpID0+IHN0cmluZyB7XG4gIGlmICghdG9vbHRpcEZvcm1hdCB8fCAhdG9vbHRpcEZvcm1hdC5mb3JtYXQpIHtcbiAgICByZXR1cm4gZGVmYXVsdEZvcm1hdHRlcjtcbiAgfVxuXG4gIHN3aXRjaCAodG9vbHRpcEZvcm1hdC50eXBlKSB7XG4gICAgY2FzZSBUT09MVElQX0ZPUk1BVF9UWVBFUy5ERUNJTUFMOlxuICAgICAgcmV0dXJuIGQzRm9ybWF0KHRvb2x0aXBGb3JtYXQuZm9ybWF0KTtcbiAgICBjYXNlIFRPT0xUSVBfRk9STUFUX1RZUEVTLkRBVEU6XG4gICAgY2FzZSBUT09MVElQX0ZPUk1BVF9UWVBFUy5EQVRFX1RJTUU6XG4gICAgICByZXR1cm4gZGF0ZXRpbWVGb3JtYXR0ZXIobnVsbCkodG9vbHRpcEZvcm1hdC5mb3JtYXQpO1xuICAgIGNhc2UgVE9PTFRJUF9GT1JNQVRfVFlQRVMuUEVSQ0VOVEFHRTpcbiAgICAgIHJldHVybiB2ID0+IGAke2QzRm9ybWF0KFRPT0xUSVBfRk9STUFUUy5ERUNJTUFMX0RFQ0lNQUxfRklYRURfMi5mb3JtYXQpKHYpfSVgO1xuICAgIGNhc2UgVE9PTFRJUF9GT1JNQVRfVFlQRVMuQk9PTEVBTjpcbiAgICAgIHJldHVybiBnZXRCb29sZWFuRm9ybWF0dGVyKHRvb2x0aXBGb3JtYXQuZm9ybWF0KTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGRlZmF1bHRGb3JtYXR0ZXI7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJvb2xlYW5Gb3JtYXR0ZXIoZm9ybWF0OiBzdHJpbmcpOiBGaWVsZEZvcm1hdHRlciB7XG4gIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgY2FzZSAnMDEnOlxuICAgICAgcmV0dXJuICh2OiBib29sZWFuKSA9PiAodiA/ICcxJyA6ICcwJyk7XG4gICAgY2FzZSAneW4nOlxuICAgICAgcmV0dXJuICh2OiBib29sZWFuKSA9PiAodiA/ICd5ZXMnIDogJ25vJyk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBkZWZhdWx0Rm9ybWF0dGVyO1xuICB9XG59XG4vLyBBbGxvdyB1c2VyIHRvIHNwZWNpZnkgY3VzdG9tIHRvb2x0aXAgZm9ybWF0IHZpYSBjb25maWdcbmV4cG9ydCBmdW5jdGlvbiBhcHBseUN1c3RvbUZvcm1hdChmb3JtYXQsIGZpZWxkOiB7dHlwZT86IHN0cmluZ30pOiBGaWVsZEZvcm1hdHRlciB7XG4gIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgIGNhc2UgQUxMX0ZJRUxEX1RZUEVTLnJlYWw6XG4gICAgY2FzZSBBTExfRklFTERfVFlQRVMuaW50ZWdlcjpcbiAgICAgIHJldHVybiBkM0Zvcm1hdChmb3JtYXQpO1xuICAgIGNhc2UgQUxMX0ZJRUxEX1RZUEVTLmRhdGU6XG4gICAgY2FzZSBBTExfRklFTERfVFlQRVMudGltZXN0YW1wOlxuICAgICAgcmV0dXJuIGRhdGV0aW1lRm9ybWF0dGVyKG51bGwpKGZvcm1hdCk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB2ID0+IHY7XG4gIH1cbn1cblxuZnVuY3Rpb24gZm9ybWF0TGFyZ2VOdW1iZXIobikge1xuICAvLyBTSS1wcmVmaXggd2l0aCA0IHNpZ25pZmljYW50IGRpZ2l0c1xuICByZXR1cm4gZDNGb3JtYXQoJy40fnMnKShuKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdE51bWJlcihuOiBudW1iZXIsIHR5cGU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIEFMTF9GSUVMRF9UWVBFUy5pbnRlZ2VyOlxuICAgICAgaWYgKG4gPCAwKSB7XG4gICAgICAgIHJldHVybiBgLSR7Zm9ybWF0TnVtYmVyKC1uLCAnaW50ZWdlcicpfWA7XG4gICAgICB9XG4gICAgICBpZiAobiA8IDEwMDApIHtcbiAgICAgICAgcmV0dXJuIGAke01hdGgucm91bmQobil9YDtcbiAgICAgIH1cbiAgICAgIGlmIChuIDwgMTAgKiAxMDAwKSB7XG4gICAgICAgIHJldHVybiBkM0Zvcm1hdCgnLCcpKE1hdGgucm91bmQobikpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZvcm1hdExhcmdlTnVtYmVyKG4pO1xuICAgIGNhc2UgQUxMX0ZJRUxEX1RZUEVTLnJlYWw6XG4gICAgICBpZiAobiA8IDApIHtcbiAgICAgICAgcmV0dXJuIGAtJHtmb3JtYXROdW1iZXIoLW4sICdudW1iZXInKX1gO1xuICAgICAgfVxuICAgICAgaWYgKG4gPCAxMDAwKSB7XG4gICAgICAgIHJldHVybiBkM0Zvcm1hdCgnLjR+cicpKG4pO1xuICAgICAgfVxuICAgICAgaWYgKG4gPCAxMCAqIDEwMDApIHtcbiAgICAgICAgcmV0dXJuIGQzRm9ybWF0KCcsLjJ+ZicpKG4pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZvcm1hdExhcmdlTnVtYmVyKG4pO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmb3JtYXROdW1iZXIobiwgJ3JlYWwnKTtcbiAgfVxufVxuXG5jb25zdCB0cmFuc2Zvcm1hdGlvbiA9IHtcbiAgWTogTWF0aC5wb3coMTAsIDI0KSxcbiAgWjogTWF0aC5wb3coMTAsIDIxKSxcbiAgRTogTWF0aC5wb3coMTAsIDE4KSxcbiAgUDogTWF0aC5wb3coMTAsIDE1KSxcbiAgVDogTWF0aC5wb3coMTAsIDEyKSxcbiAgRzogTWF0aC5wb3coMTAsIDkpLFxuICBNOiBNYXRoLnBvdygxMCwgNiksXG4gIGs6IE1hdGgucG93KDEwLCAzKSxcbiAgaDogTWF0aC5wb3coMTAsIDIpLFxuICBkYTogTWF0aC5wb3coMTAsIDEpLFxuICBkOiBNYXRoLnBvdygxMCwgLTEpLFxuICBjOiBNYXRoLnBvdygxMCwgLTIpLFxuICBtOiBNYXRoLnBvdygxMCwgLTMpLFxuICDOvDogTWF0aC5wb3coMTAsIC02KSxcbiAgbjogTWF0aC5wb3coMTAsIC05KSxcbiAgcDogTWF0aC5wb3coMTAsIC0xMiksXG4gIGY6IE1hdGgucG93KDEwLCAtMTUpLFxuICBhOiBNYXRoLnBvdygxMCwgLTE4KSxcbiAgejogTWF0aC5wb3coMTAsIC0yMSksXG4gIHk6IE1hdGgucG93KDEwLCAtMjQpXG59O1xuXG4vKipcbiAqIENvbnZlcnQgYSBmb3JtYXR0ZWQgbnVtYmVyIGZyb20gc3RyaW5nIGJhY2sgdG8gbnVtYmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXZlcnNlRm9ybWF0TnVtYmVyKHN0cjogc3RyaW5nKTogbnVtYmVyIHtcbiAgbGV0IHJldHVyblZhbHVlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgY29uc3Qgc3RyTnVtID0gc3RyLnRyaW0oKS5yZXBsYWNlKC8sL2csICcnKTtcbiAgT2JqZWN0LmVudHJpZXModHJhbnNmb3JtYXRpb24pLmZvckVhY2goZCA9PiB7XG4gICAgaWYgKHN0ck51bS5pbmNsdWRlcyhkWzBdKSkge1xuICAgICAgcmV0dXJuVmFsdWUgPSBwYXJzZUZsb2F0KHN0ck51bSkgKiBkWzFdO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfSk7XG5cbiAgLy8gaWYgbm8gdHJhbnNmb3JtZXIgZm91bmQsIGNvbnZlcnQgdG8gbnViZXIgcmVnYXJkbGVzc1xuICByZXR1cm4gcmV0dXJuVmFsdWUgPT09IG51bGwgPyBOdW1iZXIoc3RyTnVtKSA6IHJldHVyblZhbHVlO1xufVxuXG4vKipcbiAqIEZvcm1hdCBlcG9jaCBtaWxsaXNlY29uZHMgd2l0aCBhIGZvcm1hdCBzdHJpbmdcbiAqIEB0eXBlIHRpbWV6b25lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYXRldGltZUZvcm1hdHRlcihcbiAgdGltZXpvbmU/OiBzdHJpbmcgfCBudWxsXG4pOiAoZm9ybWF0Pzogc3RyaW5nKSA9PiAodHM6IG51bWJlcikgPT4gc3RyaW5nIHtcbiAgcmV0dXJuIHRpbWV6b25lXG4gICAgPyBmb3JtYXQgPT4gdHMgPT4gbW9tZW50LnV0Yyh0cykudHoodGltZXpvbmUpLmZvcm1hdChmb3JtYXQpXG4gICAgOiAvLyByZXR1cm4gZW1wdHkgc3RyaW5nIGluc3RlYWQgb2YgJ0ludmFsaWQgZGF0ZScgaWYgdHMgaXMgdW5kZWZpbmVkL251bGxcbiAgICAgIGZvcm1hdCA9PiB0cyA9PiB0cyA/IG1vbWVudC51dGModHMpLmZvcm1hdChmb3JtYXQpIDogJyc7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsZUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFB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
|
package/dist/dataset-utils.js
CHANGED
@@ -271,10 +271,12 @@ function validateInputData(data) {
|
|
271
271
|
analyzerType: meta[i].analyzerType
|
272
272
|
});
|
273
273
|
});
|
274
|
-
return {
|
274
|
+
return _objectSpread({
|
275
275
|
fields: updatedFields,
|
276
276
|
rows: rows
|
277
|
-
}
|
277
|
+
}, cols ? {
|
278
|
+
cols: cols
|
279
|
+
} : {});
|
278
280
|
}
|
279
281
|
function findNonEmptyRowsAtField(rows, fieldIdx, total) {
|
280
282
|
var sample = [];
|
@@ -310,4 +312,4 @@ var getFormatLabels = exports.getFormatLabels = function getFormatLabels(fields,
|
|
310
312
|
})) === null || _fields$find === void 0 ? void 0 : _fields$find.type;
|
311
313
|
return getFieldFormatLabels(fieldType);
|
312
314
|
};
|
313
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9jb21tb25VdGlscyIsIl90eXBlQW5hbHl6ZXIiLCJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl91dGlscyIsIl9kYXRhVXRpbHMiLCJfZm9ybWF0IiwiX2NvbG9yVXRpbHMiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl9tYXJrZWQiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiZ2VuZXJhdGVDb2xvciIsImRhdGFzZXRDb2xvcnMiLCJtYXAiLCJoZXhUb1JnYiIsImluZGV4Iiwid3JhcCIsImdlbmVyYXRlQ29sb3IkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInN0b3AiLCJkYXRhc2V0Q29sb3JNYWtlciIsImV4cG9ydHMiLCJFWENMVURFRF9ERUZBVUxUX0ZJRUxEUyIsIk1FVFJJQ19ERUZBVUxUX0ZJRUxEUyIsImZpbmREZWZhdWx0Q29sb3JGaWVsZCIsIl9yZWYiLCJmaWVsZHMiLCJfcmVmJGZpZWxkUGFpcnMiLCJmaWVsZFBhaXJzIiwiZmllbGRzV2l0aG91dEV4Y2x1ZGVkIiwiZmllbGQiLCJ0eXBlIiwiQUxMX0ZJRUxEX1RZUEVTIiwicmVhbCIsImludGVnZXIiLCJmaW5kIiwicGFpciIsImxhdCIsInZhbHVlIiwibmFtZSIsImxuZyIsIm5vcm1hbGl6ZWRGaWVsZE5hbWUiLCJ0b0xvd2VyQ2FzZSIsImhhc0V4Y2x1ZGVkIiwiZiIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsImhhc0luY2x1c2lvbiIsInNvcnRlZEZpZWxkcyIsInNvcnQiLCJsZWZ0IiwicmlnaHQiLCJub3JtYWxpemVkTGVmdCIsIm5vcm1hbGl6ZWRSaWdodCIsImxlZnRIYXNJbmNsdXNpb24iLCJmaW5kSW5kZXgiLCJyaWdodEhhc0luY2x1c2lvbiIsInZhbGlkYXRlSW5wdXREYXRhIiwiZGF0YSIsImlzUGxhaW5PYmplY3QiLCJhc3NlcnQiLCJBcnJheSIsImlzQXJyYXkiLCJyb3dzIiwiY29scyIsImFsbFZhbGlkIiwiZXZlcnkiLCJpIiwiY29uY2F0IiwiX3R5cGVvZjIiLCJzdHJpbmciLCJKU09OIiwic3RyaW5naWZ5IiwiYW5hbHl6ZXJUeXBlIiwidGltZXN0YW1wIiwic2FtcGxlIiwiZmluZE5vbkVtcHR5Um93c0F0RmllbGQiLCJ0cyIsImFuYWx5emVkVHlwZSIsIkFuYWx5emVyIiwiY29tcHV0ZUNvbE1ldGEiLCJjYXRlZ29yeSIsImZvcm1hdCIsIml0ZW0iLCJoM0lzVmFsaWQiLCJzYW1wbGVEYXRhIiwiZ2V0U2FtcGxlRm9yVHlwZUFuYWx5emUiLCJmaWVsZE9yZGVyIiwibWV0YSIsImdldEZpZWxkc0Zyb21EYXRhIiwidXBkYXRlZEZpZWxkcyIsImZpZWxkSWR4IiwidG90YWwiLCJfcm93cyRpIiwibm90TnVsbG9yVW5kZWZpbmVkIiwiVElNRV9ESVNQTEFZIiwiYWRkVGltZUxhYmVsIiwiZm9ybWF0cyIsImxhYmVsIiwiVE9PTFRJUF9GT1JNQVRfVFlQRVMiLCJEQVRFX1RJTUUiLCJEQVRFIiwiZ2V0Rm9ybWF0dGVyIiwiZ2V0Rm9ybWF0VmFsdWUiLCJnZXRGaWVsZEZvcm1hdExhYmVscyIsImZpZWxkVHlwZSIsInRvb2x0aXBUeXBlcyIsIkZJRUxEX09QVFMiLCJ0b29sdGlwIiwiZm9ybWF0TGFiZWxzIiwidmFsdWVzIiwiVE9PTFRJUF9GT1JNQVRTIiwiaW5jbHVkZXMiLCJnZXRGb3JtYXRMYWJlbHMiLCJmaWVsZE5hbWUiLCJfZmllbGRzJGZpbmQiXSwic291cmNlcyI6WyIuLi9zcmMvZGF0YXNldC11dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge1xuICBBTExfRklFTERfVFlQRVMsXG4gIEZJRUxEX09QVFMsXG4gIFRPT0xUSVBfRk9STUFUUyxcbiAgVE9PTFRJUF9GT1JNQVRfVFlQRVNcbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtnZXRTYW1wbGVGb3JUeXBlQW5hbHl6ZSwgZ2V0RmllbGRzRnJvbURhdGF9IGZyb20gJ0BrZXBsZXIuZ2wvY29tbW9uLXV0aWxzJztcbmltcG9ydCB7QW5hbHl6ZXJ9IGZyb20gJ3R5cGUtYW5hbHl6ZXInO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQge1xuICBQcm9jZXNzb3JSZXN1bHQsXG4gIFJHQkNvbG9yLFxuICBGaWVsZCxcbiAgRmllbGRQYWlyLFxuICBUaW1lTGFiZWxGb3JtYXQsXG4gIFRvb2x0aXBGaWVsZHMsXG4gIFByb3RvRGF0YXNldFxufSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7VG9vbHRpcEZvcm1hdH0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtub3ROdWxsb3JVbmRlZmluZWQsIGgzSXNWYWxpZH0gZnJvbSAnQGtlcGxlci5nbC9jb21tb24tdXRpbHMnO1xuXG5pbXBvcnQge2lzUGxhaW5PYmplY3R9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHtnZXRGb3JtYXR0ZXJ9IGZyb20gJy4vZGF0YS11dGlscyc7XG5pbXBvcnQge2dldEZvcm1hdFZhbHVlfSBmcm9tICcuL2Zvcm1hdCc7XG5pbXBvcnQge2hleFRvUmdifSBmcm9tICcuL2NvbG9yLXV0aWxzJztcblxuLy8gYXBwbHkgYSBjb2xvciBmb3IgZWFjaCBkYXRhc2V0XG4vLyB0byB1c2UgYXMgbGFiZWwgY29sb3JzXG5jb25zdCBkYXRhc2V0Q29sb3JzID0gW1xuICAnIzhGMkZCRicsXG4gICcjMDA1Q0ZGJyxcbiAgJyNDMDZDODQnLFxuICAnI0Y4QjE5NScsXG4gICcjNTQ3QTgyJyxcbiAgJyMzRUFDQTgnLFxuICAnI0EyRDRBQidcbl0ubWFwKGhleFRvUmdiKTtcblxuLyoqXG4gKiBSYW5kb20gY29sb3IgZ2VuZXJhdG9yXG4gKi9cbmZ1bmN0aW9uKiBnZW5lcmF0ZUNvbG9yKCk6IEdlbmVyYXRvcjxSR0JDb2xvcj4ge1xuICBsZXQgaW5kZXggPSAwO1xuICB3aGlsZSAoaW5kZXggPCBkYXRhc2V0Q29sb3JzLmxlbmd0aCArIDEpIHtcbiAgICBpZiAoaW5kZXggPT09IGRhdGFzZXRDb2xvcnMubGVuZ3RoKSB7XG4gICAgICBpbmRleCA9IDA7XG4gICAgfVxuICAgIHlpZWxkIGRhdGFzZXRDb2xvcnNbaW5kZXgrK107XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGRhdGFzZXRDb2xvck1ha2VyID0gZ2VuZXJhdGVDb2xvcigpO1xuXG4vKipcbiAqIEZpZWxkIG5hbWUgcHJlZml4ZXMgYW5kIHN1ZmZpeGVzIHdoaWNoIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZFxuICogYXMgbWV0cmljcy4gRmllbGRzIHdpbGwgc3RpbGwgYmUgaW5jbHVkZWQgaWYgYSAnbWV0cmljIHdvcmQnXG4gKiBpcyBmb3VuZCBvbiB0aGUgZmllbGQgbmFtZSwgaG93ZXZlci5cbiAqL1xuY29uc3QgRVhDTFVERURfREVGQVVMVF9GSUVMRFMgPSBbXG4gIC8vIFNlcmlhbCBudW1iZXJzIGFuZCBpZGVudGlmaWNhdGlvbiBudW1iZXJzXG4gICdfaWQnLFxuICAnaWQnLFxuICAnaW5kZXgnLFxuICAndXVpZCcsXG4gICdndWlkJyxcbiAgJ3VpZCcsXG4gICdnaWQnLFxuICAnc2VyaWFsJyxcbiAgLy8gR2VvZ3JhcGhpYyBJRHMgYXJlIHVubGlrZWx5IHRvIGJlIGludGVyZXN0aW5nIHRvIGNvbG9yXG4gICd6aXAnLFxuICAnY29kZScsXG4gICdwb3N0JyxcbiAgJ3JlZ2lvbicsXG4gICdmaXBzJyxcbiAgJ2NiZ3MnLFxuICAnaDMnLFxuICAnczInLFxuICAvLyBHZW9ncmFwaGljIGNvb3JkcyAoYnV0IG5vdCB6L2VsZXZhdGlvbi9hbHRpdHVkZVxuICAvLyBzaW5jZSB0aGF0IG1pZ2h0IGJlIGEgbWV0cmljKVxuICAnbGF0JyxcbiAgJ2xvbicsXG4gICdsbmcnLFxuICAnbGF0aXR1ZGUnLFxuICAnbG9uZ2l0dWRlJyxcbiAgJ194JyxcbiAgJ195J1xuXTtcblxuLyoqXG4gKiBQcmVmaXhlcyBhbmQgc3VmZml4ZXMgdGhhdCBpbmRpY2F0ZSBhIGZpZWxkIGlzIGEgbWV0cmljLlxuICpcbiAqIE5vdGUgdGhhdCB0aGVzZSBhcmUgaW4gb3JkZXIgb2YgcHJlZmVyZW5jZSwgZmlyc3QgYmVpbmdcbiAqIG1vc3QgcHJlZmVycmVkLlxuICovXG5jb25zdCBNRVRSSUNfREVGQVVMVF9GSUVMRFMgPSBbXG4gICdtZXRyaWMnLFxuICAndmFsdWUnLFxuICAnc3VtJyxcbiAgJ2NvdW50JyxcbiAgJ3VuaXF1ZScsXG4gICdtZWFuJyxcbiAgJ21vZGUnLFxuICAnbWVkaWFuJyxcbiAgJ21heCcsXG4gICdtaW4nLFxuICAnZGV2aWF0aW9uJyxcbiAgJ3ZhcmlhbmNlJyxcbiAgJ3A5OScsXG4gICdwOTUnLFxuICAncDc1JyxcbiAgJ3A1MCcsXG4gICdwMjUnLFxuICAncDA1JyxcbiAgLy8gQWJicmV2aWF0aW9ucyBhcmUgbGVzcyBwcmVmZXJyZWRcbiAgJ2NudCcsXG4gICd2YWwnXG5dO1xuXG4vKipcbiAqIENob29zZSBhIGZpZWxkIHRvIHVzZSBhcyB0aGUgZGVmYXVsdCBjb2xvciBmaWVsZCBvZiBhIGxheWVyLlxuICpcbiAqIFRoZSBoZXVyaXN0aWMgaXM6XG4gKlxuICogRmlyc3QsIGV4Y2x1ZGUgZmllbGRzIHRoYXQgYXJlIG9uIHRoZSBleGNsdXNpb24gbGlzdCBhbmQgZG9uJ3RcbiAqIGhhdmUgbmFtZXMgdGhhdCBzdWdnZXN0IHRoZXkgY29udGFpbiBtZXRyaWNzLiBBbHNvIGV4Y2x1ZGVcbiAqIGZpZWxkIG5hbWVzIHRoYXQgYXJlIGJsYW5rLlxuICpcbiAqIE5leHQsIGxvb2sgZm9yIGEgZmllbGQgdGhhdCBpcyBvZiByZWFsIHR5cGUgYW5kIGNvbnRhaW5zIG9uZVxuICogb2YgdGhlIHByZWZlcnJlZCBuYW1lcyAoaW4gb3JkZXIgb2YgdGhlIHByZWZlcnJlZCBuYW1lcykuXG4gKlxuICogTmV4dCwgbG9vayBmb3IgYSBmaWVsZCB0aGF0IGlzIG9mIGludGVnZXIgdHlwZSBhbmQgY29udGFpbnNcbiAqIG9uZSBvZiB0aGUgcHJlZmVycmVkIG5hbWVzIChpbiBvcmRlciBvZiB0aGUgcHJlZmVycmVkIG5hbWVzKS5cbiAqXG4gKiBOZXh0LCBsb29rIGZvciB0aGUgZmlyc3QgZmllbGQgdGhhdCBpcyBvZiByZWFsIHR5cGUgKGluIG9yZGVyXG4gKiBvZiBmaWVsZCBpbmRleCkuXG4gKlxuICogTmV4dCwgbG9vayBmb3IgdGhlIGZpcnN0IGZpZWxkIHRoYXQgaXMgb2YgaW50ZWdlciB0eXBlIChpblxuICogb3JkZXIgb2YgZmllbGQgaW5kZXgpLlxuICpcbiAqIEl0J3MgcG9zc2libGUgbm8gZmllbGQgd2lsbCBiZSBjaG9zZW4gKGkuZS4gYmVjYXVzZSBhbGwgZmllbGRzXG4gKiBhcmUgc3RyaW5ncy4pXG4gKlxuICogQHBhcmFtIGRhdGFzZXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmREZWZhdWx0Q29sb3JGaWVsZCh7XG4gIGZpZWxkcyxcbiAgZmllbGRQYWlycyA9IFtdXG59OiB7XG4gIGZpZWxkczogRmllbGRbXTtcbiAgZmllbGRQYWlyczogRmllbGRQYWlyW107XG59KTogbnVsbCB8IEZpZWxkIHtcbiAgY29uc3QgZmllbGRzV2l0aG91dEV4Y2x1ZGVkID0gZmllbGRzLmZpbHRlcihmaWVsZCA9PiB7XG4gICAgaWYgKGZpZWxkLnR5cGUgIT09IEFMTF9GSUVMRF9UWVBFUy5yZWFsICYmIGZpZWxkLnR5cGUgIT09IEFMTF9GSUVMRF9UWVBFUy5pbnRlZ2VyKSB7XG4gICAgICAvLyBPbmx5IHNlbGVjdCBudW1lcmljIGZpZWxkcy5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgZmllbGRQYWlycy5maW5kKFxuICAgICAgICBwYWlyID0+IHBhaXIucGFpci5sYXQudmFsdWUgPT09IGZpZWxkLm5hbWUgfHwgcGFpci5wYWlyLmxuZy52YWx1ZSA9PT0gZmllbGQubmFtZVxuICAgICAgKVxuICAgICkge1xuICAgICAgLy8gRG8gbm90IHBlcm1pdCBsYXQsIGxvbiBmaWVsZHNcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBub3JtYWxpemVkRmllbGROYW1lID0gZmllbGQubmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChub3JtYWxpemVkRmllbGROYW1lID09PSAnJykge1xuICAgICAgLy8gU3BlY2lhbCBjYXNlIGV4Y2x1ZGVkIG5hbWUgd2hlbiB0aGUgbmFtZSBpcyBibGFuay5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgaGFzRXhjbHVkZWQgPSBFWENMVURFRF9ERUZBVUxUX0ZJRUxEUy5maW5kKFxuICAgICAgZiA9PiBub3JtYWxpemVkRmllbGROYW1lLnN0YXJ0c1dpdGgoZikgfHwgbm9ybWFsaXplZEZpZWxkTmFtZS5lbmRzV2l0aChmKVxuICAgICk7XG4gICAgY29uc3QgaGFzSW5jbHVzaW9uID0gTUVUUklDX0RFRkFVTFRfRklFTERTLmZpbmQoXG4gICAgICBmID0+IG5vcm1hbGl6ZWRGaWVsZE5hbWUuc3RhcnRzV2l0aChmKSB8fCBub3JtYWxpemVkRmllbGROYW1lLmVuZHNXaXRoKGYpXG4gICAgKTtcbiAgICByZXR1cm4gIWhhc0V4Y2x1ZGVkIHx8IGhhc0luY2x1c2lvbjtcbiAgfSk7XG5cbiAgY29uc3Qgc29ydGVkRmllbGRzID0gZmllbGRzV2l0aG91dEV4Y2x1ZGVkLnNvcnQoKGxlZnQsIHJpZ2h0KSA9PiB7XG4gICAgY29uc3Qgbm9ybWFsaXplZExlZnQgPSBsZWZ0Lm5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBub3JtYWxpemVkUmlnaHQgPSByaWdodC5uYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgbGVmdEhhc0luY2x1c2lvbiA9IE1FVFJJQ19ERUZBVUxUX0ZJRUxEUy5maW5kSW5kZXgoXG4gICAgICBmID0+IG5vcm1hbGl6ZWRMZWZ0LnN0YXJ0c1dpdGgoZikgfHwgbm9ybWFsaXplZExlZnQuZW5kc1dpdGgoZilcbiAgICApO1xuICAgIGNvbnN0IHJpZ2h0SGFzSW5jbHVzaW9uID0gTUVUUklDX0RFRkFVTFRfRklFTERTLmZpbmRJbmRleChcbiAgICAgIGYgPT4gbm9ybWFsaXplZFJpZ2h0LnN0YXJ0c1dpdGgoZikgfHwgbm9ybWFsaXplZFJpZ2h0LmVuZHNXaXRoKGYpXG4gICAgKTtcbiAgICBpZiAobGVmdEhhc0luY2x1c2lvbiAhPT0gcmlnaHRIYXNJbmNsdXNpb24pIHtcbiAgICAgIGlmIChsZWZ0SGFzSW5jbHVzaW9uID09PSAtMSkge1xuICAgICAgICAvLyBFbGVtZW50cyB0aGF0IGRvIG5vdCBoYXZlIHRoZSBpbmNsdXNpb24gbGlzdCBzaG91bGQgZ28gYWZ0ZXIgdGhvc2UgdGhhdCBkby5cbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9IGVsc2UgaWYgKHJpZ2h0SGFzSW5jbHVzaW9uID09PSAtMSkge1xuICAgICAgICAvLyBFbGVtZW50cyB0aGF0IGRvIGhhdmUgdGhlIGluY2x1c2lvbiBsaXN0IHNob3VsZCBnbyBiZWZvcmUgdGhvc2UgdGhhdCBkb24ndC5cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgLy8gQ29tcGFyZSBiYXNlZCBvbiBvcmRlciBpbiB0aGUgaW5jbHVzaW9uIGxpc3RcbiAgICAgIHJldHVybiBsZWZ0SGFzSW5jbHVzaW9uIC0gcmlnaHRIYXNJbmNsdXNpb247XG4gICAgfVxuXG4gICAgLy8gQ29tcGFyZSBiYXNlZCBvbiB0eXBlXG4gICAgaWYgKGxlZnQudHlwZSAhPT0gcmlnaHQudHlwZSkge1xuICAgICAgaWYgKGxlZnQudHlwZSA9PT0gQUxMX0ZJRUxEX1RZUEVTLnJlYWwpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgLy8gbGVmdCBpcyBhbiBpbnRlZ2VyIGFuZCByaWdodCBpcyBub3RcbiAgICAgIC8vIGFuZCByZWFscyBjb21lIGJlZm9yZSBpbnRlZ2Vyc1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgLy8gRmluYWxseSwgb3JkZXIgYmFzZWQgb24gdGhlIG9yZGVyIGluIHRoZSBkYXRhc2V0cyBjb2x1bW5zXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIHJldHVybiBsZWZ0LmluZGV4IC0gcmlnaHQuaW5kZXg7XG4gIH0pO1xuXG4gIGlmIChzb3J0ZWRGaWVsZHMubGVuZ3RoKSB7XG4gICAgLy8gVGhlcmUgd2FzIGEgYmVzdCBtYXRjaFxuICAgIHJldHVybiBzb3J0ZWRGaWVsZHNbMF07XG4gIH1cbiAgLy8gTm8gbWF0Y2hlc1xuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBpbnB1dCBkYXRhLCBhZGRpbmcgbWlzc2luZyBmaWVsZCB0eXBlcywgcmVuYW1lIGR1cGxpY2F0ZSBjb2x1bW5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUlucHV0RGF0YShkYXRhOiBQcm90b0RhdGFzZXRbJ2RhdGEnXSk6IFByb2Nlc3NvclJlc3VsdCB7XG4gIGlmICghaXNQbGFpbk9iamVjdChkYXRhKSkge1xuICAgIGFzc2VydCgnYWRkRGF0YVRvTWFwIEVycm9yOiBkYXRhc2V0LmRhdGEgY2Fubm90IGJlIG51bGwnKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSBlbHNlIGlmICghQXJyYXkuaXNBcnJheShkYXRhLmZpZWxkcykpIHtcbiAgICBhc3NlcnQoJ2FkZERhdGFUb01hcCBFcnJvcjogZXhwZWN0IGRhdGFzZXQuZGF0YS5maWVsZHMgdG8gYmUgYW4gYXJyYXknKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSBlbHNlIGlmICghQXJyYXkuaXNBcnJheShkYXRhLnJvd3MpKSB7XG4gICAgYXNzZXJ0KCdhZGREYXRhVG9NYXAgRXJyb3I6IGV4cGVjdCBkYXRhc2V0LmRhdGEucm93cyB0byBiZSBhbiBhcnJheScpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3Qge2ZpZWxkcywgcm93cywgY29sc30gPSBkYXRhO1xuXG4gIC8vIGNoZWNrIGlmIGFsbCBmaWVsZHMgaGFzIG5hbWUsIGZvcm1hdCBhbmQgdHlwZVxuICBjb25zdCBhbGxWYWxpZCA9IGZpZWxkcy5ldmVyeSgoZiwgaSkgPT4ge1xuICAgIGlmICghaXNQbGFpbk9iamVjdChmKSkge1xuICAgICAgYXNzZXJ0KGBmaWVsZHMgbmVlZHMgdG8gYmUgYW4gYXJyYXkgb2Ygb2JqZWN0LCBidXQgZmluZCAke3R5cGVvZiBmfWApO1xuICAgICAgZmllbGRzW2ldID0ge25hbWU6IGBjb2x1bW5fJHtpfWAsIHR5cGU6IEFMTF9GSUVMRF9UWVBFUy5zdHJpbmd9O1xuICAgIH1cblxuICAgIGlmICghZi5uYW1lKSB7XG4gICAgICBhc3NlcnQoYGZpZWxkLm5hbWUgaXMgcmVxdWlyZWQgYnV0IG1pc3NpbmcgaW4gJHtKU09OLnN0cmluZ2lmeShmKX1gKTtcbiAgICAgIC8vIGFzc2lnbiBhIG5hbWVcbiAgICAgIGZpZWxkc1tpXS5uYW1lID0gYGNvbHVtbl8ke2l9YDtcbiAgICB9XG5cbiAgICBpZiAoIWYudHlwZSB8fCAhQUxMX0ZJRUxEX1RZUEVTW2YudHlwZV0pIHtcbiAgICAgIGFzc2VydChgdW5rbm93biBmaWVsZCB0eXBlICR7Zi50eXBlfWApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghZmllbGRzLmV2ZXJ5KGZpZWxkID0+IGZpZWxkLmFuYWx5emVyVHlwZSkpIHtcbiAgICAgIGFzc2VydCgnZmllbGQgbWlzc2luZyBhbmFseXplclR5cGUnKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBjaGVjayB0aW1lIGZvcm1hdCBpcyBjb3JyZWN0IGJhc2VkIG9uIGZpcnN0IDEwIG5vdCBlbXB0eSBlbGVtZW50XG4gICAgaWYgKGYudHlwZSA9PT0gQUxMX0ZJRUxEX1RZUEVTLnRpbWVzdGFtcCkge1xuICAgICAgY29uc3Qgc2FtcGxlID0gZmluZE5vbkVtcHR5Um93c0F0RmllbGQocm93cywgaSwgMTApLm1hcChyID0+ICh7dHM6IHJbaV19KSk7XG4gICAgICBjb25zdCBhbmFseXplZFR5cGUgPSBBbmFseXplci5jb21wdXRlQ29sTWV0YShzYW1wbGUpWzBdO1xuICAgICAgcmV0dXJuIGFuYWx5emVkVHlwZSAmJiBhbmFseXplZFR5cGUuY2F0ZWdvcnkgPT09ICdUSU1FJyAmJiBhbmFseXplZFR5cGUuZm9ybWF0ID09PSBmLmZvcm1hdDtcbiAgICB9XG5cbiAgICAvLyBjaGVjayBleGlzdGluZyBzdHJpbmcgZmllbGQgaXMgSDMgdHlwZVxuICAgIGlmIChmLnR5cGUgPT09IEFMTF9GSUVMRF9UWVBFUy5zdHJpbmcpIHtcbiAgICAgIGNvbnN0IHNhbXBsZSA9IGZpbmROb25FbXB0eVJvd3NBdEZpZWxkKHJvd3MsIGksIDEwKS5tYXAociA9PiByW2ldKTtcbiAgICAgIHJldHVybiBzYW1wbGUuZXZlcnkoaXRlbSA9PiAhaDNJc1ZhbGlkKGl0ZW0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG5cbiAgaWYgKGFsbFZhbGlkKSB7XG4gICAgcmV0dXJuIHtyb3dzLCBmaWVsZHMsIGNvbHN9O1xuICB9XG5cbiAgLy8gaWYgYW55IGZpZWxkIGhhcyBtaXNzaW5nIHR5cGUsIHJlY2FsY3VsYXRlIGl0IGZvciBldmVyeW9uZVxuICAvLyBiZWNhdXNlIHdlIHNpbXBseSBsb3N0IGZhaXRoIGluIGh1bWFuaXR5XG4gIGNvbnN0IHNhbXBsZURhdGEgPSBnZXRTYW1wbGVGb3JUeXBlQW5hbHl6ZSh7XG4gICAgZmllbGRzOiBmaWVsZHMubWFwKGYgPT4gZi5uYW1lKSxcbiAgICByb3dzXG4gIH0pO1xuICBjb25zdCBmaWVsZE9yZGVyID0gZmllbGRzLm1hcChmID0+IGYubmFtZSk7XG4gIGNvbnN0IG1ldGEgPSBnZXRGaWVsZHNGcm9tRGF0YShzYW1wbGVEYXRhLCBmaWVsZE9yZGVyKTtcbiAgY29uc3QgdXBkYXRlZEZpZWxkcyA9IGZpZWxkcy5tYXAoKGYsIGkpID0+ICh7XG4gICAgLi4uZixcbiAgICB0eXBlOiBtZXRhW2ldLnR5cGUsXG4gICAgZm9ybWF0OiBtZXRhW2ldLmZvcm1hdCxcbiAgICBhbmFseXplclR5cGU6IG1ldGFbaV0uYW5hbHl6ZXJUeXBlXG4gIH0pKTtcblxuICByZXR1cm4ge2ZpZWxkczogdXBkYXRlZEZpZWxkcywgcm93c307XG59XG5cbmZ1bmN0aW9uIGZpbmROb25FbXB0eVJvd3NBdEZpZWxkKHJvd3M6IHVua25vd25bXVtdLCBmaWVsZElkeDogbnVtYmVyLCB0b3RhbDogbnVtYmVyKTogYW55W10ge1xuICBjb25zdCBzYW1wbGU6IGFueVtdID0gW107XG4gIGxldCBpID0gMDtcbiAgd2hpbGUgKHNhbXBsZS5sZW5ndGggPCB0b3RhbCAmJiBpIDwgcm93cy5sZW5ndGgpIHtcbiAgICBpZiAobm90TnVsbG9yVW5kZWZpbmVkKHJvd3NbaV0/LltmaWVsZElkeF0pKSB7XG4gICAgICBzYW1wbGUucHVzaChyb3dzW2ldKTtcbiAgICB9XG4gICAgaSsrO1xuICB9XG4gIHJldHVybiBzYW1wbGU7XG59XG5cbmNvbnN0IFRJTUVfRElTUExBWSA9ICcyMDIwLTA1LTExIDE0OjAwJztcblxuZXhwb3J0IGNvbnN0IGFkZFRpbWVMYWJlbCA9IChmb3JtYXRzOiBUaW1lTGFiZWxGb3JtYXRbXSkgPT5cbiAgZm9ybWF0cy5tYXAoZiA9PiAoe1xuICAgIC4uLmYsXG4gICAgbGFiZWw6XG4gICAgICBmLnR5cGUgPT09IFRPT0xUSVBfRk9STUFUX1RZUEVTLkRBVEVfVElNRSB8fCBmLnR5cGUgPT09IFRPT0xUSVBfRk9STUFUX1RZUEVTLkRBVEVcbiAgICAgICAgPyBnZXRGb3JtYXR0ZXIoZ2V0Rm9ybWF0VmFsdWUoZikpKFRJTUVfRElTUExBWSlcbiAgICAgICAgOiBmLmxhYmVsXG4gIH0pKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpZWxkRm9ybWF0TGFiZWxzKGZpZWxkVHlwZT86IHN0cmluZyk6IFRvb2x0aXBGb3JtYXRbXSB7XG4gIGNvbnN0IHRvb2x0aXBUeXBlcyA9IChmaWVsZFR5cGUgJiYgRklFTERfT1BUU1tmaWVsZFR5cGVdLmZvcm1hdC50b29sdGlwKSB8fCBbXTtcbiAgY29uc3QgZm9ybWF0TGFiZWxzOiBUaW1lTGFiZWxGb3JtYXRbXSA9IE9iamVjdC52YWx1ZXMoVE9PTFRJUF9GT1JNQVRTKS5maWx0ZXIodCA9PlxuICAgIHRvb2x0aXBUeXBlcy5pbmNsdWRlcyh0LnR5cGUpXG4gICk7XG4gIHJldHVybiBhZGRUaW1lTGFiZWwoZm9ybWF0TGFiZWxzKTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldEZvcm1hdExhYmVscyA9IChmaWVsZHM6IFRvb2x0aXBGaWVsZHNbXSwgZmllbGROYW1lOiBzdHJpbmcpOiBUb29sdGlwRm9ybWF0W10gPT4ge1xuICBjb25zdCBmaWVsZFR5cGUgPSBmaWVsZHMuZmluZChmID0+IGYubmFtZSA9PT0gZmllbGROYW1lKT8udHlwZTtcbiAgcmV0dXJuIGdldEZpZWxkRm9ybWF0TGFiZWxzKGZpZWxkVHlwZSk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQU1BLElBQUFDLFlBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGFBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUosT0FBQTtBQWNBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFVBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLE9BQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLFdBQUEsR0FBQVIsT0FBQTtBQUF1QyxTQUFB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
|
315
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9jb21tb25VdGlscyIsIl90eXBlQW5hbHl6ZXIiLCJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl91dGlscyIsIl9kYXRhVXRpbHMiLCJfZm9ybWF0IiwiX2NvbG9yVXRpbHMiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl9tYXJrZWQiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiZ2VuZXJhdGVDb2xvciIsImRhdGFzZXRDb2xvcnMiLCJtYXAiLCJoZXhUb1JnYiIsImluZGV4Iiwid3JhcCIsImdlbmVyYXRlQ29sb3IkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInN0b3AiLCJkYXRhc2V0Q29sb3JNYWtlciIsImV4cG9ydHMiLCJFWENMVURFRF9ERUZBVUxUX0ZJRUxEUyIsIk1FVFJJQ19ERUZBVUxUX0ZJRUxEUyIsImZpbmREZWZhdWx0Q29sb3JGaWVsZCIsIl9yZWYiLCJmaWVsZHMiLCJfcmVmJGZpZWxkUGFpcnMiLCJmaWVsZFBhaXJzIiwiZmllbGRzV2l0aG91dEV4Y2x1ZGVkIiwiZmllbGQiLCJ0eXBlIiwiQUxMX0ZJRUxEX1RZUEVTIiwicmVhbCIsImludGVnZXIiLCJmaW5kIiwicGFpciIsImxhdCIsInZhbHVlIiwibmFtZSIsImxuZyIsIm5vcm1hbGl6ZWRGaWVsZE5hbWUiLCJ0b0xvd2VyQ2FzZSIsImhhc0V4Y2x1ZGVkIiwiZiIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsImhhc0luY2x1c2lvbiIsInNvcnRlZEZpZWxkcyIsInNvcnQiLCJsZWZ0IiwicmlnaHQiLCJub3JtYWxpemVkTGVmdCIsIm5vcm1hbGl6ZWRSaWdodCIsImxlZnRIYXNJbmNsdXNpb24iLCJmaW5kSW5kZXgiLCJyaWdodEhhc0luY2x1c2lvbiIsInZhbGlkYXRlSW5wdXREYXRhIiwiZGF0YSIsImlzUGxhaW5PYmplY3QiLCJhc3NlcnQiLCJBcnJheSIsImlzQXJyYXkiLCJyb3dzIiwiY29scyIsImFsbFZhbGlkIiwiZXZlcnkiLCJpIiwiY29uY2F0IiwiX3R5cGVvZjIiLCJzdHJpbmciLCJKU09OIiwic3RyaW5naWZ5IiwiYW5hbHl6ZXJUeXBlIiwidGltZXN0YW1wIiwic2FtcGxlIiwiZmluZE5vbkVtcHR5Um93c0F0RmllbGQiLCJ0cyIsImFuYWx5emVkVHlwZSIsIkFuYWx5emVyIiwiY29tcHV0ZUNvbE1ldGEiLCJjYXRlZ29yeSIsImZvcm1hdCIsIml0ZW0iLCJoM0lzVmFsaWQiLCJzYW1wbGVEYXRhIiwiZ2V0U2FtcGxlRm9yVHlwZUFuYWx5emUiLCJmaWVsZE9yZGVyIiwibWV0YSIsImdldEZpZWxkc0Zyb21EYXRhIiwidXBkYXRlZEZpZWxkcyIsImZpZWxkSWR4IiwidG90YWwiLCJfcm93cyRpIiwibm90TnVsbG9yVW5kZWZpbmVkIiwiVElNRV9ESVNQTEFZIiwiYWRkVGltZUxhYmVsIiwiZm9ybWF0cyIsImxhYmVsIiwiVE9PTFRJUF9GT1JNQVRfVFlQRVMiLCJEQVRFX1RJTUUiLCJEQVRFIiwiZ2V0Rm9ybWF0dGVyIiwiZ2V0Rm9ybWF0VmFsdWUiLCJnZXRGaWVsZEZvcm1hdExhYmVscyIsImZpZWxkVHlwZSIsInRvb2x0aXBUeXBlcyIsIkZJRUxEX09QVFMiLCJ0b29sdGlwIiwiZm9ybWF0TGFiZWxzIiwidmFsdWVzIiwiVE9PTFRJUF9GT1JNQVRTIiwiaW5jbHVkZXMiLCJnZXRGb3JtYXRMYWJlbHMiLCJmaWVsZE5hbWUiLCJfZmllbGRzJGZpbmQiXSwic291cmNlcyI6WyIuLi9zcmMvZGF0YXNldC11dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge1xuICBBTExfRklFTERfVFlQRVMsXG4gIEZJRUxEX09QVFMsXG4gIFRPT0xUSVBfRk9STUFUUyxcbiAgVE9PTFRJUF9GT1JNQVRfVFlQRVNcbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtnZXRTYW1wbGVGb3JUeXBlQW5hbHl6ZSwgZ2V0RmllbGRzRnJvbURhdGF9IGZyb20gJ0BrZXBsZXIuZ2wvY29tbW9uLXV0aWxzJztcbmltcG9ydCB7QW5hbHl6ZXJ9IGZyb20gJ3R5cGUtYW5hbHl6ZXInO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQge1xuICBQcm9jZXNzb3JSZXN1bHQsXG4gIFJHQkNvbG9yLFxuICBGaWVsZCxcbiAgRmllbGRQYWlyLFxuICBUaW1lTGFiZWxGb3JtYXQsXG4gIFRvb2x0aXBGaWVsZHMsXG4gIFByb3RvRGF0YXNldFxufSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7VG9vbHRpcEZvcm1hdH0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtub3ROdWxsb3JVbmRlZmluZWQsIGgzSXNWYWxpZH0gZnJvbSAnQGtlcGxlci5nbC9jb21tb24tdXRpbHMnO1xuXG5pbXBvcnQge2lzUGxhaW5PYmplY3R9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHtnZXRGb3JtYXR0ZXJ9IGZyb20gJy4vZGF0YS11dGlscyc7XG5pbXBvcnQge2dldEZvcm1hdFZhbHVlfSBmcm9tICcuL2Zvcm1hdCc7XG5pbXBvcnQge2hleFRvUmdifSBmcm9tICcuL2NvbG9yLXV0aWxzJztcblxuLy8gYXBwbHkgYSBjb2xvciBmb3IgZWFjaCBkYXRhc2V0XG4vLyB0byB1c2UgYXMgbGFiZWwgY29sb3JzXG5jb25zdCBkYXRhc2V0Q29sb3JzID0gW1xuICAnIzhGMkZCRicsXG4gICcjMDA1Q0ZGJyxcbiAgJyNDMDZDODQnLFxuICAnI0Y4QjE5NScsXG4gICcjNTQ3QTgyJyxcbiAgJyMzRUFDQTgnLFxuICAnI0EyRDRBQidcbl0ubWFwKGhleFRvUmdiKTtcblxuLyoqXG4gKiBSYW5kb20gY29sb3IgZ2VuZXJhdG9yXG4gKi9cbmZ1bmN0aW9uKiBnZW5lcmF0ZUNvbG9yKCk6IEdlbmVyYXRvcjxSR0JDb2xvcj4ge1xuICBsZXQgaW5kZXggPSAwO1xuICB3aGlsZSAoaW5kZXggPCBkYXRhc2V0Q29sb3JzLmxlbmd0aCArIDEpIHtcbiAgICBpZiAoaW5kZXggPT09IGRhdGFzZXRDb2xvcnMubGVuZ3RoKSB7XG4gICAgICBpbmRleCA9IDA7XG4gICAgfVxuICAgIHlpZWxkIGRhdGFzZXRDb2xvcnNbaW5kZXgrK107XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGRhdGFzZXRDb2xvck1ha2VyID0gZ2VuZXJhdGVDb2xvcigpO1xuXG4vKipcbiAqIEZpZWxkIG5hbWUgcHJlZml4ZXMgYW5kIHN1ZmZpeGVzIHdoaWNoIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZFxuICogYXMgbWV0cmljcy4gRmllbGRzIHdpbGwgc3RpbGwgYmUgaW5jbHVkZWQgaWYgYSAnbWV0cmljIHdvcmQnXG4gKiBpcyBmb3VuZCBvbiB0aGUgZmllbGQgbmFtZSwgaG93ZXZlci5cbiAqL1xuY29uc3QgRVhDTFVERURfREVGQVVMVF9GSUVMRFMgPSBbXG4gIC8vIFNlcmlhbCBudW1iZXJzIGFuZCBpZGVudGlmaWNhdGlvbiBudW1iZXJzXG4gICdfaWQnLFxuICAnaWQnLFxuICAnaW5kZXgnLFxuICAndXVpZCcsXG4gICdndWlkJyxcbiAgJ3VpZCcsXG4gICdnaWQnLFxuICAnc2VyaWFsJyxcbiAgLy8gR2VvZ3JhcGhpYyBJRHMgYXJlIHVubGlrZWx5IHRvIGJlIGludGVyZXN0aW5nIHRvIGNvbG9yXG4gICd6aXAnLFxuICAnY29kZScsXG4gICdwb3N0JyxcbiAgJ3JlZ2lvbicsXG4gICdmaXBzJyxcbiAgJ2NiZ3MnLFxuICAnaDMnLFxuICAnczInLFxuICAvLyBHZW9ncmFwaGljIGNvb3JkcyAoYnV0IG5vdCB6L2VsZXZhdGlvbi9hbHRpdHVkZVxuICAvLyBzaW5jZSB0aGF0IG1pZ2h0IGJlIGEgbWV0cmljKVxuICAnbGF0JyxcbiAgJ2xvbicsXG4gICdsbmcnLFxuICAnbGF0aXR1ZGUnLFxuICAnbG9uZ2l0dWRlJyxcbiAgJ194JyxcbiAgJ195J1xuXTtcblxuLyoqXG4gKiBQcmVmaXhlcyBhbmQgc3VmZml4ZXMgdGhhdCBpbmRpY2F0ZSBhIGZpZWxkIGlzIGEgbWV0cmljLlxuICpcbiAqIE5vdGUgdGhhdCB0aGVzZSBhcmUgaW4gb3JkZXIgb2YgcHJlZmVyZW5jZSwgZmlyc3QgYmVpbmdcbiAqIG1vc3QgcHJlZmVycmVkLlxuICovXG5jb25zdCBNRVRSSUNfREVGQVVMVF9GSUVMRFMgPSBbXG4gICdtZXRyaWMnLFxuICAndmFsdWUnLFxuICAnc3VtJyxcbiAgJ2NvdW50JyxcbiAgJ3VuaXF1ZScsXG4gICdtZWFuJyxcbiAgJ21vZGUnLFxuICAnbWVkaWFuJyxcbiAgJ21heCcsXG4gICdtaW4nLFxuICAnZGV2aWF0aW9uJyxcbiAgJ3ZhcmlhbmNlJyxcbiAgJ3A5OScsXG4gICdwOTUnLFxuICAncDc1JyxcbiAgJ3A1MCcsXG4gICdwMjUnLFxuICAncDA1JyxcbiAgLy8gQWJicmV2aWF0aW9ucyBhcmUgbGVzcyBwcmVmZXJyZWRcbiAgJ2NudCcsXG4gICd2YWwnXG5dO1xuXG4vKipcbiAqIENob29zZSBhIGZpZWxkIHRvIHVzZSBhcyB0aGUgZGVmYXVsdCBjb2xvciBmaWVsZCBvZiBhIGxheWVyLlxuICpcbiAqIFRoZSBoZXVyaXN0aWMgaXM6XG4gKlxuICogRmlyc3QsIGV4Y2x1ZGUgZmllbGRzIHRoYXQgYXJlIG9uIHRoZSBleGNsdXNpb24gbGlzdCBhbmQgZG9uJ3RcbiAqIGhhdmUgbmFtZXMgdGhhdCBzdWdnZXN0IHRoZXkgY29udGFpbiBtZXRyaWNzLiBBbHNvIGV4Y2x1ZGVcbiAqIGZpZWxkIG5hbWVzIHRoYXQgYXJlIGJsYW5rLlxuICpcbiAqIE5leHQsIGxvb2sgZm9yIGEgZmllbGQgdGhhdCBpcyBvZiByZWFsIHR5cGUgYW5kIGNvbnRhaW5zIG9uZVxuICogb2YgdGhlIHByZWZlcnJlZCBuYW1lcyAoaW4gb3JkZXIgb2YgdGhlIHByZWZlcnJlZCBuYW1lcykuXG4gKlxuICogTmV4dCwgbG9vayBmb3IgYSBmaWVsZCB0aGF0IGlzIG9mIGludGVnZXIgdHlwZSBhbmQgY29udGFpbnNcbiAqIG9uZSBvZiB0aGUgcHJlZmVycmVkIG5hbWVzIChpbiBvcmRlciBvZiB0aGUgcHJlZmVycmVkIG5hbWVzKS5cbiAqXG4gKiBOZXh0LCBsb29rIGZvciB0aGUgZmlyc3QgZmllbGQgdGhhdCBpcyBvZiByZWFsIHR5cGUgKGluIG9yZGVyXG4gKiBvZiBmaWVsZCBpbmRleCkuXG4gKlxuICogTmV4dCwgbG9vayBmb3IgdGhlIGZpcnN0IGZpZWxkIHRoYXQgaXMgb2YgaW50ZWdlciB0eXBlIChpblxuICogb3JkZXIgb2YgZmllbGQgaW5kZXgpLlxuICpcbiAqIEl0J3MgcG9zc2libGUgbm8gZmllbGQgd2lsbCBiZSBjaG9zZW4gKGkuZS4gYmVjYXVzZSBhbGwgZmllbGRzXG4gKiBhcmUgc3RyaW5ncy4pXG4gKlxuICogQHBhcmFtIGRhdGFzZXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmREZWZhdWx0Q29sb3JGaWVsZCh7XG4gIGZpZWxkcyxcbiAgZmllbGRQYWlycyA9IFtdXG59OiB7XG4gIGZpZWxkczogRmllbGRbXTtcbiAgZmllbGRQYWlyczogRmllbGRQYWlyW107XG59KTogbnVsbCB8IEZpZWxkIHtcbiAgY29uc3QgZmllbGRzV2l0aG91dEV4Y2x1ZGVkID0gZmllbGRzLmZpbHRlcihmaWVsZCA9PiB7XG4gICAgaWYgKGZpZWxkLnR5cGUgIT09IEFMTF9GSUVMRF9UWVBFUy5yZWFsICYmIGZpZWxkLnR5cGUgIT09IEFMTF9GSUVMRF9UWVBFUy5pbnRlZ2VyKSB7XG4gICAgICAvLyBPbmx5IHNlbGVjdCBudW1lcmljIGZpZWxkcy5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgZmllbGRQYWlycy5maW5kKFxuICAgICAgICBwYWlyID0+IHBhaXIucGFpci5sYXQudmFsdWUgPT09IGZpZWxkLm5hbWUgfHwgcGFpci5wYWlyLmxuZy52YWx1ZSA9PT0gZmllbGQubmFtZVxuICAgICAgKVxuICAgICkge1xuICAgICAgLy8gRG8gbm90IHBlcm1pdCBsYXQsIGxvbiBmaWVsZHNcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBub3JtYWxpemVkRmllbGROYW1lID0gZmllbGQubmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChub3JtYWxpemVkRmllbGROYW1lID09PSAnJykge1xuICAgICAgLy8gU3BlY2lhbCBjYXNlIGV4Y2x1ZGVkIG5hbWUgd2hlbiB0aGUgbmFtZSBpcyBibGFuay5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgaGFzRXhjbHVkZWQgPSBFWENMVURFRF9ERUZBVUxUX0ZJRUxEUy5maW5kKFxuICAgICAgZiA9PiBub3JtYWxpemVkRmllbGROYW1lLnN0YXJ0c1dpdGgoZikgfHwgbm9ybWFsaXplZEZpZWxkTmFtZS5lbmRzV2l0aChmKVxuICAgICk7XG4gICAgY29uc3QgaGFzSW5jbHVzaW9uID0gTUVUUklDX0RFRkFVTFRfRklFTERTLmZpbmQoXG4gICAgICBmID0+IG5vcm1hbGl6ZWRGaWVsZE5hbWUuc3RhcnRzV2l0aChmKSB8fCBub3JtYWxpemVkRmllbGROYW1lLmVuZHNXaXRoKGYpXG4gICAgKTtcbiAgICByZXR1cm4gIWhhc0V4Y2x1ZGVkIHx8IGhhc0luY2x1c2lvbjtcbiAgfSk7XG5cbiAgY29uc3Qgc29ydGVkRmllbGRzID0gZmllbGRzV2l0aG91dEV4Y2x1ZGVkLnNvcnQoKGxlZnQsIHJpZ2h0KSA9PiB7XG4gICAgY29uc3Qgbm9ybWFsaXplZExlZnQgPSBsZWZ0Lm5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBub3JtYWxpemVkUmlnaHQgPSByaWdodC5uYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgbGVmdEhhc0luY2x1c2lvbiA9IE1FVFJJQ19ERUZBVUxUX0ZJRUxEUy5maW5kSW5kZXgoXG4gICAgICBmID0+IG5vcm1hbGl6ZWRMZWZ0LnN0YXJ0c1dpdGgoZikgfHwgbm9ybWFsaXplZExlZnQuZW5kc1dpdGgoZilcbiAgICApO1xuICAgIGNvbnN0IHJpZ2h0SGFzSW5jbHVzaW9uID0gTUVUUklDX0RFRkFVTFRfRklFTERTLmZpbmRJbmRleChcbiAgICAgIGYgPT4gbm9ybWFsaXplZFJpZ2h0LnN0YXJ0c1dpdGgoZikgfHwgbm9ybWFsaXplZFJpZ2h0LmVuZHNXaXRoKGYpXG4gICAgKTtcbiAgICBpZiAobGVmdEhhc0luY2x1c2lvbiAhPT0gcmlnaHRIYXNJbmNsdXNpb24pIHtcbiAgICAgIGlmIChsZWZ0SGFzSW5jbHVzaW9uID09PSAtMSkge1xuICAgICAgICAvLyBFbGVtZW50cyB0aGF0IGRvIG5vdCBoYXZlIHRoZSBpbmNsdXNpb24gbGlzdCBzaG91bGQgZ28gYWZ0ZXIgdGhvc2UgdGhhdCBkby5cbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9IGVsc2UgaWYgKHJpZ2h0SGFzSW5jbHVzaW9uID09PSAtMSkge1xuICAgICAgICAvLyBFbGVtZW50cyB0aGF0IGRvIGhhdmUgdGhlIGluY2x1c2lvbiBsaXN0IHNob3VsZCBnbyBiZWZvcmUgdGhvc2UgdGhhdCBkb24ndC5cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgLy8gQ29tcGFyZSBiYXNlZCBvbiBvcmRlciBpbiB0aGUgaW5jbHVzaW9uIGxpc3RcbiAgICAgIHJldHVybiBsZWZ0SGFzSW5jbHVzaW9uIC0gcmlnaHRIYXNJbmNsdXNpb247XG4gICAgfVxuXG4gICAgLy8gQ29tcGFyZSBiYXNlZCBvbiB0eXBlXG4gICAgaWYgKGxlZnQudHlwZSAhPT0gcmlnaHQudHlwZSkge1xuICAgICAgaWYgKGxlZnQudHlwZSA9PT0gQUxMX0ZJRUxEX1RZUEVTLnJlYWwpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgLy8gbGVmdCBpcyBhbiBpbnRlZ2VyIGFuZCByaWdodCBpcyBub3RcbiAgICAgIC8vIGFuZCByZWFscyBjb21lIGJlZm9yZSBpbnRlZ2Vyc1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgLy8gRmluYWxseSwgb3JkZXIgYmFzZWQgb24gdGhlIG9yZGVyIGluIHRoZSBkYXRhc2V0cyBjb2x1bW5zXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIHJldHVybiBsZWZ0LmluZGV4IC0gcmlnaHQuaW5kZXg7XG4gIH0pO1xuXG4gIGlmIChzb3J0ZWRGaWVsZHMubGVuZ3RoKSB7XG4gICAgLy8gVGhlcmUgd2FzIGEgYmVzdCBtYXRjaFxuICAgIHJldHVybiBzb3J0ZWRGaWVsZHNbMF07XG4gIH1cbiAgLy8gTm8gbWF0Y2hlc1xuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBpbnB1dCBkYXRhLCBhZGRpbmcgbWlzc2luZyBmaWVsZCB0eXBlcywgcmVuYW1lIGR1cGxpY2F0ZSBjb2x1bW5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUlucHV0RGF0YShkYXRhOiBQcm90b0RhdGFzZXRbJ2RhdGEnXSk6IFByb2Nlc3NvclJlc3VsdCB7XG4gIGlmICghaXNQbGFpbk9iamVjdChkYXRhKSkge1xuICAgIGFzc2VydCgnYWRkRGF0YVRvTWFwIEVycm9yOiBkYXRhc2V0LmRhdGEgY2Fubm90IGJlIG51bGwnKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSBlbHNlIGlmICghQXJyYXkuaXNBcnJheShkYXRhLmZpZWxkcykpIHtcbiAgICBhc3NlcnQoJ2FkZERhdGFUb01hcCBFcnJvcjogZXhwZWN0IGRhdGFzZXQuZGF0YS5maWVsZHMgdG8gYmUgYW4gYXJyYXknKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSBlbHNlIGlmICghQXJyYXkuaXNBcnJheShkYXRhLnJvd3MpKSB7XG4gICAgYXNzZXJ0KCdhZGREYXRhVG9NYXAgRXJyb3I6IGV4cGVjdCBkYXRhc2V0LmRhdGEucm93cyB0byBiZSBhbiBhcnJheScpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3Qge2ZpZWxkcywgcm93cywgY29sc30gPSBkYXRhO1xuXG4gIC8vIGNoZWNrIGlmIGFsbCBmaWVsZHMgaGFzIG5hbWUsIGZvcm1hdCBhbmQgdHlwZVxuICBjb25zdCBhbGxWYWxpZCA9IGZpZWxkcy5ldmVyeSgoZiwgaSkgPT4ge1xuICAgIGlmICghaXNQbGFpbk9iamVjdChmKSkge1xuICAgICAgYXNzZXJ0KGBmaWVsZHMgbmVlZHMgdG8gYmUgYW4gYXJyYXkgb2Ygb2JqZWN0LCBidXQgZmluZCAke3R5cGVvZiBmfWApO1xuICAgICAgZmllbGRzW2ldID0ge25hbWU6IGBjb2x1bW5fJHtpfWAsIHR5cGU6IEFMTF9GSUVMRF9UWVBFUy5zdHJpbmd9O1xuICAgIH1cblxuICAgIGlmICghZi5uYW1lKSB7XG4gICAgICBhc3NlcnQoYGZpZWxkLm5hbWUgaXMgcmVxdWlyZWQgYnV0IG1pc3NpbmcgaW4gJHtKU09OLnN0cmluZ2lmeShmKX1gKTtcbiAgICAgIC8vIGFzc2lnbiBhIG5hbWVcbiAgICAgIGZpZWxkc1tpXS5uYW1lID0gYGNvbHVtbl8ke2l9YDtcbiAgICB9XG5cbiAgICBpZiAoIWYudHlwZSB8fCAhQUxMX0ZJRUxEX1RZUEVTW2YudHlwZV0pIHtcbiAgICAgIGFzc2VydChgdW5rbm93biBmaWVsZCB0eXBlICR7Zi50eXBlfWApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghZmllbGRzLmV2ZXJ5KGZpZWxkID0+IGZpZWxkLmFuYWx5emVyVHlwZSkpIHtcbiAgICAgIGFzc2VydCgnZmllbGQgbWlzc2luZyBhbmFseXplclR5cGUnKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBjaGVjayB0aW1lIGZvcm1hdCBpcyBjb3JyZWN0IGJhc2VkIG9uIGZpcnN0IDEwIG5vdCBlbXB0eSBlbGVtZW50XG4gICAgaWYgKGYudHlwZSA9PT0gQUxMX0ZJRUxEX1RZUEVTLnRpbWVzdGFtcCkge1xuICAgICAgY29uc3Qgc2FtcGxlID0gZmluZE5vbkVtcHR5Um93c0F0RmllbGQocm93cywgaSwgMTApLm1hcChyID0+ICh7dHM6IHJbaV19KSk7XG4gICAgICBjb25zdCBhbmFseXplZFR5cGUgPSBBbmFseXplci5jb21wdXRlQ29sTWV0YShzYW1wbGUpWzBdO1xuICAgICAgcmV0dXJuIGFuYWx5emVkVHlwZSAmJiBhbmFseXplZFR5cGUuY2F0ZWdvcnkgPT09ICdUSU1FJyAmJiBhbmFseXplZFR5cGUuZm9ybWF0ID09PSBmLmZvcm1hdDtcbiAgICB9XG5cbiAgICAvLyBjaGVjayBleGlzdGluZyBzdHJpbmcgZmllbGQgaXMgSDMgdHlwZVxuICAgIGlmIChmLnR5cGUgPT09IEFMTF9GSUVMRF9UWVBFUy5zdHJpbmcpIHtcbiAgICAgIGNvbnN0IHNhbXBsZSA9IGZpbmROb25FbXB0eVJvd3NBdEZpZWxkKHJvd3MsIGksIDEwKS5tYXAociA9PiByW2ldKTtcbiAgICAgIHJldHVybiBzYW1wbGUuZXZlcnkoaXRlbSA9PiAhaDNJc1ZhbGlkKGl0ZW0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG5cbiAgaWYgKGFsbFZhbGlkKSB7XG4gICAgcmV0dXJuIHtyb3dzLCBmaWVsZHMsIGNvbHN9O1xuICB9XG5cbiAgLy8gaWYgYW55IGZpZWxkIGhhcyBtaXNzaW5nIHR5cGUsIHJlY2FsY3VsYXRlIGl0IGZvciBldmVyeW9uZVxuICAvLyBiZWNhdXNlIHdlIHNpbXBseSBsb3N0IGZhaXRoIGluIGh1bWFuaXR5XG4gIGNvbnN0IHNhbXBsZURhdGEgPSBnZXRTYW1wbGVGb3JUeXBlQW5hbHl6ZSh7XG4gICAgZmllbGRzOiBmaWVsZHMubWFwKGYgPT4gZi5uYW1lKSxcbiAgICByb3dzXG4gIH0pO1xuICBjb25zdCBmaWVsZE9yZGVyID0gZmllbGRzLm1hcChmID0+IGYubmFtZSk7XG4gIGNvbnN0IG1ldGEgPSBnZXRGaWVsZHNGcm9tRGF0YShzYW1wbGVEYXRhLCBmaWVsZE9yZGVyKTtcbiAgY29uc3QgdXBkYXRlZEZpZWxkcyA9IGZpZWxkcy5tYXAoKGYsIGkpID0+ICh7XG4gICAgLi4uZixcbiAgICB0eXBlOiBtZXRhW2ldLnR5cGUsXG4gICAgZm9ybWF0OiBtZXRhW2ldLmZvcm1hdCxcbiAgICBhbmFseXplclR5cGU6IG1ldGFbaV0uYW5hbHl6ZXJUeXBlXG4gIH0pKTtcblxuICByZXR1cm4ge2ZpZWxkczogdXBkYXRlZEZpZWxkcywgcm93cywgLi4uKGNvbHMgPyB7Y29sc30gOiB7fSl9O1xufVxuXG5mdW5jdGlvbiBmaW5kTm9uRW1wdHlSb3dzQXRGaWVsZChyb3dzOiB1bmtub3duW11bXSwgZmllbGRJZHg6IG51bWJlciwgdG90YWw6IG51bWJlcik6IGFueVtdIHtcbiAgY29uc3Qgc2FtcGxlOiBhbnlbXSA9IFtdO1xuICBsZXQgaSA9IDA7XG4gIHdoaWxlIChzYW1wbGUubGVuZ3RoIDwgdG90YWwgJiYgaSA8IHJvd3MubGVuZ3RoKSB7XG4gICAgaWYgKG5vdE51bGxvclVuZGVmaW5lZChyb3dzW2ldPy5bZmllbGRJZHhdKSkge1xuICAgICAgc2FtcGxlLnB1c2gocm93c1tpXSk7XG4gICAgfVxuICAgIGkrKztcbiAgfVxuICByZXR1cm4gc2FtcGxlO1xufVxuXG5jb25zdCBUSU1FX0RJU1BMQVkgPSAnMjAyMC0wNS0xMSAxNDowMCc7XG5cbmV4cG9ydCBjb25zdCBhZGRUaW1lTGFiZWwgPSAoZm9ybWF0czogVGltZUxhYmVsRm9ybWF0W10pID0+XG4gIGZvcm1hdHMubWFwKGYgPT4gKHtcbiAgICAuLi5mLFxuICAgIGxhYmVsOlxuICAgICAgZi50eXBlID09PSBUT09MVElQX0ZPUk1BVF9UWVBFUy5EQVRFX1RJTUUgfHwgZi50eXBlID09PSBUT09MVElQX0ZPUk1BVF9UWVBFUy5EQVRFXG4gICAgICAgID8gZ2V0Rm9ybWF0dGVyKGdldEZvcm1hdFZhbHVlKGYpKShUSU1FX0RJU1BMQVkpXG4gICAgICAgIDogZi5sYWJlbFxuICB9KSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWVsZEZvcm1hdExhYmVscyhmaWVsZFR5cGU/OiBzdHJpbmcpOiBUb29sdGlwRm9ybWF0W10ge1xuICBjb25zdCB0b29sdGlwVHlwZXMgPSAoZmllbGRUeXBlICYmIEZJRUxEX09QVFNbZmllbGRUeXBlXS5mb3JtYXQudG9vbHRpcCkgfHwgW107XG4gIGNvbnN0IGZvcm1hdExhYmVsczogVGltZUxhYmVsRm9ybWF0W10gPSBPYmplY3QudmFsdWVzKFRPT0xUSVBfRk9STUFUUykuZmlsdGVyKHQgPT5cbiAgICB0b29sdGlwVHlwZXMuaW5jbHVkZXModC50eXBlKVxuICApO1xuICByZXR1cm4gYWRkVGltZUxhYmVsKGZvcm1hdExhYmVscyk7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRGb3JtYXRMYWJlbHMgPSAoZmllbGRzOiBUb29sdGlwRmllbGRzW10sIGZpZWxkTmFtZTogc3RyaW5nKTogVG9vbHRpcEZvcm1hdFtdID0+IHtcbiAgY29uc3QgZmllbGRUeXBlID0gZmllbGRzLmZpbmQoZiA9PiBmLm5hbWUgPT09IGZpZWxkTmFtZSk/LnR5cGU7XG4gIHJldHVybiBnZXRGaWVsZEZvcm1hdExhYmVscyhmaWVsZFR5cGUpO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxVQUFBLEdBQUFDLE9BQUE7QUFNQSxJQUFBQyxZQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxhQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFDLHNCQUFBLENBQUFKLE9BQUE7QUFjQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxVQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxPQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxXQUFBLEdBQUFSLE9BQUE7QUFBdUMsU0FBQVMsUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFGLE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLE9BQUFhLE9BQUEsV0FBQWQsQ0FBQSxRQUFBZSxnQkFBQSxhQUFBaEIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsQ0FBQUQsQ0FBQSxTQUFBRSxNQUFBLENBQUFjLHlCQUFBLEdBQUFkLE1BQUEsQ0FBQWUsZ0JBQUEsQ0FBQWxCLENBQUEsRUFBQUcsTUFBQSxDQUFBYyx5QkFBQSxDQUFBZixDQUFBLEtBQUFILE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLEdBQUFhLE9BQUEsV0FBQWQsQ0FBQSxJQUFBRSxNQUFBLENBQUFnQixjQUFBLENBQUFuQixDQUFBLEVBQUFDLENBQUEsRUFBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBTixDQUFBLEVBQUFELENBQUEsaUJBQUFELENBQUE7QUFBQSxJQUFBb0IsT0FBQSxnQkFBQUMsWUFBQSxZQUFBQyxJQUFBLENBaUI3QkMsYUFBYSxHQTdDdkI7QUFDQTtBQTZCQTtBQUNBO0FBQ0EsSUFBTUMsYUFBYSxHQUFHLENBQ3BCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsQ0FDVixDQUFDQyxHQUFHLENBQUNDLG9CQUFRLENBQUM7O0FBRWY7QUFDQTtBQUNBO0FBQ0EsU0FBVUgsYUFBYUEsQ0FBQTtFQUFBLElBQUFJLEtBQUE7RUFBQSxPQUFBTixZQUFBLFlBQUFPLElBQUEsVUFBQUMsZUFBQUMsUUFBQTtJQUFBLGtCQUFBQSxRQUFBLENBQUFDLElBQUEsR0FBQUQsUUFBQSxDQUFBRSxJQUFBO01BQUE7UUFDakJMLEtBQUssR0FBRyxDQUFDO01BQUE7UUFBQSxNQUNOQSxLQUFLLEdBQUdILGFBQWEsQ0FBQ1YsTUFBTSxHQUFHLENBQUM7VUFBQWdCLFFBQUEsQ0FBQUUsSUFBQTtVQUFBO1FBQUE7UUFDckMsSUFBSUwsS0FBSyxLQUFLSCxhQUFhLENBQUNWLE1BQU0sRUFBRTtVQUNsQ2EsS0FBSyxHQUFHLENBQUM7UUFDWDtRQUFDRyxRQUFBLENBQUFFLElBQUE7UUFDRCxPQUFNUixhQUFhLENBQUNHLEtBQUssRUFBRSxDQUFDO01BQUE7UUFBQUcsUUFBQSxDQUFBRSxJQUFBO1FBQUE7TUFBQTtNQUFBO1FBQUEsT0FBQUYsUUFBQSxDQUFBRyxJQUFBO0lBQUE7RUFBQSxHQUFBYixPQUFBO0FBQUE7QUFJekIsSUFBTWMsaUJBQWlCLEdBQUFDLE9BQUEsQ0FBQUQsaUJBQUEsR0FBR1gsYUFBYSxDQUFDLENBQUM7O0FBRWhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNYSx1QkFBdUIsR0FBRztBQUM5QjtBQUNBLEtBQUssRUFDTCxJQUFJLEVBQ0osT0FBTyxFQUNQLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxRQUFRO0FBQ1I7QUFDQSxLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixJQUFJLEVBQ0osSUFBSTtBQUNKO0FBQ0E7QUFDQSxLQUFLLEVBQ0wsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsV0FBVyxFQUNYLElBQUksRUFDSixJQUFJLENBQ0w7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTUMscUJBQXFCLEdBQUcsQ0FDNUIsUUFBUSxFQUNSLE9BQU8sRUFDUCxLQUFLLEVBQ0wsT0FBTyxFQUNQLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQ0wsS0FBSyxFQUNMLFdBQVcsRUFDWCxVQUFVLEVBQ1YsS0FBSyxFQUNMLEtBQUssRUFDTCxLQUFLLEVBQ0wsS0FBSyxFQUNMLEtBQUssRUFDTCxLQUFLO0FBQ0w7QUFDQSxLQUFLLEVBQ0wsS0FBSyxDQUNOOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTQyxxQkFBcUJBLENBQUFDLElBQUEsRUFNcEI7RUFBQSxJQUxmQyxNQUFNLEdBQUFELElBQUEsQ0FBTkMsTUFBTTtJQUFBQyxlQUFBLEdBQUFGLElBQUEsQ0FDTkcsVUFBVTtJQUFWQSxVQUFVLEdBQUFELGVBQUEsY0FBRyxFQUFFLEdBQUFBLGVBQUE7RUFLZixJQUFNRSxxQkFBcUIsR0FBR0gsTUFBTSxDQUFDakMsTUFBTSxDQUFDLFVBQUFxQyxLQUFLLEVBQUk7SUFDbkQsSUFBSUEsS0FBSyxDQUFDQyxJQUFJLEtBQUtDLDBCQUFlLENBQUNDLElBQUksSUFBSUgsS0FBSyxDQUFDQyxJQUFJLEtBQUtDLDBCQUFlLENBQUNFLE9BQU8sRUFBRTtNQUNqRjtNQUNBLE9BQU8sS0FBSztJQUNkO0lBQ0EsSUFDRU4sVUFBVSxDQUFDTyxJQUFJLENBQ2IsVUFBQUMsSUFBSTtNQUFBLE9BQUlBLElBQUksQ0FBQ0EsSUFBSSxDQUFDQyxHQUFHLENBQUNDLEtBQUssS0FBS1IsS0FBSyxDQUFDUyxJQUFJLElBQUlILElBQUksQ0FBQ0EsSUFBSSxDQUFDSSxHQUFHLENBQUNGLEtBQUssS0FBS1IsS0FBSyxDQUFDUyxJQUFJO0lBQUEsQ0FDbEYsQ0FBQyxFQUNEO01BQ0E7TUFDQSxPQUFPLEtBQUs7SUFDZDtJQUVBLElBQU1FLG1CQUFtQixHQUFHWCxLQUFLLENBQUNTLElBQUksQ0FBQ0csV0FBVyxDQUFDLENBQUM7SUFDcEQsSUFBSUQsbUJBQW1CLEtBQUssRUFBRSxFQUFFO01BQzlCO01BQ0EsT0FBTyxLQUFLO0lBQ2Q7SUFDQSxJQUFNRSxXQUFXLEdBQUdyQix1QkFBdUIsQ0FBQ2EsSUFBSSxDQUM5QyxVQUFBUyxDQUFDO01BQUEsT0FBSUgsbUJBQW1CLENBQUNJLFVBQVUsQ0FBQ0QsQ0FBQyxDQUFDLElBQUlILG1CQUFtQixDQUFDSyxRQUFRLENBQUNGLENBQUMsQ0FBQztJQUFBLENBQzNFLENBQUM7SUFDRCxJQUFNRyxZQUFZLEdBQUd4QixxQkFBcUIsQ0FBQ1ksSUFBSSxDQUM3QyxVQUFBUyxDQUFDO01BQUEsT0FBSUgsbUJBQW1CLENBQUNJLFVBQVUsQ0FBQ0QsQ0FBQyxDQUFDLElBQUlILG1CQUFtQixDQUFDSyxRQUFRLENBQUNGLENBQUMsQ0FBQztJQUFBLENBQzNFLENBQUM7SUFDRCxPQUFPLENBQUNELFdBQVcsSUFBSUksWUFBWTtFQUNyQyxDQUFDLENBQUM7RUFFRixJQUFNQyxZQUFZLEdBQUduQixxQkFBcUIsQ0FBQ29CLElBQUksQ0FBQyxVQUFDQyxJQUFJLEVBQUVDLEtBQUssRUFBSztJQUMvRCxJQUFNQyxjQUFjLEdBQUdGLElBQUksQ0FBQ1gsSUFBSSxDQUFDRyxXQUFXLENBQUMsQ0FBQztJQUM5QyxJQUFNVyxlQUFlLEdBQUdGLEtBQUssQ0FBQ1osSUFBSSxDQUFDRyxXQUFXLENBQUMsQ0FBQztJQUNoRCxJQUFNWSxnQkFBZ0IsR0FBRy9CLHFCQUFxQixDQUFDZ0MsU0FBUyxDQUN0RCxVQUFBWCxDQUFDO01BQUEsT0FBSVEsY0FBYyxDQUFDUCxVQUFVLENBQUNELENBQUMsQ0FBQyxJQUFJUSxjQUFjLENBQUNOLFFBQVEsQ0FBQ0YsQ0FBQyxDQUFDO0lBQUEsQ0FDakUsQ0FBQztJQUNELElBQU1ZLGlCQUFpQixHQUFHakMscUJBQXFCLENBQUNnQyxTQUFTLENBQ3ZELFVBQUFYLENBQUM7TUFBQSxPQUFJUyxlQUFlLENBQUNSLFVBQVUsQ0FBQ0QsQ0FBQyxDQUFDLElBQUlTLGVBQWUsQ0FBQ1AsUUFBUSxDQUFDRixDQUFDLENBQUM7SUFBQSxDQUNuRSxDQUFDO0lBQ0QsSUFBSVUsZ0JBQWdCLEtBQUtFLGlCQUFpQixFQUFFO01BQzFDLElBQUlGLGdCQUFnQixLQUFLLENBQUMsQ0FBQyxFQUFFO1FBQzNCO1FBQ0EsT0FBTyxDQUFDO01BQ1YsQ0FBQyxNQUFNLElBQUlFLGlCQUFpQixLQUFLLENBQUMsQ0FBQyxFQUFFO1FBQ25DO1FBQ0EsT0FBTyxDQUFDLENBQUM7TUFDWDtNQUNBO01BQ0EsT0FBT0YsZ0JBQWdCLEdBQUdFLGlCQUFpQjtJQUM3Qzs7SUFFQTtJQUNBLElBQUlOLElBQUksQ0FBQ25CLElBQUksS0FBS29CLEtBQUssQ0FBQ3BCLElBQUksRUFBRTtNQUM1QixJQUFJbUIsSUFBSSxDQUFDbkIsSUFBSSxLQUFLQywwQkFBZSxDQUFDQyxJQUFJLEVBQUU7UUFDdEMsT0FBTyxDQUFDLENBQUM7TUFDWDtNQUNBO01BQ0E7TUFDQSxPQUFPLENBQUM7SUFDVjs7SUFFQTtJQUNBO0lBQ0EsT0FBT2lCLElBQUksQ0FBQ3JDLEtBQUssR0FBR3NDLEtBQUssQ0FBQ3RDLEtBQUs7RUFDakMsQ0FBQyxDQUFDO0VBRUYsSUFBSW1DLFlBQVksQ0FBQ2hELE1BQU0sRUFBRTtJQUN2QjtJQUNBLE9BQU9nRCxZQUFZLENBQUMsQ0FBQyxDQUFDO0VBQ3hCO0VBQ0E7RUFDQSxPQUFPLElBQUk7QUFDYjs7QUFFQTtBQUNBO0FBQ0E7QUFDTyxTQUFTUyxpQkFBaUJBLENBQUNDLElBQTBCLEVBQW1CO0VBQzdFLElBQUksQ0FBQyxJQUFBQyxvQkFBYSxFQUFDRCxJQUFJLENBQUMsRUFBRTtJQUN4QixJQUFBRSxrQkFBTSxFQUFDLGlEQUFpRCxDQUFDO0lBQ3pELE9BQU8sSUFBSTtFQUNiLENBQUMsTUFBTSxJQUFJLENBQUNDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDSixJQUFJLENBQUNoQyxNQUFNLENBQUMsRUFBRTtJQUN0QyxJQUFBa0Msa0JBQU0sRUFBQywrREFBK0QsQ0FBQztJQUN2RSxPQUFPLElBQUk7RUFDYixDQUFDLE1BQU0sSUFBSSxDQUFDQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0osSUFBSSxDQUFDSyxJQUFJLENBQUMsRUFBRTtJQUNwQyxJQUFBSCxrQkFBTSxFQUFDLDZEQUE2RCxDQUFDO0lBQ3JFLE9BQU8sSUFBSTtFQUNiO0VBRUEsSUFBT2xDLE1BQU0sR0FBZ0JnQyxJQUFJLENBQTFCaEMsTUFBTTtJQUFFcUMsSUFBSSxHQUFVTCxJQUFJLENBQWxCSyxJQUFJO0lBQUVDLElBQUksR0FBSU4sSUFBSSxDQUFaTSxJQUFJOztFQUV6QjtFQUNBLElBQU1DLFFBQVEsR0FBR3ZDLE1BQU0sQ0FBQ3dDLEtBQUssQ0FBQyxVQUFDdEIsQ0FBQyxFQUFFdUIsQ0FBQyxFQUFLO0lBQ3RDLElBQUksQ0FBQyxJQUFBUixvQkFBYSxFQUFDZixDQUFDLENBQUMsRUFBRTtNQUNyQixJQUFBZ0Isa0JBQU0scURBQUFRLE1BQUEsS0FBQUMsUUFBQSxhQUEyRHpCLENBQUMsRUFBRSxDQUFDO01BQ3JFbEIsTUFBTSxDQUFDeUMsQ0FBQyxDQUFDLEdBQUc7UUFBQzVCLElBQUksWUFBQTZCLE1BQUEsQ0FBWUQsQ0FBQyxDQUFFO1FBQUVwQyxJQUFJLEVBQUVDLDBCQUFlLENBQUNzQztNQUFNLENBQUM7SUFDakU7SUFFQSxJQUFJLENBQUMxQixDQUFDLENBQUNMLElBQUksRUFBRTtNQUNYLElBQUFxQixrQkFBTSwyQ0FBQVEsTUFBQSxDQUEwQ0csSUFBSSxDQUFDQyxTQUFTLENBQUM1QixDQUFDLENBQUMsQ0FBRSxDQUFDO01BQ3BFO01BQ0FsQixNQUFNLENBQUN5QyxDQUFDLENBQUMsQ0FBQzVCLElBQUksYUFBQTZCLE1BQUEsQ0FBYUQsQ0FBQyxDQUFFO0lBQ2hDO0lBRUEsSUFBSSxDQUFDdkIsQ0FBQyxDQUFDYixJQUFJLElBQUksQ0FBQ0MsMEJBQWUsQ0FBQ1ksQ0FBQyxDQUFDYixJQUFJLENBQUMsRUFBRTtNQUN2QyxJQUFBNkIsa0JBQU0sd0JBQUFRLE1BQUEsQ0FBdUJ4QixDQUFDLENBQUNiLElBQUksQ0FBRSxDQUFDO01BQ3RDLE9BQU8sS0FBSztJQUNkO0lBRUEsSUFBSSxDQUFDTCxNQUFNLENBQUN3QyxLQUFLLENBQUMsVUFBQXBDLEtBQUs7TUFBQSxPQUFJQSxLQUFLLENBQUMyQyxZQUFZO0lBQUEsRUFBQyxFQUFFO01BQzlDLElBQUFiLGtCQUFNLEVBQUMsNEJBQTRCLENBQUM7TUFDcEMsT0FBTyxLQUFLO0lBQ2Q7O0lBRUE7SUFDQSxJQUFJaEIsQ0FBQyxDQUFDYixJQUFJLEtBQUtDLDBCQUFlLENBQUMwQyxTQUFTLEVBQUU7TUFDeEMsSUFBTUMsTUFBTSxHQUFHQyx1QkFBdUIsQ0FBQ2IsSUFBSSxFQUFFSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUN4RCxHQUFHLENBQUMsVUFBQXhCLENBQUM7UUFBQSxPQUFLO1VBQUMwRixFQUFFLEVBQUUxRixDQUFDLENBQUNnRixDQUFDO1FBQUMsQ0FBQztNQUFBLENBQUMsQ0FBQztNQUMxRSxJQUFNVyxZQUFZLEdBQUdDLHNCQUFRLENBQUNDLGNBQWMsQ0FBQ0wsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO01BQ3ZELE9BQU9HLFlBQVksSUFBSUEsWUFBWSxDQUFDRyxRQUFRLEtBQUssTUFBTSxJQUFJSCxZQUFZLENBQUNJLE1BQU0sS0FBS3RDLENBQUMsQ0FBQ3NDLE1BQU07SUFDN0Y7O0lBRUE7SUFDQSxJQUFJdEMsQ0FBQyxDQUFDYixJQUFJLEtBQUtDLDBCQUFlLENBQUNzQyxNQUFNLEVBQUU7TUFDckMsSUFBTUssT0FBTSxHQUFHQyx1QkFBdUIsQ0FBQ2IsSUFBSSxFQUFFSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUN4RCxHQUFHLENBQUMsVUFBQXhCLENBQUM7UUFBQSxPQUFJQSxDQUFDLENBQUNnRixDQUFDLENBQUM7TUFBQSxFQUFDO01BQ2xFLE9BQU9RLE9BQU0sQ0FBQ1QsS0FBSyxDQUFDLFVBQUFpQixJQUFJO1FBQUEsT0FBSSxDQUFDLElBQUFDLHNCQUFTLEVBQUNELElBQUksQ0FBQztNQUFBLEVBQUM7SUFDL0M7SUFFQSxPQUFPLElBQUk7RUFDYixDQUFDLENBQUM7RUFFRixJQUFJbEIsUUFBUSxFQUFFO0lBQ1osT0FBTztNQUFDRixJQUFJLEVBQUpBLElBQUk7TUFBRXJDLE1BQU0sRUFBTkEsTUFBTTtNQUFFc0MsSUFBSSxFQUFKQTtJQUFJLENBQUM7RUFDN0I7O0VBRUE7RUFDQTtFQUNBLElBQU1xQixVQUFVLEdBQUcsSUFBQUMsb0NBQXVCLEVBQUM7SUFDekM1RCxNQUFNLEVBQUVBLE1BQU0sQ0FBQ2YsR0FBRyxDQUFDLFVBQUFpQyxDQUFDO01BQUEsT0FBSUEsQ0FBQyxDQUFDTCxJQUFJO0lBQUEsRUFBQztJQUMvQndCLElBQUksRUFBSkE7RUFDRixDQUFDLENBQUM7RUFDRixJQUFNd0IsVUFBVSxHQUFHN0QsTUFBTSxDQUFDZixHQUFHLENBQUMsVUFBQWlDLENBQUM7SUFBQSxPQUFJQSxDQUFDLENBQUNMLElBQUk7RUFBQSxFQUFDO0VBQzFDLElBQU1pRCxJQUFJLEdBQUcsSUFBQUMsOEJBQWlCLEVBQUNKLFVBQVUsRUFBRUUsVUFBVSxDQUFDO0VBQ3RELElBQU1HLGFBQWEsR0FBR2hFLE1BQU0sQ0FBQ2YsR0FBRyxDQUFDLFVBQUNpQyxDQUFDLEVBQUV1QixDQUFDO0lBQUEsT0FBQXJFLGFBQUEsQ0FBQUEsYUFBQSxLQUNqQzhDLENBQUM7TUFDSmIsSUFBSSxFQUFFeUQsSUFBSSxDQUFDckIsQ0FBQyxDQUFDLENBQUNwQyxJQUFJO01BQ2xCbUQsTUFBTSxFQUFFTSxJQUFJLENBQUNyQixDQUFDLENBQUMsQ0FBQ2UsTUFBTTtNQUN0QlQsWUFBWSxFQUFFZSxJQUFJLENBQUNyQixDQUFDLENBQUMsQ0FBQ007SUFBWTtFQUFBLENBQ2xDLENBQUM7RUFFSCxPQUFBM0UsYUFBQTtJQUFRNEIsTUFBTSxFQUFFZ0UsYUFBYTtJQUFFM0IsSUFBSSxFQUFKQTtFQUFJLEdBQU1DLElBQUksR0FBRztJQUFDQSxJQUFJLEVBQUpBO0VBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM3RDtBQUVBLFNBQVNZLHVCQUF1QkEsQ0FBQ2IsSUFBaUIsRUFBRTRCLFFBQWdCLEVBQUVDLEtBQWEsRUFBUztFQUMxRixJQUFNakIsTUFBYSxHQUFHLEVBQUU7RUFDeEIsSUFBSVIsQ0FBQyxHQUFHLENBQUM7RUFDVCxPQUFPUSxNQUFNLENBQUMzRSxNQUFNLEdBQUc0RixLQUFLLElBQUl6QixDQUFDLEdBQUdKLElBQUksQ0FBQy9ELE1BQU0sRUFBRTtJQUFBLElBQUE2RixPQUFBO0lBQy9DLElBQUksSUFBQUMsK0JBQWtCLEdBQUFELE9BQUEsR0FBQzlCLElBQUksQ0FBQ0ksQ0FBQyxDQUFDLGNBQUEwQixPQUFBLHVCQUFQQSxPQUFBLENBQVVGLFFBQVEsQ0FBQyxDQUFDLEVBQUU7TUFDM0NoQixNQUFNLENBQUMvRSxJQUFJLENBQUNtRSxJQUFJLENBQUNJLENBQUMsQ0FBQyxDQUFDO0lBQ3RCO0lBQ0FBLENBQUMsRUFBRTtFQUNMO0VBQ0EsT0FBT1EsTUFBTTtBQUNmO0FBRUEsSUFBTW9CLFlBQVksR0FBRyxrQkFBa0I7QUFFaEMsSUFBTUMsWUFBWSxHQUFBM0UsT0FBQSxDQUFBMkUsWUFBQSxHQUFHLFNBQWZBLFlBQVlBLENBQUlDLE9BQTBCO0VBQUEsT0FDckRBLE9BQU8sQ0FBQ3RGLEdBQUcsQ0FBQyxVQUFBaUMsQ0FBQztJQUFBLE9BQUE5QyxhQUFBLENBQUFBLGFBQUEsS0FDUjhDLENBQUM7TUFDSnNELEtBQUssRUFDSHRELENBQUMsQ0FBQ2IsSUFBSSxLQUFLb0UsK0JBQW9CLENBQUNDLFNBQVMsSUFBSXhELENBQUMsQ0FBQ2IsSUFBSSxLQUFLb0UsK0JBQW9CLENBQUNFLElBQUksR0FDN0UsSUFBQUMsdUJBQVksRUFBQyxJQUFBQyxzQkFBYyxFQUFDM0QsQ0FBQyxDQUFDLENBQUMsQ0FBQ21ELFlBQVksQ0FBQyxHQUM3Q25ELENBQUMsQ0FBQ3NEO0lBQUs7RUFBQSxDQUNiLENBQUM7QUFBQTtBQUVFLFNBQVNNLG9CQUFvQkEsQ0FBQ0MsU0FBa0IsRUFBbUI7RUFDeEUsSUFBTUMsWUFBWSxHQUFJRCxTQUFTLElBQUlFLHFCQUFVLENBQUNGLFNBQVMsQ0FBQyxDQUFDdkIsTUFBTSxDQUFDMEIsT0FBTyxJQUFLLEVBQUU7RUFDOUUsSUFBTUMsWUFBK0IsR0FBR3hILE1BQU0sQ0FBQ3lILE1BQU0sQ0FBQ0MsMEJBQWUsQ0FBQyxDQUFDdEgsTUFBTSxDQUFDLFVBQUFMLENBQUM7SUFBQSxPQUM3RXNILFlBQVksQ0FBQ00sUUFBUSxDQUFDNUgsQ0FBQyxDQUFDMkMsSUFBSSxDQUFDO0VBQUEsQ0FDL0IsQ0FBQztFQUNELE9BQU9pRSxZQUFZLENBQUNhLFlBQVksQ0FBQztBQUNuQztBQUVPLElBQU1JLGVBQWUsR0FBQTVGLE9BQUEsQ0FBQTRGLGVBQUEsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBSXZGLE1BQXVCLEVBQUV3RixTQUFpQixFQUFzQjtFQUFBLElBQUFDLFlBQUE7RUFDOUYsSUFBTVYsU0FBUyxJQUFBVSxZQUFBLEdBQUd6RixNQUFNLENBQUNTLElBQUksQ0FBQyxVQUFBUyxDQUFDO0lBQUEsT0FBSUEsQ0FBQyxDQUFDTCxJQUFJLEtBQUsyRSxTQUFTO0VBQUEsRUFBQyxjQUFBQyxZQUFBLHVCQUF0Q0EsWUFBQSxDQUF3Q3BGLElBQUk7RUFDOUQsT0FBT3lFLG9CQUFvQixDQUFDQyxTQUFTLENBQUM7QUFDeEMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
package/dist/dom-to-image.js
CHANGED
@@ -418,4 +418,4 @@ function newImages() {
|
|
418
418
|
}
|
419
419
|
}
|
420
420
|
var _default = exports["default"] = domtoimage;
|
421
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2luZG93IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZG9jdW1lbnQiLCJfY29uc29sZSIsIl9taW5pU3ZnRGF0YVVyaSIsIl9jb25zdGFudHMiLCJfZG9tVXRpbHMiLCJpbmxpbmVyIiwibmV3SW5saW5lciIsImZvbnRGYWNlcyIsIm5ld0ZvbnRGYWNlcyIsImltYWdlcyIsIm5ld0ltYWdlcyIsImRlZmF1bHRPcHRpb25zIiwiaW1hZ2VQbGFjZWhvbGRlciIsInVuZGVmaW5lZCIsImNhY2hlQnVzdCIsImRvbXRvaW1hZ2UiLCJ0b1N2ZyIsInRvUG5nIiwidG9KcGVnIiwidG9CbG9iIiwidG9QaXhlbERhdGEiLCJpbXBsIiwib3B0aW9ucyIsIm5vZGUiLCJjb3B5T3B0aW9ucyIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsIm5kIiwiY2xvbmVOb2RlIiwiZmlsdGVyIiwiZW1iZWRGb250cyIsImlubGluZUltYWdlcyIsImFwcGx5T3B0aW9ucyIsImNsb25lIiwibWFrZVN2Z0RhdGFVcmkiLCJ3aWR0aCIsImdldFdpZHRoIiwiaGVpZ2h0IiwiZ2V0SGVpZ2h0IiwiZXNjYXBlWGh0bWxGb3JXZWJwYWNrIiwiYmdjb2xvciIsInN0eWxlIiwiYmFja2dyb3VuZENvbG9yIiwiY29uY2F0IiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJwcm9wZXJ0eSIsImRyYXciLCJjYW52YXMiLCJnZXRDb250ZXh0IiwiZ2V0SW1hZ2VEYXRhIiwiZGF0YSIsInRvRGF0YVVSTCIsInF1YWxpdHkiLCJjYW52YXNUb0Jsb2IiLCJkb21Ob2RlIiwibWFrZUltYWdlIiwiZGVsYXkiLCJpbWFnZSIsIm5ld0NhbnZhcyIsImRyYXdJbWFnZSIsImROb2RlIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiY3R4IiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJyb290IiwibWFrZU5vZGVDb3B5IiwiY2xvbmVDaGlsZHJlbiIsInByb2Nlc3NDbG9uZSIsIndpbmRvdyIsIkhUTUxDYW52YXNFbGVtZW50IiwiY2xvbmVDaGlsZHJlbkluT3JkZXIiLCJwYXJlbnQiLCJhcnJDaGlsZHJlbiIsImZsdCIsImRvbmUiLCJjaGlsZCIsImNoaWxkQ2xvbmUiLCJhcHBlbmRDaGlsZCIsIm9yaWdpbmFsIiwiY2hpbGRyZW4iLCJjaGlsZE5vZGVzIiwibGVuZ3RoIiwiYXNBcnJheSIsInJlc29sdmVBbGwiLCJjc3NUZXh0Iiwic3R5bGVOb2RlIiwiY3JlYXRlVGV4dE5vZGUiLCJpbmxpbmVBbGwiLCJhcmd1bWVudHMiLCJzZXRBdHRyaWJ1dGUiLCJzZXJpYWxpemVkU3RyaW5nIiwiWE1MU2VyaWFsaXplciIsInNlcmlhbGl6ZVRvU3RyaW5nIiwieGh0bWwiLCJlc2NhcGVYaHRtbCIsImZvcmVpZ25PYmplY3QiLCJzdmdTdHIiLCJzdmdUb01pbmlEYXRhVVJJIiwiVVJMX1JFR0VYIiwic2hvdWxkUHJvY2VzcyIsInJlYWRVcmxzIiwiaW5saW5lIiwic3RyaW5nIiwic2VhcmNoIiwicmVzdWx0IiwibWF0Y2giLCJleGVjIiwicHVzaCIsInVybCIsImlzRGF0YVVybCIsInVybEFzUmVnZXgiLCJ1cmwwIiwiUmVnRXhwIiwiZXNjYXBlIiwiYmFzZVVybCIsImdldCIsInVsIiwicmVzb2x2ZVVybCIsImdldEFuZEVuY29kZSIsImRhdGFBc1VybCIsIm1pbWVUeXBlIiwiZGF0YVVybCIsInJlcGxhY2UiLCJpc1NyY0FzRGF0YVVybCIsInVybHMiLCJzdHIiLCJyZWFkQWxsIiwid2ViRm9udHMiLCJhbGwiLCJtYXAiLCJ3ZWJGb250IiwiY3NzU3RyaW5ncyIsImpvaW4iLCJzdHlsZVNoZWV0cyIsImxvYWRFeHRlcm5hbFN0eWxlU2hlZXRzIiwiZ2V0Q3NzUnVsZXMiLCJzZWxlY3RXZWJGb250UnVsZXMiLCJydWxlcyIsIm5ld1dlYkZvbnQiLCJjc3NSdWxlcyIsInJ1bGUiLCJ0eXBlIiwiQ1NTUnVsZSIsIkZPTlRfRkFDRV9SVUxFIiwiZ2V0UHJvcGVydHlWYWx1ZSIsInNoZWV0IiwiaHJlZiIsImNhY2hlIiwiaW5jbHVkZXMiLCJmZXRjaCIsImNyZWRlbnRpYWxzIiwicmVzcG9uc2UiLCJ0ZXh0Iiwic2V0U3R5bGVTaGVldEJhc2VIcmVmIiwidG9TdHlsZVNoZWV0IiwiZXJyIiwiQ29uc29sZSIsIndhcm4iLCJJTUFHRV9FWFBPUlRfRVJST1JTIiwic3R5bGVTaGVldCIsImxvZyIsImUiLCJfdHlwZW9mMiIsImJpbmQiLCJ3ZWJGb250UnVsZSIsInBhcmVudFN0eWxlU2hlZXQiLCJzcmMiLCJuZXdJbWFnZSIsImVsZW1lbnQiLCJyZWplY3QiLCJvbmxvYWQiLCJvbmVycm9yIiwiRWxlbWVudCIsImlubGluZUJhY2tncm91bmQiLCJIVE1MSW1hZ2VFbGVtZW50IiwiYmFja2dyb3VuZCIsImlubGluZWQiLCJzZXRQcm9wZXJ0eSIsImdldFByb3BlcnR5UHJpb3JpdHkiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi9zcmMvZG9tLXRvLWltYWdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8qKlxuICogVGhpcyBmaWxlIGlzIGNvcGllZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS90c2F5ZW4vZG9tLXRvLWltYWdlXG4gKiBNb2RpZmllZCBieSBoZXNoYW4wMTMxIHRvIGFsbG93IGxvYWRpbmcgZXh0ZXJuYWwgc3R5bGVzaGVldHMgYW5kIGlubGluZSB3ZWJmb250c1xuICovXG5cbmltcG9ydCB3aW5kb3cgZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5pbXBvcnQgZG9jdW1lbnQgZnJvbSAnZ2xvYmFsL2RvY3VtZW50JztcbmltcG9ydCBDb25zb2xlIGZyb20gJ2dsb2JhbC9jb25zb2xlJztcbmltcG9ydCBzdmdUb01pbmlEYXRhVVJJIGZyb20gJ21pbmktc3ZnLWRhdGEtdXJpJztcbmltcG9ydCB7SU1BR0VfRVhQT1JUX0VSUk9SU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG5pbXBvcnQge1xuICBjYW52YXNUb0Jsb2IsXG4gIGVzY2FwZSxcbiAgZXNjYXBlWGh0bWwsXG4gIGRlbGF5LFxuICBwcm9jZXNzQ2xvbmUsXG4gIGFzQXJyYXksXG4gIG1ha2VJbWFnZSxcbiAgbWltZVR5cGUsXG4gIGRhdGFBc1VybCxcbiAgaXNEYXRhVXJsLFxuICBpc1NyY0FzRGF0YVVybCxcbiAgcmVzb2x2ZVVybCxcbiAgZ2V0V2lkdGgsXG4gIGdldEhlaWdodCxcbiAgZ2V0QW5kRW5jb2RlLFxuICBzZXRTdHlsZVNoZWV0QmFzZUhyZWYsXG4gIHRvU3R5bGVTaGVldFxufSBmcm9tICcuL2RvbS11dGlscyc7XG5cbmNvbnN0IGlubGluZXIgPSBuZXdJbmxpbmVyKCk7XG5jb25zdCBmb250RmFjZXMgPSBuZXdGb250RmFjZXMoKTtcbmNvbnN0IGltYWdlcyA9IG5ld0ltYWdlcygpO1xuLy8gRGVmYXVsdCBpbXBsIG9wdGlvbnNcbmNvbnN0IGRlZmF1bHRPcHRpb25zID0ge1xuICAvLyBEZWZhdWx0IGlzIHRvIGZhaWwgb24gZXJyb3IsIG5vIHBsYWNlaG9sZGVyXG4gIGltYWdlUGxhY2Vob2xkZXI6IHVuZGVmaW5lZCxcbiAgLy8gRGVmYXVsdCBjYWNoZSBidXN0IGlzIGZhbHNlLCBpdCB3aWxsIHVzZSB0aGUgY2FjaGVcbiAgY2FjaGVCdXN0OiBmYWxzZVxufTtcblxuY29uc3QgZG9tdG9pbWFnZSA9IHtcbiAgdG9TdmcsXG4gIHRvUG5nLFxuICB0b0pwZWcsXG4gIHRvQmxvYixcbiAgdG9QaXhlbERhdGEsXG4gIGltcGw6IHtcbiAgICBmb250RmFjZXMsXG4gICAgaW1hZ2VzLFxuICAgIGlubGluZXIsXG4gICAgb3B0aW9uczoge30gYXMgYW55XG4gIH1cbn07XG5cbi8qKlxuICogQHBhcmFtIHtOb2RlfSBub2RlIC0gVGhlIERPTSBOb2RlIG9iamVjdCB0byByZW5kZXJcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gUmVuZGVyaW5nIG9wdGlvbnNcbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtvcHRpb25zLmZpbHRlcl0gLSBTaG91bGQgcmV0dXJuIHRydWUgaWYgcGFzc2VkIG5vZGUgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBvdXRwdXRcbiAqICAgICAgICAgIChleGNsdWRpbmcgbm9kZSBtZWFucyBleGNsdWRpbmcgaXQncyBjaGlsZHJlbiBhcyB3ZWxsKS4gTm90IGNhbGxlZCBvbiB0aGUgcm9vdCBub2RlLlxuICogQHBhcmFtIHtTdHJpbmd9IFtvcHRpb25zLmJnY29sb3JdIC0gY29sb3IgZm9yIHRoZSBiYWNrZ3JvdW5kLCBhbnkgdmFsaWQgQ1NTIGNvbG9yIHZhbHVlLlxuICogQHBhcmFtIHtOdW1iZXJ9IFtvcHRpb25zLndpZHRoXSAtIHdpZHRoIHRvIGJlIGFwcGxpZWQgdG8gbm9kZSBiZWZvcmUgcmVuZGVyaW5nLlxuICogQHBhcmFtIHtOdW1iZXJ9IFtvcHRpb25zLmhlaWdodF0gLSBoZWlnaHQgdG8gYmUgYXBwbGllZCB0byBub2RlIGJlZm9yZSByZW5kZXJpbmcuXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnMuc3R5bGVdIC0gYW4gb2JqZWN0IHdob3NlIHByb3BlcnRpZXMgdG8gYmUgY29waWVkIHRvIG5vZGUncyBzdHlsZSBiZWZvcmUgcmVuZGVyaW5nLlxuICogQHBhcmFtIHtOdW1iZXJ9IFtvcHRpb25zLnF1YWxpdHldIC0gYSBOdW1iZXIgYmV0d2VlbiAwIGFuZCAxIGluZGljYXRpbmcgaW1hZ2UgcXVhbGl0eSAoYXBwbGljYWJsZSB0byBKUEVHIG9ubHkpLCBkZWZhdWx0cyB0byAxLjAuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmVzY2FwZVhodG1sRm9yV2VicGFja10gLSB3aGV0aGVyIHRvIGFwcGx5IGZpeCBmb3IgdWdsaWZ5IGVycm9yIGluIGRvbS10by1pbWFnZSAoc2hvdWxkIGJlIHRydWUgZm9yIHdlYnBhY2sgYnVpbGRzKSwgZGVmYXVsdHMgdG8gdHJ1ZS5cbiAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0aW9ucy5pbWFnZVBsYWNlaG9sZGVyXSAtIGRhdGFVUkwgdG8gdXNlIGFzIGEgcGxhY2Vob2xkZXIgZm9yIGZhaWxlZCBpbWFnZXMsIGRlZmF1bHQgYmVoYXZpb3VyIGlzIHRvIGZhaWwgZmFzdCBvbiBpbWFnZXMgd2UgY2FuJ3QgZmV0Y2hcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gW29wdGlvbnMuY2FjaGVCdXN0XSAtIHNldCB0byB0cnVlIHRvIGNhY2hlIGJ1c3QgYnkgYXBwZW5kaW5nIHRoZSB0aW1lIHRvIHRoZSByZXF1ZXN0IHVybFxuICogQHJldHVybiB7UHJvbWlzZX0gLSBBIHByb21pc2UgdGhhdCBpcyBmdWxmaWxsZWQgd2l0aCBhIFNWRyBpbWFnZSBkYXRhIFVSTFxuICogKi9cbmZ1bmN0aW9uIHRvU3ZnKG5vZGUsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIGNvcHlPcHRpb25zKG9wdGlvbnMpO1xuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5vZGUpXG4gICAgLnRoZW4obmQgPT4gY2xvbmVOb2RlKG5kLCBvcHRpb25zLmZpbHRlciwgdHJ1ZSkpXG4gICAgLnRoZW4oZW1iZWRGb250cylcbiAgICAudGhlbihpbmxpbmVJbWFnZXMpXG4gICAgLnRoZW4oYXBwbHlPcHRpb25zKVxuICAgIC50aGVuKGNsb25lID0+XG4gICAgICBtYWtlU3ZnRGF0YVVyaShcbiAgICAgICAgY2xvbmUsXG4gICAgICAgIG9wdGlvbnMud2lkdGggfHwgZ2V0V2lkdGgobm9kZSksXG4gICAgICAgIG9wdGlvbnMuaGVpZ2h0IHx8IGdldEhlaWdodChub2RlKSxcbiAgICAgICAgb3B0aW9ucy5lc2NhcGVYaHRtbEZvcldlYnBhY2tcbiAgICAgIClcbiAgICApO1xuXG4gIGZ1bmN0aW9uIGFwcGx5T3B0aW9ucyhjbG9uZSkge1xuICAgIGlmIChvcHRpb25zLmJnY29sb3IpIGNsb25lLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IG9wdGlvbnMuYmdjb2xvcjtcblxuICAgIGlmIChvcHRpb25zLndpZHRoKSBjbG9uZS5zdHlsZS53aWR0aCA9IGAke29wdGlvbnMud2lkdGh9cHhgO1xuICAgIGlmIChvcHRpb25zLmhlaWdodCkgY2xvbmUuc3R5bGUuaGVpZ2h0ID0gYCR7b3B0aW9ucy5oZWlnaHR9cHhgO1xuXG4gICAgaWYgKG9wdGlvbnMuc3R5bGUpXG4gICAgICBPYmplY3Qua2V5cyhvcHRpb25zLnN0eWxlKS5mb3JFYWNoKHByb3BlcnR5ID0+IHtcbiAgICAgICAgY2xvbmUuc3R5bGVbcHJvcGVydHldID0gb3B0aW9ucy5zdHlsZVtwcm9wZXJ0eV07XG4gICAgICB9KTtcblxuICAgIHJldHVybiBjbG9uZTtcbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7Tm9kZX0gbm9kZSAtIFRoZSBET00gTm9kZSBvYmplY3QgdG8gcmVuZGVyXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIFJlbmRlcmluZyBvcHRpb25zXG4gKiBAcmV0dXJuIHtQcm9taXNlfSAtIEEgcHJvbWlzZSB0aGF0IGlzIGZ1bGZpbGxlZCB3aXRoIGEgVWludDhBcnJheSBjb250YWluaW5nIFJHQkEgcGl4ZWwgZGF0YS5cbiAqICovXG5mdW5jdGlvbiB0b1BpeGVsRGF0YShub2RlLCBvcHRpb25zKSB7XG4gIHJldHVybiBkcmF3KG5vZGUsIG9wdGlvbnMgfHwge30pLnRoZW4oXG4gICAgY2FudmFzID0+IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLmdldEltYWdlRGF0YSgwLCAwLCBnZXRXaWR0aChub2RlKSwgZ2V0SGVpZ2h0KG5vZGUpKS5kYXRhXG4gICk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtOb2RlfSBub2RlIC0gVGhlIERPTSBOb2RlIG9iamVjdCB0byByZW5kZXJcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gUmVuZGVyaW5nIG9wdGlvbnNcbiAqIEByZXR1cm4ge1Byb21pc2V9IC0gQSBwcm9taXNlIHRoYXQgaXMgZnVsZmlsbGVkIHdpdGggYSBQTkcgaW1hZ2UgZGF0YSBVUkxcbiAqICovXG5mdW5jdGlvbiB0b1BuZyhub2RlLCBvcHRpb25zKSB7XG4gIHJldHVybiBkcmF3KG5vZGUsIG9wdGlvbnMgfHwge30pLnRoZW4oY2FudmFzID0+IGNhbnZhcy50b0RhdGFVUkwoKSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtOb2RlfSBub2RlIC0gVGhlIERPTSBOb2RlIG9iamVjdCB0byByZW5kZXJcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gUmVuZGVyaW5nIG9wdGlvbnNcbiAqIEByZXR1cm4ge1Byb21pc2V9IC0gQSBwcm9taXNlIHRoYXQgaXMgZnVsZmlsbGVkIHdpdGggYSBKUEVHIGltYWdlIGRhdGEgVVJMXG4gKiAqL1xuZnVuY3Rpb24gdG9KcGVnKG5vZGUsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIHJldHVybiBkcmF3KG5vZGUsIG9wdGlvbnMpLnRoZW4oY2FudmFzID0+IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnLCBvcHRpb25zLnF1YWxpdHkgfHwgMS4wKSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtOb2RlfSBub2RlIC0gVGhlIERPTSBOb2RlIG9iamVjdCB0byByZW5kZXJcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gUmVuZGVyaW5nIG9wdGlvbnNcbiAqIEByZXR1cm4ge1Byb21pc2V9IC0gQSBwcm9taXNlIHRoYXQgaXMgZnVsZmlsbGVkIHdpdGggYSBQTkcgaW1hZ2UgYmxvYlxuICogKi9cbmZ1bmN0aW9uIHRvQmxvYihub2RlLCBvcHRpb25zKSB7XG4gIHJldHVybiBkcmF3KG5vZGUsIG9wdGlvbnMgfHwge30pLnRoZW4oY2FudmFzVG9CbG9iKTtcbn1cblxuZnVuY3Rpb24gY29weU9wdGlvbnMob3B0aW9ucykge1xuICAvLyBDb3B5IG9wdGlvbnMgdG8gaW1wbCBvcHRpb25zIGZvciB1c2UgaW4gaW1wbFxuICBpZiAodHlwZW9mIG9wdGlvbnMuaW1hZ2VQbGFjZWhvbGRlciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBkb210b2ltYWdlLmltcGwub3B0aW9ucy5pbWFnZVBsYWNlaG9sZGVyID0gZGVmYXVsdE9wdGlvbnMuaW1hZ2VQbGFjZWhvbGRlcjtcbiAgfSBlbHNlIHtcbiAgICBkb210b2ltYWdlLmltcGwub3B0aW9ucy5pbWFnZVBsYWNlaG9sZGVyID0gb3B0aW9ucy5pbWFnZVBsYWNlaG9sZGVyO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBvcHRpb25zLmNhY2hlQnVzdCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBkb210b2ltYWdlLmltcGwub3B0aW9ucy5jYWNoZUJ1c3QgPSBkZWZhdWx0T3B0aW9ucy5jYWNoZUJ1c3Q7XG4gIH0gZWxzZSB7XG4gICAgZG9tdG9pbWFnZS5pbXBsLm9wdGlvbnMuY2FjaGVCdXN0ID0gb3B0aW9ucy5jYWNoZUJ1c3Q7XG4gIH1cbn1cblxuZnVuY3Rpb24gZHJhdyhkb21Ob2RlLCBvcHRpb25zKSB7XG4gIHJldHVybiB0b1N2Zyhkb21Ob2RlLCBvcHRpb25zKVxuICAgIC50aGVuKG1ha2VJbWFnZSlcbiAgICAudGhlbihkZWxheSgxMDApKVxuICAgIC50aGVuKGltYWdlID0+IHtcbiAgICAgIGNvbnN0IGNhbnZhcyA9IG5ld0NhbnZhcyhkb21Ob2RlKTtcbiAgICAgIGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLmRyYXdJbWFnZShpbWFnZSwgMCwgMCk7XG4gICAgICByZXR1cm4gY2FudmFzO1xuICAgIH0pO1xuXG4gIGZ1bmN0aW9uIG5ld0NhbnZhcyhkTm9kZSkge1xuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIGNhbnZhcy53aWR0aCA9IG9wdGlvbnMud2lkdGggfHwgZ2V0V2lkdGgoZE5vZGUpO1xuICAgIGNhbnZhcy5oZWlnaHQgPSBvcHRpb25zLmhlaWdodCB8fCBnZXRIZWlnaHQoZE5vZGUpO1xuXG4gICAgaWYgKG9wdGlvbnMuYmdjb2xvcikge1xuICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICBjdHguZmlsbFN0eWxlID0gb3B0aW9ucy5iZ2NvbG9yO1xuICAgICAgY3R4LmZpbGxSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhbnZhcztcbiAgfVxufVxuXG5mdW5jdGlvbiBjbG9uZU5vZGUobm9kZSwgZmlsdGVyLCByb290KSB7XG4gIGlmICghcm9vdCAmJiBmaWx0ZXIgJiYgIWZpbHRlcihub2RlKSkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUobm9kZSlcbiAgICAudGhlbihtYWtlTm9kZUNvcHkpXG4gICAgLnRoZW4oY2xvbmUgPT4gY2xvbmVDaGlsZHJlbihub2RlLCBjbG9uZSwgZmlsdGVyKSlcbiAgICAudGhlbihjbG9uZSA9PiBwcm9jZXNzQ2xvbmUobm9kZSwgY2xvbmUpKTtcblxuICBmdW5jdGlvbiBtYWtlTm9kZUNvcHkobmQpIHtcbiAgICBpZiAobmQgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTENhbnZhc0VsZW1lbnQpIHtcbiAgICAgIHJldHVybiBtYWtlSW1hZ2UobmQudG9EYXRhVVJMKCkpO1xuICAgIH1cbiAgICByZXR1cm4gbmQuY2xvbmVOb2RlKGZhbHNlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNsb25lQ2hpbGRyZW5Jbk9yZGVyKHBhcmVudCwgYXJyQ2hpbGRyZW4sIGZsdCkge1xuICAgIGxldCBkb25lID0gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgYXJyQ2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiB7XG4gICAgICBkb25lID0gZG9uZVxuICAgICAgICAudGhlbigoKSA9PiBjbG9uZU5vZGUoY2hpbGQsIGZsdCwgbnVsbCkpXG4gICAgICAgIC50aGVuKGNoaWxkQ2xvbmUgPT4ge1xuICAgICAgICAgIGlmIChjaGlsZENsb25lKSB7XG4gICAgICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoY2hpbGRDbG9uZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gZG9uZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNsb25lQ2hpbGRyZW4ob3JpZ2luYWwsIGNsb25lLCBmbHQpIHtcbiAgICBjb25zdCBjaGlsZHJlbiA9IG9yaWdpbmFsLmNoaWxkTm9kZXM7XG4gICAgaWYgKGNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShjbG9uZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsb25lQ2hpbGRyZW5Jbk9yZGVyKGNsb25lLCBhc0FycmF5KGNoaWxkcmVuKSwgZmx0KS50aGVuKCgpID0+IGNsb25lKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBlbWJlZEZvbnRzKG5vZGUpIHtcbiAgcmV0dXJuIGZvbnRGYWNlcy5yZXNvbHZlQWxsKCkudGhlbihjc3NUZXh0ID0+IHtcbiAgICBjb25zdCBzdHlsZU5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgIG5vZGUuYXBwZW5kQ2hpbGQoc3R5bGVOb2RlKTtcbiAgICBzdHlsZU5vZGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzVGV4dCkpO1xuICAgIHJldHVybiBub2RlO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaW5saW5lSW1hZ2VzKG5vZGUpIHtcbiAgcmV0dXJuIGltYWdlcy5pbmxpbmVBbGwobm9kZSkudGhlbigoKSA9PiBub2RlKTtcbn1cblxuZnVuY3Rpb24gbWFrZVN2Z0RhdGFVcmkobm9kZSwgd2lkdGgsIGhlaWdodCwgZXNjYXBlWGh0bWxGb3JXZWJwYWNrID0gdHJ1ZSkge1xuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5vZGUpLnRoZW4obmQgPT4ge1xuICAgIG5kLnNldEF0dHJpYnV0ZSgneG1sbnMnLCAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcpO1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRTdHJpbmcgPSBuZXcgd2luZG93LlhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyhuZCk7XG5cbiAgICBjb25zdCB4aHRtbCA9IGVzY2FwZVhodG1sRm9yV2VicGFjayA/IGVzY2FwZVhodG1sKHNlcmlhbGl6ZWRTdHJpbmcpIDogc2VyaWFsaXplZFN0cmluZztcbiAgICBjb25zdCBmb3JlaWduT2JqZWN0ID0gYDxmb3JlaWduT2JqZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCI+JHt4aHRtbH08L2ZvcmVpZ25PYmplY3Q+YDtcbiAgICBjb25zdCBzdmdTdHIgPSBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIke3dpZHRofVwiIGhlaWdodD1cIiR7aGVpZ2h0fVwiPiR7Zm9yZWlnbk9iamVjdH08L3N2Zz5gO1xuXG4gICAgLy8gT3B0aW1pemluZyBTVkdzIGluIGRhdGEgVVJJc1xuICAgIC8vIHNlZSBodHRwczovL2NvZGVwZW4uaW8vdGlndC9wb3N0L29wdGltaXppbmctc3Zncy1pbi1kYXRhLXVyaXNcbiAgICAvLyB0aGUgYmVzdCB3YXkgb2YgZW5jb2RpbmcgU1ZHIGluIGEgZGF0YTogVVJJIGlzIGRhdGE6aW1hZ2Uvc3ZnK3htbCxbYWN0dWFsIGRhdGFdLlxuICAgIC8vIFdlIGRvbuKAmXQgbmVlZCB0aGUgO2NoYXJzZXQ9dXRmLTggcGFyYW1ldGVyIGJlY2F1c2UgdGhlIGdpdmVuIFNWRyBpcyBBU0NJSS5cbiAgICByZXR1cm4gc3ZnVG9NaW5pRGF0YVVSSShzdmdTdHIpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gbmV3SW5saW5lcigpIHtcbiAgY29uc3QgVVJMX1JFR0VYID0gL3VybFxcKFsnXCJdPyhbXidcIl0rPylbJ1wiXT9cXCkvZztcblxuICByZXR1cm4ge1xuICAgIGlubGluZUFsbCxcbiAgICBzaG91bGRQcm9jZXNzLFxuICAgIGltcGw6IHtcbiAgICAgIHJlYWRVcmxzLFxuICAgICAgaW5saW5lXG4gICAgfVxuICB9O1xuXG4gIGZ1bmN0aW9uIHNob3VsZFByb2Nlc3Moc3RyaW5nKSB7XG4gICAgcmV0dXJuIHN0cmluZy5zZWFyY2goVVJMX1JFR0VYKSAhPT0gLTE7XG4gIH1cblxuICBmdW5jdGlvbiByZWFkVXJscyhzdHJpbmcpIHtcbiAgICBjb25zdCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gICAgbGV0IG1hdGNoOiBudWxsIHwgUmVnRXhwRXhlY0FycmF5O1xuICAgIHdoaWxlICgobWF0Y2ggPSBVUkxfUkVHRVguZXhlYyhzdHJpbmcpKSAhPT0gbnVsbCkge1xuICAgICAgcmVzdWx0LnB1c2gobWF0Y2hbMV0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0LmZpbHRlcih1cmwgPT4ge1xuICAgICAgcmV0dXJuICFpc0RhdGFVcmwodXJsKTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHVybEFzUmVnZXgodXJsMCkge1xuICAgIHJldHVybiBuZXcgUmVnRXhwKGAodXJsXFxcXChbJ1wiXT8pKCR7ZXNjYXBlKHVybDApfSkoWydcIl0/XFxcXCkpYCwgJ2cnKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlubGluZShzdHJpbmcsIHVybCwgYmFzZVVybCwgZ2V0KSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1cmwpXG4gICAgICAudGhlbih1bCA9PiAoYmFzZVVybCA/IHJlc29sdmVVcmwodWwsIGJhc2VVcmwpIDogdWwpKVxuICAgICAgLnRoZW4odWwgPT4gKHR5cGVvZiBnZXQgPT09ICdmdW5jdGlvbicgPyBnZXQodWwpIDogZ2V0QW5kRW5jb2RlKHVsLCBkb210b2ltYWdlLmltcGwub3B0aW9ucykpKVxuICAgICAgLnRoZW4oZGF0YSA9PiBkYXRhQXNVcmwoZGF0YSwgbWltZVR5cGUodXJsKSkpXG4gICAgICAudGhlbihkYXRhVXJsID0+IHN0cmluZy5yZXBsYWNlKHVybEFzUmVnZXgodXJsKSwgYCQxJHtkYXRhVXJsfSQzYCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gaW5saW5lQWxsKHN0cmluZywgYmFzZVVybCwgZ2V0KSB7XG4gICAgaWYgKCFzaG91bGRQcm9jZXNzKHN0cmluZykgfHwgaXNTcmNBc0RhdGFVcmwoc3RyaW5nKSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShzdHJpbmcpO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHN0cmluZylcbiAgICAgIC50aGVuKHJlYWRVcmxzKVxuICAgICAgLnRoZW4odXJscyA9PiB7XG4gICAgICAgIGxldCBkb25lID0gUHJvbWlzZS5yZXNvbHZlKHN0cmluZyk7XG4gICAgICAgIHVybHMuZm9yRWFjaCh1cmwgPT4ge1xuICAgICAgICAgIGRvbmUgPSBkb25lLnRoZW4oc3RyID0+IGlubGluZShzdHIsIHVybCwgYmFzZVVybCwgZ2V0KSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZG9uZTtcbiAgICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIG5ld0ZvbnRGYWNlcygpIHtcbiAgcmV0dXJuIHtcbiAgICByZXNvbHZlQWxsLFxuICAgIGltcGw6IHtyZWFkQWxsfVxuICB9O1xuXG4gIGZ1bmN0aW9uIHJlc29sdmVBbGwoKSB7XG4gICAgcmV0dXJuIHJlYWRBbGwoKVxuICAgICAgLnRoZW4od2ViRm9udHMgPT4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwod2ViRm9udHMubWFwKHdlYkZvbnQgPT4gd2ViRm9udC5yZXNvbHZlKCkpKTtcbiAgICAgIH0pXG4gICAgICAudGhlbihjc3NTdHJpbmdzID0+IGNzc1N0cmluZ3Muam9pbignXFxuJykpO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVhZEFsbCgpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGFzQXJyYXkoZG9jdW1lbnQuc3R5bGVTaGVldHMpKVxuICAgICAgLnRoZW4obG9hZEV4dGVybmFsU3R5bGVTaGVldHMpXG4gICAgICAudGhlbihnZXRDc3NSdWxlcylcbiAgICAgIC50aGVuKHNlbGVjdFdlYkZvbnRSdWxlcylcbiAgICAgIC50aGVuKHJ1bGVzID0+IHJ1bGVzLm1hcChuZXdXZWJGb250KSk7XG5cbiAgICBmdW5jdGlvbiBzZWxlY3RXZWJGb250UnVsZXMoY3NzUnVsZXMpIHtcbiAgICAgIHJldHVybiBjc3NSdWxlc1xuICAgICAgICAuZmlsdGVyKHJ1bGUgPT4gcnVsZS50eXBlID09PSB3aW5kb3cuQ1NTUnVsZS5GT05UX0ZBQ0VfUlVMRSlcbiAgICAgICAgLmZpbHRlcihydWxlID0+IGlubGluZXIuc2hvdWxkUHJvY2VzcyhydWxlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3NyYycpKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbG9hZEV4dGVybmFsU3R5bGVTaGVldHMoc3R5bGVTaGVldHMpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgICAgc3R5bGVTaGVldHMubWFwKHNoZWV0ID0+IHtcbiAgICAgICAgICBpZiAoc2hlZXQuaHJlZikge1xuICAgICAgICAgICAgLy8gY2xvdWRmb250IGRvZXNuJ3QgaGF2ZSBhbGxvdyBvcmlnaW4gaGVhZGVyIHByb3Blcmx5IHNldFxuICAgICAgICAgICAgLy8gZXJyb3IgcmVzcG9uc2Ugd2lsbCByZW1haW4gaW4gY2FjaGVcbiAgICAgICAgICAgIGNvbnN0IGNhY2hlID0gc2hlZXQuaHJlZi5pbmNsdWRlcygndWJlci1mb250cycpID8gJ25vLWNhY2hlJyA6ICdkZWZhdWx0JztcbiAgICAgICAgICAgIHJldHVybiB3aW5kb3dcbiAgICAgICAgICAgICAgLmZldGNoKHNoZWV0LmhyZWYsIHtjcmVkZW50aWFsczogJ29taXQnLCBjYWNoZX0pXG4gICAgICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSlcbiAgICAgICAgICAgICAgLnRoZW4odGV4dCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gc2V0U3R5bGVTaGVldEJhc2VIcmVmKHRleHQsIHNoZWV0LmhyZWYpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0b1N0eWxlU2hlZXQocmVzdWx0KTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgLy8gSGFuZGxlIGFueSBlcnJvciB0aGF0IG9jY3VycmVkIGluIGFueSBvZiB0aGUgcHJldmlvdXNcbiAgICAgICAgICAgICAgICAvLyBwcm9taXNlcyBpbiB0aGUgY2hhaW4uIHN0eWxlc2hlZXQgZmFpbGVkIHRvIGxvYWQgc2hvdWxkIG5vdCBzdG9wXG4gICAgICAgICAgICAgICAgLy8gdGhlIHByb2Nlc3MsIGhlbmNlIHJlc3VsdCBpbiBvbmx5IGEgd2FybmluZywgaW5zdGVhZCBvZiByZWplY3RcbiAgICAgICAgICAgICAgICBDb25zb2xlLndhcm4oSU1BR0VfRVhQT1JUX0VSUk9SUy5zdHlsZVNoZWV0LCBzaGVldC5ocmVmKTtcbiAgICAgICAgICAgICAgICBDb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoc2hlZXQpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRDc3NSdWxlcyhzdHlsZVNoZWV0cykge1xuICAgICAgY29uc3QgY3NzUnVsZXM6IGFueVtdID0gW107XG4gICAgICBzdHlsZVNoZWV0cy5mb3JFYWNoKHNoZWV0ID0+IHtcbiAgICAgICAgLy8gdHJ5Li4uY2F0Y2ggYmVjYXVzZSBicm93c2VyIG1heSBub3QgYWJsZSB0byBlbnVtZXJhdGUgcnVsZXMgZm9yIGNyb3NzLWRvbWFpbiBzaGVldHNcbiAgICAgICAgaWYgKCFzaGVldCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcnVsZXM7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcnVsZXMgPSBzaGVldC5ydWxlcyB8fCBzaGVldC5jc3NSdWxlcztcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIENvbnNvbGUubG9nKGAnQ2FuJ3QgcmVhZCB0aGUgY3NzIHJ1bGVzIG9mOiAke3NoZWV0LmhyZWZ9YCwgZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJ1bGVzICYmIHR5cGVvZiBydWxlcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXNBcnJheShydWxlcyB8fCBbXSkuZm9yRWFjaChjc3NSdWxlcy5wdXNoLmJpbmQoY3NzUnVsZXMpKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBDb25zb2xlLmxvZyhgRXJyb3Igd2hpbGUgcmVhZGluZyBDU1MgcnVsZXMgZnJvbSAke3NoZWV0LmhyZWZ9YCwgZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIENvbnNvbGUubG9nKCdnZXRDc3NSdWxlcyBjYW4gbm90IGZpbmQgY3NzUnVsZXMnKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gY3NzUnVsZXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbmV3V2ViRm9udCh3ZWJGb250UnVsZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVzb2x2ZTogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGJhc2VVcmwgPSAod2ViRm9udFJ1bGUucGFyZW50U3R5bGVTaGVldCB8fCB7fSkuaHJlZjtcbiAgICAgICAgICByZXR1cm4gaW5saW5lci5pbmxpbmVBbGwod2ViRm9udFJ1bGUuY3NzVGV4dCwgYmFzZVVybCwgbnVsbCk7XG4gICAgICAgIH0sXG4gICAgICAgIHNyYzogKCkgPT4gd2ViRm9udFJ1bGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnc3JjJylcbiAgICAgIH07XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIG5ld0ltYWdlcygpIHtcbiAgcmV0dXJuIHtcbiAgICBpbmxpbmVBbGwsXG4gICAgaW1wbDoge1xuICAgICAgbmV3SW1hZ2VcbiAgICB9XG4gIH07XG5cbiAgZnVuY3Rpb24gbmV3SW1hZ2UoZWxlbWVudCkge1xuICAgIGZ1bmN0aW9uIGlubGluZShnZXQpIHtcbiAgICAgIGlmIChpc0RhdGFVcmwoZWxlbWVudC5zcmMpKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZWxlbWVudC5zcmMpXG4gICAgICAgIC50aGVuKHVsID0+XG4gICAgICAgICAgdHlwZW9mIGdldCA9PT0gJ2Z1bmN0aW9uJyA/IGdldCh1bCkgOiBnZXRBbmRFbmNvZGUodWwsIGRvbXRvaW1hZ2UuaW1wbC5vcHRpb25zKVxuICAgICAgICApXG4gICAgICAgIC50aGVuKGRhdGEgPT4gZGF0YUFzVXJsKGRhdGEsIG1pbWVUeXBlKGVsZW1lbnQuc3JjKSkpXG4gICAgICAgIC50aGVuKFxuICAgICAgICAgIGRhdGFVcmwgPT5cbiAgICAgICAgICAgIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSByZXNvbHZlO1xuICAgICAgICAgICAgICBlbGVtZW50Lm9uZXJyb3IgPSByZWplY3Q7XG4gICAgICAgICAgICAgIGVsZW1lbnQuc3JjID0gZGF0YVVybDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlubGluZVxuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiBpbmxpbmVBbGwobm9kZSkge1xuICAgIGlmICghKG5vZGUgaW5zdGFuY2VvZiBFbGVtZW50KSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShub2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW5saW5lQmFja2dyb3VuZChub2RlKS50aGVuKCgpID0+IHtcbiAgICAgIGlmIChub2RlIGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudCkge1xuICAgICAgICByZXR1cm4gbmV3SW1hZ2Uobm9kZSkuaW5saW5lKG51bGwpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFByb21pc2UuYWxsKGFzQXJyYXkobm9kZS5jaGlsZE5vZGVzKS5tYXAoY2hpbGQgPT4gaW5saW5lQWxsKGNoaWxkKSkpO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gaW5saW5lQmFja2dyb3VuZChuZCkge1xuICAgICAgY29uc3QgYmFja2dyb3VuZCA9IG5kLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ2JhY2tncm91bmQnKTtcblxuICAgICAgaWYgKCFiYWNrZ3JvdW5kKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobmQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaW5saW5lclxuICAgICAgICAuaW5saW5lQWxsKGJhY2tncm91bmQsIG51bGwsIG51bGwpXG4gICAgICAgIC50aGVuKGlubGluZWQgPT4ge1xuICAgICAgICAgIG5kLnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kJywgaW5saW5lZCwgbmQuc3R5bGUuZ2V0UHJvcGVydHlQcmlvcml0eSgnYmFja2dyb3VuZCcpKTtcbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oKCkgPT4gbmQpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBkb210b2ltYWdlO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQVFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFNBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLFFBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLGVBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUosT0FBQTtBQUVBLElB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
|
421
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2luZG93IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZG9jdW1lbnQiLCJfY29uc29sZSIsIl9taW5pU3ZnRGF0YVVyaSIsIl9jb25zdGFudHMiLCJfZG9tVXRpbHMiLCJpbmxpbmVyIiwibmV3SW5saW5lciIsImZvbnRGYWNlcyIsIm5ld0ZvbnRGYWNlcyIsImltYWdlcyIsIm5ld0ltYWdlcyIsImRlZmF1bHRPcHRpb25zIiwiaW1hZ2VQbGFjZWhvbGRlciIsInVuZGVmaW5lZCIsImNhY2hlQnVzdCIsImRvbXRvaW1hZ2UiLCJ0b1N2ZyIsInRvUG5nIiwidG9KcGVnIiwidG9CbG9iIiwidG9QaXhlbERhdGEiLCJpbXBsIiwib3B0aW9ucyIsIm5vZGUiLCJjb3B5T3B0aW9ucyIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsIm5kIiwiY2xvbmVOb2RlIiwiZmlsdGVyIiwiZW1iZWRGb250cyIsImlubGluZUltYWdlcyIsImFwcGx5T3B0aW9ucyIsImNsb25lIiwibWFrZVN2Z0RhdGFVcmkiLCJ3aWR0aCIsImdldFdpZHRoIiwiaGVpZ2h0IiwiZ2V0SGVpZ2h0IiwiZXNjYXBlWGh0bWxGb3JXZWJwYWNrIiwiYmdjb2xvciIsInN0eWxlIiwiYmFja2dyb3VuZENvbG9yIiwiY29uY2F0IiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJwcm9wZXJ0eSIsImRyYXciLCJjYW52YXMiLCJnZXRDb250ZXh0IiwiZ2V0SW1hZ2VEYXRhIiwiZGF0YSIsInRvRGF0YVVSTCIsInF1YWxpdHkiLCJjYW52YXNUb0Jsb2IiLCJkb21Ob2RlIiwibWFrZUltYWdlIiwiZGVsYXkiLCJpbWFnZSIsIm5ld0NhbnZhcyIsImRyYXdJbWFnZSIsImROb2RlIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiY3R4IiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJyb290IiwibWFrZU5vZGVDb3B5IiwiY2xvbmVDaGlsZHJlbiIsInByb2Nlc3NDbG9uZSIsIldpbmRvdyIsIkhUTUxDYW52YXNFbGVtZW50IiwiY2xvbmVDaGlsZHJlbkluT3JkZXIiLCJwYXJlbnQiLCJhcnJDaGlsZHJlbiIsImZsdCIsImRvbmUiLCJjaGlsZCIsImNoaWxkQ2xvbmUiLCJhcHBlbmRDaGlsZCIsIm9yaWdpbmFsIiwiY2hpbGRyZW4iLCJjaGlsZE5vZGVzIiwibGVuZ3RoIiwiYXNBcnJheSIsInJlc29sdmVBbGwiLCJjc3NUZXh0Iiwic3R5bGVOb2RlIiwiY3JlYXRlVGV4dE5vZGUiLCJpbmxpbmVBbGwiLCJhcmd1bWVudHMiLCJzZXRBdHRyaWJ1dGUiLCJzZXJpYWxpemVkU3RyaW5nIiwiWE1MU2VyaWFsaXplciIsInNlcmlhbGl6ZVRvU3RyaW5nIiwieGh0bWwiLCJlc2NhcGVYaHRtbCIsImZvcmVpZ25PYmplY3QiLCJzdmdTdHIiLCJzdmdUb01pbmlEYXRhVVJJIiwiVVJMX1JFR0VYIiwic2hvdWxkUHJvY2VzcyIsInJlYWRVcmxzIiwiaW5saW5lIiwic3RyaW5nIiwic2VhcmNoIiwicmVzdWx0IiwibWF0Y2giLCJleGVjIiwicHVzaCIsInVybCIsImlzRGF0YVVybCIsInVybEFzUmVnZXgiLCJ1cmwwIiwiUmVnRXhwIiwiZXNjYXBlIiwiYmFzZVVybCIsImdldCIsInVsIiwicmVzb2x2ZVVybCIsImdldEFuZEVuY29kZSIsImRhdGFBc1VybCIsIm1pbWVUeXBlIiwiZGF0YVVybCIsInJlcGxhY2UiLCJpc1NyY0FzRGF0YVVybCIsInVybHMiLCJzdHIiLCJyZWFkQWxsIiwid2ViRm9udHMiLCJhbGwiLCJtYXAiLCJ3ZWJGb250IiwiY3NzU3RyaW5ncyIsImpvaW4iLCJzdHlsZVNoZWV0cyIsImxvYWRFeHRlcm5hbFN0eWxlU2hlZXRzIiwiZ2V0Q3NzUnVsZXMiLCJzZWxlY3RXZWJGb250UnVsZXMiLCJydWxlcyIsIm5ld1dlYkZvbnQiLCJjc3NSdWxlcyIsInJ1bGUiLCJ0eXBlIiwiQ1NTUnVsZSIsIkZPTlRfRkFDRV9SVUxFIiwiZ2V0UHJvcGVydHlWYWx1ZSIsInNoZWV0IiwiaHJlZiIsImNhY2hlIiwiaW5jbHVkZXMiLCJmZXRjaCIsImNyZWRlbnRpYWxzIiwicmVzcG9uc2UiLCJ0ZXh0Iiwic2V0U3R5bGVTaGVldEJhc2VIcmVmIiwidG9TdHlsZVNoZWV0IiwiZXJyIiwiQ29uc29sZSIsIndhcm4iLCJJTUFHRV9FWFBPUlRfRVJST1JTIiwic3R5bGVTaGVldCIsImxvZyIsImUiLCJfdHlwZW9mMiIsImJpbmQiLCJ3ZWJGb250UnVsZSIsInBhcmVudFN0eWxlU2hlZXQiLCJzcmMiLCJuZXdJbWFnZSIsImVsZW1lbnQiLCJyZWplY3QiLCJvbmxvYWQiLCJvbmVycm9yIiwiRWxlbWVudCIsImlubGluZUJhY2tncm91bmQiLCJIVE1MSW1hZ2VFbGVtZW50IiwiYmFja2dyb3VuZCIsImlubGluZWQiLCJzZXRQcm9wZXJ0eSIsImdldFByb3BlcnR5UHJpb3JpdHkiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi9zcmMvZG9tLXRvLWltYWdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8qKlxuICogVGhpcyBmaWxlIGlzIGNvcGllZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS90c2F5ZW4vZG9tLXRvLWltYWdlXG4gKiBNb2RpZmllZCBieSBoZXNoYW4wMTMxIHRvIGFsbG93IGxvYWRpbmcgZXh0ZXJuYWwgc3R5bGVzaGVldHMgYW5kIGlubGluZSB3ZWJmb250c1xuICovXG5cbmltcG9ydCBXaW5kb3cgZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5pbXBvcnQgZG9jdW1lbnQgZnJvbSAnZ2xvYmFsL2RvY3VtZW50JztcbmltcG9ydCBDb25zb2xlIGZyb20gJ2dsb2JhbC9jb25zb2xlJztcbmltcG9ydCBzdmdUb01pbmlEYXRhVVJJIGZyb20gJ21pbmktc3ZnLWRhdGEtdXJpJztcbmltcG9ydCB7SU1BR0VfRVhQT1JUX0VSUk9SU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG5pbXBvcnQge1xuICBjYW52YXNUb0Jsb2IsXG4gIGVzY2FwZSxcbiAgZXNjYXBlWGh0bWwsXG4gIGRlbGF5LFxuICBwcm9jZXNzQ2xvbmUsXG4gIGFzQXJyYXksXG4gIG1ha2VJbWFnZSxcbiAgbWltZVR5cGUsXG4gIGRhdGFBc1VybCxcbiAgaXNEYXRhVXJsLFxuICBpc1NyY0FzRGF0YVVybCxcbiAgcmVzb2x2ZVVybCxcbiAgZ2V0V2lkdGgsXG4gIGdldEhlaWdodCxcbiAgZ2V0QW5kRW5jb2RlLFxuICBzZXRTdHlsZVNoZWV0QmFzZUhyZWYsXG4gIHRvU3R5bGVTaGVldFxufSBmcm9tICcuL2RvbS11dGlscyc7XG5cbmNvbnN0IGlubGluZXIgPSBuZXdJbmxpbmVyKCk7XG5jb25zdCBmb250RmFjZXMgPSBuZXdGb250RmFjZXMoKTtcbmNvbnN0IGltYWdlcyA9IG5ld0ltYWdlcygpO1xuLy8gRGVmYXVsdCBpbXBsIG9wdGlvbnNcbmNvbnN0IGRlZmF1bHRPcHRpb25zID0ge1xuICAvLyBEZWZhdWx0IGlzIHRvIGZhaWwgb24gZXJyb3IsIG5vIHBsYWNlaG9sZGVyXG4gIGltYWdlUGxhY2Vob2xkZXI6IHVuZGVmaW5lZCxcbiAgLy8gRGVmYXVsdCBjYWNoZSBidXN0IGlzIGZhbHNlLCBpdCB3aWxsIHVzZSB0aGUgY2FjaGVcbiAgY2FjaGVCdXN0OiBmYWxzZVxufTtcblxuY29uc3QgZG9tdG9pbWFnZSA9IHtcbiAgdG9TdmcsXG4gIHRvUG5nLFxuICB0b0pwZWcsXG4gIHRvQmxvYixcbiAgdG9QaXhlbERhdGEsXG4gIGltcGw6IHtcbiAgICBmb250RmFjZXMsXG4gICAgaW1hZ2VzLFxuICAgIGlubGluZXIsXG4gICAgb3B0aW9uczoge30gYXMgYW55XG4gIH1cbn07XG5cbi8qKlxuICogQHBhcmFtIHtOb2RlfSBub2RlIC0gVGhlIERPTSBOb2RlIG9iamVjdCB0byByZW5kZXJcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gUmVuZGVyaW5nIG9wdGlvbnNcbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtvcHRpb25zLmZpbHRlcl0gLSBTaG91bGQgcmV0dXJuIHRydWUgaWYgcGFzc2VkIG5vZGUgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBvdXRwdXRcbiAqICAgICAgICAgIChleGNsdWRpbmcgbm9kZSBtZWFucyBleGNsdWRpbmcgaXQncyBjaGlsZHJlbiBhcyB3ZWxsKS4gTm90IGNhbGxlZCBvbiB0aGUgcm9vdCBub2RlLlxuICogQHBhcmFtIHtTdHJpbmd9IFtvcHRpb25zLmJnY29sb3JdIC0gY29sb3IgZm9yIHRoZSBiYWNrZ3JvdW5kLCBhbnkgdmFsaWQgQ1NTIGNvbG9yIHZhbHVlLlxuICogQHBhcmFtIHtOdW1iZXJ9IFtvcHRpb25zLndpZHRoXSAtIHdpZHRoIHRvIGJlIGFwcGxpZWQgdG8gbm9kZSBiZWZvcmUgcmVuZGVyaW5nLlxuICogQHBhcmFtIHtOdW1iZXJ9IFtvcHRpb25zLmhlaWdodF0gLSBoZWlnaHQgdG8gYmUgYXBwbGllZCB0byBub2RlIGJlZm9yZSByZW5kZXJpbmcuXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnMuc3R5bGVdIC0gYW4gb2JqZWN0IHdob3NlIHByb3BlcnRpZXMgdG8gYmUgY29waWVkIHRvIG5vZGUncyBzdHlsZSBiZWZvcmUgcmVuZGVyaW5nLlxuICogQHBhcmFtIHtOdW1iZXJ9IFtvcHRpb25zLnF1YWxpdHldIC0gYSBOdW1iZXIgYmV0d2VlbiAwIGFuZCAxIGluZGljYXRpbmcgaW1hZ2UgcXVhbGl0eSAoYXBwbGljYWJsZSB0byBKUEVHIG9ubHkpLCBkZWZhdWx0cyB0byAxLjAuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmVzY2FwZVhodG1sRm9yV2VicGFja10gLSB3aGV0aGVyIHRvIGFwcGx5IGZpeCBmb3IgdWdsaWZ5IGVycm9yIGluIGRvbS10by1pbWFnZSAoc2hvdWxkIGJlIHRydWUgZm9yIHdlYnBhY2sgYnVpbGRzKSwgZGVmYXVsdHMgdG8gdHJ1ZS5cbiAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0aW9ucy5pbWFnZVBsYWNlaG9sZGVyXSAtIGRhdGFVUkwgdG8gdXNlIGFzIGEgcGxhY2Vob2xkZXIgZm9yIGZhaWxlZCBpbWFnZXMsIGRlZmF1bHQgYmVoYXZpb3VyIGlzIHRvIGZhaWwgZmFzdCBvbiBpbWFnZXMgd2UgY2FuJ3QgZmV0Y2hcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gW29wdGlvbnMuY2FjaGVCdXN0XSAtIHNldCB0byB0cnVlIHRvIGNhY2hlIGJ1c3QgYnkgYXBwZW5kaW5nIHRoZSB0aW1lIHRvIHRoZSByZXF1ZXN0IHVybFxuICogQHJldHVybiB7UHJvbWlzZX0gLSBBIHByb21pc2UgdGhhdCBpcyBmdWxmaWxsZWQgd2l0aCBhIFNWRyBpbWFnZSBkYXRhIFVSTFxuICogKi9cbmZ1bmN0aW9uIHRvU3ZnKG5vZGUsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIGNvcHlPcHRpb25zKG9wdGlvbnMpO1xuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5vZGUpXG4gICAgLnRoZW4obmQgPT4gY2xvbmVOb2RlKG5kLCBvcHRpb25zLmZpbHRlciwgdHJ1ZSkpXG4gICAgLnRoZW4oZW1iZWRGb250cylcbiAgICAudGhlbihpbmxpbmVJbWFnZXMpXG4gICAgLnRoZW4oYXBwbHlPcHRpb25zKVxuICAgIC50aGVuKGNsb25lID0+XG4gICAgICBtYWtlU3ZnRGF0YVVyaShcbiAgICAgICAgY2xvbmUsXG4gICAgICAgIG9wdGlvbnMud2lkdGggfHwgZ2V0V2lkdGgobm9kZSksXG4gICAgICAgIG9wdGlvbnMuaGVpZ2h0IHx8IGdldEhlaWdodChub2RlKSxcbiAgICAgICAgb3B0aW9ucy5lc2NhcGVYaHRtbEZvcldlYnBhY2tcbiAgICAgIClcbiAgICApO1xuXG4gIGZ1bmN0aW9uIGFwcGx5T3B0aW9ucyhjbG9uZSkge1xuICAgIGlmIChvcHRpb25zLmJnY29sb3IpIGNsb25lLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IG9wdGlvbnMuYmdjb2xvcjtcblxuICAgIGlmIChvcHRpb25zLndpZHRoKSBjbG9uZS5zdHlsZS53aWR0aCA9IGAke29wdGlvbnMud2lkdGh9cHhgO1xuICAgIGlmIChvcHRpb25zLmhlaWdodCkgY2xvbmUuc3R5bGUuaGVpZ2h0ID0gYCR7b3B0aW9ucy5oZWlnaHR9cHhgO1xuXG4gICAgaWYgKG9wdGlvbnMuc3R5bGUpXG4gICAgICBPYmplY3Qua2V5cyhvcHRpb25zLnN0eWxlKS5mb3JFYWNoKHByb3BlcnR5ID0+IHtcbiAgICAgICAgY2xvbmUuc3R5bGVbcHJvcGVydHldID0gb3B0aW9ucy5zdHlsZVtwcm9wZXJ0eV07XG4gICAgICB9KTtcblxuICAgIHJldHVybiBjbG9uZTtcbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7Tm9kZX0gbm9kZSAtIFRoZSBET00gTm9kZSBvYmplY3QgdG8gcmVuZGVyXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIFJlbmRlcmluZyBvcHRpb25zXG4gKiBAcmV0dXJuIHtQcm9taXNlfSAtIEEgcHJvbWlzZSB0aGF0IGlzIGZ1bGZpbGxlZCB3aXRoIGEgVWludDhBcnJheSBjb250YWluaW5nIFJHQkEgcGl4ZWwgZGF0YS5cbiAqICovXG5mdW5jdGlvbiB0b1BpeGVsRGF0YShub2RlLCBvcHRpb25zKSB7XG4gIHJldHVybiBkcmF3KG5vZGUsIG9wdGlvbnMgfHwge30pLnRoZW4oXG4gICAgY2FudmFzID0+IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLmdldEltYWdlRGF0YSgwLCAwLCBnZXRXaWR0aChub2RlKSwgZ2V0SGVpZ2h0KG5vZGUpKS5kYXRhXG4gICk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtOb2RlfSBub2RlIC0gVGhlIERPTSBOb2RlIG9iamVjdCB0byByZW5kZXJcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gUmVuZGVyaW5nIG9wdGlvbnNcbiAqIEByZXR1cm4ge1Byb21pc2V9IC0gQSBwcm9taXNlIHRoYXQgaXMgZnVsZmlsbGVkIHdpdGggYSBQTkcgaW1hZ2UgZGF0YSBVUkxcbiAqICovXG5mdW5jdGlvbiB0b1BuZyhub2RlLCBvcHRpb25zKSB7XG4gIHJldHVybiBkcmF3KG5vZGUsIG9wdGlvbnMgfHwge30pLnRoZW4oY2FudmFzID0+IGNhbnZhcy50b0RhdGFVUkwoKSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtOb2RlfSBub2RlIC0gVGhlIERPTSBOb2RlIG9iamVjdCB0byByZW5kZXJcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gUmVuZGVyaW5nIG9wdGlvbnNcbiAqIEByZXR1cm4ge1Byb21pc2V9IC0gQSBwcm9taXNlIHRoYXQgaXMgZnVsZmlsbGVkIHdpdGggYSBKUEVHIGltYWdlIGRhdGEgVVJMXG4gKiAqL1xuZnVuY3Rpb24gdG9KcGVnKG5vZGUsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIHJldHVybiBkcmF3KG5vZGUsIG9wdGlvbnMpLnRoZW4oY2FudmFzID0+IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnLCBvcHRpb25zLnF1YWxpdHkgfHwgMS4wKSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtOb2RlfSBub2RlIC0gVGhlIERPTSBOb2RlIG9iamVjdCB0byByZW5kZXJcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gUmVuZGVyaW5nIG9wdGlvbnNcbiAqIEByZXR1cm4ge1Byb21pc2V9IC0gQSBwcm9taXNlIHRoYXQgaXMgZnVsZmlsbGVkIHdpdGggYSBQTkcgaW1hZ2UgYmxvYlxuICogKi9cbmZ1bmN0aW9uIHRvQmxvYihub2RlLCBvcHRpb25zKSB7XG4gIHJldHVybiBkcmF3KG5vZGUsIG9wdGlvbnMgfHwge30pLnRoZW4oY2FudmFzVG9CbG9iKTtcbn1cblxuZnVuY3Rpb24gY29weU9wdGlvbnMob3B0aW9ucykge1xuICAvLyBDb3B5IG9wdGlvbnMgdG8gaW1wbCBvcHRpb25zIGZvciB1c2UgaW4gaW1wbFxuICBpZiAodHlwZW9mIG9wdGlvbnMuaW1hZ2VQbGFjZWhvbGRlciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBkb210b2ltYWdlLmltcGwub3B0aW9ucy5pbWFnZVBsYWNlaG9sZGVyID0gZGVmYXVsdE9wdGlvbnMuaW1hZ2VQbGFjZWhvbGRlcjtcbiAgfSBlbHNlIHtcbiAgICBkb210b2ltYWdlLmltcGwub3B0aW9ucy5pbWFnZVBsYWNlaG9sZGVyID0gb3B0aW9ucy5pbWFnZVBsYWNlaG9sZGVyO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBvcHRpb25zLmNhY2hlQnVzdCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBkb210b2ltYWdlLmltcGwub3B0aW9ucy5jYWNoZUJ1c3QgPSBkZWZhdWx0T3B0aW9ucy5jYWNoZUJ1c3Q7XG4gIH0gZWxzZSB7XG4gICAgZG9tdG9pbWFnZS5pbXBsLm9wdGlvbnMuY2FjaGVCdXN0ID0gb3B0aW9ucy5jYWNoZUJ1c3Q7XG4gIH1cbn1cblxuZnVuY3Rpb24gZHJhdyhkb21Ob2RlLCBvcHRpb25zKSB7XG4gIHJldHVybiB0b1N2Zyhkb21Ob2RlLCBvcHRpb25zKVxuICAgIC50aGVuKG1ha2VJbWFnZSlcbiAgICAudGhlbihkZWxheSgxMDApKVxuICAgIC50aGVuKGltYWdlID0+IHtcbiAgICAgIGNvbnN0IGNhbnZhcyA9IG5ld0NhbnZhcyhkb21Ob2RlKTtcbiAgICAgIGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLmRyYXdJbWFnZShpbWFnZSwgMCwgMCk7XG4gICAgICByZXR1cm4gY2FudmFzO1xuICAgIH0pO1xuXG4gIGZ1bmN0aW9uIG5ld0NhbnZhcyhkTm9kZSkge1xuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIGNhbnZhcy53aWR0aCA9IG9wdGlvbnMud2lkdGggfHwgZ2V0V2lkdGgoZE5vZGUpO1xuICAgIGNhbnZhcy5oZWlnaHQgPSBvcHRpb25zLmhlaWdodCB8fCBnZXRIZWlnaHQoZE5vZGUpO1xuXG4gICAgaWYgKG9wdGlvbnMuYmdjb2xvcikge1xuICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICBjdHguZmlsbFN0eWxlID0gb3B0aW9ucy5iZ2NvbG9yO1xuICAgICAgY3R4LmZpbGxSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhbnZhcztcbiAgfVxufVxuXG5mdW5jdGlvbiBjbG9uZU5vZGUobm9kZSwgZmlsdGVyLCByb290KSB7XG4gIGlmICghcm9vdCAmJiBmaWx0ZXIgJiYgIWZpbHRlcihub2RlKSkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUobm9kZSlcbiAgICAudGhlbihtYWtlTm9kZUNvcHkpXG4gICAgLnRoZW4oY2xvbmUgPT4gY2xvbmVDaGlsZHJlbihub2RlLCBjbG9uZSwgZmlsdGVyKSlcbiAgICAudGhlbihjbG9uZSA9PiBwcm9jZXNzQ2xvbmUobm9kZSwgY2xvbmUpKTtcblxuICBmdW5jdGlvbiBtYWtlTm9kZUNvcHkobmQpIHtcbiAgICBpZiAobmQgaW5zdGFuY2VvZiBXaW5kb3cuSFRNTENhbnZhc0VsZW1lbnQpIHtcbiAgICAgIHJldHVybiBtYWtlSW1hZ2UobmQudG9EYXRhVVJMKCkpO1xuICAgIH1cbiAgICByZXR1cm4gbmQuY2xvbmVOb2RlKGZhbHNlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNsb25lQ2hpbGRyZW5Jbk9yZGVyKHBhcmVudCwgYXJyQ2hpbGRyZW4sIGZsdCkge1xuICAgIGxldCBkb25lID0gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgYXJyQ2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiB7XG4gICAgICBkb25lID0gZG9uZVxuICAgICAgICAudGhlbigoKSA9PiBjbG9uZU5vZGUoY2hpbGQsIGZsdCwgbnVsbCkpXG4gICAgICAgIC50aGVuKGNoaWxkQ2xvbmUgPT4ge1xuICAgICAgICAgIGlmIChjaGlsZENsb25lKSB7XG4gICAgICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoY2hpbGRDbG9uZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gZG9uZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNsb25lQ2hpbGRyZW4ob3JpZ2luYWwsIGNsb25lLCBmbHQpIHtcbiAgICBjb25zdCBjaGlsZHJlbiA9IG9yaWdpbmFsLmNoaWxkTm9kZXM7XG4gICAgaWYgKGNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShjbG9uZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsb25lQ2hpbGRyZW5Jbk9yZGVyKGNsb25lLCBhc0FycmF5KGNoaWxkcmVuKSwgZmx0KS50aGVuKCgpID0+IGNsb25lKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBlbWJlZEZvbnRzKG5vZGUpIHtcbiAgcmV0dXJuIGZvbnRGYWNlcy5yZXNvbHZlQWxsKCkudGhlbihjc3NUZXh0ID0+IHtcbiAgICBjb25zdCBzdHlsZU5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgIG5vZGUuYXBwZW5kQ2hpbGQoc3R5bGVOb2RlKTtcbiAgICBzdHlsZU5vZGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzVGV4dCkpO1xuICAgIHJldHVybiBub2RlO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaW5saW5lSW1hZ2VzKG5vZGUpIHtcbiAgcmV0dXJuIGltYWdlcy5pbmxpbmVBbGwobm9kZSkudGhlbigoKSA9PiBub2RlKTtcbn1cblxuZnVuY3Rpb24gbWFrZVN2Z0RhdGFVcmkobm9kZSwgd2lkdGgsIGhlaWdodCwgZXNjYXBlWGh0bWxGb3JXZWJwYWNrID0gdHJ1ZSkge1xuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5vZGUpLnRoZW4obmQgPT4ge1xuICAgIG5kLnNldEF0dHJpYnV0ZSgneG1sbnMnLCAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcpO1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRTdHJpbmcgPSBuZXcgV2luZG93LlhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyhuZCk7XG5cbiAgICBjb25zdCB4aHRtbCA9IGVzY2FwZVhodG1sRm9yV2VicGFjayA/IGVzY2FwZVhodG1sKHNlcmlhbGl6ZWRTdHJpbmcpIDogc2VyaWFsaXplZFN0cmluZztcbiAgICBjb25zdCBmb3JlaWduT2JqZWN0ID0gYDxmb3JlaWduT2JqZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCI+JHt4aHRtbH08L2ZvcmVpZ25PYmplY3Q+YDtcbiAgICBjb25zdCBzdmdTdHIgPSBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIke3dpZHRofVwiIGhlaWdodD1cIiR7aGVpZ2h0fVwiPiR7Zm9yZWlnbk9iamVjdH08L3N2Zz5gO1xuXG4gICAgLy8gT3B0aW1pemluZyBTVkdzIGluIGRhdGEgVVJJc1xuICAgIC8vIHNlZSBodHRwczovL2NvZGVwZW4uaW8vdGlndC9wb3N0L29wdGltaXppbmctc3Zncy1pbi1kYXRhLXVyaXNcbiAgICAvLyB0aGUgYmVzdCB3YXkgb2YgZW5jb2RpbmcgU1ZHIGluIGEgZGF0YTogVVJJIGlzIGRhdGE6aW1hZ2Uvc3ZnK3htbCxbYWN0dWFsIGRhdGFdLlxuICAgIC8vIFdlIGRvbuKAmXQgbmVlZCB0aGUgO2NoYXJzZXQ9dXRmLTggcGFyYW1ldGVyIGJlY2F1c2UgdGhlIGdpdmVuIFNWRyBpcyBBU0NJSS5cbiAgICByZXR1cm4gc3ZnVG9NaW5pRGF0YVVSSShzdmdTdHIpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gbmV3SW5saW5lcigpIHtcbiAgY29uc3QgVVJMX1JFR0VYID0gL3VybFxcKFsnXCJdPyhbXidcIl0rPylbJ1wiXT9cXCkvZztcblxuICByZXR1cm4ge1xuICAgIGlubGluZUFsbCxcbiAgICBzaG91bGRQcm9jZXNzLFxuICAgIGltcGw6IHtcbiAgICAgIHJlYWRVcmxzLFxuICAgICAgaW5saW5lXG4gICAgfVxuICB9O1xuXG4gIGZ1bmN0aW9uIHNob3VsZFByb2Nlc3Moc3RyaW5nKSB7XG4gICAgcmV0dXJuIHN0cmluZy5zZWFyY2goVVJMX1JFR0VYKSAhPT0gLTE7XG4gIH1cblxuICBmdW5jdGlvbiByZWFkVXJscyhzdHJpbmcpIHtcbiAgICBjb25zdCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gICAgbGV0IG1hdGNoOiBudWxsIHwgUmVnRXhwRXhlY0FycmF5O1xuICAgIHdoaWxlICgobWF0Y2ggPSBVUkxfUkVHRVguZXhlYyhzdHJpbmcpKSAhPT0gbnVsbCkge1xuICAgICAgcmVzdWx0LnB1c2gobWF0Y2hbMV0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0LmZpbHRlcih1cmwgPT4ge1xuICAgICAgcmV0dXJuICFpc0RhdGFVcmwodXJsKTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHVybEFzUmVnZXgodXJsMCkge1xuICAgIHJldHVybiBuZXcgUmVnRXhwKGAodXJsXFxcXChbJ1wiXT8pKCR7ZXNjYXBlKHVybDApfSkoWydcIl0/XFxcXCkpYCwgJ2cnKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlubGluZShzdHJpbmcsIHVybCwgYmFzZVVybCwgZ2V0KSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1cmwpXG4gICAgICAudGhlbih1bCA9PiAoYmFzZVVybCA/IHJlc29sdmVVcmwodWwsIGJhc2VVcmwpIDogdWwpKVxuICAgICAgLnRoZW4odWwgPT4gKHR5cGVvZiBnZXQgPT09ICdmdW5jdGlvbicgPyBnZXQodWwpIDogZ2V0QW5kRW5jb2RlKHVsLCBkb210b2ltYWdlLmltcGwub3B0aW9ucykpKVxuICAgICAgLnRoZW4oZGF0YSA9PiBkYXRhQXNVcmwoZGF0YSwgbWltZVR5cGUodXJsKSkpXG4gICAgICAudGhlbihkYXRhVXJsID0+IHN0cmluZy5yZXBsYWNlKHVybEFzUmVnZXgodXJsKSwgYCQxJHtkYXRhVXJsfSQzYCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gaW5saW5lQWxsKHN0cmluZywgYmFzZVVybCwgZ2V0KSB7XG4gICAgaWYgKCFzaG91bGRQcm9jZXNzKHN0cmluZykgfHwgaXNTcmNBc0RhdGFVcmwoc3RyaW5nKSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShzdHJpbmcpO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHN0cmluZylcbiAgICAgIC50aGVuKHJlYWRVcmxzKVxuICAgICAgLnRoZW4odXJscyA9PiB7XG4gICAgICAgIGxldCBkb25lID0gUHJvbWlzZS5yZXNvbHZlKHN0cmluZyk7XG4gICAgICAgIHVybHMuZm9yRWFjaCh1cmwgPT4ge1xuICAgICAgICAgIGRvbmUgPSBkb25lLnRoZW4oc3RyID0+IGlubGluZShzdHIsIHVybCwgYmFzZVVybCwgZ2V0KSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZG9uZTtcbiAgICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIG5ld0ZvbnRGYWNlcygpIHtcbiAgcmV0dXJuIHtcbiAgICByZXNvbHZlQWxsLFxuICAgIGltcGw6IHtyZWFkQWxsfVxuICB9O1xuXG4gIGZ1bmN0aW9uIHJlc29sdmVBbGwoKSB7XG4gICAgcmV0dXJuIHJlYWRBbGwoKVxuICAgICAgLnRoZW4od2ViRm9udHMgPT4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwod2ViRm9udHMubWFwKHdlYkZvbnQgPT4gd2ViRm9udC5yZXNvbHZlKCkpKTtcbiAgICAgIH0pXG4gICAgICAudGhlbihjc3NTdHJpbmdzID0+IGNzc1N0cmluZ3Muam9pbignXFxuJykpO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVhZEFsbCgpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGFzQXJyYXkoZG9jdW1lbnQuc3R5bGVTaGVldHMpKVxuICAgICAgLnRoZW4obG9hZEV4dGVybmFsU3R5bGVTaGVldHMpXG4gICAgICAudGhlbihnZXRDc3NSdWxlcylcbiAgICAgIC50aGVuKHNlbGVjdFdlYkZvbnRSdWxlcylcbiAgICAgIC50aGVuKHJ1bGVzID0+IHJ1bGVzLm1hcChuZXdXZWJGb250KSk7XG5cbiAgICBmdW5jdGlvbiBzZWxlY3RXZWJGb250UnVsZXMoY3NzUnVsZXMpIHtcbiAgICAgIHJldHVybiBjc3NSdWxlc1xuICAgICAgICAuZmlsdGVyKHJ1bGUgPT4gcnVsZS50eXBlID09PSBXaW5kb3cuQ1NTUnVsZS5GT05UX0ZBQ0VfUlVMRSlcbiAgICAgICAgLmZpbHRlcihydWxlID0+IGlubGluZXIuc2hvdWxkUHJvY2VzcyhydWxlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3NyYycpKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbG9hZEV4dGVybmFsU3R5bGVTaGVldHMoc3R5bGVTaGVldHMpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgICAgc3R5bGVTaGVldHMubWFwKHNoZWV0ID0+IHtcbiAgICAgICAgICBpZiAoc2hlZXQuaHJlZikge1xuICAgICAgICAgICAgLy8gY2xvdWRmb250IGRvZXNuJ3QgaGF2ZSBhbGxvdyBvcmlnaW4gaGVhZGVyIHByb3Blcmx5IHNldFxuICAgICAgICAgICAgLy8gZXJyb3IgcmVzcG9uc2Ugd2lsbCByZW1haW4gaW4gY2FjaGVcbiAgICAgICAgICAgIGNvbnN0IGNhY2hlID0gc2hlZXQuaHJlZi5pbmNsdWRlcygndWJlci1mb250cycpID8gJ25vLWNhY2hlJyA6ICdkZWZhdWx0JztcbiAgICAgICAgICAgIHJldHVybiBXaW5kb3cuZmV0Y2goc2hlZXQuaHJlZiwge2NyZWRlbnRpYWxzOiAnb21pdCcsIGNhY2hlfSlcbiAgICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKVxuICAgICAgICAgICAgICAudGhlbih0ZXh0ID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBzZXRTdHlsZVNoZWV0QmFzZUhyZWYodGV4dCwgc2hlZXQuaHJlZik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRvU3R5bGVTaGVldChyZXN1bHQpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgICAvLyBIYW5kbGUgYW55IGVycm9yIHRoYXQgb2NjdXJyZWQgaW4gYW55IG9mIHRoZSBwcmV2aW91c1xuICAgICAgICAgICAgICAgIC8vIHByb21pc2VzIGluIHRoZSBjaGFpbi4gc3R5bGVzaGVldCBmYWlsZWQgdG8gbG9hZCBzaG91bGQgbm90IHN0b3BcbiAgICAgICAgICAgICAgICAvLyB0aGUgcHJvY2VzcywgaGVuY2UgcmVzdWx0IGluIG9ubHkgYSB3YXJuaW5nLCBpbnN0ZWFkIG9mIHJlamVjdFxuICAgICAgICAgICAgICAgIENvbnNvbGUud2FybihJTUFHRV9FWFBPUlRfRVJST1JTLnN0eWxlU2hlZXQsIHNoZWV0LmhyZWYpO1xuICAgICAgICAgICAgICAgIENvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShzaGVldCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldENzc1J1bGVzKHN0eWxlU2hlZXRzKSB7XG4gICAgICBjb25zdCBjc3NSdWxlczogYW55W10gPSBbXTtcbiAgICAgIHN0eWxlU2hlZXRzLmZvckVhY2goc2hlZXQgPT4ge1xuICAgICAgICAvLyB0cnkuLi5jYXRjaCBiZWNhdXNlIGJyb3dzZXIgbWF5IG5vdCBhYmxlIHRvIGVudW1lcmF0ZSBydWxlcyBmb3IgY3Jvc3MtZG9tYWluIHNoZWV0c1xuICAgICAgICBpZiAoIXNoZWV0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCBydWxlcztcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBydWxlcyA9IHNoZWV0LnJ1bGVzIHx8IHNoZWV0LmNzc1J1bGVzO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgQ29uc29sZS5sb2coYCdDYW4ndCByZWFkIHRoZSBjc3MgcnVsZXMgb2Y6ICR7c2hlZXQuaHJlZn1gLCBlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocnVsZXMgJiYgdHlwZW9mIHJ1bGVzID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhc0FycmF5KHJ1bGVzIHx8IFtdKS5mb3JFYWNoKGNzc1J1bGVzLnB1c2guYmluZChjc3NSdWxlcykpO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIENvbnNvbGUubG9nKGBFcnJvciB3aGlsZSByZWFkaW5nIENTUyBydWxlcyBmcm9tICR7c2hlZXQuaHJlZn1gLCBlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgQ29uc29sZS5sb2coJ2dldENzc1J1bGVzIGNhbiBub3QgZmluZCBjc3NSdWxlcycpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBjc3NSdWxlcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBuZXdXZWJGb250KHdlYkZvbnRSdWxlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZXNvbHZlOiAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgYmFzZVVybCA9ICh3ZWJGb250UnVsZS5wYXJlbnRTdHlsZVNoZWV0IHx8IHt9KS5ocmVmO1xuICAgICAgICAgIHJldHVybiBpbmxpbmVyLmlubGluZUFsbCh3ZWJGb250UnVsZS5jc3NUZXh0LCBiYXNlVXJsLCBudWxsKTtcbiAgICAgICAgfSxcbiAgICAgICAgc3JjOiAoKSA9PiB3ZWJGb250UnVsZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdzcmMnKVxuICAgICAgfTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbmV3SW1hZ2VzKCkge1xuICByZXR1cm4ge1xuICAgIGlubGluZUFsbCxcbiAgICBpbXBsOiB7XG4gICAgICBuZXdJbWFnZVxuICAgIH1cbiAgfTtcblxuICBmdW5jdGlvbiBuZXdJbWFnZShlbGVtZW50KSB7XG4gICAgZnVuY3Rpb24gaW5saW5lKGdldCkge1xuICAgICAgaWYgKGlzRGF0YVVybChlbGVtZW50LnNyYykpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShlbGVtZW50LnNyYylcbiAgICAgICAgLnRoZW4odWwgPT5cbiAgICAgICAgICB0eXBlb2YgZ2V0ID09PSAnZnVuY3Rpb24nID8gZ2V0KHVsKSA6IGdldEFuZEVuY29kZSh1bCwgZG9tdG9pbWFnZS5pbXBsLm9wdGlvbnMpXG4gICAgICAgIClcbiAgICAgICAgLnRoZW4oZGF0YSA9PiBkYXRhQXNVcmwoZGF0YSwgbWltZVR5cGUoZWxlbWVudC5zcmMpKSlcbiAgICAgICAgLnRoZW4oXG4gICAgICAgICAgZGF0YVVybCA9PlxuICAgICAgICAgICAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IHJlc29sdmU7XG4gICAgICAgICAgICAgIGVsZW1lbnQub25lcnJvciA9IHJlamVjdDtcbiAgICAgICAgICAgICAgZWxlbWVudC5zcmMgPSBkYXRhVXJsO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgaW5saW5lXG4gICAgfTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlubGluZUFsbChub2RlKSB7XG4gICAgaWYgKCEobm9kZSBpbnN0YW5jZW9mIEVsZW1lbnQpKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5vZGUpO1xuICAgIH1cblxuICAgIHJldHVybiBpbmxpbmVCYWNrZ3JvdW5kKG5vZGUpLnRoZW4oKCkgPT4ge1xuICAgICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBIVE1MSW1hZ2VFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBuZXdJbWFnZShub2RlKS5pbmxpbmUobnVsbCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gUHJvbWlzZS5hbGwoYXNBcnJheShub2RlLmNoaWxkTm9kZXMpLm1hcChjaGlsZCA9PiBpbmxpbmVBbGwoY2hpbGQpKSk7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBpbmxpbmVCYWNrZ3JvdW5kKG5kKSB7XG4gICAgICBjb25zdCBiYWNrZ3JvdW5kID0gbmQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnYmFja2dyb3VuZCcpO1xuXG4gICAgICBpZiAoIWJhY2tncm91bmQpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpbmxpbmVyXG4gICAgICAgIC5pbmxpbmVBbGwoYmFja2dyb3VuZCwgbnVsbCwgbnVsbClcbiAgICAgICAgLnRoZW4oaW5saW5lZCA9PiB7XG4gICAgICAgICAgbmQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQnLCBpbmxpbmVkLCBuZC5zdHlsZS5nZXRQcm9wZXJ0eVByaW9yaXR5KCdiYWNrZ3JvdW5kJykpO1xuICAgICAgICB9KVxuICAgICAgICAudGhlbigoKSA9PiBuZCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGRvbXRvaW1hZ2U7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBUUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsUUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsZUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssU0FBQSxHQUFBTCxP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
|
package/dist/dom-utils.js
CHANGED
@@ -346,4 +346,4 @@ function toStyleSheet(text) {
|
|
346
346
|
doc.body.appendChild(styleElement);
|
347
347
|
return styleElement.sheet;
|
348
348
|
}
|
349
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc29sZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3dpbmRvdyIsIl9kb2N1bWVudCIsIl9jb25zdGFudHMiLCJwcm9jZXNzQ2xvbmUiLCJvcmlnaW5hbCIsImNsb25lIiwid2luZG93IiwiRWxlbWVudCIsImNvcHlQcm9wZXJ0aWVzIiwic291cmNlU3R5bGUiLCJ0YXJnZXRTdHlsZSIsInByb3BlcnR5S2V5cyIsImFzQXJyYXkiLCJmb3JFYWNoIiwibmFtZSIsInNldFByb3BlcnR5IiwiZ2V0UHJvcGVydHlWYWx1ZSIsImdldFByb3BlcnR5UHJpb3JpdHkiLCJjb3B5U3R5bGUiLCJzb3VyY2UiLCJ0YXJnZXQiLCJjc3NUZXh0IiwiZm9udCIsImNsb25lU3R5bGUiLCJvZyIsImNsbiIsIm9yaWdpbmFsU3R5bGUiLCJnZXRDb21wdXRlZFN0eWxlIiwic3R5bGUiLCJmb3JtYXRQc2V1ZG9FbGVtZW50U3R5bGUiLCJlbG0iLCJzdGwiLCJmb3JtYXRDc3NUZXh0Iiwic3RsMSIsImNudCIsImNvbmNhdCIsImZvcm1hdFByb3BlcnR5IiwiZm9ybWF0Q3NzUHJvcGVydGllcyIsInN0bDIiLCJtYXAiLCJqb2luIiwic2VsZWN0b3IiLCJkb2N1bWVudCIsImNyZWF0ZVRleHROb2RlIiwiY2xvbmVQc2V1ZG9FbGVtZW50Iiwib3JnIiwiZWxlbWVudCIsImNvbnRlbnQiLCJjbGFzc05hbWUiLCJ1aWQiLCJzdHlsZUVsZW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiYXBwZW5kQ2hpbGQiLCJjbG9uZVBzZXVkb0VsZW1lbnRzIiwiX3JlZiIsIl9yZWYyIiwiX3NsaWNlZFRvQXJyYXkyIiwiY29weVVzZXJJbnB1dCIsIl9yZWYzIiwiX3JlZjQiLCJIVE1MVGV4dEFyZWFFbGVtZW50IiwiaW5uZXJIVE1MIiwidmFsdWUiLCJIVE1MSW5wdXRFbGVtZW50Iiwic2V0QXR0cmlidXRlIiwiZml4U3ZnIiwiU1ZHRWxlbWVudCIsIlNWR1JlY3RFbGVtZW50IiwiYXR0cmlidXRlIiwiZ2V0QXR0cmlidXRlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwiX3JlZjUiLCJfcmVmNiIsIl9yZWY3IiwiX3JlZjgiLCJfcmVmOSIsIl9yZWYxMCIsIl9yZWYxMSIsIl9yZWYxMiIsIl9yZWYxMyIsIl9yZWYxNCIsImFycmF5TGlrZSIsImFycmF5IiwibGVuZ3RoIiwiaSIsInB1c2giLCJmb3VyUmFuZG9tQ2hhcnMiLCJNYXRoIiwicmFuZG9tIiwicG93IiwidG9TdHJpbmciLCJzbGljZSIsImluZGV4IiwibWFrZUltYWdlIiwidXJpIiwicmVqZWN0IiwiaW1hZ2UiLCJJbWFnZSIsIm9ubG9hZCIsIm9uZXJyb3IiLCJlcnIiLCJtZXNzYWdlIiwiSU1BR0VfRVhQT1JUX0VSUk9SUyIsImRhdGFVcmkiLCJDb25zb2xlIiwibG9nIiwiZXZlbnQiLCJzcmMiLCJpc0RhdGFVcmwiLCJ1cmwiLCJzZWFyY2giLCJwYXJzZUV4dGVuc2lvbiIsIm1hdGNoIiwiZXhlYyIsIm1pbWVzIiwiV09GRiIsIkpQRUciLCJ3b2ZmIiwid29mZjIiLCJ0dGYiLCJlb3QiLCJwbmciLCJqcGciLCJqcGVnIiwiZ2lmIiwidGlmZiIsInN2ZyIsIm1pbWVUeXBlIiwiZXh0ZW5zaW9uIiwidG9Mb3dlckNhc2UiLCJkYXRhQXNVcmwiLCJ0eXBlIiwiZXNjYXBlIiwic3RyaW5nIiwicmVwbGFjZSIsImRlbGF5IiwibXMiLCJhcmciLCJzZXRUaW1lb3V0IiwiaXNTcmNBc0RhdGFVcmwiLCJ0ZXh0IiwiREFUQV9VUkxfUkVHRVgiLCJjdlRvQmxvYiIsImNhbnZhcyIsImJpbmFyeVN0cmluZyIsImF0b2IiLCJ0b0RhdGFVUkwiLCJzcGxpdCIsImJpbmFyeUFycmF5IiwiVWludDhBcnJheSIsImNoYXJDb2RlQXQiLCJCbG9iIiwiY2FudmFzVG9CbG9iIiwidG9CbG9iIiwiZXNjYXBlWGh0bWwiLCJnZXRXaWR0aCIsIm5vZGUiLCJsZWZ0Qm9yZGVyIiwicHgiLCJyaWdodEJvcmRlciIsInNjcm9sbFdpZHRoIiwiZ2V0SGVpZ2h0IiwidG9wQm9yZGVyIiwiYm90dG9tQm9yZGVyIiwic2Nyb2xsSGVpZ2h0Iiwic3R5bGVQcm9wZXJ0eSIsInBhcnNlRmxvYXQiLCJyZXNvbHZlVXJsIiwiYmFzZVVybCIsImRvYyIsImltcGxlbWVudGF0aW9uIiwiY3JlYXRlSFRNTERvY3VtZW50IiwiYmFzZSIsImhlYWQiLCJhIiwiYm9keSIsImhyZWYiLCJnZXRBbmRFbmNvZGUiLCJvcHRpb25zIiwiVElNRU9VVCIsImNhY2hlQnVzdCIsInRlc3QiLCJEYXRlIiwiZ2V0VGltZSIsInJlcXVlc3QiLCJYTUxIdHRwUmVxdWVzdCIsIm9ucmVhZHlzdGF0ZWNoYW5nZSIsImRvbmUiLCJvbnRpbWVvdXQiLCJ0aW1lb3V0IiwicmVzcG9uc2VUeXBlIiwib3BlbiIsInNlbmQiLCJwbGFjZWhvbGRlciIsImltYWdlUGxhY2Vob2xkZXIiLCJyZWFkeVN0YXRlIiwic3RhdHVzIiwiZmFpbCIsImVuY29kZXIiLCJGaWxlUmVhZGVyIiwib25sb2FkZW5kIiwicmVzdWx0IiwicmVhZEFzRGF0YVVSTCIsInJlc3BvbnNlIiwiZXJyb3IiLCJjb25jYXRBbmRSZXNvbHZlVXJsIiwiVVJMIiwic2V0U3R5bGVTaGVldEJhc2VIcmVmIiwiYWRkQmFzZUhyZWZUb1VybCIsInAxIiwidG9TdHlsZVNoZWV0IiwidGV4dENvbnRlbnQiLCJzaGVldCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9kb20tdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IENvbnNvbGUgZnJvbSAnZ2xvYmFsL2NvbnNvbGUnO1xuaW1wb3J0IHdpbmRvdyBmcm9tICdnbG9iYWwvd2luZG93JztcbmltcG9ydCBkb2N1bWVudCBmcm9tICdnbG9iYWwvZG9jdW1lbnQnO1xuaW1wb3J0IHtJTUFHRV9FWFBPUlRfRVJST1JTfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZXNzQ2xvbmUob3JpZ2luYWwsIGNsb25lKSB7XG4gIGlmICghKGNsb25lIGluc3RhbmNlb2Ygd2luZG93LkVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIGNsb25lO1xuICB9XG5cbiAgZnVuY3Rpb24gY29weVByb3BlcnRpZXMoc291cmNlU3R5bGUsIHRhcmdldFN0eWxlKSB7XG4gICAgY29uc3QgcHJvcGVydHlLZXlzID0gYXNBcnJheShzb3VyY2VTdHlsZSk7XG4gICAgcHJvcGVydHlLZXlzLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICB0YXJnZXRTdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgbmFtZSxcbiAgICAgICAgc291cmNlU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShuYW1lKSxcbiAgICAgICAgc291cmNlU3R5bGUuZ2V0UHJvcGVydHlQcmlvcml0eShuYW1lKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNvcHlTdHlsZShzb3VyY2UsIHRhcmdldCkge1xuICAgIGlmIChzb3VyY2UuY3NzVGV4dCkge1xuICAgICAgdGFyZ2V0LmNzc1RleHQgPSBzb3VyY2UuY3NzVGV4dDtcbiAgICAgIC8vIGFkZCBhZGRpdGlvbmFsIGNvcHkgb2YgY29tcG9zaXRlIHN0eWxlc1xuICAgICAgaWYgKHNvdXJjZS5mb250KSB7XG4gICAgICAgIHRhcmdldC5mb250ID0gc291cmNlLmZvbnQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvcHlQcm9wZXJ0aWVzKHNvdXJjZSwgdGFyZ2V0KTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBjbG9uZVN0eWxlKG9nLCBjbG4pIHtcbiAgICBjb25zdCBvcmlnaW5hbFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUob2cpO1xuICAgIGNvcHlTdHlsZShvcmlnaW5hbFN0eWxlLCBjbG4uc3R5bGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gZm9ybWF0UHNldWRvRWxlbWVudFN0eWxlKGNsbiwgZWxtLCBzdGwpIHtcbiAgICBjb25zdCBmb3JtYXRDc3NUZXh0ID0gc3RsMSA9PiB7XG4gICAgICBjb25zdCBjbnQgPSBzdGwxLmdldFByb3BlcnR5VmFsdWUoJ2NvbnRlbnQnKTtcbiAgICAgIHJldHVybiBgJHtzdGwuY3NzVGV4dH0gY29udGVudDogJHtjbnR9O2A7XG4gICAgfTtcblxuICAgIGNvbnN0IGZvcm1hdFByb3BlcnR5ID0gbmFtZSA9PiB7XG4gICAgICByZXR1cm4gYCR7bmFtZX06JHtzdGwuZ2V0UHJvcGVydHlWYWx1ZShuYW1lKX0ke1xuICAgICAgICBzdGwuZ2V0UHJvcGVydHlQcmlvcml0eShuYW1lKSA/ICcgIWltcG9ydGFudCcgOiAnJ1xuICAgICAgfWA7XG4gICAgfTtcblxuICAgIGNvbnN0IGZvcm1hdENzc1Byb3BlcnRpZXMgPSBzdGwyID0+IHtcbiAgICAgIHJldHVybiBgJHthc0FycmF5KHN0bDIpLm1hcChmb3JtYXRQcm9wZXJ0eSkuam9pbignOyAnKX07YDtcbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0b3IgPSBgLiR7Y2xufToke2VsbX1gO1xuICAgIGNvbnN0IGNzc1RleHQgPSBzdGwuY3NzVGV4dCA/IGZvcm1hdENzc1RleHQoc3RsKSA6IGZvcm1hdENzc1Byb3BlcnRpZXMoc3RsKTtcblxuICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShgJHtzZWxlY3Rvcn17JHtjc3NUZXh0fX1gKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNsb25lUHNldWRvRWxlbWVudChvcmcsIGNsbiwgZWxlbWVudCkge1xuICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUob3JnLCBlbGVtZW50KTtcbiAgICBjb25zdCBjb250ZW50ID0gc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnY29udGVudCcpO1xuXG4gICAgaWYgKGNvbnRlbnQgPT09ICcnIHx8IGNvbnRlbnQgPT09ICdub25lJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNsYXNzTmFtZSA9IHVpZCgpO1xuICAgIGNsbi5jbGFzc05hbWUgPSBgJHtjbG4uY2xhc3NOYW1lfSAke2NsYXNzTmFtZX1gO1xuICAgIGNvbnN0IHN0eWxlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgc3R5bGVFbGVtZW50LmFwcGVuZENoaWxkKGZvcm1hdFBzZXVkb0VsZW1lbnRTdHlsZShjbGFzc05hbWUsIGVsZW1lbnQsIHN0eWxlKSk7XG4gICAgY2xuLmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCk7XG4gIH1cblxuICBmdW5jdGlvbiBjbG9uZVBzZXVkb0VsZW1lbnRzKFtvZywgY2xuXSkge1xuICAgIFsnOmJlZm9yZScsICc6YWZ0ZXInXS5mb3JFYWNoKGVsZW1lbnQgPT4gY2xvbmVQc2V1ZG9FbGVtZW50KG9nLCBjbG4sIGVsZW1lbnQpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNvcHlVc2VySW5wdXQoW29nLCBjbG5dKSB7XG4gICAgaWYgKG9nIGluc3RhbmNlb2Ygd2luZG93LkhUTUxUZXh0QXJlYUVsZW1lbnQpIGNsbi5pbm5lckhUTUwgPSBvZy52YWx1ZTtcbiAgICBpZiAob2cgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTElucHV0RWxlbWVudCkgY2xuLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBvZy52YWx1ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBmaXhTdmcoY2xuKSB7XG4gICAgaWYgKCEoY2xuIGluc3RhbmNlb2Ygd2luZG93LlNWR0VsZW1lbnQpKSByZXR1cm47XG4gICAgY2xuLnNldEF0dHJpYnV0ZSgneG1sbnMnLCAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnKTtcblxuICAgIGlmICghKGNsbiBpbnN0YW5jZW9mIHdpbmRvdy5TVkdSZWN0RWxlbWVudCkpIHJldHVybjtcbiAgICBbJ3dpZHRoJywgJ2hlaWdodCddLmZvckVhY2goYXR0cmlidXRlID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gY2xuLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpO1xuICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuXG4gICAgICBjbG4uc3R5bGUuc2V0UHJvcGVydHkoYXR0cmlidXRlLCB2YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIFByb21pc2UucmVzb2x2ZShbb3JpZ2luYWwsIGNsb25lXSlcbiAgICAgIC50aGVuKChbb2csIGNsbl0pID0+IHtcbiAgICAgICAgY2xvbmVTdHlsZShvZywgY2xuKTtcbiAgICAgICAgcmV0dXJuIFtvZywgY2xuXTtcbiAgICAgIH0pXG4gICAgICAudGhlbigoW29nLCBjbG5dKSA9PiB7XG4gICAgICAgIGNsb25lUHNldWRvRWxlbWVudHMoW29nLCBjbG5dKTtcbiAgICAgICAgcmV0dXJuIFtvZywgY2xuXTtcbiAgICAgIH0pXG4gICAgICAudGhlbigoW29nLCBjbG5dKSA9PiB7XG4gICAgICAgIGNvcHlVc2VySW5wdXQoW29nLCBjbG5dKTtcbiAgICAgICAgcmV0dXJuIFtvZywgY2xuXTtcbiAgICAgIH0pXG4gICAgICAudGhlbigoW29nLCBjbG5dKSA9PiB7XG4gICAgICAgIGZpeFN2ZyhjbG4pO1xuICAgICAgICByZXR1cm4gW29nLCBjbG5dO1xuICAgICAgfSlcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgIC50aGVuKChbb2csIGNsbl0pID0+IGNsbilcbiAgKTtcbn1cblxuLyoqICoqXG4gKiBVVElMU1xuICoqKiovXG5leHBvcnQgZnVuY3Rpb24gYXNBcnJheShhcnJheUxpa2UpIHtcbiAgY29uc3QgYXJyYXk6IGFueVtdID0gW107XG4gIGNvbnN0IGxlbmd0aCA9IGFycmF5TGlrZS5sZW5ndGg7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIGFycmF5LnB1c2goYXJyYXlMaWtlW2ldKTtcbiAgcmV0dXJuIGFycmF5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm91clJhbmRvbUNoYXJzKCkge1xuICByZXR1cm4gYDAwMDAkeygoTWF0aC5yYW5kb20oKSAqIE1hdGgucG93KDM2LCA0KSkgPDwgMCkudG9TdHJpbmcoMzYpfWAuc2xpY2UoLTQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdWlkKCkge1xuICBsZXQgaW5kZXggPSAwO1xuXG4gIHJldHVybiBgdSR7Zm91clJhbmRvbUNoYXJzKCl9JHtpbmRleCsrfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYWtlSW1hZ2UodXJpKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgaW1hZ2UgPSBuZXcgd2luZG93LkltYWdlKCk7XG4gICAgaW1hZ2Uub25sb2FkID0gKCkgPT4ge1xuICAgICAgcmVzb2x2ZShpbWFnZSk7XG4gICAgfTtcbiAgICBpbWFnZS5vbmVycm9yID0gZXJyID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBJTUFHRV9FWFBPUlRfRVJST1JTLmRhdGFVcmk7XG4gICAgICBDb25zb2xlLmxvZyh1cmkpO1xuICAgICAgLy8gZXJyb3IgaXMgYW4gRXZlbnQgT2JqZWN0XG4gICAgICAvLyBodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2pzcmVmL29ial9ldmVudC5hc3BcbiAgICAgIHJlamVjdCh7ZXZlbnQ6IGVyciwgbWVzc2FnZX0pO1xuICAgIH07XG4gICAgaW1hZ2Uuc3JjID0gdXJpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0YVVybCh1cmwpIHtcbiAgcmV0dXJuIHVybC5zZWFyY2goL14oZGF0YTopLykgIT09IC0xO1xufVxuXG5mdW5jdGlvbiBwYXJzZUV4dGVuc2lvbih1cmwpIHtcbiAgY29uc3QgbWF0Y2ggPSAvXFwuKFteLi9dKj8pJC9nLmV4ZWModXJsKTtcbiAgaWYgKG1hdGNoKSB7XG4gICAgcmV0dXJuIG1hdGNoWzFdO1xuICB9XG4gIHJldHVybiAnJztcbn1cblxuZnVuY3Rpb24gbWltZXMoKSB7XG4gIC8qXG4gICAqIE9ubHkgV09GRiBhbmQgRU9UIG1pbWUgdHlwZXMgZm9yIGZvbnRzIGFyZSAncmVhbCdcbiAgICogc2VlIGh0dHA6Ly93d3cuaWFuYS5vcmcvYXNzaWdubWVudHMvbWVkaWEtdHlwZXMvbWVkaWEtdHlwZXMueGh0bWxcbiAgICovXG4gIGNvbnN0IFdPRkYgPSAnYXBwbGljYXRpb24vZm9udC13b2ZmJztcbiAgY29uc3QgSlBFRyA9ICdpbWFnZS9qcGVnJztcblxuICByZXR1cm4ge1xuICAgIHdvZmY6IFdPRkYsXG4gICAgd29mZjI6IFdPRkYsXG4gICAgdHRmOiAnYXBwbGljYXRpb24vZm9udC10cnVldHlwZScsXG4gICAgZW90OiAnYXBwbGljYXRpb24vdm5kLm1zLWZvbnRvYmplY3QnLFxuICAgIHBuZzogJ2ltYWdlL3BuZycsXG4gICAganBnOiBKUEVHLFxuICAgIGpwZWc6IEpQRUcsXG4gICAgZ2lmOiAnaW1hZ2UvZ2lmJyxcbiAgICB0aWZmOiAnaW1hZ2UvdGlmZicsXG4gICAgc3ZnOiAnaW1hZ2Uvc3ZnK3htbCdcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1pbWVUeXBlKHVybCkge1xuICBjb25zdCBleHRlbnNpb24gPSBwYXJzZUV4dGVuc2lvbih1cmwpLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiBtaW1lcygpW2V4dGVuc2lvbl0gfHwgJyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRhQXNVcmwoY29udGVudCwgdHlwZSkge1xuICByZXR1cm4gYGRhdGE6JHt0eXBlfTtiYXNlNjQsJHtjb250ZW50fWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlc2NhcGUoc3RyaW5nKSB7XG4gIHJldHVybiBzdHJpbmcucmVwbGFjZSgvKFsuKis/XiR7fSgpfFtcXF0vXFxcXF0pL2csICdcXFxcJDEnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlbGF5KG1zKSB7XG4gIHJldHVybiBhcmcgPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgcmVzb2x2ZShhcmcpO1xuICAgICAgfSwgbXMpO1xuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTcmNBc0RhdGFVcmwodGV4dCkge1xuICBjb25zdCBEQVRBX1VSTF9SRUdFWCA9IC91cmxcXChbJ1wiXT8oZGF0YTopKFteJ1wiXSs/KVsnXCJdP1xcKS87XG4gIHJldHVybiB0ZXh0LnNlYXJjaChEQVRBX1VSTF9SRUdFWCkgIT09IC0xO1xufVxuXG5mdW5jdGlvbiBjdlRvQmxvYihjYW52YXMpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgIGNvbnN0IGJpbmFyeVN0cmluZyA9IHdpbmRvdy5hdG9iKGNhbnZhcy50b0RhdGFVUkwoKS5zcGxpdCgnLCcpWzFdKTtcbiAgICBjb25zdCBsZW5ndGggPSBiaW5hcnlTdHJpbmcubGVuZ3RoO1xuICAgIGNvbnN0IGJpbmFyeUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkobGVuZ3RoKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIGJpbmFyeUFycmF5W2ldID0gYmluYXJ5U3RyaW5nLmNoYXJDb2RlQXQoaSk7XG5cbiAgICByZXNvbHZlKG5ldyB3aW5kb3cuQmxvYihbYmluYXJ5QXJyYXldLCB7dHlwZTogJ2ltYWdlL3BuZyd9KSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FudmFzVG9CbG9iKGNhbnZhcykge1xuICBpZiAoY2FudmFzLnRvQmxvYilcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICBjYW52YXMudG9CbG9iKHJlc29sdmUpO1xuICAgIH0pO1xuXG4gIHJldHVybiBjdlRvQmxvYihjYW52YXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlWGh0bWwoc3RyaW5nKSB7XG4gIHJldHVybiBzdHJpbmcucmVwbGFjZSgvIy9nLCAnJTIzJykucmVwbGFjZSgvXFxuL2csICclMEEnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFdpZHRoKG5vZGUpIHtcbiAgY29uc3QgbGVmdEJvcmRlciA9IHB4KG5vZGUsICdib3JkZXItbGVmdC13aWR0aCcpO1xuICBjb25zdCByaWdodEJvcmRlciA9IHB4KG5vZGUsICdib3JkZXItcmlnaHQtd2lkdGgnKTtcbiAgcmV0dXJuIG5vZGUuc2Nyb2xsV2lkdGggKyBsZWZ0Qm9yZGVyICsgcmlnaHRCb3JkZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWlnaHQobm9kZSkge1xuICBjb25zdCB0b3BCb3JkZXIgPSBweChub2RlLCAnYm9yZGVyLXRvcC13aWR0aCcpO1xuICBjb25zdCBib3R0b21Cb3JkZXIgPSBweChub2RlLCAnYm9yZGVyLWJvdHRvbS13aWR0aCcpO1xuICByZXR1cm4gbm9kZS5zY3JvbGxIZWlnaHQgKyB0b3BCb3JkZXIgKyBib3R0b21Cb3JkZXI7XG59XG5cbmZ1bmN0aW9uIHB4KG5vZGUsIHN0eWxlUHJvcGVydHkpIHtcbiAgY29uc3QgdmFsdWUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5nZXRQcm9wZXJ0eVZhbHVlKHN0eWxlUHJvcGVydHkpO1xuICByZXR1cm4gcGFyc2VGbG9hdCh2YWx1ZS5yZXBsYWNlKCdweCcsICcnKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVXJsKHVybCwgYmFzZVVybCkge1xuICBjb25zdCBkb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKTtcbiAgY29uc3QgYmFzZSA9IGRvYy5jcmVhdGVFbGVtZW50KCdiYXNlJyk7XG4gIGRvYy5oZWFkLmFwcGVuZENoaWxkKGJhc2UpO1xuICBjb25zdCBhID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQoYSk7XG4gIGJhc2UuaHJlZiA9IGJhc2VVcmw7XG4gIGEuaHJlZiA9IHVybDtcbiAgcmV0dXJuIGEuaHJlZjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFuZEVuY29kZSh1cmwsIG9wdGlvbnMpIHtcbiAgY29uc3QgVElNRU9VVCA9IDMwMDAwO1xuICBpZiAob3B0aW9ucy5jYWNoZUJ1c3QpIHtcbiAgICAvLyBDYWNoZSBieXBhc3Mgc28gd2UgZG9udCBoYXZlIENPUlMgaXNzdWVzIHdpdGggY2FjaGVkIGltYWdlc1xuICAgIC8vIFNvdXJjZTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4vZG9jcy9XZWIvQVBJL1hNTEh0dHBSZXF1ZXN0L1VzaW5nX1hNTEh0dHBSZXF1ZXN0I0J5cGFzc2luZ190aGVfY2FjaGVcbiAgICB1cmwgKz0gKC9cXD8vLnRlc3QodXJsKSA/ICcmJyA6ICc/JykgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IHdpbmRvdy5YTUxIdHRwUmVxdWVzdCgpO1xuXG4gICAgcmVxdWVzdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBkb25lO1xuICAgIHJlcXVlc3Qub250aW1lb3V0ID0gdGltZW91dDtcbiAgICByZXF1ZXN0LnJlc3BvbnNlVHlwZSA9ICdibG9iJztcbiAgICByZXF1ZXN0LnRpbWVvdXQgPSBUSU1FT1VUO1xuICAgIHJlcXVlc3Qub3BlbignR0VUJywgdXJsLCB0cnVlKTtcbiAgICByZXF1ZXN0LnNlbmQoKTtcblxuICAgIGxldCBwbGFjZWhvbGRlcjtcbiAgICBpZiAob3B0aW9ucy5pbWFnZVBsYWNlaG9sZGVyKSB7XG4gICAgICBjb25zdCBzcGxpdCA9IG9wdGlvbnMuaW1hZ2VQbGFjZWhvbGRlci5zcGxpdCgvLC8pO1xuICAgICAgaWYgKHNwbGl0ICYmIHNwbGl0WzFdKSB7XG4gICAgICAgIHBsYWNlaG9sZGVyID0gc3BsaXRbMV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZG9uZSgpIHtcbiAgICAgIGlmIChyZXF1ZXN0LnJlYWR5U3RhdGUgIT09IDQpIHJldHVybjtcblxuICAgICAgaWYgKHJlcXVlc3Quc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgaWYgKHBsYWNlaG9sZGVyKSB7XG4gICAgICAgICAgcmVzb2x2ZShwbGFjZWhvbGRlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmFpbChgY2Fubm90IGZldGNoIHJlc291cmNlOiAke3VybH0sIHN0YXR1czogJHtyZXF1ZXN0LnN0YXR1c31gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZW5jb2RlciA9IG5ldyB3aW5kb3cuRmlsZVJlYWRlcigpO1xuICAgICAgZW5jb2Rlci5vbmxvYWRlbmQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBlbmNvZGVyLnJlc3VsdC5zcGxpdCgvLC8pWzFdO1xuICAgICAgICByZXNvbHZlKGNvbnRlbnQpO1xuICAgICAgfTtcbiAgICAgIGVuY29kZXIucmVhZEFzRGF0YVVSTChyZXF1ZXN0LnJlc3BvbnNlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0aW1lb3V0KCkge1xuICAgICAgaWYgKHBsYWNlaG9sZGVyKSB7XG4gICAgICAgIHJlc29sdmUocGxhY2Vob2xkZXIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmFpbChgdGltZW91dCBvZiAke1RJTUVPVVR9bXMgb2NjdXJyZWQgd2hpbGUgZmV0Y2hpbmcgcmVzb3VyY2U6ICR7dXJsfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGZhaWwobWVzc2FnZSkge1xuICAgICAgQ29uc29sZS5lcnJvcihtZXNzYWdlKTtcbiAgICAgIHJlc29sdmUoJycpO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25jYXRBbmRSZXNvbHZlVXJsKGJhc2UsIHVybCkge1xuICByZXR1cm4gbmV3IFVSTCh1cmwsIGJhc2UpLmhyZWY7XG59XG5cbi8vIFNldCByZWxhdGl2ZSBVUkwgaW4gc3R5bGVzaGVldCB0byBhYnNvbHV0ZSB1cmxcbmV4cG9ydCBmdW5jdGlvbiBzZXRTdHlsZVNoZWV0QmFzZUhyZWYodGV4dCwgYmFzZSkge1xuICBmdW5jdGlvbiBhZGRCYXNlSHJlZlRvVXJsKG1hdGNoLCBwMSkge1xuICAgIGNvbnN0IHVybCA9IC9eaHR0cC9pLnRlc3QocDEpID8gcDEgOiBjb25jYXRBbmRSZXNvbHZlVXJsKGJhc2UsIHAxKTtcbiAgICByZXR1cm4gYHVybCgnJHt1cmx9JylgO1xuICB9XG4gIHJldHVybiBpc1NyY0FzRGF0YVVybCh0ZXh0KVxuICAgID8gdGV4dFxuICAgIDogdGV4dC5yZXBsYWNlKC91cmxcXChbJ1wiXT8oW14nXCJdKz8pWydcIl0/XFwpL2csIGFkZEJhc2VIcmVmVG9VcmwpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9TdHlsZVNoZWV0KHRleHQpIHtcbiAgY29uc3QgZG9jID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCcnKTtcbiAgY29uc3Qgc3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcblxuICBzdHlsZUVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0O1xuICBkb2MuYm9keS5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQpO1xuXG4gIHJldHVybiBzdHlsZUVsZW1lbnQuc2hlZXQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLFNBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQU5BO0FBQ0E7O0FBT08sU0FBU0ksWUFBWUEsQ0FBQ0MsUUFBUSxFQUFFQyxLQUFLLEVBQUU7RUFDNUMsSUFBSSxFQUFFQSxLQUFLLFlBQVlDLGtCQUFNLENBQUNDLE9BQU8sQ0FBQyxFQUFFO0lBQ3RDLE9BQU9GLEtBQUs7RUFDZDtFQUVBLFNBQVNHLGNBQWNBLENBQUNDLFdBQVcsRUFBRUMsV0FBVyxFQUFFO0lBQ2hELElBQU1DLFlBQVksR0FBR0MsT0FBTyxDQUFDSCxXQUFXLENBQUM7SUFDekNFLFlBQVksQ0FBQ0UsT0FBTyxDQUFDLFVBQUFDLElBQUksRUFBSTtNQUMzQkosV0FBVyxDQUFDSyxXQUFXLENBQ3JCRCxJQUFJLEVBQ0pMLFdBQVcsQ0FBQ08sZ0JBQWdCLENBQUNGLElBQUksQ0FBQyxFQUNsQ0wsV0FBVyxDQUFDUSxtQkFBbUIsQ0FBQ0gsSUFBSSxDQUN0QyxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0VBQ0o7RUFFQSxTQUFTSSxTQUFTQSxDQUFDQyxNQUFNLEVBQUVDLE1BQU0sRUFBRTtJQUNqQyxJQUFJRCxNQUFNLENBQUNFLE9BQU8sRUFBRTtNQUNsQkQsTUFBTSxDQUFDQyxPQUFPLEdBQUdGLE1BQU0sQ0FBQ0UsT0FBTztNQUMvQjtNQUNBLElBQUlGLE1BQU0sQ0FBQ0csSUFBSSxFQUFFO1FBQ2ZGLE1BQU0sQ0FBQ0UsSUFBSSxHQUFHSCxNQUFNLENBQUNHLElBQUk7TUFDM0I7SUFDRixDQUFDLE1BQU07TUFDTGQsY0FBYyxDQUFDVyxNQUFNLEVBQUVDLE1BQU0sQ0FBQztJQUNoQztFQUNGO0VBRUEsU0FBU0csVUFBVUEsQ0FBQ0MsRUFBRSxFQUFFQyxHQUFHLEVBQUU7SUFDM0IsSUFBTUMsYUFBYSxHQUFHcEIsa0JBQU0sQ0FBQ3FCLGdCQUFnQixDQUFDSCxFQUFFLENBQUM7SUFDakROLFNBQVMsQ0FBQ1EsYUFBYSxFQUFFRCxHQUFHLENBQUNHLEtBQUssQ0FBQztFQUNyQztFQUVBLFNBQVNDLHdCQUF3QkEsQ0FBQ0osR0FBRyxFQUFFSyxHQUFHLEVBQUVDLEdBQUcsRUFBRTtJQUMvQyxJQUFNQyxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUdDLElBQUksRUFBSTtNQUM1QixJQUFNQyxHQUFHLEdBQUdELElBQUksQ0FBQ2pCLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztNQUM1QyxVQUFBbUIsTUFBQSxDQUFVSixHQUFHLENBQUNWLE9BQU8sZ0JBQUFjLE1BQUEsQ0FBYUQsR0FBRztJQUN2QyxDQUFDO0lBRUQsSUFBTUUsY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFHdEIsSUFBSSxFQUFJO01BQzdCLFVBQUFxQixNQUFBLENBQVVyQixJQUFJLE9BQUFxQixNQUFBLENBQUlKLEdBQUcsQ0FBQ2YsZ0JBQWdCLENBQUNGLElBQUksQ0FBQyxFQUFBcUIsTUFBQSxDQUMxQ0osR0FBRyxDQUFDZCxtQkFBbUIsQ0FBQ0gsSUFBSSxDQUFDLEdBQUcsYUFBYSxHQUFHLEVBQUU7SUFFdEQsQ0FBQztJQUVELElBQU11QixtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFHQyxJQUFJLEVBQUk7TUFDbEMsVUFBQUgsTUFBQSxDQUFVdkIsT0FBTyxDQUFDMEIsSUFBSSxDQUFDLENBQUNDLEdBQUcsQ0FBQ0gsY0FBYyxDQUFDLENBQUNJLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQU1DLFFBQVEsT0FBQU4sTUFBQSxDQUFPVixHQUFHLE9BQUFVLE1BQUEsQ0FBSUwsR0FBRyxDQUFFO0lBQ2pDLElBQU1ULE9BQU8sR0FBR1UsR0FBRyxDQUFDVixPQUFPLEdBQUdXLGFBQWEsQ0FBQ0QsR0FBRyxDQUFDLEdBQUdNLG1CQUFtQixDQUFDTixHQUFHLENBQUM7SUFFM0UsT0FBT1csb0JBQVEsQ0FBQ0MsY0FBYyxJQUFBUixNQUFBLENBQUlNLFFBQVEsT0FBQU4sTUFBQSxDQUFJZCxPQUFPLE1BQUcsQ0FBQztFQUMzRDtFQUVBLFNBQVN1QixrQkFBa0JBLENBQUNDLEdBQUcsRUFBRXBCLEdBQUcsRUFBRXFCLE9BQU8sRUFBRTtJQUM3QyxJQUFNbEIsS0FBSyxHQUFHdEIsa0JBQU0sQ0FBQ3FCLGdCQUFnQixDQUFDa0IsR0FBRyxFQUFFQyxPQUFPLENBQUM7SUFDbkQsSUFBTUMsT0FBTyxHQUFHbkIsS0FBSyxDQUFDWixnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7SUFFakQsSUFBSStCLE9BQU8sS0FBSyxFQUFFLElBQUlBLE9BQU8sS0FBSyxNQUFNLEVBQUU7TUFDeEM7SUFDRjtJQUVBLElBQU1DLFNBQVMsR0FBR0MsR0FBRyxDQUFDLENBQUM7SUFDdkJ4QixHQUFHLENBQUN1QixTQUFTLE1BQUFiLE1BQUEsQ0FBTVYsR0FBRyxDQUFDdUIsU0FBUyxPQUFBYixNQUFBLENBQUlhLFNBQVMsQ0FBRTtJQUMvQyxJQUFNRSxZQUFZLEdBQUdSLG9CQUFRLENBQUNTLGFBQWEsQ0FBQyxPQUFPLENBQUM7SUFDcERELFlBQVksQ0FBQ0UsV0FBVyxDQUFDdkIsd0JBQXdCLENBQUNtQixTQUFTLEVBQUVGLE9BQU8sRUFBRWxCLEtBQUssQ0FBQyxDQUFDO0lBQzdFSCxHQUFHLENBQUMyQixXQUFXLENBQUNGLFlBQVksQ0FBQztFQUMvQjtFQUVBLFNBQVNHLG1CQUFtQkEsQ0FBQUMsSUFBQSxFQUFZO0lBQUEsSUFBQUMsS0FBQSxPQUFBQyxlQUFBLGFBQUFGLElBQUE7TUFBVjlCLEVBQUUsR0FBQStCLEtBQUE7TUFBRTlCLEdBQUcsR0FBQThCLEtBQUE7SUFDbkMsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMxQyxPQUFPLENBQUMsVUFBQWlDLE9BQU87TUFBQSxPQUFJRixrQkFBa0IsQ0FBQ3BCLEVBQUUsRUFBRUMsR0FBRyxFQUFFcUIsT0FBTyxDQUFDO0lBQUEsRUFBQztFQUNoRjtFQUVBLFNBQVNXLGFBQWFBLENBQUFDLEtBQUEsRUFBWTtJQUFBLElBQUFDLEtBQUEsT0FBQUgsZUFBQSxhQUFBRSxLQUFBO01BQVZsQyxFQUFFLEdBQUFtQyxLQUFBO01BQUVsQyxHQUFHLEdBQUFrQyxLQUFBO0lBQzdCLElBQUluQyxFQUFFLFlBQVlsQixrQkFBTSxDQUFDc0QsbUJBQW1CLEVBQUVuQyxHQUFHLENBQUNvQyxTQUFTLEdBQUdyQyxFQUFFLENBQUNzQyxLQUFLO0lBQ3RFLElBQUl0QyxFQUFFLFlBQVlsQixrQkFBTSxDQUFDeUQsZ0JBQWdCLEVBQUV0QyxHQUFHLENBQUN1QyxZQUFZLENBQUMsT0FBTyxFQUFFeEMsRUFBRSxDQUFDc0MsS0FBSyxDQUFDO0VBQ2hGO0VBRUEsU0FBU0csTUFBTUEsQ0FBQ3hDLEdBQUcsRUFBRTtJQUNuQixJQUFJLEVBQUVBLEdBQUcsWUFBWW5CLGtCQUFNLENBQUM0RCxVQUFVLENBQUMsRUFBRTtJQUN6Q3pDLEdBQUcsQ0FBQ3VDLFlBQVksQ0FBQyxPQUFPLEVBQUUsNEJBQTRCLENBQUM7SUFFdkQsSUFBSSxFQUFFdkMsR0FBRyxZQUFZbkIsa0JBQU0sQ0FBQzZELGNBQWMsQ0FBQyxFQUFFO0lBQzdDLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDdEQsT0FBTyxDQUFDLFVBQUF1RCxTQUFTLEVBQUk7TUFDdkMsSUFBTU4sS0FBSyxHQUFHckMsR0FBRyxDQUFDNEMsWUFBWSxDQUFDRCxTQUFTLENBQUM7TUFDekMsSUFBSSxDQUFDTixLQUFLLEVBQUU7TUFFWnJDLEdBQUcsQ0FBQ0csS0FBSyxDQUFDYixXQUFXLENBQUNxRCxTQUFTLEVBQUVOLEtBQUssQ0FBQztJQUN6QyxDQUFDLENBQUM7RUFDSjtFQUVBLE9BQ0VRLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLENBQUNuRSxRQUFRLEVBQUVDLEtBQUssQ0FBQyxDQUFDLENBQy9CbUUsSUFBSSxDQUFDLFVBQUFDLEtBQUEsRUFBZTtJQUFBLElBQUFDLEtBQUEsT0FBQWxCLGVBQUEsYUFBQWlCLEtBQUE7TUFBYmpELEVBQUUsR0FBQWtELEtBQUE7TUFBRWpELEdBQUcsR0FBQWlELEtBQUE7SUFDYm5ELFVBQVUsQ0FBQ0MsRUFBRSxFQUFFQyxHQUFHLENBQUM7SUFDbkIsT0FBTyxDQUFDRCxFQUFFLEVBQUVDLEdBQUcsQ0FBQztFQUNsQixDQUFDLENBQUMsQ0FDRCtDLElBQUksQ0FBQyxVQUFBRyxLQUFBLEVBQWU7SUFBQSxJQUFBQyxLQUFBLE9BQUFwQixlQUFBLGFBQUFtQixLQUFBO01BQWJuRCxFQUFFLEdBQUFvRCxLQUFBO01BQUVuRCxHQUFHLEdBQUFtRCxLQUFBO0lBQ2J2QixtQkFBbUIsQ0FBQyxDQUFDN0IsRUFBRSxFQUFFQyxHQUFHLENBQUMsQ0FBQztJQUM5QixPQUFPLENBQUNELEVBQUUsRUFBRUMsR0FBRyxDQUFDO0VBQ2xCLENBQUMsQ0FBQyxDQUNEK0MsSUFBSSxDQUFDLFVBQUFLLEtBQUEsRUFBZTtJQUFBLElBQUFDLE1BQUEsT0FBQXRCLGVBQUEsYUFBQXFCLEtBQUE7TUFBYnJELEVBQUUsR0FBQXNELE1BQUE7TUFBRXJELEdBQUcsR0FBQXFELE1BQUE7SUFDYnJCLGFBQWEsQ0FBQyxDQUFDakMsRUFBRSxFQUFFQyxHQUFHLENBQUMsQ0FBQztJQUN4QixPQUFPLENBQUNELEVBQUUsRUFBRUMsR0FBRyxDQUFDO0VBQ2xCLENBQUMsQ0FBQyxDQUNEK0MsSUFBSSxDQUFDLFVBQUFPLE1BQUEsRUFBZTtJQUFBLElBQUFDLE1BQUEsT0FBQXhCLGVBQUEsYUFBQXVCLE1BQUE7TUFBYnZELEVBQUUsR0FBQXdELE1BQUE7TUFBRXZELEdBQUcsR0FBQXVELE1BQUE7SUFDYmYsTUFBTSxDQUFDeEMsR0FBRyxDQUFDO0lBQ1gsT0FBTyxDQUFDRCxFQUFFLEVBQUVDLEdBQUcsQ0FBQztFQUNsQixDQUFDO0VBQ0Q7RUFBQSxDQUNDK0MsSUFBSSxDQUFDLFVBQUFTLE1BQUE7SUFBQSxJQUFBQyxNQUFBLE9BQUExQixlQUFBLGFBQUF5QixNQUFBO01BQUV6RCxFQUFFLEdBQUEwRCxNQUFBO01BQUV6RCxHQUFHLEdBQUF5RCxNQUFBO0lBQUEsT0FBTXpELEdBQUc7RUFBQSxFQUFDO0FBRS9COztBQUVBO0FBQ0E7QUFDQTtBQUNPLFNBQVNiLE9BQU9BLENBQUN1RSxTQUFTLEVBQUU7RUFDakMsSUFBTUMsS0FBWSxHQUFHLEVBQUU7RUFDdkIsSUFBTUMsTUFBTSxHQUFHRixTQUFTLENBQUNFLE1BQU07RUFDL0IsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdELE1BQU0sRUFBRUMsQ0FBQyxFQUFFLEVBQUVGLEtBQUssQ0FBQ0csSUFBSSxDQUFDSixTQUFTLENBQUNHLENBQUMsQ0FBQyxDQUFDO0VBQ3pELE9BQU9GLEtBQUs7QUFDZDtBQUVPLFNBQVNJLGVBQWVBLENBQUEsRUFBRztFQUNoQyxPQUFPLE9BQUFyRCxNQUFBLENBQU8sQ0FBRXNELElBQUksQ0FBQ0MsTUFBTSxDQUFDLENBQUMsR0FBR0QsSUFBSSxDQUFDRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFLLENBQUMsRUFBRUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFHQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakY7QUFFTyxTQUFTNUMsR0FBR0EsQ0FBQSxFQUFHO0VBQ3BCLElBQUk2QyxLQUFLLEdBQUcsQ0FBQztFQUViLFdBQUEzRCxNQUFBLENBQVdxRCxlQUFlLENBQUMsQ0FBQyxFQUFBckQsTUFBQSxDQUFHMkQsS0FBSyxFQUFFO0FBQ3hDO0FBRU8sU0FBU0MsU0FBU0EsQ0FBQ0MsR0FBRyxFQUFFO0VBQzdCLE9BQU8sSUFBSTFCLE9BQU8sQ0FBQyxVQUFDQyxPQUFPLEVBQUUwQixNQUFNLEVBQUs7SUFDdEMsSUFBTUMsS0FBSyxHQUFHLElBQUk1RixrQkFBTSxDQUFDNkYsS0FBSyxDQUFDLENBQUM7SUFDaENELEtBQUssQ0FBQ0UsTUFBTSxHQUFHLFlBQU07TUFDbkI3QixPQUFPLENBQUMyQixLQUFLLENBQUM7SUFDaEIsQ0FBQztJQUNEQSxLQUFLLENBQUNHLE9BQU8sR0FBRyxVQUFBQyxHQUFHLEVBQUk7TUFDckIsSUFBTUMsT0FBTyxHQUFHQyw4QkFBbUIsQ0FBQ0MsT0FBTztNQUMzQ0MsbUJBQU8sQ0FBQ0MsR0FBRyxDQUFDWCxHQUFHLENBQUM7TUFDaEI7TUFDQTtNQUNBQyxNQUFNLENBQUM7UUFBQ1csS0FBSyxFQUFFTixHQUFHO1FBQUVDLE9BQU8sRUFBUEE7TUFBTyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNETCxLQUFLLENBQUNXLEdBQUcsR0FBR2IsR0FBRztFQUNqQixDQUFDLENBQUM7QUFDSjtBQUVPLFNBQVNjLFNBQVNBLENBQUNDLEdBQUcsRUFBRTtFQUM3QixPQUFPQSxHQUFHLENBQUNDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdEM7QUFFQSxTQUFTQyxjQUFjQSxDQUFDRixHQUFHLEVBQUU7RUFDM0IsSUFBTUcsS0FBSyxHQUFHLGVBQWUsQ0FBQ0MsSUFBSSxDQUFDSixHQUFHLENBQUM7RUFDdkMsSUFBSUcsS0FBSyxFQUFFO0lBQ1QsT0FBT0EsS0FBSyxDQUFDLENBQUMsQ0FBQztFQUNqQjtFQUNBLE9BQU8sRUFBRTtBQUNYO0FBRUEsU0FBU0UsS0FBS0EsQ0FBQSxFQUFHO0VBQ2Y7QUFDRjtBQUNBO0FBQ0E7RUFDRSxJQUFNQyxJQUFJLEdBQUcsdUJBQXVCO0VBQ3BDLElBQU1DLElBQUksR0FBRyxZQUFZO0VBRXpCLE9BQU87SUFDTEMsSUFBSSxFQUFFRixJQUFJO0lBQ1ZHLEtBQUssRUFBRUgsSUFBSTtJQUNYSSxHQUFHLEVBQUUsMkJBQTJCO0lBQ2hDQyxHQUFHLEVBQUUsK0JBQStCO0lBQ3BDQyxHQUFHLEVBQUUsV0FBVztJQUNoQkMsR0FBRyxFQUFFTixJQUFJO0lBQ1RPLElBQUksRUFBRVAsSUFBSTtJQUNWUSxHQUFHLEVBQUUsV0FBVztJQUNoQkMsSUFBSSxFQUFFLFlBQVk7SUFDbEJDLEdBQUcsRUFBRTtFQUNQLENBQUM7QUFDSDtBQUVPLFNBQVNDLFFBQVFBLENBQUNsQixHQUFHLEVBQUU7RUFDNUIsSUFBTW1CLFNBQVMsR0FBR2pCLGNBQWMsQ0FBQ0YsR0FBRyxDQUFDLENBQUNvQixXQUFXLENBQUMsQ0FBQztFQUNuRCxPQUFPZixLQUFLLENBQUMsQ0FBQyxDQUFDYyxTQUFTLENBQUMsSUFBSSxFQUFFO0FBQ2pDO0FBRU8sU0FBU0UsU0FBU0EsQ0FBQ3JGLE9BQU8sRUFBRXNGLElBQUksRUFBRTtFQUN2QyxlQUFBbEcsTUFBQSxDQUFla0csSUFBSSxjQUFBbEcsTUFBQSxDQUFXWSxPQUFPO0FBQ3ZDO0FBRU8sU0FBU3VGLE1BQU1BLENBQUNDLE1BQU0sRUFBRTtFQUM3QixPQUFPQSxNQUFNLENBQUNDLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxNQUFNLENBQUM7QUFDekQ7QUFFTyxTQUFTQyxLQUFLQSxDQUFDQyxFQUFFLEVBQUU7RUFDeEIsT0FBTyxVQUFBQyxHQUFHLEVBQUk7SUFDWixPQUFPLElBQUlyRSxPQUFPLENBQUMsVUFBQUMsT0FBTyxFQUFJO01BQzVCakUsa0JBQU0sQ0FBQ3NJLFVBQVUsQ0FBQyxZQUFNO1FBQ3RCckUsT0FBTyxDQUFDb0UsR0FBRyxDQUFDO01BQ2QsQ0FBQyxFQUFFRCxFQUFFLENBQUM7SUFDUixDQUFDLENBQUM7RUFDSixDQUFDO0FBQ0g7QUFFTyxTQUFTRyxjQUFjQSxDQUFDQyxJQUFJLEVBQUU7RUFDbkMsSUFBTUMsY0FBYyxHQUFHLG1DQUFtQztFQUMxRCxPQUFPRCxJQUFJLENBQUM5QixNQUFNLENBQUMrQixjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDM0M7QUFFQSxTQUFTQyxRQUFRQSxDQUFDQyxNQUFNLEVBQUU7RUFDeEIsT0FBTyxJQUFJM0UsT0FBTyxDQUFDLFVBQUFDLE9BQU8sRUFBSTtJQUM1QixJQUFNMkUsWUFBWSxHQUFHNUksa0JBQU0sQ0FBQzZJLElBQUksQ0FBQ0YsTUFBTSxDQUFDRyxTQUFTLENBQUMsQ0FBQyxDQUFDQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEUsSUFBTWhFLE1BQU0sR0FBRzZELFlBQVksQ0FBQzdELE1BQU07SUFDbEMsSUFBTWlFLFdBQVcsR0FBRyxJQUFJQyxVQUFVLENBQUNsRSxNQUFNLENBQUM7SUFFMUMsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdELE1BQU0sRUFBRUMsQ0FBQyxFQUFFLEVBQUVnRSxXQUFXLENBQUNoRSxDQUFDLENBQUMsR0FBRzRELFlBQVksQ0FBQ00sVUFBVSxDQUFDbEUsQ0FBQyxDQUFDO0lBRTVFZixPQUFPLENBQUMsSUFBSWpFLGtCQUFNLENBQUNtSixJQUFJLENBQUMsQ0FBQ0gsV0FBVyxDQUFDLEVBQUU7TUFBQ2pCLElBQUksRUFBRTtJQUFXLENBQUMsQ0FBQyxDQUFDO0VBQzlELENBQUMsQ0FBQztBQUNKO0FBRU8sU0FBU3FCLFlBQVlBLENBQUNULE1BQU0sRUFBRTtFQUNuQyxJQUFJQSxNQUFNLENBQUNVLE1BQU0sRUFDZixPQUFPLElBQUlyRixPQUFPLENBQUMsVUFBQUMsT0FBTyxFQUFJO0lBQzVCMEUsTUFBTSxDQUFDVSxNQUFNLENBQUNwRixPQUFPLENBQUM7RUFDeEIsQ0FBQyxDQUFDO0VBRUosT0FBT3lFLFFBQVEsQ0FBQ0MsTUFBTSxDQUFDO0FBQ3pCO0FBRU8sU0FBU1csV0FBV0EsQ0FBQ3JCLE1BQU0sRUFBRTtFQUNsQyxPQUFPQSxNQUFNLENBQUNDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUNBLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDO0FBQzFEO0FBRU8sU0FBU3FCLFFBQVFBLENBQUNDLElBQUksRUFBRTtFQUM3QixJQUFNQyxVQUFVLEdBQUdDLEVBQUUsQ0FBQ0YsSUFBSSxFQUFFLG1CQUFtQixDQUFDO0VBQ2hELElBQU1HLFdBQVcsR0FBR0QsRUFBRSxDQUFDRixJQUFJLEVBQUUsb0JBQW9CLENBQUM7RUFDbEQsT0FBT0EsSUFBSSxDQUFDSSxXQUFXLEdBQUdILFVBQVUsR0FBR0UsV0FBVztBQUNwRDtBQUVPLFNBQVNFLFNBQVNBLENBQUNMLElBQUksRUFBRTtFQUM5QixJQUFNTSxTQUFTLEdBQUdKLEVBQUUsQ0FBQ0YsSUFBSSxFQUFFLGtCQUFrQixDQUFDO0VBQzlDLElBQU1PLFlBQVksR0FBR0wsRUFBRSxDQUFDRixJQUFJLEVBQUUscUJBQXFCLENBQUM7RUFDcEQsT0FBT0EsSUFBSSxDQUFDUSxZQUFZLEdBQUdGLFNBQVMsR0FBR0MsWUFBWTtBQUNyRDtBQUVBLFNBQVNMLEVBQUVBLENBQUNGLElBQUksRUFBRVMsYUFBYSxFQUFFO0VBQy9CLElBQU16RyxLQUFLLEdBQUd4RCxrQkFBTSxDQUFDcUIsZ0JBQWdCLENBQUNtSSxJQUFJLENBQUMsQ0FBQzlJLGdCQUFnQixDQUFDdUosYUFBYSxDQUFDO0VBQzNFLE9BQU9DLFVBQVUsQ0FBQzFHLEtBQUssQ0FBQzBFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDNUM7QUFFTyxTQUFTaUMsVUFBVUEsQ0FBQzFELEdBQUcsRUFBRTJELE9BQU8sRUFBRTtFQUN2QyxJQUFNQyxHQUFHLEdBQUdqSSxvQkFBUSxDQUFDa0ksY0FBYyxDQUFDQyxrQkFBa0IsQ0FBQyxDQUFDO0VBQ3hELElBQU1DLElBQUksR0FBR0gsR0FBRyxDQUFDeEgsYUFBYSxDQUFDLE1BQU0sQ0FBQztFQUN0Q3dILEdBQUcsQ0FBQ0ksSUFBSSxDQUFDM0gsV0FBVyxDQUFDMEgsSUFBSSxDQUFDO0VBQzFCLElBQU1FLENBQUMsR0FBR0wsR0FBRyxDQUFDeEgsYUFBYSxDQUFDLEdBQUcsQ0FBQztFQUNoQ3dILEdBQUcsQ0FBQ00sSUFBSSxDQUFDN0gsV0FBVyxDQUFDNEgsQ0FBQyxDQUFDO0VBQ3ZCRixJQUFJLENBQUNJLElBQUksR0FBR1IsT0FBTztFQUNuQk0sQ0FBQyxDQUFDRSxJQUFJLEdBQUduRSxHQUFHO0VBQ1osT0FBT2lFLENBQUMsQ0FBQ0UsSUFBSTtBQUNmO0FBRU8sU0FBU0MsWUFBWUEsQ0FBQ3BFLEdBQUcsRUFBRXFFLE9BQU8sRUFBRTtFQUN6QyxJQUFNQyxPQUFPLEdBQUcsS0FBSztFQUNyQixJQUFJRCxPQUFPLENBQUNFLFNBQVMsRUFBRTtJQUNyQjtJQUNBO0lBQ0F2RSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUN3RSxJQUFJLENBQUN4RSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUl5RSxJQUFJLENBQUMsQ0FBQyxDQUFDQyxPQUFPLENBQUMsQ0FBQztFQUM1RDtFQUVBLE9BQU8sSUFBSW5ILE9BQU8sQ0FBQyxVQUFBQyxPQUFPLEVBQUk7SUFDNUIsSUFBTW1ILE9BQU8sR0FBRyxJQUFJcEwsa0JBQU0sQ0FBQ3FMLGNBQWMsQ0FBQyxDQUFDO0lBRTNDRCxPQUFPLENBQUNFLGtCQUFrQixHQUFHQyxJQUFJO0lBQ2pDSCxPQUFPLENBQUNJLFNBQVMsR0FBR0MsT0FBTztJQUMzQkwsT0FBTyxDQUFDTSxZQUFZLEdBQUcsTUFBTTtJQUM3Qk4sT0FBTyxDQUFDSyxPQUFPLEdBQUdWLE9BQU87SUFDekJLLE9BQU8sQ0FBQ08sSUFBSSxDQUFDLEtBQUssRUFBRWxGLEdBQUcsRUFBRSxJQUFJLENBQUM7SUFDOUIyRSxPQUFPLENBQUNRLElBQUksQ0FBQyxDQUFDO0lBRWQsSUFBSUMsV0FBVztJQUNmLElBQUlmLE9BQU8sQ0FBQ2dCLGdCQUFnQixFQUFFO01BQzVCLElBQU0vQyxLQUFLLEdBQUcrQixPQUFPLENBQUNnQixnQkFBZ0IsQ0FBQy9DLEtBQUssQ0FBQyxHQUFHLENBQUM7TUFDakQsSUFBSUEsS0FBSyxJQUFJQSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDckI4QyxXQUFXLEdBQUc5QyxLQUFLLENBQUMsQ0FBQyxDQUFDO01BQ3hCO0lBQ0Y7SUFFQSxTQUFTd0MsSUFBSUEsQ0FBQSxFQUFHO01BQ2QsSUFBSUgsT0FBTyxDQUFDVyxVQUFVLEtBQUssQ0FBQyxFQUFFO01BRTlCLElBQUlYLE9BQU8sQ0FBQ1ksTUFBTSxLQUFLLEdBQUcsRUFBRTtRQUMxQixJQUFJSCxXQUFXLEVBQUU7VUFDZjVILE9BQU8sQ0FBQzRILFdBQVcsQ0FBQztRQUN0QixDQUFDLE1BQU07VUFDTEksSUFBSSwyQkFBQXBLLE1BQUEsQ0FBMkI0RSxHQUFHLGdCQUFBNUUsTUFBQSxDQUFhdUosT0FBTyxDQUFDWSxNQUFNLENBQUUsQ0FBQztRQUNsRTtRQUVBO01BQ0Y7TUFFQSxJQUFNRSxPQUFPLEdBQUcsSUFBSWxNLGtCQUFNLENBQUNtTSxVQUFVLENBQUMsQ0FBQztNQUN2Q0QsT0FBTyxDQUFDRSxTQUFTLEdBQUcsWUFBTTtRQUN4QixJQUFNM0osT0FBTyxHQUFHeUosT0FBTyxDQUFDRyxNQUFNLENBQUN0RCxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVDOUUsT0FBTyxDQUFDeEIsT0FBTyxDQUFDO01BQ2xCLENBQUM7TUFDRHlKLE9BQU8sQ0FBQ0ksYUFBYSxDQUFDbEIsT0FBTyxDQUFDbUIsUUFBUSxDQUFDO0lBQ3pDO0lBRUEsU0FBU2QsT0FBT0EsQ0FBQSxFQUFHO01BQ2pCLElBQUlJLFdBQVcsRUFBRTtRQUNmNUgsT0FBTyxDQUFDNEgsV0FBVyxDQUFDO01BQ3RCLENBQUMsTUFBTTtRQUNMSSxJQUFJLGVBQUFwSyxNQUFBLENBQWVrSixPQUFPLDJDQUFBbEosTUFBQSxDQUF3QzRFLEdBQUcsQ0FBRSxDQUFDO01BQzFFO0lBQ0Y7SUFFQSxTQUFTd0YsSUFBSUEsQ0FBQ2hHLE9BQU8sRUFBRTtNQUNyQkcsbUJBQU8sQ0FBQ29HLEtBQUssQ0FBQ3ZHLE9BQU8sQ0FBQztNQUN0QmhDLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFDYjtFQUNGLENBQUMsQ0FBQztBQUNKO0FBRU8sU0FBU3dJLG1CQUFtQkEsQ0FBQ2pDLElBQUksRUFBRS9ELEdBQUcsRUFBRTtFQUM3QyxPQUFPLElBQUlpRyxHQUFHLENBQUNqRyxHQUFHLEVBQUUrRCxJQUFJLENBQUMsQ0FBQ0ksSUFBSTtBQUNoQzs7QUFFQTtBQUNPLFNBQVMrQixxQkFBcUJBLENBQUNuRSxJQUFJLEVBQUVnQyxJQUFJLEVBQUU7RUFDaEQsU0FBU29DLGdCQUFnQkEsQ0FBQ2hHLEtBQUssRUFBRWlHLEVBQUUsRUFBRTtJQUNuQyxJQUFNcEcsR0FBRyxHQUFHLFFBQVEsQ0FBQ3dFLElBQUksQ0FBQzRCLEVBQUUsQ0FBQyxHQUFHQSxFQUFFLEdBQUdKLG1CQUFtQixDQUFDakMsSUFBSSxFQUFFcUMsRUFBRSxDQUFDO0lBQ2xFLGVBQUFoTCxNQUFBLENBQWU0RSxHQUFHO0VBQ3BCO0VBQ0EsT0FBTzhCLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDLEdBQ3ZCQSxJQUFJLEdBQ0pBLElBQUksQ0FBQ04sT0FBTyxDQUFDLDZCQUE2QixFQUFFMEUsZ0JBQWdCLENBQUM7QUFDbkU7QUFFTyxTQUFTRSxZQUFZQSxDQUFDdEUsSUFBSSxFQUFFO0VBQ2pDLElBQU02QixHQUFHLEdBQUdqSSxvQkFBUSxDQUFDa0ksY0FBYyxDQUFDQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7RUFDMUQsSUFBTTNILFlBQVksR0FBR1Isb0JBQVEsQ0FBQ1MsYUFBYSxDQUFDLE9BQU8sQ0FBQztFQUVwREQsWUFBWSxDQUFDbUssV0FBVyxHQUFHdkUsSUFBSTtFQUMvQjZCLEdBQUcsQ0FBQ00sSUFBSSxDQUFDN0gsV0FBVyxDQUFDRixZQUFZLENBQUM7RUFFbEMsT0FBT0EsWUFBWSxDQUFDb0ssS0FBSztBQUMzQiIsImlnbm9yZUxpc3QiOltdfQ==
|
349
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc29sZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3dpbmRvdyIsIl9kb2N1bWVudCIsIl9jb25zdGFudHMiLCJwcm9jZXNzQ2xvbmUiLCJvcmlnaW5hbCIsImNsb25lIiwiV2luZG93IiwiRWxlbWVudCIsImNvcHlQcm9wZXJ0aWVzIiwic291cmNlU3R5bGUiLCJ0YXJnZXRTdHlsZSIsInByb3BlcnR5S2V5cyIsImFzQXJyYXkiLCJmb3JFYWNoIiwibmFtZSIsInNldFByb3BlcnR5IiwiZ2V0UHJvcGVydHlWYWx1ZSIsImdldFByb3BlcnR5UHJpb3JpdHkiLCJjb3B5U3R5bGUiLCJzb3VyY2UiLCJ0YXJnZXQiLCJjc3NUZXh0IiwiZm9udCIsImNsb25lU3R5bGUiLCJvZyIsImNsbiIsIm9yaWdpbmFsU3R5bGUiLCJnZXRDb21wdXRlZFN0eWxlIiwic3R5bGUiLCJmb3JtYXRQc2V1ZG9FbGVtZW50U3R5bGUiLCJlbG0iLCJzdGwiLCJmb3JtYXRDc3NUZXh0Iiwic3RsMSIsImNudCIsImNvbmNhdCIsImZvcm1hdFByb3BlcnR5IiwiZm9ybWF0Q3NzUHJvcGVydGllcyIsInN0bDIiLCJtYXAiLCJqb2luIiwic2VsZWN0b3IiLCJkb2N1bWVudCIsImNyZWF0ZVRleHROb2RlIiwiY2xvbmVQc2V1ZG9FbGVtZW50Iiwib3JnIiwiZWxlbWVudCIsImNvbnRlbnQiLCJjbGFzc05hbWUiLCJ1aWQiLCJzdHlsZUVsZW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiYXBwZW5kQ2hpbGQiLCJjbG9uZVBzZXVkb0VsZW1lbnRzIiwiX3JlZiIsIl9yZWYyIiwiX3NsaWNlZFRvQXJyYXkyIiwiY29weVVzZXJJbnB1dCIsIl9yZWYzIiwiX3JlZjQiLCJIVE1MVGV4dEFyZWFFbGVtZW50IiwiaW5uZXJIVE1MIiwidmFsdWUiLCJIVE1MSW5wdXRFbGVtZW50Iiwic2V0QXR0cmlidXRlIiwiZml4U3ZnIiwiU1ZHRWxlbWVudCIsIlNWR1JlY3RFbGVtZW50IiwiYXR0cmlidXRlIiwiZ2V0QXR0cmlidXRlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwiX3JlZjUiLCJfcmVmNiIsIl9yZWY3IiwiX3JlZjgiLCJfcmVmOSIsIl9yZWYxMCIsIl9yZWYxMSIsIl9yZWYxMiIsIl9yZWYxMyIsIl9yZWYxNCIsImFycmF5TGlrZSIsImFycmF5IiwibGVuZ3RoIiwiaSIsInB1c2giLCJmb3VyUmFuZG9tQ2hhcnMiLCJNYXRoIiwicmFuZG9tIiwicG93IiwidG9TdHJpbmciLCJzbGljZSIsImluZGV4IiwibWFrZUltYWdlIiwidXJpIiwicmVqZWN0IiwiaW1hZ2UiLCJJbWFnZSIsIm9ubG9hZCIsIm9uZXJyb3IiLCJlcnIiLCJtZXNzYWdlIiwiSU1BR0VfRVhQT1JUX0VSUk9SUyIsImRhdGFVcmkiLCJDb25zb2xlIiwibG9nIiwiZXZlbnQiLCJzcmMiLCJpc0RhdGFVcmwiLCJ1cmwiLCJzZWFyY2giLCJwYXJzZUV4dGVuc2lvbiIsIm1hdGNoIiwiZXhlYyIsIm1pbWVzIiwiV09GRiIsIkpQRUciLCJ3b2ZmIiwid29mZjIiLCJ0dGYiLCJlb3QiLCJwbmciLCJqcGciLCJqcGVnIiwiZ2lmIiwidGlmZiIsInN2ZyIsIm1pbWVUeXBlIiwiZXh0ZW5zaW9uIiwidG9Mb3dlckNhc2UiLCJkYXRhQXNVcmwiLCJ0eXBlIiwiZXNjYXBlIiwic3RyaW5nIiwicmVwbGFjZSIsImRlbGF5IiwibXMiLCJhcmciLCJzZXRUaW1lb3V0IiwiaXNTcmNBc0RhdGFVcmwiLCJ0ZXh0IiwiREFUQV9VUkxfUkVHRVgiLCJjdlRvQmxvYiIsImNhbnZhcyIsImJpbmFyeVN0cmluZyIsImF0b2IiLCJ0b0RhdGFVUkwiLCJzcGxpdCIsImJpbmFyeUFycmF5IiwiVWludDhBcnJheSIsImNoYXJDb2RlQXQiLCJCbG9iIiwiY2FudmFzVG9CbG9iIiwidG9CbG9iIiwiZXNjYXBlWGh0bWwiLCJnZXRXaWR0aCIsIm5vZGUiLCJsZWZ0Qm9yZGVyIiwicHgiLCJyaWdodEJvcmRlciIsInNjcm9sbFdpZHRoIiwiZ2V0SGVpZ2h0IiwidG9wQm9yZGVyIiwiYm90dG9tQm9yZGVyIiwic2Nyb2xsSGVpZ2h0Iiwic3R5bGVQcm9wZXJ0eSIsInBhcnNlRmxvYXQiLCJyZXNvbHZlVXJsIiwiYmFzZVVybCIsImRvYyIsImltcGxlbWVudGF0aW9uIiwiY3JlYXRlSFRNTERvY3VtZW50IiwiYmFzZSIsImhlYWQiLCJhIiwiYm9keSIsImhyZWYiLCJnZXRBbmRFbmNvZGUiLCJvcHRpb25zIiwiVElNRU9VVCIsImNhY2hlQnVzdCIsInRlc3QiLCJEYXRlIiwiZ2V0VGltZSIsInJlcXVlc3QiLCJYTUxIdHRwUmVxdWVzdCIsIm9ucmVhZHlzdGF0ZWNoYW5nZSIsImRvbmUiLCJvbnRpbWVvdXQiLCJ0aW1lb3V0IiwicmVzcG9uc2VUeXBlIiwib3BlbiIsInNlbmQiLCJwbGFjZWhvbGRlciIsImltYWdlUGxhY2Vob2xkZXIiLCJyZWFkeVN0YXRlIiwic3RhdHVzIiwiZmFpbCIsImVuY29kZXIiLCJGaWxlUmVhZGVyIiwib25sb2FkZW5kIiwicmVzdWx0IiwicmVhZEFzRGF0YVVSTCIsInJlc3BvbnNlIiwiZXJyb3IiLCJjb25jYXRBbmRSZXNvbHZlVXJsIiwiVVJMIiwic2V0U3R5bGVTaGVldEJhc2VIcmVmIiwiYWRkQmFzZUhyZWZUb1VybCIsInAxIiwidG9TdHlsZVNoZWV0IiwidGV4dENvbnRlbnQiLCJzaGVldCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9kb20tdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IENvbnNvbGUgZnJvbSAnZ2xvYmFsL2NvbnNvbGUnO1xuaW1wb3J0IFdpbmRvdyBmcm9tICdnbG9iYWwvd2luZG93JztcbmltcG9ydCBkb2N1bWVudCBmcm9tICdnbG9iYWwvZG9jdW1lbnQnO1xuaW1wb3J0IHtJTUFHRV9FWFBPUlRfRVJST1JTfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZXNzQ2xvbmUob3JpZ2luYWwsIGNsb25lKSB7XG4gIGlmICghKGNsb25lIGluc3RhbmNlb2YgV2luZG93LkVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIGNsb25lO1xuICB9XG5cbiAgZnVuY3Rpb24gY29weVByb3BlcnRpZXMoc291cmNlU3R5bGUsIHRhcmdldFN0eWxlKSB7XG4gICAgY29uc3QgcHJvcGVydHlLZXlzID0gYXNBcnJheShzb3VyY2VTdHlsZSk7XG4gICAgcHJvcGVydHlLZXlzLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICB0YXJnZXRTdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgbmFtZSxcbiAgICAgICAgc291cmNlU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShuYW1lKSxcbiAgICAgICAgc291cmNlU3R5bGUuZ2V0UHJvcGVydHlQcmlvcml0eShuYW1lKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNvcHlTdHlsZShzb3VyY2UsIHRhcmdldCkge1xuICAgIGlmIChzb3VyY2UuY3NzVGV4dCkge1xuICAgICAgdGFyZ2V0LmNzc1RleHQgPSBzb3VyY2UuY3NzVGV4dDtcbiAgICAgIC8vIGFkZCBhZGRpdGlvbmFsIGNvcHkgb2YgY29tcG9zaXRlIHN0eWxlc1xuICAgICAgaWYgKHNvdXJjZS5mb250KSB7XG4gICAgICAgIHRhcmdldC5mb250ID0gc291cmNlLmZvbnQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvcHlQcm9wZXJ0aWVzKHNvdXJjZSwgdGFyZ2V0KTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBjbG9uZVN0eWxlKG9nLCBjbG4pIHtcbiAgICBjb25zdCBvcmlnaW5hbFN0eWxlID0gV2luZG93LmdldENvbXB1dGVkU3R5bGUob2cpO1xuICAgIGNvcHlTdHlsZShvcmlnaW5hbFN0eWxlLCBjbG4uc3R5bGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gZm9ybWF0UHNldWRvRWxlbWVudFN0eWxlKGNsbiwgZWxtLCBzdGwpIHtcbiAgICBjb25zdCBmb3JtYXRDc3NUZXh0ID0gc3RsMSA9PiB7XG4gICAgICBjb25zdCBjbnQgPSBzdGwxLmdldFByb3BlcnR5VmFsdWUoJ2NvbnRlbnQnKTtcbiAgICAgIHJldHVybiBgJHtzdGwuY3NzVGV4dH0gY29udGVudDogJHtjbnR9O2A7XG4gICAgfTtcblxuICAgIGNvbnN0IGZvcm1hdFByb3BlcnR5ID0gbmFtZSA9PiB7XG4gICAgICByZXR1cm4gYCR7bmFtZX06JHtzdGwuZ2V0UHJvcGVydHlWYWx1ZShuYW1lKX0ke1xuICAgICAgICBzdGwuZ2V0UHJvcGVydHlQcmlvcml0eShuYW1lKSA/ICcgIWltcG9ydGFudCcgOiAnJ1xuICAgICAgfWA7XG4gICAgfTtcblxuICAgIGNvbnN0IGZvcm1hdENzc1Byb3BlcnRpZXMgPSBzdGwyID0+IHtcbiAgICAgIHJldHVybiBgJHthc0FycmF5KHN0bDIpLm1hcChmb3JtYXRQcm9wZXJ0eSkuam9pbignOyAnKX07YDtcbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0b3IgPSBgLiR7Y2xufToke2VsbX1gO1xuICAgIGNvbnN0IGNzc1RleHQgPSBzdGwuY3NzVGV4dCA/IGZvcm1hdENzc1RleHQoc3RsKSA6IGZvcm1hdENzc1Byb3BlcnRpZXMoc3RsKTtcblxuICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShgJHtzZWxlY3Rvcn17JHtjc3NUZXh0fX1gKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNsb25lUHNldWRvRWxlbWVudChvcmcsIGNsbiwgZWxlbWVudCkge1xuICAgIGNvbnN0IHN0eWxlID0gV2luZG93LmdldENvbXB1dGVkU3R5bGUob3JnLCBlbGVtZW50KTtcbiAgICBjb25zdCBjb250ZW50ID0gc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnY29udGVudCcpO1xuXG4gICAgaWYgKGNvbnRlbnQgPT09ICcnIHx8IGNvbnRlbnQgPT09ICdub25lJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNsYXNzTmFtZSA9IHVpZCgpO1xuICAgIGNsbi5jbGFzc05hbWUgPSBgJHtjbG4uY2xhc3NOYW1lfSAke2NsYXNzTmFtZX1gO1xuICAgIGNvbnN0IHN0eWxlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgc3R5bGVFbGVtZW50LmFwcGVuZENoaWxkKGZvcm1hdFBzZXVkb0VsZW1lbnRTdHlsZShjbGFzc05hbWUsIGVsZW1lbnQsIHN0eWxlKSk7XG4gICAgY2xuLmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCk7XG4gIH1cblxuICBmdW5jdGlvbiBjbG9uZVBzZXVkb0VsZW1lbnRzKFtvZywgY2xuXSkge1xuICAgIFsnOmJlZm9yZScsICc6YWZ0ZXInXS5mb3JFYWNoKGVsZW1lbnQgPT4gY2xvbmVQc2V1ZG9FbGVtZW50KG9nLCBjbG4sIGVsZW1lbnQpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNvcHlVc2VySW5wdXQoW29nLCBjbG5dKSB7XG4gICAgaWYgKG9nIGluc3RhbmNlb2YgV2luZG93LkhUTUxUZXh0QXJlYUVsZW1lbnQpIGNsbi5pbm5lckhUTUwgPSBvZy52YWx1ZTtcbiAgICBpZiAob2cgaW5zdGFuY2VvZiBXaW5kb3cuSFRNTElucHV0RWxlbWVudCkgY2xuLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBvZy52YWx1ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBmaXhTdmcoY2xuKSB7XG4gICAgaWYgKCEoY2xuIGluc3RhbmNlb2YgV2luZG93LlNWR0VsZW1lbnQpKSByZXR1cm47XG4gICAgY2xuLnNldEF0dHJpYnV0ZSgneG1sbnMnLCAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnKTtcblxuICAgIGlmICghKGNsbiBpbnN0YW5jZW9mIFdpbmRvdy5TVkdSZWN0RWxlbWVudCkpIHJldHVybjtcbiAgICBbJ3dpZHRoJywgJ2hlaWdodCddLmZvckVhY2goYXR0cmlidXRlID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gY2xuLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpO1xuICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuXG4gICAgICBjbG4uc3R5bGUuc2V0UHJvcGVydHkoYXR0cmlidXRlLCB2YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIFByb21pc2UucmVzb2x2ZShbb3JpZ2luYWwsIGNsb25lXSlcbiAgICAgIC50aGVuKChbb2csIGNsbl0pID0+IHtcbiAgICAgICAgY2xvbmVTdHlsZShvZywgY2xuKTtcbiAgICAgICAgcmV0dXJuIFtvZywgY2xuXTtcbiAgICAgIH0pXG4gICAgICAudGhlbigoW29nLCBjbG5dKSA9PiB7XG4gICAgICAgIGNsb25lUHNldWRvRWxlbWVudHMoW29nLCBjbG5dKTtcbiAgICAgICAgcmV0dXJuIFtvZywgY2xuXTtcbiAgICAgIH0pXG4gICAgICAudGhlbigoW29nLCBjbG5dKSA9PiB7XG4gICAgICAgIGNvcHlVc2VySW5wdXQoW29nLCBjbG5dKTtcbiAgICAgICAgcmV0dXJuIFtvZywgY2xuXTtcbiAgICAgIH0pXG4gICAgICAudGhlbigoW29nLCBjbG5dKSA9PiB7XG4gICAgICAgIGZpeFN2ZyhjbG4pO1xuICAgICAgICByZXR1cm4gW29nLCBjbG5dO1xuICAgICAgfSlcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgIC50aGVuKChbb2csIGNsbl0pID0+IGNsbilcbiAgKTtcbn1cblxuLyoqICoqXG4gKiBVVElMU1xuICoqKiovXG5leHBvcnQgZnVuY3Rpb24gYXNBcnJheShhcnJheUxpa2UpIHtcbiAgY29uc3QgYXJyYXk6IGFueVtdID0gW107XG4gIGNvbnN0IGxlbmd0aCA9IGFycmF5TGlrZS5sZW5ndGg7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIGFycmF5LnB1c2goYXJyYXlMaWtlW2ldKTtcbiAgcmV0dXJuIGFycmF5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm91clJhbmRvbUNoYXJzKCkge1xuICByZXR1cm4gYDAwMDAkeygoTWF0aC5yYW5kb20oKSAqIE1hdGgucG93KDM2LCA0KSkgPDwgMCkudG9TdHJpbmcoMzYpfWAuc2xpY2UoLTQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdWlkKCkge1xuICBsZXQgaW5kZXggPSAwO1xuXG4gIHJldHVybiBgdSR7Zm91clJhbmRvbUNoYXJzKCl9JHtpbmRleCsrfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYWtlSW1hZ2UodXJpKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgaW1hZ2UgPSBuZXcgV2luZG93LkltYWdlKCk7XG4gICAgaW1hZ2Uub25sb2FkID0gKCkgPT4ge1xuICAgICAgcmVzb2x2ZShpbWFnZSk7XG4gICAgfTtcbiAgICBpbWFnZS5vbmVycm9yID0gZXJyID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBJTUFHRV9FWFBPUlRfRVJST1JTLmRhdGFVcmk7XG4gICAgICBDb25zb2xlLmxvZyh1cmkpO1xuICAgICAgLy8gZXJyb3IgaXMgYW4gRXZlbnQgT2JqZWN0XG4gICAgICAvLyBodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2pzcmVmL29ial9ldmVudC5hc3BcbiAgICAgIHJlamVjdCh7ZXZlbnQ6IGVyciwgbWVzc2FnZX0pO1xuICAgIH07XG4gICAgaW1hZ2Uuc3JjID0gdXJpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0YVVybCh1cmwpIHtcbiAgcmV0dXJuIHVybC5zZWFyY2goL14oZGF0YTopLykgIT09IC0xO1xufVxuXG5mdW5jdGlvbiBwYXJzZUV4dGVuc2lvbih1cmwpIHtcbiAgY29uc3QgbWF0Y2ggPSAvXFwuKFteLi9dKj8pJC9nLmV4ZWModXJsKTtcbiAgaWYgKG1hdGNoKSB7XG4gICAgcmV0dXJuIG1hdGNoWzFdO1xuICB9XG4gIHJldHVybiAnJztcbn1cblxuZnVuY3Rpb24gbWltZXMoKSB7XG4gIC8qXG4gICAqIE9ubHkgV09GRiBhbmQgRU9UIG1pbWUgdHlwZXMgZm9yIGZvbnRzIGFyZSAncmVhbCdcbiAgICogc2VlIGh0dHA6Ly93d3cuaWFuYS5vcmcvYXNzaWdubWVudHMvbWVkaWEtdHlwZXMvbWVkaWEtdHlwZXMueGh0bWxcbiAgICovXG4gIGNvbnN0IFdPRkYgPSAnYXBwbGljYXRpb24vZm9udC13b2ZmJztcbiAgY29uc3QgSlBFRyA9ICdpbWFnZS9qcGVnJztcblxuICByZXR1cm4ge1xuICAgIHdvZmY6IFdPRkYsXG4gICAgd29mZjI6IFdPRkYsXG4gICAgdHRmOiAnYXBwbGljYXRpb24vZm9udC10cnVldHlwZScsXG4gICAgZW90OiAnYXBwbGljYXRpb24vdm5kLm1zLWZvbnRvYmplY3QnLFxuICAgIHBuZzogJ2ltYWdlL3BuZycsXG4gICAganBnOiBKUEVHLFxuICAgIGpwZWc6IEpQRUcsXG4gICAgZ2lmOiAnaW1hZ2UvZ2lmJyxcbiAgICB0aWZmOiAnaW1hZ2UvdGlmZicsXG4gICAgc3ZnOiAnaW1hZ2Uvc3ZnK3htbCdcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1pbWVUeXBlKHVybCkge1xuICBjb25zdCBleHRlbnNpb24gPSBwYXJzZUV4dGVuc2lvbih1cmwpLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiBtaW1lcygpW2V4dGVuc2lvbl0gfHwgJyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRhQXNVcmwoY29udGVudCwgdHlwZSkge1xuICByZXR1cm4gYGRhdGE6JHt0eXBlfTtiYXNlNjQsJHtjb250ZW50fWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlc2NhcGUoc3RyaW5nKSB7XG4gIHJldHVybiBzdHJpbmcucmVwbGFjZSgvKFsuKis/XiR7fSgpfFtcXF0vXFxcXF0pL2csICdcXFxcJDEnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlbGF5KG1zKSB7XG4gIHJldHVybiBhcmcgPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgIFdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgcmVzb2x2ZShhcmcpO1xuICAgICAgfSwgbXMpO1xuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTcmNBc0RhdGFVcmwodGV4dCkge1xuICBjb25zdCBEQVRBX1VSTF9SRUdFWCA9IC91cmxcXChbJ1wiXT8oZGF0YTopKFteJ1wiXSs/KVsnXCJdP1xcKS87XG4gIHJldHVybiB0ZXh0LnNlYXJjaChEQVRBX1VSTF9SRUdFWCkgIT09IC0xO1xufVxuXG5mdW5jdGlvbiBjdlRvQmxvYihjYW52YXMpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgIGNvbnN0IGJpbmFyeVN0cmluZyA9IFdpbmRvdy5hdG9iKGNhbnZhcy50b0RhdGFVUkwoKS5zcGxpdCgnLCcpWzFdKTtcbiAgICBjb25zdCBsZW5ndGggPSBiaW5hcnlTdHJpbmcubGVuZ3RoO1xuICAgIGNvbnN0IGJpbmFyeUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkobGVuZ3RoKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIGJpbmFyeUFycmF5W2ldID0gYmluYXJ5U3RyaW5nLmNoYXJDb2RlQXQoaSk7XG5cbiAgICByZXNvbHZlKG5ldyBXaW5kb3cuQmxvYihbYmluYXJ5QXJyYXldLCB7dHlwZTogJ2ltYWdlL3BuZyd9KSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FudmFzVG9CbG9iKGNhbnZhcykge1xuICBpZiAoY2FudmFzLnRvQmxvYilcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICBjYW52YXMudG9CbG9iKHJlc29sdmUpO1xuICAgIH0pO1xuXG4gIHJldHVybiBjdlRvQmxvYihjYW52YXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlWGh0bWwoc3RyaW5nKSB7XG4gIHJldHVybiBzdHJpbmcucmVwbGFjZSgvIy9nLCAnJTIzJykucmVwbGFjZSgvXFxuL2csICclMEEnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFdpZHRoKG5vZGUpIHtcbiAgY29uc3QgbGVmdEJvcmRlciA9IHB4KG5vZGUsICdib3JkZXItbGVmdC13aWR0aCcpO1xuICBjb25zdCByaWdodEJvcmRlciA9IHB4KG5vZGUsICdib3JkZXItcmlnaHQtd2lkdGgnKTtcbiAgcmV0dXJuIG5vZGUuc2Nyb2xsV2lkdGggKyBsZWZ0Qm9yZGVyICsgcmlnaHRCb3JkZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWlnaHQobm9kZSkge1xuICBjb25zdCB0b3BCb3JkZXIgPSBweChub2RlLCAnYm9yZGVyLXRvcC13aWR0aCcpO1xuICBjb25zdCBib3R0b21Cb3JkZXIgPSBweChub2RlLCAnYm9yZGVyLWJvdHRvbS13aWR0aCcpO1xuICByZXR1cm4gbm9kZS5zY3JvbGxIZWlnaHQgKyB0b3BCb3JkZXIgKyBib3R0b21Cb3JkZXI7XG59XG5cbmZ1bmN0aW9uIHB4KG5vZGUsIHN0eWxlUHJvcGVydHkpIHtcbiAgY29uc3QgdmFsdWUgPSBXaW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5nZXRQcm9wZXJ0eVZhbHVlKHN0eWxlUHJvcGVydHkpO1xuICByZXR1cm4gcGFyc2VGbG9hdCh2YWx1ZS5yZXBsYWNlKCdweCcsICcnKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVXJsKHVybCwgYmFzZVVybCkge1xuICBjb25zdCBkb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKTtcbiAgY29uc3QgYmFzZSA9IGRvYy5jcmVhdGVFbGVtZW50KCdiYXNlJyk7XG4gIGRvYy5oZWFkLmFwcGVuZENoaWxkKGJhc2UpO1xuICBjb25zdCBhID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQoYSk7XG4gIGJhc2UuaHJlZiA9IGJhc2VVcmw7XG4gIGEuaHJlZiA9IHVybDtcbiAgcmV0dXJuIGEuaHJlZjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFuZEVuY29kZSh1cmwsIG9wdGlvbnMpIHtcbiAgY29uc3QgVElNRU9VVCA9IDMwMDAwO1xuICBpZiAob3B0aW9ucy5jYWNoZUJ1c3QpIHtcbiAgICAvLyBDYWNoZSBieXBhc3Mgc28gd2UgZG9udCBoYXZlIENPUlMgaXNzdWVzIHdpdGggY2FjaGVkIGltYWdlc1xuICAgIC8vIFNvdXJjZTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4vZG9jcy9XZWIvQVBJL1hNTEh0dHBSZXF1ZXN0L1VzaW5nX1hNTEh0dHBSZXF1ZXN0I0J5cGFzc2luZ190aGVfY2FjaGVcbiAgICB1cmwgKz0gKC9cXD8vLnRlc3QodXJsKSA/ICcmJyA6ICc/JykgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFdpbmRvdy5YTUxIdHRwUmVxdWVzdCgpO1xuXG4gICAgcmVxdWVzdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBkb25lO1xuICAgIHJlcXVlc3Qub250aW1lb3V0ID0gdGltZW91dDtcbiAgICByZXF1ZXN0LnJlc3BvbnNlVHlwZSA9ICdibG9iJztcbiAgICByZXF1ZXN0LnRpbWVvdXQgPSBUSU1FT1VUO1xuICAgIHJlcXVlc3Qub3BlbignR0VUJywgdXJsLCB0cnVlKTtcbiAgICByZXF1ZXN0LnNlbmQoKTtcblxuICAgIGxldCBwbGFjZWhvbGRlcjtcbiAgICBpZiAob3B0aW9ucy5pbWFnZVBsYWNlaG9sZGVyKSB7XG4gICAgICBjb25zdCBzcGxpdCA9IG9wdGlvbnMuaW1hZ2VQbGFjZWhvbGRlci5zcGxpdCgvLC8pO1xuICAgICAgaWYgKHNwbGl0ICYmIHNwbGl0WzFdKSB7XG4gICAgICAgIHBsYWNlaG9sZGVyID0gc3BsaXRbMV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZG9uZSgpIHtcbiAgICAgIGlmIChyZXF1ZXN0LnJlYWR5U3RhdGUgIT09IDQpIHJldHVybjtcblxuICAgICAgaWYgKHJlcXVlc3Quc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgaWYgKHBsYWNlaG9sZGVyKSB7XG4gICAgICAgICAgcmVzb2x2ZShwbGFjZWhvbGRlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmFpbChgY2Fubm90IGZldGNoIHJlc291cmNlOiAke3VybH0sIHN0YXR1czogJHtyZXF1ZXN0LnN0YXR1c31gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZW5jb2RlciA9IG5ldyBXaW5kb3cuRmlsZVJlYWRlcigpO1xuICAgICAgZW5jb2Rlci5vbmxvYWRlbmQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBlbmNvZGVyLnJlc3VsdC5zcGxpdCgvLC8pWzFdO1xuICAgICAgICByZXNvbHZlKGNvbnRlbnQpO1xuICAgICAgfTtcbiAgICAgIGVuY29kZXIucmVhZEFzRGF0YVVSTChyZXF1ZXN0LnJlc3BvbnNlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0aW1lb3V0KCkge1xuICAgICAgaWYgKHBsYWNlaG9sZGVyKSB7XG4gICAgICAgIHJlc29sdmUocGxhY2Vob2xkZXIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmFpbChgdGltZW91dCBvZiAke1RJTUVPVVR9bXMgb2NjdXJyZWQgd2hpbGUgZmV0Y2hpbmcgcmVzb3VyY2U6ICR7dXJsfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGZhaWwobWVzc2FnZSkge1xuICAgICAgQ29uc29sZS5lcnJvcihtZXNzYWdlKTtcbiAgICAgIHJlc29sdmUoJycpO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25jYXRBbmRSZXNvbHZlVXJsKGJhc2UsIHVybCkge1xuICByZXR1cm4gbmV3IFVSTCh1cmwsIGJhc2UpLmhyZWY7XG59XG5cbi8vIFNldCByZWxhdGl2ZSBVUkwgaW4gc3R5bGVzaGVldCB0byBhYnNvbHV0ZSB1cmxcbmV4cG9ydCBmdW5jdGlvbiBzZXRTdHlsZVNoZWV0QmFzZUhyZWYodGV4dCwgYmFzZSkge1xuICBmdW5jdGlvbiBhZGRCYXNlSHJlZlRvVXJsKG1hdGNoLCBwMSkge1xuICAgIGNvbnN0IHVybCA9IC9eaHR0cC9pLnRlc3QocDEpID8gcDEgOiBjb25jYXRBbmRSZXNvbHZlVXJsKGJhc2UsIHAxKTtcbiAgICByZXR1cm4gYHVybCgnJHt1cmx9JylgO1xuICB9XG4gIHJldHVybiBpc1NyY0FzRGF0YVVybCh0ZXh0KVxuICAgID8gdGV4dFxuICAgIDogdGV4dC5yZXBsYWNlKC91cmxcXChbJ1wiXT8oW14nXCJdKz8pWydcIl0/XFwpL2csIGFkZEJhc2VIcmVmVG9VcmwpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9TdHlsZVNoZWV0KHRleHQpIHtcbiAgY29uc3QgZG9jID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCcnKTtcbiAgY29uc3Qgc3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcblxuICBzdHlsZUVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0O1xuICBkb2MuYm9keS5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQpO1xuXG4gIHJldHVybiBzdHlsZUVsZW1lbnQuc2hlZXQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLFNBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQU5BO0FBQ0E7O0FBT08sU0FBU0ksWUFBWUEsQ0FBQ0MsUUFBUSxFQUFFQyxLQUFLLEVBQUU7RUFDNUMsSUFBSSxFQUFFQSxLQUFL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
|
@@ -151,6 +151,12 @@ function scaleMapStyleByResolution(mapboxStyle, scale) {
|
|
151
151
|
// edit minzoom and maxzoom
|
152
152
|
if (d.maxzoom) {
|
153
153
|
d.maxzoom = Math.max(d.maxzoom + zoomOffset, 1);
|
154
|
+
|
155
|
+
// The maximum zoom is 24
|
156
|
+
// https://github.com/visgl/react-map-gl/blob/master/docs/api-reference/map.md#maxzoom-number-maxzoom
|
157
|
+
if (d.maxzoom > 24) {
|
158
|
+
d.maxzoom = 24;
|
159
|
+
}
|
154
160
|
}
|
155
161
|
if (d.minzoom) {
|
156
162
|
d.minzoom = Math.max(d.minzoom + zoomOffset, 1);
|
@@ -185,4 +191,4 @@ function mergeLayerGroupVisibility(defaultLayerGroup, currentLayerGroup) {
|
|
185
191
|
return _objectSpread(_objectSpread({}, accu), Object.prototype.hasOwnProperty.call(currentLayerGroup, key) ? (0, _defineProperty2["default"])({}, key, currentLayerGroup[key]) : {});
|
186
192
|
}, defaultLayerGroup);
|
187
193
|
}
|
188
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbG9kYXNoMiIsIl9jb25zdGFudHMiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsImdldERlZmF1bHRMYXllckdyb3VwVmlzaWJpbGl0eSIsIl9yZWYiLCJfcmVmJGxheWVyR3JvdXBzIiwibGF5ZXJHcm91cHMiLCJyZWR1Y2UiLCJhY2N1IiwibGF5ZXIiLCJzbHVnIiwiZGVmYXVsdFZpc2liaWxpdHkiLCJyZXNvbHZlciIsIl9yZWYyIiwiaWQiLCJfcmVmMiR2aXNpYmxlTGF5ZXJHcm8iLCJ2aXNpYmxlTGF5ZXJHcm91cHMiLCJjb25jYXQiLCJkIiwic29ydCIsImpvaW4iLCJlZGl0VG9wTWFwU3R5bGUiLCJleHBvcnRzIiwibWVtb2l6ZSIsIl9yZWYzIiwibWFwU3R5bGUiLCJ2aXNpYmxlRmlsdGVycyIsImxnIiwibWFwIiwiZmlsdGVyZWRMYXllcnMiLCJzdHlsZSIsImxheWVycyIsInNvbWUiLCJtYXRjaCIsImVkaXRCb3R0b21NYXBTdHlsZSIsIl9yZWY0IiwiTk9fTUFQX0lEIiwiRU1QVFlfTUFQQk9YX1NUWUxFIiwiaW52aXNpYmxlRmlsdGVycyIsImV2ZXJ5IiwiZ2V0U3R5bGVEb3dubG9hZFVybCIsInN0eWxlVXJsIiwiYWNjZXNzVG9rZW4iLCJtYXBib3hBcGlVcmwiLCJzdGFydHNXaXRoIiwic3R5bGVJZCIsInJlcGxhY2UiLCJERUZBVUxUX01BUEJPWF9BUElfVVJMIiwiZ2V0U3R5bGVJbWFnZUljb24iLCJfcmVmNSIsIm1hcGJveEFwaUFjY2Vzc1Rva2VuIiwiX3JlZjUkbWFwYm94QXBpVXJsIiwiX3JlZjUkbWFwU3RhdGUiLCJtYXBTdGF0ZSIsImxvbmdpdHVkZSIsImxhdGl0dWRlIiwiem9vbSIsIl9yZWY1JG1hcFciLCJtYXBXIiwiX3JlZjUkbWFwSCIsIm1hcEgiLCJzY2FsZU1hcFN0eWxlQnlSZXNvbHV0aW9uIiwibWFwYm94U3R5bGUiLCJzY2FsZSIsImxhYmVsTGF5ZXJHcm91cCIsIkRFRkFVTFRfTEFZRVJfR1JPVVBTIiwiZmluZCIsImxhYmVsTGF5ZXJGaWx0ZXIiLCJ6b29tT2Zmc2V0IiwiTWF0aCIsImxvZzIiLCJjb3B5U3R5bGUiLCJjbG9uZERlZXAiLCJtYXh6b29tIiwibWF4IiwibWluem9vbSIsImxheW91dCIsIkFycmF5IiwiaXNBcnJheSIsInN0b3BzIiwic3RvcCIsIm1lcmdlTGF5ZXJHcm91cFZpc2liaWxpdHkiLCJkZWZhdWx0TGF5ZXJHcm91cCIsImN1cnJlbnRMYXllckdyb3VwIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hcC1zdHlsZS11dGlscy9tYXBib3gtZ2wtc3R5bGUtZWRpdG9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBtZW1vaXplIGZyb20gJ2xvZGFzaC5tZW1vaXplJztcbmltcG9ydCBjbG9uZERlZXAgZnJvbSAnbG9kYXNoLmNsb25lZGVlcCc7XG5pbXBvcnQge1xuICBERUZBVUxUX0xBWUVSX0dST1VQUyxcbiAgREVGQVVMVF9NQVBCT1hfQVBJX1VSTCxcbiAgTk9fTUFQX0lELFxuICBFTVBUWV9NQVBCT1hfU1RZTEVcbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtCYXNlTWFwU3R5bGUsIExheWVyR3JvdXAsIE1hcFN0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRMYXllckdyb3VwVmlzaWJpbGl0eSh7bGF5ZXJHcm91cHMgPSBbXX06IHtsYXllckdyb3VwczogTGF5ZXJHcm91cFtdfSkge1xuICByZXR1cm4gbGF5ZXJHcm91cHMucmVkdWNlKFxuICAgIChhY2N1LCBsYXllcikgPT4gKHtcbiAgICAgIC4uLmFjY3UsXG4gICAgICBbbGF5ZXIuc2x1Z106IGxheWVyLmRlZmF1bHRWaXNpYmlsaXR5XG4gICAgfSksXG4gICAge31cbiAgKTtcbn1cblxuY29uc3QgcmVzb2x2ZXIgPSAoe1xuICBpZCxcbiAgdmlzaWJsZUxheWVyR3JvdXBzID0ge31cbn06IHtcbiAgaWQ/OiBzdHJpbmc7XG4gIG1hcFN0eWxlOiBCYXNlTWFwU3R5bGU7XG4gIHZpc2libGVMYXllckdyb3Vwczoge1tpZDogc3RyaW5nXTogTGF5ZXJHcm91cCB8IGJvb2xlYW59IHwgZmFsc2U7XG59KSA9PlxuICBgJHtpZH06JHtPYmplY3Qua2V5cyh2aXNpYmxlTGF5ZXJHcm91cHMpXG4gICAgLmZpbHRlcihkID0+IHZpc2libGVMYXllckdyb3Vwc1tkXSlcbiAgICAuc29ydCgpXG4gICAgLmpvaW4oJy0nKX1gO1xuXG4vKipcbiAqIEVkaXQgcHJlc2V0IG1hcCBzdHlsZSB0byBrZWVwIG9ubHkgdmlzaWJsZSBsYXllcnNcbiAqXG4gKiBAcGFyYW0gbWFwU3R5bGUgLSBwcmVzZXQgbWFwIHN0eWxlXG4gKiBAcGFyYW0gdmlzaWJsZUxheWVyR3JvdXBzIC0gdmlzaWJsZSBsYXllcnMgb2YgdG9wIG1hcFxuICogQHJldHVybnMgdG9wIG1hcCBzdHlsZVxuICovXG5leHBvcnQgY29uc3QgZWRpdFRvcE1hcFN0eWxlID0gbWVtb2l6ZShcbiAgKHtcbiAgICBtYXBTdHlsZSxcbiAgICB2aXNpYmxlTGF5ZXJHcm91cHNcbiAgfToge1xuICAgIGlkPzogc3RyaW5nO1xuICAgIG1hcFN0eWxlOiBCYXNlTWFwU3R5bGU7XG4gICAgdmlzaWJsZUxheWVyR3JvdXBzOiB7W2lkOiBzdHJpbmddOiBMYXllckdyb3VwIHwgYm9vbGVhbn0gfCBmYWxzZTtcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHZpc2libGVGaWx0ZXJzID0gKG1hcFN0eWxlLmxheWVyR3JvdXBzIHx8IFtdKVxuICAgICAgLmZpbHRlcihsZyA9PiB2aXNpYmxlTGF5ZXJHcm91cHNbbGcuc2x1Z10pXG4gICAgICAubWFwKGxnID0+IGxnLmZpbHRlcik7XG5cbiAgICAvLyBpZiB0b3AgbWFwXG4gICAgLy8ga2VlcCBvbmx5IHZpc2libGUgbGF5ZXJzXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIGNvbnN0IGZpbHRlcmVkTGF5ZXJzID0gbWFwU3R5bGUuc3R5bGUubGF5ZXJzLmZpbHRlcihsYXllciA9PlxuICAgICAgdmlzaWJsZUZpbHRlcnMuc29tZShtYXRjaCA9PiBtYXRjaChsYXllcikpXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5tYXBTdHlsZS5zdHlsZSxcbiAgICAgIGxheWVyczogZmlsdGVyZWRMYXllcnNcbiAgICB9O1xuICB9LFxuICByZXNvbHZlclxuKTtcblxuLyoqXG4gKiBFZGl0IHByZXNldCBtYXAgc3R5bGUgdG8gZmlsdGVyIG91dCBpbnZpc2libGUgbGF5ZXJzXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG1hcFN0eWxlIC0gcHJlc2V0IG1hcCBzdHlsZVxuICogQHBhcmFtIHtPYmplY3R9IHZpc2libGVMYXllckdyb3VwcyAtIHZpc2libGUgbGF5ZXJzIG9mIGJvdHRvbSBtYXBcbiAqIEByZXR1cm5zIHtPYmplY3R9IGJvdHRvbSBtYXAgc3R5bGVcbiAqL1xuZXhwb3J0IGNvbnN0IGVkaXRCb3R0b21NYXBTdHlsZSA9IG1lbW9pemUoKHtpZCwgbWFwU3R5bGUsIHZpc2libGVMYXllckdyb3Vwc30pID0+IHtcbiAgaWYgKGlkID09PSBOT19NQVBfSUQpIHtcbiAgICByZXR1cm4gRU1QVFlfTUFQQk9YX1NUWUxFO1xuICB9XG5cbiAgY29uc3QgaW52aXNpYmxlRmlsdGVycyA9IChtYXBTdHlsZS5sYXllckdyb3VwcyB8fCBbXSlcbiAgICAuZmlsdGVyKGxnID0+ICF2aXNpYmxlTGF5ZXJHcm91cHNbbGcuc2x1Z10pXG4gICAgLm1hcChsZyA9PiBsZy5maWx0ZXIpO1xuXG4gIC8vIGlmIGJvdHRvbSBtYXBcbiAgLy8gZmlsdGVyIG91dCBpbnZpc2libGUgbGF5ZXJzXG4gIGNvbnN0IGZpbHRlcmVkTGF5ZXJzID0gbWFwU3R5bGUuc3R5bGUubGF5ZXJzLmZpbHRlcihsYXllciA9PlxuICAgIGludmlzaWJsZUZpbHRlcnMuZXZlcnkobWF0Y2ggPT4gIW1hdGNoKGxheWVyKSlcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIC4uLm1hcFN0eWxlLnN0eWxlLFxuICAgIGxheWVyczogZmlsdGVyZWRMYXllcnNcbiAgfTtcbn0sIHJlc29sdmVyKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0eWxlRG93bmxvYWRVcmwoc3R5bGVVcmwsIGFjY2Vzc1Rva2VuLCBtYXBib3hBcGlVcmwpIHtcbiAgaWYgKHN0eWxlVXJsLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgIHJldHVybiBzdHlsZVVybDtcbiAgfVxuXG4gIC8vIG1hcGJveDovL3N0eWxlcy9qY2tyL2NqaGNsMGx4djEzZGkycnBmb3l0ZGJkeWpcbiAgaWYgKHN0eWxlVXJsLnN0YXJ0c1dpdGgoJ21hcGJveDovL3N0eWxlcycpKSB7XG4gICAgY29uc3Qgc3R5bGVJZCA9IHN0eWxlVXJsLnJlcGxhY2UoJ21hcGJveDovL3N0eWxlcy8nLCAnJyk7XG5cbiAgICAvLyBodHRwczovL2FwaS5tYXBib3guY29tL3N0eWxlcy92MS9oZXNoYW4wMTMxL2NqZzFiZnVtbzFjd20ycmxyanhraW5mZ3c/cGx1Z2luTmFtZT1LZXBsZXJnbCZhY2Nlc3NfdG9rZW49PHRva2VuPlxuICAgIHJldHVybiBgJHtcbiAgICAgIG1hcGJveEFwaVVybCB8fCBERUZBVUxUX01BUEJPWF9BUElfVVJMXG4gICAgfS9zdHlsZXMvdjEvJHtzdHlsZUlkfT9wbHVnaW5OYW1lPUtlcGxlcmdsJmFjY2Vzc190b2tlbj0ke2FjY2Vzc1Rva2VufWA7XG4gIH1cblxuICAvLyBzdHlsZSB1cmwgbm90IHJlY29nbml6ZWRcbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgc3RhdGljIG1hcCBpbWFnZSBmcm9tIHN0eWxlIFVybCB0byBiZSB1c2VkIGFzIGljb25cbiAqIEBwYXJhbSBwYXJhbVxuICogQHBhcmFtIHBhcmFtLnN0eWxlVXJsXG4gKiBAcGFyYW0gcGFyYW0ubWFwYm94QXBpQWNjZXNzVG9rZW5cbiAqIEBwYXJhbSBwYXJhbS5tYXBib3hBcGlVcmxcbiAqIEBwYXJhbSBwYXJhbS5tYXBTdGF0ZVxuICogQHBhcmFtIHBhcmFtLm1hcFdcbiAqIEBwYXJhbSBwYXJhbS5tYXBIXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdHlsZUltYWdlSWNvbih7XG4gIHN0eWxlVXJsLFxuICBtYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgbWFwYm94QXBpVXJsID0gREVGQVVMVF9NQVBCT1hfQVBJX1VSTCxcbiAgbWFwU3RhdGUgPSB7XG4gICAgbG9uZ2l0dWRlOiAtMTIyLjMzOTEsXG4gICAgbGF0aXR1ZGU6IDM3Ljc5MjIsXG4gICAgem9vbTogOVxuICB9LFxuICBtYXBXID0gNDAwLFxuICBtYXBIID0gMzAwXG59OiB7XG4gIHN0eWxlVXJsOiBzdHJpbmc7XG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIG1hcGJveEFwaVVybD86IHN0cmluZztcbiAgbWFwU3RhdGU/OiBQYXJ0aWFsPE1hcFN0YXRlPjtcbiAgbWFwVz86IG51bWJlcjtcbiAgbWFwSD86IG51bWJlcjtcbn0pIHtcbiAgY29uc3Qgc3R5bGVJZCA9IHN0eWxlVXJsLnJlcGxhY2UoJ21hcGJveDovL3N0eWxlcy8nLCAnJyk7XG5cbiAgcmV0dXJuIChcbiAgICBgJHttYXBib3hBcGlVcmx9L3N0eWxlcy92MS8ke3N0eWxlSWR9L3N0YXRpYy9gICtcbiAgICBgJHttYXBTdGF0ZS5sb25naXR1ZGV9LCR7bWFwU3RhdGUubGF0aXR1ZGV9LCR7bWFwU3RhdGUuem9vbX0sMCwwL2AgK1xuICAgIGAke21hcFd9eCR7bWFwSH1gICtcbiAgICBgP2FjY2Vzc190b2tlbj0ke21hcGJveEFwaUFjY2Vzc1Rva2VufSZsb2dvPWZhbHNlJmF0dHJpYnV0aW9uPWZhbHNlYFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2NhbGVNYXBTdHlsZUJ5UmVzb2x1dGlvbihtYXBib3hTdHlsZSwgc2NhbGUpIHtcbiAgaWYgKHNjYWxlICE9PSAxICYmIG1hcGJveFN0eWxlKSB7XG4gICAgY29uc3QgbGFiZWxMYXllckdyb3VwID0gREVGQVVMVF9MQVlFUl9HUk9VUFMuZmluZChsZyA9PiBsZy5zbHVnID09PSAnbGFiZWwnKTtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3Qge2ZpbHRlcjogbGFiZWxMYXllckZpbHRlcn0gPSBsYWJlbExheWVyR3JvdXA7XG4gICAgY29uc3Qgem9vbU9mZnNldCA9IE1hdGgubG9nMihzY2FsZSk7XG5cbiAgICBjb25zdCBjb3B5U3R5bGUgPSBjbG9uZERlZXAobWFwYm94U3R5bGUpO1xuICAgIChjb3B5U3R5bGUubGF5ZXJzIHx8IFtdKS5mb3JFYWNoKGQgPT4ge1xuICAgICAgLy8gZWRpdCBtaW56b29tIGFuZCBtYXh6b29tXG4gICAgICBpZiAoZC5tYXh6b29tKSB7XG4gICAgICAgIGQubWF4em9vbSA9IE1hdGgubWF4KGQubWF4em9vbSArIHpvb21PZmZzZXQsIDEpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZC5taW56b29tKSB7XG4gICAgICAgIGQubWluem9vbSA9IE1hdGgubWF4KGQubWluem9vbSArIHpvb21PZmZzZXQsIDEpO1xuICAgICAgfVxuXG4gICAgICAvLyBlZGl0IHRleHQgc2l6ZVxuICAgICAgaWYgKGxhYmVsTGF5ZXJGaWx0ZXIoZCkpIHtcbiAgICAgICAgaWYgKGQubGF5b3V0ICYmIGQubGF5b3V0Wyd0ZXh0LXNpemUnXSAmJiBBcnJheS5pc0FycmF5KGQubGF5b3V0Wyd0ZXh0LXNpemUnXS5zdG9wcykpIHtcbiAgICAgICAgICBkLmxheW91dFsndGV4dC1zaXplJ10uc3RvcHMuZm9yRWFjaChzdG9wID0+IHtcbiAgICAgICAgICAgIC8vIHpvb21cbiAgICAgICAgICAgIHN0b3BbMF0gPSBNYXRoLm1heChzdG9wWzBdICsgem9vbU9mZnNldCwgMSk7XG4gICAgICAgICAgICAvLyBzaXplXG4gICAgICAgICAgICBzdG9wWzFdICo9IHNjYWxlO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY29weVN0eWxlO1xuICB9XG5cbiAgcmV0dXJuIG1hcGJveFN0eWxlO1xufVxuXG4vKipcbiAqIFdoZW4gc3dpdGNoIHRvIGEgbmV3IHN0eWxlLCB0cnkgdG8ga2VlcCBjdXJyZW50IGxheWVyIGdyb3VwIHZpc2liaWxpdHlcbiAqIGJ5IG1lcmdpbmcgZGVmYXVsdCBhbmQgY3VycmVudFxuICogQHBhcmFtIHtPYmplY3R9IGRlZmF1bHRMYXllckdyb3VwXG4gKiBAcGFyYW0ge09iamVjdH0gY3VycmVudExheWVyR3JvdXBcbiAqIEByZXR1cm4ge09iamVjdH0gbWVyZ2VkTGF5ZXJHcm91cHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlTGF5ZXJHcm91cFZpc2liaWxpdHkoZGVmYXVsdExheWVyR3JvdXAsIGN1cnJlbnRMYXllckdyb3VwKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhkZWZhdWx0TGF5ZXJHcm91cCkucmVkdWNlKFxuICAgIChhY2N1LCBrZXkpID0+ICh7XG4gICAgICAuLi5hY2N1LFxuICAgICAgLi4uKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjdXJyZW50TGF5ZXJHcm91cCwga2V5KVxuICAgICAgICA/IHtba2V5XTogY3VycmVudExheWVyR3JvdXBba2V5XX1cbiAgICAgICAgOiB7fSlcbiAgICB9KSxcbiAgICBkZWZhdWx0TGF5ZXJHcm91cFxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBRixPQUFBO0FBSzhCLFNBQUFHLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBWixDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxDQUFBLFdBQUFXLFNBQUEsQ0FBQVosQ0FBQSxJQUFBWSxTQUFBLENBQUFaLENBQUEsUUFBQUEsQ0FBQSxPQUFBRixPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FBQSxPQUFBYSxPQUFBLFdBQUFkLENBQUEsUUFBQWUsZ0JBQUEsYUFBQWhCLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLENBQUFELENBQUEsU0FBQUUsTUFBQSxDQUFBYyx5QkFBQSxHQUFBZCxNQUFBLENBQUFlLGdCQUFBLENBQUFsQixDQUFBLEVBQUFHLE1BQUEsQ0FBQWMseUJBQUEsQ0FBQWYsQ0FB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
|
194
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbG9kYXNoMiIsIl9jb25zdGFudHMiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsImdldERlZmF1bHRMYXllckdyb3VwVmlzaWJpbGl0eSIsIl9yZWYiLCJfcmVmJGxheWVyR3JvdXBzIiwibGF5ZXJHcm91cHMiLCJyZWR1Y2UiLCJhY2N1IiwibGF5ZXIiLCJzbHVnIiwiZGVmYXVsdFZpc2liaWxpdHkiLCJyZXNvbHZlciIsIl9yZWYyIiwiaWQiLCJfcmVmMiR2aXNpYmxlTGF5ZXJHcm8iLCJ2aXNpYmxlTGF5ZXJHcm91cHMiLCJjb25jYXQiLCJkIiwic29ydCIsImpvaW4iLCJlZGl0VG9wTWFwU3R5bGUiLCJleHBvcnRzIiwibWVtb2l6ZSIsIl9yZWYzIiwibWFwU3R5bGUiLCJ2aXNpYmxlRmlsdGVycyIsImxnIiwibWFwIiwiZmlsdGVyZWRMYXllcnMiLCJzdHlsZSIsImxheWVycyIsInNvbWUiLCJtYXRjaCIsImVkaXRCb3R0b21NYXBTdHlsZSIsIl9yZWY0IiwiTk9fTUFQX0lEIiwiRU1QVFlfTUFQQk9YX1NUWUxFIiwiaW52aXNpYmxlRmlsdGVycyIsImV2ZXJ5IiwiZ2V0U3R5bGVEb3dubG9hZFVybCIsInN0eWxlVXJsIiwiYWNjZXNzVG9rZW4iLCJtYXBib3hBcGlVcmwiLCJzdGFydHNXaXRoIiwic3R5bGVJZCIsInJlcGxhY2UiLCJERUZBVUxUX01BUEJPWF9BUElfVVJMIiwiZ2V0U3R5bGVJbWFnZUljb24iLCJfcmVmNSIsIm1hcGJveEFwaUFjY2Vzc1Rva2VuIiwiX3JlZjUkbWFwYm94QXBpVXJsIiwiX3JlZjUkbWFwU3RhdGUiLCJtYXBTdGF0ZSIsImxvbmdpdHVkZSIsImxhdGl0dWRlIiwiem9vbSIsIl9yZWY1JG1hcFciLCJtYXBXIiwiX3JlZjUkbWFwSCIsIm1hcEgiLCJzY2FsZU1hcFN0eWxlQnlSZXNvbHV0aW9uIiwibWFwYm94U3R5bGUiLCJzY2FsZSIsImxhYmVsTGF5ZXJHcm91cCIsIkRFRkFVTFRfTEFZRVJfR1JPVVBTIiwiZmluZCIsImxhYmVsTGF5ZXJGaWx0ZXIiLCJ6b29tT2Zmc2V0IiwiTWF0aCIsImxvZzIiLCJjb3B5U3R5bGUiLCJjbG9uZERlZXAiLCJtYXh6b29tIiwibWF4IiwibWluem9vbSIsImxheW91dCIsIkFycmF5IiwiaXNBcnJheSIsInN0b3BzIiwic3RvcCIsIm1lcmdlTGF5ZXJHcm91cFZpc2liaWxpdHkiLCJkZWZhdWx0TGF5ZXJHcm91cCIsImN1cnJlbnRMYXllckdyb3VwIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hcC1zdHlsZS11dGlscy9tYXBib3gtZ2wtc3R5bGUtZWRpdG9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBtZW1vaXplIGZyb20gJ2xvZGFzaC5tZW1vaXplJztcbmltcG9ydCBjbG9uZERlZXAgZnJvbSAnbG9kYXNoLmNsb25lZGVlcCc7XG5pbXBvcnQge1xuICBERUZBVUxUX0xBWUVSX0dST1VQUyxcbiAgREVGQVVMVF9NQVBCT1hfQVBJX1VSTCxcbiAgTk9fTUFQX0lELFxuICBFTVBUWV9NQVBCT1hfU1RZTEVcbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtCYXNlTWFwU3R5bGUsIExheWVyR3JvdXAsIE1hcFN0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRMYXllckdyb3VwVmlzaWJpbGl0eSh7bGF5ZXJHcm91cHMgPSBbXX06IHtsYXllckdyb3VwczogTGF5ZXJHcm91cFtdfSkge1xuICByZXR1cm4gbGF5ZXJHcm91cHMucmVkdWNlKFxuICAgIChhY2N1LCBsYXllcikgPT4gKHtcbiAgICAgIC4uLmFjY3UsXG4gICAgICBbbGF5ZXIuc2x1Z106IGxheWVyLmRlZmF1bHRWaXNpYmlsaXR5XG4gICAgfSksXG4gICAge31cbiAgKTtcbn1cblxuY29uc3QgcmVzb2x2ZXIgPSAoe1xuICBpZCxcbiAgdmlzaWJsZUxheWVyR3JvdXBzID0ge31cbn06IHtcbiAgaWQ/OiBzdHJpbmc7XG4gIG1hcFN0eWxlOiBCYXNlTWFwU3R5bGU7XG4gIHZpc2libGVMYXllckdyb3Vwczoge1tpZDogc3RyaW5nXTogTGF5ZXJHcm91cCB8IGJvb2xlYW59IHwgZmFsc2U7XG59KSA9PlxuICBgJHtpZH06JHtPYmplY3Qua2V5cyh2aXNpYmxlTGF5ZXJHcm91cHMpXG4gICAgLmZpbHRlcihkID0+IHZpc2libGVMYXllckdyb3Vwc1tkXSlcbiAgICAuc29ydCgpXG4gICAgLmpvaW4oJy0nKX1gO1xuXG4vKipcbiAqIEVkaXQgcHJlc2V0IG1hcCBzdHlsZSB0byBrZWVwIG9ubHkgdmlzaWJsZSBsYXllcnNcbiAqXG4gKiBAcGFyYW0gbWFwU3R5bGUgLSBwcmVzZXQgbWFwIHN0eWxlXG4gKiBAcGFyYW0gdmlzaWJsZUxheWVyR3JvdXBzIC0gdmlzaWJsZSBsYXllcnMgb2YgdG9wIG1hcFxuICogQHJldHVybnMgdG9wIG1hcCBzdHlsZVxuICovXG5leHBvcnQgY29uc3QgZWRpdFRvcE1hcFN0eWxlID0gbWVtb2l6ZShcbiAgKHtcbiAgICBtYXBTdHlsZSxcbiAgICB2aXNpYmxlTGF5ZXJHcm91cHNcbiAgfToge1xuICAgIGlkPzogc3RyaW5nO1xuICAgIG1hcFN0eWxlOiBCYXNlTWFwU3R5bGU7XG4gICAgdmlzaWJsZUxheWVyR3JvdXBzOiB7W2lkOiBzdHJpbmddOiBMYXllckdyb3VwIHwgYm9vbGVhbn0gfCBmYWxzZTtcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHZpc2libGVGaWx0ZXJzID0gKG1hcFN0eWxlLmxheWVyR3JvdXBzIHx8IFtdKVxuICAgICAgLmZpbHRlcihsZyA9PiB2aXNpYmxlTGF5ZXJHcm91cHNbbGcuc2x1Z10pXG4gICAgICAubWFwKGxnID0+IGxnLmZpbHRlcik7XG5cbiAgICAvLyBpZiB0b3AgbWFwXG4gICAgLy8ga2VlcCBvbmx5IHZpc2libGUgbGF5ZXJzXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIGNvbnN0IGZpbHRlcmVkTGF5ZXJzID0gbWFwU3R5bGUuc3R5bGUubGF5ZXJzLmZpbHRlcihsYXllciA9PlxuICAgICAgdmlzaWJsZUZpbHRlcnMuc29tZShtYXRjaCA9PiBtYXRjaChsYXllcikpXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5tYXBTdHlsZS5zdHlsZSxcbiAgICAgIGxheWVyczogZmlsdGVyZWRMYXllcnNcbiAgICB9O1xuICB9LFxuICByZXNvbHZlclxuKTtcblxuLyoqXG4gKiBFZGl0IHByZXNldCBtYXAgc3R5bGUgdG8gZmlsdGVyIG91dCBpbnZpc2libGUgbGF5ZXJzXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG1hcFN0eWxlIC0gcHJlc2V0IG1hcCBzdHlsZVxuICogQHBhcmFtIHtPYmplY3R9IHZpc2libGVMYXllckdyb3VwcyAtIHZpc2libGUgbGF5ZXJzIG9mIGJvdHRvbSBtYXBcbiAqIEByZXR1cm5zIHtPYmplY3R9IGJvdHRvbSBtYXAgc3R5bGVcbiAqL1xuZXhwb3J0IGNvbnN0IGVkaXRCb3R0b21NYXBTdHlsZSA9IG1lbW9pemUoKHtpZCwgbWFwU3R5bGUsIHZpc2libGVMYXllckdyb3Vwc30pID0+IHtcbiAgaWYgKGlkID09PSBOT19NQVBfSUQpIHtcbiAgICByZXR1cm4gRU1QVFlfTUFQQk9YX1NUWUxFO1xuICB9XG5cbiAgY29uc3QgaW52aXNpYmxlRmlsdGVycyA9IChtYXBTdHlsZS5sYXllckdyb3VwcyB8fCBbXSlcbiAgICAuZmlsdGVyKGxnID0+ICF2aXNpYmxlTGF5ZXJHcm91cHNbbGcuc2x1Z10pXG4gICAgLm1hcChsZyA9PiBsZy5maWx0ZXIpO1xuXG4gIC8vIGlmIGJvdHRvbSBtYXBcbiAgLy8gZmlsdGVyIG91dCBpbnZpc2libGUgbGF5ZXJzXG4gIGNvbnN0IGZpbHRlcmVkTGF5ZXJzID0gbWFwU3R5bGUuc3R5bGUubGF5ZXJzLmZpbHRlcihsYXllciA9PlxuICAgIGludmlzaWJsZUZpbHRlcnMuZXZlcnkobWF0Y2ggPT4gIW1hdGNoKGxheWVyKSlcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIC4uLm1hcFN0eWxlLnN0eWxlLFxuICAgIGxheWVyczogZmlsdGVyZWRMYXllcnNcbiAgfTtcbn0sIHJlc29sdmVyKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0eWxlRG93bmxvYWRVcmwoc3R5bGVVcmwsIGFjY2Vzc1Rva2VuLCBtYXBib3hBcGlVcmwpIHtcbiAgaWYgKHN0eWxlVXJsLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgIHJldHVybiBzdHlsZVVybDtcbiAgfVxuXG4gIC8vIG1hcGJveDovL3N0eWxlcy9qY2tyL2NqaGNsMGx4djEzZGkycnBmb3l0ZGJkeWpcbiAgaWYgKHN0eWxlVXJsLnN0YXJ0c1dpdGgoJ21hcGJveDovL3N0eWxlcycpKSB7XG4gICAgY29uc3Qgc3R5bGVJZCA9IHN0eWxlVXJsLnJlcGxhY2UoJ21hcGJveDovL3N0eWxlcy8nLCAnJyk7XG5cbiAgICAvLyBodHRwczovL2FwaS5tYXBib3guY29tL3N0eWxlcy92MS9oZXNoYW4wMTMxL2NqZzFiZnVtbzFjd20ycmxyanhraW5mZ3c/cGx1Z2luTmFtZT1LZXBsZXJnbCZhY2Nlc3NfdG9rZW49PHRva2VuPlxuICAgIHJldHVybiBgJHtcbiAgICAgIG1hcGJveEFwaVVybCB8fCBERUZBVUxUX01BUEJPWF9BUElfVVJMXG4gICAgfS9zdHlsZXMvdjEvJHtzdHlsZUlkfT9wbHVnaW5OYW1lPUtlcGxlcmdsJmFjY2Vzc190b2tlbj0ke2FjY2Vzc1Rva2VufWA7XG4gIH1cblxuICAvLyBzdHlsZSB1cmwgbm90IHJlY29nbml6ZWRcbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgc3RhdGljIG1hcCBpbWFnZSBmcm9tIHN0eWxlIFVybCB0byBiZSB1c2VkIGFzIGljb25cbiAqIEBwYXJhbSBwYXJhbVxuICogQHBhcmFtIHBhcmFtLnN0eWxlVXJsXG4gKiBAcGFyYW0gcGFyYW0ubWFwYm94QXBpQWNjZXNzVG9rZW5cbiAqIEBwYXJhbSBwYXJhbS5tYXBib3hBcGlVcmxcbiAqIEBwYXJhbSBwYXJhbS5tYXBTdGF0ZVxuICogQHBhcmFtIHBhcmFtLm1hcFdcbiAqIEBwYXJhbSBwYXJhbS5tYXBIXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdHlsZUltYWdlSWNvbih7XG4gIHN0eWxlVXJsLFxuICBtYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgbWFwYm94QXBpVXJsID0gREVGQVVMVF9NQVBCT1hfQVBJX1VSTCxcbiAgbWFwU3RhdGUgPSB7XG4gICAgbG9uZ2l0dWRlOiAtMTIyLjMzOTEsXG4gICAgbGF0aXR1ZGU6IDM3Ljc5MjIsXG4gICAgem9vbTogOVxuICB9LFxuICBtYXBXID0gNDAwLFxuICBtYXBIID0gMzAwXG59OiB7XG4gIHN0eWxlVXJsOiBzdHJpbmc7XG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIG1hcGJveEFwaVVybD86IHN0cmluZztcbiAgbWFwU3RhdGU/OiBQYXJ0aWFsPE1hcFN0YXRlPjtcbiAgbWFwVz86IG51bWJlcjtcbiAgbWFwSD86IG51bWJlcjtcbn0pIHtcbiAgY29uc3Qgc3R5bGVJZCA9IHN0eWxlVXJsLnJlcGxhY2UoJ21hcGJveDovL3N0eWxlcy8nLCAnJyk7XG5cbiAgcmV0dXJuIChcbiAgICBgJHttYXBib3hBcGlVcmx9L3N0eWxlcy92MS8ke3N0eWxlSWR9L3N0YXRpYy9gICtcbiAgICBgJHttYXBTdGF0ZS5sb25naXR1ZGV9LCR7bWFwU3RhdGUubGF0aXR1ZGV9LCR7bWFwU3RhdGUuem9vbX0sMCwwL2AgK1xuICAgIGAke21hcFd9eCR7bWFwSH1gICtcbiAgICBgP2FjY2Vzc190b2tlbj0ke21hcGJveEFwaUFjY2Vzc1Rva2VufSZsb2dvPWZhbHNlJmF0dHJpYnV0aW9uPWZhbHNlYFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2NhbGVNYXBTdHlsZUJ5UmVzb2x1dGlvbihtYXBib3hTdHlsZSwgc2NhbGUpIHtcbiAgaWYgKHNjYWxlICE9PSAxICYmIG1hcGJveFN0eWxlKSB7XG4gICAgY29uc3QgbGFiZWxMYXllckdyb3VwID0gREVGQVVMVF9MQVlFUl9HUk9VUFMuZmluZChsZyA9PiBsZy5zbHVnID09PSAnbGFiZWwnKTtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3Qge2ZpbHRlcjogbGFiZWxMYXllckZpbHRlcn0gPSBsYWJlbExheWVyR3JvdXA7XG4gICAgY29uc3Qgem9vbU9mZnNldCA9IE1hdGgubG9nMihzY2FsZSk7XG5cbiAgICBjb25zdCBjb3B5U3R5bGUgPSBjbG9uZERlZXAobWFwYm94U3R5bGUpO1xuICAgIChjb3B5U3R5bGUubGF5ZXJzIHx8IFtdKS5mb3JFYWNoKGQgPT4ge1xuICAgICAgLy8gZWRpdCBtaW56b29tIGFuZCBtYXh6b29tXG4gICAgICBpZiAoZC5tYXh6b29tKSB7XG4gICAgICAgIGQubWF4em9vbSA9IE1hdGgubWF4KGQubWF4em9vbSArIHpvb21PZmZzZXQsIDEpO1xuXG4gICAgICAgIC8vIFRoZSBtYXhpbXVtIHpvb20gaXMgMjRcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3Zpc2dsL3JlYWN0LW1hcC1nbC9ibG9iL21hc3Rlci9kb2NzL2FwaS1yZWZlcmVuY2UvbWFwLm1kI21heHpvb20tbnVtYmVyLW1heHpvb21cbiAgICAgICAgaWYgKGQubWF4em9vbSA+IDI0KSB7XG4gICAgICAgICAgZC5tYXh6b29tID0gMjQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGQubWluem9vbSkge1xuICAgICAgICBkLm1pbnpvb20gPSBNYXRoLm1heChkLm1pbnpvb20gKyB6b29tT2Zmc2V0LCAxKTtcbiAgICAgIH1cblxuICAgICAgLy8gZWRpdCB0ZXh0IHNpemVcbiAgICAgIGlmIChsYWJlbExheWVyRmlsdGVyKGQpKSB7XG4gICAgICAgIGlmIChkLmxheW91dCAmJiBkLmxheW91dFsndGV4dC1zaXplJ10gJiYgQXJyYXkuaXNBcnJheShkLmxheW91dFsndGV4dC1zaXplJ10uc3RvcHMpKSB7XG4gICAgICAgICAgZC5sYXlvdXRbJ3RleHQtc2l6ZSddLnN0b3BzLmZvckVhY2goc3RvcCA9PiB7XG4gICAgICAgICAgICAvLyB6b29tXG4gICAgICAgICAgICBzdG9wWzBdID0gTWF0aC5tYXgoc3RvcFswXSArIHpvb21PZmZzZXQsIDEpO1xuICAgICAgICAgICAgLy8gc2l6ZVxuICAgICAgICAgICAgc3RvcFsxXSAqPSBzY2FsZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNvcHlTdHlsZTtcbiAgfVxuXG4gIHJldHVybiBtYXBib3hTdHlsZTtcbn1cblxuLyoqXG4gKiBXaGVuIHN3aXRjaCB0byBhIG5ldyBzdHlsZSwgdHJ5IHRvIGtlZXAgY3VycmVudCBsYXllciBncm91cCB2aXNpYmlsaXR5XG4gKiBieSBtZXJnaW5nIGRlZmF1bHQgYW5kIGN1cnJlbnRcbiAqIEBwYXJhbSB7T2JqZWN0fSBkZWZhdWx0TGF5ZXJHcm91cFxuICogQHBhcmFtIHtPYmplY3R9IGN1cnJlbnRMYXllckdyb3VwXG4gKiBAcmV0dXJuIHtPYmplY3R9IG1lcmdlZExheWVyR3JvdXBzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUxheWVyR3JvdXBWaXNpYmlsaXR5KGRlZmF1bHRMYXllckdyb3VwLCBjdXJyZW50TGF5ZXJHcm91cCkge1xuICByZXR1cm4gT2JqZWN0LmtleXMoZGVmYXVsdExheWVyR3JvdXApLnJlZHVjZShcbiAgICAoYWNjdSwga2V5KSA9PiAoe1xuICAgICAgLi4uYWNjdSxcbiAgICAgIC4uLihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY3VycmVudExheWVyR3JvdXAsIGtleSlcbiAgICAgICAgPyB7W2tleV06IGN1cnJlbnRMYXllckdyb3VwW2tleV19XG4gICAgICAgIDoge30pXG4gICAgfSksXG4gICAgZGVmYXVsdExheWVyR3JvdXBcbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLFVBQUEsR0FBQUYsT0FBQTtBQUs4QixTQUFBRyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUksQ0FBQSxZQUFBSixDQUFBO0FBQUEsU0FBQVUsY0FBQVosQ0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQVksU0FBQSxDQUFBQyxNQUFBLEVBQUFiLENBQUEsVUFBQUMsQ0FBQSxXQUFBVyxTQUFBLENBQUFaLENBQUEsSUFBQVksU0FBQSxDQUFBWixD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UUFDaEI7TUFDRjtNQUVBLElBQUl2RCxDQUFDLENBQUN5RCxPQUFPLEVBQUU7UUFDYnpELENBQUMsQ0FBQ3lELE9BQU8sR0FBR04sSUFBSSxDQUFDSyxHQUFHLENBQUN4RCxDQUFDLENBQUN5RCxPQUFPLEdBQUdQLFVBQVUsRUFBRSxDQUFDLENBQUM7TUFDakQ7O01BRUE7TUFDQSxJQUFJRCxnQkFBZ0IsQ0FBQ2pELENBQUMsQ0FBQyxFQUFFO1FBQ3ZCLElBQUlBLENBQUMsQ0FBQzBELE1BQU0sSUFBSTFELENBQUMsQ0FBQzBELE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSUMsS0FBSyxDQUFDQyxPQUFPLENBQUM1RCxDQUFDLENBQUMwRCxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUNHLEtBQUssQ0FBQyxFQUFFO1VBQ25GN0QsQ0FBQyxDQUFDMEQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDRyxLQUFLLENBQUNqRixPQUFPLENBQUMsVUFBQWtGLElBQUksRUFBSTtZQUMxQztZQUNBQSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUdYLElBQUksQ0FBQ0ssR0FBRyxDQUFDTSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUdaLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDM0M7WUFDQVksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJakIsS0FBSztVQUNsQixDQUFDLENBQUM7UUFDSjtNQUNGO0lBQ0YsQ0FBQyxDQUFDO0lBRUYsT0FBT1EsU0FBUztFQUNsQjtFQUVBLE9BQU9ULFdBQVc7QUFDcEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTbUIseUJBQXlCQSxDQUFDQyxpQkFBaUIsRUFBRUMsaUJBQWlCLEVBQUU7RUFDOUUsT0FBT2pHLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDK0YsaUJBQWlCLENBQUMsQ0FBQzNFLE1BQU0sQ0FDMUMsVUFBQ0MsSUFBSSxFQUFFNEUsR0FBRztJQUFBLE9BQUF6RixhQUFBLENBQUFBLGFBQUEsS0FDTGEsSUFBSSxHQUNIdEIsTUFBTSxDQUFDbUcsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ0osaUJBQWlCLEVBQUVDLEdBQUcsQ0FBQyxPQUFBckYsZ0JBQUEsaUJBQzFEcUYsR0FBRyxFQUFHRCxpQkFBaUIsQ0FBQ0MsR0FBRyxDQUFDLElBQzlCLENBQUMsQ0FBQztFQUFBLENBQ04sRUFDRkYsaUJBQ0YsQ0FBQztBQUNIIiwiaWdub3JlTGlzdCI6W119
|
@@ -12,4 +12,5 @@ export declare function unobserveDimensions(target: Element): void;
|
|
12
12
|
* @param throttleDelay
|
13
13
|
* @returns
|
14
14
|
*/
|
15
|
-
export
|
15
|
+
export declare function useDimensions<T extends Element>(nodeRef?: RefObject<T>, throttleDelay?: number): [RefObject<T>, Dimensions | null];
|
16
|
+
export default useDimensions;
|
@@ -4,9 +4,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
5
5
|
value: true
|
6
6
|
});
|
7
|
-
exports["default"] =
|
7
|
+
exports["default"] = void 0;
|
8
8
|
exports.observeDimensions = observeDimensions;
|
9
9
|
exports.unobserveDimensions = unobserveDimensions;
|
10
|
+
exports.useDimensions = useDimensions;
|
10
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
11
12
|
var _lodash = _interopRequireDefault(require("lodash.throttle"));
|
12
13
|
var _react = require("react");
|
@@ -98,8 +99,12 @@ function getSize(node, entry) {
|
|
98
99
|
* @returns
|
99
100
|
*/
|
100
101
|
function useDimensions(nodeRef) {
|
102
|
+
var _ref2;
|
101
103
|
var throttleDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_THROTTLE_DELAY;
|
102
104
|
var ref = (0, _react.useRef)(null);
|
105
|
+
if (nodeRef) {
|
106
|
+
ref = nodeRef;
|
107
|
+
}
|
103
108
|
var _useState = (0, _react.useState)(null),
|
104
109
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
105
110
|
size = _useState2[0],
|
@@ -107,7 +112,7 @@ function useDimensions(nodeRef) {
|
|
107
112
|
(0, _react.useEffect)(function () {
|
108
113
|
var _ref = ref || {},
|
109
114
|
current = _ref.current;
|
110
|
-
if (!current
|
115
|
+
if (!current) {
|
111
116
|
return;
|
112
117
|
}
|
113
118
|
var didUnobserve = false;
|
@@ -124,7 +129,8 @@ function useDimensions(nodeRef) {
|
|
124
129
|
unobserveDimensions(current);
|
125
130
|
};
|
126
131
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
127
|
-
}, [throttleDelay, ref === null ||
|
132
|
+
}, [throttleDelay, (_ref2 = ref) === null || _ref2 === void 0 ? void 0 : _ref2.current]);
|
128
133
|
return [ref, size];
|
129
134
|
}
|
130
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVhY3QiLCJfcmVzaXplT2JzZXJ2ZXJQb2x5ZmlsbCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiciIsImUiLCJ0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJsZW5ndGgiLCJfbiIsIkYiLCJzIiwibiIsImRvbmUiLCJ2YWx1ZSIsImYiLCJUeXBlRXJyb3IiLCJvIiwiYSIsInUiLCJjYWxsIiwibmV4dCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwiREVGQVVMVF9USFJPVFRMRV9ERUxBWSIsIl9vYnNlcnZlclJlZ2lzdHJ5IiwiZ2V0T2JzZXJ2ZXJSZWdpc3RyeSIsInVuZGVmaW5lZCIsImNhbGxiYWNrcyIsIk1hcCIsInJlc2l6ZU9ic2VydmVyIiwiUmVzaXplT2JzZXJ2ZXIiLCJlbnRyaWVzIiwib2JzZXJ2ZXIiLCJfaXRlcmF0b3IiLCJfc3RlcCIsIl9jYWxsYmFja3MkZ2V0IiwiZW50cnkiLCJnZXQiLCJ0YXJnZXQiLCJlcnIiLCJzdWJzY3JpYmUiLCJjYWxsYmFjayIsIkVsZW1lbnQiLCJvYnNlcnZlIiwic2V0IiwidW5zdWJzY3JpYmUiLCJ1bm9ic2VydmUiLCJvYnNlcnZlRGltZW5zaW9ucyIsImhhbmRsZVJlc2l6ZSIsInRocm90dGxlRGVsYXkiLCJhcmd1bWVudHMiLCJyZWdpc3RyeSIsImhhbmRsZXIiLCJ0aHJvdHRsZSIsImdldFNpemUiLCJ1bm9ic2VydmVEaW1lbnNpb25zIiwibm9kZSIsImNvbnRlbnRSZWN0IiwiX2VudHJ5JGNvbnRlbnRSZWN0Iiwid2lkdGgiLCJoZWlnaHQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJfbm9kZSRnZXRCb3VuZGluZ0NsaWUiLCJ1c2VEaW1lbnNpb25zIiwibm9kZVJlZiIsInJlZiIsInVzZVJlZiIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNpemUiLCJzZXRTaXplIiwidXNlRWZmZWN0IiwiX3JlZiIsImN1cnJlbnQiLCJkaWRVbm9ic2VydmUiLCJuZXdTaXplIl0sInNvdXJjZXMiOlsiLi4vc3JjL29ic2VydmUtZGltZW5zaW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgdGhyb3R0bGUgZnJvbSAnbG9kYXNoLnRocm90dGxlJztcbmltcG9ydCB7dXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlLCBSZWZPYmplY3R9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZXNpemVPYnNlcnZlciBmcm9tICdyZXNpemUtb2JzZXJ2ZXItcG9seWZpbGwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERpbWVuc2lvbnMge1xuICByZWFkb25seSBoZWlnaHQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgd2lkdGg6IG51bWJlcjtcbn1cblxuY29uc3QgREVGQVVMVF9USFJPVFRMRV9ERUxBWSA9IDEwMDtcblxuLy8gVXNpbmcgYSBzaW5nbGUgUmVzaXplT2JzZXJ2ZXIgZm9yIGFsbCBlbGVtZW50cyBjYW4gYmUgMTB4XG4vLyBtb3JlIHBlcmZvcm1hbnQgdGhhbiB1c2luZyBhIHNlcGFyYXRlIFJlc2l6ZU9ic2VydmVyIHBlciBlbGVtZW50XG4vLyBodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2EvY2hyb21pdW0ub3JnL2ZvcnVtLyMhbXNnL2JsaW5rLWRldi96Nmllbk9OVWI1QS9GNS1WY1VadEJBQUpcbmxldCBfb2JzZXJ2ZXJSZWdpc3RyeTtcblxuZnVuY3Rpb24gZ2V0T2JzZXJ2ZXJSZWdpc3RyeSgpIHtcbiAgaWYgKF9vYnNlcnZlclJlZ2lzdHJ5ID09PSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBjYWxsYmFja3MgPSBuZXcgTWFwKCk7XG4gICAgY29uc3QgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMsIG9ic2VydmVyKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgY2FsbGJhY2tzLmdldChlbnRyeS50YXJnZXQpPy4oZW50cnksIG9ic2VydmVyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBfb2JzZXJ2ZXJSZWdpc3RyeSA9IHtcbiAgICAgIHN1YnNjcmliZSh0YXJnZXQsIGNhbGxiYWNrKSB7XG4gICAgICAgIGlmICh0YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50KSB7XG4gICAgICAgICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0YXJnZXQpO1xuICAgICAgICAgIGNhbGxiYWNrcy5zZXQodGFyZ2V0LCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1bnN1YnNjcmliZSh0YXJnZXQpIHtcbiAgICAgICAgaWYgKHRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnQpIHtcbiAgICAgICAgICByZXNpemVPYnNlcnZlci51bm9ic2VydmUodGFyZ2V0KTtcbiAgICAgICAgICBjYWxsYmFja3MuZGVsZXRlKHRhcmdldCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9XG4gIHJldHVybiBfb2JzZXJ2ZXJSZWdpc3RyeTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9ic2VydmVEaW1lbnNpb25zKFxuICB0YXJnZXQ6IEVsZW1lbnQsXG4gIGhhbmRsZVJlc2l6ZTogKHNpemU6IERpbWVuc2lvbnMgfCBudWxsKSA9PiB2b2lkLFxuICB0aHJvdHRsZURlbGF5ID0gREVGQVVMVF9USFJPVFRMRV9ERUxBWVxuKSB7XG4gIGNvbnN0IHJlZ2lzdHJ5ID0gZ2V0T2JzZXJ2ZXJSZWdpc3RyeSgpO1xuICBjb25zdCBoYW5kbGVyID0gdGhyb3R0bGVEZWxheSA+IDAgPyB0aHJvdHRsZShoYW5kbGVSZXNpemUsIHRocm90dGxlRGVsYXkpIDogaGFuZGxlUmVzaXplO1xuICByZWdpc3RyeS5zdWJzY3JpYmUodGFyZ2V0LCBlbnRyeSA9PiBoYW5kbGVyKGdldFNpemUodGFyZ2V0LCBlbnRyeSkpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVub2JzZXJ2ZURpbWVuc2lvbnModGFyZ2V0OiBFbGVtZW50KSB7XG4gIGNvbnN0IHJlZ2lzdHJ5ID0gZ2V0T2JzZXJ2ZXJSZWdpc3RyeSgpO1xuICByZWdpc3RyeS51bnN1YnNjcmliZSh0YXJnZXQpO1xufVxuXG5mdW5jdGlvbiBnZXRTaXplKG5vZGUsIGVudHJ5KTogRGltZW5zaW9ucyB8IG51bGwge1xuICBpZiAoZW50cnkuY29udGVudFJlY3QpIHtcbiAgICBjb25zdCB7d2lkdGgsIGhlaWdodH0gPSBlbnRyeS5jb250ZW50UmVjdDtcbiAgICByZXR1cm4ge3dpZHRoLCBoZWlnaHR9O1xuICB9XG4gIGlmIChub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCkge1xuICAgIGNvbnN0IHt3aWR0aCwgaGVpZ2h0fSA9IG5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgcmV0dXJuIHt3aWR0aCwgaGVpZ2h0fTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBVc2FnZSBleGFtcGxlOlxuICogY29uc3QgW3JlZiwgZGltZW5zaW9uc10gPSB1c2VEaW1lbnNpb25zPEhUTUxEaXZFbGVtZW50PigpO1xuICpcbiAqIEBwYXJhbSB0aHJvdHRsZURlbGF5XG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VEaW1lbnNpb25zPFQgZXh0ZW5kcyBFbGVtZW50PihcbiAgbm9kZVJlZj86IFJlZk9iamVjdDxUPixcbiAgdGhyb3R0bGVEZWxheSA9IERFRkFVTFRfVEhST1RUTEVfREVMQVlcbik6IFtSZWZPYmplY3Q8VD4sIERpbWVuc2lvbnMgfCBudWxsXSB7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxUPihudWxsKTtcbiAgY29uc3QgW3NpemUsIHNldFNpemVdID0gdXNlU3RhdGUobnVsbCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB7Y3VycmVudH0gPSByZWYgfHwge307XG4gICAgaWYgKCFjdXJyZW50IHx8ICFub2RlUmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGRpZFVub2JzZXJ2ZSA9IGZhbHNlO1xuICAgIG9ic2VydmVEaW1lbnNpb25zKFxuICAgICAgY3VycmVudCxcbiAgICAgIGVudHJ5ID0+IHtcbiAgICAgICAgaWYgKGRpZFVub2JzZXJ2ZSkgcmV0dXJuO1xuICAgICAgICBjb25zdCBuZXdTaXplID0gZ2V0U2l6ZShjdXJyZW50LCBlbnRyeSk7XG4gICAgICAgIGlmIChuZXdTaXplKSB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHNldFNpemUobmV3U2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB0aHJvdHRsZURlbGF5XG4gICAgKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZGlkVW5vYnNlcnZlID0gdHJ1ZTtcbiAgICAgIHVub2JzZXJ2ZURpbWVuc2lvbnMoY3VycmVudCk7XG4gICAgfTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gIH0sIFt0aHJvdHRsZURlbGF5LCByZWY/LmN1cnJlbnRdKTtcblxuICByZXR1cm4gW3JlZiwgc2l6ZV07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSx1QkFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQXNELFNBQUFHLDJCQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSx5QkFBQUMsTUFB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
|
135
|
+
var _default = exports["default"] = useDimensions;
|
136
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVhY3QiLCJfcmVzaXplT2JzZXJ2ZXJQb2x5ZmlsbCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiciIsImUiLCJ0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJsZW5ndGgiLCJfbiIsIkYiLCJzIiwibiIsImRvbmUiLCJ2YWx1ZSIsImYiLCJUeXBlRXJyb3IiLCJvIiwiYSIsInUiLCJjYWxsIiwibmV4dCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwiREVGQVVMVF9USFJPVFRMRV9ERUxBWSIsIl9vYnNlcnZlclJlZ2lzdHJ5IiwiZ2V0T2JzZXJ2ZXJSZWdpc3RyeSIsInVuZGVmaW5lZCIsImNhbGxiYWNrcyIsIk1hcCIsInJlc2l6ZU9ic2VydmVyIiwiUmVzaXplT2JzZXJ2ZXIiLCJlbnRyaWVzIiwib2JzZXJ2ZXIiLCJfaXRlcmF0b3IiLCJfc3RlcCIsIl9jYWxsYmFja3MkZ2V0IiwiZW50cnkiLCJnZXQiLCJ0YXJnZXQiLCJlcnIiLCJzdWJzY3JpYmUiLCJjYWxsYmFjayIsIkVsZW1lbnQiLCJvYnNlcnZlIiwic2V0IiwidW5zdWJzY3JpYmUiLCJ1bm9ic2VydmUiLCJvYnNlcnZlRGltZW5zaW9ucyIsImhhbmRsZVJlc2l6ZSIsInRocm90dGxlRGVsYXkiLCJhcmd1bWVudHMiLCJyZWdpc3RyeSIsImhhbmRsZXIiLCJ0aHJvdHRsZSIsImdldFNpemUiLCJ1bm9ic2VydmVEaW1lbnNpb25zIiwibm9kZSIsImNvbnRlbnRSZWN0IiwiX2VudHJ5JGNvbnRlbnRSZWN0Iiwid2lkdGgiLCJoZWlnaHQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJfbm9kZSRnZXRCb3VuZGluZ0NsaWUiLCJ1c2VEaW1lbnNpb25zIiwibm9kZVJlZiIsIl9yZWYyIiwicmVmIiwidXNlUmVmIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwic2l6ZSIsInNldFNpemUiLCJ1c2VFZmZlY3QiLCJfcmVmIiwiY3VycmVudCIsImRpZFVub2JzZXJ2ZSIsIm5ld1NpemUiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi9zcmMvb2JzZXJ2ZS1kaW1lbnNpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB0aHJvdHRsZSBmcm9tICdsb2Rhc2gudGhyb3R0bGUnO1xuaW1wb3J0IHt1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUsIFJlZk9iamVjdH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlc2l6ZU9ic2VydmVyIGZyb20gJ3Jlc2l6ZS1vYnNlcnZlci1wb2x5ZmlsbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGltZW5zaW9ucyB7XG4gIHJlYWRvbmx5IGhlaWdodDogbnVtYmVyO1xuICByZWFkb25seSB3aWR0aDogbnVtYmVyO1xufVxuXG5jb25zdCBERUZBVUxUX1RIUk9UVExFX0RFTEFZID0gMTAwO1xuXG4vLyBVc2luZyBhIHNpbmdsZSBSZXNpemVPYnNlcnZlciBmb3IgYWxsIGVsZW1lbnRzIGNhbiBiZSAxMHhcbi8vIG1vcmUgcGVyZm9ybWFudCB0aGFuIHVzaW5nIGEgc2VwYXJhdGUgUmVzaXplT2JzZXJ2ZXIgcGVyIGVsZW1lbnRcbi8vIGh0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vYS9jaHJvbWl1bS5vcmcvZm9ydW0vIyFtc2cvYmxpbmstZGV2L3o2aWVuT05VYjVBL0Y1LVZjVVp0QkFBSlxubGV0IF9vYnNlcnZlclJlZ2lzdHJ5O1xuXG5mdW5jdGlvbiBnZXRPYnNlcnZlclJlZ2lzdHJ5KCkge1xuICBpZiAoX29ic2VydmVyUmVnaXN0cnkgPT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGNhbGxiYWNrcyA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoZW50cmllcywgb2JzZXJ2ZXIpID0+IHtcbiAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICBjYWxsYmFja3MuZ2V0KGVudHJ5LnRhcmdldCk/LihlbnRyeSwgb2JzZXJ2ZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIF9vYnNlcnZlclJlZ2lzdHJ5ID0ge1xuICAgICAgc3Vic2NyaWJlKHRhcmdldCwgY2FsbGJhY2spIHtcbiAgICAgICAgaWYgKHRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnQpIHtcbiAgICAgICAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKHRhcmdldCk7XG4gICAgICAgICAgY2FsbGJhY2tzLnNldCh0YXJnZXQsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVuc3Vic2NyaWJlKHRhcmdldCkge1xuICAgICAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudCkge1xuICAgICAgICAgIHJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZSh0YXJnZXQpO1xuICAgICAgICAgIGNhbGxiYWNrcy5kZWxldGUodGFyZ2V0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH1cbiAgcmV0dXJuIF9vYnNlcnZlclJlZ2lzdHJ5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb2JzZXJ2ZURpbWVuc2lvbnMoXG4gIHRhcmdldDogRWxlbWVudCxcbiAgaGFuZGxlUmVzaXplOiAoc2l6ZTogRGltZW5zaW9ucyB8IG51bGwpID0+IHZvaWQsXG4gIHRocm90dGxlRGVsYXkgPSBERUZBVUxUX1RIUk9UVExFX0RFTEFZXG4pIHtcbiAgY29uc3QgcmVnaXN0cnkgPSBnZXRPYnNlcnZlclJlZ2lzdHJ5KCk7XG4gIGNvbnN0IGhhbmRsZXIgPSB0aHJvdHRsZURlbGF5ID4gMCA/IHRocm90dGxlKGhhbmRsZVJlc2l6ZSwgdGhyb3R0bGVEZWxheSkgOiBoYW5kbGVSZXNpemU7XG4gIHJlZ2lzdHJ5LnN1YnNjcmliZSh0YXJnZXQsIGVudHJ5ID0+IGhhbmRsZXIoZ2V0U2l6ZSh0YXJnZXQsIGVudHJ5KSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5vYnNlcnZlRGltZW5zaW9ucyh0YXJnZXQ6IEVsZW1lbnQpIHtcbiAgY29uc3QgcmVnaXN0cnkgPSBnZXRPYnNlcnZlclJlZ2lzdHJ5KCk7XG4gIHJlZ2lzdHJ5LnVuc3Vic2NyaWJlKHRhcmdldCk7XG59XG5cbmZ1bmN0aW9uIGdldFNpemUobm9kZSwgZW50cnkpOiBEaW1lbnNpb25zIHwgbnVsbCB7XG4gIGlmIChlbnRyeS5jb250ZW50UmVjdCkge1xuICAgIGNvbnN0IHt3aWR0aCwgaGVpZ2h0fSA9IGVudHJ5LmNvbnRlbnRSZWN0O1xuICAgIHJldHVybiB7d2lkdGgsIGhlaWdodH07XG4gIH1cbiAgaWYgKG5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KSB7XG4gICAgY29uc3Qge3dpZHRoLCBoZWlnaHR9ID0gbm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICByZXR1cm4ge3dpZHRoLCBoZWlnaHR9O1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIFVzYWdlIGV4YW1wbGU6XG4gKiBjb25zdCBbcmVmLCBkaW1lbnNpb25zXSA9IHVzZURpbWVuc2lvbnM8SFRNTERpdkVsZW1lbnQ+KCk7XG4gKlxuICogQHBhcmFtIHRocm90dGxlRGVsYXlcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VEaW1lbnNpb25zPFQgZXh0ZW5kcyBFbGVtZW50PihcbiAgbm9kZVJlZj86IFJlZk9iamVjdDxUPixcbiAgdGhyb3R0bGVEZWxheSA9IERFRkFVTFRfVEhST1RUTEVfREVMQVlcbik6IFtSZWZPYmplY3Q8VD4sIERpbWVuc2lvbnMgfCBudWxsXSB7XG4gIGxldCByZWYgPSB1c2VSZWY8VD4obnVsbCk7XG4gIGlmIChub2RlUmVmKSB7XG4gICAgcmVmID0gbm9kZVJlZjtcbiAgfVxuICBjb25zdCBbc2l6ZSwgc2V0U2l6ZV0gPSB1c2VTdGF0ZShudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHtjdXJyZW50fSA9IHJlZiB8fCB7fTtcbiAgICBpZiAoIWN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgZGlkVW5vYnNlcnZlID0gZmFsc2U7XG4gICAgb2JzZXJ2ZURpbWVuc2lvbnMoXG4gICAgICBjdXJyZW50LFxuICAgICAgZW50cnkgPT4ge1xuICAgICAgICBpZiAoZGlkVW5vYnNlcnZlKSByZXR1cm47XG4gICAgICAgIGNvbnN0IG5ld1NpemUgPSBnZXRTaXplKGN1cnJlbnQsIGVudHJ5KTtcbiAgICAgICAgaWYgKG5ld1NpemUpIHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgc2V0U2l6ZShuZXdTaXplKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHRocm90dGxlRGVsYXlcbiAgICApO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkaWRVbm9ic2VydmUgPSB0cnVlO1xuICAgICAgdW5vYnNlcnZlRGltZW5zaW9ucyhjdXJyZW50KTtcbiAgICB9O1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW3Rocm90dGxlRGVsYXksIHJlZj8uY3VycmVudF0pO1xuXG4gIHJldHVybiBbcmVmIGFzIFJlZk9iamVjdDxUPiwgc2l6ZV07XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZURpbWVuc2lvbnM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxP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QUFDYjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNHLGFBQWFBLENBQzNCQyxPQUFzQixFQUVhO0VBQUEsSUFBQUMsS0FBQTtFQUFBLElBRG5DaEIsYUFBYSxHQUFBQyxTQUFBLENBQUFoRCxNQUFBLFFBQUFnRCxTQUFBLFFBQUF4QixTQUFBLEdBQUF3QixTQUFBLE1BQUczQixzQkFBc0I7RUFFdEMsSUFBSTJDLEdBQUcsR0FBRyxJQUFBQyxhQUFNLEVBQUksSUFBSSxDQUFDO0VBQ3pCLElBQUlILE9BQU8sRUFBRTtJQUNYRSxHQUFHLEdBQUdGLE9BQU87RUFDZjtFQUNBLElBQUFJLFNBQUEsR0FBd0IsSUFBQUMsZUFBUSxFQUFDLElBQUksQ0FBQztJQUFBQyxVQUFBLE9BQUFDLGVBQUEsYUFBQUgsU0FBQTtJQUEvQkksSUFBSSxHQUFBRixVQUFBO0lBQUVHLE9BQU8sR0FBQUgsVUFBQTtFQUVwQixJQUFBSSxnQkFBUyxFQUFDLFlBQU07SUFDZCxJQUFBQyxJQUFBLEdBQWtCVCxHQUFHLElBQUksQ0FBQyxDQUFDO01BQXBCVSxPQUFPLEdBQUFELElBQUEsQ0FBUEMsT0FBTztJQUNkLElBQUksQ0FBQ0EsT0FBTyxFQUFFO01BQ1o7SUFDRjtJQUVBLElBQUlDLFlBQVksR0FBRyxLQUFLO0lBQ3hCOUIsaUJBQWlCLENBQ2Y2QixPQUFPLEVBQ1AsVUFBQXhDLEtBQUssRUFBSTtNQUNQLElBQUl5QyxZQUFZLEVBQUU7TUFDbEIsSUFBTUMsT0FBTyxHQUFHeEIsT0FBTyxDQUFDc0IsT0FBTyxFQUFFeEMsS0FBSyxDQUFDO01BQ3ZDLElBQUkwQyxPQUFPLEVBQUU7UUFDWDtRQUNBTCxPQUFPLENBQUNLLE9BQU8sQ0FBQztNQUNsQjtJQUNGLENBQUMsRUFDRDdCLGFBQ0YsQ0FBQztJQUNELE9BQU8sWUFBTTtNQUNYNEIsWUFBWSxHQUFHLElBQUk7TUFDbkJ0QixtQkFBbUIsQ0FBQ3FCLE9BQU8sQ0FBQztJQUM5QixDQUFDO0lBQ0Q7RUFDRixDQUFDLEVBQUUsQ0FBQzNCLGFBQWEsR0FBQWdCLEtBQUEsR0FBRUMsR0FBRyxjQUFBRCxLQUFBLHVCQUFIQSxLQUFBLENBQUtXLE9BQU8sQ0FBQyxDQUFDO0VBRWpDLE9BQU8sQ0FBQ1YsR0FBRyxFQUFrQk0sSUFBSSxDQUFDO0FBQ3BDO0FBQUMsSUFBQU8sUUFBQSxHQUFBQyxPQUFBLGNBRWNqQixhQUFhIiwiaWdub3JlTGlzdCI6W119
|
package/dist/utils.js
CHANGED
@@ -238,4 +238,4 @@ function arrayDifference(source) {
|
|
238
238
|
}, initial);
|
239
239
|
};
|
240
240
|
}
|
241
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2luZG93IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfc3RyaW5ncyIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiZ2VuZXJhdGVIYXNoSWRGcm9tU3RyaW5nIiwic3RyIiwiaGFzaCIsImkiLCJjaHIiLCJsZW4iLCJ0b1N0cmluZyIsImNoYXJDb2RlQXQiLCJpc0Nocm9tZSIsIndpbmRvdyIsImNocm9tZSIsIndlYnN0b3JlIiwiY2FtZWxUb1RpdGxlIiwiYnJlYWtXb3JkIiwicmVwbGFjZSIsImNhcGl0YWxpemVGaXJzdExldHRlciIsImNhbWVsaXplIiwiZXhwb3J0cyIsIm1hdGNoIiwiaW5kZXgiLCJOdW1iZXIiLCJ0b0xvd2VyQ2FzZSIsInRvVXBwZXJDYXNlIiwiaW5zZXJ0VmFsdWUiLCJvYmoiLCJrZXkiLCJ2YWx1ZSIsIkFycmF5IiwiaXNBcnJheSIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJzbGljZSIsImlzT2JqZWN0IiwiX3R5cGVvZjIiLCJpc1BsYWluT2JqZWN0Iiwic2V0UGF0aCIsIl9yZWYiLCJfcmVmMiIsIl90b0FycmF5MiIsIm5leHQiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJzZXQiLCJwYXRoIiwiREVGQVVMVF9FUlJPUl9NRVNTQUdFIiwiZ2V0RXJyb3IiLCJlcnIiLCJkZWZhdWx0TWVzc2FnZSIsInVuZGVmaW5lZCIsIkVycm9yIiwibWVzc2FnZSIsImVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImFycmF5SW5zZXJ0IiwiYXJyIiwidmFsIiwiYXJyYXlNb3ZlTXV0YXRlIiwiYXJyYXkiLCJmcm9tIiwidG8iLCJzcGxpY2UiLCJhcnJheU1vdmUiLCJoYXNNb2JpbGVXaWR0aCIsImJyZWFrUG9pbnRWYWx1ZXMiLCJtb2JpbGVXaWR0aCIsIm1hdGNoTWVkaWEiLCJwYWxtIiwibWF0Y2hlcyIsImhhc1BvcnRhYmxlV2lkdGgiLCJkZXNrIiwiaXNUZXN0IiwiX2dsb2JhbFRoaXMkcHJvY2VzcyIsImdsb2JhbFRoaXMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJmaWx0ZXJPYmplY3RCeVByZWRpY2F0ZSIsInByZWRpY2F0ZSIsImVudHJpZXMiLCJyZWR1Y2UiLCJhY2MiLCJlbnRyeSIsImlzRnVuY3Rpb24iLCJmdW5jIiwiZmluZEJ5SWQiLCJpZCIsImZpbmQiLCJhIiwiYXJyYXlEaWZmZXJlbmNlIiwic291cmNlIiwiaW5pdGlhbCIsImNvbXBhcmUiLCJlbGVtZW50IiwiZm91bmRFbGVtZW50Il0sInNvdXJjZXMiOlsiLi4vc3JjL3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB3aW5kb3cgZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5pbXBvcnQge2NhcGl0YWxpemVGaXJzdExldHRlcn0gZnJvbSAnLi9zdHJpbmdzJztcblxuLyoqXG4gKiBHZW5lcmF0ZSBhIGhhc2ggc3RyaW5nIGJhc2VkIG9uIHN0cmluZ1xuICogQHBhcmFtIHN0clxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlSGFzaElkRnJvbVN0cmluZyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIGdlbmVyYXRlIGhhc2ggc3RyaW5nIGJhc2VkIG9uIHN0cmluZ1xuICBsZXQgaGFzaCA9IDA7XG4gIGxldCBpO1xuICBsZXQgY2hyO1xuICBsZXQgbGVuO1xuICBpZiAoc3RyLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGhhc2gudG9TdHJpbmcoKTtcbiAgZm9yIChpID0gMCwgbGVuID0gc3RyLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgY2hyID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWJpdHdpc2VcbiAgICBoYXNoID0gKGhhc2ggPDwgNSkgLSBoYXNoICsgY2hyO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1iaXR3aXNlXG4gICAgaGFzaCB8PSAwOyAvLyBDb252ZXJ0IHRvIDMyYml0IGludGVnZXJcbiAgfVxuICByZXR1cm4gaGFzaC50b1N0cmluZygzNik7XG59XG5cbi8qKlxuICogRGV0ZWN0IGNocm9tZVxuICogQHJldHVybnMge2Jvb2xlYW59IC0geWVzIG9yIG5vXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Nocm9tZSgpOiBib29sZWFuIHtcbiAgLy8gQ2hyb21lIDErXG4gIHJldHVybiB3aW5kb3cuY2hyb21lICYmIHdpbmRvdy5jaHJvbWUud2Vic3RvcmU7XG59XG5cbi8qKlxuICogQ29udmVydCBjYW1lbCBzdHlsZSBuYW1lcyB0byB0aXRsZVxuICogc3Ryb2tlQ29sb3IgLT4gU3Ryb2tlIENvbG9yXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FtZWxUb1RpdGxlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgYnJlYWtXb3JkID0gc3RyLnJlcGxhY2UoLyhbQS1aXSkvZywgJyAkMScpO1xuICByZXR1cm4gY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGJyZWFrV29yZCk7XG59XG5cbi8qKlxuICogQ29udmVydCBuYW1lcyB0byBjYW1lbCBzdHlsZVxuICogU3Ryb2tlIENvbG9yIC0+IHN0cm9rZUNvbG9yXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgY2FtZWxpemUgPSAoc3RyOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoLyg/Ol5cXHd8W0EtWl18XFxiXFx3fFxccyspL2csIChtYXRjaCwgaW5kZXgpID0+IHtcbiAgICBpZiAoTnVtYmVyKG1hdGNoKSA9PT0gMCkgcmV0dXJuICcnOyAvLyBvciBpZiAoL1xccysvLnRlc3QobWF0Y2gpKSBmb3Igd2hpdGUgc3BhY2VzXG4gICAgcmV0dXJuIGluZGV4ID09PSAwID8gbWF0Y2gudG9Mb3dlckNhc2UoKSA6IG1hdGNoLnRvVXBwZXJDYXNlKCk7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBpbW11dGFibHkgaW5zZXJ0IHZhbHVlIHRvIGFuIEFycmF5IG9yIE9iamVjdFxuICogQHBhcmFtIHtBcnJheXxPYmplY3R9IG9ialxuICogQHBhcmFtIHtOdW1iZXJ8U3RyaW5nfSBrZXlcbiAqIEBwYXJhbSB7Kn0gdmFsdWVcbiAqIEByZXR1cm5zIHtBcnJheXxPYmplY3R9XG4gKi9cbmV4cG9ydCBjb25zdCBpbnNlcnRWYWx1ZSA9IDxUIGV4dGVuZHMgYW55W10gfCBvYmplY3Q+KFxuICBvYmo6IFQsXG4gIGtleTogbnVtYmVyIHwgc3RyaW5nLFxuICB2YWx1ZTogYW55XG4pOiBUID0+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSAmJiB0eXBlb2Yga2V5ID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBbLi4ub2JqLnNsaWNlKDAsIGtleSksIHZhbHVlLCAuLi5vYmouc2xpY2Uoa2V5ICsgMSwgb2JqLmxlbmd0aCldIGFzIFQ7XG4gIH1cblxuICByZXR1cm4gey4uLm9iaiwgW2tleV06IHZhbHVlfTtcbn07XG5cbi8qKlxuICogY2hlY2sgaWYgdmFsdWUgaXMgYSBsb29zZSBvYmplY3QgaW5jbHVkaW5nIGEgcGxhaW4gb2JqZWN0LCBhcnJheSwgZnVuY3Rpb25cbiAqIEBwYXJhbSB7Kn0gdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlKTogYm9vbGVhbiB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpO1xufVxuXG4vKipcbiAqIHdoZXRoZXIgaXMgYW4gb2JqZWN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB5ZXMgb3Igbm9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUGxhaW5PYmplY3Qob2JqOiB1bmtub3duKTogb2JqIGlzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgcmV0dXJuIG9iaiA9PT0gT2JqZWN0KG9iaikgJiYgdHlwZW9mIG9iaiAhPT0gJ2Z1bmN0aW9uJyAmJiAhQXJyYXkuaXNBcnJheShvYmopO1xufVxuXG5jb25zdCBzZXRQYXRoID0gPFQgZXh0ZW5kcyBhbnlbXSB8IG9iamVjdD4oXG4gIFtrZXksIC4uLm5leHRdOiAoc3RyaW5nIHwgbnVtYmVyKVtdLFxuICB2YWx1ZTogYW55LFxuICBvYmo6IG9iamVjdCB8IGFueVtdXG4pOiBUID0+IHtcbiAgLy8gaXMgT2JqZWN0IGFsbG93cyBqcyBvYmplY3QsIGFycmF5IGFuZCBmdW5jdGlvblxuICBpZiAoIWlzT2JqZWN0KG9iaikpIHtcbiAgICByZXR1cm4gb2JqIGFzIFQ7XG4gIH1cblxuICBpZiAobmV4dC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gaW5zZXJ0VmFsdWUob2JqLCBrZXksIHZhbHVlKSBhcyBUO1xuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gaW5zZXJ0VmFsdWUoXG4gICAgb2JqLFxuICAgIGtleSxcbiAgICBzZXRQYXRoKG5leHQsIHZhbHVlLCBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpID8gb2JqW2tleV0gOiB7fSlcbiAgKTtcbn07XG5cbi8qKlxuICogSW1tdXRhYmxlIHZlcnNpb24gb2YgXy5zZXRcbiAqIEBwYXJhbSB7QXJyYXk8U3RyaW5nfE51bWJlcj59IHBhdGhcbiAqIEBwYXJhbSB7Kn0gdmFsdWVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEByZXR1cm5zIHtPYmplY3R9XG4gKi9cbi8vIEB0cy1pZ25vcmVcbmV4cG9ydCBjb25zdCBzZXQgPSA8VCBleHRlbmRzIGFueVtdIHwgb2JqZWN0PihwYXRoOiAoc3RyaW5nIHwgbnVtYmVyKVtdLCB2YWx1ZTogYW55LCBvYmo6IFQpOiBUID0+XG4gIG9iaiA9PT0gbnVsbCA/IG9iaiA6IHNldFBhdGgocGF0aCwgdmFsdWUsIG9iaik7XG5cbnR5cGUgRXJyb3JPYmplY3QgPSB7XG4gIGVycm9yPzogYW55O1xuICBlcnI/OiBhbnk7XG4gIG1lc3NhZ2U/OiBhbnk7XG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9FUlJPUl9NRVNTQUdFID0gJ1NvbWV0aGluZyB3ZW50IHdyb25nJztcblxuLyoqXG4gKiBHZXQgZXJyb3IgaW5mb3JtYXRpb24gb2YgdW5rbm93biB0eXBlXG4gKiBFeHRyYWN0cyBhcyBtdWNoIGh1bWFuIHJlYWRhYmxlIGluZm9ybWF0aW9uIGFzIHBvc3NpYmxlXG4gKiBFbnN1cmUgcmVzdWx0IGlzIGFuIEVycm9yIG9iamVjdCBzdWl0YWJsZSBmb3IgdGhyb3cgb3IgcHJvbWlzZSByZWplY3Rpb25cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSAgZXJyIC0gVW5rbm93biBlcnJvclxuICogQHJldHVybiB7c3RyaW5nfSAtIGh1bWFuIHJlYWRhYmxlIGVycm9yIG1zZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXJyb3IoXG4gIGVycj86IEVycm9yIHwgRXJyb3JPYmplY3QgfCBzdHJpbmcsXG4gIGRlZmF1bHRNZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0Vcbik6IHN0cmluZyB7XG4gIGlmICghZXJyKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRNZXNzYWdlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBlcnIgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGVycjtcbiAgfSBlbHNlIGlmIChlcnIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgIHJldHVybiBlcnIubWVzc2FnZTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgZXJyID09PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXJyLCAnbWVzc2FnZScpXG4gICAgICA/IGdldEVycm9yKGVyci5tZXNzYWdlKVxuICAgICAgOiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXJyLCAnZXJyb3InKVxuICAgICAgPyBnZXRFcnJvcihlcnIuZXJyb3IpXG4gICAgICA6IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlcnIsICdlcnInKVxuICAgICAgPyBnZXRFcnJvcihlcnIuZXJyKVxuICAgICAgOiBKU09OLnN0cmluZ2lmeShlcnIpO1xuICB9XG5cbiAgcmV0dXJuIGRlZmF1bHRNZXNzYWdlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlJbnNlcnQ8VD4oYXJyOiBUW10sIGluZGV4OiBudW1iZXIsIHZhbDogVCk6IFRbXSB7XG4gIGlmICghQXJyYXkuaXNBcnJheShhcnIpKSB7XG4gICAgcmV0dXJuIGFycjtcbiAgfVxuXG4gIHJldHVybiBbLi4uYXJyLnNsaWNlKDAsIGluZGV4KSwgdmFsLCAuLi5hcnIuc2xpY2UoaW5kZXgpXTtcbn1cblxuY29uc3QgYXJyYXlNb3ZlTXV0YXRlID0gKGFycmF5LCBmcm9tLCB0bykgPT4ge1xuICBhcnJheS5zcGxpY2UodG8gPCAwID8gYXJyYXkubGVuZ3RoICsgdG8gOiB0bywgMCwgYXJyYXkuc3BsaWNlKGZyb20sIDEpWzBdKTtcbn07XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7YW55W119IGFycmF5XG4gKiBAcGFyYW0ge251bWJlcn0gZnJvbVxuICogQHBhcmFtIHtudW1iZXJ9IHRvXG4gKiBAcmV0dXJucyB7YW55W119XG4gKi9cbmV4cG9ydCBjb25zdCBhcnJheU1vdmUgPSA8VD4oYXJyYXk6IFRbXSwgZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyKTogVFtdID0+IHtcbiAgYXJyYXkgPSBhcnJheS5zbGljZSgpO1xuICBhcnJheU1vdmVNdXRhdGUoYXJyYXksIGZyb20sIHRvKTtcbiAgcmV0dXJuIGFycmF5O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGhhc01vYmlsZVdpZHRoKGJyZWFrUG9pbnRWYWx1ZXM6IHtwYWxtOiBudW1iZXI7IGRlc2s6IG51bWJlcn0pOiBib29sZWFuIHtcbiAgY29uc3QgbW9iaWxlV2lkdGggPSB3aW5kb3cubWF0Y2hNZWRpYShgKG1heC13aWR0aDogJHticmVha1BvaW50VmFsdWVzLnBhbG19cHgpYCk7XG4gIHJldHVybiBtb2JpbGVXaWR0aC5tYXRjaGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzUG9ydGFibGVXaWR0aChicmVha1BvaW50VmFsdWVzOiB7cGFsbTogbnVtYmVyOyBkZXNrOiBudW1iZXJ9KTogYm9vbGVhbiB7XG4gIGNvbnN0IG1vYmlsZVdpZHRoID0gd2luZG93Lm1hdGNoTWVkaWEoYChtYXgtd2lkdGg6ICR7YnJlYWtQb2ludFZhbHVlcy5kZXNrfXB4KWApO1xuICByZXR1cm4gbW9iaWxlV2lkdGgubWF0Y2hlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGVzdCgpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdsb2JhbFRoaXMucHJvY2Vzcz8uZW52Py5OT0RFX0VOViA9PT0gJ3Rlc3QnO1xufVxuXG4vKipcbiAqIEZpbHRlcnMgYW4gb2JqZWN0IGJ5IGFuIGFyYml0cmFyeSBwcmVkaWNhdGVcbiAqIFJldHVybnMgYSBuZXcgb2JqZWN0IGNvbnRhaW5pbmcgYWxsIGVsZW1lbnRzIHRoYXQgbWF0Y2ggdGhlIHByZWRpY2F0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iaiBPYmplY3QgdG8gYmUgZmlsdGVyZWRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBQcmVkaWNhdGUgYnkgd2hpY2ggdGhlIG9iamVjdCB3aWxsIGJlIGZpbHRlcmVkXG4gKiBAcmV0dXJucyB7T2JqZWN0fVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyT2JqZWN0QnlQcmVkaWNhdGUob2JqLCBwcmVkaWNhdGUpIHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9iaikucmVkdWNlKFxuICAgIChhY2MsIGVudHJ5KSA9PiAocHJlZGljYXRlKGVudHJ5WzBdLCBlbnRyeVsxXSkgPyB7Li4uYWNjLCBbZW50cnlbMF1dOiBlbnRyeVsxXX0gOiBhY2MpLFxuICAgIHt9XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKGZ1bmM6IHVua25vd24pOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiBmdW5jID09PSAnZnVuY3Rpb24nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZEJ5SWQoaWQ6IHN0cmluZyk6IDxYIGV4dGVuZHMge2lkOiBzdHJpbmd9PihhcnI6IFhbXSkgPT4gWCB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBhcnIgPT4gYXJyLmZpbmQoYSA9PiBhLmlkID09PSBpZCk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhcnJheSBkaWZmZXJlbmNlIGZyb21cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFycmF5RGlmZmVyZW5jZTxYIGV4dGVuZHMge2lkOiBzdHJpbmd9Pihzb3VyY2U6IFhbXSk6IChjb21wYXJlOiBYW10pID0+IFhbXSB7XG4gIGNvbnN0IGluaXRpYWw6IFhbXSA9IFtdO1xuICByZXR1cm4gY29tcGFyZSA9PlxuICAgIHNvdXJjZS5yZWR1Y2UoKGFjYywgZWxlbWVudCkgPT4ge1xuICAgICAgY29uc3QgZm91bmRFbGVtZW50ID0gZmluZEJ5SWQoZWxlbWVudC5pZCkoY29tcGFyZSk7XG4gICAgICByZXR1cm4gZm91bmRFbGVtZW50ID8gWy4uLmFjYywgZm91bmRFbGVtZW50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
|
241
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2luZG93IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfc3RyaW5ncyIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiZ2VuZXJhdGVIYXNoSWRGcm9tU3RyaW5nIiwic3RyIiwiaGFzaCIsImkiLCJjaHIiLCJsZW4iLCJ0b1N0cmluZyIsImNoYXJDb2RlQXQiLCJpc0Nocm9tZSIsIldpbmRvdyIsImNocm9tZSIsIndlYnN0b3JlIiwiY2FtZWxUb1RpdGxlIiwiYnJlYWtXb3JkIiwicmVwbGFjZSIsImNhcGl0YWxpemVGaXJzdExldHRlciIsImNhbWVsaXplIiwiZXhwb3J0cyIsIm1hdGNoIiwiaW5kZXgiLCJOdW1iZXIiLCJ0b0xvd2VyQ2FzZSIsInRvVXBwZXJDYXNlIiwiaW5zZXJ0VmFsdWUiLCJvYmoiLCJrZXkiLCJ2YWx1ZSIsIkFycmF5IiwiaXNBcnJheSIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJzbGljZSIsImlzT2JqZWN0IiwiX3R5cGVvZjIiLCJpc1BsYWluT2JqZWN0Iiwic2V0UGF0aCIsIl9yZWYiLCJfcmVmMiIsIl90b0FycmF5MiIsIm5leHQiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJzZXQiLCJwYXRoIiwiREVGQVVMVF9FUlJPUl9NRVNTQUdFIiwiZ2V0RXJyb3IiLCJlcnIiLCJkZWZhdWx0TWVzc2FnZSIsInVuZGVmaW5lZCIsIkVycm9yIiwibWVzc2FnZSIsImVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImFycmF5SW5zZXJ0IiwiYXJyIiwidmFsIiwiYXJyYXlNb3ZlTXV0YXRlIiwiYXJyYXkiLCJmcm9tIiwidG8iLCJzcGxpY2UiLCJhcnJheU1vdmUiLCJoYXNNb2JpbGVXaWR0aCIsImJyZWFrUG9pbnRWYWx1ZXMiLCJtb2JpbGVXaWR0aCIsIm1hdGNoTWVkaWEiLCJwYWxtIiwibWF0Y2hlcyIsImhhc1BvcnRhYmxlV2lkdGgiLCJkZXNrIiwiaXNUZXN0IiwiX2dsb2JhbFRoaXMkcHJvY2VzcyIsImdsb2JhbFRoaXMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJmaWx0ZXJPYmplY3RCeVByZWRpY2F0ZSIsInByZWRpY2F0ZSIsImVudHJpZXMiLCJyZWR1Y2UiLCJhY2MiLCJlbnRyeSIsImlzRnVuY3Rpb24iLCJmdW5jIiwiZmluZEJ5SWQiLCJpZCIsImZpbmQiLCJhIiwiYXJyYXlEaWZmZXJlbmNlIiwic291cmNlIiwiaW5pdGlhbCIsImNvbXBhcmUiLCJlbGVtZW50IiwiZm91bmRFbGVtZW50Il0sInNvdXJjZXMiOlsiLi4vc3JjL3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBXaW5kb3cgZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5pbXBvcnQge2NhcGl0YWxpemVGaXJzdExldHRlcn0gZnJvbSAnLi9zdHJpbmdzJztcblxuLyoqXG4gKiBHZW5lcmF0ZSBhIGhhc2ggc3RyaW5nIGJhc2VkIG9uIHN0cmluZ1xuICogQHBhcmFtIHN0clxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlSGFzaElkRnJvbVN0cmluZyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIGdlbmVyYXRlIGhhc2ggc3RyaW5nIGJhc2VkIG9uIHN0cmluZ1xuICBsZXQgaGFzaCA9IDA7XG4gIGxldCBpO1xuICBsZXQgY2hyO1xuICBsZXQgbGVuO1xuICBpZiAoc3RyLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGhhc2gudG9TdHJpbmcoKTtcbiAgZm9yIChpID0gMCwgbGVuID0gc3RyLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgY2hyID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWJpdHdpc2VcbiAgICBoYXNoID0gKGhhc2ggPDwgNSkgLSBoYXNoICsgY2hyO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1iaXR3aXNlXG4gICAgaGFzaCB8PSAwOyAvLyBDb252ZXJ0IHRvIDMyYml0IGludGVnZXJcbiAgfVxuICByZXR1cm4gaGFzaC50b1N0cmluZygzNik7XG59XG5cbi8qKlxuICogRGV0ZWN0IGNocm9tZVxuICogQHJldHVybnMge2Jvb2xlYW59IC0geWVzIG9yIG5vXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Nocm9tZSgpOiBib29sZWFuIHtcbiAgLy8gQ2hyb21lIDErXG4gIHJldHVybiBXaW5kb3cuY2hyb21lICYmIFdpbmRvdy5jaHJvbWUud2Vic3RvcmU7XG59XG5cbi8qKlxuICogQ29udmVydCBjYW1lbCBzdHlsZSBuYW1lcyB0byB0aXRsZVxuICogc3Ryb2tlQ29sb3IgLT4gU3Ryb2tlIENvbG9yXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FtZWxUb1RpdGxlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgYnJlYWtXb3JkID0gc3RyLnJlcGxhY2UoLyhbQS1aXSkvZywgJyAkMScpO1xuICByZXR1cm4gY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGJyZWFrV29yZCk7XG59XG5cbi8qKlxuICogQ29udmVydCBuYW1lcyB0byBjYW1lbCBzdHlsZVxuICogU3Ryb2tlIENvbG9yIC0+IHN0cm9rZUNvbG9yXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgY2FtZWxpemUgPSAoc3RyOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoLyg/Ol5cXHd8W0EtWl18XFxiXFx3fFxccyspL2csIChtYXRjaCwgaW5kZXgpID0+IHtcbiAgICBpZiAoTnVtYmVyKG1hdGNoKSA9PT0gMCkgcmV0dXJuICcnOyAvLyBvciBpZiAoL1xccysvLnRlc3QobWF0Y2gpKSBmb3Igd2hpdGUgc3BhY2VzXG4gICAgcmV0dXJuIGluZGV4ID09PSAwID8gbWF0Y2gudG9Mb3dlckNhc2UoKSA6IG1hdGNoLnRvVXBwZXJDYXNlKCk7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBpbW11dGFibHkgaW5zZXJ0IHZhbHVlIHRvIGFuIEFycmF5IG9yIE9iamVjdFxuICogQHBhcmFtIHtBcnJheXxPYmplY3R9IG9ialxuICogQHBhcmFtIHtOdW1iZXJ8U3RyaW5nfSBrZXlcbiAqIEBwYXJhbSB7Kn0gdmFsdWVcbiAqIEByZXR1cm5zIHtBcnJheXxPYmplY3R9XG4gKi9cbmV4cG9ydCBjb25zdCBpbnNlcnRWYWx1ZSA9IDxUIGV4dGVuZHMgYW55W10gfCBvYmplY3Q+KFxuICBvYmo6IFQsXG4gIGtleTogbnVtYmVyIHwgc3RyaW5nLFxuICB2YWx1ZTogYW55XG4pOiBUID0+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSAmJiB0eXBlb2Yga2V5ID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBbLi4ub2JqLnNsaWNlKDAsIGtleSksIHZhbHVlLCAuLi5vYmouc2xpY2Uoa2V5ICsgMSwgb2JqLmxlbmd0aCldIGFzIFQ7XG4gIH1cblxuICByZXR1cm4gey4uLm9iaiwgW2tleV06IHZhbHVlfTtcbn07XG5cbi8qKlxuICogY2hlY2sgaWYgdmFsdWUgaXMgYSBsb29zZSBvYmplY3QgaW5jbHVkaW5nIGEgcGxhaW4gb2JqZWN0LCBhcnJheSwgZnVuY3Rpb25cbiAqIEBwYXJhbSB7Kn0gdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlKTogYm9vbGVhbiB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpO1xufVxuXG4vKipcbiAqIHdoZXRoZXIgaXMgYW4gb2JqZWN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB5ZXMgb3Igbm9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUGxhaW5PYmplY3Qob2JqOiB1bmtub3duKTogb2JqIGlzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgcmV0dXJuIG9iaiA9PT0gT2JqZWN0KG9iaikgJiYgdHlwZW9mIG9iaiAhPT0gJ2Z1bmN0aW9uJyAmJiAhQXJyYXkuaXNBcnJheShvYmopO1xufVxuXG5jb25zdCBzZXRQYXRoID0gPFQgZXh0ZW5kcyBhbnlbXSB8IG9iamVjdD4oXG4gIFtrZXksIC4uLm5leHRdOiAoc3RyaW5nIHwgbnVtYmVyKVtdLFxuICB2YWx1ZTogYW55LFxuICBvYmo6IG9iamVjdCB8IGFueVtdXG4pOiBUID0+IHtcbiAgLy8gaXMgT2JqZWN0IGFsbG93cyBqcyBvYmplY3QsIGFycmF5IGFuZCBmdW5jdGlvblxuICBpZiAoIWlzT2JqZWN0KG9iaikpIHtcbiAgICByZXR1cm4gb2JqIGFzIFQ7XG4gIH1cblxuICBpZiAobmV4dC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gaW5zZXJ0VmFsdWUob2JqLCBrZXksIHZhbHVlKSBhcyBUO1xuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gaW5zZXJ0VmFsdWUoXG4gICAgb2JqLFxuICAgIGtleSxcbiAgICBzZXRQYXRoKG5leHQsIHZhbHVlLCBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpID8gb2JqW2tleV0gOiB7fSlcbiAgKTtcbn07XG5cbi8qKlxuICogSW1tdXRhYmxlIHZlcnNpb24gb2YgXy5zZXRcbiAqIEBwYXJhbSB7QXJyYXk8U3RyaW5nfE51bWJlcj59IHBhdGhcbiAqIEBwYXJhbSB7Kn0gdmFsdWVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEByZXR1cm5zIHtPYmplY3R9XG4gKi9cbi8vIEB0cy1pZ25vcmVcbmV4cG9ydCBjb25zdCBzZXQgPSA8VCBleHRlbmRzIGFueVtdIHwgb2JqZWN0PihwYXRoOiAoc3RyaW5nIHwgbnVtYmVyKVtdLCB2YWx1ZTogYW55LCBvYmo6IFQpOiBUID0+XG4gIG9iaiA9PT0gbnVsbCA/IG9iaiA6IHNldFBhdGgocGF0aCwgdmFsdWUsIG9iaik7XG5cbnR5cGUgRXJyb3JPYmplY3QgPSB7XG4gIGVycm9yPzogYW55O1xuICBlcnI/OiBhbnk7XG4gIG1lc3NhZ2U/OiBhbnk7XG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9FUlJPUl9NRVNTQUdFID0gJ1NvbWV0aGluZyB3ZW50IHdyb25nJztcblxuLyoqXG4gKiBHZXQgZXJyb3IgaW5mb3JtYXRpb24gb2YgdW5rbm93biB0eXBlXG4gKiBFeHRyYWN0cyBhcyBtdWNoIGh1bWFuIHJlYWRhYmxlIGluZm9ybWF0aW9uIGFzIHBvc3NpYmxlXG4gKiBFbnN1cmUgcmVzdWx0IGlzIGFuIEVycm9yIG9iamVjdCBzdWl0YWJsZSBmb3IgdGhyb3cgb3IgcHJvbWlzZSByZWplY3Rpb25cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSAgZXJyIC0gVW5rbm93biBlcnJvclxuICogQHJldHVybiB7c3RyaW5nfSAtIGh1bWFuIHJlYWRhYmxlIGVycm9yIG1zZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXJyb3IoXG4gIGVycj86IEVycm9yIHwgRXJyb3JPYmplY3QgfCBzdHJpbmcsXG4gIGRlZmF1bHRNZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0Vcbik6IHN0cmluZyB7XG4gIGlmICghZXJyKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRNZXNzYWdlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBlcnIgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGVycjtcbiAgfSBlbHNlIGlmIChlcnIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgIHJldHVybiBlcnIubWVzc2FnZTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgZXJyID09PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXJyLCAnbWVzc2FnZScpXG4gICAgICA/IGdldEVycm9yKGVyci5tZXNzYWdlKVxuICAgICAgOiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXJyLCAnZXJyb3InKVxuICAgICAgICA/IGdldEVycm9yKGVyci5lcnJvcilcbiAgICAgICAgOiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXJyLCAnZXJyJylcbiAgICAgICAgICA/IGdldEVycm9yKGVyci5lcnIpXG4gICAgICAgICAgOiBKU09OLnN0cmluZ2lmeShlcnIpO1xuICB9XG5cbiAgcmV0dXJuIGRlZmF1bHRNZXNzYWdlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlJbnNlcnQ8VD4oYXJyOiBUW10sIGluZGV4OiBudW1iZXIsIHZhbDogVCk6IFRbXSB7XG4gIGlmICghQXJyYXkuaXNBcnJheShhcnIpKSB7XG4gICAgcmV0dXJuIGFycjtcbiAgfVxuXG4gIHJldHVybiBbLi4uYXJyLnNsaWNlKDAsIGluZGV4KSwgdmFsLCAuLi5hcnIuc2xpY2UoaW5kZXgpXTtcbn1cblxuY29uc3QgYXJyYXlNb3ZlTXV0YXRlID0gKGFycmF5LCBmcm9tLCB0bykgPT4ge1xuICBhcnJheS5zcGxpY2UodG8gPCAwID8gYXJyYXkubGVuZ3RoICsgdG8gOiB0bywgMCwgYXJyYXkuc3BsaWNlKGZyb20sIDEpWzBdKTtcbn07XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7YW55W119IGFycmF5XG4gKiBAcGFyYW0ge251bWJlcn0gZnJvbVxuICogQHBhcmFtIHtudW1iZXJ9IHRvXG4gKiBAcmV0dXJucyB7YW55W119XG4gKi9cbmV4cG9ydCBjb25zdCBhcnJheU1vdmUgPSA8VD4oYXJyYXk6IFRbXSwgZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyKTogVFtdID0+IHtcbiAgYXJyYXkgPSBhcnJheS5zbGljZSgpO1xuICBhcnJheU1vdmVNdXRhdGUoYXJyYXksIGZyb20sIHRvKTtcbiAgcmV0dXJuIGFycmF5O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGhhc01vYmlsZVdpZHRoKGJyZWFrUG9pbnRWYWx1ZXM6IHtwYWxtOiBudW1iZXI7IGRlc2s6IG51bWJlcn0pOiBib29sZWFuIHtcbiAgY29uc3QgbW9iaWxlV2lkdGggPSBXaW5kb3cubWF0Y2hNZWRpYShgKG1heC13aWR0aDogJHticmVha1BvaW50VmFsdWVzLnBhbG19cHgpYCk7XG4gIHJldHVybiBtb2JpbGVXaWR0aC5tYXRjaGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzUG9ydGFibGVXaWR0aChicmVha1BvaW50VmFsdWVzOiB7cGFsbTogbnVtYmVyOyBkZXNrOiBudW1iZXJ9KTogYm9vbGVhbiB7XG4gIGNvbnN0IG1vYmlsZVdpZHRoID0gV2luZG93Lm1hdGNoTWVkaWEoYChtYXgtd2lkdGg6ICR7YnJlYWtQb2ludFZhbHVlcy5kZXNrfXB4KWApO1xuICByZXR1cm4gbW9iaWxlV2lkdGgubWF0Y2hlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGVzdCgpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdsb2JhbFRoaXMucHJvY2Vzcz8uZW52Py5OT0RFX0VOViA9PT0gJ3Rlc3QnO1xufVxuXG4vKipcbiAqIEZpbHRlcnMgYW4gb2JqZWN0IGJ5IGFuIGFyYml0cmFyeSBwcmVkaWNhdGVcbiAqIFJldHVybnMgYSBuZXcgb2JqZWN0IGNvbnRhaW5pbmcgYWxsIGVsZW1lbnRzIHRoYXQgbWF0Y2ggdGhlIHByZWRpY2F0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iaiBPYmplY3QgdG8gYmUgZmlsdGVyZWRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBQcmVkaWNhdGUgYnkgd2hpY2ggdGhlIG9iamVjdCB3aWxsIGJlIGZpbHRlcmVkXG4gKiBAcmV0dXJucyB7T2JqZWN0fVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyT2JqZWN0QnlQcmVkaWNhdGUob2JqLCBwcmVkaWNhdGUpIHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9iaikucmVkdWNlKFxuICAgIChhY2MsIGVudHJ5KSA9PiAocHJlZGljYXRlKGVudHJ5WzBdLCBlbnRyeVsxXSkgPyB7Li4uYWNjLCBbZW50cnlbMF1dOiBlbnRyeVsxXX0gOiBhY2MpLFxuICAgIHt9XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKGZ1bmM6IHVua25vd24pOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiBmdW5jID09PSAnZnVuY3Rpb24nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZEJ5SWQoaWQ6IHN0cmluZyk6IDxYIGV4dGVuZHMge2lkOiBzdHJpbmd9PihhcnI6IFhbXSkgPT4gWCB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBhcnIgPT4gYXJyLmZpbmQoYSA9PiBhLmlkID09PSBpZCk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhcnJheSBkaWZmZXJlbmNlIGZyb21cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFycmF5RGlmZmVyZW5jZTxYIGV4dGVuZHMge2lkOiBzdHJpbmd9Pihzb3VyY2U6IFhbXSk6IChjb21wYXJlOiBYW10pID0+IFhbXSB7XG4gIGNvbnN0IGluaXRpYWw6IFhbXSA9IFtdO1xuICByZXR1cm4gY29tcGFyZSA9PlxuICAgIHNvdXJjZS5yZWR1Y2UoKGFjYywgZWxlbWVudCkgPT4ge1xuICAgICAgY29uc3QgZm91bmRFbGVtZW50ID0gZmluZEJ5SWQoZWxlbWVudC5pZCkoY29tcGFyZSk7XG4gICAgICByZXR1cm4gZm91bmRFbGVtZW50ID8gWy4uLmFjYywg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
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@kepler.gl/utils",
|
3
3
|
"author": "Shan He <shan@uber.com>",
|
4
|
-
"version": "3.1.0
|
4
|
+
"version": "3.1.0",
|
5
5
|
"description": "kepler.gl constants used by kepler.gl components, actions and reducers",
|
6
6
|
"license": "MIT",
|
7
7
|
"main": "dist/index.js",
|
@@ -32,9 +32,9 @@
|
|
32
32
|
"dependencies": {
|
33
33
|
"@deck.gl/core": "^8.9.27",
|
34
34
|
"@dnd-kit/sortable": "^8.0.0",
|
35
|
-
"@kepler.gl/common-utils": "3.1.0
|
36
|
-
"@kepler.gl/constants": "3.1.0
|
37
|
-
"@kepler.gl/types": "3.1.0
|
35
|
+
"@kepler.gl/common-utils": "3.1.0",
|
36
|
+
"@kepler.gl/constants": "3.1.0",
|
37
|
+
"@kepler.gl/types": "3.1.0",
|
38
38
|
"@luma.gl/constants": "^8.5.20",
|
39
39
|
"@luma.gl/core": "^8.5.20",
|
40
40
|
"@mapbox/geo-viewport": "^0.4.1",
|