kepler.gl 3.1.5 → 3.1.6

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.
Files changed (37) hide show
  1. package/package.json +2 -2
  2. package/src/actions/package.json +8 -8
  3. package/src/ai-assistant/package.json +7 -7
  4. package/src/cloud-providers/package.json +2 -2
  5. package/src/common-utils/package.json +3 -3
  6. package/src/components/package.json +15 -15
  7. package/src/constants/dist/default-settings.js +1 -1
  8. package/src/constants/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/a6/24/e627b9d220d419ebbcd587d4a259bfdefa4e2a415bffa609a2388ad0b2f98ff87bc25b05959f5523f920d81c80d22ea832fea3de26f385bf3980061f6192 +1 -0
  9. package/src/constants/node_modules/.cache/terser-webpack-plugin/index-v5/c9/15/fa84924a275687fd07d9edc843fb826bd3d3733dc8f56523787fb2cba9b4 +2 -0
  10. package/src/constants/package.json +2 -2
  11. package/src/constants/umd/keplergl.min.js +1 -1
  12. package/src/deckgl-arrow-layers/package.json +2 -2
  13. package/src/deckgl-layers/dist/raster/images.js +3 -3
  14. package/src/deckgl-layers/package.json +4 -4
  15. package/src/deckgl-layers/src/raster/images.ts +1 -1
  16. package/src/duckdb/package.json +6 -6
  17. package/src/effects/package.json +5 -5
  18. package/src/layers/dist/raster-tile/image.js +3 -3
  19. package/src/layers/dist/raster-tile/raster-tile-layer.js +3 -3
  20. package/src/layers/package.json +9 -9
  21. package/src/layers/src/raster-tile/image.ts +1 -1
  22. package/src/layers/src/raster-tile/raster-tile-layer.ts +1 -1
  23. package/src/localization/package.json +1 -1
  24. package/src/processors/package.json +7 -7
  25. package/src/reducers/dist/vis-state-updaters.js +3 -12
  26. package/src/reducers/package.json +16 -16
  27. package/src/reducers/src/vis-state-updaters.ts +0 -8
  28. package/src/schemas/package.json +7 -7
  29. package/src/styles/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/15/ff/0d5d265a9aac90d367588258e15bade446b406199e4f89eebe00a15f0ae15cb46533e3490a435bd3c2028c11baf5cf980129b56fbc9df269850d75f36930 +1 -0
  30. package/src/styles/node_modules/.cache/terser-webpack-plugin/index-v5/bf/bd/77b9889db712486a6db4f34442ad9371c8a7a6a8ea20d4d0f484df4dc841 +2 -0
  31. package/src/styles/package.json +2 -2
  32. package/src/styles/umd/keplergl.min.js +1 -1
  33. package/src/table/package.json +5 -5
  34. package/src/tasks/package.json +2 -2
  35. package/src/types/package.json +1 -1
  36. package/src/utils/package.json +4 -4
  37. package/umd/keplergl.min.js +1190 -1190
@@ -8,7 +8,7 @@ exports.loadImages = loadImages;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _constants = _interopRequireDefault(require("@luma.gl/constants"));
10
10
  var _core = require("@luma.gl/core");
11
- var _lodash = _interopRequireDefault(require("lodash.isequal"));
11
+ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
12
12
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
13
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
14
  function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
@@ -86,7 +86,7 @@ function loadImages(_ref) {
86
86
  }
87
87
 
88
88
  // Deep compare when the key previously existed to see if it changed
89
- if (!(0, _lodash["default"])(imagesData[_key], oldImagesData[_key])) {
89
+ if (!(0, _isEqual["default"])(imagesData[_key], oldImagesData[_key])) {
90
90
  changedKeys.push(_key);
91
91
  }
92
92
  }
@@ -162,4 +162,4 @@ function webgl1TextureFallbacks(textureParams) {
162
162
  textureParams.parameters = _objectSpread(_objectSpread({}, textureParams.parameters), DEFAULT_UNIVERSAL_TEXTURE_PARAMETERS);
163
163
  return textureParams;
164
164
  }
165
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29yZSIsIl9sb2Rhc2giLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbiIsIkYiLCJzIiwibiIsImRvbmUiLCJ2YWx1ZSIsImYiLCJUeXBlRXJyb3IiLCJhIiwidSIsImNhbGwiLCJuZXh0IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJERUZBVUxUX1VOSVZFUlNBTF9URVhUVVJFX1BBUkFNRVRFUlMiLCJHTCIsIlRFWFRVUkVfTUlOX0ZJTFRFUiIsIk5FQVJFU1QiLCJURVhUVVJFX01BR19GSUxURVIiLCJURVhUVVJFX1dSQVBfUyIsIkNMQU1QX1RPX0VER0UiLCJURVhUVVJFX1dSQVBfVCIsImxvYWRJbWFnZUl0ZW0iLCJnbCIsImltYWdlSXRlbSIsInJlc3VsdCIsImRpcnR5UmVzdWx0IiwibWFwIiwieCIsImxvYWRUZXh0dXJlIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJ0ZXh0dXJlIiwiZXJyIiwibG9hZEltYWdlcyIsIl9yZWYiLCJpbWFnZXMiLCJpbWFnZXNEYXRhIiwib2xkSW1hZ2VzRGF0YSIsImltYWdlc0RpcnR5Iiwia2V5IiwiY2hhbmdlZEtleXMiLCJpc0VxdWFsIiwiX2kiLCJfY2hhbmdlZEtleXMiLCJpbWFnZURhdGEiLCJsb2FkZWRJdGVtIiwiVGV4dHVyZTJEIiwidGV4dHVyZVBhcmFtcyIsInBhcmFtZXRlcnMiLCJpc1dlYkdMMiIsIndlYmdsMVRleHR1cmVGYWxsYmFja3MiLCJtaXBtYXBzIiwiZm9ybWF0IiwiUjhVSSIsIlIxNlVJIiwiUjMyVUkiLCJpbmNsdWRlcyIsIkxVTUlOQU5DRSIsImRhdGFGb3JtYXQiLCJSRURfSU5URUdFUiIsInR5cGUiLCJVTlNJR05FRF9CWVRFIiwiVU5TSUdORURfU0hPUlQiLCJVTlNJR05FRF9JTlQiLCJGTE9BVCIsImRhdGEiLCJVaW50OEFycmF5IiwiVWludDE2QXJyYXkiLCJVaW50MzJBcnJheSIsIkZsb2F0MzJBcnJheSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yYXN0ZXIvaW1hZ2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBHTCBmcm9tICdAbHVtYS5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtpc1dlYkdMMiwgVGV4dHVyZTJEfSBmcm9tICdAbHVtYS5nbC9jb3JlJztcbmltcG9ydCB0eXBlIHtUZXh0dXJlMkRQcm9wc30gZnJvbSAnQGx1bWEuZ2wvd2ViZ2wnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoLmlzZXF1YWwnO1xuXG5pbXBvcnQgdHlwZSB7SW1hZ2VJbnB1dCwgSW1hZ2VTdGF0ZX0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogVGV4dHVyZSBwYXJhbWV0ZXJzIHRoYXQgc2hvdWxkIHdvcmsgZm9yIGV2ZXJ5IHRleHR1cmUgb24gYm90aCBXZWJHTDEgYW5kIFdlYkdMMlxuICovXG5jb25zdCBERUZBVUxUX1VOSVZFUlNBTF9URVhUVVJFX1BBUkFNRVRFUlMgPSB7XG4gIFtHTC5URVhUVVJFX01JTl9GSUxURVJdOiBHTC5ORUFSRVNULFxuICBbR0wuVEVYVFVSRV9NQUdfRklMVEVSXTogR0wuTkVBUkVTVCxcbiAgW0dMLlRFWFRVUkVfV1JBUF9TXTogR0wuQ0xBTVBfVE9fRURHRSxcbiAgW0dMLlRFWFRVUkVfV1JBUF9UXTogR0wuQ0xBTVBfVE9fRURHRVxufTtcblxudHlwZSBMb2FkSW1hZ2VzT3B0aW9ucyA9IHtcbiAgZ2w6IFdlYkdMUmVuZGVyaW5nQ29udGV4dCB8IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ7XG4gIGltYWdlczogSW1hZ2VTdGF0ZTtcbiAgaW1hZ2VzRGF0YTogSW1hZ2VJbnB1dDtcbiAgb2xkSW1hZ2VzRGF0YTogSW1hZ2VJbnB1dDtcbn07XG5cbi8qKlxuICogTG9hZCBpbWFnZSBpdGVtcyB0byB3ZWJnbCBjb250ZXh0XG4gKiBAcGFyYW0gZ2wgd2ViZ2wgcmVuZGVyaW5nIGNvbnRleHRcbiAqIEBwYXJhbSBpbWFnZUl0ZW0gaW1hZ2UgaXRlbSwgbWlnaHQgYmUgc2luZ2xlIHRleHR1cmUgb3IgYXJyYXkgb2YgdGV4dHVyZXNcbiAqIEByZXR1cm5zIGxvYWRlZCBzaW5nbGUgd2ViZ2wgdGV4dHVyZSBvciBhcnJheSBvZiB3ZWJnbCB0ZXh0dXJlIG9yIG51bGxcbiAqL1xuZnVuY3Rpb24gbG9hZEltYWdlSXRlbShcbiAgZ2w6IFdlYkdMUmVuZGVyaW5nQ29udGV4dCB8IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQsXG4gIGltYWdlSXRlbTogVGV4dHVyZTJEUHJvcHMgfCBUZXh0dXJlMkQgfCAoVGV4dHVyZTJEUHJvcHMgfCBUZXh0dXJlMkQpW11cbik6IG51bGwgfCBUZXh0dXJlMkQgfCBUZXh0dXJlMkRbXSB7XG4gIGxldCByZXN1bHQ6IG51bGwgfCBUZXh0dXJlMkQgfCBUZXh0dXJlMkRbXTtcbiAgaWYgKEFycmF5LmlzQXJyYXkoaW1hZ2VJdGVtKSkge1xuICAgIGNvbnN0IGRpcnR5UmVzdWx0ID0gaW1hZ2VJdGVtLm1hcCh4ID0+IGxvYWRUZXh0dXJlKGdsLCB4KSk7XG4gICAgcmVzdWx0ID0gW107XG4gICAgZm9yIChjb25zdCB0ZXh0dXJlIG9mIGRpcnR5UmVzdWx0KSB7XG4gICAgICBpZiAodGV4dHVyZSkge1xuICAgICAgICByZXN1bHQucHVzaCh0ZXh0dXJlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFyZXN1bHQubGVuZ3RoKSB7XG4gICAgICByZXN1bHQgPSBudWxsO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXN1bHQgPSBsb2FkVGV4dHVyZShnbCwgaW1hZ2VJdGVtKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eVxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRJbWFnZXMoe1xuICBnbCxcbiAgaW1hZ2VzLFxuICBpbWFnZXNEYXRhLFxuICBvbGRJbWFnZXNEYXRhXG59OiBMb2FkSW1hZ2VzT3B0aW9ucyk6IEltYWdlU3RhdGUgfCBudWxsIHtcbiAgLy8gQ2hhbmdlIHRvIGB0cnVlYCBpZiB3ZSBuZWVkIHRvIHNldFN0YXRlIHdpdGggYSBuZXcgYGltYWdlc2Agb2JqZWN0XG4gIGxldCBpbWFnZXNEaXJ0eSA9IGZhbHNlO1xuXG4gIC8vIElmIHRoZXJlIGFyZSBhbnkgcmVtb3ZlZCBrZXlzLCB3aGljaCBwcmV2aW91c2x5IGV4aXN0ZWQgaW4gb2xkUHJvcHMgYW5kXG4gIC8vIHRoaXMuc3RhdGUuaW1hZ2VzIGJ1dCBubyBsb25nZXIgZXhpc3QgaW4gcHJvcHMsIHJlbW92ZSBmcm9tIHRoZSBpbWFnZXNcbiAgLy8gb2JqZWN0XG4gIGlmIChvbGRJbWFnZXNEYXRhKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2xkSW1hZ2VzRGF0YSkge1xuICAgICAgaWYgKGltYWdlc0RhdGEgJiYgIShrZXkgaW4gaW1hZ2VzRGF0YSkgJiYga2V5IGluIGltYWdlcykge1xuICAgICAgICBkZWxldGUgaW1hZ2VzW2tleV07XG4gICAgICAgIGltYWdlc0RpcnR5ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayBpZiBhbnkga2V5cyBvZiBwcm9wcy5pbWFnZXMgaGF2ZSBjaGFuZ2VkXG4gIGNvbnN0IGNoYW5nZWRLZXlzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGtleSBpbiBpbWFnZXNEYXRhKSB7XG4gICAgLy8gSWYgb2xkUHJvcHMuaW1hZ2VzIGRpZG4ndCBleGlzdCBvciBpdCBleGlzdGVkIGFuZCB0aGlzIGtleSBkaWRuJ3QgZXhpc3RcbiAgICBpZiAoIW9sZEltYWdlc0RhdGEgfHwgKG9sZEltYWdlc0RhdGEgJiYgIShrZXkgaW4gb2xkSW1hZ2VzRGF0YSkpKSB7XG4gICAgICBjaGFuZ2VkS2V5cy5wdXNoKGtleSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvLyBEZWVwIGNvbXBhcmUgd2hlbiB0aGUga2V5IHByZXZpb3VzbHkgZXhpc3RlZCB0byBzZWUgaWYgaXQgY2hhbmdlZFxuICAgIGlmICghaXNFcXVhbChpbWFnZXNEYXRhW2tleV0sIG9sZEltYWdlc0RhdGFba2V5XSkpIHtcbiAgICAgIGNoYW5nZWRLZXlzLnB1c2goa2V5KTtcbiAgICB9XG4gIH1cblxuICBmb3IgKGNvbnN0IGtleSBvZiBjaGFuZ2VkS2V5cykge1xuICAgIGNvbnN0IGltYWdlRGF0YSA9IGltYWdlc0RhdGFba2V5XTtcbiAgICBpZiAoIWltYWdlRGF0YSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgbG9hZGVkSXRlbSA9IGxvYWRJbWFnZUl0ZW0oZ2wsIGltYWdlRGF0YSk7XG4gICAgaWYgKGxvYWRlZEl0ZW0pIHtcbiAgICAgIGltYWdlc1trZXldID0gbG9hZGVkSXRlbTtcbiAgICB9XG4gICAgaW1hZ2VzRGlydHkgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGltYWdlc0RpcnR5KSB7XG4gICAgcmV0dXJuIGltYWdlcztcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIENyZWF0ZSBUZXh0dXJlMkQgb2JqZWN0IGZyb20gaW1hZ2UgZGF0YVxuICovXG5mdW5jdGlvbiBsb2FkVGV4dHVyZShcbiAgZ2w6IFdlYkdMUmVuZGVyaW5nQ29udGV4dCB8IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQsXG4gIGltYWdlRGF0YTogVGV4dHVyZTJEIHwgVGV4dHVyZTJEUHJvcHNcbik6IFRleHR1cmUyRCB8IG51bGwge1xuICBpZiAoIWltYWdlRGF0YSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKGltYWdlRGF0YSBpbnN0YW5jZW9mIFRleHR1cmUyRCkge1xuICAgIHJldHVybiBpbWFnZURhdGE7XG4gIH1cblxuICBsZXQgdGV4dHVyZVBhcmFtczogVGV4dHVyZTJEUHJvcHMgPSB7XG4gICAgcGFyYW1ldGVyczogREVGQVVMVF9VTklWRVJTQUxfVEVYVFVSRV9QQVJBTUVURVJTLFxuICAgIC4uLmltYWdlRGF0YVxuICB9O1xuXG4gIGlmICghaXNXZWJHTDIoZ2wpKSB7XG4gICAgdGV4dHVyZVBhcmFtcyA9IHdlYmdsMVRleHR1cmVGYWxsYmFja3ModGV4dHVyZVBhcmFtcyk7XG4gIH1cblxuICByZXR1cm4gbmV3IFRleHR1cmUyRChnbCwgdGV4dHVyZVBhcmFtcyk7XG59XG5cbi8qKlxuICogVGV4dHVyZSBmYWxsYmFja3MgZm9yIFdlYkdMMVxuICogRmFsbGJhY2sgaWRlYXMgZGVyaXZlZCBmcm9tIHZpdlxuICogaHR0cHM6Ly9naXRodWIuY29tL2htcy1kYm1pL3Zpdi9ibG9iLzViY2VjNDI5ZWViYTU1OTE0ZWYzZDcxNTVhNjEwZDgyMDQ4NTIwYTAvc3JjL2xheWVycy9YUkxheWVyL1hSTGF5ZXIuanMjTDI4MC1MMzAyXG4gKi9cbmZ1bmN0aW9uIHdlYmdsMVRleHR1cmVGYWxsYmFja3ModGV4dHVyZVBhcmFtczogVGV4dHVyZTJEUHJvcHMpOiBUZXh0dXJlMkRQcm9wcyB7XG4gIC8vIFNldCBtaXBtYXBzIHRvIGZhbHNlXG4gIC8vIE5vdCBzdXJlIGlmIHRoaXMgaXMgbmVjZXNzYXJ5P1xuICAvLyBNaWdodCBhY3R1YWxseSBvbmx5IGJlIG5lY2Vzc2FyeSBmb3IgdWludCB0ZXh0dXJlc1xuICB0ZXh0dXJlUGFyYW1zLm1pcG1hcHMgPSBmYWxzZTtcblxuICAvLyBDaGFuZ2UgZm9ybWF0IHRvIEx1bWluYW5jZVxuICBpZiAodGV4dHVyZVBhcmFtcy5mb3JtYXQgJiYgW0dMLlI4VUksIEdMLlIxNlVJLCBHTC5SMzJVSV0uaW5jbHVkZXModGV4dHVyZVBhcmFtcy5mb3JtYXQpKSB7XG4gICAgdGV4dHVyZVBhcmFtcy5mb3JtYXQgPSBHTC5MVU1JTkFOQ0U7XG4gIH1cblxuICAvLyBDaGFuZ2UgZGF0YUZvcm1hdCB0byBMdW1pbmFuY2VcbiAgaWYgKHRleHR1cmVQYXJhbXMuZGF0YUZvcm1hdCA9PT0gR0wuUkVEX0lOVEVHRVIpIHtcbiAgICB0ZXh0dXJlUGFyYW1zLmRhdGFGb3JtYXQgPSBHTC5MVU1JTkFOQ0U7XG4gIH1cblxuICAvLyBTZXQgZGF0YSB0eXBlIHRvIGZsb2F0XG4gIGlmIChcbiAgICB0ZXh0dXJlUGFyYW1zLnR5cGUgJiZcbiAgICBbR0wuVU5TSUdORURfQllURSwgR0wuVU5TSUdORURfU0hPUlQsIEdMLlVOU0lHTkVEX0lOVF0uaW5jbHVkZXModGV4dHVyZVBhcmFtcy50eXBlKVxuICApIHtcbiAgICB0ZXh0dXJlUGFyYW1zLnR5cGUgPSBHTC5GTE9BVDtcbiAgfVxuXG4gIC8vIENhc3QgZGF0YSB0byBmbG9hdCAzMiBpZiBvbmUgb2YgdGhlIHVpbnQgdHlwZXNcbiAgaWYgKFxuICAgIHRleHR1cmVQYXJhbXMuZGF0YSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkgfHxcbiAgICB0ZXh0dXJlUGFyYW1zLmRhdGEgaW5zdGFuY2VvZiBVaW50MTZBcnJheSB8fFxuICAgIHRleHR1cmVQYXJhbXMuZGF0YSBpbnN0YW5jZW9mIFVpbnQzMkFycmF5XG4gICkge1xuICAgIHRleHR1cmVQYXJhbXMuZGF0YSA9IG5ldyBGbG9hdDMyQXJyYXkodGV4dHVyZVBhcmFtcy5kYXRhKTtcbiAgfVxuXG4gIC8vIE92ZXJyaWRlIHRleHR1cmUgcGFyYW1ldGVycyB0byBtYWtlIHN1cmUgdGhleSdyZSB2YWxpZCBvbiBXZWJHTDFcbiAgdGV4dHVyZVBhcmFtcy5wYXJhbWV0ZXJzID0gey4uLnRleHR1cmVQYXJhbXMucGFyYW1ldGVycywgLi4uREVGQVVMVF9VTklWRVJTQUxfVEVYVFVSRV9QQVJBTUVURVJTfTtcblxuICByZXR1cm4gdGV4dHVyZVBhcmFtcztcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHQSxJQUFBQSxVQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxLQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxPQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFBcUMsU0FBQUcsUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFGLE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLE9BQUFhLE9BQUEsV0FBQWQsQ0FBQSxRQUFBZSxnQkFBQSxhQUFBaEIs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
165
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29yZSIsIl9pc0VxdWFsIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX24iLCJGIiwicyIsIm4iLCJkb25lIiwidmFsdWUiLCJmIiwiVHlwZUVycm9yIiwiYSIsInUiLCJjYWxsIiwibmV4dCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwiREVGQVVMVF9VTklWRVJTQUxfVEVYVFVSRV9QQVJBTUVURVJTIiwiR0wiLCJURVhUVVJFX01JTl9GSUxURVIiLCJORUFSRVNUIiwiVEVYVFVSRV9NQUdfRklMVEVSIiwiVEVYVFVSRV9XUkFQX1MiLCJDTEFNUF9UT19FREdFIiwiVEVYVFVSRV9XUkFQX1QiLCJsb2FkSW1hZ2VJdGVtIiwiZ2wiLCJpbWFnZUl0ZW0iLCJyZXN1bHQiLCJkaXJ0eVJlc3VsdCIsIm1hcCIsIngiLCJsb2FkVGV4dHVyZSIsIl9pdGVyYXRvciIsIl9zdGVwIiwidGV4dHVyZSIsImVyciIsImxvYWRJbWFnZXMiLCJfcmVmIiwiaW1hZ2VzIiwiaW1hZ2VzRGF0YSIsIm9sZEltYWdlc0RhdGEiLCJpbWFnZXNEaXJ0eSIsImtleSIsImNoYW5nZWRLZXlzIiwiaXNFcXVhbCIsIl9pIiwiX2NoYW5nZWRLZXlzIiwiaW1hZ2VEYXRhIiwibG9hZGVkSXRlbSIsIlRleHR1cmUyRCIsInRleHR1cmVQYXJhbXMiLCJwYXJhbWV0ZXJzIiwiaXNXZWJHTDIiLCJ3ZWJnbDFUZXh0dXJlRmFsbGJhY2tzIiwibWlwbWFwcyIsImZvcm1hdCIsIlI4VUkiLCJSMTZVSSIsIlIzMlVJIiwiaW5jbHVkZXMiLCJMVU1JTkFOQ0UiLCJkYXRhRm9ybWF0IiwiUkVEX0lOVEVHRVIiLCJ0eXBlIiwiVU5TSUdORURfQllURSIsIlVOU0lHTkVEX1NIT1JUIiwiVU5TSUdORURfSU5UIiwiRkxPQVQiLCJkYXRhIiwiVWludDhBcnJheSIsIlVpbnQxNkFycmF5IiwiVWludDMyQXJyYXkiLCJGbG9hdDMyQXJyYXkiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcmFzdGVyL2ltYWdlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgR0wgZnJvbSAnQGx1bWEuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7aXNXZWJHTDIsIFRleHR1cmUyRH0gZnJvbSAnQGx1bWEuZ2wvY29yZSc7XG5pbXBvcnQgdHlwZSB7VGV4dHVyZTJEUHJvcHN9IGZyb20gJ0BsdW1hLmdsL3dlYmdsJztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC9pc0VxdWFsJztcblxuaW1wb3J0IHR5cGUge0ltYWdlSW5wdXQsIEltYWdlU3RhdGV9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFRleHR1cmUgcGFyYW1ldGVycyB0aGF0IHNob3VsZCB3b3JrIGZvciBldmVyeSB0ZXh0dXJlIG9uIGJvdGggV2ViR0wxIGFuZCBXZWJHTDJcbiAqL1xuY29uc3QgREVGQVVMVF9VTklWRVJTQUxfVEVYVFVSRV9QQVJBTUVURVJTID0ge1xuICBbR0wuVEVYVFVSRV9NSU5fRklMVEVSXTogR0wuTkVBUkVTVCxcbiAgW0dMLlRFWFRVUkVfTUFHX0ZJTFRFUl06IEdMLk5FQVJFU1QsXG4gIFtHTC5URVhUVVJFX1dSQVBfU106IEdMLkNMQU1QX1RPX0VER0UsXG4gIFtHTC5URVhUVVJFX1dSQVBfVF06IEdMLkNMQU1QX1RPX0VER0Vcbn07XG5cbnR5cGUgTG9hZEltYWdlc09wdGlvbnMgPSB7XG4gIGdsOiBXZWJHTFJlbmRlcmluZ0NvbnRleHQgfCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0O1xuICBpbWFnZXM6IEltYWdlU3RhdGU7XG4gIGltYWdlc0RhdGE6IEltYWdlSW5wdXQ7XG4gIG9sZEltYWdlc0RhdGE6IEltYWdlSW5wdXQ7XG59O1xuXG4vKipcbiAqIExvYWQgaW1hZ2UgaXRlbXMgdG8gd2ViZ2wgY29udGV4dFxuICogQHBhcmFtIGdsIHdlYmdsIHJlbmRlcmluZyBjb250ZXh0XG4gKiBAcGFyYW0gaW1hZ2VJdGVtIGltYWdlIGl0ZW0sIG1pZ2h0IGJlIHNpbmdsZSB0ZXh0dXJlIG9yIGFycmF5IG9mIHRleHR1cmVzXG4gKiBAcmV0dXJucyBsb2FkZWQgc2luZ2xlIHdlYmdsIHRleHR1cmUgb3IgYXJyYXkgb2Ygd2ViZ2wgdGV4dHVyZSBvciBudWxsXG4gKi9cbmZ1bmN0aW9uIGxvYWRJbWFnZUl0ZW0oXG4gIGdsOiBXZWJHTFJlbmRlcmluZ0NvbnRleHQgfCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0LFxuICBpbWFnZUl0ZW06IFRleHR1cmUyRFByb3BzIHwgVGV4dHVyZTJEIHwgKFRleHR1cmUyRFByb3BzIHwgVGV4dHVyZTJEKVtdXG4pOiBudWxsIHwgVGV4dHVyZTJEIHwgVGV4dHVyZTJEW10ge1xuICBsZXQgcmVzdWx0OiBudWxsIHwgVGV4dHVyZTJEIHwgVGV4dHVyZTJEW107XG4gIGlmIChBcnJheS5pc0FycmF5KGltYWdlSXRlbSkpIHtcbiAgICBjb25zdCBkaXJ0eVJlc3VsdCA9IGltYWdlSXRlbS5tYXAoeCA9PiBsb2FkVGV4dHVyZShnbCwgeCkpO1xuICAgIHJlc3VsdCA9IFtdO1xuICAgIGZvciAoY29uc3QgdGV4dHVyZSBvZiBkaXJ0eVJlc3VsdCkge1xuICAgICAgaWYgKHRleHR1cmUpIHtcbiAgICAgICAgcmVzdWx0LnB1c2godGV4dHVyZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghcmVzdWx0Lmxlbmd0aCkge1xuICAgICAgcmVzdWx0ID0gbnVsbDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmVzdWx0ID0gbG9hZFRleHR1cmUoZ2wsIGltYWdlSXRlbSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbmV4cG9ydCBmdW5jdGlvbiBsb2FkSW1hZ2VzKHtcbiAgZ2wsXG4gIGltYWdlcyxcbiAgaW1hZ2VzRGF0YSxcbiAgb2xkSW1hZ2VzRGF0YVxufTogTG9hZEltYWdlc09wdGlvbnMpOiBJbWFnZVN0YXRlIHwgbnVsbCB7XG4gIC8vIENoYW5nZSB0byBgdHJ1ZWAgaWYgd2UgbmVlZCB0byBzZXRTdGF0ZSB3aXRoIGEgbmV3IGBpbWFnZXNgIG9iamVjdFxuICBsZXQgaW1hZ2VzRGlydHkgPSBmYWxzZTtcblxuICAvLyBJZiB0aGVyZSBhcmUgYW55IHJlbW92ZWQga2V5cywgd2hpY2ggcHJldmlvdXNseSBleGlzdGVkIGluIG9sZFByb3BzIGFuZFxuICAvLyB0aGlzLnN0YXRlLmltYWdlcyBidXQgbm8gbG9uZ2VyIGV4aXN0IGluIHByb3BzLCByZW1vdmUgZnJvbSB0aGUgaW1hZ2VzXG4gIC8vIG9iamVjdFxuICBpZiAob2xkSW1hZ2VzRGF0YSkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIG9sZEltYWdlc0RhdGEpIHtcbiAgICAgIGlmIChpbWFnZXNEYXRhICYmICEoa2V5IGluIGltYWdlc0RhdGEpICYmIGtleSBpbiBpbWFnZXMpIHtcbiAgICAgICAgZGVsZXRlIGltYWdlc1trZXldO1xuICAgICAgICBpbWFnZXNEaXJ0eSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgYW55IGtleXMgb2YgcHJvcHMuaW1hZ2VzIGhhdmUgY2hhbmdlZFxuICBjb25zdCBjaGFuZ2VkS2V5czogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBrZXkgaW4gaW1hZ2VzRGF0YSkge1xuICAgIC8vIElmIG9sZFByb3BzLmltYWdlcyBkaWRuJ3QgZXhpc3Qgb3IgaXQgZXhpc3RlZCBhbmQgdGhpcyBrZXkgZGlkbid0IGV4aXN0XG4gICAgaWYgKCFvbGRJbWFnZXNEYXRhIHx8IChvbGRJbWFnZXNEYXRhICYmICEoa2V5IGluIG9sZEltYWdlc0RhdGEpKSkge1xuICAgICAgY2hhbmdlZEtleXMucHVzaChrZXkpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgLy8gRGVlcCBjb21wYXJlIHdoZW4gdGhlIGtleSBwcmV2aW91c2x5IGV4aXN0ZWQgdG8gc2VlIGlmIGl0IGNoYW5nZWRcbiAgICBpZiAoIWlzRXF1YWwoaW1hZ2VzRGF0YVtrZXldLCBvbGRJbWFnZXNEYXRhW2tleV0pKSB7XG4gICAgICBjaGFuZ2VkS2V5cy5wdXNoKGtleSk7XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBrZXkgb2YgY2hhbmdlZEtleXMpIHtcbiAgICBjb25zdCBpbWFnZURhdGEgPSBpbWFnZXNEYXRhW2tleV07XG4gICAgaWYgKCFpbWFnZURhdGEpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGxvYWRlZEl0ZW0gPSBsb2FkSW1hZ2VJdGVtKGdsLCBpbWFnZURhdGEpO1xuICAgIGlmIChsb2FkZWRJdGVtKSB7XG4gICAgICBpbWFnZXNba2V5XSA9IGxvYWRlZEl0ZW07XG4gICAgfVxuICAgIGltYWdlc0RpcnR5ID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChpbWFnZXNEaXJ0eSkge1xuICAgIHJldHVybiBpbWFnZXM7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBDcmVhdGUgVGV4dHVyZTJEIG9iamVjdCBmcm9tIGltYWdlIGRhdGFcbiAqL1xuZnVuY3Rpb24gbG9hZFRleHR1cmUoXG4gIGdsOiBXZWJHTFJlbmRlcmluZ0NvbnRleHQgfCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0LFxuICBpbWFnZURhdGE6IFRleHR1cmUyRCB8IFRleHR1cmUyRFByb3BzXG4pOiBUZXh0dXJlMkQgfCBudWxsIHtcbiAgaWYgKCFpbWFnZURhdGEpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChpbWFnZURhdGEgaW5zdGFuY2VvZiBUZXh0dXJlMkQpIHtcbiAgICByZXR1cm4gaW1hZ2VEYXRhO1xuICB9XG5cbiAgbGV0IHRleHR1cmVQYXJhbXM6IFRleHR1cmUyRFByb3BzID0ge1xuICAgIHBhcmFtZXRlcnM6IERFRkFVTFRfVU5JVkVSU0FMX1RFWFRVUkVfUEFSQU1FVEVSUyxcbiAgICAuLi5pbWFnZURhdGFcbiAgfTtcblxuICBpZiAoIWlzV2ViR0wyKGdsKSkge1xuICAgIHRleHR1cmVQYXJhbXMgPSB3ZWJnbDFUZXh0dXJlRmFsbGJhY2tzKHRleHR1cmVQYXJhbXMpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBUZXh0dXJlMkQoZ2wsIHRleHR1cmVQYXJhbXMpO1xufVxuXG4vKipcbiAqIFRleHR1cmUgZmFsbGJhY2tzIGZvciBXZWJHTDFcbiAqIEZhbGxiYWNrIGlkZWFzIGRlcml2ZWQgZnJvbSB2aXZcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9obXMtZGJtaS92aXYvYmxvYi81YmNlYzQyOWVlYmE1NTkxNGVmM2Q3MTU1YTYxMGQ4MjA0ODUyMGEwL3NyYy9sYXllcnMvWFJMYXllci9YUkxheWVyLmpzI0wyODAtTDMwMlxuICovXG5mdW5jdGlvbiB3ZWJnbDFUZXh0dXJlRmFsbGJhY2tzKHRleHR1cmVQYXJhbXM6IFRleHR1cmUyRFByb3BzKTogVGV4dHVyZTJEUHJvcHMge1xuICAvLyBTZXQgbWlwbWFwcyB0byBmYWxzZVxuICAvLyBOb3Qgc3VyZSBpZiB0aGlzIGlzIG5lY2Vzc2FyeT9cbiAgLy8gTWlnaHQgYWN0dWFsbHkgb25seSBiZSBuZWNlc3NhcnkgZm9yIHVpbnQgdGV4dHVyZXNcbiAgdGV4dHVyZVBhcmFtcy5taXBtYXBzID0gZmFsc2U7XG5cbiAgLy8gQ2hhbmdlIGZvcm1hdCB0byBMdW1pbmFuY2VcbiAgaWYgKHRleHR1cmVQYXJhbXMuZm9ybWF0ICYmIFtHTC5SOFVJLCBHTC5SMTZVSSwgR0wuUjMyVUldLmluY2x1ZGVzKHRleHR1cmVQYXJhbXMuZm9ybWF0KSkge1xuICAgIHRleHR1cmVQYXJhbXMuZm9ybWF0ID0gR0wuTFVNSU5BTkNFO1xuICB9XG5cbiAgLy8gQ2hhbmdlIGRhdGFGb3JtYXQgdG8gTHVtaW5hbmNlXG4gIGlmICh0ZXh0dXJlUGFyYW1zLmRhdGFGb3JtYXQgPT09IEdMLlJFRF9JTlRFR0VSKSB7XG4gICAgdGV4dHVyZVBhcmFtcy5kYXRhRm9ybWF0ID0gR0wuTFVNSU5BTkNFO1xuICB9XG5cbiAgLy8gU2V0IGRhdGEgdHlwZSB0byBmbG9hdFxuICBpZiAoXG4gICAgdGV4dHVyZVBhcmFtcy50eXBlICYmXG4gICAgW0dMLlVOU0lHTkVEX0JZVEUsIEdMLlVOU0lHTkVEX1NIT1JULCBHTC5VTlNJR05FRF9JTlRdLmluY2x1ZGVzKHRleHR1cmVQYXJhbXMudHlwZSlcbiAgKSB7XG4gICAgdGV4dHVyZVBhcmFtcy50eXBlID0gR0wuRkxPQVQ7XG4gIH1cblxuICAvLyBDYXN0IGRhdGEgdG8gZmxvYXQgMzIgaWYgb25lIG9mIHRoZSB1aW50IHR5cGVzXG4gIGlmIChcbiAgICB0ZXh0dXJlUGFyYW1zLmRhdGEgaW5zdGFuY2VvZiBVaW50OEFycmF5IHx8XG4gICAgdGV4dHVyZVBhcmFtcy5kYXRhIGluc3RhbmNlb2YgVWludDE2QXJyYXkgfHxcbiAgICB0ZXh0dXJlUGFyYW1zLmRhdGEgaW5zdGFuY2VvZiBVaW50MzJBcnJheVxuICApIHtcbiAgICB0ZXh0dXJlUGFyYW1zLmRhdGEgPSBuZXcgRmxvYXQzMkFycmF5KHRleHR1cmVQYXJhbXMuZGF0YSk7XG4gIH1cblxuICAvLyBPdmVycmlkZSB0ZXh0dXJlIHBhcmFtZXRlcnMgdG8gbWFrZSBzdXJlIHRoZXkncmUgdmFsaWQgb24gV2ViR0wxXG4gIHRleHR1cmVQYXJhbXMucGFyYW1ldGVycyA9IHsuLi50ZXh0dXJlUGFyYW1zLnBhcmFtZXRlcnMsIC4uLkRFRkFVTFRfVU5JVkVSU0FMX1RFWFRVUkVfUEFSQU1FVEVSU307XG5cbiAgcmV0dXJuIHRleHR1cmVQYXJhbXM7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBR0EsSUFBQUEsVUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsUUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQXFDLFNBQUFHLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBWixDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxDQUFBLFdBQUFXLFNBQUEsQ0FBQVosQ0FBQSxJQUFBWSxTQUFBLENBQUFaLENBQUEsUUFBQUEsQ0FBQSxPQUFBRixPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FBQSxPQUFBYSxPQUFBLFdBQUFkLENBQUEsUUFBQWUsZ0JBQUEsYUFBQWhCLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLENBQUFELENBQUEsU0FBQUUsTUFBQSxDQUFBYyx5QkFBQSxHQUFBZCxNQUFBLENBQUFlLGdCQUFBLENBQUFsQixDQUFBLEVBQUFHLE1BQUEsQ0FBQWMseUJBQUEsQ0FBQWYsQ0FBQSxLQUFBSCxPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FBQSxHQUFBYSxPQUFBLFdBQUFkLENBQUEsSUFBQUUsTUFBQSxDQUFBZ0IsY0FBQSxDQUFBbkIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQU4sQ0FBQSxFQUFBRCxDQUFBLGlCQUFBRCxDQUFBO0FBQUEsU0FBQW9CLDJCQUFBbkIsQ0FBQSxFQUFBRCxDQUFBLFFBQUFFLENBQUEseUJBQUFtQixNQUFBLElBQUFwQixDQUFBLENBQUFvQixNQUFBLENBQUFDLFFBQUEsS0FBQXJCLENBQUEscUJBQUFDLENBQUEsUUFBQXFCLEtBQUEsQ0FBQUMsT0FBQSxDQUFBdkIsQ0FBQSxNQUFBQyxDQUFBLEdBQUF1QiwyQkFBQSxDQUFBeEIsQ0FBQSxNQUFBRCxDQUFBLElBQUFDLENBQUEsdUJBQUFBLENBQUEsQ0FBQWEsTUFBQSxJQUFBWixDQUFBLEtBQUFELENBQUEsR0FBQUMsQ0FBQSxPQUFBd0IsRUFBQSxNQUFBQyxDQUFBLFlBQUFBLEVBQUEsZUFBQUMsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUEsRUFBQSxXQUFBSCxFQUFBLElBQUF6QixDQUFBLENBQUFhLE1BQUEsS0FBQWdCLElBQUEsV0FBQUEsSUFBQSxNQUFBQyxLQUFBLEVBQUE5QixDQUFBLENBQUF5QixFQUFBLFVBQUExQixDQUFBLFdBQUFBLEVBQUFDLENBQUEsVUFBQUEsQ0FBQSxLQUFBK0IsQ0FBQSxFQUFBTCxDQUFBLGdCQUFBTSxTQUFBLGlKQUFBM0IsQ0FBQSxFQUFBNEIsQ0FBQSxPQUFBQyxDQUFBLGdCQUFBUCxDQUFBLFdBQUFBLEVBQUEsSUFBQTFCLENBQUEsR0FBQUEsQ0FBQSxDQUFBa0MsSUFBQSxDQUFBbkMsQ0FBQSxNQUFBNEIsQ0FBQSxXQUFBQSxFQUFBLFFBQUE1QixDQUFBLEdBQUFDLENBQUEsQ0FBQW1DLElBQUEsV0FBQUgsQ0FBQSxHQUFBakMsQ0FBQSxDQUFBNkIsSUFBQSxFQUFBN0IsQ0FBQSxLQUFBRCxDQUFBLFdBQUFBLEVBQUFDLENBQUEsSUFBQWtDLENBQUEsT0FBQTdCLENBQUEsR0FBQUwsQ0FBQSxLQUFBK0IsQ0FBQSxXQUFBQSxFQUFBLFVBQUFFLENBQUEsWUFBQWhDLENBQUEsY0FBQUEsQ0FBQSw4QkFBQWlDLENBQUEsUUFBQTdCLENBQUE7QUFBQSxTQUFBbUIsNEJBQUF4QixDQUFBLEVBQUFpQyxDQUFBLFFBQUFqQyxDQUFBLDJCQUFBQSxDQUFBLFNBQUFxQyxpQkFBQSxDQUFBckMsQ0FBQSxFQUFBaUMsQ0FBQSxPQUFBaEMsQ0FBQSxNQUFBcUMsUUFBQSxDQUFBSCxJQUFBLENBQUFuQyxDQUFBLEVBQUF1QyxLQUFBLDZCQUFBdEMsQ0FBQSxJQUFBRCxDQUFBLENBQUF3QyxXQUFBLEtBQUF2QyxDQUFBLEdBQUFELENBQUEsQ0FBQXdDLFdBQUEsQ0FBQUMsSUFBQSxhQUFBeEMsQ0FBQSxjQUFBQSxDQUFBLEdBQUFxQixLQUFBLENBQUFvQixJQUFBLENBQUExQyxDQUFBLG9CQUFBQyxDQUFBLCtDQUFBMEMsSUFBQSxDQUFBMUMsQ0FBQSxJQUFBb0MsaUJBQUEsQ0FBQXJDLENBQUEsRUFBQWlDLENBQUE7QUFBQSxTQUFBSSxrQkFBQXJDLENBQUEsRUFBQWlDLENBQUEsYUFBQUEsQ0FBQSxJQUFBQSxDQUFBLEdBQUFqQyxDQUFBLENBQUFhLE1BQUEsTUFBQW9CLENBQUEsR0FBQWpDLENBQUEsQ0FBQWEsTUFBQSxZQUFBZCxDQUFBLE1BQUE2QixDQUFBLEdBQUFOLEtBQUEsQ0FBQVcsQ0FBQSxHQUFBbEMsQ0FBQSxHQUFBa0MsQ0FBQSxFQUFBbEMsQ0FBQSxJQUFBNkIsQ0FBQSxDQUFBN0IsQ0FBQSxJQUFBQyxDQUFBLENBQUFELENBQUEsVUFBQTZCLENBQUEsSUFOckM7QUFDQTtBQVNBO0FBQ0E7QUFDQTtBQUNBLElBQU1nQixvQ0FBb0MsT0FBQTdCLGdCQUFBLGlCQUFBQSxnQkFBQSxpQkFBQUEsZ0JBQUEsaUJBQUFBLGdCQUFBLGlCQUN2QzhCLHFCQUFFLENBQUNDLGtCQUFrQixFQUFHRCxxQkFBRSxDQUFDRSxPQUFPLEdBQ2xDRixxQkFBRSxDQUFDRyxrQkFBa0IsRUFBR0gscUJBQUUsQ0FBQ0UsT0FBTyxHQUNsQ0YscUJBQUUsQ0FBQ0ksY0FBYyxFQUFHSixxQkFBRSxDQUFDSyxhQUFhLEdBQ3BDTCxxQkFBRSxDQUFDTSxjQUFjLEVBQUdOLHFCQUFFLENBQUNLLGFBQWEsQ0FDdEM7QUFTRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTRSxhQUFhQSxDQUNwQkMsRUFBa0QsRUFDbERDLFNBQXNFLEVBQ3RDO0VBQ2hDLElBQUlDLE1BQXNDO0VBQzFDLElBQUlqQyxLQUFLLENBQUNDLE9BQU8sQ0FBQytCLFNBQVMsQ0FBQyxFQUFFO0lBQzVCLElBQU1FLFdBQVcsR0FBR0YsU0FBUyxDQUFDRyxHQUFHLENBQUMsVUFBQUMsQ0FBQztNQUFBLE9BQUlDLFdBQVcsQ0FBQ04sRUFBRSxFQUFFSyxDQUFDLENBQUM7SUFBQSxFQUFDO0lBQzFESCxNQUFNLEdBQUcsRUFBRTtJQUFDLElBQUFLLFNBQUEsR0FBQXpDLDBCQUFBLENBQ1VxQyxXQUFXO01BQUFLLEtBQUE7SUFBQTtNQUFqQyxLQUFBRCxTQUFBLENBQUFqQyxDQUFBLE1BQUFrQyxLQUFBLEdBQUFELFNBQUEsQ0FBQWhDLENBQUEsSUFBQUMsSUFBQSxHQUFtQztRQUFBLElBQXhCaUMsT0FBTyxHQUFBRCxLQUFBLENBQUEvQixLQUFBO1FBQ2hCLElBQUlnQyxPQUFPLEVBQUU7VUFDWFAsTUFBTSxDQUFDOUMsSUFBSSxDQUFDcUQsT0FBTyxDQUFDO1FBQ3RCO01BQ0Y7SUFBQyxTQUFBQyxHQUFBO01BQUFILFNBQUEsQ0FBQTdELENBQUEsQ0FBQWdFLEdBQUE7SUFBQTtNQUFBSCxTQUFBLENBQUE3QixDQUFBO0lBQUE7SUFDRCxJQUFJLENBQUN3QixNQUFNLENBQUMxQyxNQUFNLEVBQUU7TUFDbEIwQyxNQUFNLEdBQUcsSUFBSTtJQUNmO0VBQ0YsQ0FBQyxNQUFNO0lBQ0xBLE1BQU0sR0FBR0ksV0FBVyxDQUFDTixFQUFFLEVBQUVDLFNBQVMsQ0FBQztFQUNyQztFQUNBLE9BQU9DLE1BQU07QUFDZjs7QUFFQTtBQUNPLFNBQVNTLFVBQVVBLENBQUFDLElBQUEsRUFLZTtFQUFBLElBSnZDWixFQUFFLEdBQUFZLElBQUEsQ0FBRlosRUFBRTtJQUNGYSxNQUFNLEdBQUFELElBQUEsQ0FBTkMsTUFBTTtJQUNOQyxVQUFVLEdBQUFGLElBQUEsQ0FBVkUsVUFBVTtJQUNWQyxhQUFhLEdBQUFILElBQUEsQ0FBYkcsYUFBYTtFQUViO0VBQ0EsSUFBSUMsV0FBVyxHQUFHLEtBQUs7O0VBRXZCO0VBQ0E7RUFDQTtFQUNBLElBQUlELGFBQWEsRUFBRTtJQUNqQixLQUFLLElBQU1FLEdBQUcsSUFBSUYsYUFBYSxFQUFFO01BQy9CLElBQUlELFVBQVUsSUFBSSxFQUFFRyxHQUFHLElBQUlILFVBQVUsQ0FBQyxJQUFJRyxHQUFHLElBQUlKLE1BQU0sRUFBRTtRQUN2RCxPQUFPQSxNQUFNLENBQUNJLEdBQUcsQ0FBQztRQUNsQkQsV0FBVyxHQUFHLElBQUk7TUFDcEI7SUFDRjtFQUNGOztFQUVBO0VBQ0EsSUFBTUUsV0FBcUIsR0FBRyxFQUFFO0VBQ2hDLEtBQUssSUFBTUQsSUFBRyxJQUFJSCxVQUFVLEVBQUU7SUFDNUI7SUFDQSxJQUFJLENBQUNDLGFBQWEsSUFBS0EsYUFBYSxJQUFJLEVBQUVFLElBQUcsSUFBSUYsYUFBYSxDQUFFLEVBQUU7TUFDaEVHLFdBQVcsQ0FBQzlELElBQUksQ0FBQzZELElBQUcsQ0FBQztNQUNyQjtJQUNGOztJQUVBO0lBQ0EsSUFBSSxDQUFDLElBQUFFLG1CQUFPLEVBQUNMLFVBQVUsQ0FBQ0csSUFBRyxDQUFDLEVBQUVGLGFBQWEsQ0FBQ0UsSUFBRyxDQUFDLENBQUMsRUFBRTtNQUNqREMsV0FBVyxDQUFDOUQsSUFBSSxDQUFDNkQsSUFBRyxDQUFDO0lBQ3ZCO0VBQ0Y7RUFFQSxTQUFBRyxFQUFBLE1BQUFDLFlBQUEsR0FBa0JILFdBQVcsRUFBQUUsRUFBQSxHQUFBQyxZQUFBLENBQUE3RCxNQUFBLEVBQUE0RCxFQUFBLElBQUU7SUFBMUIsSUFBTUgsS0FBRyxHQUFBSSxZQUFBLENBQUFELEVBQUE7SUFDWixJQUFNRSxTQUFTLEdBQUdSLFVBQVUsQ0FBQ0csS0FBRyxDQUFDO0lBQ2pDLElBQUksQ0FBQ0ssU0FBUyxFQUFFO01BQ2Q7SUFDRjtJQUVBLElBQU1DLFVBQVUsR0FBR3hCLGFBQWEsQ0FBQ0MsRUFBRSxFQUFFc0IsU0FBUyxDQUFDO0lBQy9DLElBQUlDLFVBQVUsRUFBRTtNQUNkVixNQUFNLENBQUNJLEtBQUcsQ0FBQyxHQUFHTSxVQUFVO0lBQzFCO0lBQ0FQLFdBQVcsR0FBRyxJQUFJO0VBQ3BCO0VBRUEsSUFBSUEsV0FBVyxFQUFFO0lBQ2YsT0FBT0gsTUFBTTtFQUNmO0VBRUEsT0FBTyxJQUFJO0FBQ2I7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsU0FBU1AsV0FBV0EsQ0FDbEJOLEVBQWtELEVBQ2xEc0IsU0FBcUMsRUFDbkI7RUFDbEIsSUFBSSxDQUFDQSxTQUFTLEVBQUU7SUFDZCxPQUFPLElBQUk7RUFDYjtFQUVBLElBQUlBLFNBQVMsWUFBWUUsZUFBUyxFQUFFO0lBQ2xDLE9BQU9GLFNBQVM7RUFDbEI7RUFFQSxJQUFJRyxhQUE2QixHQUFBbkUsYUFBQTtJQUMvQm9FLFVBQVUsRUFBRW5DO0VBQW9DLEdBQzdDK0IsU0FBUyxDQUNiO0VBRUQsSUFBSSxDQUFDLElBQUFLLGNBQVEsRUFBQzNCLEVBQUUsQ0FBQyxFQUFFO0lBQ2pCeUIsYUFBYSxHQUFHRyxzQkFBc0IsQ0FBQ0gsYUFBYSxDQUFDO0VBQ3ZEO0VBRUEsT0FBTyxJQUFJRCxlQUFTLENBQUN4QixFQUFFLEVBQUV5QixhQUFhLENBQUM7QUFDekM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNHLHNCQUFzQkEsQ0FBQ0gsYUFBNkIsRUFBa0I7RUFDN0U7RUFDQTtFQUNBO0VBQ0FBLGFBQWEsQ0FBQ0ksT0FBTyxHQUFHLEtBQUs7O0VBRTdCO0VBQ0EsSUFBSUosYUFBYSxDQUFDSyxNQUFNLElBQUksQ0FBQ3RDLHFCQUFFLENBQUN1QyxJQUFJLEVBQUV2QyxxQkFBRSxDQUFDd0MsS0FBSyxFQUFFeEMscUJBQUUsQ0FBQ3lDLEtBQUssQ0FBQyxDQUFDQyxRQUFRLENBQUNULGFBQWEsQ0FBQ0ssTUFBTSxDQUFDLEVBQUU7SUFDeEZMLGFBQWEsQ0FBQ0ssTUFBTSxHQUFHdEMscUJBQUUsQ0FBQzJDLFNBQVM7RUFDckM7O0VBRUE7RUFDQSxJQUFJVixhQUFhLENBQUNXLFVBQVUsS0FBSzVDLHFCQUFFLENBQUM2QyxXQUFXLEVBQUU7SUFDL0NaLGFBQWEsQ0FBQ1csVUFBVSxHQUFHNUMscUJBQUUsQ0FBQzJDLFNBQVM7RUFDekM7O0VBRUE7RUFDQSxJQUNFVixhQUFhLENBQUNhLElBQUksSUFDbEIsQ0FBQzlDLHFCQUFFLENBQUMrQyxhQUFhLEVBQUUvQyxxQkFBRSxDQUFDZ0QsY0FBYyxFQUFFaEQscUJBQUUsQ0FBQ2lELFlBQVksQ0FBQyxDQUFDUCxRQUFRLENBQUNULGFBQWEsQ0FBQ2EsSUFBSSxDQUFDLEVBQ25GO0lBQ0FiLGFBQWEsQ0FBQ2EsSUFBSSxHQUFHOUMscUJBQUUsQ0FBQ2tELEtBQUs7RUFDL0I7O0VBRUE7RUFDQSxJQUNFakIsYUFBYSxDQUFDa0IsSUFBSSxZQUFZQyxVQUFVLElBQ3hDbkIsYUFBYSxDQUFDa0IsSUFBSSxZQUFZRSxXQUFXLElBQ3pDcEIsYUFBYSxDQUFDa0IsSUFBSSxZQUFZRyxXQUFXLEVBQ3pDO0lBQ0FyQixhQUFhLENBQUNrQixJQUFJLEdBQUcsSUFBSUksWUFBWSxDQUFDdEIsYUFBYSxDQUFDa0IsSUFBSSxDQUFDO0VBQzNEOztFQUVBO0VBQ0FsQixhQUFhLENBQUNDLFVBQVUsR0FBQXBFLGFBQUEsQ0FBQUEsYUFBQSxLQUFPbUUsYUFBYSxDQUFDQyxVQUFVLEdBQUtuQyxvQ0FBb0MsQ0FBQztFQUVqRyxPQUFPa0MsYUFBYTtBQUN0QiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kepler.gl/deckgl-layers",
3
3
  "author": "Shan He <shan@uber.com>",
4
- "version": "3.1.5",
4
+ "version": "3.1.6",
5
5
  "description": "kepler.gl constants used by kepler.gl components, actions and reducers",
6
6
  "license": "MIT",
7
7
  "main": "dist/index.js",
@@ -35,9 +35,9 @@
35
35
  "@deck.gl/core": "^8.9.27",
36
36
  "@deck.gl/geo-layers": "^8.9.27",
37
37
  "@deck.gl/layers": "^8.9.27",
38
- "@kepler.gl/constants": "3.1.5",
39
- "@kepler.gl/types": "3.1.5",
40
- "@kepler.gl/utils": "3.1.5",
38
+ "@kepler.gl/constants": "3.1.6",
39
+ "@kepler.gl/types": "3.1.6",
40
+ "@kepler.gl/utils": "3.1.6",
41
41
  "@luma.gl/constants": "^8.5.20",
42
42
  "@luma.gl/core": "^8.5.20",
43
43
  "@mapbox/geo-viewport": "^0.4.1",
@@ -4,7 +4,7 @@
4
4
  import GL from '@luma.gl/constants';
5
5
  import {isWebGL2, Texture2D} from '@luma.gl/core';
6
6
  import type {Texture2DProps} from '@luma.gl/webgl';
7
- import isEqual from 'lodash.isequal';
7
+ import isEqual from 'lodash/isEqual';
8
8
 
9
9
  import type {ImageInput, ImageState} from './types';
10
10
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kepler.gl/duckdb",
3
3
  "author": "Shan He <heshan0131@gmail.com>",
4
- "version": "3.1.5",
4
+ "version": "3.1.6",
5
5
  "description": "DuckDB plugin for Kepler.gl",
6
6
  "license": "MIT",
7
7
  "main": "dist/index.js",
@@ -26,11 +26,11 @@
26
26
  ],
27
27
  "dependencies": {
28
28
  "@duckdb/duckdb-wasm": "^1.28.0",
29
- "@kepler.gl/common-utils": "3.1.5",
30
- "@kepler.gl/constants": "3.1.5",
31
- "@kepler.gl/processors": "3.1.5",
32
- "@kepler.gl/table": "3.1.5",
33
- "@kepler.gl/types": "3.1.5",
29
+ "@kepler.gl/common-utils": "3.1.6",
30
+ "@kepler.gl/constants": "3.1.6",
31
+ "@kepler.gl/processors": "3.1.6",
32
+ "@kepler.gl/table": "3.1.6",
33
+ "@kepler.gl/types": "3.1.6",
34
34
  "@monaco-editor/react": "^4.6.0",
35
35
  "@radix-ui/react-collapsible": "^1.1.0",
36
36
  "apache-arrow": ">=15.0.0",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kepler.gl/effects",
3
3
  "author": "Shan He <shan@uber.com>",
4
- "version": "3.1.5",
4
+ "version": "3.1.6",
5
5
  "description": "kepler.gl viaual effects",
6
6
  "license": "MIT",
7
7
  "main": "dist/index.js",
@@ -31,10 +31,10 @@
31
31
  ],
32
32
  "dependencies": {
33
33
  "@deck.gl/core": "^8.9.27",
34
- "@kepler.gl/common-utils": "3.1.5",
35
- "@kepler.gl/constants": "3.1.5",
36
- "@kepler.gl/types": "3.1.5",
37
- "@kepler.gl/utils": "3.1.5",
34
+ "@kepler.gl/common-utils": "3.1.6",
35
+ "@kepler.gl/constants": "3.1.6",
36
+ "@kepler.gl/types": "3.1.6",
37
+ "@kepler.gl/utils": "3.1.6",
38
38
  "@luma.gl/core": "^8.5.20",
39
39
  "@luma.gl/shadertools": "^8.5.20",
40
40
  "moment-timezone": "^0.5.35",
@@ -17,7 +17,7 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
17
17
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
18
18
  var _core = require("@loaders.gl/core");
19
19
  var _terrain = require("@loaders.gl/terrain");
20
- var _lodash = _interopRequireDefault(require("lodash.memoize"));
20
+ var _memoize = _interopRequireDefault(require("lodash/memoize"));
21
21
  var _constants = require("@kepler.gl/constants");
22
22
  var _config = require("./config");
23
23
  var _gpuUtils = require("./gpu-utils");
@@ -113,7 +113,7 @@ function _loadImages() {
113
113
  }));
114
114
  return _loadImages.apply(this, arguments);
115
115
  }
116
- var memoizedLoadColormap = (0, _lodash["default"])(function (colormapId) {
116
+ var memoizedLoadColormap = (0, _memoize["default"])(function (colormapId) {
117
117
  if (colormapId === _config.CATEGORICAL_COLORMAP_ID) {
118
118
  return null;
119
119
  } else {
@@ -575,4 +575,4 @@ function loadTerrain(props) {
575
575
  })
576
576
  });
577
577
  }
578
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJfdGVycmFpbiIsIl9sb2Rhc2giLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2NvbnN0YW50cyIsIl9jb25maWciLCJfZ3B1VXRpbHMiLCJfcmFzdGVyVGlsZVV0aWxzIiwiX3VybCIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiZ2V0SW1hZ2VEYXRhVVJMIiwiYml0bWFwIiwid2lkdGgiLCJoZWlnaHQiLCJjYW52YXMiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJnZXRDb250ZXh0Iiwic2V0QXR0cmlidXRlIiwiY29uY2F0IiwiY3R4IiwiaSIsIl9iaXRtYXAkc3ViYXJyYXkiLCJzdWJhcnJheSIsIl9iaXRtYXAkc3ViYXJyYXkyIiwiX3NsaWNlZFRvQXJyYXkyIiwiZyIsImIiLCJhIiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJ0b0RhdGFVUkwiLCJNRVNIX01VTFRJUExJRVIiLCJsb2FkSW1hZ2VzIiwiX3giLCJfeDIiLCJfeDMiLCJfbG9hZEltYWdlcyIsIl9hc3luY1RvR2VuZXJhdG9yMiIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwiYXNzZXRSZXF1ZXN0cyIsImNvbG9ybWFwSWQiLCJjYXRlZ29yaWNhbE9wdGlvbnMiLCJfeWllbGQkUHJvbWlzZSRhbGwiLCJfeWllbGQkUHJvbWlzZSRhbGwyIiwic3RhY0ltYWdlcyIsImNvbG9ybWFwIiwiaW1hZ2VDb2xvcm1hcCIsIndyYXAiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJQcm9taXNlIiwiYWxsIiwibG9hZFNUQUNJbWFnZURhdGEiLCJDQVRFR09SSUNBTF9DT0xPUk1BUF9JRCIsIm1lbW9pemVkTG9hZENvbG9ybWFwIiwic2VudCIsImdlbmVyYXRlQ2F0ZWdvcmljYWxDb2xvcm1hcFRleHR1cmUiLCJhYnJ1cHQiLCJzdG9wIiwibWVtb2l6ZSIsImxvYWRDb2xvcm1hcCIsIl94NCIsIl9sb2FkQ29sb3JtYXAiLCJfY2FsbGVlMiIsInJlcXVlc3QiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJnZXRBc3NldFJlcXVlc3QiLCJ1cmwiLCJjZG5VcmxzIiwicmFzdGVyQ29sb3JNYXAiLCJvcHRpb25zIiwibG9hZEltYWdlIiwiQ09MT1JNQVBfVEVYVFVSRV9QQVJBTUVURVJTIiwiZ2V0U1RBQ0ltYWdlUmVxdWVzdHMiLCJfeDUiLCJfZ2V0U1RBQ0ltYWdlUmVxdWVzdHMiLCJfY2FsbGVlMyIsImxvYWRBc3NldElkcyIsIl9jYWxsZWUzJCIsIl9jb250ZXh0MyIsImdldFNpbmdsZUFzc2V0U1RBQ1JlcXVlc3QiLCJnZXRNdWx0aUFzc2V0U1RBQ1JlcXVlc3QiLCJfeDYiLCJfbG9hZFNUQUNJbWFnZURhdGEiLCJfY2FsbGVlNCIsInJlcXVlc3RzIiwiX2NhbGxlZTQkIiwiX2NvbnRleHQ0IiwibG9hZFNpbmdsZUFzc2V0U1RBQyIsImxvYWRNdWx0aUFzc2V0U1RBQyIsIl94NyIsIl9nZXRBc3NldFJlcXVlc3QiLCJfY2FsbGVlNSIsIl9yZWYiLCJwYXJhbXMiLCJfcmVmJHVzZU1hc2siLCJ1c2VNYXNrIiwicmVzcG9uc2VSZXF1aXJlZEJhbmRJbmRpY2VzIiwicmVxdWVzdFVybCIsInJlcXVlc3RQYXJhbXMiLCJyZXF1ZXN0T3B0aW9ucyIsImFzc2V0VXJsIiwiX2NhbGxlZTUkIiwiX2NvbnRleHQ1IiwiVVJMU2VhcmNoUGFyYW1zIiwidG9TdHJpbmciLCJfeDgiLCJfZ2V0U2luZ2xlQXNzZXRTVEFDUmVxdWVzdCIsIl9jYWxsZWU2Iiwic3RhYyIsImxvYWRCYW5kSW5kZXhlcyIsInNpZ25hbCIsInVzZVNUQUNTZWFyY2hpbmciLCJfb3B0aW9ucyRpbmRleCIsIngiLCJ5IiwieiIsInN0YWNTZWFyY2hQcm92aWRlciIsInN0YXJ0RGF0ZSIsImVuZERhdGUiLCJfc3RhY1F1ZXJ5IiwidXJsUGFyYW1zIiwiX2NhbGxlZTYkIiwiX2NvbnRleHQ2IiwiaW5kZXgiLCJ0eXBlIiwiZ2V0U3RhY0FwaVVybFBhcmFtcyIsIm1hc2siLCJnZXRUaXRpbGVyVXJsIiwiZ2V0U2luZ2xlQ09HVXJsUGFyYW1zIiwibG9hZEFzc2V0SWQiLCJfeDkiLCJfZ2V0TXVsdGlBc3NldFNUQUNSZXF1ZXN0IiwiX2NhbGxlZTciLCJfb3B0aW9ucyRpbmRleDIiLCJyZXF1ZXN0RGF0YSIsInJlcXVlc3RNYXNrIiwiX2NhbGxlZTckIiwiX2NvbnRleHQ3IiwiQXJyYXkiLCJmaWxsIiwiemlwIiwibWFwIiwiX3JlZjIiLCJfcmVmMyIsImFzc2V0SWQiLCJ6aXAzIiwiX3JlZjQiLCJfcmVmNSIsImJhbmRJbmRleCIsImlzVmFsaWRSZXF1ZXN0RGF0YSIsIl9yZXF1ZXN0JG9wdGlvbnMiLCJfeDEwIiwiX2xvYWRTaW5nbGVBc3NldFNUQUMiLCJfY2FsbGVlOCIsImltYWdlQmFuZHMiLCJpbWFnZU1hc2siLCJtYXBwZWRJbWFnZUJhbmRzIiwiX2NhbGxlZTgkIiwiX2NvbnRleHQ4IiwibG9hZE5weUFycmF5IiwicG9wIiwiX3gxMSIsIl9sb2FkTXVsdGlBc3NldFNUQUMiLCJfY2FsbGVlOSIsIl9yZXN1bHRzJCIsInJlc3VsdHMiLCJfY2FsbGVlOSQiLCJfY29udGV4dDkiLCJmbGF0IiwiYmFuZCIsImsiLCJjIiwiYXJyIiwiZXZlcnkiLCJnZXRDYXRlZ29yaWNhbENvbG9ybWFwRGF0YVVybCIsImdlbmVyYXRlQ2F0ZWdvcmljYWxCaXRtYXBBcnJheSIsIkNBVEVHT1JJQ0FMX1RFWFRVUkVfV0lEVEgiLCJsb2FkVGVycmFpbiIsInByb3BzIiwiX3Byb3BzJGluZGV4IiwicmFzdGVyVGlsZVNlcnZlclVybHMiLCJtZXNoTWF4RXJyb3IiLCJnZXRNZXNoTWF4RXJyb3IiLCJ0ZXJyYWluVXJsIiwiZ2V0VGVycmFpblVybCIsImxvYWRlck9wdGlvbnMiLCJnZXRMb2FkZXJPcHRpb25zIiwibG9hZCIsIlF1YW50aXplZE1lc2hMb2FkZXIiLCJmZXRjaCIsInNraXJ0SGVpZ2h0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jhc3Rlci10aWxlL2ltYWdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8qKlxuICogVXRpbGl0eSBmdW5jdGlvbnMgdG8gY3JlYXRlIG9iamVjdHMgdG8gcGFzcyB0byBkZWNrLmdsLXJhc3RlclxuICovXG5cbmltcG9ydCB7bG9hZH0gZnJvbSAnQGxvYWRlcnMuZ2wvY29yZSc7XG5pbXBvcnQge1F1YW50aXplZE1lc2hMb2FkZXJ9IGZyb20gJ0Bsb2FkZXJzLmdsL3RlcnJhaW4nO1xuaW1wb3J0IG1lbW9pemUgZnJvbSAnbG9kYXNoLm1lbW9pemUnO1xuXG5pbXBvcnQge2dldExvYWRlck9wdGlvbnMsIFJhc3RlckxheWVyUmVzb3VyY2VzIGFzIGNkblVybHN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcblxuaW1wb3J0IHtDQVRFR09SSUNBTF9DT0xPUk1BUF9JRH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHtcbiAgbG9hZE5weUFycmF5LFxuICBnZW5lcmF0ZUNhdGVnb3JpY2FsQ29sb3JtYXBUZXh0dXJlLFxuICBsb2FkSW1hZ2UsXG4gIENPTE9STUFQX1RFWFRVUkVfUEFSQU1FVEVSU1xufSBmcm9tICcuL2dwdS11dGlscyc7XG5pbXBvcnQge0NBVEVHT1JJQ0FMX1RFWFRVUkVfV0lEVEgsIGdlbmVyYXRlQ2F0ZWdvcmljYWxCaXRtYXBBcnJheX0gZnJvbSAnLi9yYXN0ZXItdGlsZS11dGlscyc7XG5pbXBvcnQge1xuICBHZXRUaWxlRGF0YVByb3BzLFxuICBJbWFnZURhdGEsXG4gIFRlcnJhaW5EYXRhLFxuICBBc3NldFJlcXVlc3REYXRhLFxuICBDYXRlZ29yaWNhbENvbG9ybWFwT3B0aW9ucyxcbiAgQ29sb3JtYXBJbWFnZURhdGFcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge1xuICBnZXRUaXRpbGVyVXJsLFxuICBnZXRUZXJyYWluVXJsLFxuICBnZXRTaW5nbGVDT0dVcmxQYXJhbXMsXG4gIGdldFN0YWNBcGlVcmxQYXJhbXMsXG4gIGdldE1lc2hNYXhFcnJvclxufSBmcm9tICcuL3VybCc7XG5cbi8qKlxuICogQ3JlYXRlIGRhdGFVcmwgaW1hZ2UgZnJvbSBiaXRtYXAgYXJyYXlcbiAqIEBwYXJhbSBiaXRtYXAgLSBSR0JBIGJ5dGUgYml0bWFwIGFycmF5XG4gKiBAcGFyYW0gd2lkdGggLSB3aWR0aCBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBoZWlnaHQgLSBoZWlnaHQgb2YgdGhlIGltYWdlXG4gKiBAcmV0dXJucyBiYXNlNjQgZGF0YSB1cmwgb2YgdGhlIGltYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbWFnZURhdGFVUkwoYml0bWFwOiBVaW50OEFycmF5LCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcik6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgaWYgKCFjYW52YXMuZ2V0Q29udGV4dCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNhbnZhcy5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgYCR7d2lkdGh9YCk7XG4gIGNhbnZhcy5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcsIGAke2hlaWdodH1gKTtcbiAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gIGlmICghY3R4KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB3aWR0aDsgaSsrKSB7XG4gICAgY29uc3QgW3IsIGcsIGIsIGFdID0gYml0bWFwLnN1YmFycmF5KGkgKiA0LCBpICogNCArIDQpO1xuICAgIGlmIChhICE9PSAwKSB7XG4gICAgICBjdHguZmlsbFN0eWxlID0gYHJnYigke3J9LCAke2d9LCAke2J9KWA7XG4gICAgICBjdHguZmlsbFJlY3QoaSwgMCwgMSwgMSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9wbmcnKTtcbn1cblxuLy8gR2xvYmFsIG11bHRpcGxpZXIgdG8gYmUgYXBwbGllZCB0byB0ZXJyYWluIG1lc2ggcmVzb2x1dGlvblxuLy8gQSBzbWFsbGVyIG51bWJlciB0b3dhcmRzIDAgd2lsbCBjYXVzZSBnZW5lcmF0aW9uIG9mIG1lc2ggZGF0YSB3aXRoIGEgc21hbGxlciBtYXggZXJyb3IgYW5kIHRodXMgYVxuLy8gaGlnaGVyIHJlc29sdXRpb24gbWVzaFxuY29uc3QgTUVTSF9NVUxUSVBMSUVSID0gMC44O1xuXG4vKipcbiAqIExvYWQgaW1hZ2VzIHJlcXVpcmVkIGZvciByYXN0ZXIgdGlsZVxuICogQHBhcmFtIGFzc2V0UmVxdWVzdHMgLSBTVEFDIGFzc2V0IHJlcXVlc3RzXG4gKiBAcGFyYW0gY29sb3JtYXBJZCAtIGNvbG9ybWFwIGlkXG4gKiBAcGFyYW0gY2F0ZWdvcmljYWxPcHRpb25zIC0gY2F0ZWdvcmljYWwgb3B0aW9ucyByZXF1cmVkIGZvciBtYWtpbmcgb2YgY2F0ZWdvcmljYWwgY29sb3JtYXBcbiAqIEByZXR1cm5zIGltYWdlcyBtYXBcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRJbWFnZXMoXG4gIGFzc2V0UmVxdWVzdHM6IEFzc2V0UmVxdWVzdERhdGFbXSxcbiAgY29sb3JtYXBJZDogc3RyaW5nLFxuICBjYXRlZ29yaWNhbE9wdGlvbnM6IENhdGVnb3JpY2FsQ29sb3JtYXBPcHRpb25zXG4pOiBQcm9taXNlPEltYWdlRGF0YT4ge1xuICAvLyBXZSBsb2FkIGltYWdlIGRhdGEgKHNpbmdsZSBvciBtdWx0aSBhc3NldCBiYXNlZCBvbiBudW1iZXIgb2YgcmVxdWVzdHMpIGFuZCBjb2xvcm1hcCBpbiBwYXJhbGxlbFxuICBjb25zdCBbc3RhY0ltYWdlcywgY29sb3JtYXBdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgIGxvYWRTVEFDSW1hZ2VEYXRhKGFzc2V0UmVxdWVzdHMpLFxuICAgIChjb2xvcm1hcElkICE9PSBDQVRFR09SSUNBTF9DT0xPUk1BUF9JRCAmJiBtZW1vaXplZExvYWRDb2xvcm1hcChjb2xvcm1hcElkKSkgfHwgbnVsbFxuICBdKTtcbiAgbGV0IGltYWdlQ29sb3JtYXAgPSBjb2xvcm1hcDtcbiAgaWYgKGNvbG9ybWFwSWQgPT09IENBVEVHT1JJQ0FMX0NPTE9STUFQX0lEKSB7XG4gICAgaW1hZ2VDb2xvcm1hcCA9IGdlbmVyYXRlQ2F0ZWdvcmljYWxDb2xvcm1hcFRleHR1cmUoY2F0ZWdvcmljYWxPcHRpb25zKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIC4uLnN0YWNJbWFnZXMsXG4gICAgaW1hZ2VDb2xvcm1hcFxuICB9O1xufVxuXG4vKipcbiAqIENhY2hlIGxvYWRpbmcgb2YgY29sb3JtYXAuIEVhY2ggY29sb3JtYXAgZmlsZSBpcyB2ZXJ5IHNtYWxsLCBvbiB0aGUgb3JkZXIgb2YgYSBmZXcgaHVuZHJlZCBieXRlcyxcbiAqIHNvIGEgZ2xvYmFsIGNhY2hlIGxpa2UgdGhpcyBpcyBub3QgZXhwZWN0ZWQgdG8gZWF0IHVwIHRvbyBtdWNoIG1lbW9yeS5cbiAqIE1vc3QgY29sb3JtYXBzIGFyZSBsb2FkZWQgZnJvbSBDRE4uIEluIGNhc2UgY29sb3JtYXBJZCBpcyBjYXRlZ29yaWNhbCwgdGhlIGltYWdlIGlzIGNyZWF0ZWQgZnJvbVxuICogY2F0ZWdvcmljYWwgY29sb3JtYXAgb3B0aW9ucy5cbiAqIE5PVEU6IHRoaXMgaW1wbGVtZW50YXRpb24gd2lsbCBjYWNoZSBwcm9taXNlIHJlamVjdGlvbnMgYXMgd2VsbCwgYnV0IHNpbmNlIHRoZXNlIGFyZSBzbWFsbCBmaWxlc1xuICogb24gdGhlIENETiwgdGhhdCdzIGFuIGFjY2VwdGFibGUgcmlzayBmb3IgdGhlIHRpbWUgYmVpbmcuXG4gKi9cbmNvbnN0IG1lbW9pemVkTG9hZENvbG9ybWFwOiAoY29sb3JtYXBJZDogc3RyaW5nKSA9PiBQcm9taXNlPENvbG9ybWFwSW1hZ2VEYXRhIHwgbnVsbD4gfCBudWxsID1cbiAgbWVtb2l6ZSgoY29sb3JtYXBJZDogc3RyaW5nKSA9PiB7XG4gICAgaWYgKGNvbG9ybWFwSWQgPT09IENBVEVHT1JJQ0FMX0NPTE9STUFQX0lEKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGxvYWRDb2xvcm1hcChjb2xvcm1hcElkKTtcbiAgICB9XG4gIH0pO1xuXG4vKipcbiAqIExvYWQgUE5HIGNvbG9ybWFwLlxuICogU2luY2UgdGhlIGNvbG9ybWFwIGZpbGVzIGFyZSBzbyBzbWFsbCAoY291cGxlIGh1bmRyZWQgYnl0ZXMpLCB3ZSBsb2FkIHRoZW0gYWx3YXlzLCBldmVuIGZvciBhblxuICogUkdCIGNvbXBvc2l0ZSB3aGVyZSB0aGUgY29sb3JtYXAgd29uJ3QgYmUgdXNlZC4gQWZ0ZXIgdGhlIGZpcnN0IGxvYWQsIHRoZSBjb2xvcm1hcCBzaG91bGQgYmVcbiAqIGxvYWRlZCBmcm9tIHRoZSBkaXNrIGNhY2hlLiBCeSBsb2FkaW5nIGFsd2F5cywgd2UgY2FuIHByZXZlbnQgdW5uZWNlc3NhcmlseSB0cmlnZ2VyaW5nXG4gKiBnZXRUaWxlRGF0YSwgd2hpY2ggcmVkdWNlcyBmbGFzaGluZyBmcm9tIHJlbG9hZGluZyB0aGUgaW1hZ2VzIG9uIHRoZSBHUFUuXG4gKlxuICogQHBhcmFtIGNvbG9ybWFwSWQgICAgICBJRCBvZiBjb2xvcm1hcCBQTkdcbiAqXG4gKiBAcmV0dXJucyBpbWFnZSBvYmplY3QgdG8gcGFzcyB0byBUZXh0dXJlMkQgY29uc3RydWN0b3JcbiAqL1xuYXN5bmMgZnVuY3Rpb24gbG9hZENvbG9ybWFwKGNvbG9ybWFwSWQ6IHN0cmluZyk6IFByb21pc2U8Q29sb3JtYXBJbWFnZURhdGEgfCBudWxsPiB7XG4gIGlmICghY29sb3JtYXBJZCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IGdldEFzc2V0UmVxdWVzdCh7dXJsOiBjZG5VcmxzLnJhc3RlckNvbG9yTWFwKGNvbG9ybWFwSWQpLCBvcHRpb25zOiB7fX0pO1xuICByZXR1cm4gbG9hZEltYWdlKHJlcXVlc3QudXJsLCBDT0xPUk1BUF9URVhUVVJFX1BBUkFNRVRFUlMsIHJlcXVlc3Qub3B0aW9ucyk7XG59XG5cbi8qKlxuICogR2V0IHRoZSByZXF1ZXN0IGRhdGEgZm9yIGxvYWRpbmcgYSBzaW5nbGUgb3IgbXVsdGkgYXNzZXQgU1RBQyBtZXRhZGF0YSBvYmplY3QuXG4gKiBAcGFyYW0gb3B0aW9ucyBTVEFDIG1ldGFkYXRhIG9iamVjdCBhbmQgdXNlci1kZWZpbmVkIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBJbWFnZSBkYXRhLCBvciBudWxsIGlmIHRoZSBTVEFDIG1ldGFkYXRhIG9iamVjdCBpcyBub3Qgc3VwcG9ydGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0U1RBQ0ltYWdlUmVxdWVzdHMoXG4gIG9wdGlvbnM6IEdldFRpbGVEYXRhUHJvcHNcbik6IFByb21pc2U8QXNzZXRSZXF1ZXN0RGF0YVtdIHwgbnVsbD4ge1xuICBjb25zdCB7bG9hZEFzc2V0SWRzfSA9IG9wdGlvbnM7XG5cbiAgaWYgKGxvYWRBc3NldElkcy5sZW5ndGggPT09IDEpIHtcbiAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgZ2V0U2luZ2xlQXNzZXRTVEFDUmVxdWVzdChvcHRpb25zKTtcbiAgICByZXR1cm4gcmVxdWVzdCA/IFtyZXF1ZXN0XSA6IG51bGw7XG4gIH1cblxuICByZXR1cm4gYXdhaXQgZ2V0TXVsdGlBc3NldFNUQUNSZXF1ZXN0KG9wdGlvbnMpO1xufVxuXG4vLyBUT0RPOiBpbWFnZSBsb2FkaW5nIHNob3VsZCByZWFsbHkgYmUgX2RyaXZlbiBieSB0aGUgbW9kdWxlc19cbi8vIEUuZy4gdGhlIHVzZXIgY2hvb3NlcyB3aGF0IGtpbmQgb2YgcGlwZWxpbmUgdGhleSB3YW50IG9uIHRoZSBHUFUsIHRoZW4gZnJvbSB0aG9zZSBtb2R1bGVzIHdlIGNhblxuLy8gc2VlIHdoZXRoZXIgdGhlIHVzZXIgd2FudHMgdGhlIHBhbnNoYXJwZW5lZCBiYW5kLCBjb2xvcm1hcCwgZXRjXG4vKipcbiAqIExvYWQgaW1hZ2VzIGRlZmluZWQgYnkgYSBTVEFDIG1ldGFkYXRhIG9iamVjdCBwbHVzIHVzZXItZGVmaW5lZCBwYXJhbWV0ZXJzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkU1RBQ0ltYWdlRGF0YShyZXF1ZXN0czogQXNzZXRSZXF1ZXN0RGF0YVtdKTogUHJvbWlzZTxJbWFnZURhdGE+IHtcbiAgcmV0dXJuIHJlcXVlc3RzLmxlbmd0aCA9PT0gMSA/IGxvYWRTaW5nbGVBc3NldFNUQUMocmVxdWVzdHNbMF0pIDogbG9hZE11bHRpQXNzZXRTVEFDKHJlcXVlc3RzKTtcbn1cblxuLyoqXG4gKiBVdGlsaXR5IGZ1bmN0aW9uIHRoYXQgZm9ybXMgYW4gYXNzZXQgcmVxdWVzdCBiYXNlZCBvbiBnaXZlbiBwYXJhbWV0ZXJzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QXNzZXRSZXF1ZXN0KHtcbiAgdXJsLFxuICBwYXJhbXMsXG4gIG9wdGlvbnMsXG4gIHVzZU1hc2sgPSB0cnVlLFxuICByZXNwb25zZVJlcXVpcmVkQmFuZEluZGljZXNcbn06IHtcbiAgdXJsOiBzdHJpbmc7XG4gIHBhcmFtcz86IFVSTFNlYXJjaFBhcmFtcyB8IG51bGw7XG4gIG9wdGlvbnM6IFJlcXVlc3RJbml0O1xuICB1c2VNYXNrPzogYm9vbGVhbjtcbiAgcmVzcG9uc2VSZXF1aXJlZEJhbmRJbmRpY2VzPzogbnVtYmVyW10gfCBudWxsO1xufSk6IFByb21pc2U8QXNzZXRSZXF1ZXN0RGF0YT4ge1xuICBjb25zdCByZXF1ZXN0VXJsID0gdXJsO1xuICBjb25zdCByZXF1ZXN0UGFyYW1zID0gcGFyYW1zID8/IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSBvcHRpb25zO1xuXG4gIGNvbnN0IGFzc2V0VXJsID0gcmVxdWVzdFBhcmFtcyA/IGAke3JlcXVlc3RVcmx9PyR7cmVxdWVzdFBhcmFtcy50b1N0cmluZygpfWAgOiByZXF1ZXN0VXJsO1xuICByZXR1cm4ge3VybDogYXNzZXRVcmwsIG9wdGlvbnM6IHJlcXVlc3RPcHRpb25zLCB1c2VNYXNrLCByZXNwb25zZVJlcXVpcmVkQmFuZEluZGljZXN9O1xufVxuXG4vKipcbiAqIFV0aWxpdHkgZnVuY3Rpb24gZm9yIGZvcm1pbmcgYSByZXF1ZXN0IGZvciBhIHNpbmdsZSBhc3NldCBTVEFDIG1ldGFkYXRhIG9iamVjdC5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHksIG1heC1zdGF0ZW1lbnRzXG5hc3luYyBmdW5jdGlvbiBnZXRTaW5nbGVBc3NldFNUQUNSZXF1ZXN0KFxuICBvcHRpb25zOiBHZXRUaWxlRGF0YVByb3BzXG4pOiBQcm9taXNlPEFzc2V0UmVxdWVzdERhdGEgfCBudWxsPiB7XG4gIGNvbnN0IHtcbiAgICBzdGFjLFxuICAgIGxvYWRBc3NldElkcyxcbiAgICBsb2FkQmFuZEluZGV4ZXMsXG4gICAgc2lnbmFsLFxuICAgIHVzZVNUQUNTZWFyY2hpbmcsXG4gICAgaW5kZXg6IHt4LCB5LCB6fSxcbiAgICBzdGFjU2VhcmNoUHJvdmlkZXIsXG4gICAgc3RhcnREYXRlLFxuICAgIGVuZERhdGUsXG4gICAgX3N0YWNRdWVyeVxuICB9ID0gb3B0aW9ucztcblxuICBjb25zdCB1c2VNYXNrID0gdHJ1ZTtcblxuICAvLyBPbmx5IGEgc2luZ2xlIFVSTCBiZWNhdXNlIG9ubHkgYSBzaW5nbGUgYXNzZXRcbiAgbGV0IHVybDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIGxldCB1cmxQYXJhbXM6IFVSTFNlYXJjaFBhcmFtcyB8IG51bGwgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gIGxldCByZXNwb25zZVJlcXVpcmVkQmFuZEluZGljZXM6IG51bWJlcltdIHwgbnVsbCA9IGxvYWRCYW5kSW5kZXhlcztcbiAgaWYgKHVzZVNUQUNTZWFyY2hpbmcgJiYgc3RhYy50eXBlICE9PSAnRmVhdHVyZScpIHtcbiAgICB1cmxQYXJhbXMgPSBnZXRTdGFjQXBpVXJsUGFyYW1zKHtcbiAgICAgIHN0YWMsXG4gICAgICBzdGFjU2VhcmNoUHJvdmlkZXIsXG4gICAgICBzdGFydERhdGUsXG4gICAgICBlbmREYXRlLFxuICAgICAgbWFzazogdXNlTWFzayxcbiAgICAgIGxvYWRBc3NldElkcyxcbiAgICAgIF9zdGFjUXVlcnlcbiAgICB9KTtcbiAgICB1cmwgPSBnZXRUaXRpbGVyVXJsKHtzdGFjLCB1c2VTVEFDU2VhcmNoaW5nLCB4LCB5LCB6fSk7XG4gIH0gZWxzZSBpZiAoc3RhYy50eXBlID09PSAnRmVhdHVyZScpIHtcbiAgICAvLyBzdGFjIGlzIGFuIEl0ZW1cbiAgICB1cmxQYXJhbXMgPSBnZXRTaW5nbGVDT0dVcmxQYXJhbXMoe1xuICAgICAgc3RhYyxcbiAgICAgIGxvYWRBc3NldElkOiBsb2FkQXNzZXRJZHNbMF0sXG4gICAgICBsb2FkQmFuZEluZGV4ZXMsXG4gICAgICBtYXNrOiB1c2VNYXNrXG4gICAgfSk7XG4gICAgdXJsID0gZ2V0VGl0aWxlclVybCh7c3RhYywgdXNlU1RBQ1NlYXJjaGluZywgeCwgeSwgen0pO1xuICAgIHJlc3BvbnNlUmVxdWlyZWRCYW5kSW5kaWNlcyA9IG51bGw7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAoIXVybCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IGdldEFzc2V0UmVxdWVzdCh7XG4gICAgdXJsLFxuICAgIHBhcmFtczogdXJsUGFyYW1zLFxuICAgIG9wdGlvbnM6IHtzaWduYWx9LFxuICAgIHVzZU1hc2ssXG4gICAgcmVzcG9uc2VSZXF1aXJlZEJhbmRJbmRpY2VzXG4gIH0pO1xufVxuXG4vKipcbiAqIFV0aWxpdHkgZnVuY3Rpb24gZm9yIGZvcm1pbmcgcmVxdWVzdHMgZm9yIGEgbXVsdGkgYXNzZXQgU1RBQyBtZXRhZGF0YSBvYmplY3QuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldE11bHRpQXNzZXRTVEFDUmVxdWVzdChcbiAgb3B0aW9uczogR2V0VGlsZURhdGFQcm9wc1xuKTogUHJvbWlzZTxBc3NldFJlcXVlc3REYXRhW10gfCBudWxsPiB7XG4gIGNvbnN0IHtcbiAgICBzdGFjLFxuICAgIGxvYWRBc3NldElkcyxcbiAgICBsb2FkQmFuZEluZGV4ZXMsXG4gICAgc2lnbmFsLFxuICAgIHVzZVNUQUNTZWFyY2hpbmcsXG4gICAgc3RhY1NlYXJjaFByb3ZpZGVyLFxuICAgIHN0YXJ0RGF0ZSxcbiAgICBlbmREYXRlLFxuICAgIGluZGV4OiB7eCwgeSwgen0sXG4gICAgX3N0YWNRdWVyeVxuICB9ID0gb3B0aW9ucztcblxuICAvLyBNdWx0aXBsZSB1cmxzLCBvbmUgZm9yIGVhY2ggYXNzZXRcbiAgbGV0IHJlcXVlc3REYXRhOiB7dXJsOiBzdHJpbmc7IHBhcmFtczogVVJMU2VhcmNoUGFyYW1zIHwgbnVsbDsgb3B0aW9ucz86IFJlcXVlc3RJbml0fVtdID0gW107XG5cbiAgLy8gV2UgYXNzdW1lIHRoYXQgdGhlcmUncyBvbmx5IG9uZSB2YWxpZGl0eSBtYXNrIGZvciB0aGUgZW50aXJlIGFzc2V0LCBhbmQgdGhlcmVmb3JlIGFueSBvZiB0aGVcbiAgLy8gcmVxdWVzdHMgd291bGQgcmV0dXJuIHRoZSBzYW1lIHZhbGlkaXR5IGJpdG1hcC4gVGhlcmVmb3JlIHdlIG9ubHkgcmVxdWVzdCBhIG1hc2sgZm9yIHRoZSBmaXJzdFxuICAvLyBhc3NldFxuICBjb25zdCByZXF1ZXN0TWFzazogYm9vbGVhbltdID0gbmV3IEFycmF5KGxvYWRBc3NldElkcy5sZW5ndGgpLmZpbGwoZmFsc2UpO1xuICByZXF1ZXN0TWFza1swXSA9IHRydWU7XG5cbiAgaWYgKHVzZVNUQUNTZWFyY2hpbmcgJiYgc3RhYy50eXBlICE9PSAnRmVhdHVyZScpIHtcbiAgICByZXF1ZXN0RGF0YSA9IHppcChsb2FkQXNzZXRJZHMsIHJlcXVlc3RNYXNrKS5tYXAoKFthc3NldElkLCBtYXNrXSkgPT4ge1xuICAgICAgY29uc3QgcGFyYW1zID0gZ2V0U3RhY0FwaVVybFBhcmFtcyh7XG4gICAgICAgIHN0YWMsXG4gICAgICAgIHN0YWNTZWFyY2hQcm92aWRlcixcbiAgICAgICAgc3RhcnREYXRlLFxuICAgICAgICBlbmREYXRlLFxuICAgICAgICBtYXNrLFxuICAgICAgICBsb2FkQXNzZXRJZHM6IFthc3NldElkXSxcbiAgICAgICAgX3N0YWNRdWVyeVxuICAgICAgfSk7XG4gICAgICBjb25zdCB1cmwgPSBnZXRUaXRpbGVyVXJsKHtzdGFjLCB1c2VTVEFDU2VhcmNoaW5nLCB4LCB5LCB6fSk7XG4gICAgICByZXR1cm4ge3VybCwgcGFyYW1zfTtcbiAgICB9KTtcbiAgfSBlbHNlIGlmIChzdGFjLnR5cGUgPT09ICdGZWF0dXJlJykge1xuICAgIHJlcXVlc3REYXRhID0gemlwMyhsb2FkQXNzZXRJZHMsIGxvYWRCYW5kSW5kZXhlcywgcmVxdWVzdE1hc2spLm1hcChcbiAgICAgIChbYXNzZXRJZCwgYmFuZEluZGV4LCBtYXNrXSkgPT4ge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSBnZXRTaW5nbGVDT0dVcmxQYXJhbXMoe1xuICAgICAgICAgIHN0YWMsXG4gICAgICAgICAgbG9hZEFzc2V0SWQ6IGFzc2V0SWQsXG4gICAgICAgICAgbG9hZEJhbmRJbmRleGVzOiBbYmFuZEluZGV4XSxcbiAgICAgICAgICBtYXNrXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCB1cmwgPSBnZXRUaXRpbGVyVXJsKHtzdGFjLCB1c2VTVEFDU2VhcmNoaW5nLCB4LCB5LCB6fSk7XG4gICAgICAgIHJldHVybiB7dXJsLCBwYXJhbXN9O1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBpZiAoaXNWYWxpZFJlcXVlc3REYXRhKHJlcXVlc3REYXRhKSkge1xuICAgIHJldHVybiBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHJlcXVlc3REYXRhLm1hcChyZXF1ZXN0ID0+XG4gICAgICAgIGdldEFzc2V0UmVxdWVzdCh7Li4ucmVxdWVzdCwgb3B0aW9uczogcmVxdWVzdC5vcHRpb25zID8/IHtzaWduYWx9fSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogTG9hZCBpbWFnZSBkYXRhIHdoZW4gY29uc29saWRhdGVkIGluIGJhbmRzIHdpdGhpbiBhIHNpbmdsZSBTVEFDIEFzc2V0XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGxvYWRTaW5nbGVBc3NldFNUQUMocmVxdWVzdDogQXNzZXRSZXF1ZXN0RGF0YSk6IFByb21pc2U8SW1hZ2VEYXRhPiB7XG4gIGNvbnN0IGltYWdlQmFuZHMgPSBhd2FpdCBsb2FkTnB5QXJyYXkocmVxdWVzdCwgdHJ1ZSk7XG5cbiAgaWYgKCFpbWFnZUJhbmRzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGltYWdlQmFuZHNcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgaW1hZ2VNYXNrID0gKHJlcXVlc3QudXNlTWFzayAmJiBpbWFnZUJhbmRzLnBvcCgpKSB8fCBudWxsO1xuICBsZXQgbWFwcGVkSW1hZ2VCYW5kcyA9IGltYWdlQmFuZHM7XG4gIGlmIChyZXF1ZXN0LnJlc3BvbnNlUmVxdWlyZWRCYW5kSW5kaWNlcykge1xuICAgIG1hcHBlZEltYWdlQmFuZHMgPSByZXF1ZXN0LnJlc3BvbnNlUmVxdWlyZWRCYW5kSW5kaWNlcy5tYXAoaSA9PiBpbWFnZUJhbmRzW2ldKTtcbiAgfVxuICByZXR1cm4ge2ltYWdlQmFuZHM6IG1hcHBlZEltYWdlQmFuZHMsIGltYWdlTWFza307XG59XG5cbi8qKlxuICogTG9hZCBpbWFnZSBkYXRhIHdoZW4gc3BsaXQgYW1vbmcgbXVsdGlwbGUgU1RBQyBBc3NldHNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gbG9hZE11bHRpQXNzZXRTVEFDKHJlcXVlc3RzOiBBc3NldFJlcXVlc3REYXRhW10pOiBQcm9taXNlPEltYWdlRGF0YT4ge1xuICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwocmVxdWVzdHMubWFwKHJlcXVlc3QgPT4gbG9hZE5weUFycmF5KHJlcXVlc3QsIHRydWUpKSk7XG4gIC8vIFRoZSBmaXJzdCByZXF1ZXN0IGluY2x1ZGVzIGEgbWFza1xuICBjb25zdCBpbWFnZU1hc2sgPSByZXN1bHRzWzBdPy5wb3AoKSB8fCBudWxsO1xuICBjb25zdCBpbWFnZUJhbmRzID0gcmVzdWx0cy5mbGF0KCkuZmlsdGVyKGJhbmQgPT4gYmFuZCAhPT0gbnVsbCkgYXMgSW1hZ2VEYXRhWydpbWFnZUJhbmRzJ107XG4gIHJldHVybiB7aW1hZ2VCYW5kcywgaW1hZ2VNYXNrfTtcbn1cblxuLyoqXG4gKiBJdGVyYXRlIG92ZXIgdHdvIGFycmF5cyBzaW11bHRhbmVvdXNseSwgc2ltaWxhciB0byBQeXRob24ncyB6aXAgYnVpbHRpblxuICovXG5mdW5jdGlvbiB6aXA8VDEsIFQyPihhOiBUMVtdLCBiOiBUMltdKTogW1QxLCBUMl1bXSB7XG4gIHJldHVybiBhLm1hcCgoaywgaSkgPT4gW2ssIGJbaV1dKTtcbn1cblxuLyoqXG4gKiBJdGVyYXRlIG92ZXIgdGhyZWUgYXJyYXlzIHNpbXVsdGFuZW91c2x5LCBzaW1pbGFyIHRvIFB5dGhvbidzIHppcCBidWlsdGluXG4gKi9cbmZ1bmN0aW9uIHppcDM8VDEsIFQyLCBUMz4oYTogVDFbXSwgYjogVDJbXSwgYzogVDNbXSk6IFtUMSwgVDIsIFQzXVtdIHtcbiAgcmV0dXJuIGEubWFwKChrLCBpKSA9PiBbaywgYltpXSwgY1tpXV0pO1xufVxuXG4vKipcbiAqIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgYWxsIGFycmF5IGVsZW1lbnRzIGFyZSBzdHJpbmdzXG4gKi9cbmZ1bmN0aW9uIGlzVmFsaWRSZXF1ZXN0RGF0YShcbiAgYXJyOiB7dXJsOiB1bmtub3duOyBwYXJhbXM6IHVua25vd247IG9wdGlvbnM/OiB1bmtub3dufVtdXG4pOiBhcnIgaXMge3VybDogc3RyaW5nOyBwYXJhbXM6IFVSTFNlYXJjaFBhcmFtczsgb3B0aW9uczogdW5rbm93bn1bXSB7XG4gIHJldHVybiBhcnIuZXZlcnkoeCA9PiB0eXBlb2YgeD8udXJsID09PSAnc3RyaW5nJyAmJiB4Py5wYXJhbXMgIT09IG51bGwpO1xufVxuXG4vKipcbiAqIENyZWF0ZSBiYXNlNjQgaW1hZ2UgZGF0YSB1cmwgZm9yIGNhdGVnb3JpY2FsIGNvbG9ybWFwXG4gKiBAcGFyYW0gY2F0ZWdvcmljYWxPcHRpb25zIC0gY29sb3IgbWFwIGNvbmZpZ3VyYXRpb24gYW5kIG1pbi1tYXggdmFsdWVzIG9mIGNhdGVnb3JpY2FsIGJhbmRcbiAqIEByZXR1cm5zIGJhc2U2NCBpbWFnZSBkYXRhIHVybFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2F0ZWdvcmljYWxDb2xvcm1hcERhdGFVcmwoXG4gIGNhdGVnb3JpY2FsT3B0aW9uczogQ2F0ZWdvcmljYWxDb2xvcm1hcE9wdGlvbnNcbik6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCBiaXRtYXAgPSBnZW5lcmF0ZUNhdGVnb3JpY2FsQml0bWFwQXJyYXkoY2F0ZWdvcmljYWxPcHRpb25zKTtcbiAgaWYgKCFiaXRtYXApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICByZXR1cm4gZ2V0SW1hZ2VEYXRhVVJMKGJpdG1hcCwgQ0FURUdPUklDQUxfVEVYVFVSRV9XSURUSCwgMSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkVGVycmFpbihwcm9wczoge1xuICBpbmRleDoge3g6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXJ9O1xuICBzaWduYWw6IEFib3J0U2lnbmFsO1xuICByYXN0ZXJUaWxlU2VydmVyVXJsczogc3RyaW5nW107XG59KTogUHJvbWlzZTxUZXJyYWluRGF0YT4ge1xuICBjb25zdCB7XG4gICAgaW5kZXg6IHt4LCB5LCB6fSxcbiAgICBzaWduYWwsXG4gICAgcmFzdGVyVGlsZVNlcnZlclVybHNcbiAgfSA9IHByb3BzO1xuXG4gIGNvbnN0IG1lc2hNYXhFcnJvciA9IGdldE1lc2hNYXhFcnJvcih6LCBNRVNIX01VTFRJUExJRVIpO1xuICBjb25zdCB0ZXJyYWluVXJsID0gZ2V0VGVycmFpblVybChyYXN0ZXJUaWxlU2VydmVyVXJscywgeCwgeSwgeiwgbWVzaE1heEVycm9yKTtcbiAgY29uc3QgbG9hZGVyT3B0aW9ucyA9IGdldExvYWRlck9wdGlvbnMoKTtcblxuICByZXR1cm4gbG9hZCh0ZXJyYWluVXJsLCBRdWFudGl6ZWRNZXNoTG9hZGVyLCB7XG4gICAgZmV0Y2g6IHtzaWduYWx9LFxuICAgICdxdWFudGl6ZWQtbWVzaCc6IHtcbiAgICAgIC4uLmxvYWRlck9wdGlvbnNbJ3F1YW50aXplZC1tZXNoJ10sXG4gICAgICBza2lydEhlaWdodDogbWVzaE1heEVycm9yICogMlxuICAgIH1cbiAgfSkgYXMgUHJvbWlzZTxUZXJyYWluRGF0YT47XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT0EsSUFBQUEsS0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBRUEsSUFBQUksVUFBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssT0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sU0FBQSxHQUFBTixPQUFBO0FBTUEsSUFBQU8sZ0JBQUEsR0FBQVAsT0FBQTtBQVNBLElBQUFRLElBQUEsR0FBQVIsT0FBQTtBQU1lLFNBQUFTLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBWixDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxDQUFBLFdBQUFXLFNBQUEsQ0FBQVosQ0FBQSxJQUFBWSxTQUFBLENBQUFaLENBQUEsUUFBQUEsQ0FBQSxPQUFBRixPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FBQSxPQUFBYSxPQUFBLFdBQUFkLENBQUEsUUFBQWUsZ0JBQUEsYUFBQWhCLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLENBQUFELENBQUEsU0FBQUUsTUFBQSxDQUFBYyx5QkFBQSxHQUFBZCxNQUFBLENBQUFlLGdCQUFBLENBQUFsQixDQUFBLEVBQUFHLE1BQUEsQ0FBQWMseUJBQUEsQ0FBQWYsQ0FBQSxLQUFBSCxPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FBQSxHQUFBYSxPQUFBLFdBQUFkLENBQUEsSUFBQUUsTUFBQSxDQUFBZ0IsY0FBQSxDQUFBbkIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQU4sQ0FBQSxFQUFBRCxDQUFBLGlCQUFBRCxDQUFBLElBbkNmO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFnQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTb0IsZUFBZUEsQ0FBQ0MsTUFBa0IsRUFBRUMsS0FBYSxFQUFFQyxNQUFjLEVBQWlCO0VBQ2hHLElBQU1DLE1BQU0sR0FBR0MsUUFBUSxDQUFDQyxhQUFhLENBQUMsUUFBUSxDQUFDO0VBQy9DLElBQUksQ0FBQ0YsTUFBTSxDQUFDRyxVQUFVLEVBQUU7SUFDdEIsT0FBTyxJQUFJO0VBQ2I7RUFDQUgsTUFBTSxDQUFDSSxZQUFZLENBQUMsT0FBTyxLQUFBQyxNQUFBLENBQUtQLEtBQUssQ0FBRSxDQUFDO0VBQ3hDRSxNQUFNLENBQUNJLFlBQVksQ0FBQyxRQUFRLEtBQUFDLE1BQUEsQ0FBS04sTUFBTSxDQUFFLENBQUM7RUFDMUMsSUFBTU8sR0FBRyxHQUFHTixNQUFNLENBQUNHLFVBQVUsQ0FBQyxJQUFJLENBQUM7RUFDbkMsSUFBSSxDQUFDRyxHQUFHLEVBQUU7SUFDUixPQUFPLElBQUk7RUFDYjtFQUNBLEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHVCxLQUFLLEVBQUVTLENBQUMsRUFBRSxFQUFFO0lBQzlCLElBQUFDLGdCQUFBLEdBQXFCWCxNQUFNLENBQUNZLFFBQVEsQ0FBQ0YsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7TUFBQUcsaUJBQUEsT0FBQUMsZUFBQSxhQUFBSCxnQkFBQTtNQUEvQy9CLENBQUMsR0FBQWlDLGlCQUFBO01BQUVFLENBQUMsR0FBQUYsaUJBQUE7TUFBRUcsQ0FBQyxHQUFBSCxpQkFBQTtNQUFFSSxDQUFDLEdBQUFKLGlCQUFBO0lBQ2pCLElBQUlJLENBQUMsS0FBSyxDQUFDLEVBQUU7TUFDWFIsR0FBRyxDQUFDUyxTQUFTLFVBQUFWLE1BQUEsQ0FBVTVCLENBQUMsUUFBQTRCLE1BQUEsQ0FBS08sQ0FBQyxRQUFBUCxNQUFBLENBQUtRLENBQUMsTUFBRztNQUN2Q1AsR0FBRyxDQUFDVSxRQUFRLENBQUNULENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxQjtFQUNGO0VBQ0EsT0FBT1AsTUFBTSxDQUFDaUIsU0FBUyxDQUFDLFdBQVcsQ0FBQztBQUN0Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFNQyxlQUFlLEdBQUcsR0FBRzs7QUFFM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQSxTQU9zQkMsVUFBVUEsQ0FBQUMsRUFBQSxFQUFBQyxHQUFBLEVBQUFDLEdBQUE7RUFBQSxPQUFBQyxXQUFBLENBQUFwQyxLQUFBLE9BQUFFLFNBQUE7QUFBQTtBQW9CaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVBBLFNBQUFrQyxZQUFBO0VBQUFBLFdBQUEsT0FBQUMsa0JBQUEsMkJBQUFDLFlBQUEsWUFBQUMsSUFBQSxDQXBCTyxTQUFBQyxRQUNMQyxhQUFpQyxFQUNqQ0MsVUFBa0IsRUFDbEJDLGtCQUE4QztJQUFBLElBQUFDLGtCQUFBLEVBQUFDLG1CQUFBLEVBQUFDLFVBQUEsRUFBQUMsUUFBQSxFQUFBQyxhQUFBO0lBQUEsT0FBQVYsWUFBQSxZQUFBVyxJQUFBLFVBQUFDLFNBQUFDLFFBQUE7TUFBQSxrQkFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQUUsSUFBQTtRQUFBO1VBQUFGLFFBQUEsQ0FBQUUsSUFBQTtVQUFBLE9BR1RDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLENBQy9DQyxpQkFBaUIsQ0FBQ2YsYUFBYSxDQUFDLEVBQy9CQyxVQUFVLEtBQUtlLCtCQUF1QixJQUFJQyxvQkFBb0IsQ0FBQ2hCLFVBQVUsQ0FBQyxJQUFLLElBQUksQ0FDckYsQ0FBQztRQUFBO1VBQUFFLGtCQUFBLEdBQUFPLFFBQUEsQ0FBQVEsSUFBQTtVQUFBZCxtQkFBQSxPQUFBckIsZUFBQSxhQUFBb0Isa0JBQUE7VUFIS0UsVUFBVSxHQUFBRCxtQkFBQTtVQUFFRSxRQUFRLEdBQUFGLG1CQUFBO1VBSXZCRyxhQUFhLEdBQUdELFFBQVE7VUFDNUIsSUFBSUwsVUFBVSxLQUFLZSwrQkFBdUIsRUFBRTtZQUMxQ1QsYUFBYSxHQUFHLElBQUFZLDRDQUFrQyxFQUFDakIsa0JBQWtCLENBQUM7VUFDeEU7VUFBQyxPQUFBUSxRQUFBLENBQUFVLE1BQUEsV0FBQTVELGFBQUEsQ0FBQUEsYUFBQSxLQUVJNkMsVUFBVTtZQUNiRSxhQUFhLEVBQWJBO1VBQWE7UUFBQTtRQUFBO1VBQUEsT0FBQUcsUUFBQSxDQUFBVyxJQUFBO01BQUE7SUFBQSxHQUFBdEIsT0FBQTtFQUFBLENBRWhCO0VBQUEsT0FBQUosV0FBQSxDQUFBcEMsS0FBQSxPQUFBRSxTQUFBO0FBQUE7QUFVRCxJQUFNd0Qsb0JBQXNGLEdBQzFGLElBQUFLLGtCQUFPLEVBQUMsVUFBQ3JCLFVBQWtCLEVBQUs7RUFDOUIsSUFBSUEsVUFBVSxLQUFLZSwrQkFBdUIsRUFBRTtJQUMxQyxPQUFPLElBQUk7RUFDYixDQUFDLE1BQU07SUFDTCxPQUFPTyxZQUFZLENBQUN0QixVQUFVLENBQUM7RUFDakM7QUFDRixDQUFDLENBQUM7O0FBRUo7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVZBLFNBV2VzQixZQUFZQSxDQUFBQyxHQUFBO0VBQUEsT0FBQUMsYUFBQSxDQUFBbEUsS0FBQSxPQUFBRSxTQUFBO0FBQUE7QUFTM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBLFNBQUFnRSxjQUFBO0VBQUFBLGFBQUEsT0FBQTdCLGtCQUFBLDJCQUFBQyxZQUFBLFlBQUFDLElBQUEsQ0FUQSxTQUFBNEIsU0FBNEJ6QixVQUFrQjtJQUFBLElBQUEwQixPQUFBO0lBQUEsT0FBQTlCLFlBQUEsWUFBQVcsSUFBQSxVQUFBb0IsVUFBQUMsU0FBQTtNQUFBLGtCQUFBQSxTQUFBLENBQUFsQixJQUFBLEdBQUFrQixTQUFBLENBQUFqQixJQUFBO1FBQUE7VUFBQSxJQUN2Q1gsVUFBVTtZQUFBNEIsU0FBQSxDQUFBakIsSUFBQTtZQUFBO1VBQUE7VUFBQSxPQUFBaUIsU0FBQSxDQUFBVCxNQUFBLFdBQ04sSUFBSTtRQUFBO1VBQUFTLFNBQUEsQ0FBQWpCLElBQUE7VUFBQSxPQUdTa0IsZUFBZSxDQUFDO1lBQUNDLEdBQUcsRUFBRUMsK0JBQU8sQ0FBQ0MsY0FBYyxDQUFDaEMsVUFBVSxDQUFDO1lBQUVpQyxPQUFPLEVBQUUsQ0FBQztVQUFDLENBQUMsQ0FBQztRQUFBO1VBQXZGUCxPQUFPLEdBQUFFLFNBQUEsQ0FBQVgsSUFBQTtVQUFBLE9BQUFXLFNBQUEsQ0FBQVQsTUFBQSxXQUNOLElBQUFlLG1CQUFTLEVBQUNSLE9BQU8sQ0FBQ0ksR0FBRyxFQUFFSyxxQ0FBMkIsRUFBRVQsT0FBTyxDQUFDTyxPQUFPLENBQUM7UUFBQTtRQUFBO1VBQUEsT0FBQUwsU0FBQSxDQUFBUixJQUFBO01BQUE7SUFBQSxHQUFBSyxRQUFBO0VBQUEsQ0FDNUU7RUFBQSxPQUFBRCxhQUFBLENBQUFsRSxLQUFBLE9BQUFFLFNBQUE7QUFBQTtBQUFBLFNBT3FCNEUsb0JBQW9CQSxDQUFBQyxHQUFBO0VBQUEsT0FBQUMscUJBQUEsQ0FBQWhGLEtBQUEsT0FBQUUsU0FBQTtBQUFBLEVBYTFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUZBLFNBQUE4RSxzQkFBQTtFQUFBQSxxQkFBQSxPQUFBM0Msa0JBQUEsMkJBQUFDLFlBQUEsWUFBQUMsSUFBQSxDQWhCTyxTQUFBMEMsU0FDTE4sT0FBeUI7SUFBQSxJQUFBTyxZQUFBLEVBQUFkLE9BQUE7SUFBQSxPQUFBOUIsWUFBQSxZQUFBVyxJQUFBLFVBQUFrQyxVQUFBQyxTQUFBO01BQUEsa0JBQUFBLFNBQUEsQ0FBQWhDLElBQUEsR0FBQWdDLFNBQUEsQ0FBQS9CLElBQUE7UUFBQTtVQUVsQjZCLFlBQVksR0FBSVAsT0FBTyxDQUF2Qk8sWUFBWTtVQUFBLE1BRWZBLFlBQVksQ0FBQy9FLE1BQU0sS0FBSyxDQUFDO1lBQUFpRixTQUFBLENBQUEvQixJQUFBO1lBQUE7VUFBQTtVQUFBK0IsU0FBQSxDQUFBL0IsSUFBQTtVQUFBLE9BQ0xnQyx5QkFBeUIsQ0FBQ1YsT0FBTyxDQUFDO1FBQUE7VUFBbERQLE9BQU8sR0FBQWdCLFNBQUEsQ0FBQXpCLElBQUE7VUFBQSxPQUFBeUIsU0FBQSxDQUFBdkIsTUFBQSxXQUNOTyxPQUFPLEdBQUcsQ0FBQ0EsT0FBTyxDQUFDLEdBQUcsSUFBSTtRQUFBO1VBQUFnQixTQUFBLENBQUEvQixJQUFBO1VBQUEsT0FHdEJpQyx3QkFBd0IsQ0FBQ1gsT0FBTyxDQUFDO1FBQUE7VUFBQSxPQUFBUyxTQUFBLENBQUF2QixNQUFBLFdBQUF1QixTQUFBLENBQUF6QixJQUFBO1FBQUE7UUFBQTtVQUFBLE9BQUF5QixTQUFBLENBQUF0QixJQUFBO01BQUE7SUFBQSxHQUFBbUIsUUFBQTtFQUFBLENBQy9DO0VBQUEsT0FBQUQscUJBQUEsQ0FBQWhGLEtBQUEsT0FBQUUsU0FBQTtBQUFBO0FBQUEsU0FRcUJzRCxpQkFBaUJBLENBQUErQixHQUFBO0VBQUEsT0FBQUMsa0JBQUEsQ0FBQXhGLEtBQUEsT0FBQUUsU0FBQTtBQUFBO0FBSXZDO0FBQ0E7QUFDQTtBQUZBLFNBQUFzRixtQkFBQTtFQUFBQSxrQkFBQSxPQUFBbkQsa0JBQUEsMkJBQUFDLFlBQUEsWUFBQUMsSUFBQSxDQUpPLFNBQUFrRCxTQUFpQ0MsUUFBNEI7SUFBQSxPQUFBcEQsWUFBQSxZQUFBVyxJQUFBLFVBQUEwQyxVQUFBQyxTQUFBO01BQUEsa0JBQUFBLFNBQUEsQ0FBQXhDLElBQUEsR0FBQXdDLFNBQUEsQ0FBQXZDLElBQUE7UUFBQTtVQUFBLE9BQUF1QyxTQUFBLENBQUEvQixNQUFBLFdBQzNENkIsUUFBUSxDQUFDdkYsTUFBTSxLQUFLLENBQUMsR0FBRzBGLG1CQUFtQixDQUFDSCxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBR0ksa0JBQWtCLENBQUNKLFFBQVEsQ0FBQztRQUFBO1FBQUE7VUFBQSxPQUFBRSxTQUFBLENBQUE5QixJQUFBO01BQUE7SUFBQSxHQUFBMkIsUUFBQTtFQUFBLENBQy9GO0VBQUEsT0FBQUQsa0JBQUEsQ0FBQXhGLEtBQUEsT0FBQUUsU0FBQTtBQUFBO0FBQUEsU0FLcUJxRSxlQUFlQSxDQUFBd0IsR0FBQTtFQUFBLE9BQUFDLGdCQUFBLENBQUFoRyxLQUFBLE9BQUFFLFNBQUE7QUFBQTtBQXFCckM7QUFDQTtBQUNBO0FBQ0E7QUFBQSxTQUFBOEYsaUJBQUE7RUFBQUEsZ0JBQUEsT0FBQTNELGtCQUFBLDJCQUFBQyxZQUFBLFlBQUFDLElBQUEsQ0F4Qk8sU0FBQTBELFNBQUFDLElBQUE7SUFBQSxJQUFBMUIsR0FBQSxFQUFBMkIsTUFBQSxFQUFBeEIsT0FBQSxFQUFBeUIsWUFBQSxFQUFBQyxPQUFBLEVBQUFDLDJCQUFBLEVBQUFDLFVBQUEsRUFBQUMsYUFBQSxFQUFBQyxjQUFBLEVBQUFDLFFBQUE7SUFBQSxPQUFBcEUsWUFBQSxZQUFBVyxJQUFBLFVBQUEwRCxVQUFBQyxTQUFBO01BQUEsa0JBQUFBLFNBQUEsQ0FBQXhELElBQUEsR0FBQXdELFNBQUEsQ0FBQXZELElBQUE7UUFBQTtVQUNMbUIsR0FBRyxHQUFBMEIsSUFBQSxDQUFIMUIsR0FBRyxFQUNIMkIsTUFBTSxHQUFBRCxJQUFBLENBQU5DLE1BQU0sRUFDTnhCLE9BQU8sR0FBQXVCLElBQUEsQ0FBUHZCLE9BQU8sRUFBQXlCLFlBQUEsR0FBQUYsSUFBQSxDQUNQRyxPQUFPLEVBQVBBLE9BQU8sR0FBQUQsWUFBQSxjQUFHLElBQUksR0FBQUEsWUFBQSxFQUNkRSwyQkFBMkIsR0FBQUosSUFBQSxDQUEzQkksMkJBQTJCO1VBUXJCQyxVQUFVLEdBQUcvQixHQUFHO1VBQ2hCZ0MsYUFBYSxHQUFHTCxNQUFNLGFBQU5BLE1BQU0sY0FBTkEsTUFBTSxHQUFJLElBQUlVLGVBQWUsQ0FBQyxDQUFDO1VBQy9DSixjQUFjLEdBQUc5QixPQUFPO1VBRXhCK0IsUUFBUSxHQUFHRixhQUFhLE1BQUF0RixNQUFBLENBQU1xRixVQUFVLE9BQUFyRixNQUFBLENBQUlzRixhQUFhLENBQUNNLFFBQVEsQ0FBQyxDQUFDLElBQUtQLFVBQVU7VUFBQSxPQUFBSyxTQUFBLENBQUEvQyxNQUFBLFdBQ2xGO1lBQUNXLEdBQUcsRUFBRWtDLFFBQVE7WUFBRS9CLE9BQU8sRUFBRThCLGNBQWM7WUFBRUosT0FBTyxFQUFQQSxPQUFPO1lBQUVDLDJCQUEyQixFQUEzQkE7VUFBMkIsQ0FBQztRQUFBO1FBQUE7VUFBQSxPQUFBTSxTQUFBLENBQUE5QyxJQUFBO01BQUE7SUFBQSxHQUFBbUMsUUFBQTtFQUFBLENBQ3RGO0VBQUEsT0FBQUQsZ0JBQUEsQ0FBQWhHLEtBQUEsT0FBQUUsU0FBQTtBQUFBO0FBQUEsU0FNY21GLHlCQUF5QkEsQ0FBQTBCLEdBQUE7RUFBQSxPQUFBQywwQkFBQSxDQUFBaEgsS0FBQSxPQUFBRSxTQUFBO0FBQUE7QUE0RHhDO0FBQ0E7QUFDQTtBQUZBLFNBQUE4RywyQkFBQTtFQUFBQSwwQkFBQSxPQUFBM0Usa0JBQUEsMkJBQUFDLFlBQUEsWUFBQUMsSUFBQSxDQTVEQSxTQUFBMEUsU0FDRXRDLE9BQXlCO0lBQUEsSUFBQXVDLElBQUEsRUFBQWhDLFlBQUEsRUFBQWlDLGVBQUEsRUFBQUMsTUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxjQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLGtCQUFBLEVBQUFDLFNBQUEsRUFBQUMsT0FBQSxFQUFBQyxVQUFBLEVBQUF4QixPQUFBLEVBQUE3QixHQUFBLEVBQUFzRCxTQUFBLEVBQUF4QiwyQkFBQTtJQUFBLE9BQUFoRSxZQUFBLFlBQUFXLElBQUEsVUFBQThFLFVBQUFDLFNBQUE7TUFBQSxrQkFBQUEsU0FBQSxDQUFBNUUsSUFBQSxHQUFBNEUsU0FBQSxDQUFBM0UsSUFBQTtRQUFBO1VBR3ZCNkQsSUFBSSxHQVVGdkMsT0FBTyxDQVZUdUMsSUFBSSxFQUNKaEMsWUFBWSxHQVNWUCxPQUFPLENBVFRPLFlBQVksRUFDWmlDLGVBQWUsR0FRYnhDLE9BQU8sQ0FSVHdDLGVBQWUsRUFDZkMsTUFBTSxHQU9KekMsT0FBTyxDQVBUeUMsTUFBTSxFQUNOQyxnQkFBZ0IsR0FNZDFDLE9BQU8sQ0FOVDBDLGdCQUFnQixFQUFBQyxjQUFBLEdBTWQzQyxPQUFPLENBTFRzRCxLQUFLLEVBQUdWLENBQUMsR0FBQUQsY0FBQSxDQUFEQyxDQUFDLEVBQUVDLENBQUMsR0FBQUYsY0FBQSxDQUFERSxDQUFDLEVBQUVDLENBQUMsR0FBQUgsY0FBQSxDQUFERyxDQUFDLEVBQ2ZDLGtCQUFrQixHQUloQi9DLE9BQU8sQ0FKVCtDLGtCQUFrQixFQUNsQkMsU0FBUyxHQUdQaEQsT0FBTyxDQUhUZ0QsU0FBUyxFQUNUQyxPQUFPLEdBRUxqRCxPQUFPLENBRlRpRCxPQUFPLEVBQ1BDLFVBQVUsR0FDUmxELE9BQU8sQ0FEVGtELFVBQVU7VUFHTnhCLE9BQU8sR0FBRyxJQUFJLEVBRXBCO1VBQ0k3QixHQUFrQixHQUFHLElBQUk7VUFDekJzRCxTQUFpQyxHQUFHLElBQUlqQixlQUFlLENBQUMsQ0FBQztVQUN6RFAsMkJBQTRDLEdBQUdhLGVBQWU7VUFBQSxNQUM5REUsZ0JBQWdCLElBQUlILElBQUksQ0FBQ2dCLElBQUksS0FBSyxTQUFTO1lBQUFGLFNBQUEsQ0FBQTNFLElBQUE7WUFBQTtVQUFBO1VBQzdDeUUsU0FBUyxHQUFHLElBQUFLLHdCQUFtQixFQUFDO1lBQzlCakIsSUFBSSxFQUFKQSxJQUFJO1lBQ0pRLGtCQUFrQixFQUFsQkEsa0JBQWtCO1lBQ2xCQyxTQUFTLEVBQVRBLFNBQVM7WUFDVEMsT0FBTyxFQUFQQSxPQUFPO1lBQ1BRLElBQUksRUFBRS9CLE9BQU87WUFDYm5CLFlBQVksRUFBWkEsWUFBWTtZQUNaMkMsVUFBVSxFQUFWQTtVQUNGLENBQUMsQ0FBQztVQUNGckQsR0FBRyxHQUFHLElBQUE2RCxrQkFBYSxFQUFDO1lBQUNuQixJQUFJLEVBQUpBLElBQUk7WUFBRUcsZ0JBQWdCLEVBQWhCQSxnQkFBZ0I7WUFBRUUsQ0FBQyxFQUFEQSxDQUFDO1lBQUVDLENBQUMsRUFBREEsQ0FBQztZQUFFQyxDQUFDLEVBQURBO1VBQUMsQ0FBQyxDQUFDO1VBQUNPLFNBQUEsQ0FBQTNFLElBQUE7VUFBQTtRQUFBO1VBQUEsTUFDOUM2RCxJQUFJLENBQUNnQixJQUFJLEtBQUssU0FBUztZQUFBRixTQUFBLENBQUEzRSxJQUFBO1lBQUE7VUFBQTtVQUNoQztVQUNBeUUsU0FBUyxHQUFHLElBQUFRLDBCQUFxQixFQUFDO1lBQ2hDcEIsSUFBSSxFQUFKQSxJQUFJO1lBQ0pxQixXQUFXLEVBQUVyRCxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQzVCaUMsZUFBZSxFQUFmQSxlQUFlO1lBQ2ZpQixJQUFJLEVBQUUvQjtVQUNSLENBQUMsQ0FBQztVQUNGN0IsR0FBRyxHQUFHLElBQUE2RCxrQkFBYSxFQUFDO1lBQUNuQixJQUFJLEVBQUpBLElBQUk7WUFBRUcsZ0JBQWdCLEVBQWhCQSxnQkFBZ0I7WUFBRUUsQ0FBQyxFQUFEQSxDQUFDO1lBQUVDLENBQUMsRUFBREEsQ0FBQztZQUFFQyxDQUFDLEVBQURBO1VBQUMsQ0FBQyxDQUFDO1VBQ3REbkIsMkJBQTJCLEdBQUcsSUFBSTtVQUFDMEIsU0FBQSxDQUFBM0UsSUFBQTtVQUFBO1FBQUE7VUFBQSxPQUFBMkUsU0FBQSxDQUFBbkUsTUFBQSxXQUU1QixJQUFJO1FBQUE7VUFBQSxJQUdSVyxHQUFHO1lBQUF3RCxTQUFBLENBQUEzRSxJQUFBO1lBQUE7VUFBQTtVQUFBLE9BQUEyRSxTQUFBLENBQUFuRSxNQUFBLFdBQ0MsSUFBSTtRQUFBO1VBQUFtRSxTQUFBLENBQUEzRSxJQUFBO1VBQUEsT0FHQWtCLGVBQWUsQ0FBQztZQUMzQkMsR0FBRyxFQUFIQSxHQUFHO1lBQ0gyQixNQUFNLEVBQUUyQixTQUFTO1lBQ2pCbkQsT0FBTyxFQUFFO2NBQUN5QyxNQUFNLEVBQU5BO1lBQU0sQ0FBQztZQUNqQmYsT0FBTyxFQUFQQSxPQUFPO1lBQ1BDLDJCQUEyQixFQUEzQkE7VUFDRixDQUFDLENBQUM7UUFBQTtVQUFBLE9BQUEwQixTQUFBLENBQUFuRSxNQUFBLFdBQUFtRSxTQUFBLENBQUFyRSxJQUFBO1FBQUE7UUFBQTtVQUFBLE9BQUFxRSxTQUFBLENBQUFsRSxJQUFBO01BQUE7SUFBQSxHQUFBbUQsUUFBQTtFQUFBLENBQ0g7RUFBQSxPQUFBRCwwQkFBQSxDQUFBaEgsS0FBQSxPQUFBRSxTQUFBO0FBQUE7QUFBQSxTQUtjb0Ysd0JBQXdCQSxDQUFBa0QsR0FBQTtFQUFBLE9BQUFDLHlCQUFBLENBQUF6SSxLQUFBLE9BQUFFLFNBQUE7QUFBQTtBQWlFdkM7QUFDQTtBQUNBO0FBRkEsU0FBQXVJLDBCQUFBO0VBQUFBLHlCQUFBLE9BQUFwRyxrQkFBQSwyQkFBQUMsWUFBQSxZQUFBQyxJQUFBLENBakVBLFNBQUFtRyxTQUNFL0QsT0FBeUI7SUFBQSxJQUFBdUMsSUFBQSxFQUFBaEMsWUFBQSxFQUFBaUMsZUFBQSxFQUFBQyxNQUFBLEVBQUFDLGdCQUFBLEVBQUFLLGtCQUFBLEVBQUFDLFNBQUEsRUFBQUMsT0FBQSxFQUFBZSxlQUFBLEVBQUFwQixDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxFQUFBSSxVQUFBLEVBQUFlLFdBQUEsRUFBQUMsV0FBQTtJQUFBLE9BQUF2RyxZQUFBLFlBQUFXLElBQUEsVUFBQTZGLFVBQUFDLFNBQUE7TUFBQSxrQkFBQUEsU0FBQSxDQUFBM0YsSUFBQSxHQUFBMkYsU0FBQSxDQUFBMUYsSUFBQTtRQUFBO1VBR3ZCNkQsSUFBSSxHQVVGdkMsT0FBTyxDQVZUdUMsSUFBSSxFQUNKaEMsWUFBWSxHQVNWUCxPQUFPLENBVFRPLFlBQVksRUFDWmlDLGVBQWUsR0FRYnhDLE9BQU8sQ0FSVHdDLGVBQWUsRUFDZkMsTUFBTSxHQU9KekMsT0FBTyxDQVBUeUMsTUFBTSxFQUNOQyxnQkFBZ0IsR0FNZDFDLE9BQU8sQ0FOVDBDLGdCQUFnQixFQUNoQkssa0JBQWtCLEdBS2hCL0MsT0FBTyxDQUxUK0Msa0JBQWtCLEVBQ2xCQyxTQUFTLEdBSVBoRCxPQUFPLENBSlRnRCxTQUFTLEVBQ1RDLE9BQU8sR0FHTGpELE9BQU8sQ0FIVGlELE9BQU8sRUFBQWUsZUFBQSxHQUdMaEUsT0FBTyxDQUZUc0QsS0FBSyxFQUFHVixDQUFDLEdBQUFvQixlQUFBLENBQURwQixDQUFDLEVBQUVDLENBQUMsR0FBQW1CLGVBQUEsQ0FBRG5CLENBQUMsRUFBRUMsQ0FBQyxHQUFBa0IsZUFBQSxDQUFEbEIsQ0FBQyxFQUNmSSxVQUFVLEdBQ1JsRCxPQUFPLENBRFRrRCxVQUFVLEVBR1o7VUFDSWUsV0FBbUYsR0FBRyxFQUFFLEVBRTVGO1VBQ0E7VUFDQTtVQUNNQyxXQUFzQixHQUFHLElBQUlHLEtBQUssQ0FBQzlELFlBQVksQ0FBQy9FLE1BQU0sQ0FBQyxDQUFDOEksSUFBSSxDQUFDLEtBQUssQ0FBQztVQUN6RUosV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUk7VUFFckIsSUFBSXhCLGdCQUFnQixJQUFJSCxJQUFJLENBQUNnQixJQUFJLEtBQUssU0FBUyxFQUFFO1lBQy9DVSxXQUFXLEdBQUdNLEdBQUcsQ0FBQ2hFLFlBQVksRUFBRTJELFdBQVcsQ0FBQyxDQUFDTSxHQUFHLENBQUMsVUFBQUMsS0FBQSxFQUFxQjtjQUFBLElBQUFDLEtBQUEsT0FBQTdILGVBQUEsYUFBQTRILEtBQUE7Z0JBQW5CRSxPQUFPLEdBQUFELEtBQUE7Z0JBQUVqQixJQUFJLEdBQUFpQixLQUFBO2NBQzlELElBQU1sRCxNQUFNLEdBQUcsSUFBQWdDLHdCQUFtQixFQUFDO2dCQUNqQ2pCLElBQUksRUFBSkEsSUFBSTtnQkFDSlEsa0JBQWtCLEVBQWxCQSxrQkFBa0I7Z0JBQ2xCQyxTQUFTLEVBQVRBLFNBQVM7Z0JBQ1RDLE9BQU8sRUFBUEEsT0FBTztnQkFDUFEsSUFBSSxFQUFKQSxJQUFJO2dCQUNKbEQsWUFBWSxFQUFFLENBQUNvRSxPQUFPLENBQUM7Z0JBQ3ZCekIsVUFBVSxFQUFWQTtjQUNGLENBQUMsQ0FBQztjQUNGLElBQU1yRCxHQUFHLEdBQUcsSUFBQTZELGtCQUFhLEVBQUM7Z0JBQUNuQixJQUFJLEVBQUpBLElBQUk7Z0JBQUVHLGdCQUFnQixFQUFoQkEsZ0JBQWdCO2dCQUFFRSxDQUFDLEVBQURBLENBQUM7Z0JBQUVDLENBQUMsRUFBREEsQ0FBQztnQkFBRUMsQ0FBQyxFQUFEQTtjQUFDLENBQUMsQ0FBQztjQUM1RCxPQUFPO2dCQUFDakQsR0FBRyxFQUFIQSxHQUFHO2dCQUFFMkIsTUFBTSxFQUFOQTtjQUFNLENBQUM7WUFDdEIsQ0FBQyxDQUFDO1VBQ0osQ0FBQyxNQUFNLElBQUllLElBQUksQ0FBQ2dCLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDbENVLFdBQVcsR0FBR1csSUFBSSxDQUFDckUsWUFBWSxFQUFFaUMsZUFBZSxFQUFFMEIsV0FBVyxDQUFDLENBQUNNLEdBQUcsQ0FDaEUsVUFBQUssS0FBQSxFQUFnQztjQUFBLElBQUFDLEtBQUEsT0FBQWpJLGVBQUEsYUFBQWdJLEtBQUE7Z0JBQTlCRixPQUFPLEdBQUFHLEtBQUE7Z0JBQUVDLFNBQVMsR0FBQUQsS0FBQTtnQkFBRXJCLElBQUksR0FBQXFCLEtBQUE7Y0FDeEIsSUFBTXRELE1BQU0sR0FBRyxJQUFBbUMsMEJBQXFCLEVBQUM7Z0JBQ25DcEIsSUFBSSxFQUFKQSxJQUFJO2dCQUNKcUIsV0FBVyxFQUFFZSxPQUFPO2dCQUNwQm5DLGVBQWUsRUFBRSxDQUFDdUMsU0FBUyxDQUFDO2dCQUM1QnRCLElBQUksRUFBSkE7Y0FDRixDQUFDLENBQUM7Y0FDRixJQUFNNUQsR0FBRyxHQUFHLElBQUE2RCxrQkFBYSxFQUFDO2dCQUFDbkIsSUFBSSxFQUFKQSxJQUFJO2dCQUFFRyxnQkFBZ0IsRUFBaEJBLGdCQUFnQjtnQkFBRUUsQ0FBQyxFQUFEQSxDQUFDO2dCQUFFQyxDQUFDLEVBQURBLENBQUM7Z0JBQUVDLENBQUMsRUFBREE7Y0FBQyxDQUFDLENBQUM7Y0FDNUQsT0FBTztnQkFBQ2pELEdBQUcsRUFBSEEsR0FBRztnQkFBRTJCLE1BQU0sRUFBTkE7Y0FBTSxDQUFDO1lBQ3RCLENBQ0YsQ0FBQztVQUNIO1VBQUMsS0FFR3dELGtCQUFrQixDQUFDZixXQUFXLENBQUM7WUFBQUcsU0FBQSxDQUFBMUYsSUFBQTtZQUFBO1VBQUE7VUFBQTBGLFNBQUEsQ0FBQTFGLElBQUE7VUFBQSxPQUNwQkMsT0FBTyxDQUFDQyxHQUFHLENBQ3RCcUYsV0FBVyxDQUFDTyxHQUFHLENBQUMsVUFBQS9FLE9BQU87WUFBQSxJQUFBd0YsZ0JBQUE7WUFBQSxPQUNyQnJGLGVBQWUsQ0FBQXRFLGFBQUEsQ0FBQUEsYUFBQSxLQUFLbUUsT0FBTztjQUFFTyxPQUFPLEdBQUFpRixnQkFBQSxHQUFFeEYsT0FBTyxDQUFDTyxPQUFPLGNBQUFpRixnQkFBQSxjQUFBQSxnQkFBQSxHQUFJO2dCQUFDeEMsTUFBTSxFQUFOQTtjQUFNO1lBQUMsRUFBQyxDQUFDO1VBQUEsQ0FDckUsQ0FDRixDQUFDO1FBQUE7VUFBQSxPQUFBMkIsU0FBQSxDQUFBbEYsTUFBQSxXQUFBa0YsU0FBQSxDQUFBcEYsSUFBQTtRQUFBO1VBQUEsT0FBQW9GLFNBQUEsQ0FBQWxGLE1BQUEsV0FHSSxJQUFJO1FBQUE7UUFBQTtVQUFBLE9BQUFrRixTQUFBLENBQUFqRixJQUFBO01BQUE7SUFBQSxHQUFBNEUsUUFBQTtFQUFBLENBQ1o7RUFBQSxPQUFBRCx5QkFBQSxDQUFBekksS0FBQSxPQUFBRSxTQUFBO0FBQUE7QUFBQSxTQUtjMkYsbUJBQW1CQSxDQUFBZ0UsSUFBQTtFQUFBLE9BQUFDLG9CQUFBLENBQUE5SixLQUFBLE9BQUFFLFNBQUE7QUFBQTtBQWlCbEM7QUFDQTtBQUNBO0FBRkEsU0FBQTRKLHFCQUFBO0VBQUFBLG9CQUFBLE9BQUF6SCxrQkFBQSwyQkFBQUMsWUFBQSxZQUFBQyxJQUFBLENBakJBLFNBQUF3SCxTQUFtQzNGLE9BQXlCO0lBQUEsSUFBQTRGLFVBQUEsRUFBQUMsU0FBQSxFQUFBQyxnQkFBQTtJQUFBLE9BQUE1SCxZQUFBLFlBQUFXLElBQUEsVUFBQWtILFVBQUFDLFNBQUE7TUFBQSxrQkFBQUEsU0FBQSxDQUFBaEgsSUFBQSxHQUFBZ0gsU0FBQSxDQUFBL0csSUFBQTtRQUFBO1VBQUErRyxTQUFBLENBQUEvRyxJQUFBO1VBQUEsT0FDakMsSUFBQWdILHNCQUFZLEVBQUNqRyxPQUFPLEVBQUUsSUFBSSxDQUFDO1FBQUE7VUFBOUM0RixVQUFVLEdBQUFJLFNBQUEsQ0FBQXpHLElBQUE7VUFBQSxJQUVYcUcsVUFBVTtZQUFBSSxTQUFBLENBQUEvRyxJQUFBO1lBQUE7VUFBQTtVQUFBLE9BQUErRyxTQUFBLENBQUF2RyxNQUFBLFdBQ047WUFDTG1HLFVBQVUsRUFBVkE7VUFDRixDQUFDO1FBQUE7VUFHR0MsU0FBUyxHQUFJN0YsT0FBTyxDQUFDaUMsT0FBTyxJQUFJMkQsVUFBVSxDQUFDTSxHQUFHLENBQUMsQ0FBQyxJQUFLLElBQUk7VUFDM0RKLGdCQUFnQixHQUFHRixVQUFVO1VBQ2pDLElBQUk1RixPQUFPLENBQUNrQywyQkFBMkIsRUFBRTtZQUN2QzRELGdCQUFnQixHQUFHOUYsT0FBTyxDQUFDa0MsMkJBQTJCLENBQUM2QyxHQUFHLENBQUMsVUFBQS9ILENBQUM7Y0FBQSxPQUFJNEksVUFBVSxDQUFDNUksQ0FBQyxDQUFDO1lBQUEsRUFBQztVQUNoRjtVQUFDLE9BQUFnSixTQUFBLENBQUF2RyxNQUFBLFdBQ007WUFBQ21HLFVBQVUsRUFBRUUsZ0JBQWdCO1lBQUVELFNBQVMsRUFBVEE7VUFBUyxDQUFDO1FBQUE7UUFBQTtVQUFBLE9BQUFHLFNBQUEsQ0FBQXRHLElBQUE7TUFBQTtJQUFBLEdBQUFpRyxRQUFBO0VBQUEsQ0FDakQ7RUFBQSxPQUFBRCxvQkFBQSxDQUFBOUosS0FBQSxPQUFBRSxTQUFBO0FBQUE7QUFBQSxTQUtjNEYsa0JBQWtCQSxDQUFBeUUsSUFBQTtFQUFBLE9BQUFDLG1CQUFBLENBQUF4SyxLQUFBLE9BQUFFLFNBQUE7QUFBQTtBQVFqQztBQUNBO0FBQ0E7QUFGQSxTQUFBc0ssb0JBQUE7RUFBQUEsbUJBQUEsT0FBQW5JLGtCQUFBLDJCQUFBQyxZQUFBLFlBQUFDLElBQUEsQ0FSQSxTQUFBa0ksU0FBa0MvRSxRQUE0QjtJQUFBLElBQUFnRixTQUFBO0lBQUEsSUFBQUMsT0FBQSxFQUFBVixTQUFBLEVBQUFELFVBQUE7SUFBQSxPQUFBMUgsWUFBQSxZQUFBVyxJQUFBLFVBQUEySCxVQUFBQyxTQUFBO01BQUEsa0JBQUFBLFNBQUEsQ0FBQXpILElBQUEsR0FBQXlILFNBQUEsQ0FBQXhILElBQUE7UUFBQTtVQUFBd0gsU0FBQSxDQUFBeEgsSUFBQTtVQUFBLE9BQ3RDQyxPQUFPLENBQUNDLEdBQUcsQ0FBQ21DLFFBQVEsQ0FBQ3lELEdBQUcsQ0FBQyxVQUFBL0UsT0FBTztZQUFBLE9BQUksSUFBQWlHLHNCQUFZLEVBQUNqRyxPQUFPLEVBQUUsSUFBSSxDQUFDO1VBQUEsRUFBQyxDQUFDO1FBQUE7VUFBakZ1RyxPQUFPLEdBQUFFLFNBQUEsQ0FBQWxILElBQUE7VUFDYjtVQUNNc0csU0FBUyxHQUFHLEVBQUFTLFNBQUEsR0FBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxjQUFBRCxTQUFBLHVCQUFWQSxTQUFBLENBQVlKLEdBQUcsQ0FBQyxDQUFDLEtBQUksSUFBSTtVQUNyQ04sVUFBVSxHQUFHVyxPQUFPLENBQUNHLElBQUksQ0FBQyxDQUFDLENBQUNsTCxNQUFNLENBQUMsVUFBQW1MLElBQUk7WUFBQSxPQUFJQSxJQUFJLEtBQUssSUFBSTtVQUFBLEVBQUM7VUFBQSxPQUFBRixTQUFBLENBQUFoSCxNQUFBLFdBQ3hEO1lBQUNtRyxVQUFVLEVBQVZBLFVBQVU7WUFBRUMsU0FBUyxFQUFUQTtVQUFTLENBQUM7UUFBQTtRQUFBO1VBQUEsT0FBQVksU0FBQSxDQUFBL0csSUFBQTtNQUFBO0lBQUEsR0FBQTJHLFFBQUE7RUFBQSxDQUMvQjtFQUFBLE9BQUFELG1CQUFBLENBQUF4SyxLQUFBLE9BQUFFLFNBQUE7QUFBQTtBQUtELFNBQVNnSixHQUFHQSxDQUFTdkgsQ0FBTyxFQUFFRCxDQUFPLEVBQWM7RUFDakQsT0FBT0MsQ0FBQyxDQUFDd0gsR0FBRyxDQUFDLFVBQUM2QixDQUFDLEVBQUU1SixDQUFDO0lBQUEsT0FBSyxDQUFDNEosQ0FBQyxFQUFFdEosQ0FBQyxDQUFDTixDQUFDLENBQUMsQ0FBQztFQUFBLEVBQUM7QUFDbkM7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsU0FBU21JLElBQUlBLENBQWE1SCxDQUFPLEVBQUVELENBQU8sRUFBRXVKLENBQU8sRUFBa0I7RUFDbkUsT0FBT3RKLENBQUMsQ0FBQ3dILEdBQUcsQ0FBQyxVQUFDNkIsQ0FBQyxFQUFFNUosQ0FBQztJQUFBLE9BQUssQ0FBQzRKLENBQUMsRUFBRXRKLENBQUMsQ0FBQ04sQ0FBQyxDQUFDLEVBQUU2SixDQUFDLENBQUM3SixDQUFDLENBQUMsQ0FBQztFQUFBLEVBQUM7QUFDekM7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsU0FBU3VJLGtCQUFrQkEsQ0FDekJ1QixHQUF5RCxFQUNVO0VBQ25FLE9BQU9BLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDLFVBQUE1RCxDQUFDO0lBQUEsT0FBSSxRQUFPQSxDQUFDLGFBQURBLENBQUMsdUJBQURBLENBQUMsQ0FBRS9DLEdBQUcsTUFBSyxRQUFRLElBQUksQ0FBQStDLENBQUMsYUFBREEsQ0FBQyx1QkFBREEsQ0FBQyxDQUFFcEIsTUFBTSxNQUFLLElBQUk7RUFBQSxFQUFDO0FBQ3pFOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTaUYsNkJBQTZCQSxDQUMzQ3pJLGtCQUE4QyxFQUMvQjtFQUNmLElBQU1qQyxNQUFNLEdBQUcsSUFBQTJLLCtDQUE4QixFQUFDMUksa0JBQWtCLENBQUM7RUFDakUsSUFBSSxDQUFDakMsTUFBTSxFQUFFO0lBQ1gsT0FBTyxJQUFJO0VBQ2I7RUFDQSxPQUFPRCxlQUFlLENBQUNDLE1BQU0sRUFBRTRLLDBDQUF5QixFQUFFLENBQUMsQ0FBQztBQUM5RDtBQUVPLFNBQVNDLFdBQVdBLENBQUNDLEtBSTNCLEVBQXdCO0VBQ3ZCLElBQUFDLFlBQUEsR0FJSUQsS0FBSyxDQUhQdkQsS0FBSztJQUFHVixDQUFDLEdBQUFrRSxZQUFBLENBQURsRSxDQUFDO0lBQUVDLENBQUMsR0FBQWlFLFlBQUEsQ0FBRGpFLENBQUM7SUFBRUMsQ0FBQyxHQUFBZ0UsWUFBQSxDQUFEaEUsQ0FBQztJQUNmTCxNQUFNLEdBRUpvRSxLQUFLLENBRlBwRSxNQUFNO0lBQ05zRSxvQkFBb0IsR0FDbEJGLEtBQUssQ0FEUEUsb0JBQW9CO0VBR3RCLElBQU1DLFlBQVksR0FBRyxJQUFBQyxvQkFBZSxFQUFDbkUsQ0FBQyxFQUFFMUYsZUFBZSxDQUFDO0VBQ3hELElBQU04SixVQUFVLEdBQUcsSUFBQUMsa0JBQWEsRUFBQ0osb0JBQW9CLEVBQUVuRSxDQUFDLEVBQUVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFa0UsWUFBWSxDQUFDO0VBQzdFLElBQU1JLGFBQWEsR0FBRyxJQUFBQywyQkFBZ0IsRUFBQyxDQUFDO0VBRXhDLE9BQU8sSUFBQUMsVUFBSSxFQUFDSixVQUFVLEVBQUVLLDRCQUFtQixFQUFFO0lBQzNDQyxLQUFLLEVBQUU7TUFBQy9FLE1BQU0sRUFBTkE7SUFBTSxDQUFDO0lBQ2YsZ0JBQWdCLEVBQUFuSCxhQUFBLENBQUFBLGFBQUEsS0FDWDhMLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQztNQUNsQ0ssV0FBVyxFQUFFVCxZQUFZLEdBQUc7SUFBQztFQUVqQyxDQUFDLENBQUM7QUFDSiIsImlnbm9yZUxpc3QiOltdfQ==
578
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJfdGVycmFpbiIsIl9tZW1vaXplIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jb25zdGFudHMiLCJfY29uZmlnIiwiX2dwdVV0aWxzIiwiX3Jhc3RlclRpbGVVdGlscyIsIl91cmwiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsImdldEltYWdlRGF0YVVSTCIsImJpdG1hcCIsIndpZHRoIiwiaGVpZ2h0IiwiY2FudmFzIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiZ2V0Q29udGV4dCIsInNldEF0dHJpYnV0ZSIsImNvbmNhdCIsImN0eCIsImkiLCJfYml0bWFwJHN1YmFycmF5Iiwic3ViYXJyYXkiLCJfYml0bWFwJHN1YmFycmF5MiIsIl9zbGljZWRUb0FycmF5MiIsImciLCJiIiwiYSIsImZpbGxTdHlsZSIsImZpbGxSZWN0IiwidG9EYXRhVVJMIiwiTUVTSF9NVUxUSVBMSUVSIiwibG9hZEltYWdlcyIsIl94IiwiX3gyIiwiX3gzIiwiX2xvYWRJbWFnZXMiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsImFzc2V0UmVxdWVzdHMiLCJjb2xvcm1hcElkIiwiY2F0ZWdvcmljYWxPcHRpb25zIiwiX3lpZWxkJFByb21pc2UkYWxsIiwiX3lpZWxkJFByb21pc2UkYWxsMiIsInN0YWNJbWFnZXMiLCJjb2xvcm1hcCIsImltYWdlQ29sb3JtYXAiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiUHJvbWlzZSIsImFsbCIsImxvYWRTVEFDSW1hZ2VEYXRhIiwiQ0FURUdPUklDQUxfQ09MT1JNQVBfSUQiLCJtZW1vaXplZExvYWRDb2xvcm1hcCIsInNlbnQiLCJnZW5lcmF0ZUNhdGVnb3JpY2FsQ29sb3JtYXBUZXh0dXJlIiwiYWJydXB0Iiwic3RvcCIsIm1lbW9pemUiLCJsb2FkQ29sb3JtYXAiLCJfeDQiLCJfbG9hZENvbG9ybWFwIiwiX2NhbGxlZTIiLCJyZXF1ZXN0IiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwiZ2V0QXNzZXRSZXF1ZXN0IiwidXJsIiwiY2RuVXJscyIsInJhc3RlckNvbG9yTWFwIiwib3B0aW9ucyIsImxvYWRJbWFnZSIsIkNPTE9STUFQX1RFWFRVUkVfUEFSQU1FVEVSUyIsImdldFNUQUNJbWFnZVJlcXVlc3RzIiwiX3g1IiwiX2dldFNUQUNJbWFnZVJlcXVlc3RzIiwiX2NhbGxlZTMiLCJsb2FkQXNzZXRJZHMiLCJfY2FsbGVlMyQiLCJfY29udGV4dDMiLCJnZXRTaW5nbGVBc3NldFNUQUNSZXF1ZXN0IiwiZ2V0TXVsdGlBc3NldFNUQUNSZXF1ZXN0IiwiX3g2IiwiX2xvYWRTVEFDSW1hZ2VEYXRhIiwiX2NhbGxlZTQiLCJyZXF1ZXN0cyIsIl9jYWxsZWU0JCIsIl9jb250ZXh0NCIsImxvYWRTaW5nbGVBc3NldFNUQUMiLCJsb2FkTXVsdGlBc3NldFNUQUMiLCJfeDciLCJfZ2V0QXNzZXRSZXF1ZXN0IiwiX2NhbGxlZTUiLCJfcmVmIiwicGFyYW1zIiwiX3JlZiR1c2VNYXNrIiwidXNlTWFzayIsInJlc3BvbnNlUmVxdWlyZWRCYW5kSW5kaWNlcyIsInJlcXVlc3RVcmwiLCJyZXF1ZXN0UGFyYW1zIiwicmVxdWVzdE9wdGlvbnMiLCJhc3NldFVybCIsIl9jYWxsZWU1JCIsIl9jb250ZXh0NSIsIlVSTFNlYXJjaFBhcmFtcyIsInRvU3RyaW5nIiwiX3g4IiwiX2dldFNpbmdsZUFzc2V0U1RBQ1JlcXVlc3QiLCJfY2FsbGVlNiIsInN0YWMiLCJsb2FkQmFuZEluZGV4ZXMiLCJzaWduYWwiLCJ1c2VTVEFDU2VhcmNoaW5nIiwiX29wdGlvbnMkaW5kZXgiLCJ4IiwieSIsInoiLCJzdGFjU2VhcmNoUHJvdmlkZXIiLCJzdGFydERhdGUiLCJlbmREYXRlIiwiX3N0YWNRdWVyeSIsInVybFBhcmFtcyIsIl9jYWxsZWU2JCIsIl9jb250ZXh0NiIsImluZGV4IiwidHlwZSIsImdldFN0YWNBcGlVcmxQYXJhbXMiLCJtYXNrIiwiZ2V0VGl0aWxlclVybCIsImdldFNpbmdsZUNPR1VybFBhcmFtcyIsImxvYWRBc3NldElkIiwiX3g5IiwiX2dldE11bHRpQXNzZXRTVEFDUmVxdWVzdCIsIl9jYWxsZWU3IiwiX29wdGlvbnMkaW5kZXgyIiwicmVxdWVzdERhdGEiLCJyZXF1ZXN0TWFzayIsIl9jYWxsZWU3JCIsIl9jb250ZXh0NyIsIkFycmF5IiwiZmlsbCIsInppcCIsIm1hcCIsIl9yZWYyIiwiX3JlZjMiLCJhc3NldElkIiwiemlwMyIsIl9yZWY0IiwiX3JlZjUiLCJiYW5kSW5kZXgiLCJpc1ZhbGlkUmVxdWVzdERhdGEiLCJfcmVxdWVzdCRvcHRpb25zIiwiX3gxMCIsIl9sb2FkU2luZ2xlQXNzZXRTVEFDIiwiX2NhbGxlZTgiLCJpbWFnZUJhbmRzIiwiaW1hZ2VNYXNrIiwibWFwcGVkSW1hZ2VCYW5kcyIsIl9jYWxsZWU4JCIsIl9jb250ZXh0OCIsImxvYWROcHlBcnJheSIsInBvcCIsIl94MTEiLCJfbG9hZE11bHRpQXNzZXRTVEFDIiwiX2NhbGxlZTkiLCJfcmVzdWx0cyQiLCJyZXN1bHRzIiwiX2NhbGxlZTkkIiwiX2NvbnRleHQ5IiwiZmxhdCIsImJhbmQiLCJrIiwiYyIsImFyciIsImV2ZXJ5IiwiZ2V0Q2F0ZWdvcmljYWxDb2xvcm1hcERhdGFVcmwiLCJnZW5lcmF0ZUNhdGVnb3JpY2FsQml0bWFwQXJyYXkiLCJDQVRFR09SSUNBTF9URVhUVVJFX1dJRFRIIiwibG9hZFRlcnJhaW4iLCJwcm9wcyIsIl9wcm9wcyRpbmRleCIsInJhc3RlclRpbGVTZXJ2ZXJVcmxzIiwibWVzaE1heEVycm9yIiwiZ2V0TWVzaE1heEVycm9yIiwidGVycmFpblVybCIsImdldFRlcnJhaW5VcmwiLCJsb2FkZXJPcHRpb25zIiwiZ2V0TG9hZGVyT3B0aW9ucyIsImxvYWQiLCJRdWFudGl6ZWRNZXNoTG9hZGVyIiwiZmV0Y2giLCJza2lydEhlaWdodCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yYXN0ZXItdGlsZS9pbWFnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG4vKipcbiAqIFV0aWxpdHkgZnVuY3Rpb25zIHRvIGNyZWF0ZSBvYmplY3RzIHRvIHBhc3MgdG8gZGVjay5nbC1yYXN0ZXJcbiAqL1xuXG5pbXBvcnQge2xvYWR9IGZyb20gJ0Bsb2FkZXJzLmdsL2NvcmUnO1xuaW1wb3J0IHtRdWFudGl6ZWRNZXNoTG9hZGVyfSBmcm9tICdAbG9hZGVycy5nbC90ZXJyYWluJztcbmltcG9ydCBtZW1vaXplIGZyb20gJ2xvZGFzaC9tZW1vaXplJztcblxuaW1wb3J0IHtnZXRMb2FkZXJPcHRpb25zLCBSYXN0ZXJMYXllclJlc291cmNlcyBhcyBjZG5VcmxzfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7Q0FURUdPUklDQUxfQ09MT1JNQVBfSUR9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7XG4gIGxvYWROcHlBcnJheSxcbiAgZ2VuZXJhdGVDYXRlZ29yaWNhbENvbG9ybWFwVGV4dHVyZSxcbiAgbG9hZEltYWdlLFxuICBDT0xPUk1BUF9URVhUVVJFX1BBUkFNRVRFUlNcbn0gZnJvbSAnLi9ncHUtdXRpbHMnO1xuaW1wb3J0IHtDQVRFR09SSUNBTF9URVhUVVJFX1dJRFRILCBnZW5lcmF0ZUNhdGVnb3JpY2FsQml0bWFwQXJyYXl9IGZyb20gJy4vcmFzdGVyLXRpbGUtdXRpbHMnO1xuaW1wb3J0IHtcbiAgR2V0VGlsZURhdGFQcm9wcyxcbiAgSW1hZ2VEYXRhLFxuICBUZXJyYWluRGF0YSxcbiAgQXNzZXRSZXF1ZXN0RGF0YSxcbiAgQ2F0ZWdvcmljYWxDb2xvcm1hcE9wdGlvbnMsXG4gIENvbG9ybWFwSW1hZ2VEYXRhXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgZ2V0VGl0aWxlclVybCxcbiAgZ2V0VGVycmFpblVybCxcbiAgZ2V0U2luZ2xlQ09HVXJsUGFyYW1zLFxuICBnZXRTdGFjQXBpVXJsUGFyYW1zLFxuICBnZXRNZXNoTWF4RXJyb3Jcbn0gZnJvbSAnLi91cmwnO1xuXG4vKipcbiAqIENyZWF0ZSBkYXRhVXJsIGltYWdlIGZyb20gYml0bWFwIGFycmF5XG4gKiBAcGFyYW0gYml0bWFwIC0gUkdCQSBieXRlIGJpdG1hcCBhcnJheVxuICogQHBhcmFtIHdpZHRoIC0gd2lkdGggb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gaGVpZ2h0IC0gaGVpZ2h0IG9mIHRoZSBpbWFnZVxuICogQHJldHVybnMgYmFzZTY0IGRhdGEgdXJsIG9mIHRoZSBpbWFnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW1hZ2VEYXRhVVJMKGJpdG1hcDogVWludDhBcnJheSwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gIGlmICghY2FudmFzLmdldENvbnRleHQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjYW52YXMuc2V0QXR0cmlidXRlKCd3aWR0aCcsIGAke3dpZHRofWApO1xuICBjYW52YXMuc2V0QXR0cmlidXRlKCdoZWlnaHQnLCBgJHtoZWlnaHR9YCk7XG4gIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICBpZiAoIWN0eCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgd2lkdGg7IGkrKykge1xuICAgIGNvbnN0IFtyLCBnLCBiLCBhXSA9IGJpdG1hcC5zdWJhcnJheShpICogNCwgaSAqIDQgKyA0KTtcbiAgICBpZiAoYSAhPT0gMCkge1xuICAgICAgY3R4LmZpbGxTdHlsZSA9IGByZ2IoJHtyfSwgJHtnfSwgJHtifSlgO1xuICAgICAgY3R4LmZpbGxSZWN0KGksIDAsIDEsIDEpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJyk7XG59XG5cbi8vIEdsb2JhbCBtdWx0aXBsaWVyIHRvIGJlIGFwcGxpZWQgdG8gdGVycmFpbiBtZXNoIHJlc29sdXRpb25cbi8vIEEgc21hbGxlciBudW1iZXIgdG93YXJkcyAwIHdpbGwgY2F1c2UgZ2VuZXJhdGlvbiBvZiBtZXNoIGRhdGEgd2l0aCBhIHNtYWxsZXIgbWF4IGVycm9yIGFuZCB0aHVzIGFcbi8vIGhpZ2hlciByZXNvbHV0aW9uIG1lc2hcbmNvbnN0IE1FU0hfTVVMVElQTElFUiA9IDAuODtcblxuLyoqXG4gKiBMb2FkIGltYWdlcyByZXF1aXJlZCBmb3IgcmFzdGVyIHRpbGVcbiAqIEBwYXJhbSBhc3NldFJlcXVlc3RzIC0gU1RBQyBhc3NldCByZXF1ZXN0c1xuICogQHBhcmFtIGNvbG9ybWFwSWQgLSBjb2xvcm1hcCBpZFxuICogQHBhcmFtIGNhdGVnb3JpY2FsT3B0aW9ucyAtIGNhdGVnb3JpY2FsIG9wdGlvbnMgcmVxdXJlZCBmb3IgbWFraW5nIG9mIGNhdGVnb3JpY2FsIGNvbG9ybWFwXG4gKiBAcmV0dXJucyBpbWFnZXMgbWFwXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkSW1hZ2VzKFxuICBhc3NldFJlcXVlc3RzOiBBc3NldFJlcXVlc3REYXRhW10sXG4gIGNvbG9ybWFwSWQ6IHN0cmluZyxcbiAgY2F0ZWdvcmljYWxPcHRpb25zOiBDYXRlZ29yaWNhbENvbG9ybWFwT3B0aW9uc1xuKTogUHJvbWlzZTxJbWFnZURhdGE+IHtcbiAgLy8gV2UgbG9hZCBpbWFnZSBkYXRhIChzaW5nbGUgb3IgbXVsdGkgYXNzZXQgYmFzZWQgb24gbnVtYmVyIG9mIHJlcXVlc3RzKSBhbmQgY29sb3JtYXAgaW4gcGFyYWxsZWxcbiAgY29uc3QgW3N0YWNJbWFnZXMsIGNvbG9ybWFwXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICBsb2FkU1RBQ0ltYWdlRGF0YShhc3NldFJlcXVlc3RzKSxcbiAgICAoY29sb3JtYXBJZCAhPT0gQ0FURUdPUklDQUxfQ09MT1JNQVBfSUQgJiYgbWVtb2l6ZWRMb2FkQ29sb3JtYXAoY29sb3JtYXBJZCkpIHx8IG51bGxcbiAgXSk7XG4gIGxldCBpbWFnZUNvbG9ybWFwID0gY29sb3JtYXA7XG4gIGlmIChjb2xvcm1hcElkID09PSBDQVRFR09SSUNBTF9DT0xPUk1BUF9JRCkge1xuICAgIGltYWdlQ29sb3JtYXAgPSBnZW5lcmF0ZUNhdGVnb3JpY2FsQ29sb3JtYXBUZXh0dXJlKGNhdGVnb3JpY2FsT3B0aW9ucyk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGFjSW1hZ2VzLFxuICAgIGltYWdlQ29sb3JtYXBcbiAgfTtcbn1cblxuLyoqXG4gKiBDYWNoZSBsb2FkaW5nIG9mIGNvbG9ybWFwLiBFYWNoIGNvbG9ybWFwIGZpbGUgaXMgdmVyeSBzbWFsbCwgb24gdGhlIG9yZGVyIG9mIGEgZmV3IGh1bmRyZWQgYnl0ZXMsXG4gKiBzbyBhIGdsb2JhbCBjYWNoZSBsaWtlIHRoaXMgaXMgbm90IGV4cGVjdGVkIHRvIGVhdCB1cCB0b28gbXVjaCBtZW1vcnkuXG4gKiBNb3N0IGNvbG9ybWFwcyBhcmUgbG9hZGVkIGZyb20gQ0ROLiBJbiBjYXNlIGNvbG9ybWFwSWQgaXMgY2F0ZWdvcmljYWwsIHRoZSBpbWFnZSBpcyBjcmVhdGVkIGZyb21cbiAqIGNhdGVnb3JpY2FsIGNvbG9ybWFwIG9wdGlvbnMuXG4gKiBOT1RFOiB0aGlzIGltcGxlbWVudGF0aW9uIHdpbGwgY2FjaGUgcHJvbWlzZSByZWplY3Rpb25zIGFzIHdlbGwsIGJ1dCBzaW5jZSB0aGVzZSBhcmUgc21hbGwgZmlsZXNcbiAqIG9uIHRoZSBDRE4sIHRoYXQncyBhbiBhY2NlcHRhYmxlIHJpc2sgZm9yIHRoZSB0aW1lIGJlaW5nLlxuICovXG5jb25zdCBtZW1vaXplZExvYWRDb2xvcm1hcDogKGNvbG9ybWFwSWQ6IHN0cmluZykgPT4gUHJvbWlzZTxDb2xvcm1hcEltYWdlRGF0YSB8IG51bGw+IHwgbnVsbCA9XG4gIG1lbW9pemUoKGNvbG9ybWFwSWQ6IHN0cmluZykgPT4ge1xuICAgIGlmIChjb2xvcm1hcElkID09PSBDQVRFR09SSUNBTF9DT0xPUk1BUF9JRCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBsb2FkQ29sb3JtYXAoY29sb3JtYXBJZCk7XG4gICAgfVxuICB9KTtcblxuLyoqXG4gKiBMb2FkIFBORyBjb2xvcm1hcC5cbiAqIFNpbmNlIHRoZSBjb2xvcm1hcCBmaWxlcyBhcmUgc28gc21hbGwgKGNvdXBsZSBodW5kcmVkIGJ5dGVzKSwgd2UgbG9hZCB0aGVtIGFsd2F5cywgZXZlbiBmb3IgYW5cbiAqIFJHQiBjb21wb3NpdGUgd2hlcmUgdGhlIGNvbG9ybWFwIHdvbid0IGJlIHVzZWQuIEFmdGVyIHRoZSBmaXJzdCBsb2FkLCB0aGUgY29sb3JtYXAgc2hvdWxkIGJlXG4gKiBsb2FkZWQgZnJvbSB0aGUgZGlzayBjYWNoZS4gQnkgbG9hZGluZyBhbHdheXMsIHdlIGNhbiBwcmV2ZW50IHVubmVjZXNzYXJpbHkgdHJpZ2dlcmluZ1xuICogZ2V0VGlsZURhdGEsIHdoaWNoIHJlZHVjZXMgZmxhc2hpbmcgZnJvbSByZWxvYWRpbmcgdGhlIGltYWdlcyBvbiB0aGUgR1BVLlxuICpcbiAqIEBwYXJhbSBjb2xvcm1hcElkICAgICAgSUQgb2YgY29sb3JtYXAgUE5HXG4gKlxuICogQHJldHVybnMgaW1hZ2Ugb2JqZWN0IHRvIHBhc3MgdG8gVGV4dHVyZTJEIGNvbnN0cnVjdG9yXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGxvYWRDb2xvcm1hcChjb2xvcm1hcElkOiBzdHJpbmcpOiBQcm9taXNlPENvbG9ybWFwSW1hZ2VEYXRhIHwgbnVsbD4ge1xuICBpZiAoIWNvbG9ybWFwSWQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCBnZXRBc3NldFJlcXVlc3Qoe3VybDogY2RuVXJscy5yYXN0ZXJDb2xvck1hcChjb2xvcm1hcElkKSwgb3B0aW9uczoge319KTtcbiAgcmV0dXJuIGxvYWRJbWFnZShyZXF1ZXN0LnVybCwgQ09MT1JNQVBfVEVYVFVSRV9QQVJBTUVURVJTLCByZXF1ZXN0Lm9wdGlvbnMpO1xufVxuXG4vKipcbiAqIEdldCB0aGUgcmVxdWVzdCBkYXRhIGZvciBsb2FkaW5nIGEgc2luZ2xlIG9yIG11bHRpIGFzc2V0IFNUQUMgbWV0YWRhdGEgb2JqZWN0LlxuICogQHBhcmFtIG9wdGlvbnMgU1RBQyBtZXRhZGF0YSBvYmplY3QgYW5kIHVzZXItZGVmaW5lZCBwYXJhbWV0ZXJzLlxuICogQHJldHVybnMgSW1hZ2UgZGF0YSwgb3IgbnVsbCBpZiB0aGUgU1RBQyBtZXRhZGF0YSBvYmplY3QgaXMgbm90IHN1cHBvcnRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFNUQUNJbWFnZVJlcXVlc3RzKFxuICBvcHRpb25zOiBHZXRUaWxlRGF0YVByb3BzXG4pOiBQcm9taXNlPEFzc2V0UmVxdWVzdERhdGFbXSB8IG51bGw+IHtcbiAgY29uc3Qge2xvYWRBc3NldElkc30gPSBvcHRpb25zO1xuXG4gIGlmIChsb2FkQXNzZXRJZHMubGVuZ3RoID09PSAxKSB7XG4gICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IGdldFNpbmdsZUFzc2V0U1RBQ1JlcXVlc3Qob3B0aW9ucyk7XG4gICAgcmV0dXJuIHJlcXVlc3QgPyBbcmVxdWVzdF0gOiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IGdldE11bHRpQXNzZXRTVEFDUmVxdWVzdChvcHRpb25zKTtcbn1cblxuLy8gVE9ETzogaW1hZ2UgbG9hZGluZyBzaG91bGQgcmVhbGx5IGJlIF9kcml2ZW4gYnkgdGhlIG1vZHVsZXNfXG4vLyBFLmcuIHRoZSB1c2VyIGNob29zZXMgd2hhdCBraW5kIG9mIHBpcGVsaW5lIHRoZXkgd2FudCBvbiB0aGUgR1BVLCB0aGVuIGZyb20gdGhvc2UgbW9kdWxlcyB3ZSBjYW5cbi8vIHNlZSB3aGV0aGVyIHRoZSB1c2VyIHdhbnRzIHRoZSBwYW5zaGFycGVuZWQgYmFuZCwgY29sb3JtYXAsIGV0Y1xuLyoqXG4gKiBMb2FkIGltYWdlcyBkZWZpbmVkIGJ5IGEgU1RBQyBtZXRhZGF0YSBvYmplY3QgcGx1cyB1c2VyLWRlZmluZWQgcGFyYW1ldGVyc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZFNUQUNJbWFnZURhdGEocmVxdWVzdHM6IEFzc2V0UmVxdWVzdERhdGFbXSk6IFByb21pc2U8SW1hZ2VEYXRhPiB7XG4gIHJldHVybiByZXF1ZXN0cy5sZW5ndGggPT09IDEgPyBsb2FkU2luZ2xlQXNzZXRTVEFDKHJlcXVlc3RzWzBdKSA6IGxvYWRNdWx0aUFzc2V0U1RBQyhyZXF1ZXN0cyk7XG59XG5cbi8qKlxuICogVXRpbGl0eSBmdW5jdGlvbiB0aGF0IGZvcm1zIGFuIGFzc2V0IHJlcXVlc3QgYmFzZWQgb24gZ2l2ZW4gcGFyYW1ldGVycy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEFzc2V0UmVxdWVzdCh7XG4gIHVybCxcbiAgcGFyYW1zLFxuICBvcHRpb25zLFxuICB1c2VNYXNrID0gdHJ1ZSxcbiAgcmVzcG9uc2VSZXF1aXJlZEJhbmRJbmRpY2VzXG59OiB7XG4gIHVybDogc3RyaW5nO1xuICBwYXJhbXM/OiBVUkxTZWFyY2hQYXJhbXMgfCBudWxsO1xuICBvcHRpb25zOiBSZXF1ZXN0SW5pdDtcbiAgdXNlTWFzaz86IGJvb2xlYW47XG4gIHJlc3BvbnNlUmVxdWlyZWRCYW5kSW5kaWNlcz86IG51bWJlcltdIHwgbnVsbDtcbn0pOiBQcm9taXNlPEFzc2V0UmVxdWVzdERhdGE+IHtcbiAgY29uc3QgcmVxdWVzdFVybCA9IHVybDtcbiAgY29uc3QgcmVxdWVzdFBhcmFtcyA9IHBhcmFtcyA/PyBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gIGNvbnN0IHJlcXVlc3RPcHRpb25zID0gb3B0aW9ucztcblxuICBjb25zdCBhc3NldFVybCA9IHJlcXVlc3RQYXJhbXMgPyBgJHtyZXF1ZXN0VXJsfT8ke3JlcXVlc3RQYXJhbXMudG9TdHJpbmcoKX1gIDogcmVxdWVzdFVybDtcbiAgcmV0dXJuIHt1cmw6IGFzc2V0VXJsLCBvcHRpb25zOiByZXF1ZXN0T3B0aW9ucywgdXNlTWFzaywgcmVzcG9uc2VSZXF1aXJlZEJhbmRJbmRpY2VzfTtcbn1cblxuLyoqXG4gKiBVdGlsaXR5IGZ1bmN0aW9uIGZvciBmb3JtaW5nIGEgcmVxdWVzdCBmb3IgYSBzaW5nbGUgYXNzZXQgU1RBQyBtZXRhZGF0YSBvYmplY3QuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5LCBtYXgtc3RhdGVtZW50c1xuYXN5bmMgZnVuY3Rpb24gZ2V0U2luZ2xlQXNzZXRTVEFDUmVxdWVzdChcbiAgb3B0aW9uczogR2V0VGlsZURhdGFQcm9wc1xuKTogUHJvbWlzZTxBc3NldFJlcXVlc3REYXRhIHwgbnVsbD4ge1xuICBjb25zdCB7XG4gICAgc3RhYyxcbiAgICBsb2FkQXNzZXRJZHMsXG4gICAgbG9hZEJhbmRJbmRleGVzLFxuICAgIHNpZ25hbCxcbiAgICB1c2VTVEFDU2VhcmNoaW5nLFxuICAgIGluZGV4OiB7eCwgeSwgen0sXG4gICAgc3RhY1NlYXJjaFByb3ZpZGVyLFxuICAgIHN0YXJ0RGF0ZSxcbiAgICBlbmREYXRlLFxuICAgIF9zdGFjUXVlcnlcbiAgfSA9IG9wdGlvbnM7XG5cbiAgY29uc3QgdXNlTWFzayA9IHRydWU7XG5cbiAgLy8gT25seSBhIHNpbmdsZSBVUkwgYmVjYXVzZSBvbmx5IGEgc2luZ2xlIGFzc2V0XG4gIGxldCB1cmw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBsZXQgdXJsUGFyYW1zOiBVUkxTZWFyY2hQYXJhbXMgfCBudWxsID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICBsZXQgcmVzcG9uc2VSZXF1aXJlZEJhbmRJbmRpY2VzOiBudW1iZXJbXSB8IG51bGwgPSBsb2FkQmFuZEluZGV4ZXM7XG4gIGlmICh1c2VTVEFDU2VhcmNoaW5nICYmIHN0YWMudHlwZSAhPT0gJ0ZlYXR1cmUnKSB7XG4gICAgdXJsUGFyYW1zID0gZ2V0U3RhY0FwaVVybFBhcmFtcyh7XG4gICAgICBzdGFjLFxuICAgICAgc3RhY1NlYXJjaFByb3ZpZGVyLFxuICAgICAgc3RhcnREYXRlLFxuICAgICAgZW5kRGF0ZSxcbiAgICAgIG1hc2s6IHVzZU1hc2ssXG4gICAgICBsb2FkQXNzZXRJZHMsXG4gICAgICBfc3RhY1F1ZXJ5XG4gICAgfSk7XG4gICAgdXJsID0gZ2V0VGl0aWxlclVybCh7c3RhYywgdXNlU1RBQ1NlYXJjaGluZywgeCwgeSwgen0pO1xuICB9IGVsc2UgaWYgKHN0YWMudHlwZSA9PT0gJ0ZlYXR1cmUnKSB7XG4gICAgLy8gc3RhYyBpcyBhbiBJdGVtXG4gICAgdXJsUGFyYW1zID0gZ2V0U2luZ2xlQ09HVXJsUGFyYW1zKHtcbiAgICAgIHN0YWMsXG4gICAgICBsb2FkQXNzZXRJZDogbG9hZEFzc2V0SWRzWzBdLFxuICAgICAgbG9hZEJhbmRJbmRleGVzLFxuICAgICAgbWFzazogdXNlTWFza1xuICAgIH0pO1xuICAgIHVybCA9IGdldFRpdGlsZXJVcmwoe3N0YWMsIHVzZVNUQUNTZWFyY2hpbmcsIHgsIHksIHp9KTtcbiAgICByZXNwb25zZVJlcXVpcmVkQmFuZEluZGljZXMgPSBudWxsO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKCF1cmwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBhd2FpdCBnZXRBc3NldFJlcXVlc3Qoe1xuICAgIHVybCxcbiAgICBwYXJhbXM6IHVybFBhcmFtcyxcbiAgICBvcHRpb25zOiB7c2lnbmFsfSxcbiAgICB1c2VNYXNrLFxuICAgIHJlc3BvbnNlUmVxdWlyZWRCYW5kSW5kaWNlc1xuICB9KTtcbn1cblxuLyoqXG4gKiBVdGlsaXR5IGZ1bmN0aW9uIGZvciBmb3JtaW5nIHJlcXVlc3RzIGZvciBhIG11bHRpIGFzc2V0IFNUQUMgbWV0YWRhdGEgb2JqZWN0LlxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRNdWx0aUFzc2V0U1RBQ1JlcXVlc3QoXG4gIG9wdGlvbnM6IEdldFRpbGVEYXRhUHJvcHNcbik6IFByb21pc2U8QXNzZXRSZXF1ZXN0RGF0YVtdIHwgbnVsbD4ge1xuICBjb25zdCB7XG4gICAgc3RhYyxcbiAgICBsb2FkQXNzZXRJZHMsXG4gICAgbG9hZEJhbmRJbmRleGVzLFxuICAgIHNpZ25hbCxcbiAgICB1c2VTVEFDU2VhcmNoaW5nLFxuICAgIHN0YWNTZWFyY2hQcm92aWRlcixcbiAgICBzdGFydERhdGUsXG4gICAgZW5kRGF0ZSxcbiAgICBpbmRleDoge3gsIHksIHp9LFxuICAgIF9zdGFjUXVlcnlcbiAgfSA9IG9wdGlvbnM7XG5cbiAgLy8gTXVsdGlwbGUgdXJscywgb25lIGZvciBlYWNoIGFzc2V0XG4gIGxldCByZXF1ZXN0RGF0YToge3VybDogc3RyaW5nOyBwYXJhbXM6IFVSTFNlYXJjaFBhcmFtcyB8IG51bGw7IG9wdGlvbnM/OiBSZXF1ZXN0SW5pdH1bXSA9IFtdO1xuXG4gIC8vIFdlIGFzc3VtZSB0aGF0IHRoZXJlJ3Mgb25seSBvbmUgdmFsaWRpdHkgbWFzayBmb3IgdGhlIGVudGlyZSBhc3NldCwgYW5kIHRoZXJlZm9yZSBhbnkgb2YgdGhlXG4gIC8vIHJlcXVlc3RzIHdvdWxkIHJldHVybiB0aGUgc2FtZSB2YWxpZGl0eSBiaXRtYXAuIFRoZXJlZm9yZSB3ZSBvbmx5IHJlcXVlc3QgYSBtYXNrIGZvciB0aGUgZmlyc3RcbiAgLy8gYXNzZXRcbiAgY29uc3QgcmVxdWVzdE1hc2s6IGJvb2xlYW5bXSA9IG5ldyBBcnJheShsb2FkQXNzZXRJZHMubGVuZ3RoKS5maWxsKGZhbHNlKTtcbiAgcmVxdWVzdE1hc2tbMF0gPSB0cnVlO1xuXG4gIGlmICh1c2VTVEFDU2VhcmNoaW5nICYmIHN0YWMudHlwZSAhPT0gJ0ZlYXR1cmUnKSB7XG4gICAgcmVxdWVzdERhdGEgPSB6aXAobG9hZEFzc2V0SWRzLCByZXF1ZXN0TWFzaykubWFwKChbYXNzZXRJZCwgbWFza10pID0+IHtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IGdldFN0YWNBcGlVcmxQYXJhbXMoe1xuICAgICAgICBzdGFjLFxuICAgICAgICBzdGFjU2VhcmNoUHJvdmlkZXIsXG4gICAgICAgIHN0YXJ0RGF0ZSxcbiAgICAgICAgZW5kRGF0ZSxcbiAgICAgICAgbWFzayxcbiAgICAgICAgbG9hZEFzc2V0SWRzOiBbYXNzZXRJZF0sXG4gICAgICAgIF9zdGFjUXVlcnlcbiAgICAgIH0pO1xuICAgICAgY29uc3QgdXJsID0gZ2V0VGl0aWxlclVybCh7c3RhYywgdXNlU1RBQ1NlYXJjaGluZywgeCwgeSwgen0pO1xuICAgICAgcmV0dXJuIHt1cmwsIHBhcmFtc307XG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoc3RhYy50eXBlID09PSAnRmVhdHVyZScpIHtcbiAgICByZXF1ZXN0RGF0YSA9IHppcDMobG9hZEFzc2V0SWRzLCBsb2FkQmFuZEluZGV4ZXMsIHJlcXVlc3RNYXNrKS5tYXAoXG4gICAgICAoW2Fzc2V0SWQsIGJhbmRJbmRleCwgbWFza10pID0+IHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gZ2V0U2luZ2xlQ09HVXJsUGFyYW1zKHtcbiAgICAgICAgICBzdGFjLFxuICAgICAgICAgIGxvYWRBc3NldElkOiBhc3NldElkLFxuICAgICAgICAgIGxvYWRCYW5kSW5kZXhlczogW2JhbmRJbmRleF0sXG4gICAgICAgICAgbWFza1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgdXJsID0gZ2V0VGl0aWxlclVybCh7c3RhYywgdXNlU1RBQ1NlYXJjaGluZywgeCwgeSwgen0pO1xuICAgICAgICByZXR1cm4ge3VybCwgcGFyYW1zfTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgaWYgKGlzVmFsaWRSZXF1ZXN0RGF0YShyZXF1ZXN0RGF0YSkpIHtcbiAgICByZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICByZXF1ZXN0RGF0YS5tYXAocmVxdWVzdCA9PlxuICAgICAgICBnZXRBc3NldFJlcXVlc3Qoey4uLnJlcXVlc3QsIG9wdGlvbnM6IHJlcXVlc3Qub3B0aW9ucyA/PyB7c2lnbmFsfX0pXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIExvYWQgaW1hZ2UgZGF0YSB3aGVuIGNvbnNvbGlkYXRlZCBpbiBiYW5kcyB3aXRoaW4gYSBzaW5nbGUgU1RBQyBBc3NldFxuICovXG5hc3luYyBmdW5jdGlvbiBsb2FkU2luZ2xlQXNzZXRTVEFDKHJlcXVlc3Q6IEFzc2V0UmVxdWVzdERhdGEpOiBQcm9taXNlPEltYWdlRGF0YT4ge1xuICBjb25zdCBpbWFnZUJhbmRzID0gYXdhaXQgbG9hZE5weUFycmF5KHJlcXVlc3QsIHRydWUpO1xuXG4gIGlmICghaW1hZ2VCYW5kcykge1xuICAgIHJldHVybiB7XG4gICAgICBpbWFnZUJhbmRzXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IGltYWdlTWFzayA9IChyZXF1ZXN0LnVzZU1hc2sgJiYgaW1hZ2VCYW5kcy5wb3AoKSkgfHwgbnVsbDtcbiAgbGV0IG1hcHBlZEltYWdlQmFuZHMgPSBpbWFnZUJhbmRzO1xuICBpZiAocmVxdWVzdC5yZXNwb25zZVJlcXVpcmVkQmFuZEluZGljZXMpIHtcbiAgICBtYXBwZWRJbWFnZUJhbmRzID0gcmVxdWVzdC5yZXNwb25zZVJlcXVpcmVkQmFuZEluZGljZXMubWFwKGkgPT4gaW1hZ2VCYW5kc1tpXSk7XG4gIH1cbiAgcmV0dXJuIHtpbWFnZUJhbmRzOiBtYXBwZWRJbWFnZUJhbmRzLCBpbWFnZU1hc2t9O1xufVxuXG4vKipcbiAqIExvYWQgaW1hZ2UgZGF0YSB3aGVuIHNwbGl0IGFtb25nIG11bHRpcGxlIFNUQUMgQXNzZXRzXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGxvYWRNdWx0aUFzc2V0U1RBQyhyZXF1ZXN0czogQXNzZXRSZXF1ZXN0RGF0YVtdKTogUHJvbWlzZTxJbWFnZURhdGE+IHtcbiAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKHJlcXVlc3RzLm1hcChyZXF1ZXN0ID0+IGxvYWROcHlBcnJheShyZXF1ZXN0LCB0cnVlKSkpO1xuICAvLyBUaGUgZmlyc3QgcmVxdWVzdCBpbmNsdWRlcyBhIG1hc2tcbiAgY29uc3QgaW1hZ2VNYXNrID0gcmVzdWx0c1swXT8ucG9wKCkgfHwgbnVsbDtcbiAgY29uc3QgaW1hZ2VCYW5kcyA9IHJlc3VsdHMuZmxhdCgpLmZpbHRlcihiYW5kID0+IGJhbmQgIT09IG51bGwpIGFzIEltYWdlRGF0YVsnaW1hZ2VCYW5kcyddO1xuICByZXR1cm4ge2ltYWdlQmFuZHMsIGltYWdlTWFza307XG59XG5cbi8qKlxuICogSXRlcmF0ZSBvdmVyIHR3byBhcnJheXMgc2ltdWx0YW5lb3VzbHksIHNpbWlsYXIgdG8gUHl0aG9uJ3MgemlwIGJ1aWx0aW5cbiAqL1xuZnVuY3Rpb24gemlwPFQxLCBUMj4oYTogVDFbXSwgYjogVDJbXSk6IFtUMSwgVDJdW10ge1xuICByZXR1cm4gYS5tYXAoKGssIGkpID0+IFtrLCBiW2ldXSk7XG59XG5cbi8qKlxuICogSXRlcmF0ZSBvdmVyIHRocmVlIGFycmF5cyBzaW11bHRhbmVvdXNseSwgc2ltaWxhciB0byBQeXRob24ncyB6aXAgYnVpbHRpblxuICovXG5mdW5jdGlvbiB6aXAzPFQxLCBUMiwgVDM+KGE6IFQxW10sIGI6IFQyW10sIGM6IFQzW10pOiBbVDEsIFQyLCBUM11bXSB7XG4gIHJldHVybiBhLm1hcCgoaywgaSkgPT4gW2ssIGJbaV0sIGNbaV1dKTtcbn1cblxuLyoqXG4gKiBUeXBlIGd1YXJkIHRvIGNoZWNrIGlmIGFsbCBhcnJheSBlbGVtZW50cyBhcmUgc3RyaW5nc1xuICovXG5mdW5jdGlvbiBpc1ZhbGlkUmVxdWVzdERhdGEoXG4gIGFycjoge3VybDogdW5rbm93bjsgcGFyYW1zOiB1bmtub3duOyBvcHRpb25zPzogdW5rbm93bn1bXVxuKTogYXJyIGlzIHt1cmw6IHN0cmluZzsgcGFyYW1zOiBVUkxTZWFyY2hQYXJhbXM7IG9wdGlvbnM6IHVua25vd259W10ge1xuICByZXR1cm4gYXJyLmV2ZXJ5KHggPT4gdHlwZW9mIHg/LnVybCA9PT0gJ3N0cmluZycgJiYgeD8ucGFyYW1zICE9PSBudWxsKTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYmFzZTY0IGltYWdlIGRhdGEgdXJsIGZvciBjYXRlZ29yaWNhbCBjb2xvcm1hcFxuICogQHBhcmFtIGNhdGVnb3JpY2FsT3B0aW9ucyAtIGNvbG9yIG1hcCBjb25maWd1cmF0aW9uIGFuZCBtaW4tbWF4IHZhbHVlcyBvZiBjYXRlZ29yaWNhbCBiYW5kXG4gKiBAcmV0dXJucyBiYXNlNjQgaW1hZ2UgZGF0YSB1cmxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENhdGVnb3JpY2FsQ29sb3JtYXBEYXRhVXJsKFxuICBjYXRlZ29yaWNhbE9wdGlvbnM6IENhdGVnb3JpY2FsQ29sb3JtYXBPcHRpb25zXG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgYml0bWFwID0gZ2VuZXJhdGVDYXRlZ29yaWNhbEJpdG1hcEFycmF5KGNhdGVnb3JpY2FsT3B0aW9ucyk7XG4gIGlmICghYml0bWFwKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcmV0dXJuIGdldEltYWdlRGF0YVVSTChiaXRtYXAsIENBVEVHT1JJQ0FMX1RFWFRVUkVfV0lEVEgsIDEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZFRlcnJhaW4ocHJvcHM6IHtcbiAgaW5kZXg6IHt4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyfTtcbiAgc2lnbmFsOiBBYm9ydFNpZ25hbDtcbiAgcmFzdGVyVGlsZVNlcnZlclVybHM6IHN0cmluZ1tdO1xufSk6IFByb21pc2U8VGVycmFpbkRhdGE+IHtcbiAgY29uc3Qge1xuICAgIGluZGV4OiB7eCwgeSwgen0sXG4gICAgc2lnbmFsLFxuICAgIHJhc3RlclRpbGVTZXJ2ZXJVcmxzXG4gIH0gPSBwcm9wcztcblxuICBjb25zdCBtZXNoTWF4RXJyb3IgPSBnZXRNZXNoTWF4RXJyb3IoeiwgTUVTSF9NVUxUSVBMSUVSKTtcbiAgY29uc3QgdGVycmFpblVybCA9IGdldFRlcnJhaW5VcmwocmFzdGVyVGlsZVNlcnZlclVybHMsIHgsIHksIHosIG1lc2hNYXhFcnJvcik7XG4gIGNvbnN0IGxvYWRlck9wdGlvbnMgPSBnZXRMb2FkZXJPcHRpb25zKCk7XG5cbiAgcmV0dXJuIGxvYWQodGVycmFpblVybCwgUXVhbnRpemVkTWVzaExvYWRlciwge1xuICAgIGZldGNoOiB7c2lnbmFsfSxcbiAgICAncXVhbnRpemVkLW1lc2gnOiB7XG4gICAgICAuLi5sb2FkZXJPcHRpb25zWydxdWFudGl6ZWQtbWVzaCddLFxuICAgICAgc2tpcnRIZWlnaHQ6IG1lc2hNYXhFcnJvciAqIDJcbiAgICB9XG4gIH0pIGFzIFByb21pc2U8VGVycmFpbkRhdGE+O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQU9BLElBQUFBLEtBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUVBLElBQUFJLFVBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLE9BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFNBQUEsR0FBQU4sT0FBQTtBQU1BLElBQUFPLGdCQUFBLEdBQUFQLE9BQUE7QUFTQSxJQUFBUSxJQUFBLEdBQUFSLE9BQUE7QUFNZSxTQUFBUyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FB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R0FBeUQsRUFDVTtFQUNuRSxPQUFPQSxHQUFHLENBQUNDLEtBQUssQ0FBQyxVQUFBNUQsQ0FBQztJQUFBLE9BQUksUUFBT0EsQ0FBQyxhQUFEQSxDQUFDLHVCQUFEQSxDQUFDLENBQUUvQyxHQUFHLE1BQUssUUFBUSxJQUFJLENBQUErQyxDQUFDLGFBQURBLENBQUMsdUJBQURBLENBQUMsQ0FBRXBCLE1BQU0sTUFBSyxJQUFJO0VBQUEsRUFBQztBQUN6RTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU2lGLDZCQUE2QkEsQ0FDM0N6SSxrQkFBOEMsRUFDL0I7RUFDZixJQUFNakMsTUFBTSxHQUFHLElBQUEySywrQ0FBOEIsRUFBQzFJLGtCQUFrQixDQUFDO0VBQ2pFLElBQUksQ0FBQ2pDLE1BQU0sRUFBRTtJQUNYLE9BQU8sSUFBSTtFQUNiO0VBQ0EsT0FBT0QsZUFBZSxDQUFDQyxNQUFNLEVBQUU0SywwQ0FBeUIsRUFBRSxDQUFDLENBQUM7QUFDOUQ7QUFFTyxTQUFTQyxXQUFXQSxDQUFDQyxLQUkzQixFQUF3QjtFQUN2QixJQUFBQyxZQUFBLEdBSUlELEtBQUssQ0FIUHZELEtBQUs7SUFBR1YsQ0FBQyxHQUFBa0UsWUFBQSxDQUFEbEUsQ0FBQztJQUFFQyxDQUFDLEdBQUFpRSxZQUFBLENBQURqRSxDQUFDO0lBQUVDLENBQUMsR0FBQWdFLFlBQUEsQ0FBRGhFLENBQUM7SUFDZkwsTUFBTSxHQUVKb0UsS0FBSyxDQUZQcEUsTUFBTTtJQUNOc0Usb0JBQW9CLEdBQ2xCRixLQUFLLENBRFBFLG9CQUFvQjtFQUd0QixJQUFNQyxZQUFZLEdBQUcsSUFBQUMsb0JBQWUsRUFBQ25FLENBQUMsRUFBRTFGLGVBQWUsQ0FBQztFQUN4RCxJQUFNOEosVUFBVSxHQUFHLElBQUFDLGtCQUFhLEVBQUNKLG9CQUFvQixFQUFFbkUsQ0FBQyxFQUFFQyxDQUFDLEVBQUVDLENBQUMsRUFBRWtFLFlBQVksQ0FBQztFQUM3RSxJQUFNSSxhQUFhLEdBQUcsSUFBQUMsMkJBQWdCLEVBQUMsQ0FBQztFQUV4QyxPQUFPLElBQUFDLFVBQUksRUFBQ0osVUFBVSxFQUFFSyw0QkFBbUIsRUFBRTtJQUMzQ0MsS0FBSyxFQUFFO01BQUMvRSxNQUFNLEVBQU5BO0lBQU0sQ0FBQztJQUNmLGdCQUFnQixFQUFBbkgsYUFBQSxDQUFBQSxhQUFBLEtBQ1g4TCxhQUFhLENBQUMsZ0JBQWdCLENBQUM7TUFDbENLLFdBQVcsRUFBRVQsWUFBWSxHQUFHO0lBQUM7RUFFakMsQ0FBQyxDQUFDO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=