@plait/core 0.74.0 → 0.75.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -40,6 +40,7 @@ export class ListRender {
40
40
  if (diffResult) {
41
41
  const newContexts = [];
42
42
  const newInstances = [];
43
+ // for moving scene: the current index for first element before moving
43
44
  let currentIndexForFirstElement = null;
44
45
  diffResult.forEachItem((record) => {
45
46
  NODE_TO_INDEX.set(record.item, record.currentIndex);
@@ -206,10 +207,10 @@ currentIndexForFirstElement = null) => {
206
207
  const mountOnItemMove = (element, index, childrenContext, currentIndexForFirstElement) => {
207
208
  const containerG = PlaitElement.getContainerG(element, { suppressThrow: false });
208
209
  mountElementG(index, containerG, childrenContext, currentIndexForFirstElement);
209
- if (element.children && !PlaitElement.isRootElement(element)) {
210
+ if (element.children && !PlaitElement.isRootElement(element) && childrenContext.board.isExpanded(element)) {
210
211
  element.children.forEach((child, index) => {
211
212
  mountOnItemMove(child, index, { ...childrenContext, parent: element }, null);
212
213
  });
213
214
  }
214
215
  };
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1yZW5kZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9jb3JlL2xpc3QtcmVuZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxVQUFVLEVBRVYsWUFBWSxFQUNaLFNBQVMsRUFFWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXRGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxNQUFNLE9BQU8sVUFBVTtJQU9uQixZQUFvQixLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBTjdCLGFBQVEsR0FBbUIsRUFBRSxDQUFDO1FBQzlCLGNBQVMsR0FBcUIsRUFBRSxDQUFDO1FBQ2pDLGFBQVEsR0FBZ0MsRUFBRSxDQUFDO1FBQzNDLFdBQU0sR0FBd0MsSUFBSSxDQUFDO1FBQ3BELGdCQUFXLEdBQUcsS0FBSyxDQUFDO0lBRWEsQ0FBQztJQUVsQyxVQUFVLENBQUMsUUFBd0IsRUFBRSxlQUFxQztRQUM3RSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ25DLGFBQWEsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLGNBQWMsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2RCxNQUFNLE9BQU8sR0FB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Qy9FLElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUMzRCxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUN0QyxlQUFlLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsZUFBZSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqRixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFuY2VzdG9yLFxuICAgIENvbXBvbmVudFR5cGUsXG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdENoaWxkcmVuQ29udGV4dCxcbiAgICBQbGFpdEVsZW1lbnQsXG4gICAgUGxhaXROb2RlLFxuICAgIFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHRcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBOT0RFX1RPX0lOREVYLCBOT0RFX1RPX1BBUkVOVCB9IGZyb20gJy4uL3V0aWxzL3dlYWstbWFwcyc7XG5pbXBvcnQgeyBpc1NlbGVjdGVkRWxlbWVudCwgcmVwbGFjZVNlbGVjdGVkRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL3NlbGVjdGVkLWVsZW1lbnQnO1xuaW1wb3J0IHsgRWxlbWVudEZsYXZvdXIgfSBmcm9tICcuL2VsZW1lbnQvZWxlbWVudC1mbGF2b3VyJztcbmltcG9ydCB7IERlZmF1bHRJdGVyYWJsZURpZmZlciB9IGZyb20gJy4uL2RpZmZlcnMvZGVmYXVsdF9pdGVyYWJsZV9kaWZmZXInO1xuaW1wb3J0IHsgSXRlcmFibGVDaGFuZ2VSZWNvcmQsIEl0ZXJhYmxlRGlmZmVyIH0gZnJvbSAnLi4vZGlmZmVycy9pdGVyYWJsZV9kaWZmZXJzJztcbmltcG9ydCB7IGlzRGVidWcgfSBmcm9tICcuLi91dGlscy9kZWJ1Zyc7XG5cbmV4cG9ydCBjbGFzcyBMaXN0UmVuZGVyIHtcbiAgICBwcml2YXRlIGNoaWxkcmVuOiBQbGFpdEVsZW1lbnRbXSA9IFtdO1xuICAgIHByaXZhdGUgaW5zdGFuY2VzOiBFbGVtZW50Rmxhdm91cltdID0gW107XG4gICAgcHJpdmF0ZSBjb250ZXh0czogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dFtdID0gW107XG4gICAgcHJpdmF0ZSBkaWZmZXI6IEl0ZXJhYmxlRGlmZmVyPFBsYWl0RWxlbWVudD4gfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYm9hcmQ6IFBsYWl0Qm9hcmQpIHt9XG5cbiAgICBwdWJsaWMgaW5pdGlhbGl6ZShjaGlsZHJlbjogUGxhaXRFbGVtZW50W10sIGNoaWxkcmVuQ29udGV4dDogUGxhaXRDaGlsZHJlbkNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICAgICAgY2hpbGRyZW4uZm9yRWFjaCgoZGVzY2VuZGFudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIE5PREVfVE9fSU5ERVguc2V0KGRlc2NlbmRhbnQsIGluZGV4KTtcbiAgICAgICAgICAgIE5PREVfVE9fUEFSRU5ULnNldChkZXNjZW5kYW50LCBjaGlsZHJlbkNvbnRleHQucGFyZW50KTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBnZXRDb250ZXh0KHRoaXMuYm9hcmQsIGRlc2NlbmRhbnQsIGluZGV4LCBjaGlsZHJlbkNvbnRleHQucGFyZW50KTtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFR5cGUgPSBnZXRDb21wb25lbnRUeXBlKHRoaXMuYm9hcmQsIGNvbnRleHQpO1xuICAgICAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBjcmVhdGVQbHVnaW5Db21wb25lbnQodGhpcy5ib2FyZCwgY29tcG9uZW50VHlwZSwgY29udGV4dCwgY2hpbGRyZW5Db250ZXh0KTtcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2VzLnB1c2goaW5zdGFuY2UpO1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0cy5wdXNoKGNvbnRleHQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5kaWZmZXIgPSBuZXcgRGVmYXVsdEl0ZXJhYmxlRGlmZmVyPFBsYWl0RWxlbWVudD4odHJhY2tCeSk7XG4gICAgICAgIHRoaXMuZGlmZmVyLmRpZmYoY2hpbGRyZW4pO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGUoY2hpbGRyZW46IFBsYWl0RWxlbWVudFtdLCBjaGlsZHJlbkNvbnRleHQ6IFBsYWl0Q2hpbGRyZW5Db250ZXh0KSB7XG4gICAgICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplKGNoaWxkcmVuLCBjaGlsZHJlbkNvbnRleHQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5kaWZmZXIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXhjZXB0aW9uOiBDYW4gbm90IGZpbmQgZGlmZmVyICcpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgYm9hcmQsIHBhcmVudCB9ID0gY2hpbGRyZW5Db250ZXh0O1xuICAgICAgICBjb25zdCBkaWZmUmVzdWx0ID0gdGhpcy5kaWZmZXIuZGlmZihjaGlsZHJlbik7XG4gICAgICAgIGlmIChkaWZmUmVzdWx0KSB7XG4gICAgICAgICAgICBjb25zdCBuZXdDb250ZXh0czogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dFtdID0gW107XG4gICAgICAgICAgICBjb25zdCBuZXdJbnN0YW5jZXM6IEVsZW1lbnRGbGF2b3VyW10gPSBbXTtcbiAgICAgICAgICAgIGxldCBjdXJyZW50SW5kZXhGb3JGaXJzdEVsZW1lbnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgICAgICAgICAgZGlmZlJlc3VsdC5mb3JFYWNoSXRlbSgocmVjb3JkOiBJdGVyYWJsZUNoYW5nZVJlY29yZDxQbGFpdEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgTk9ERV9UT19JTkRFWC5zZXQocmVjb3JkLml0ZW0sIHJlY29yZC5jdXJyZW50SW5kZXggYXMgbnVtYmVyKTtcbiAgICAgICAgICAgICAgICBOT0RFX1RPX1BBUkVOVC5zZXQocmVjb3JkLml0ZW0sIGNoaWxkcmVuQ29udGV4dC5wYXJlbnQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzQ29udGV4dCA9IHJlY29yZC5wcmV2aW91c0luZGV4ID09PSBudWxsID8gdW5kZWZpbmVkIDogdGhpcy5jb250ZXh0c1tyZWNvcmQucHJldmlvdXNJbmRleF07XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGV4dCA9IGdldENvbnRleHQoYm9hcmQsIHJlY29yZC5pdGVtLCByZWNvcmQuY3VycmVudEluZGV4IGFzIG51bWJlciwgcGFyZW50LCBwcmV2aW91c0NvbnRleHQpO1xuICAgICAgICAgICAgICAgIGlmIChyZWNvcmQucHJldmlvdXNJbmRleCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRUeXBlID0gZ2V0Q29tcG9uZW50VHlwZShib2FyZCwgY29udGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGNyZWF0ZVBsdWdpbkNvbXBvbmVudChib2FyZCwgY29tcG9uZW50VHlwZSwgY29udGV4dCwgY2hpbGRyZW5Db250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgbmV3Q29udGV4dHMucHVzaChjb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgbmV3SW5zdGFuY2VzLnB1c2goY29tcG9uZW50UmVmKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuaW5zdGFuY2VzW3JlY29yZC5wcmV2aW91c0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgICAgICAgICAgICAgICAgIG5ld0luc3RhbmNlcy5wdXNoKGluc3RhbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgbmV3Q29udGV4dHMucHVzaChjb250ZXh0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gaXRlbSBtaWdodCBoYXMgYmVlbiBjaGFuZ2VkLCBzbyBuZWVkIHRvIGNvbXBhcmUgdGhlIGlkXG4gICAgICAgICAgICAgICAgaWYgKHJlY29yZC5pdGVtID09PSB0aGlzLmNoaWxkcmVuWzBdIHx8IHJlY29yZC5pdGVtLmlkID09PSB0aGlzLmNoaWxkcmVuWzBdPy5pZCkge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50SW5kZXhGb3JGaXJzdEVsZW1lbnQgPSByZWNvcmQuY3VycmVudEluZGV4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZGlmZlJlc3VsdC5mb3JFYWNoT3BlcmF0aW9uKHJlY29yZCA9PiB7XG4gICAgICAgICAgICAgICAgLy8gcmVtb3ZlZFxuICAgICAgICAgICAgICAgIGlmIChyZWNvcmQuY3VycmVudEluZGV4ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuaW5zdGFuY2VzW3JlY29yZC5wcmV2aW91c0luZGV4IGFzIG51bWJlcl07XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZj8uZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBtb3ZlZFxuICAgICAgICAgICAgICAgIGlmIChyZWNvcmQucHJldmlvdXNJbmRleCAhPT0gbnVsbCAmJiByZWNvcmQuY3VycmVudEluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIG1vdW50T25JdGVtTW92ZShyZWNvcmQuaXRlbSwgcmVjb3JkLmN1cnJlbnRJbmRleCwgY2hpbGRyZW5Db250ZXh0LCBjdXJyZW50SW5kZXhGb3JGaXJzdEVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZXMgPSBuZXdJbnN0YW5jZXM7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHRzID0gbmV3Q29udGV4dHM7XG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBuZXdDb250ZXh0czogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dFtdID0gW107XG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goKGVsZW1lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgTk9ERV9UT19JTkRFWC5zZXQoZWxlbWVudCwgaW5kZXgpO1xuICAgICAgICAgICAgICAgIE5PREVfVE9fUEFSRU5ULnNldChlbGVtZW50LCBjaGlsZHJlbkNvbnRleHQucGFyZW50KTtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c0NvbnRleHQgPSB0aGlzLmNvbnRleHRzW2luZGV4XTtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c0luc3RhbmNlID0gdGhpcy5pbnN0YW5jZXNbaW5kZXhdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBnZXRDb250ZXh0KGJvYXJkLCBlbGVtZW50LCBpbmRleCwgcGFyZW50LCBwcmV2aW91c0NvbnRleHQpO1xuICAgICAgICAgICAgICAgIHByZXZpb3VzSW5zdGFuY2UuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgICAgICAgICAgICAgbmV3Q29udGV4dHMucHVzaChjb250ZXh0KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0cyA9IG5ld0NvbnRleHRzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4uZm9yRWFjaCgoZWxlbWVudDogUGxhaXRFbGVtZW50LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5pbnN0YW5jZXNbaW5kZXhdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZXNbaW5kZXhdLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuaW5zdGFuY2VzID0gW107XG4gICAgICAgIHRoaXMuY2hpbGRyZW4gPSBbXTtcbiAgICAgICAgdGhpcy5jb250ZXh0cyA9IFtdO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZGlmZmVyID0gbnVsbDtcbiAgICB9XG59XG5cbmNvbnN0IHRyYWNrQnkgPSAoaW5kZXg6IG51bWJlciwgZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgcmV0dXJuIGVsZW1lbnQuaWQ7XG59O1xuXG5jb25zdCBjcmVhdGVQbHVnaW5Db21wb25lbnQgPSAoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZTxFbGVtZW50Rmxhdm91cj4sXG4gICAgY29udGV4dDogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dCxcbiAgICBjaGlsZHJlbkNvbnRleHQ6IFBsYWl0Q2hpbGRyZW5Db250ZXh0XG4pID0+IHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBjb21wb25lbnRUeXBlKCk7XG4gICAgaW5zdGFuY2UuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgdHJ5IHtcbiAgICAgICAgaW5zdGFuY2UuaW5pdGlhbGl6ZSgpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChpc0RlYnVnKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2xpc3QtcmVuZGVyLWluaXRpYWxpemUnLCBlcnJvciwgJ2NvbnRleHQnLCBjb250ZXh0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBnID0gaW5zdGFuY2UuZ2V0Q29udGFpbmVyRygpO1xuICAgIG1vdW50RWxlbWVudEcoY29udGV4dC5pbmRleCwgZywgY2hpbGRyZW5Db250ZXh0KTtcbiAgICBpbnN0YW5jZS5pbml0aWFsaXplTGlzdFJlbmRlcigpO1xuICAgIHJldHVybiBpbnN0YW5jZTtcbn07XG5cbmNvbnN0IGdldENvbXBvbmVudFR5cGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGNvbnRleHQ6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQpID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBib2FyZC5kcmF3RWxlbWVudChjb250ZXh0KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuY29uc3QgZ2V0Q29udGV4dCA9IChcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICBlbGVtZW50OiBQbGFpdEVsZW1lbnQsXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBwYXJlbnQ6IEFuY2VzdG9yLFxuICAgIHByZXZpb3VzQ29udGV4dD86IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHRcbik6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQgPT4ge1xuICAgIGxldCBpc1NlbGVjdGVkID0gaXNTZWxlY3RlZEVsZW1lbnQoYm9hcmQsIGVsZW1lbnQpO1xuICAgIGNvbnN0IHByZXZpb3VzRWxlbWVudCA9IHByZXZpb3VzQ29udGV4dCAmJiBwcmV2aW91c0NvbnRleHQuZWxlbWVudDtcbiAgICBpZiAocHJldmlvdXNFbGVtZW50ICYmIHByZXZpb3VzRWxlbWVudCAhPT0gZWxlbWVudCAmJiBpc1NlbGVjdGVkRWxlbWVudChib2FyZCwgcHJldmlvdXNFbGVtZW50KSkge1xuICAgICAgICBpc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgcmVwbGFjZVNlbGVjdGVkRWxlbWVudChib2FyZCwgcHJldmlvdXNFbGVtZW50LCBlbGVtZW50KTtcbiAgICB9XG4gICAgY29uc3QgY29udGV4dDogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dCA9IHtcbiAgICAgICAgZWxlbWVudDogZWxlbWVudCxcbiAgICAgICAgcGFyZW50OiBwYXJlbnQsXG4gICAgICAgIGJvYXJkOiBib2FyZCxcbiAgICAgICAgc2VsZWN0ZWQ6IGlzU2VsZWN0ZWQsXG4gICAgICAgIGluZGV4LFxuICAgICAgICBoYXNUaGVtZUNoYW5nZWQ6ICEhYm9hcmQub3BlcmF0aW9ucz8uZmluZChvcCA9PiBvcC50eXBlID09PSAnc2V0X3RoZW1lJylcbiAgICB9O1xuICAgIHJldHVybiBjb250ZXh0O1xufTtcblxuLy8gdGhlIGcgZGVwdGggb2Ygcm9vdCBlbGVtZW5077yaWzFdLVsyXS1bM10tWzRdXG4vLyB0aGUgZyBkZXB0aCBvZiByb290IGVsZW1lbnQgYW5kIGNoaWxkcmVuIGVsZW1lbnTvvIh0aGUgWzJdIGVsZW1lbnQgaGFzIGNoaWxkcmVu77yJ77yaXG4vLyBbMV0tXG4vLyBbMl0oWzItMS0xXVsyLTEtMl1bMi0xXVsyLTJdWzItMy0xXVsyLTMtMl1bMi0zXVsyXSktXG4vLyBbM10tXG4vLyBbNF1cbmV4cG9ydCBjb25zdCBtb3VudEVsZW1lbnRHID0gKFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgZzogU1ZHR0VsZW1lbnQsXG4gICAgY2hpbGRyZW5Db250ZXh0OiBQbGFpdENoaWxkcmVuQ29udGV4dCxcbiAgICAvLyBmb3IgbW92aW5nIHNjZW5lOiB0aGUgY3VycmVudCBpbmRleCBmb3IgZmlyc3QgZWxlbWVudCBiZWZvcmUgbW92aW5nXG4gICAgY3VycmVudEluZGV4Rm9yRmlyc3RFbGVtZW50OiBudW1iZXIgfCBudWxsID0gbnVsbFxuKSA9PiB7XG4gICAgY29uc3QgeyBwYXJlbnQsIHBhcmVudEcgfSA9IGNoaWxkcmVuQ29udGV4dDtcbiAgICBpZiAoUGxhaXRCb2FyZC5pc0JvYXJkKHBhcmVudCkpIHtcbiAgICAgICAgaWYgKGluZGV4ID4gMCkge1xuICAgICAgICAgICAgY29uc3QgcHJldmlvdXNFbGVtZW50ID0gcGFyZW50LmNoaWxkcmVuW2luZGV4IC0gMV07XG4gICAgICAgICAgICBjb25zdCBwcmV2aW91c0NvbnRhaW5lckcgPSBQbGFpdEVsZW1lbnQuZ2V0Q29udGFpbmVyRyhwcmV2aW91c0VsZW1lbnQsIHsgc3VwcHJlc3NUaHJvdzogZmFsc2UgfSk7XG4gICAgICAgICAgICBwcmV2aW91c0NvbnRhaW5lckcuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCdhZnRlcmVuZCcsIGcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRJbmRleEZvckZpcnN0RWxlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0RWxlbWVudCA9IHBhcmVudC5jaGlsZHJlbltjdXJyZW50SW5kZXhGb3JGaXJzdEVsZW1lbnRdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0Q29udGFpbmVyRyA9IGZpcnN0RWxlbWVudCAmJiBQbGFpdEVsZW1lbnQuZ2V0Q29udGFpbmVyRyhmaXJzdEVsZW1lbnQsIHsgc3VwcHJlc3NUaHJvdzogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICBpZiAoZmlyc3RFbGVtZW50ICYmIGZpcnN0Q29udGFpbmVyRykge1xuICAgICAgICAgICAgICAgICAgICBwYXJlbnRHLmluc2VydEJlZm9yZShnLCBmaXJzdENvbnRhaW5lckcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignZmFpbCB0byBtb3VudCBjb250YWluZXIgb24gbW92aW5nJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYXJlbnRHLmFwcGVuZChnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChpbmRleCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzRWxlbWVudCA9IChwYXJlbnQuY2hpbGRyZW4gYXMgUGxhaXRFbGVtZW50W10pW2luZGV4IC0gMV07XG4gICAgICAgICAgICBjb25zdCBwcmV2aW91c0VsZW1lbnRHID0gUGxhaXRFbGVtZW50LmdldEVsZW1lbnRHKHByZXZpb3VzRWxlbWVudCk7XG4gICAgICAgICAgICBwcmV2aW91c0VsZW1lbnRHLmluc2VydEFkamFjZW50RWxlbWVudCgnYWZ0ZXJlbmQnLCBnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50SW5kZXhGb3JGaXJzdEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0RWxlbWVudCA9IChwYXJlbnQuY2hpbGRyZW4gYXMgUGxhaXRFbGVtZW50W10pW2N1cnJlbnRJbmRleEZvckZpcnN0RWxlbWVudF07XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dFBhdGggPSBuZXh0RWxlbWVudCAmJiBQbGFpdEJvYXJkLmZpbmRQYXRoKGNoaWxkcmVuQ29udGV4dC5ib2FyZCwgbmV4dEVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0ID0gbmV4dFBhdGggJiYgUGxhaXROb2RlLmZpcnN0KGNoaWxkcmVuQ29udGV4dC5ib2FyZCwgbmV4dFBhdGgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0Q29udGFpbmVyRyA9IGZpcnN0ICYmIFBsYWl0RWxlbWVudC5nZXRDb250YWluZXJHKGZpcnN0LCB7IHN1cHByZXNzVGhyb3c6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgIGlmIChmaXJzdENvbnRhaW5lckcpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50Ry5pbnNlcnRCZWZvcmUoZywgZmlyc3RDb250YWluZXJHKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZhaWwgdG8gbW91bnQgY29udGFpbmVyIG9uIG1vdmluZycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbGV0IHBhcmVudEVsZW1lbnRHID0gUGxhaXRFbGVtZW50LmdldEVsZW1lbnRHKHBhcmVudCk7XG4gICAgICAgICAgICAgICAgcGFyZW50Ry5pbnNlcnRCZWZvcmUoZywgcGFyZW50RWxlbWVudEcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufTtcblxuY29uc3QgbW91bnRPbkl0ZW1Nb3ZlID0gKFxuICAgIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCxcbiAgICBpbmRleDogbnVtYmVyLFxuICAgIGNoaWxkcmVuQ29udGV4dDogUGxhaXRDaGlsZHJlbkNvbnRleHQsXG4gICAgY3VycmVudEluZGV4Rm9yRmlyc3RFbGVtZW50OiBudW1iZXIgfCBudWxsXG4pID0+IHtcbiAgICBjb25zdCBjb250YWluZXJHID0gUGxhaXRFbGVtZW50LmdldENvbnRhaW5lckcoZWxlbWVudCwgeyBzdXBwcmVzc1Rocm93OiBmYWxzZSB9KTtcbiAgICBtb3VudEVsZW1lbnRHKGluZGV4LCBjb250YWluZXJHLCBjaGlsZHJlbkNvbnRleHQsIGN1cnJlbnRJbmRleEZvckZpcnN0RWxlbWVudCk7XG4gICAgaWYgKGVsZW1lbnQuY2hpbGRyZW4gJiYgIVBsYWl0RWxlbWVudC5pc1Jvb3RFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgICAgIGVsZW1lbnQuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBtb3VudE9uSXRlbU1vdmUoY2hpbGQsIGluZGV4LCB7IC4uLmNoaWxkcmVuQ29udGV4dCwgcGFyZW50OiBlbGVtZW50IH0sIG51bGwpO1xuICAgICAgICB9KTtcbiAgICB9XG59O1xuIl19
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1yZW5kZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9jb3JlL2xpc3QtcmVuZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxVQUFVLEVBRVYsWUFBWSxFQUNaLFNBQVMsRUFFWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXRGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxNQUFNLE9BQU8sVUFBVTtJQU9uQixZQUFvQixLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBTjdCLGFBQVEsR0FBbUIsRUFBRSxDQUFDO1FBQzlCLGNBQVMsR0FBcUIsRUFBRSxDQUFDO1FBQ2pDLGFBQVEsR0FBZ0MsRUFBRSxDQUFDO1FBQzNDLFdBQU0sR0FBd0MsSUFBSSxDQUFDO1FBQ3BELGdCQUFXLEdBQUcsS0FBSyxDQUFDO0lBRWEsQ0FBQztJQUVsQyxVQUFVLENBQUMsUUFBd0IsRUFBRSxlQUFxQztRQUM3RSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ25DLGFBQWEsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLGNBQWMsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2RCxNQUFNLE9BQU8sR0FB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LENBQUMsQ0FBQztJQUMvRSxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDeEcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDdEMsZUFBZSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLGVBQWUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakYsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBbmNlc3RvcixcbiAgICBDb21wb25lbnRUeXBlLFxuICAgIFBsYWl0Qm9hcmQsXG4gICAgUGxhaXRDaGlsZHJlbkNvbnRleHQsXG4gICAgUGxhaXRFbGVtZW50LFxuICAgIFBsYWl0Tm9kZSxcbiAgICBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0XG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTk9ERV9UT19JTkRFWCwgTk9ERV9UT19QQVJFTlQgfSBmcm9tICcuLi91dGlscy93ZWFrLW1hcHMnO1xuaW1wb3J0IHsgaXNTZWxlY3RlZEVsZW1lbnQsIHJlcGxhY2VTZWxlY3RlZEVsZW1lbnQgfSBmcm9tICcuLi91dGlscy9zZWxlY3RlZC1lbGVtZW50JztcbmltcG9ydCB7IEVsZW1lbnRGbGF2b3VyIH0gZnJvbSAnLi9lbGVtZW50L2VsZW1lbnQtZmxhdm91cic7XG5pbXBvcnQgeyBEZWZhdWx0SXRlcmFibGVEaWZmZXIgfSBmcm9tICcuLi9kaWZmZXJzL2RlZmF1bHRfaXRlcmFibGVfZGlmZmVyJztcbmltcG9ydCB7IEl0ZXJhYmxlQ2hhbmdlUmVjb3JkLCBJdGVyYWJsZURpZmZlciB9IGZyb20gJy4uL2RpZmZlcnMvaXRlcmFibGVfZGlmZmVycyc7XG5pbXBvcnQgeyBpc0RlYnVnIH0gZnJvbSAnLi4vdXRpbHMvZGVidWcnO1xuXG5leHBvcnQgY2xhc3MgTGlzdFJlbmRlciB7XG4gICAgcHJpdmF0ZSBjaGlsZHJlbjogUGxhaXRFbGVtZW50W10gPSBbXTtcbiAgICBwcml2YXRlIGluc3RhbmNlczogRWxlbWVudEZsYXZvdXJbXSA9IFtdO1xuICAgIHByaXZhdGUgY29udGV4dHM6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHRbXSA9IFtdO1xuICAgIHByaXZhdGUgZGlmZmVyOiBJdGVyYWJsZURpZmZlcjxQbGFpdEVsZW1lbnQ+IHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJvYXJkOiBQbGFpdEJvYXJkKSB7fVxuXG4gICAgcHVibGljIGluaXRpYWxpemUoY2hpbGRyZW46IFBsYWl0RWxlbWVudFtdLCBjaGlsZHJlbkNvbnRleHQ6IFBsYWl0Q2hpbGRyZW5Db250ZXh0KSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XG4gICAgICAgIGNoaWxkcmVuLmZvckVhY2goKGRlc2NlbmRhbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBOT0RFX1RPX0lOREVYLnNldChkZXNjZW5kYW50LCBpbmRleCk7XG4gICAgICAgICAgICBOT0RFX1RPX1BBUkVOVC5zZXQoZGVzY2VuZGFudCwgY2hpbGRyZW5Db250ZXh0LnBhcmVudCk7XG4gICAgICAgICAgICBjb25zdCBjb250ZXh0ID0gZ2V0Q29udGV4dCh0aGlzLmJvYXJkLCBkZXNjZW5kYW50LCBpbmRleCwgY2hpbGRyZW5Db250ZXh0LnBhcmVudCk7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnRUeXBlID0gZ2V0Q29tcG9uZW50VHlwZSh0aGlzLmJvYXJkLCBjb250ZXh0KTtcbiAgICAgICAgICAgIGNvbnN0IGluc3RhbmNlID0gY3JlYXRlUGx1Z2luQ29tcG9uZW50KHRoaXMuYm9hcmQsIGNvbXBvbmVudFR5cGUsIGNvbnRleHQsIGNoaWxkcmVuQ29udGV4dCk7XG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlcy5wdXNoKGluc3RhbmNlKTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dHMucHVzaChjb250ZXh0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZGlmZmVyID0gbmV3IERlZmF1bHRJdGVyYWJsZURpZmZlcjxQbGFpdEVsZW1lbnQ+KHRyYWNrQnkpO1xuICAgICAgICB0aGlzLmRpZmZlci5kaWZmKGNoaWxkcmVuKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlKGNoaWxkcmVuOiBQbGFpdEVsZW1lbnRbXSwgY2hpbGRyZW5Db250ZXh0OiBQbGFpdENoaWxkcmVuQ29udGV4dCkge1xuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZShjaGlsZHJlbiwgY2hpbGRyZW5Db250ZXh0KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuZGlmZmVyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4Y2VwdGlvbjogQ2FuIG5vdCBmaW5kIGRpZmZlciAnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGJvYXJkLCBwYXJlbnQgfSA9IGNoaWxkcmVuQ29udGV4dDtcbiAgICAgICAgY29uc3QgZGlmZlJlc3VsdCA9IHRoaXMuZGlmZmVyLmRpZmYoY2hpbGRyZW4pO1xuICAgICAgICBpZiAoZGlmZlJlc3VsdCkge1xuICAgICAgICAgICAgY29uc3QgbmV3Q29udGV4dHM6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHRbXSA9IFtdO1xuICAgICAgICAgICAgY29uc3QgbmV3SW5zdGFuY2VzOiBFbGVtZW50Rmxhdm91cltdID0gW107XG4gICAgICAgICAgICAvLyBmb3IgbW92aW5nIHNjZW5lOiB0aGUgY3VycmVudCBpbmRleCBmb3IgZmlyc3QgZWxlbWVudCBiZWZvcmUgbW92aW5nXG4gICAgICAgICAgICBsZXQgY3VycmVudEluZGV4Rm9yRmlyc3RFbGVtZW50OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICAgICAgICAgIGRpZmZSZXN1bHQuZm9yRWFjaEl0ZW0oKHJlY29yZDogSXRlcmFibGVDaGFuZ2VSZWNvcmQ8UGxhaXRFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgIE5PREVfVE9fSU5ERVguc2V0KHJlY29yZC5pdGVtLCByZWNvcmQuY3VycmVudEluZGV4IGFzIG51bWJlcik7XG4gICAgICAgICAgICAgICAgTk9ERV9UT19QQVJFTlQuc2V0KHJlY29yZC5pdGVtLCBjaGlsZHJlbkNvbnRleHQucGFyZW50KTtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c0NvbnRleHQgPSByZWNvcmQucHJldmlvdXNJbmRleCA9PT0gbnVsbCA/IHVuZGVmaW5lZCA6IHRoaXMuY29udGV4dHNbcmVjb3JkLnByZXZpb3VzSW5kZXhdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBnZXRDb250ZXh0KGJvYXJkLCByZWNvcmQuaXRlbSwgcmVjb3JkLmN1cnJlbnRJbmRleCBhcyBudW1iZXIsIHBhcmVudCwgcHJldmlvdXNDb250ZXh0KTtcbiAgICAgICAgICAgICAgICBpZiAocmVjb3JkLnByZXZpb3VzSW5kZXggPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29tcG9uZW50VHlwZSA9IGdldENvbXBvbmVudFR5cGUoYm9hcmQsIGNvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSBjcmVhdGVQbHVnaW5Db21wb25lbnQoYm9hcmQsIGNvbXBvbmVudFR5cGUsIGNvbnRleHQsIGNoaWxkcmVuQ29udGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIG5ld0NvbnRleHRzLnB1c2goY29udGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIG5ld0luc3RhbmNlcy5wdXNoKGNvbXBvbmVudFJlZik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLmluc3RhbmNlc1tyZWNvcmQucHJldmlvdXNJbmRleF07XG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLmNvbnRleHQgPSBjb250ZXh0O1xuICAgICAgICAgICAgICAgICAgICBuZXdJbnN0YW5jZXMucHVzaChpbnN0YW5jZSk7XG4gICAgICAgICAgICAgICAgICAgIG5ld0NvbnRleHRzLnB1c2goY29udGV4dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGl0ZW0gbWlnaHQgaGFzIGJlZW4gY2hhbmdlZCwgc28gbmVlZCB0byBjb21wYXJlIHRoZSBpZFxuICAgICAgICAgICAgICAgIGlmIChyZWNvcmQuaXRlbSA9PT0gdGhpcy5jaGlsZHJlblswXSB8fCByZWNvcmQuaXRlbS5pZCA9PT0gdGhpcy5jaGlsZHJlblswXT8uaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEluZGV4Rm9yRmlyc3RFbGVtZW50ID0gcmVjb3JkLmN1cnJlbnRJbmRleDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGRpZmZSZXN1bHQuZm9yRWFjaE9wZXJhdGlvbihyZWNvcmQgPT4ge1xuICAgICAgICAgICAgICAgIC8vIHJlbW92ZWRcbiAgICAgICAgICAgICAgICBpZiAocmVjb3JkLmN1cnJlbnRJbmRleCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmluc3RhbmNlc1tyZWNvcmQucHJldmlvdXNJbmRleCBhcyBudW1iZXJdO1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWY/LmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gbW92ZWRcbiAgICAgICAgICAgICAgICBpZiAocmVjb3JkLnByZXZpb3VzSW5kZXggIT09IG51bGwgJiYgcmVjb3JkLmN1cnJlbnRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBtb3VudE9uSXRlbU1vdmUocmVjb3JkLml0ZW0sIHJlY29yZC5jdXJyZW50SW5kZXgsIGNoaWxkcmVuQ29udGV4dCwgY3VycmVudEluZGV4Rm9yRmlyc3RFbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2VzID0gbmV3SW5zdGFuY2VzO1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0cyA9IG5ld0NvbnRleHRzO1xuICAgICAgICAgICAgdGhpcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbmV3Q29udGV4dHM6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHRbXSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5jaGlsZHJlbi5mb3JFYWNoKChlbGVtZW50LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIE5PREVfVE9fSU5ERVguc2V0KGVsZW1lbnQsIGluZGV4KTtcbiAgICAgICAgICAgICAgICBOT0RFX1RPX1BBUkVOVC5zZXQoZWxlbWVudCwgY2hpbGRyZW5Db250ZXh0LnBhcmVudCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNDb250ZXh0ID0gdGhpcy5jb250ZXh0c1tpbmRleF07XG4gICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNJbnN0YW5jZSA9IHRoaXMuaW5zdGFuY2VzW2luZGV4XTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250ZXh0ID0gZ2V0Q29udGV4dChib2FyZCwgZWxlbWVudCwgaW5kZXgsIHBhcmVudCwgcHJldmlvdXNDb250ZXh0KTtcbiAgICAgICAgICAgICAgICBwcmV2aW91c0luc3RhbmNlLmNvbnRleHQgPSBjb250ZXh0O1xuICAgICAgICAgICAgICAgIG5ld0NvbnRleHRzLnB1c2goY29udGV4dCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dHMgPSBuZXdDb250ZXh0cztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBkZXN0cm95KCkge1xuICAgICAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2VzW2luZGV4XSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2VzW2luZGV4XS5kZXN0cm95KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmluc3RhbmNlcyA9IFtdO1xuICAgICAgICB0aGlzLmNoaWxkcmVuID0gW107XG4gICAgICAgIHRoaXMuY29udGV4dHMgPSBbXTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRpZmZlciA9IG51bGw7XG4gICAgfVxufVxuXG5jb25zdCB0cmFja0J5ID0gKGluZGV4OiBudW1iZXIsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIHJldHVybiBlbGVtZW50LmlkO1xufTtcblxuY29uc3QgY3JlYXRlUGx1Z2luQ29tcG9uZW50ID0gKFxuICAgIGJvYXJkOiBQbGFpdEJvYXJkLFxuICAgIGNvbXBvbmVudFR5cGU6IENvbXBvbmVudFR5cGU8RWxlbWVudEZsYXZvdXI+LFxuICAgIGNvbnRleHQ6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQsXG4gICAgY2hpbGRyZW5Db250ZXh0OiBQbGFpdENoaWxkcmVuQ29udGV4dFxuKSA9PiB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgY29tcG9uZW50VHlwZSgpO1xuICAgIGluc3RhbmNlLmNvbnRleHQgPSBjb250ZXh0O1xuICAgIHRyeSB7XG4gICAgICAgIGluc3RhbmNlLmluaXRpYWxpemUoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoaXNEZWJ1ZygpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdsaXN0LXJlbmRlci1pbml0aWFsaXplJywgZXJyb3IsICdjb250ZXh0JywgY29udGV4dCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgZyA9IGluc3RhbmNlLmdldENvbnRhaW5lckcoKTtcbiAgICBtb3VudEVsZW1lbnRHKGNvbnRleHQuaW5kZXgsIGcsIGNoaWxkcmVuQ29udGV4dCk7XG4gICAgaW5zdGFuY2UuaW5pdGlhbGl6ZUxpc3RSZW5kZXIoKTtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG59O1xuXG5jb25zdCBnZXRDb21wb25lbnRUeXBlID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBjb250ZXh0OiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0KSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYm9hcmQuZHJhd0VsZW1lbnQoY29udGV4dCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmNvbnN0IGdldENvbnRleHQgPSAoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgZWxlbWVudDogUGxhaXRFbGVtZW50LFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgcGFyZW50OiBBbmNlc3RvcixcbiAgICBwcmV2aW91c0NvbnRleHQ/OiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0XG4pOiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0ID0+IHtcbiAgICBsZXQgaXNTZWxlY3RlZCA9IGlzU2VsZWN0ZWRFbGVtZW50KGJvYXJkLCBlbGVtZW50KTtcbiAgICBjb25zdCBwcmV2aW91c0VsZW1lbnQgPSBwcmV2aW91c0NvbnRleHQgJiYgcHJldmlvdXNDb250ZXh0LmVsZW1lbnQ7XG4gICAgaWYgKHByZXZpb3VzRWxlbWVudCAmJiBwcmV2aW91c0VsZW1lbnQgIT09IGVsZW1lbnQgJiYgaXNTZWxlY3RlZEVsZW1lbnQoYm9hcmQsIHByZXZpb3VzRWxlbWVudCkpIHtcbiAgICAgICAgaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIHJlcGxhY2VTZWxlY3RlZEVsZW1lbnQoYm9hcmQsIHByZXZpb3VzRWxlbWVudCwgZWxlbWVudCk7XG4gICAgfVxuICAgIGNvbnN0IGNvbnRleHQ6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQgPSB7XG4gICAgICAgIGVsZW1lbnQ6IGVsZW1lbnQsXG4gICAgICAgIHBhcmVudDogcGFyZW50LFxuICAgICAgICBib2FyZDogYm9hcmQsXG4gICAgICAgIHNlbGVjdGVkOiBpc1NlbGVjdGVkLFxuICAgICAgICBpbmRleCxcbiAgICAgICAgaGFzVGhlbWVDaGFuZ2VkOiAhIWJvYXJkLm9wZXJhdGlvbnM/LmZpbmQob3AgPT4gb3AudHlwZSA9PT0gJ3NldF90aGVtZScpXG4gICAgfTtcbiAgICByZXR1cm4gY29udGV4dDtcbn07XG5cbi8vIHRoZSBnIGRlcHRoIG9mIHJvb3QgZWxlbWVudO+8mlsxXS1bMl0tWzNdLVs0XVxuLy8gdGhlIGcgZGVwdGggb2Ygcm9vdCBlbGVtZW50IGFuZCBjaGlsZHJlbiBlbGVtZW5077yIdGhlIFsyXSBlbGVtZW50IGhhcyBjaGlsZHJlbu+8ie+8mlxuLy8gWzFdLVxuLy8gWzJdKFsyLTEtMV1bMi0xLTJdWzItMV1bMi0yXVsyLTMtMV1bMi0zLTJdWzItM11bMl0pLVxuLy8gWzNdLVxuLy8gWzRdXG5leHBvcnQgY29uc3QgbW91bnRFbGVtZW50RyA9IChcbiAgICBpbmRleDogbnVtYmVyLFxuICAgIGc6IFNWR0dFbGVtZW50LFxuICAgIGNoaWxkcmVuQ29udGV4dDogUGxhaXRDaGlsZHJlbkNvbnRleHQsXG4gICAgLy8gZm9yIG1vdmluZyBzY2VuZTogdGhlIGN1cnJlbnQgaW5kZXggZm9yIGZpcnN0IGVsZW1lbnQgYmVmb3JlIG1vdmluZ1xuICAgIGN1cnJlbnRJbmRleEZvckZpcnN0RWxlbWVudDogbnVtYmVyIHwgbnVsbCA9IG51bGxcbikgPT4ge1xuICAgIGNvbnN0IHsgcGFyZW50LCBwYXJlbnRHIH0gPSBjaGlsZHJlbkNvbnRleHQ7XG4gICAgaWYgKFBsYWl0Qm9hcmQuaXNCb2FyZChwYXJlbnQpKSB7XG4gICAgICAgIGlmIChpbmRleCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzRWxlbWVudCA9IHBhcmVudC5jaGlsZHJlbltpbmRleCAtIDFdO1xuICAgICAgICAgICAgY29uc3QgcHJldmlvdXNDb250YWluZXJHID0gUGxhaXRFbGVtZW50LmdldENvbnRhaW5lckcocHJldmlvdXNFbGVtZW50LCB7IHN1cHByZXNzVGhyb3c6IGZhbHNlIH0pO1xuICAgICAgICAgICAgcHJldmlvdXNDb250YWluZXJHLmluc2VydEFkamFjZW50RWxlbWVudCgnYWZ0ZXJlbmQnLCBnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50SW5kZXhGb3JGaXJzdEVsZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaXJzdEVsZW1lbnQgPSBwYXJlbnQuY2hpbGRyZW5bY3VycmVudEluZGV4Rm9yRmlyc3RFbGVtZW50XTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaXJzdENvbnRhaW5lckcgPSBmaXJzdEVsZW1lbnQgJiYgUGxhaXRFbGVtZW50LmdldENvbnRhaW5lckcoZmlyc3RFbGVtZW50LCB7IHN1cHByZXNzVGhyb3c6IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgaWYgKGZpcnN0RWxlbWVudCAmJiBmaXJzdENvbnRhaW5lckcpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50Ry5pbnNlcnRCZWZvcmUoZywgZmlyc3RDb250YWluZXJHKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZhaWwgdG8gbW91bnQgY29udGFpbmVyIG9uIG1vdmluZycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFyZW50Ry5hcHBlbmQoZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoaW5kZXggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBwcmV2aW91c0VsZW1lbnQgPSAocGFyZW50LmNoaWxkcmVuIGFzIFBsYWl0RWxlbWVudFtdKVtpbmRleCAtIDFdO1xuICAgICAgICAgICAgY29uc3QgcHJldmlvdXNFbGVtZW50RyA9IFBsYWl0RWxlbWVudC5nZXRFbGVtZW50RyhwcmV2aW91c0VsZW1lbnQpO1xuICAgICAgICAgICAgcHJldmlvdXNFbGVtZW50Ry5pbnNlcnRBZGphY2VudEVsZW1lbnQoJ2FmdGVyZW5kJywgZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudEluZGV4Rm9yRmlyc3RFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dEVsZW1lbnQgPSAocGFyZW50LmNoaWxkcmVuIGFzIFBsYWl0RWxlbWVudFtdKVtjdXJyZW50SW5kZXhGb3JGaXJzdEVsZW1lbnRdO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5leHRQYXRoID0gbmV4dEVsZW1lbnQgJiYgUGxhaXRCb2FyZC5maW5kUGF0aChjaGlsZHJlbkNvbnRleHQuYm9hcmQsIG5leHRFbGVtZW50KTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaXJzdCA9IG5leHRQYXRoICYmIFBsYWl0Tm9kZS5maXJzdChjaGlsZHJlbkNvbnRleHQuYm9hcmQsIG5leHRQYXRoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaXJzdENvbnRhaW5lckcgPSBmaXJzdCAmJiBQbGFpdEVsZW1lbnQuZ2V0Q29udGFpbmVyRyhmaXJzdCwgeyBzdXBwcmVzc1Rocm93OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICBpZiAoZmlyc3RDb250YWluZXJHKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudEcuaW5zZXJ0QmVmb3JlKGcsIGZpcnN0Q29udGFpbmVyRyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdmYWlsIHRvIG1vdW50IGNvbnRhaW5lciBvbiBtb3ZpbmcnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxldCBwYXJlbnRFbGVtZW50RyA9IFBsYWl0RWxlbWVudC5nZXRFbGVtZW50RyhwYXJlbnQpO1xuICAgICAgICAgICAgICAgIHBhcmVudEcuaW5zZXJ0QmVmb3JlKGcsIHBhcmVudEVsZW1lbnRHKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmNvbnN0IG1vdW50T25JdGVtTW92ZSA9IChcbiAgICBlbGVtZW50OiBQbGFpdEVsZW1lbnQsXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBjaGlsZHJlbkNvbnRleHQ6IFBsYWl0Q2hpbGRyZW5Db250ZXh0LFxuICAgIGN1cnJlbnRJbmRleEZvckZpcnN0RWxlbWVudDogbnVtYmVyIHwgbnVsbFxuKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyRyA9IFBsYWl0RWxlbWVudC5nZXRDb250YWluZXJHKGVsZW1lbnQsIHsgc3VwcHJlc3NUaHJvdzogZmFsc2UgfSk7XG4gICAgbW91bnRFbGVtZW50RyhpbmRleCwgY29udGFpbmVyRywgY2hpbGRyZW5Db250ZXh0LCBjdXJyZW50SW5kZXhGb3JGaXJzdEVsZW1lbnQpO1xuICAgIGlmIChlbGVtZW50LmNoaWxkcmVuICYmICFQbGFpdEVsZW1lbnQuaXNSb290RWxlbWVudChlbGVtZW50KSAmJiBjaGlsZHJlbkNvbnRleHQuYm9hcmQuaXNFeHBhbmRlZChlbGVtZW50KSkge1xuICAgICAgICBlbGVtZW50LmNoaWxkcmVuLmZvckVhY2goKGNoaWxkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgbW91bnRPbkl0ZW1Nb3ZlKGNoaWxkLCBpbmRleCwgeyAuLi5jaGlsZHJlbkNvbnRleHQsIHBhcmVudDogZWxlbWVudCB9LCBudWxsKTtcbiAgICAgICAgfSk7XG4gICAgfVxufTtcbiJdfQ==
@@ -102,4 +102,4 @@ export const PlaitBoard = {
102
102
  return (board.options.themeColors || ThemeColors);
103
103
  }
104
104
  };
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9hcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9pbnRlcmZhY2VzL2JvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsOEJBQThCLEVBQzlCLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsY0FBYyxFQUNqQixNQUFNLG9CQUFvQixDQUFDO0FBSTVCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSTFELE9BQU8sRUFBMEIsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQW9GakUsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3RCLE9BQU8sQ0FBQyxLQUFVO1FBQ2QsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxJQUFJLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM5QixPQUFPLGFBQWEsQ0FBQztRQUN6QixDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsT0FBTyxLQUFLLENBQUMsUUFBUSxLQUFLLFVBQVUsSUFBSSxPQUFPLEtBQUssQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDO1FBQzFGLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFDRCxPQUFPLENBQUMsS0FBaUI7UUFDckIsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDckIsQ0FBQztJQUNELFFB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QUM5QixDQUFDO0lBQ0QsU0FBUyxDQUF1QixLQUFpQixFQUFFLE9BQVU7UUFDekQsT0FBTyxLQUFLLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQztJQUNyQyxDQUFDO0lBQ0QsV0FBVyxDQUF1QixLQUFpQixFQUFFLFFBQWE7UUFDOUQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQVksQ0FBQztRQUNqQyxPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELHFCQUFxQixDQUFDLEtBQWlCO1FBQ25DLE9BQU8sOEJBQThCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxLQUFpQjtRQUNsQyxNQUFNLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDekUsSUFBSSxLQUFLLElBQUksZ0NBQWdDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1RSxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELGNBQWMsQ0FBb0MsS0FBaUI7UUFDL0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBUSxDQUFDO0lBQzdELENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRQb2ludGVyVHlwZSB9IGZyb20gJy4vcG9pbnRlcic7XG5pbXBvcnQgeyBDb21wb25lbnRUeXBlLCBQbGFpdEVsZW1lbnQgfSBmcm9tICcuL2VsZW1lbnQnO1xuaW1wb3J0IHsgUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dCB9IGZyb20gJy4uL2NvcmUvZWxlbWVudC9jb250ZXh0JztcbmltcG9ydCB7IFBsYWl0SGlzdG9yeSB9IGZyb20gJy4vaGlzdG9yeSc7XG5pbXBvcnQgeyBQbGFpdE9wZXJhdGlvbiB9IGZyb20gJy4vb3BlcmF0aW9uJztcbmltcG9ydCB7IFNlbGVjdGlvbiB9IGZyb20gJy4vc2VsZWN0aW9uJztcbmltcG9ydCB7IFZpZXdwb3J0IH0gZnJvbSAnLi92aWV3cG9ydCc7XG5pbXBvcnQge1xuICAgIEJPQVJEX1RPX0NPTlRFWFQsXG4gICAgQk9BUkRfVE9fRUxFTUVOVF9IT1NULFxuICAgIEJPQVJEX1RPX0hPU1QsXG4gICAgQk9BUkRfVE9fTU9WSU5HX1BPSU5ULFxuICAgIEJPQVJEX1RPX01PVklOR19QT0lOVF9JTl9CT0FSRCxcbiAgICBCT0FSRF9UT19ST1VHSF9TVkcsXG4gICAgSVNfQk9BUkRfQUxJVkUsXG4gICAgSVNfQk9BUkRfQ0FDSEUsXG4gICAgSVNfVEVYVF9FRElUQUJMRSxcbiAgICBOT0RFX1RPX0lOREVYLFxuICAgIE5PREVfVE9fUEFSRU5UXG59IGZyb20gJy4uL3V0aWxzL3dlYWstbWFwcyc7XG5pbXBvcnQgeyBSb3VnaFNWRyB9IGZyb20gJ3JvdWdoanMvYmluL3N2Zyc7XG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJy4vcG9pbnQnO1xuaW1wb3J0IHsgUmVjdGFuZ2xlQ2xpZW50IH0gZnJvbSAnLi9yZWN0YW5nbGUtY2xpZW50JztcbmltcG9ydCB7IGdldFJlY3RhbmdsZUJ5RWxlbWVudHMgfSBmcm9tICcuLi91dGlscy9lbGVtZW50JztcbmltcG9ydCB7IFBhdGhSZWYsIFBhdGhSZWZPcHRpb25zIH0gZnJvbSAnLi9wYXRoLXJlZic7XG5pbXBvcnQgeyBBbmNlc3RvciwgUGxhaXROb2RlIH0gZnJvbSAnLi9ub2RlJztcbmltcG9ydCB7IFBhdGggfSBmcm9tICcuL3BhdGgnO1xuaW1wb3J0IHsgUGxhaXRUaGVtZSwgVGhlbWVDb2xvciwgVGhlbWVDb2xvcnMgfSBmcm9tICcuL3RoZW1lJztcbmltcG9ydCB7IGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUmVjdGFuZ2xlIH0gZnJvbSAnLi4vdXRpbHMvbWF0aCc7XG5pbXBvcnQgeyBDbGlwYm9hcmREYXRhLCBXcml0YWJsZUNsaXBib2FyZENvbnRleHQsIFdyaXRhYmxlQ2xpcGJvYXJkT3BlcmF0aW9uVHlwZSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEVsZW1lbnRGbGF2b3VyIH0gZnJvbSAnLi4vY29yZS9lbGVtZW50L2VsZW1lbnQtZmxhdm91cic7XG5pbXBvcnQgeyBQbGFpdEJvYXJkQ29udGV4dCB9IGZyb20gJy4uL2NvbnRleHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWl0Qm9hcmQge1xuICAgIHZpZXdwb3J0OiBWaWV3cG9ydDtcbiAgICBjaGlsZHJlbjogUGxhaXRFbGVtZW50W107XG4gICAgdGhlbWU6IFBsYWl0VGhlbWU7XG4gICAgb3BlcmF0aW9uczogUGxhaXRPcGVyYXRpb25bXTtcbiAgICAvLyByZWNvcmQgcG9pbnRlciBzZWxlY3Rpb24gb3IgZHJhZyBzZWxlY3Rpb25cbiAgICAvLyBpdCB3aWxsIGJlIGRpcnR5IHdoZW4gYm9hcmQgdmlld3BvcnQgY2hhbmdlXG4gICAgc2VsZWN0aW9uOiBTZWxlY3Rpb24gfCBudWxsO1xuICAgIHBvaW50ZXI6IFBsYWl0UG9pbnRlclR5cGUgfCBzdHJpbmc7XG4gICAgaGlzdG9yeTogUGxhaXRIaXN0b3J5O1xuICAgIG9wdGlvbnM6IFBsYWl0Qm9hcmRPcHRpb25zO1xuICAgIHVuZG86ICgpID0+IHZvaWQ7XG4gICAgcmVkbzogKCkgPT4gdm9pZDtcbiAgICBhcHBseTogKG9wZXJhdGlvbjogUGxhaXRPcGVyYXRpb24pID0+IHZvaWQ7XG4gICAgb25DaGFuZ2U6ICgpID0+IHZvaWQ7XG4gICAgYWZ0ZXJDaGFuZ2U6ICgpID0+IHZvaWQ7XG4gICAgZHJhd1NlbGVjdGlvblJlY3RhbmdsZTogKCkgPT4gU1ZHR0VsZW1lbnQgfCBudWxsO1xuICAgIG1vdXNlZG93bjogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICAgIG1vdXNlbW92ZTogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICAgIG1vdXNlbGVhdmU6IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgICBtb3VzZXVwOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgZ2xvYmFsTW91c2Vtb3ZlOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgZ2xvYmFsTW91c2V1cDogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICAgIGtleURvd246IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdm9pZDtcbiAgICBnbG9iYWxLZXlEb3duOiAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHZvaWQ7XG4gICAga2V5VXA6IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdm9pZDtcbiAgICBidWlsZEZyYWdtZW50OiAoXG4gICAgICAgIGNsaXBib2FyZENvbnRleHQ6IFdyaXRhYmxlQ2xpcGJvYXJkQ29udGV4dCB8IG51bGwsXG4gICAgICAgIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50IHwgbnVsbCxcbiAgICAgICAgb3BlcmF0aW9uVHlwZTogV3JpdGFibGVDbGlwYm9hcmRPcGVyYXRpb25UeXBlLFxuICAgICAgICBvcmlnaW5EYXRhPzogUGxhaXRFbGVtZW50W11cbiAgICApID0+IFdyaXRhYmxlQ2xpcGJvYXJkQ29udGV4dCB8IG51bGw7XG4gICAgaW5zZXJ0RnJhZ21lbnQ6IChjbGlwYm9hcmREYXRhOiBDbGlwYm9hcmREYXRhIHwgbnVsbCwgdGFyZ2V0UG9pbnQ6IFBvaW50LCBvcGVyYXRpb25UeXBlPzogV3JpdGFibGVDbGlwYm9hcmRPcGVyYXRpb25UeXBlKSA9PiB2b2lkO1xuICAgIGRlbGV0ZUZyYWdtZW50OiAoZGF0YTogUGxhaXRFbGVtZW50W10pID0+IHZvaWQ7XG4gICAgZ2V0RGVsZXRlZEZyYWdtZW50OiAoZGF0YTogUGxhaXRFbGVtZW50W10pID0+IFBsYWl0RWxlbWVudFtdO1xuICAgIGdldFJlbGF0ZWRGcmFnbWVudDogKGRhdGE6IFBsYWl0RWxlbWVudFtdLCBvcmlnaW5EYXRhPzogUGxhaXRFbGVtZW50W10pID0+IFBsYWl0RWxlbWVudFtdO1xuICAgIGRibENsaWNrOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgZHJhd0VsZW1lbnQ6IChjb250ZXh0OiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0KSA9PiBDb21wb25lbnRUeXBlPEVsZW1lbnRGbGF2b3VyPjtcbiAgICBpc1JlY3RhbmdsZUhpdDogKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCwgcmFuZ2U6IFNlbGVjdGlvbikgPT4gYm9vbGVhbjtcbiAgICAvLyBXaGVuIHRoZSBlbGVtZW50IGhhcyBubyBmaWxsIGNvbG9yLCBpdCBpcyBjb25zaWRlcmVkIGEgaGl0IG9ubHkgaWYgaXQgaGl0cyB0aGUgYm9yZGVyLlxuICAgIGlzSGl0OiAoZWxlbWVudDogUGxhaXRFbGVtZW50LCBwb2ludDogUG9pbnQpID0+IGJvb2xlYW47XG4gICAgaXNJbnNpZGVQb2ludDogKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCwgcG9pbnQ6IFBvaW50KSA9PiBib29sZWFuO1xuICAgIC8vIHRoZSBoaXQgZWxlbWVudCBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBwbHVnaW5cbiAgICBnZXRPbmVIaXRFbGVtZW50OiAoaGl0RWxlbWVudHM6IFBsYWl0RWxlbWVudFtdKSA9PiBQbGFpdEVsZW1lbnQ7XG4gICAgaXNSZWN1cnNpb246IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IGJvb2xlYW47XG4gICAgaXNNb3ZhYmxlOiAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiBib29sZWFuO1xuICAgIGdldFJlY3RhbmdsZTogKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4gUmVjdGFuZ2xlQ2xpZW50IHwgbnVsbDtcbiAgICBpc1dpdGhpblNlbGVjdGlvbjogKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4gYm9vbGVhbjtcbiAgICBwYXRoUmVmOiAocGF0aDogUGF0aCwgb3B0aW9ucz86IFBhdGhSZWZPcHRpb25zKSA9PiBQYXRoUmVmO1xuICAgIHBhdGhSZWZzOiAoKSA9PiBTZXQ8UGF0aFJlZj47XG4gICAgYXBwbHlUaGVtZTogKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4gdm9pZDtcbiAgICBpc0FsaWduOiAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiBib29sZWFuO1xuICAgIGlzSW1hZ2VCaW5kaW5nQWxsb3dlZDogKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4gYm9vbGVhbjtcbiAgICBjYW5BZGRUb0dyb3VwOiAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiBib29sZWFuO1xuICAgIGNhblNldFpJbmRleDogKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4gYm9vbGVhbjtcbiAgICBpc0V4cGFuZGVkOiAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiBib29sZWFuO1xuICAgIC8vIHBvaW50ZXIgaG9va1xuICAgIHBvaW50ZXJEb3duOiAocG9pbnRlcjogUG9pbnRlckV2ZW50KSA9PiB2b2lkO1xuICAgIHBvaW50ZXJNb3ZlOiAocG9pbnRlcjogUG9pbnRlckV2ZW50KSA9PiB2b2lkO1xuICAgIHBvaW50ZXJVcDogKHBvaW50ZXI6IFBvaW50ZXJFdmVudCkgPT4gdm9pZDtcbiAgICBwb2ludGVyQ2FuY2VsOiAocG9pbnRlcjogUG9pbnRlckV2ZW50KSA9PiB2b2lkO1xuICAgIHBvaW50ZXJPdXQ6IChwb2ludGVyOiBQb2ludGVyRXZlbnQpID0+IHZvaWQ7XG4gICAgcG9pbnRlckxlYXZlOiAocG9pbnRlcjogUG9pbnRlckV2ZW50KSA9PiB2b2lkO1xuICAgIGdsb2JhbFBvaW50ZXJNb3ZlOiAocG9pbnRlcjogUG9pbnRlckV2ZW50KSA9PiB2b2lkO1xuICAgIGdsb2JhbFBvaW50ZXJVcDogKHBvaW50ZXI6IFBvaW50ZXJFdmVudCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFpdEJvYXJkT3B0aW9ucyB7XG4gICAgcmVhZG9ubHk/OiBib29sZWFuO1xuICAgIGhpZGVTY3JvbGxiYXI/OiBib29sZWFuO1xuICAgIGRpc2FibGVkU2Nyb2xsT25Ob25Gb2N1cz86IGJvb2xlYW47XG4gICAgdGhlbWVDb2xvcnM/OiBUaGVtZUNvbG9yW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhaXRCb2FyZE1vdmUge1xuICAgIHg6IG51bWJlcjtcbiAgICB5OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBQbGFpdEJvYXJkID0ge1xuICAgIGlzQm9hcmQodmFsdWU6IGFueSk6IHZhbHVlIGlzIFBsYWl0Qm9hcmQge1xuICAgICAgICBjb25zdCBjYWNoZWRJc0JvYXJkID0gSVNfQk9BUkRfQ0FDSEUuZ2V0KHZhbHVlKTtcbiAgICAgICAgaWYgKGNhY2hlZElzQm9hcmQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZElzQm9hcmQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNCb2FyZCA9IHR5cGVvZiB2YWx1ZS5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgdmFsdWUuYXBwbHkgPT09ICdmdW5jdGlvbic7XG4gICAgICAgIElTX0JPQVJEX0NBQ0hFLnNldCh2YWx1ZSwgaXNCb2FyZCk7XG4gICAgICAgIHJldHVybiBpc0JvYXJkO1xuICAgIH0sXG4gICAgaXNBbGl2ZShib2FyZDogUGxhaXRCb2FyZCkge1xuICAgICAgICBjb25zdCBpc0FsaXZlID0gSVNfQk9BUkRfQUxJVkUuZ2V0KGJvYXJkKTtcbiAgICAgICAgcmV0dXJuICEhaXNBbGl2ZTtcbiAgICB9LFxuICAgIGZpbmRQYXRoKGJvYXJkOiBQbGFpdEJvYXJkLCBub2RlOiBQbGFpdE5vZGUpOiBQYXRoIHtcbiAgICAgICAgY29uc3QgcGF0aDogUGF0aCA9IFtdO1xuICAgICAgICBsZXQgY2hpbGQ6IEFuY2VzdG9yID0gbm9kZTtcbiAgICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IE5PREVfVE9fUEFSRU5ULmdldChjaGlsZCBhcyBQbGFpdEVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKHBhcmVudCA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKFBsYWl0Qm9hcmQuaXNCb2FyZChjaGlsZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgaSA9IE5PREVfVE9fSU5ERVguZ2V0KGNoaWxkIGFzIFBsYWl0RWxlbWVudCk7XG4gICAgICAgICAgICBpZiAoaSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXRoLnVuc2hpZnQoaSk7XG4gICAgICAgICAgICBjaGlsZCA9IHBhcmVudDtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBmaW5kIHRoZSBwYXRoIGZvciBQbGFpdCBub2RlOiAke0pTT04uc3RyaW5naWZ5KG5vZGUpfWApO1xuICAgIH0sXG4gICAgZ2V0SG9zdChib2FyZDogUGxhaXRCb2FyZCkge1xuICAgICAgICByZXR1cm4gQk9BUkRfVE9fSE9TVC5nZXQoYm9hcmQpIGFzIFNWR1NWR0VsZW1lbnQ7XG4gICAgfSxcbiAgICBnZXRFbGVtZW50TG93ZXJIb3N0KGJvYXJkOiBQbGFpdEJvYXJkKSB7XG4gICAgICAgIHJldHVybiBCT0FSRF9UT19FTEVNRU5UX0hPU1QuZ2V0KGJvYXJkKT8ubG93ZXJIb3N0IGFzIFNWR1NWR0VsZW1lbnQ7XG4gICAgfSxcbiAgICBnZXRFbGVtZW50SG9zdChib2FyZDogUGxhaXRCb2FyZCkge1xuICAgICAgICByZXR1cm4gQk9BUkRfVE9fRUxFTUVOVF9IT1NULmdldChib2FyZCk/Lmhvc3QgYXMgU1ZHU1ZHRWxlbWVudDtcbiAgICB9LFxuICAgIGdldEVsZW1lbnRVcHBlckhvc3QoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICAgICAgcmV0dXJuIEJPQVJEX1RPX0VMRU1FTlRfSE9TVC5nZXQoYm9hcmQpPy51cHBlckhvc3QgYXMgU1ZHU1ZHRWxlbWVudDtcbiAgICB9LFxuICAgIGdldEVsZW1lbnRBY3RpdmVIb3N0KGJvYXJkOiBQbGFpdEJvYXJkKSB7XG4gICAgICAgIHJldHVybiBCT0FSRF9UT19FTEVNRU5UX0hPU1QuZ2V0KGJvYXJkKT8uYWN0aXZlSG9zdCBhcyBTVkdTVkdFbGVtZW50O1xuICAgIH0sXG4gICAgZ2V0Um91Z2hTVkcoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICAgICAgcmV0dXJuIEJPQVJEX1RPX1JPVUdIX1NWRy5nZXQoYm9hcmQpIGFzIFJvdWdoU1ZHO1xuICAgIH0sXG4gICAgZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICAgICAgcmV0dXJuIEJPQVJEX1RPX0VMRU1FTlRfSE9TVC5nZXQoYm9hcmQpPy5jb250YWluZXIgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfSxcbiAgICBnZXRCb2FyZENvbnRleHQoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICAgICAgcmV0dXJuIEJPQVJEX1RPX0NPTlRFWFQuZ2V0KGJvYXJkKSBhcyBQbGFpdEJvYXJkQ29udGV4dDtcbiAgICB9LFxuICAgIGdldFJlY3RhbmdsZShib2FyZDogUGxhaXRCb2FyZCkge1xuICAgICAgICByZXR1cm4gZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyhib2FyZCwgYm9hcmQuY2hpbGRyZW4sIHRydWUpO1xuICAgIH0sXG4gICAgZ2V0Vmlld3BvcnRDb250YWluZXIoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICAgICAgcmV0dXJuIEJPQVJEX1RPX0VMRU1FTlRfSE9TVC5nZXQoYm9hcmQpPy52aWV3cG9ydENvbnRhaW5lciBhcyBIVE1MRWxlbWVudDtcbiAgICB9LFxuICAgIGlzRm9jdXMoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICAgICAgcmV0dXJuICEhYm9hcmQuc2VsZWN0aW9uO1xuICAgIH0sXG4gICAgaXNSZWFkb25seShib2FyZDogUGxhaXRCb2FyZCkge1xuICAgICAgICByZXR1cm4gYm9hcmQub3B0aW9ucy5yZWFkb25seTtcbiAgICB9LFxuICAgIGhhc0JlZW5UZXh0RWRpdGluZyhib2FyZDogUGxhaXRCb2FyZCkge1xuICAgICAgICByZXR1cm4gISFJU19URVhUX0VESVRBQkxFLmdldChib2FyZCk7XG4gICAgfSxcbiAgICBnZXRQb2ludGVyPFQgPSBQbGFpdFBvaW50ZXJUeXBlPihib2FyZDogUGxhaXRCb2FyZCkge1xuICAgICAgICByZXR1cm4gYm9hcmQucG9pbnRlciBhcyBUO1xuICAgIH0sXG4gICAgaXNQb2ludGVyPFQgPSBQbGFpdFBvaW50ZXJUeXBlPihib2FyZDogUGxhaXRCb2FyZCwgcG9pbnRlcjogVCkge1xuICAgICAgICByZXR1cm4gYm9hcmQucG9pbnRlciA9PT0gcG9pbnRlcjtcbiAgICB9LFxuICAgIGlzSW5Qb2ludGVyPFQgPSBQbGFpdFBvaW50ZXJUeXBlPihib2FyZDogUGxhaXRCb2FyZCwgcG9pbnRlcnM6IFRbXSkge1xuICAgICAgICBjb25zdCBwb2ludCA9IGJvYXJkLnBvaW50ZXIgYXMgVDtcbiAgICAgICAgcmV0dXJuIHBvaW50ZXJzLmluY2x1ZGVzKHBvaW50KTtcbiAgICB9LFxuICAgIGdldE1vdmluZ1BvaW50SW5Cb2FyZChib2FyZDogUGxhaXRCb2FyZCkge1xuICAgICAgICByZXR1cm4gQk9BUkRfVE9fTU9WSU5HX1BPSU5UX0lOX0JPQVJELmdldChib2FyZCk7XG4gICAgfSxcbiAgICBpc01vdmluZ1BvaW50SW5Cb2FyZChib2FyZDogUGxhaXRCb2FyZCkge1xuICAgICAgICBjb25zdCBwb2ludCA9IEJPQVJEX1RPX01PVklOR19QT0lOVC5nZXQoYm9hcmQpO1xuICAgICAgICBjb25zdCByZWN0ID0gUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGlmIChwb2ludCAmJiBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFJlY3RhbmdsZShwb2ludFswXSwgcG9pbnRbMV0sIHJlY3QpID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSxcbiAgICBnZXRUaGVtZUNvbG9yczxUIGV4dGVuZHMgVGhlbWVDb2xvciA9IFRoZW1lQ29sb3I+KGJvYXJkOiBQbGFpdEJvYXJkKSB7XG4gICAgICAgIHJldHVybiAoYm9hcmQub3B0aW9ucy50aGVtZUNvbG9ycyB8fCBUaGVtZUNvbG9ycykgYXMgVFtdO1xuICAgIH1cbn07XG4iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9hcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9pbnRlcmZhY2VzL2JvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsOEJBQThCLEVBQzlCLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsY0FBYyxFQUNqQixNQUFNLG9CQUFvQixDQUFDO0FBSTVCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSTFELE9BQU8sRUFBMEIsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQW9GakUsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3RCLE9BQU8sQ0FBQyxLQUFVO1FBQ2QsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxJQUFJLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM5QixPQUFPLGFBQWEsQ0FBQztRQUN6QixDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsT0FBTyxLQUFLLENBQUMsUUFBUSxLQUFLLFVBQVUsSUFBSSxPQUFPLEtBQUssQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDO1FBQzFGLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFDRCxPQUFPLENBQUMsS0FBaUI7UUFDckIsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDckIsQ0FBQztJQUNELFFB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QUM5QixDQUFDO0lBQ0QsU0FBUyxDQUF1QixLQUFpQixFQUFFLE9BQVU7UUFDekQsT0FBTyxLQUFLLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQztJQUNyQyxDQUFDO0lBQ0QsV0FBVyxDQUF1QixLQUFpQixFQUFFLFFBQWE7UUFDOUQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQVksQ0FBQztRQUNqQyxPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELHFCQUFxQixDQUFDLEtBQWlCO1FBQ25DLE9BQU8sOEJBQThCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxLQUFpQjtRQUNsQyxNQUFNLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDekUsSUFBSSxLQUFLLElBQUksZ0NBQWdDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1RSxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELGNBQWMsQ0FBb0MsS0FBaUI7UUFDL0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBUSxDQUFDO0lBQzdELENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRQb2ludGVyVHlwZSB9IGZyb20gJy4vcG9pbnRlcic7XG5pbXBvcnQgeyBDb21wb25lbnRUeXBlLCBQbGFpdEVsZW1lbnQgfSBmcm9tICcuL2VsZW1lbnQnO1xuaW1wb3J0IHsgUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dCB9IGZyb20gJy4uL2NvcmUvZWxlbWVudC9jb250ZXh0JztcbmltcG9ydCB7IFBsYWl0SGlzdG9yeSB9IGZyb20gJy4vaGlzdG9yeSc7XG5pbXBvcnQgeyBQbGFpdE9wZXJhdGlvbiB9IGZyb20gJy4vb3BlcmF0aW9uJztcbmltcG9ydCB7IFNlbGVjdGlvbiB9IGZyb20gJy4vc2VsZWN0aW9uJztcbmltcG9ydCB7IFZpZXdwb3J0IH0gZnJvbSAnLi92aWV3cG9ydCc7XG5pbXBvcnQge1xuICAgIEJPQVJEX1RPX0NPTlRFWFQsXG4gICAgQk9BUkRfVE9fRUxFTUVOVF9IT1NULFxuICAgIEJPQVJEX1RPX0hPU1QsXG4gICAgQk9BUkRfVE9fTU9WSU5HX1BPSU5ULFxuICAgIEJPQVJEX1RPX01PVklOR19QT0lOVF9JTl9CT0FSRCxcbiAgICBCT0FSRF9UT19ST1VHSF9TVkcsXG4gICAgSVNfQk9BUkRfQUxJVkUsXG4gICAgSVNfQk9BUkRfQ0FDSEUsXG4gICAgSVNfVEVYVF9FRElUQUJMRSxcbiAgICBOT0RFX1RPX0lOREVYLFxuICAgIE5PREVfVE9fUEFSRU5UXG59IGZyb20gJy4uL3V0aWxzL3dlYWstbWFwcyc7XG5pbXBvcnQgeyBSb3VnaFNWRyB9IGZyb20gJ3JvdWdoanMvYmluL3N2Zyc7XG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJy4vcG9pbnQnO1xuaW1wb3J0IHsgUmVjdGFuZ2xlQ2xpZW50IH0gZnJvbSAnLi9yZWN0YW5nbGUtY2xpZW50JztcbmltcG9ydCB7IGdldFJlY3RhbmdsZUJ5RWxlbWVudHMgfSBmcm9tICcuLi91dGlscy9lbGVtZW50JztcbmltcG9ydCB7IFBhdGhSZWYsIFBhdGhSZWZPcHRpb25zIH0gZnJvbSAnLi9wYXRoLXJlZic7XG5pbXBvcnQgeyBBbmNlc3RvciwgUGxhaXROb2RlIH0gZnJvbSAnLi9ub2RlJztcbmltcG9ydCB7IFBhdGggfSBmcm9tICcuL3BhdGgnO1xuaW1wb3J0IHsgUGxhaXRUaGVtZSwgVGhlbWVDb2xvciwgVGhlbWVDb2xvcnMgfSBmcm9tICcuL3RoZW1lJztcbmltcG9ydCB7IGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUmVjdGFuZ2xlIH0gZnJvbSAnLi4vdXRpbHMvbWF0aCc7XG5pbXBvcnQgeyBDbGlwYm9hcmREYXRhLCBXcml0YWJsZUNsaXBib2FyZENvbnRleHQsIFdyaXRhYmxlQ2xpcGJvYXJkT3BlcmF0aW9uVHlwZSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEVsZW1lbnRGbGF2b3VyIH0gZnJvbSAnLi4vY29yZS9lbGVtZW50L2VsZW1lbnQtZmxhdm91cic7XG5pbXBvcnQgeyBQbGFpdEJvYXJkQ29udGV4dCB9IGZyb20gJy4uL2NvbnRleHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWl0Qm9hcmQge1xuICAgIHZpZXdwb3J0OiBWaWV3cG9ydDtcbiAgICBjaGlsZHJlbjogUGxhaXRFbGVtZW50W107XG4gICAgdGhlbWU6IFBsYWl0VGhlbWU7XG4gICAgb3BlcmF0aW9uczogUGxhaXRPcGVyYXRpb25bXTtcbiAgICAvLyByZWNvcmQgcG9pbnRlciBzZWxlY3Rpb24gb3IgZHJhZyBzZWxlY3Rpb25cbiAgICAvLyBpdCB3aWxsIGJlIGRpcnR5IHdoZW4gYm9hcmQgdmlld3BvcnQgY2hhbmdlXG4gICAgc2VsZWN0aW9uOiBTZWxlY3Rpb24gfCBudWxsO1xuICAgIHBvaW50ZXI6IFBsYWl0UG9pbnRlclR5cGUgfCBzdHJpbmc7XG4gICAgaGlzdG9yeTogUGxhaXRIaXN0b3J5O1xuICAgIG9wdGlvbnM6IFBsYWl0Qm9hcmRPcHRpb25zO1xuICAgIHVuZG86ICgpID0+IHZvaWQ7XG4gICAgcmVkbzogKCkgPT4gdm9pZDtcbiAgICBhcHBseTogKG9wZXJhdGlvbjogUGxhaXRPcGVyYXRpb24pID0+IHZvaWQ7XG4gICAgb25DaGFuZ2U6ICgpID0+IHZvaWQ7XG4gICAgYWZ0ZXJDaGFuZ2U6ICgpID0+IHZvaWQ7XG4gICAgZHJhd1NlbGVjdGlvblJlY3RhbmdsZTogKCkgPT4gU1ZHR0VsZW1lbnQgfCBudWxsO1xuICAgIG1vdXNlZG93bjogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICAgIG1vdXNlbW92ZTogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICAgIG1vdXNlbGVhdmU6IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgICBtb3VzZXVwOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgZ2xvYmFsTW91c2Vtb3ZlOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgZ2xvYmFsTW91c2V1cDogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICAgIGtleURvd246IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdm9pZDtcbiAgICBnbG9iYWxLZXlEb3duOiAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHZvaWQ7XG4gICAga2V5VXA6IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdm9pZDtcbiAgICBidWlsZEZyYWdtZW50OiAoXG4gICAgICAgIGNsaXBib2FyZENvbnRleHQ6IFdyaXRhYmxlQ2xpcGJvYXJkQ29udGV4dCB8IG51bGwsXG4gICAgICAgIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50IHwgbnVsbCxcbiAgICAgICAgb3BlcmF0aW9uVHlwZTogV3JpdGFibGVDbGlwYm9hcmRPcGVyYXRpb25UeXBlLFxuICAgICAgICBvcmlnaW5EYXRhPzogUGxhaXRFbGVtZW50W11cbiAgICApID0+IFdyaXRhYmxlQ2xpcGJvYXJkQ29udGV4dCB8IG51bGw7XG4gICAgaW5zZXJ0RnJhZ21lbnQ6IChjbGlwYm9hcmREYXRhOiBDbGlwYm9hcmREYXRhIHwgbnVsbCwgdGFyZ2V0UG9pbnQ6IFBvaW50LCBvcGVyYXRpb25UeXBlPzogV3JpdGFibGVDbGlwYm9hcmRPcGVyYXRpb25UeXBlKSA9PiB2b2lkO1xuICAgIGRlbGV0ZUZyYWdtZW50OiAoZGF0YTogUGxhaXRFbGVtZW50W10pID0+IHZvaWQ7XG4gICAgZ2V0RGVsZXRlZEZyYWdtZW50OiAoZGF0YTogUGxhaXRFbGVtZW50W10pID0+IFBsYWl0RWxlbWVudFtdO1xuICAgIGdldFJlbGF0ZWRGcmFnbWVudDogKGRhdGE6IFBsYWl0RWxlbWVudFtdLCBvcmlnaW5EYXRhPzogUGxhaXRFbGVtZW50W10pID0+IFBsYWl0RWxlbWVudFtdO1xuICAgIGRibENsaWNrOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgZHJhd0VsZW1lbnQ6IChjb250ZXh0OiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0KSA9PiBDb21wb25lbnRUeXBlPEVsZW1lbnRGbGF2b3VyPjtcbiAgICBpc1JlY3RhbmdsZUhpdDogKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCwgcmFuZ2U6IFNlbGVjdGlvbikgPT4gYm9vbGVhbjtcbiAgICAvLyBXaGVuIHRoZSBlbGVtZW50IGhhcyBubyBmaWxsIGNvbG9yLCBpdCBpcyBjb25zaWRlcmVkIGEgaGl0IG9ubHkgaWYgaXQgaGl0cyB0aGUgYm9yZGVyLlxuICAgIGlzSGl0OiAoZWxlbWVudDogUGxhaXRFbGVtZW50LCBwb2ludDogUG9pbnQsIGlzU3RyaWN0PzogYm9vbGVhbikgPT4gYm9vbGVhbjtcbiAgICBpc0luc2lkZVBvaW50OiAoZWxlbWVudDogUGxhaXRFbGVtZW50LCBwb2ludDogUG9pbnQpID0+IGJvb2xlYW47XG4gICAgLy8gdGhlIGhpdCBlbGVtZW50IGlzIGRldGVybWluZWQgYnkgdGhlIHBsdWdpblxuICAgIGdldE9uZUhpdEVsZW1lbnQ6IChoaXRFbGVtZW50czogUGxhaXRFbGVtZW50W10pID0+IFBsYWl0RWxlbWVudDtcbiAgICBpc1JlY3Vyc2lvbjogKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4gYm9vbGVhbjtcbiAgICBpc01vdmFibGU6IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IGJvb2xlYW47XG4gICAgZ2V0UmVjdGFuZ2xlOiAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiBSZWN0YW5nbGVDbGllbnQgfCBudWxsO1xuICAgIGlzV2l0aGluU2VsZWN0aW9uOiAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiBib29sZWFuO1xuICAgIHBhdGhSZWY6IChwYXRoOiBQYXRoLCBvcHRpb25zPzogUGF0aFJlZk9wdGlvbnMpID0+IFBhdGhSZWY7XG4gICAgcGF0aFJlZnM6ICgpID0+IFNldDxQYXRoUmVmPjtcbiAgICBhcHBseVRoZW1lOiAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB2b2lkO1xuICAgIGlzQWxpZ246IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IGJvb2xlYW47XG4gICAgaXNJbWFnZUJpbmRpbmdBbGxvd2VkOiAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiBib29sZWFuO1xuICAgIGNhbkFkZFRvR3JvdXA6IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IGJvb2xlYW47XG4gICAgY2FuU2V0WkluZGV4OiAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiBib29sZWFuO1xuICAgIGlzRXhwYW5kZWQ6IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IGJvb2xlYW47XG4gICAgLy8gcG9pbnRlciBob29rXG4gICAgcG9pbnRlckRvd246IChwb2ludGVyOiBQb2ludGVyRXZlbnQpID0+IHZvaWQ7XG4gICAgcG9pbnRlck1vdmU6IChwb2ludGVyOiBQb2ludGVyRXZlbnQpID0+IHZvaWQ7XG4gICAgcG9pbnRlclVwOiAocG9pbnRlcjogUG9pbnRlckV2ZW50KSA9PiB2b2lkO1xuICAgIHBvaW50ZXJDYW5jZWw6IChwb2ludGVyOiBQb2ludGVyRXZlbnQpID0+IHZvaWQ7XG4gICAgcG9pbnRlck91dDogKHBvaW50ZXI6IFBvaW50ZXJFdmVudCkgPT4gdm9pZDtcbiAgICBwb2ludGVyTGVhdmU6IChwb2ludGVyOiBQb2ludGVyRXZlbnQpID0+IHZvaWQ7XG4gICAgZ2xvYmFsUG9pbnRlck1vdmU6IChwb2ludGVyOiBQb2ludGVyRXZlbnQpID0+IHZvaWQ7XG4gICAgZ2xvYmFsUG9pbnRlclVwOiAocG9pbnRlcjogUG9pbnRlckV2ZW50KSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWl0Qm9hcmRPcHRpb25zIHtcbiAgICByZWFkb25seT86IGJvb2xlYW47XG4gICAgaGlkZVNjcm9sbGJhcj86IGJvb2xlYW47XG4gICAgZGlzYWJsZWRTY3JvbGxPbk5vbkZvY3VzPzogYm9vbGVhbjtcbiAgICB0aGVtZUNvbG9ycz86IFRoZW1lQ29sb3JbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFpdEJvYXJkTW92ZSB7XG4gICAgeDogbnVtYmVyO1xuICAgIHk6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IFBsYWl0Qm9hcmQgPSB7XG4gICAgaXNCb2FyZCh2YWx1ZTogYW55KTogdmFsdWUgaXMgUGxhaXRCb2FyZCB7XG4gICAgICAgIGNvbnN0IGNhY2hlZElzQm9hcmQgPSBJU19CT0FSRF9DQUNIRS5nZXQodmFsdWUpO1xuICAgICAgICBpZiAoY2FjaGVkSXNCb2FyZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkSXNCb2FyZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc0JvYXJkID0gdHlwZW9mIHZhbHVlLm9uQ2hhbmdlID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiB2YWx1ZS5hcHBseSA9PT0gJ2Z1bmN0aW9uJztcbiAgICAgICAgSVNfQk9BUkRfQ0FDSEUuc2V0KHZhbHVlLCBpc0JvYXJkKTtcbiAgICAgICAgcmV0dXJuIGlzQm9hcmQ7XG4gICAgfSxcbiAgICBpc0FsaXZlKGJvYXJkOiBQbGFpdEJvYXJkKSB7XG4gICAgICAgIGNvbnN0IGlzQWxpdmUgPSBJU19CT0FSRF9BTElWRS5nZXQoYm9hcmQpO1xuICAgICAgICByZXR1cm4gISFpc0FsaXZlO1xuICAgIH0sXG4gICAgZmluZFBhdGgoYm9hcmQ6IFBsYWl0Qm9hcmQsIG5vZGU6IFBsYWl0Tm9kZSk6IFBhdGgge1xuICAgICAgICBjb25zdCBwYXRoOiBQYXRoID0gW107XG4gICAgICAgIGxldCBjaGlsZDogQW5jZXN0b3IgPSBub2RlO1xuICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gTk9ERV9UT19QQVJFTlQuZ2V0KGNoaWxkIGFzIFBsYWl0RWxlbWVudCk7XG4gICAgICAgICAgICBpZiAocGFyZW50ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBpZiAoUGxhaXRCb2FyZC5pc0JvYXJkKGNoaWxkKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGF0aDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpID0gTk9ERV9UT19JTkRFWC5nZXQoY2hpbGQgYXMgUGxhaXRFbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChpID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhdGgudW5zaGlmdChpKTtcbiAgICAgICAgICAgIGNoaWxkID0gcGFyZW50O1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGZpbmQgdGhlIHBhdGggZm9yIFBsYWl0IG5vZGU6ICR7SlNPTi5zdHJpbmdpZnkobm9kZSl9YCk7XG4gICAgfSxcbiAgICBnZXRIb3N0KGJvYXJkOiBQbGFpdEJvYXJkKSB7XG4gICAgICAgIHJldHVybiBCT0FSRF9UT19IT1NULmdldChib2FyZCkgYXMgU1ZHU1ZHRWxlbWVudDtcbiAgICB9LFxuICAgIGdldEVsZW1lbnRMb3dlckhvc3QoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICAgICAgcmV0dXJuIEJPQVJEX1RPX0VMRU1FTlRfSE9TVC5nZXQoYm9hcmQpPy5sb3dlckhvc3QgYXMgU1ZHU1ZHRWxlbWVudDtcbiAgICB9LFxuICAgIGdldEVsZW1lbnRIb3N0KGJvYXJkOiBQbGFpdEJvYXJkKSB7XG4gICAgICAgIHJldHVybiBCT0FSRF9UT19FTEVNRU5UX0hPU1QuZ2V0KGJvYXJkKT8uaG9zdCBhcyBTVkdTVkdFbGVtZW50O1xuICAgIH0sXG4gICAgZ2V0RWxlbWVudFVwcGVySG9zdChib2FyZDogUGxhaXRCb2FyZCkge1xuICAgICAgICByZXR1cm4gQk9BUkRfVE9fRUxFTUVOVF9IT1NULmdldChib2FyZCk/LnVwcGVySG9zdCBhcyBTVkdTVkdFbGVtZW50O1xuICAgIH0sXG4gICAgZ2V0RWxlbWVudEFjdGl2ZUhvc3QoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICAgICAgcmV0dXJuIEJPQVJEX1RPX0VMRU1FTlRfSE9TVC5nZXQoYm9hcmQpPy5hY3RpdmVIb3N0IGFzIFNWR1NWR0VsZW1lbnQ7XG4gICAgfSxcbiAgICBnZXRSb3VnaFNWRyhib2FyZDogUGxhaXRCb2FyZCkge1xuICAgICAgICByZXR1cm4gQk9BUkRfVE9fUk9VR0hfU1ZHLmdldChib2FyZCkgYXMgUm91Z2hTVkc7XG4gICAgfSxcbiAgICBnZXRCb2FyZENvbnRhaW5lcihib2FyZDogUGxhaXRCb2FyZCkge1xuICAgICAgICByZXR1cm4gQk9BUkRfVE9fRUxFTUVOVF9IT1NULmdldChib2FyZCk/LmNvbnRhaW5lciBhcyBIVE1MRWxlbWVudDtcbiAgICB9LFxuICAgIGdldEJvYXJkQ29udGV4dChib2FyZDogUGxhaXRCb2FyZCkge1xuICAgICAgICByZXR1cm4gQk9BUkRfVE9fQ09OVEVYVC5nZXQoYm9hcmQpIGFzIFBsYWl0Qm9hcmRDb250ZXh0O1xuICAgIH0sXG4gICAgZ2V0UmVjdGFuZ2xlKGJvYXJkOiBQbGFpdEJvYXJkKSB7XG4gICAgICAgIHJldHVybiBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCBib2FyZC5jaGlsZHJlbiwgdHJ1ZSk7XG4gICAgfSxcbiAgICBnZXRWaWV3cG9ydENvbnRhaW5lcihib2FyZDogUGxhaXRCb2FyZCkge1xuICAgICAgICByZXR1cm4gQk9BUkRfVE9fRUxFTUVOVF9IT1NULmdldChib2FyZCk/LnZpZXdwb3J0Q29udGFpbmVyIGFzIEhUTUxFbGVtZW50O1xuICAgIH0sXG4gICAgaXNGb2N1cyhib2FyZDogUGxhaXRCb2FyZCkge1xuICAgICAgICByZXR1cm4gISFib2FyZC5zZWxlY3Rpb247XG4gICAgfSxcbiAgICBpc1JlYWRvbmx5KGJvYXJkOiBQbGFpdEJvYXJkKSB7XG4gICAgICAgIHJldHVybiBib2FyZC5vcHRpb25zLnJlYWRvbmx5O1xuICAgIH0sXG4gICAgaGFzQmVlblRleHRFZGl0aW5nKGJvYXJkOiBQbGFpdEJvYXJkKSB7XG4gICAgICAgIHJldHVybiAhIUlTX1RFWFRfRURJVEFCTEUuZ2V0KGJvYXJkKTtcbiAgICB9LFxuICAgIGdldFBvaW50ZXI8VCA9IFBsYWl0UG9pbnRlclR5cGU+KGJvYXJkOiBQbGFpdEJvYXJkKSB7XG4gICAgICAgIHJldHVybiBib2FyZC5wb2ludGVyIGFzIFQ7XG4gICAgfSxcbiAgICBpc1BvaW50ZXI8VCA9IFBsYWl0UG9pbnRlclR5cGU+KGJvYXJkOiBQbGFpdEJvYXJkLCBwb2ludGVyOiBUKSB7XG4gICAgICAgIHJldHVybiBib2FyZC5wb2ludGVyID09PSBwb2ludGVyO1xuICAgIH0sXG4gICAgaXNJblBvaW50ZXI8VCA9IFBsYWl0UG9pbnRlclR5cGU+KGJvYXJkOiBQbGFpdEJvYXJkLCBwb2ludGVyczogVFtdKSB7XG4gICAgICAgIGNvbnN0IHBvaW50ID0gYm9hcmQucG9pbnRlciBhcyBUO1xuICAgICAgICByZXR1cm4gcG9pbnRlcnMuaW5jbHVkZXMocG9pbnQpO1xuICAgIH0sXG4gICAgZ2V0TW92aW5nUG9pbnRJbkJvYXJkKGJvYXJkOiBQbGFpdEJvYXJkKSB7XG4gICAgICAgIHJldHVybiBCT0FSRF9UT19NT1ZJTkdfUE9JTlRfSU5fQk9BUkQuZ2V0KGJvYXJkKTtcbiAgICB9LFxuICAgIGlzTW92aW5nUG9pbnRJbkJvYXJkKGJvYXJkOiBQbGFpdEJvYXJkKSB7XG4gICAgICAgIGNvbnN0IHBvaW50ID0gQk9BUkRfVE9fTU9WSU5HX1BPSU5ULmdldChib2FyZCk7XG4gICAgICAgIGNvbnN0IHJlY3QgPSBQbGFpdEJvYXJkLmdldEJvYXJkQ29udGFpbmVyKGJvYXJkKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgaWYgKHBvaW50ICYmIGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUmVjdGFuZ2xlKHBvaW50WzBdLCBwb2ludFsxXSwgcmVjdCkgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9LFxuICAgIGdldFRoZW1lQ29sb3JzPFQgZXh0ZW5kcyBUaGVtZUNvbG9yID0gVGhlbWVDb2xvcj4oYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICAgICAgcmV0dXJuIChib2FyZC5vcHRpb25zLnRoZW1lQ29sb3JzIHx8IFRoZW1lQ29sb3JzKSBhcyBUW107XG4gICAgfVxufTtcbiJdfQ==
@@ -39,7 +39,7 @@ export const PlaitNode = {
39
39
  first(board, path) {
40
40
  const p = path.slice();
41
41
  let n = PlaitNode.get(board, p);
42
- if (!n.children) {
42
+ if (!n.children || !board.isExpanded(n)) {
43
43
  return n;
44
44
  }
45
45
  while (n) {
@@ -54,4 +54,4 @@ export const PlaitNode = {
54
54
  return n;
55
55
  }
56
56
  };
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2ludGVyZmFjZXMvbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBVTlCLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRztJQUNyQixNQUFNLEVBQUUsQ0FBQyxLQUFpQixFQUFFLElBQVUsRUFBRSxFQUFFO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDM0MsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBQ0Q7Ozs7O09BS0c7SUFDSCxDQUFDLE9BQU8sQ0FBQyxJQUFnQixFQUFFLElBQVUsRUFBRSxVQUE4QixFQUFFO1FBQ25FLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNqQyxNQUFNLENBQUMsQ0FBQztRQUNaLENBQUM7SUFDTCxDQUFDO0lBQ0QsR0FBRyxDQUFrQyxJQUFnQixFQUFFLElBQVU7UUFDN0QsSUFBSSxJQUFJLEdBQWEsSUFBSSxDQUFDO1FBQzFCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDbkMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMvQyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ2xFLENBQUM7WUFDRCxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBQ0QsT0FBTyxJQUFTLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksQ0FBQyxLQUFpQixFQUFFLElBQVU7UUFDOUIsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM5QyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDaEMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUNELEtBQUssQ0FBQyxLQUFpQixFQUFFLElBQVU7UUFDL0IsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxPQUFPLENBQUMsQ0FBQztRQUNiLENBQUM7UUFDRCxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1AsSUFBSSxDQUFDLENBQUMsUUFBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDM0IsTUFBTTtZQUNWLENBQUM7aUJBQU0sQ0FBQztnQkFDSixDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNkLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0RWxlbWVudCB9IGZyb20gJy4vZWxlbWVudCc7XG5pbXBvcnQgeyBQbGFpdEJvYXJkIH0gZnJvbSAnLi9ib2FyZCc7XG5pbXBvcnQgeyBQYXRoIH0gZnJvbSAnLi9wYXRoJztcblxuZXhwb3J0IHR5cGUgUGxhaXROb2RlID0gUGxhaXRFbGVtZW50O1xuXG5leHBvcnQgdHlwZSBBbmNlc3RvciA9IFBsYWl0Qm9hcmQgfCBQbGFpdEVsZW1lbnQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9kZVBhcmVudHNPcHRpb25zIHtcbiAgICByZXZlcnNlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IFBsYWl0Tm9kZSA9IHtcbiAgICBwYXJlbnQ6IChib2FyZDogUGxhaXRCb2FyZCwgcGF0aDogUGF0aCkgPT4ge1xuICAgICAgICBjb25zdCBwYXJlbnRQYXRoID0gUGF0aC5wYXJlbnQocGF0aCk7XG4gICAgICAgIGNvbnN0IHAgPSBQbGFpdE5vZGUuZ2V0KGJvYXJkLCBwYXJlbnRQYXRoKTtcbiAgICAgICAgcmV0dXJuIHA7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBSZXR1cm4gYSBnZW5lcmF0b3Igb2YgYWxsIHRoZSBhbmNlc3RvciBub2RlcyBhYm92ZSBhIHNwZWNpZmljIHBhdGguXG4gICAgICpcbiAgICAgKiBCeSBkZWZhdWx0IHRoZSBvcmRlciBpcyB0b3AtZG93biwgZnJvbSBoaWdoZXN0IHRvIGxvd2VzdCBhbmNlc3RvciBpblxuICAgICAqIHRoZSB0cmVlLCBidXQgeW91IGNhbiBwYXNzIHRoZSBgcmV2ZXJzZTogdHJ1ZWAgb3B0aW9uIHRvIGdvIGJvdHRvbS11cC5cbiAgICAgKi9cbiAgICAqcGFyZW50cyhyb290OiBQbGFpdEJvYXJkLCBwYXRoOiBQYXRoLCBvcHRpb25zOiBOb2RlUGFyZW50c09wdGlvbnMgPSB7fSk6IEdlbmVyYXRvcjxQbGFpdE5vZGUsIHZvaWQsIHVuZGVmaW5lZD4ge1xuICAgICAgICBmb3IgKGNvbnN0IHAgb2YgUGF0aC5hbmNlc3RvcnMocGF0aCwgb3B0aW9ucykpIHtcbiAgICAgICAgICAgIGNvbnN0IG4gPSBQbGFpdE5vZGUuZ2V0KHJvb3QsIHApO1xuICAgICAgICAgICAgeWllbGQgbjtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZ2V0PFQgZXh0ZW5kcyBQbGFpdE5vZGUgPSBQbGFpdE5vZGU+KHJvb3Q6IFBsYWl0Qm9hcmQsIHBhdGg6IFBhdGgpOiBUIHtcbiAgICAgICAgbGV0IG5vZGU6IEFuY2VzdG9yID0gcm9vdDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBwID0gcGF0aFtpXTtcbiAgICAgICAgICAgIGlmICghbm9kZSB8fCAhbm9kZS5jaGlsZHJlbiB8fCAhbm9kZS5jaGlsZHJlbltwXSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgYSBkZXNjZW5kYW50IGF0IHBhdGggWyR7cGF0aH1dYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBub2RlID0gbm9kZS5jaGlsZHJlbltwXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZSBhcyBUO1xuICAgIH0sXG4gICAgbGFzdChib2FyZDogUGxhaXRCb2FyZCwgcGF0aDogUGF0aCkge1xuICAgICAgICBsZXQgbiA9IFBsYWl0Tm9kZS5nZXQoYm9hcmQsIHBhdGgpO1xuICAgICAgICB3aGlsZSAobiAmJiBuLmNoaWxkcmVuICYmIG4uY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgaSA9IG4uY2hpbGRyZW4ubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIG4gPSBuLmNoaWxkcmVuW2ldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuO1xuICAgIH0sXG4gICAgZmlyc3QoYm9hcmQ6IFBsYWl0Qm9hcmQsIHBhdGg6IFBhdGgpIHtcbiAgICAgICAgY29uc3QgcCA9IHBhdGguc2xpY2UoKTtcbiAgICAgICAgbGV0IG4gPSBQbGFpdE5vZGUuZ2V0KGJvYXJkLCBwKTtcbiAgICAgICAgaWYgKCFuLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICByZXR1cm4gbjtcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAobikge1xuICAgICAgICAgICAgaWYgKG4uY2hpbGRyZW4hLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuID0gbi5jaGlsZHJlbiFbMF07XG4gICAgICAgICAgICAgICAgcC5wdXNoKDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuO1xuICAgIH1cbn07XG4iXX0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2ludGVyZmFjZXMvbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBVTlCLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRztJQUNyQixNQUFNLEVBQUUsQ0FBQyxLQUFpQixFQUFFLElBQVUsRUFBRSxFQUFFO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDM0MsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBQ0Q7Ozs7O09BS0c7SUFDSCxDQUFDLE9BQU8sQ0FBQyxJQUFnQixFQUFFLElBQVUsRUFBRSxVQUE4QixFQUFFO1FBQ25FLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNqQyxNQUFNLENBQUMsQ0FBQztRQUNaLENBQUM7SUFDTCxDQUFDO0lBQ0QsR0FBRyxDQUFrQyxJQUFnQixFQUFFLElBQVU7UUFDN0QsSUFBSSxJQUFJLEdBQWEsSUFBSSxDQUFDO1FBQzFCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDbkMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMvQyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ2xFLENBQUM7WUFDRCxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBQ0QsT0FBTyxJQUFTLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksQ0FBQyxLQUFpQixFQUFFLElBQVU7UUFDOUIsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM5QyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDaEMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUNELEtBQUssQ0FBQyxLQUFpQixFQUFFLElBQVU7UUFDL0IsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE9BQU8sQ0FBQyxDQUFDO1FBQ2IsQ0FBQztRQUNELE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDUCxJQUFJLENBQUMsQ0FBQyxRQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUMzQixNQUFNO1lBQ1YsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2QsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRFbGVtZW50IH0gZnJvbSAnLi9lbGVtZW50JztcbmltcG9ydCB7IFBsYWl0Qm9hcmQgfSBmcm9tICcuL2JvYXJkJztcbmltcG9ydCB7IFBhdGggfSBmcm9tICcuL3BhdGgnO1xuXG5leHBvcnQgdHlwZSBQbGFpdE5vZGUgPSBQbGFpdEVsZW1lbnQ7XG5cbmV4cG9ydCB0eXBlIEFuY2VzdG9yID0gUGxhaXRCb2FyZCB8IFBsYWl0RWxlbWVudDtcblxuZXhwb3J0IGludGVyZmFjZSBOb2RlUGFyZW50c09wdGlvbnMge1xuICAgIHJldmVyc2U/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgUGxhaXROb2RlID0ge1xuICAgIHBhcmVudDogKGJvYXJkOiBQbGFpdEJvYXJkLCBwYXRoOiBQYXRoKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcmVudFBhdGggPSBQYXRoLnBhcmVudChwYXRoKTtcbiAgICAgICAgY29uc3QgcCA9IFBsYWl0Tm9kZS5nZXQoYm9hcmQsIHBhcmVudFBhdGgpO1xuICAgICAgICByZXR1cm4gcDtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFJldHVybiBhIGdlbmVyYXRvciBvZiBhbGwgdGhlIGFuY2VzdG9yIG5vZGVzIGFib3ZlIGEgc3BlY2lmaWMgcGF0aC5cbiAgICAgKlxuICAgICAqIEJ5IGRlZmF1bHQgdGhlIG9yZGVyIGlzIHRvcC1kb3duLCBmcm9tIGhpZ2hlc3QgdG8gbG93ZXN0IGFuY2VzdG9yIGluXG4gICAgICogdGhlIHRyZWUsIGJ1dCB5b3UgY2FuIHBhc3MgdGhlIGByZXZlcnNlOiB0cnVlYCBvcHRpb24gdG8gZ28gYm90dG9tLXVwLlxuICAgICAqL1xuICAgICpwYXJlbnRzKHJvb3Q6IFBsYWl0Qm9hcmQsIHBhdGg6IFBhdGgsIG9wdGlvbnM6IE5vZGVQYXJlbnRzT3B0aW9ucyA9IHt9KTogR2VuZXJhdG9yPFBsYWl0Tm9kZSwgdm9pZCwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGZvciAoY29uc3QgcCBvZiBQYXRoLmFuY2VzdG9ycyhwYXRoLCBvcHRpb25zKSkge1xuICAgICAgICAgICAgY29uc3QgbiA9IFBsYWl0Tm9kZS5nZXQocm9vdCwgcCk7XG4gICAgICAgICAgICB5aWVsZCBuO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBnZXQ8VCBleHRlbmRzIFBsYWl0Tm9kZSA9IFBsYWl0Tm9kZT4ocm9vdDogUGxhaXRCb2FyZCwgcGF0aDogUGF0aCk6IFQge1xuICAgICAgICBsZXQgbm9kZTogQW5jZXN0b3IgPSByb290O1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHAgPSBwYXRoW2ldO1xuICAgICAgICAgICAgaWYgKCFub2RlIHx8ICFub2RlLmNoaWxkcmVuIHx8ICFub2RlLmNoaWxkcmVuW3BdKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBhIGRlc2NlbmRhbnQgYXQgcGF0aCBbJHtwYXRofV1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5vZGUgPSBub2RlLmNoaWxkcmVuW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlIGFzIFQ7XG4gICAgfSxcbiAgICBsYXN0KGJvYXJkOiBQbGFpdEJvYXJkLCBwYXRoOiBQYXRoKSB7XG4gICAgICAgIGxldCBuID0gUGxhaXROb2RlLmdldChib2FyZCwgcGF0aCk7XG4gICAgICAgIHdoaWxlIChuICYmIG4uY2hpbGRyZW4gJiYgbi5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBpID0gbi5jaGlsZHJlbi5sZW5ndGggLSAxO1xuICAgICAgICAgICAgbiA9IG4uY2hpbGRyZW5baV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG47XG4gICAgfSxcbiAgICBmaXJzdChib2FyZDogUGxhaXRCb2FyZCwgcGF0aDogUGF0aCkge1xuICAgICAgICBjb25zdCBwID0gcGF0aC5zbGljZSgpO1xuICAgICAgICBsZXQgbiA9IFBsYWl0Tm9kZS5nZXQoYm9hcmQsIHApO1xuICAgICAgICBpZiAoIW4uY2hpbGRyZW4gfHwgIWJvYXJkLmlzRXhwYW5kZWQobikpIHtcbiAgICAgICAgICAgIHJldHVybiBuO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChuKSB7XG4gICAgICAgICAgICBpZiAobi5jaGlsZHJlbiEubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG4gPSBuLmNoaWxkcmVuIVswXTtcbiAgICAgICAgICAgICAgICBwLnB1c2goMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG47XG4gICAgfVxufTtcbiJdfQ==
@@ -70,7 +70,7 @@ export const withHotkey = (board) => {
70
70
  if (PlaitBoard.getMovingPointInBoard(board) || PlaitBoard.isMovingPointInBoard(board)) {
71
71
  if (isHotkey(['mod+=', 'mod++'], { byKey: true })(event)) {
72
72
  event.preventDefault();
73
- BoardTransforms.updateZoom(board, board.viewport.zoom + 0.1, false);
73
+ BoardTransforms.updateZoom(board, board.viewport.zoom + 0.1);
74
74
  return;
75
75
  }
76
76
  if (isHotkey(['mod+shift+=', 'mod+shift++'], { byKey: true })(event)) {
@@ -93,4 +93,4 @@ export const withHotkey = (board) => {
93
93
  };
94
94
  return board;
95
95
  };
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1ob3RrZXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9wbHVnaW5zL3dpdGgtaG90a2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xELE9BQU8sRUFBWSxVQUFVLEVBQWdCLGNBQWMsRUFBOEIsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHaEgsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQzVDLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUVoRCxLQUFLLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO1FBQ3JDLE1BQU0sT0FBTyxHQUFJLEtBQTJCLENBQUMsZ0JBQWdCLENBQTZCLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4SCxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUMsbUJBQW1CLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNGLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixJQUFJLFFBQVEsR0FBbUIsRUFBRSxDQUFDO1lBQ2xDLG1CQUFtQixDQUNmLEtBQUssRUFDTCxJQUFJLENBQUMsRUFBRTtnQkFDSCxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDM0IsT0FBTztnQkFD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QyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDLENBQUM7SUFFRixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0hvdGtleSwgaXNLZXlIb3RrZXkgfSBmcm9tICdpcy1ob3RrZXknO1xuaW1wb3J0IHsgQW5jZXN0b3IsIFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCwgUGxhaXRQbHVnaW5LZXksIFdpdGhTZWxlY3Rpb25QbHVnaW5PcHRpb25zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBCb2FyZFRyYW5zZm9ybXMsIFRyYW5zZm9ybXMgfSBmcm9tICcuLi90cmFuc2Zvcm1zJztcbmltcG9ydCB7IGRlbGV0ZUZyYWdtZW50LCBkZXB0aEZpcnN0UmVjdXJzaW9uLCBkdXBsaWNhdGVFbGVtZW50cywgZ2V0U2VsZWN0ZWRFbGVtZW50cywgaG90a2V5cyB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IFBsYWl0T3B0aW9uc0JvYXJkIH0gZnJvbSAnLi93aXRoLW9wdGlvbnMnO1xuXG5leHBvcnQgY29uc3Qgd2l0aEhvdGtleSA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGNvbnN0IHsga2V5RG93biwga2V5VXAsIGdsb2JhbEtleURvd24gfSA9IGJvYXJkO1xuXG4gICAgYm9hcmQua2V5RG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gKGJvYXJkIGFzIFBsYWl0T3B0aW9uc0JvYXJkKS5nZXRQbHVnaW5PcHRpb25zPFdpdGhTZWxlY3Rpb25QbHVnaW5PcHRpb25zPihQbGFpdFBsdWdpbktleS53aXRoU2VsZWN0aW9uKTtcbiAgICAgICAgaWYgKCFQbGFpdEJvYXJkLmlzUmVhZG9ubHkoYm9hcmQpICYmIG9wdGlvbnMuaXNNdWx0aXBsZVNlbGVjdGlvbiAmJiBpc0hvdGtleSgnbW9kK2EnLCBldmVudCkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBsZXQgZWxlbWVudHM6IFBsYWl0RWxlbWVudFtdID0gW107XG4gICAgICAgICAgICBkZXB0aEZpcnN0UmVjdXJzaW9uPEFuY2VzdG9yPihcbiAgICAgICAgICAgICAgICBib2FyZCxcbiAgICAgICAgICAgICAgICBub2RlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFBsYWl0Qm9hcmQuaXNCb2FyZChub2RlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLnB1c2gobm9kZSBhcyBQbGFpdEVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbm9kZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChQbGFpdEJvYXJkLmlzQm9hcmQobm9kZSkgfHwgYm9hcmQuaXNSZWN1cnNpb24obm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5hZGRTZWxlY3Rpb25XaXRoVGVtcG9yYXJ5RWxlbWVudHMoYm9hcmQsIGVsZW1lbnRzKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIVBsYWl0Qm9hcmQuaXNSZWFkb25seShib2FyZCkpIHtcbiAgICAgICAgICAgIGlmIChpc0tleUhvdGtleSgnbW9kK10nLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMubW92ZVVwKGJvYXJkKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNLZXlIb3RrZXkoJ21vZCtbJywgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLm1vdmVEb3duKGJvYXJkKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNLZXlIb3RrZXkoJ21vZCtvcHRpb24r4oCYJywgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLm1vdmVUb1RvcChib2FyZCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzS2V5SG90a2V5KCdtb2Qrb3B0aW9uK+KAnCcsIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5tb3ZlVG9Cb3R0b20oYm9hcmQpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICAgICAgaWYgKCFQbGFpdEJvYXJkLmlzUmVhZG9ubHkoYm9hcmQpICYmIHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgaWYgKGlzS2V5SG90a2V5KCdtb2QrZCcsIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgZHVwbGljYXRlRWxlbWVudHMoYm9hcmQpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhUGxhaXRCb2FyZC5pc1JlYWRvbmx5KGJvYXJkKSAmJlxuICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAoaG90a2V5cy5pc0RlbGV0ZUJhY2t3YXJkKGV2ZW50KSB8fCBob3RrZXlzLmlzRGVsZXRlRm9yd2FyZChldmVudCkpXG4gICAgICAgICkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGRlbGV0ZUZyYWdtZW50KGJvYXJkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGtleURvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5rZXlVcCA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBrZXlVcChldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmdsb2JhbEtleURvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKFBsYWl0Qm9hcmQuZ2V0TW92aW5nUG9pbnRJbkJvYXJkKGJvYXJkKSB8fCBQbGFpdEJvYXJkLmlzTW92aW5nUG9pbnRJbkJvYXJkKGJvYXJkKSkge1xuICAgICAgICAgICAgaWYgKGlzSG90a2V5KFsnbW9kKz0nLCAnbW9kKysnXSwgeyBieUtleTogdHJ1ZSB9KShldmVudCkpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIEJvYXJkVHJhbnNmb3Jtcy51cGRhdGVab29tKGJvYXJkLCBib2FyZC52aWV3cG9ydC56b29tICsgMC4xLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzSG90a2V5KFsnbW9kK3NoaWZ0Kz0nLCAnbW9kK3NoaWZ0KysnXSwgeyBieUtleTogdHJ1ZSB9KShldmVudCkpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIEJvYXJkVHJhbnNmb3Jtcy5maXRWaWV3cG9ydChib2FyZCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzSG90a2V5KFsnbW9kKy0nLCAnbW9kK3NoaWZ0Ky0nXSkoZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBCb2FyZFRyYW5zZm9ybXMudXBkYXRlWm9vbShib2FyZCwgYm9hcmQudmlld3BvcnQuem9vbSAtIDAuMSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzSG90a2V5KFsnbW9kKzAnLCAnbW9kK3NoaWZ0KzAnXSwgeyBieUtleTogdHJ1ZSB9KShldmVudCkpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIEJvYXJkVHJhbnNmb3Jtcy51cGRhdGVab29tKGJvYXJkLCAxKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZ2xvYmFsS2V5RG93bihldmVudCk7XG4gICAgfTtcblxuICAgIHJldHVybiBib2FyZDtcbn07XG4iXX0=
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1ob3RrZXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9wbHVnaW5zL3dpdGgtaG90a2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xELE9BQU8sRUFBWSxVQUFVLEVBQWdCLGNBQWMsRUFBOEIsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHaEgsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQzVDLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUVoRCxLQUFLLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO1FBQ3JDLE1BQU0sT0FBTyxHQUFJLEtBQTJCLENBQUMsZ0JBQWdCLENBQTZCLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4SCxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUMsbUJBQW1CLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNGLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixJQUFJLFFBQVEsR0FBbUIsRUFBRSxDQUFDO1lBQ2xDLG1CQUFtQixDQUNmLEtBQUssRUFDTCxJQUFJLENBQUMsRUFBRTtnQkFDSCxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDM0IsT0FBTztnQkFDWCxDQUFDO2dCQUNELFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBb0IsQ0FBQyxDQUFDO1lBQ3hDLENBQUMsRUFDRCxJQUFJLENBQUMsRUFBRTtnQkFDSCxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUN0RCxPQUFPLElBQUksQ0FBQztnQkFDaEIsQ0FBQztxQkFBTSxDQUFDO29CQUNKLE9BQU8sS0FBSyxDQUFDO2dCQUNqQixDQUFDO1lBQ0wsQ0FBQyxFQUNELElBQUksQ0FDUCxDQUFDO1lBQ0YsVUFBVSxDQUFDLGlDQUFpQyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztZQUM5RCxPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEMsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzlCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekIsT0FBTztZQUNYLENBQUM7WUFDRCxJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDOUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQixPQUFPO1lBQ1gsQ0FBQztZQUNELElBQUksV0FBVyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzVCLE9BQU87WUFDWCxDQUFDO1lBQ0QsSUFBSSxXQUFXLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsVUFBVSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDL0IsT0FBTztZQUNYLENBQUM7UUFDTCxDQUFDO1FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDL0QsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzlCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pCLE9BQU87WUFDWCxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQ0ksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUM3QixnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUMzQixDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ3JFLENBQUM7WUFDQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkIsQ0FBQyxDQUFDO0lBRUYsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtRQUNuQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakIsQ0FBQyxDQUFDO0lBRUYsS0FBSyxDQUFDLGFBQWEsR0FBRyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtRQUMzQyxJQUFJLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxVQUFVLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwRixJQUFJLFFBQVEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsZUFBZSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7Z0JBQzdELE9BQU87WUFDWCxDQUFDO1lBQ0QsSUFBSSxRQUFRLENBQUMsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNuRSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLGVBQWUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25DLE9BQU87WUFDWCxDQUFDO1lBQ0QsSUFBSSxRQUFRLENBQUMsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLGVBQWUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO2dCQUM3RCxPQUFPO1lBQ1gsQ0FBQztZQUNELElBQUksUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDN0QsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixlQUFlLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDckMsT0FBTztZQUNYLENBQUM7UUFDTCxDQUFDO1FBQ0QsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUMsQ0FBQztJQUVGLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzSG90a2V5LCBpc0tleUhvdGtleSB9IGZyb20gJ2lzLWhvdGtleSc7XG5pbXBvcnQgeyBBbmNlc3RvciwgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50LCBQbGFpdFBsdWdpbktleSwgV2l0aFNlbGVjdGlvblBsdWdpbk9wdGlvbnMgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEJvYXJkVHJhbnNmb3JtcywgVHJhbnNmb3JtcyB9IGZyb20gJy4uL3RyYW5zZm9ybXMnO1xuaW1wb3J0IHsgZGVsZXRlRnJhZ21lbnQsIGRlcHRoRmlyc3RSZWN1cnNpb24sIGR1cGxpY2F0ZUVsZW1lbnRzLCBnZXRTZWxlY3RlZEVsZW1lbnRzLCBob3RrZXlzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgUGxhaXRPcHRpb25zQm9hcmQgfSBmcm9tICcuL3dpdGgtb3B0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCB3aXRoSG90a2V5ID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3QgeyBrZXlEb3duLCBrZXlVcCwgZ2xvYmFsS2V5RG93biB9ID0gYm9hcmQ7XG5cbiAgICBib2FyZC5rZXlEb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSAoYm9hcmQgYXMgUGxhaXRPcHRpb25zQm9hcmQpLmdldFBsdWdpbk9wdGlvbnM8V2l0aFNlbGVjdGlvblBsdWdpbk9wdGlvbnM+KFBsYWl0UGx1Z2luS2V5LndpdGhTZWxlY3Rpb24pO1xuICAgICAgICBpZiAoIVBsYWl0Qm9hcmQuaXNSZWFkb25seShib2FyZCkgJiYgb3B0aW9ucy5pc011bHRpcGxlU2VsZWN0aW9uICYmIGlzSG90a2V5KCdtb2QrYScsIGV2ZW50KSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGxldCBlbGVtZW50czogUGxhaXRFbGVtZW50W10gPSBbXTtcbiAgICAgICAgICAgIGRlcHRoRmlyc3RSZWN1cnNpb248QW5jZXN0b3I+KFxuICAgICAgICAgICAgICAgIGJvYXJkLFxuICAgICAgICAgICAgICAgIG5vZGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoUGxhaXRCb2FyZC5pc0JvYXJkKG5vZGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMucHVzaChub2RlIGFzIFBsYWl0RWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBub2RlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFBsYWl0Qm9hcmQuaXNCb2FyZChub2RlKSB8fCBib2FyZC5pc1JlY3Vyc2lvbihub2RlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLmFkZFNlbGVjdGlvbldpdGhUZW1wb3JhcnlFbGVtZW50cyhib2FyZCwgZWxlbWVudHMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghUGxhaXRCb2FyZC5pc1JlYWRvbmx5KGJvYXJkKSkge1xuICAgICAgICAgICAgaWYgKGlzS2V5SG90a2V5KCdtb2QrXScsIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5tb3ZlVXAoYm9hcmQpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0tleUhvdGtleSgnbW9kK1snLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMubW92ZURvd24oYm9hcmQpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0tleUhvdGtleSgnbW9kK29wdGlvbivigJgnLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMubW92ZVRvVG9wKGJvYXJkKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNLZXlIb3RrZXkoJ21vZCtvcHRpb24r4oCcJywgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLm1vdmVUb0JvdHRvbShib2FyZCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgICAgICBpZiAoIVBsYWl0Qm9hcmQuaXNSZWFkb25seShib2FyZCkgJiYgc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpZiAoaXNLZXlIb3RrZXkoJ21vZCtkJywgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBkdXBsaWNhdGVFbGVtZW50cyhib2FyZCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFQbGFpdEJvYXJkLmlzUmVhZG9ubHkoYm9hcmQpICYmXG4gICAgICAgICAgICBzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgIChob3RrZXlzLmlzRGVsZXRlQmFja3dhcmQoZXZlbnQpIHx8IGhvdGtleXMuaXNEZWxldGVGb3J3YXJkKGV2ZW50KSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZGVsZXRlRnJhZ21lbnQoYm9hcmQpO1xuICAgICAgICB9XG5cbiAgICAgICAga2V5RG93bihldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmtleVVwID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGtleVVwKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQuZ2xvYmFsS2V5RG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoUGxhaXRCb2FyZC5nZXRNb3ZpbmdQb2ludEluQm9hcmQoYm9hcmQpIHx8IFBsYWl0Qm9hcmQuaXNNb3ZpbmdQb2ludEluQm9hcmQoYm9hcmQpKSB7XG4gICAgICAgICAgICBpZiAoaXNIb3RrZXkoWydtb2QrPScsICdtb2QrKyddLCB7IGJ5S2V5OiB0cnVlIH0pKGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgQm9hcmRUcmFuc2Zvcm1zLnVwZGF0ZVpvb20oYm9hcmQsIGJvYXJkLnZpZXdwb3J0Lnpvb20gKyAwLjEpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0hvdGtleShbJ21vZCtzaGlmdCs9JywgJ21vZCtzaGlmdCsrJ10sIHsgYnlLZXk6IHRydWUgfSkoZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBCb2FyZFRyYW5zZm9ybXMuZml0Vmlld3BvcnQoYm9hcmQpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0hvdGtleShbJ21vZCstJywgJ21vZCtzaGlmdCstJ10pKGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgQm9hcmRUcmFuc2Zvcm1zLnVwZGF0ZVpvb20oYm9hcmQsIGJvYXJkLnZpZXdwb3J0Lnpvb20gLSAwLjEpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0hvdGtleShbJ21vZCswJywgJ21vZCtzaGlmdCswJ10sIHsgYnlLZXk6IHRydWUgfSkoZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBCb2FyZFRyYW5zZm9ybXMudXBkYXRlWm9vbShib2FyZCwgMSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGdsb2JhbEtleURvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICByZXR1cm4gYm9hcmQ7XG59O1xuIl19
@@ -14,15 +14,14 @@ function updateViewport(board, origination, zoom) {
14
14
  });
15
15
  clearViewportOrigination(board);
16
16
  }
17
- function updateZoom(board, newZoom, isCenter = true) {
17
+ function updateZoom(board, newZoom, center) {
18
18
  newZoom = clampZoomLevel(newZoom);
19
- const movingPoint = PlaitBoard.getMovingPointInBoard(board);
20
19
  const nativeElement = PlaitBoard.getBoardContainer(board);
21
20
  const nativeElementRect = nativeElement.getBoundingClientRect();
22
21
  const boardContainerRect = PlaitBoard.getBoardContainer(board).getBoundingClientRect();
23
22
  let focusPoint = [boardContainerRect.width / 2, boardContainerRect.height / 2];
24
- if (!isCenter && movingPoint && distanceBetweenPointAndRectangle(movingPoint[0], movingPoint[1], nativeElementRect) === 0) {
25
- focusPoint = [movingPoint[0] - nativeElementRect.x, movingPoint[1] - nativeElementRect.y];
23
+ if (center && distanceBetweenPointAndRectangle(center[0], center[1], nativeElementRect) === 0) {
24
+ focusPoint = [center[0] - nativeElementRect.x, center[1] - nativeElementRect.y];
26
25
  }
27
26
  const zoom = board.viewport.zoom;
28
27
  const origination = getViewportOrigination(board);
@@ -135,4 +134,4 @@ export const BoardTransforms = {
135
134
  fitViewportWidth,
136
135
  moveToCenter
137
136
  };
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9hcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy90cmFuc2Zvcm1zL2JvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUNILGNBQWMsRUFDZCx3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QiwyQkFBMkIsRUFDOUIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUzRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBSW5DLFNBQVMsY0FBYyxDQUFDLEtBQWlCLEVBQUUsV0FBa0IsRUFBRSxJQUFhO0lBQ3hFLElBQUksR0FBRyxJQUFJLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDbkMsV0FBVyxDQUFDLEtBQUssRUFBRTtRQUNmLEdBQUcsS0FBSyxDQUFDLFFBQVE7UUFDakIsSUFBSTtRQUNKLFdBQVc7S0FDZCxDQUFDLENBQUM7SUFDSCx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsS0FBaUIsRUFBRSxPQUFlLEVBQUUsUUFBUSxHQUFHLElBQUk7SUFDbkUsT0FBTyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVsQyxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFD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WUFDdEUsR0FBRyxHQUFHLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLGNBQWMsR0FBRyxDQUFDLEdBQUcsSUFBSTtTQUNoRSxDQUFDO1FBRVgsV0FBVyxDQUFDLEtBQUssRUFBRTtZQUNmLEdBQUcsS0FBSyxDQUFDLFFBQVE7WUFDakIsV0FBVztTQUNkLENBQUMsQ0FBQztRQUNILHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzNCLGlCQUFpQjtJQUNqQixjQUFjO0lBQ2QsV0FBVztJQUNYLFVBQVU7SUFDVixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLFlBQVk7Q0FDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGhlbWVDb2xvck1vZGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3RoZW1lJztcbmltcG9ydCB7IFBsYWl0Qm9hcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2JvYXJkJztcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wb2ludCc7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzIH0gZnJvbSAnLi4vdXRpbHMvZWxlbWVudCc7XG5pbXBvcnQgeyBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFJlY3RhbmdsZSB9IGZyb20gJy4uL3V0aWxzL21hdGgnO1xuaW1wb3J0IHtcbiAgICBjbGFtcFpvb21MZXZlbCxcbiAgICBjbGVhclZpZXdwb3J0T3JpZ2luYXRpb24sXG4gICAgZ2V0Vmlld0JveENlbnRlclBvaW50LFxuICAgIGdldFZpZXdwb3J0T3JpZ2luYXRpb24sXG4gICAgaW5pdGlhbGl6ZVZpZXdwb3J0Q29udGFpbmVyXG59IGZyb20gJy4uL3V0aWxzL3ZpZXdwb3J0JztcbmltcG9ydCB7IHNldFZpZXdwb3J0IH0gZnJvbSAnLi92aWV3cG9ydCc7XG5pbXBvcnQgeyBkZXB0aEZpcnN0UmVjdXJzaW9uLCBnZXRSZWFsU2Nyb2xsQmFyV2lkdGgsIGdldFNlbGVjdGVkRWxlbWVudHMgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBQbGFpdEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgc2V0VGhlbWUgfSBmcm9tICcuL3RoZW1lJztcbmltcG9ydCB7IEZpdFZpZXdwb3J0T3B0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMvdmlld3BvcnQnO1xuaW1wb3J0IHsgUGxhaXRQb2ludGVyVHlwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG9pbnRlcic7XG5cbmZ1bmN0aW9uIHVwZGF0ZVZpZXdwb3J0KGJvYXJkOiBQbGFpdEJvYXJkLCBvcmlnaW5hdGlvbjogUG9pbnQsIHpvb20/OiBudW1iZXIpIHtcbiAgICB6b29tID0gem9vbSA/PyBib2FyZC52aWV3cG9ydC56b29tO1xuICAgIHNldFZpZXdwb3J0KGJvYXJkLCB7XG4gICAgICAgIC4uLmJvYXJkLnZpZXdwb3J0LFxuICAgICAgICB6b29tLFxuICAgICAgICBvcmlnaW5hdGlvblxuICAgIH0pO1xuICAgIGNsZWFyVmlld3BvcnRPcmlnaW5hdGlvbihib2FyZCk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVpvb20oYm9hcmQ6IFBsYWl0Qm9hcmQsIG5ld1pvb206IG51bWJlciwgaXNDZW50ZXIgPSB0cnVlKSB7XG4gICAgbmV3Wm9vbSA9IGNsYW1wWm9vbUxldmVsKG5ld1pvb20pO1xuXG4gICAgY29uc3QgbW92aW5nUG9pbnQgPSBQbGFpdEJvYXJkLmdldE1vdmluZ1BvaW50SW5Cb2FyZChib2FyZCk7XG4gICAgY29uc3QgbmF0aXZlRWxlbWVudCA9IFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpO1xuICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnRSZWN0ID0gbmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBib2FyZENvbnRhaW5lclJlY3QgPSBQbGFpdEJvYXJkLmdldEJvYXJkQ29udGFpbmVyKGJvYXJkKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBsZXQgZm9jdXNQb2ludCA9IFtib2FyZENvbnRhaW5lclJlY3Qud2lkdGggLyAyLCBib2FyZENvbnRhaW5lclJlY3QuaGVpZ2h0IC8gMl07XG5cbiAgICBpZiAoIWlzQ2VudGVyICYmIG1vdmluZ1BvaW50ICYmIGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUmVjdGFuZ2xlKG1vdmluZ1BvaW50WzBdLCBtb3ZpbmdQb2ludFsxXSwgbmF0aXZlRWxlbWVudFJlY3QpID09PSAwKSB7XG4gICAgICAgIGZvY3VzUG9pbnQgPSBbbW92aW5nUG9pbnRbMF0gLSBuYXRpdmVFbGVtZW50UmVjdC54LCBtb3ZpbmdQb2ludFsxXSAtIG5hdGl2ZUVsZW1lbnRSZWN0LnldO1xuICAgIH1cblxuICAgIGNvbnN0IHpvb20gPSBib2FyZC52aWV3cG9ydC56b29tO1xuICAgIGNvbnN0IG9yaWdpbmF0aW9uID0gZ2V0Vmlld3BvcnRPcmlnaW5hdGlvbihib2FyZCk7XG4gICAgY29uc3QgY2VudGVyWCA9IG9yaWdpbmF0aW9uIVswXSArIGZvY3VzUG9pbnRbMF0gLyB6b29tO1xuICAgIGNvbnN0IGNlbnRlclkgPSBvcmlnaW5hdGlvbiFbMV0gKyBmb2N1c1BvaW50WzFdIC8gem9vbTtcbiAgICBjb25zdCBuZXdPcmlnaW5hdGlvbiA9IFtjZW50ZXJYIC0gZm9jdXNQb2ludFswXSAvIG5ld1pvb20sIGNlbnRlclkgLSBmb2N1c1BvaW50WzFdIC8gbmV3Wm9vbV0gYXMgUG9pbnQ7XG4gICAgdXBkYXRlVmlld3BvcnQoYm9hcmQsIG5ld09yaWdpbmF0aW9uLCBuZXdab29tKTtcbn1cblxuZnVuY3Rpb24gZml0Vmlld3BvcnQoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICBsZXQgc2Nyb2xsQmFyV2lkdGggPSBnZXRSZWFsU2Nyb2xsQmFyV2lkdGgoYm9hcmQpO1xuXG4gICAgY29uc3QgYm9hcmRDb250YWluZXJSZWN0ID0gUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgZWxlbWVudEhvc3RCb3ggPSBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCBib2FyZC5jaGlsZHJlbiwgdHJ1ZSk7XG4gICAgY29uc3Qgem9vbSA9IGJvYXJkLnZpZXdwb3J0Lnpvb207XG4gICAgY29uc3QgYXV0b0ZpdFBhZGRpbmcgPSAxNjtcbiAgICBjb25zdCB2aWV3cG9ydFdpZHRoID0gYm9hcmRDb250YWluZXJSZWN0LndpZHRoIC0gMiAqIGF1dG9GaXRQYWRkaW5nO1xuICAgIGNvbnN0IHZpZXdwb3J0SGVpZ2h0ID0gYm9hcmRDb250YWluZXJSZWN0LmhlaWdodCAtIDIgKiBhdXRvRml0UGFkZGluZztcblxuICAgIGxldCBuZXdab29tID0gem9vbTtcbiAgICBpZiAodmlld3BvcnRXaWR0aCA8IGVsZW1lbnRIb3N0Qm94LndpZHRoIHx8IHZpZXdwb3J0SGVpZ2h0IDwgZWxlbWVudEhvc3RCb3guaGVpZ2h0KSB7XG4gICAgICAgIG5ld1pvb20gPSBNYXRoLm1pbih2aWV3cG9ydFdpZHRoIC8gZWxlbWVudEhvc3RCb3gud2lkdGgsIHZpZXdwb3J0SGVpZ2h0IC8gZWxlbWVudEhvc3RCb3guaGVpZ2h0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBuZXdab29tID0gMTtcbiAgICB9XG5cbiAgICBjb25zdCBjZW50ZXJQb2ludCA9IGdldFZpZXdCb3hDZW50ZXJQb2ludChib2FyZCk7XG4gICAgY29uc3QgbmV3T3JpZ2luYXRpb24gPSBbXG4gICAgICAgIGNlbnRlclBvaW50WzBdIC0gYm9hcmRDb250YWluZXJSZWN0LndpZHRoIC8gMiAvIG5ld1pvb20gKyBzY3JvbGxCYXJXaWR0aCAvIDIgLyB6b29tLFxuICAgICAgICBjZW50ZXJQb2ludFsxXSAtIGJvYXJkQ29udGFpbmVyUmVjdC5oZWlnaHQgLyAyIC8gbmV3Wm9vbSArIHNjcm9sbEJhcldpZHRoIC8gMiAvIHpvb21cbiAgICBdIGFzIFBvaW50O1xuICAgIHVwZGF0ZVZpZXdwb3J0KGJvYXJkLCBuZXdPcmlnaW5hdGlvbiwgbmV3Wm9vbSk7XG59XG5cbmZ1bmN0aW9uIGZpdFZpZXdwb3J0V2lkdGgoYm9hcmQ6IFBsYWl0Qm9hcmQsIG9wdGlvbnM6IEZpdFZpZXdwb3J0T3B0aW9ucykge1xuICAgIGxldCBzY3JvbGxCYXJXaWR0aCA9IGdldFJlYWxTY3JvbGxCYXJXaWR0aChib2FyZCk7XG5cbiAgICBjb25zdCBib2FyZENvbnRhaW5lciA9IFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpO1xuICAgIGNvbnN0IGJvYXJkQ29udGFpbmVyUmVjdGFuZ2xlID0gYm9hcmRDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBsZXQgZmluYWxXaWR0aCA9IDA7XG4gICAgaWYgKG9wdGlvbnMubWF4V2lkdGgpIHtcbiAgICAgICAgZmluYWxXaWR0aCA9IG9wdGlvbnMubWF4V2lkdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZmluYWxXaWR0aCA9IGJvYXJkQ29udGFpbmVyUmVjdGFuZ2xlLndpZHRoO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRIb3N0Qm94ID0gZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyhib2FyZCwgYm9hcmQuY2hpbGRyZW4sIHRydWUpO1xuICAgIGNvbnN0IGNvbnRlbnRXaWR0aCA9IGZpbmFsV2lkdGggLSAyICogb3B0aW9ucy5hdXRvRml0UGFkZGluZztcbiAgICBsZXQgbmV3Wm9vbSA9IDA7XG4gICAgaWYgKGNvbnRlbnRXaWR0aCA8IGVsZW1lbnRIb3N0Qm94LndpZHRoKSB7XG4gICAgICAgIG5ld1pvb20gPSBNYXRoLm1pbihjb250ZW50V2lkdGggLyBlbGVtZW50SG9zdEJveC53aWR0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbmV3Wm9vbSA9IDE7XG4gICAgfVxuXG4gICAgbGV0IGZpbmFsSGVpZ2h0ID0gZWxlbWVudEhvc3RCb3guaGVpZ2h0ICogbmV3Wm9vbSArIDIgKiBvcHRpb25zLmF1dG9GaXRQYWRkaW5nO1xuICAgIGlmIChmaW5hbEhlaWdodCA+IG9wdGlvbnMubGltaXRIZWlnaHQpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyRWwgPSBib2FyZENvbnRhaW5lci5jbG9zZXN0KGAuJHtvcHRpb25zLmNvbnRhaW5lckNsYXNzfWApIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb250YWluZXJFbC5zdHlsZS5oZWlnaHQgPSBgJHtmaW5hbEhlaWdodH1weGA7XG4gICAgICAgIGluaXRpYWxpemVWaWV3cG9ydENvbnRhaW5lcihib2FyZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZmluYWxIZWlnaHQgPSBvcHRpb25zLmxpbWl0SGVpZ2h0O1xuICAgIH1cblxuICAgIGNvbnN0IGNlbnRlclggPSBlbGVtZW50SG9zdEJveC54ICsgZWxlbWVudEhvc3RCb3gud2lkdGggLyAyO1xuICAgIGNvbnN0IGNlbnRlclkgPSBlbGVtZW50SG9zdEJveC55ICsgZWxlbWVudEhvc3RCb3guaGVpZ2h0IC8gMjtcbiAgICBjb25zdCBuZXdPcmlnaW5hdGlvbiA9IFtcbiAgICAgICAgY2VudGVyWCAtIGZpbmFsV2lkdGggLyAyIC8gbmV3Wm9vbSArIHNjcm9sbEJhcldpZHRoIC8gMiAvIG5ld1pvb20sXG4gICAgICAgIGNlbnRlclkgLSBmaW5hbEhlaWdodCAvIDIgLyBuZXdab29tICsgc2Nyb2xsQmFyV2lkdGggLyAyIC8gbmV3Wm9vbVxuICAgIF0gYXMgUG9pbnQ7XG4gICAgdXBkYXRlVmlld3BvcnQoYm9hcmQsIG5ld09yaWdpbmF0aW9uLCBuZXdab29tKTtcbn1cblxuLyoqXG4gKiBhcHBseSB0aGVtZSB0byBldmVyeSBlbGVtZW50IChyZW1vdmUgZWxlbWVudCBjdXN0b20gcHJvcGVydGllcylcbiAqIGludm9rZSBhcHBseVRoZW1lQ29sb3JcbiAqL1xuZnVuY3Rpb24gdXBkYXRlVGhlbWVDb2xvcihib2FyZDogUGxhaXRCb2FyZCwgbW9kZTogVGhlbWVDb2xvck1vZGUpIHtcbiAgICBtb2RlID0gbW9kZSA/PyBib2FyZC50aGVtZS50aGVtZUNvbG9yTW9kZTtcbiAgICBzZXRUaGVtZShib2FyZCwgeyB0aGVtZUNvbG9yTW9kZTogbW9kZSB9KTtcblxuICAgIGRlcHRoRmlyc3RSZWN1cnNpb24oKGJvYXJkIGFzIHVua25vd24pIGFzIFBsYWl0RWxlbWVudCwgZWxlbWVudCA9PiB7XG4gICAgICAgIGJvYXJkLmFwcGx5VGhlbWUoZWxlbWVudCk7XG4gICAgfSk7XG59XG5cbmNvbnN0IHVwZGF0ZVBvaW50ZXJUeXBlID0gPFQgZXh0ZW5kcyBzdHJpbmcgPSBQbGFpdFBvaW50ZXJUeXBlPihib2FyZDogUGxhaXRCb2FyZCwgcG9pbnRlcjogVCkgPT4ge1xuICAgIGlmIChib2FyZC5wb2ludGVyID09PSBwb2ludGVyKSByZXR1cm47XG4gICAgYm9hcmQucG9pbnRlciA9IHBvaW50ZXI7XG59O1xuXG5mdW5jdGlvbiBtb3ZlVG9DZW50ZXIoYm9hcmQ6IFBsYWl0Qm9hcmQsIGNlbnRlclBvaW50OiBQb2ludCkge1xuICAgIGNvbnN0IHBsYWl0RWxlbWVudCA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpPy5bMF07XG4gICAgaWYgKHBsYWl0RWxlbWVudCkge1xuICAgICAgICBjb25zdCBib2FyZENvbnRhaW5lclJlY3QgPSBQbGFpdEJvYXJkLmdldEJvYXJkQ29udGFpbmVyKGJvYXJkKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3Qgc2Nyb2xsQmFyV2lkdGggPSBnZXRSZWFsU2Nyb2xsQmFyV2lkdGgoYm9hcmQpO1xuICAgICAgICBjb25zdCBvbGRDZW50ZXJQb2ludCA9IGdldFZpZXdCb3hDZW50ZXJQb2ludChib2FyZCk7XG4gICAgICAgIGNvbnN0IGxlZnQgPSBjZW50ZXJQb2ludFswXSAtIG9sZENlbnRlclBvaW50WzBdO1xuICAgICAgICBjb25zdCB0b3AgPSBjZW50ZXJQb2ludFsxXSAtIG9sZENlbnRlclBvaW50WzFdO1xuICAgICAgICBjb25zdCB6b29tID0gYm9hcmQudmlld3BvcnQuem9vbTtcblxuICAgICAgICBjb25zdCBvcmlnaW5hdGlvbiA9IFtcbiAgICAgICAgICAgIGxlZnQgLSBib2FyZENvbnRhaW5lclJlY3Qud2lkdGggLyAyIC8gem9vbSArIHNjcm9sbEJhcldpZHRoIC8gMiAvIHpvb20sXG4gICAgICAgICAgICB0b3AgLSBib2FyZENvbnRhaW5lclJlY3QuaGVpZ2h0IC8gMiAvIHpvb20gKyBzY3JvbGxCYXJXaWR0aCAvIDIgLyB6b29tXG4gICAgICAgIF0gYXMgUG9pbnQ7XG5cbiAgICAgICAgc2V0Vmlld3BvcnQoYm9hcmQsIHtcbiAgICAgICAgICAgIC4uLmJvYXJkLnZpZXdwb3J0LFxuICAgICAgICAgICAgb3JpZ2luYXRpb25cbiAgICAgICAgfSk7XG4gICAgICAgIGNsZWFyVmlld3BvcnRPcmlnaW5hdGlvbihib2FyZCk7XG4gICAgfVxufVxuXG5leHBvcnQgY29uc3QgQm9hcmRUcmFuc2Zvcm1zID0ge1xuICAgIHVwZGF0ZVBvaW50ZXJUeXBlLFxuICAgIHVwZGF0ZVZpZXdwb3J0LFxuICAgIGZpdFZpZXdwb3J0LFxuICAgIHVwZGF0ZVpvb20sXG4gICAgdXBkYXRlVGhlbWVDb2xvcixcbiAgICBmaXRWaWV3cG9ydFdpZHRoLFxuICAgIG1vdmVUb0NlbnRlclxufTtcbiJdfQ==
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9hcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy90cmFuc2Zvcm1zL2JvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUNILGNBQWMsRUFDZCx3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QiwyQkFBMkIsRUFDOUIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUzRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBSW5DLFNBQVMsY0FBYyxDQUFDLEtBQWlCLEVBQUUsV0FBa0IsRUFBRSxJQUFhO0lBQ3hFLElBQUksR0FBRyxJQUFJLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDbkMsV0FBVyxDQUFDLEtBQUssRUFBRTtRQUNmLEdBQUcsS0FBSyxDQUFDLFFBQVE7UUFDakIsSUFBSTtRQUNKLFdBQVc7S0FDZCxDQUFDLENBQUM7SUFDSCx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsS0FBaUIsRUFBRSxPQUFlLEVBQUUsTUFBYztJQUNsRSxPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRWxDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxNQUFNLGlC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U0FDaEUsQ0FBQztRQUVYLFdBQVcsQ0FBQyxLQUFLLEVBQUU7WUFDZixHQUFHLEtBQUssQ0FBQyxRQUFRO1lBQ2pCLFdBQVc7U0FDZCxDQUFDLENBQUM7UUFDSCx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUMzQixpQkFBaUI7SUFDakIsY0FBYztJQUNkLFdBQVc7SUFDWCxVQUFVO0lBQ1YsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixZQUFZO0NBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRoZW1lQ29sb3JNb2RlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90aGVtZSc7XG5pbXBvcnQgeyBQbGFpdEJvYXJkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ib2FyZCc7XG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG9pbnQnO1xuaW1wb3J0IHsgZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyB9IGZyb20gJy4uL3V0aWxzL2VsZW1lbnQnO1xuaW1wb3J0IHsgZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRSZWN0YW5nbGUgfSBmcm9tICcuLi91dGlscy9tYXRoJztcbmltcG9ydCB7XG4gICAgY2xhbXBab29tTGV2ZWwsXG4gICAgY2xlYXJWaWV3cG9ydE9yaWdpbmF0aW9uLFxuICAgIGdldFZpZXdCb3hDZW50ZXJQb2ludCxcbiAgICBnZXRWaWV3cG9ydE9yaWdpbmF0aW9uLFxuICAgIGluaXRpYWxpemVWaWV3cG9ydENvbnRhaW5lclxufSBmcm9tICcuLi91dGlscy92aWV3cG9ydCc7XG5pbXBvcnQgeyBzZXRWaWV3cG9ydCB9IGZyb20gJy4vdmlld3BvcnQnO1xuaW1wb3J0IHsgZGVwdGhGaXJzdFJlY3Vyc2lvbiwgZ2V0UmVhbFNjcm9sbEJhcldpZHRoLCBnZXRTZWxlY3RlZEVsZW1lbnRzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgUGxhaXRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IHNldFRoZW1lIH0gZnJvbSAnLi90aGVtZSc7XG5pbXBvcnQgeyBGaXRWaWV3cG9ydE9wdGlvbnMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3ZpZXdwb3J0JztcbmltcG9ydCB7IFBsYWl0UG9pbnRlclR5cGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvaW50ZXInO1xuXG5mdW5jdGlvbiB1cGRhdGVWaWV3cG9ydChib2FyZDogUGxhaXRCb2FyZCwgb3JpZ2luYXRpb246IFBvaW50LCB6b29tPzogbnVtYmVyKSB7XG4gICAgem9vbSA9IHpvb20gPz8gYm9hcmQudmlld3BvcnQuem9vbTtcbiAgICBzZXRWaWV3cG9ydChib2FyZCwge1xuICAgICAgICAuLi5ib2FyZC52aWV3cG9ydCxcbiAgICAgICAgem9vbSxcbiAgICAgICAgb3JpZ2luYXRpb25cbiAgICB9KTtcbiAgICBjbGVhclZpZXdwb3J0T3JpZ2luYXRpb24oYm9hcmQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVab29tKGJvYXJkOiBQbGFpdEJvYXJkLCBuZXdab29tOiBudW1iZXIsIGNlbnRlcj86IFBvaW50KSB7XG4gICAgbmV3Wm9vbSA9IGNsYW1wWm9vbUxldmVsKG5ld1pvb20pO1xuXG4gICAgY29uc3QgbmF0aXZlRWxlbWVudCA9IFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpO1xuICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnRSZWN0ID0gbmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBib2FyZENvbnRhaW5lclJlY3QgPSBQbGFpdEJvYXJkLmdldEJvYXJkQ29udGFpbmVyKGJvYXJkKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBsZXQgZm9jdXNQb2ludCA9IFtib2FyZENvbnRhaW5lclJlY3Qud2lkdGggLyAyLCBib2FyZENvbnRhaW5lclJlY3QuaGVpZ2h0IC8gMl07XG5cbiAgICBpZiAoY2VudGVyICYmIGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUmVjdGFuZ2xlKGNlbnRlclswXSwgY2VudGVyWzFdLCBuYXRpdmVFbGVtZW50UmVjdCkgPT09IDApIHtcbiAgICAgICAgZm9jdXNQb2ludCA9IFtjZW50ZXJbMF0gLSBuYXRpdmVFbGVtZW50UmVjdC54LCBjZW50ZXJbMV0gLSBuYXRpdmVFbGVtZW50UmVjdC55XTtcbiAgICB9XG5cbiAgICBjb25zdCB6b29tID0gYm9hcmQudmlld3BvcnQuem9vbTtcbiAgICBjb25zdCBvcmlnaW5hdGlvbiA9IGdldFZpZXdwb3J0T3JpZ2luYXRpb24oYm9hcmQpO1xuICAgIGNvbnN0IGNlbnRlclggPSBvcmlnaW5hdGlvbiFbMF0gKyBmb2N1c1BvaW50WzBdIC8gem9vbTtcbiAgICBjb25zdCBjZW50ZXJZID0gb3JpZ2luYXRpb24hWzFdICsgZm9jdXNQb2ludFsxXSAvIHpvb207XG4gICAgY29uc3QgbmV3T3JpZ2luYXRpb24gPSBbY2VudGVyWCAtIGZvY3VzUG9pbnRbMF0gLyBuZXdab29tLCBjZW50ZXJZIC0gZm9jdXNQb2ludFsxXSAvIG5ld1pvb21dIGFzIFBvaW50O1xuICAgIHVwZGF0ZVZpZXdwb3J0KGJvYXJkLCBuZXdPcmlnaW5hdGlvbiwgbmV3Wm9vbSk7XG59XG5cbmZ1bmN0aW9uIGZpdFZpZXdwb3J0KGJvYXJkOiBQbGFpdEJvYXJkKSB7XG4gICAgbGV0IHNjcm9sbEJhcldpZHRoID0gZ2V0UmVhbFNjcm9sbEJhcldpZHRoKGJvYXJkKTtcblxuICAgIGNvbnN0IGJvYXJkQ29udGFpbmVyUmVjdCA9IFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGVsZW1lbnRIb3N0Qm94ID0gZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyhib2FyZCwgYm9hcmQuY2hpbGRyZW4sIHRydWUpO1xuICAgIGNvbnN0IHpvb20gPSBib2FyZC52aWV3cG9ydC56b29tO1xuICAgIGNvbnN0IGF1dG9GaXRQYWRkaW5nID0gMTY7XG4gICAgY29uc3Qgdmlld3BvcnRXaWR0aCA9IGJvYXJkQ29udGFpbmVyUmVjdC53aWR0aCAtIDIgKiBhdXRvRml0UGFkZGluZztcbiAgICBjb25zdCB2aWV3cG9ydEhlaWdodCA9IGJvYXJkQ29udGFpbmVyUmVjdC5oZWlnaHQgLSAyICogYXV0b0ZpdFBhZGRpbmc7XG5cbiAgICBsZXQgbmV3Wm9vbSA9IHpvb207XG4gICAgaWYgKHZpZXdwb3J0V2lkdGggPCBlbGVtZW50SG9zdEJveC53aWR0aCB8fCB2aWV3cG9ydEhlaWdodCA8IGVsZW1lbnRIb3N0Qm94LmhlaWdodCkge1xuICAgICAgICBuZXdab29tID0gTWF0aC5taW4odmlld3BvcnRXaWR0aCAvIGVsZW1lbnRIb3N0Qm94LndpZHRoLCB2aWV3cG9ydEhlaWdodCAvIGVsZW1lbnRIb3N0Qm94LmhlaWdodCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbmV3Wm9vbSA9IDE7XG4gICAgfVxuXG4gICAgY29uc3QgY2VudGVyUG9pbnQgPSBnZXRWaWV3Qm94Q2VudGVyUG9pbnQoYm9hcmQpO1xuICAgIGNvbnN0IG5ld09yaWdpbmF0aW9uID0gW1xuICAgICAgICBjZW50ZXJQb2ludFswXSAtIGJvYXJkQ29udGFpbmVyUmVjdC53aWR0aCAvIDIgLyBuZXdab29tICsgc2Nyb2xsQmFyV2lkdGggLyAyIC8gem9vbSxcbiAgICAgICAgY2VudGVyUG9pbnRbMV0gLSBib2FyZENvbnRhaW5lclJlY3QuaGVpZ2h0IC8gMiAvIG5ld1pvb20gKyBzY3JvbGxCYXJXaWR0aCAvIDIgLyB6b29tXG4gICAgXSBhcyBQb2ludDtcbiAgICB1cGRhdGVWaWV3cG9ydChib2FyZCwgbmV3T3JpZ2luYXRpb24sIG5ld1pvb20pO1xufVxuXG5mdW5jdGlvbiBmaXRWaWV3cG9ydFdpZHRoKGJvYXJkOiBQbGFpdEJvYXJkLCBvcHRpb25zOiBGaXRWaWV3cG9ydE9wdGlvbnMpIHtcbiAgICBsZXQgc2Nyb2xsQmFyV2lkdGggPSBnZXRSZWFsU2Nyb2xsQmFyV2lkdGgoYm9hcmQpO1xuXG4gICAgY29uc3QgYm9hcmRDb250YWluZXIgPSBQbGFpdEJvYXJkLmdldEJvYXJkQ29udGFpbmVyKGJvYXJkKTtcbiAgICBjb25zdCBib2FyZENvbnRhaW5lclJlY3RhbmdsZSA9IGJvYXJkQ29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgbGV0IGZpbmFsV2lkdGggPSAwO1xuICAgIGlmIChvcHRpb25zLm1heFdpZHRoKSB7XG4gICAgICAgIGZpbmFsV2lkdGggPSBvcHRpb25zLm1heFdpZHRoO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGZpbmFsV2lkdGggPSBib2FyZENvbnRhaW5lclJlY3RhbmdsZS53aWR0aDtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50SG9zdEJveCA9IGdldFJlY3RhbmdsZUJ5RWxlbWVudHMoYm9hcmQsIGJvYXJkLmNoaWxkcmVuLCB0cnVlKTtcbiAgICBjb25zdCBjb250ZW50V2lkdGggPSBmaW5hbFdpZHRoIC0gMiAqIG9wdGlvbnMuYXV0b0ZpdFBhZGRpbmc7XG4gICAgbGV0IG5ld1pvb20gPSAwO1xuICAgIGlmIChjb250ZW50V2lkdGggPCBlbGVtZW50SG9zdEJveC53aWR0aCkge1xuICAgICAgICBuZXdab29tID0gTWF0aC5taW4oY29udGVudFdpZHRoIC8gZWxlbWVudEhvc3RCb3gud2lkdGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld1pvb20gPSAxO1xuICAgIH1cblxuICAgIGxldCBmaW5hbEhlaWdodCA9IGVsZW1lbnRIb3N0Qm94LmhlaWdodCAqIG5ld1pvb20gKyAyICogb3B0aW9ucy5hdXRvRml0UGFkZGluZztcbiAgICBpZiAoZmluYWxIZWlnaHQgPiBvcHRpb25zLmxpbWl0SGVpZ2h0KSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckVsID0gYm9hcmRDb250YWluZXIuY2xvc2VzdChgLiR7b3B0aW9ucy5jb250YWluZXJDbGFzc31gKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29udGFpbmVyRWwuc3R5bGUuaGVpZ2h0ID0gYCR7ZmluYWxIZWlnaHR9cHhgO1xuICAgICAgICBpbml0aWFsaXplVmlld3BvcnRDb250YWluZXIoYm9hcmQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGZpbmFsSGVpZ2h0ID0gb3B0aW9ucy5saW1pdEhlaWdodDtcbiAgICB9XG5cbiAgICBjb25zdCBjZW50ZXJYID0gZWxlbWVudEhvc3RCb3gueCArIGVsZW1lbnRIb3N0Qm94LndpZHRoIC8gMjtcbiAgICBjb25zdCBjZW50ZXJZID0gZWxlbWVudEhvc3RCb3gueSArIGVsZW1lbnRIb3N0Qm94LmhlaWdodCAvIDI7XG4gICAgY29uc3QgbmV3T3JpZ2luYXRpb24gPSBbXG4gICAgICAgIGNlbnRlclggLSBmaW5hbFdpZHRoIC8gMiAvIG5ld1pvb20gKyBzY3JvbGxCYXJXaWR0aCAvIDIgLyBuZXdab29tLFxuICAgICAgICBjZW50ZXJZIC0gZmluYWxIZWlnaHQgLyAyIC8gbmV3Wm9vbSArIHNjcm9sbEJhcldpZHRoIC8gMiAvIG5ld1pvb21cbiAgICBdIGFzIFBvaW50O1xuICAgIHVwZGF0ZVZpZXdwb3J0KGJvYXJkLCBuZXdPcmlnaW5hdGlvbiwgbmV3Wm9vbSk7XG59XG5cbi8qKlxuICogYXBwbHkgdGhlbWUgdG8gZXZlcnkgZWxlbWVudCAocmVtb3ZlIGVsZW1lbnQgY3VzdG9tIHByb3BlcnRpZXMpXG4gKiBpbnZva2UgYXBwbHlUaGVtZUNvbG9yXG4gKi9cbmZ1bmN0aW9uIHVwZGF0ZVRoZW1lQ29sb3IoYm9hcmQ6IFBsYWl0Qm9hcmQsIG1vZGU6IFRoZW1lQ29sb3JNb2RlKSB7XG4gICAgbW9kZSA9IG1vZGUgPz8gYm9hcmQudGhlbWUudGhlbWVDb2xvck1vZGU7XG4gICAgc2V0VGhlbWUoYm9hcmQsIHsgdGhlbWVDb2xvck1vZGU6IG1vZGUgfSk7XG5cbiAgICBkZXB0aEZpcnN0UmVjdXJzaW9uKChib2FyZCBhcyB1bmtub3duKSBhcyBQbGFpdEVsZW1lbnQsIGVsZW1lbnQgPT4ge1xuICAgICAgICBib2FyZC5hcHBseVRoZW1lKGVsZW1lbnQpO1xuICAgIH0pO1xufVxuXG5jb25zdCB1cGRhdGVQb2ludGVyVHlwZSA9IDxUIGV4dGVuZHMgc3RyaW5nID0gUGxhaXRQb2ludGVyVHlwZT4oYm9hcmQ6IFBsYWl0Qm9hcmQsIHBvaW50ZXI6IFQpID0+IHtcbiAgICBpZiAoYm9hcmQucG9pbnRlciA9PT0gcG9pbnRlcikgcmV0dXJuO1xuICAgIGJvYXJkLnBvaW50ZXIgPSBwb2ludGVyO1xufTtcblxuZnVuY3Rpb24gbW92ZVRvQ2VudGVyKGJvYXJkOiBQbGFpdEJvYXJkLCBjZW50ZXJQb2ludDogUG9pbnQpIHtcbiAgICBjb25zdCBwbGFpdEVsZW1lbnQgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKT8uWzBdO1xuICAgIGlmIChwbGFpdEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgYm9hcmRDb250YWluZXJSZWN0ID0gUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHNjcm9sbEJhcldpZHRoID0gZ2V0UmVhbFNjcm9sbEJhcldpZHRoKGJvYXJkKTtcbiAgICAgICAgY29uc3Qgb2xkQ2VudGVyUG9pbnQgPSBnZXRWaWV3Qm94Q2VudGVyUG9pbnQoYm9hcmQpO1xuICAgICAgICBjb25zdCBsZWZ0ID0gY2VudGVyUG9pbnRbMF0gLSBvbGRDZW50ZXJQb2ludFswXTtcbiAgICAgICAgY29uc3QgdG9wID0gY2VudGVyUG9pbnRbMV0gLSBvbGRDZW50ZXJQb2ludFsxXTtcbiAgICAgICAgY29uc3Qgem9vbSA9IGJvYXJkLnZpZXdwb3J0Lnpvb207XG5cbiAgICAgICAgY29uc3Qgb3JpZ2luYXRpb24gPSBbXG4gICAgICAgICAgICBsZWZ0IC0gYm9hcmRDb250YWluZXJSZWN0LndpZHRoIC8gMiAvIHpvb20gKyBzY3JvbGxCYXJXaWR0aCAvIDIgLyB6b29tLFxuICAgICAgICAgICAgdG9wIC0gYm9hcmRDb250YWluZXJSZWN0LmhlaWdodCAvIDIgLyB6b29tICsgc2Nyb2xsQmFyV2lkdGggLyAyIC8gem9vbVxuICAgICAgICBdIGFzIFBvaW50O1xuXG4gICAgICAgIHNldFZpZXdwb3J0KGJvYXJkLCB7XG4gICAgICAgICAgICAuLi5ib2FyZC52aWV3cG9ydCxcbiAgICAgICAgICAgIG9yaWdpbmF0aW9uXG4gICAgICAgIH0pO1xuICAgICAgICBjbGVhclZpZXdwb3J0T3JpZ2luYXRpb24oYm9hcmQpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IEJvYXJkVHJhbnNmb3JtcyA9IHtcbiAgICB1cGRhdGVQb2ludGVyVHlwZSxcbiAgICB1cGRhdGVWaWV3cG9ydCxcbiAgICBmaXRWaWV3cG9ydCxcbiAgICB1cGRhdGVab29tLFxuICAgIHVwZGF0ZVRoZW1lQ29sb3IsXG4gICAgZml0Vmlld3BvcnRXaWR0aCxcbiAgICBtb3ZlVG9DZW50ZXJcbn07XG4iXX0=