@rosen-bridge/watcher-data-extractor 12.0.0 → 12.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,7 @@
1
1
  import { DataSource } from 'typeorm';
2
2
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
3
- import { AbstractInitializableErgoExtractorAction, BlockInfo, BoxInfo, SpendInfo } from '@rosen-bridge/abstract-extractor';
3
+ import { AbstractInitializableErgoExtractorAction, BoxInfo, SpendInfo } from '@rosen-bridge/abstract-extractor';
4
+ import { BlockInfo } from '@rosen-bridge/scanner-interfaces';
4
5
  import EventTriggerEntity from '../entities/EventTriggerEntity';
5
6
  import { ExtractedEventTrigger } from '../interfaces/extractedEventTrigger';
6
7
  declare class EventTriggerAction extends AbstractInitializableErgoExtractorAction<ExtractedEventTrigger, EventTriggerEntity> {
@@ -1 +1 @@
1
- {"version":3,"file":"EventTriggerAction.d.ts","sourceRoot":"","sources":["../../lib/actions/EventTriggerAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAM,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EACL,wCAAwC,EACxC,SAAS,EACT,OAAO,EAEP,SAAS,EACV,MAAM,kCAAkC,CAAC;AAE1C,OAAO,kBAAkB,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAI5E,cAAM,kBAAmB,SAAQ,wCAAwC,CACvE,qBAAqB,EACrB,kBAAkB,CACnB;IACC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;gBAE5B,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,cAAc;IAK3D;;OAEG;IACH,YAAY,iBACI,qBAAqB,EAAE,SAC9B,SAAS,aACL,MAAM,KAChB,KAAK,kBAAkB,EAAE,IAAI,CAAC,EAAE,CAwBjC;IAEF;;OAEG;IACH,mBAAmB,aACP,kBAAkB,EAAE,KAC7B,qBAAqB,EAAE,CAuBxB;IAEF;;;;;;;;OAQG;IACH,UAAU,mBACQ,MAAM,SAAS,CAAC,SACzB,SAAS,eACH,MAAM,KAClB,QAAQ,OAAO,EAAE,CAAC,CAuCnB;CACH;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"EventTriggerAction.d.ts","sourceRoot":"","sources":["../../lib/actions/EventTriggerAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAM,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EACL,wCAAwC,EACxC,OAAO,EAEP,SAAS,EACV,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,kBAAkB,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAI5E,cAAM,kBAAmB,SAAQ,wCAAwC,CACvE,qBAAqB,EACrB,kBAAkB,CACnB;IACC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;gBAE5B,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,cAAc;IAK3D;;OAEG;IACH,YAAY,iBACI,qBAAqB,EAAE,SAC9B,SAAS,aACL,MAAM,KAChB,KAAK,kBAAkB,EAAE,IAAI,CAAC,EAAE,CAwBjC;IAEF;;OAEG;IACH,mBAAmB,aACP,kBAAkB,EAAE,KAC7B,qBAAqB,EAAE,CAuBxB;IAEF;;;;;;;;OAQG;IACH,UAAU,mBACQ,MAAM,SAAS,CAAC,SACzB,SAAS,eACH,MAAM,KAClB,QAAQ,OAAO,EAAE,CAAC,CA4CnB;CACH;AAED,eAAe,kBAAkB,CAAC"}
@@ -81,15 +81,18 @@ class EventTriggerAction extends AbstractInitializableErgoExtractorAction {
81
81
  });
82
82
  for (const spentTrigger of spentTriggers) {
83
83
  const spendInfo = spendInfoChunk.find((info) => info.boxId === spentTrigger.boxId);
84
- if (!spendInfo || !spendInfo.extras || spendInfo.extras.length < 2) {
84
+ if (!spendInfo ||
85
+ !spendInfo.extras ||
86
+ !spendInfo.extras.result ||
87
+ !spendInfo.extras.paymentTxId) {
85
88
  throw Error(`Impossible case: spending information extras does not contain result or paymentTxId, ${spendInfo}`);
86
89
  }
87
90
  await this.repository.update({ boxId: spendInfo.boxId, extractor: extractorId }, {
88
91
  spendBlock: block.hash,
89
92
  spendHeight: block.height,
90
93
  spendTxId: spendInfo.txId,
91
- result: spendInfo.extras[0],
92
- paymentTxId: spendInfo.extras[1],
94
+ result: spendInfo.extras.result,
95
+ paymentTxId: spendInfo.extras.paymentTxId,
93
96
  });
94
97
  spentData.push(pick(spendInfo, ['boxId']));
95
98
  this.logger.info(`Spent trigger [${spentTrigger.boxId}] of event [${spentTrigger.eventId}] at height ${block.height}`);
@@ -100,4 +103,4 @@ class EventTriggerAction extends AbstractInitializableErgoExtractorAction {
100
103
  };
101
104
  }
102
105
  export default EventTriggerAction;
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRUcmlnZ2VyQWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2FjdGlvbnMvRXZlbnRUcmlnZ2VyQWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFekMsT0FBTyxFQUNMLHdDQUF3QyxFQUd4QyxhQUFhLEdBRWQsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxQyxPQUFPLGtCQUFrQixNQUFNLGdDQUFnQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFeEMsTUFBTSxrQkFBbUIsU0FBUSx3Q0FHaEM7SUFDa0IsVUFBVSxDQUFhO0lBRXhDLFlBQVksVUFBc0IsRUFBRSxNQUF1QjtRQUN6RCxLQUFLLENBQUMsVUFBVSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVksR0FBRyxDQUNiLFlBQXFDLEVBQ3JDLEtBQWdCLEVBQ2hCLFNBQWlCLEVBQ2lCLEVBQUU7UUFDcEMsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3BDLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87WUFDeEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3BCLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtZQUM5QixLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDakIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFNBQVMsRUFBRSxPQUFPLENBQUMs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QUNGLENBQUM7Z0JBQ0YsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZCxrQkFBa0IsWUFBWSxDQUFDLEtBQUssZUFBZSxZQUFZLENBQUMsT0FBTyxlQUFlLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FDckcsQ0FBQztnQkFDRixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZixtQkFBbUIsSUFBSSxDQUFDLFNBQVMsQ0FDL0IsWUFBWSxDQUNiLGdDQUFnQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQ2hFLENBQUM7YUFDSDtTQUNGO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQyxDQUFDO0NBQ0g7QUFFRCxlQUFlLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSwgSW4gfSBmcm9tICd0eXBlb3JtJztcbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RJbml0aWFsaXphYmxlRXJnb0V4dHJhY3RvckFjdGlvbixcbiAgQmxvY2tJbmZvLFxuICBCb3hJbmZvLFxuICBEQl9DSFVOS19TSVpFLFxuICBTcGVuZEluZm8sXG59IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtZXh0cmFjdG9yJztcblxuaW1wb3J0IEV2ZW50VHJpZ2dlckVudGl0eSBmcm9tICcuLi9lbnRpdGllcy9FdmVudFRyaWdnZXJFbnRpdHknO1xuaW1wb3J0IHsgRXh0cmFjdGVkRXZlbnRUcmlnZ2VyIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHRyYWN0ZWRFdmVudFRyaWdnZXInO1xuaW1wb3J0IHsgSnNvbkJJIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgY2h1bmssIHBpY2sgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5jbGFzcyBFdmVudFRyaWdnZXJBY3Rpb24gZXh0ZW5kcyBBYnN0cmFjdEluaXRpYWxpemFibGVFcmdvRXh0cmFjdG9yQWN0aW9uPFxuICBFeHRyYWN0ZWRFdmVudFRyaWdnZXIsXG4gIEV2ZW50VHJpZ2dlckVudGl0eVxuPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YVNvdXJjZTogRGF0YVNvdXJjZTtcblxuICBjb25zdHJ1Y3RvcihkYXRhU291cmNlOiBEYXRhU291cmNlLCBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlcikge1xuICAgIHN1cGVyKGRhdGFTb3VyY2UsIEV2ZW50VHJpZ2dlckVudGl0eSwgbG9nZ2VyKTtcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBkYXRhU291cmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIGNyZWF0ZSB0aGUgYm94IGVudGl0eSBmcm9tIGV4dHJhY3RlZCBkYXRhIGFuZCBibG9jayBpbmZvcm1hdGlvblxuICAgKi9cbiAgY3JlYXRlRW50aXR5ID0gKFxuICAgIHRyaWdnZXJCb3hlczogRXh0cmFjdGVkRXZlbnRUcmlnZ2VyW10sXG4gICAgYmxvY2s6IEJsb2NrSW5mbyxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApOiBPbWl0PEV2ZW50VHJpZ2dlckVudGl0eSwgJ2lkJz5bXSA9PiB7XG4gICAgcmV0dXJuIHRyaWdnZXJCb3hlcy5tYXAoKHRyaWdnZXIpID0+ICh7XG4gICAgICB0eElkOiB0cmlnZ2VyLnR4SWQsXG4gICAgICBldmVudElkOiB0cmlnZ2VyLmV2ZW50SWQsXG4gICAgICBib3hJZDogdHJpZ2dlci5ib3hJZCxcbiAgICAgIHNlcmlhbGl6ZWQ6IHRyaWdnZXIuc2VyaWFsaXplZCxcbiAgICAgIGJsb2NrOiBibG9jay5oYXNoLFxuICAgICAgaGVpZ2h0OiBibG9jay5oZWlnaHQsXG4gICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgIFdJRHNDb3VudDogdHJpZ2dlci5XSURzQ291bnQsXG4gICAgICBXSURzSGFzaDogdHJpZ2dlci5XSURzSGFzaCxcbiAgICAgIGFtb3VudDogdHJpZ2dlci5hbW91bnQsXG4gICAgICBicmlkZ2VGZWU6IHRyaWdnZXIuYnJpZGdlRmVlLFxuICAgICAgZnJvbUFkZHJlc3M6IHRyaWdnZXIuZnJvbUFkZHJlc3MsXG4gICAgICB0b0FkZHJlc3M6IHRyaWdnZXIudG9BZGRyZXNzLFxuICAgICAgZnJvbUNoYWluOiB0cmlnZ2VyLmZyb21DaGFpbixcbiAgICAgIG5ldHdvcmtGZWU6IHRyaWdnZXIubmV0d29ya0ZlZSxcbiAgICAgIHNvdXJjZUNoYWluVG9rZW5JZDogdHJpZ2dlci5zb3VyY2VDaGFpblRva2VuSWQsXG4gICAgICB0YXJnZXRDaGFpblRva2VuSWQ6IHRyaWdnZXIudGFyZ2V0Q2hhaW5Ub2tlbklkLFxuICAgICAgc291cmNlQmxvY2tJZDogdHJpZ2dlci5zb3VyY2VCbG9ja0lkLFxuICAgICAgdG9DaGFpbjogdHJpZ2dlci50b0NoYWluLFxuICAgICAgc291cmNlVHhJZDogdHJpZ2dlci5zb3VyY2VUeElkLFxuICAgICAgc291cmNlQ2hhaW5IZWlnaHQ6IHRyaWdnZXIuc291cmNlQ2hhaW5IZWlnaHQsXG4gICAgfSkpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBjb252ZXJ0IHRoZSBkYXRhYmFzZSBlbnRpdHkgYmFjayB0byByYXcgZGF0YVxuICAgKi9cbiAgY29udmVydEVudGl0eVRvRGF0YSA9IChcbiAgICBlbnRpdGllczogRXZlbnRUcmlnZ2VyRW50aXR5W11cbiAgKTogRXh0cmFjdGVkRXZlbnRUcmlnZ2VyW10gPT4ge1xuICAgIHJldHVybiBlbnRpdGllcy5tYXAoKGRhdGEpID0+XG4gICAgICBwaWNrKGRhdGEsIFtcbiAgICAgICAgJ2V2ZW50SWQnLFxuICAgICAgICAndHhJZCcsXG4gICAgICAgICdib3hJZCcsXG4gICAgICAgICdzZXJpYWxpemVkJyxcbiAgICAgICAgJ2Zyb21DaGFpbicsXG4gICAgICAgICd0b0NoYWluJyxcbiAgICAgICAgJ2Zyb21BZGRyZXNzJyxcbiAgICAgICAgJ3RvQWRkcmVzcycsXG4gICAgICAgICdhbW91bnQnLFxuICAgICAgICAnYnJpZGdlRmVlJyxcbiAgICAgICAgJ25ldHdvcmtGZWUnLFxuICAgICAgICAnc291cmNlQ2hhaW5Ub2tlbklkJyxcbiAgICAgICAgJ3RhcmdldENoYWluVG9rZW5JZCcsXG4gICAgICAgICdzb3VyY2VCbG9ja0lkJyxcbiAgICAgICAgJ3NvdXJjZVR4SWQnLFxuICAgICAgICAnV0lEc0NvdW50JyxcbiAgICAgICAgJ1dJRHNIYXNoJyxcbiAgICAgICAgJ3NvdXJjZUNoYWluSGVpZ2h0JyxcbiAgICAgIF0pXG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogdXBkYXRlIHNwZW5kaW5nIGluZm9ybWF0aW9uIG9mIHN0b3JlZCBldmVudCB0cmlnZ2Vyc1xuICAgKiBhbmQgc2V0IHJlc3VsdCBhbmQgcGF5bWVudFR4SWQgb2YgdGhlIGV2ZW50XG4gICAqIGNodW5rIHNwZW5kSW5mb3MgdG8gcHJldmVudCBsYXJnZSBkYXRhYmFzZSBxdWVyaWVzXG4gICAqIEBwYXJhbSBzcGVuZEluZkFycmF5XG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9ySWRcbiAgICogQHJldHVybnMgc3BlbnQgYm94IGlkc1xuICAgKi9cbiAgc3BlbmRCb3hlcyA9IGFzeW5jIChcbiAgICBzcGVuZEluZm9BcnJheTogQXJyYXk8U3BlbmRJbmZvPixcbiAgICBibG9jazogQmxvY2tJbmZvLFxuICAgIGV4dHJhY3RvcklkOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxCb3hJbmZvW10+ID0+IHtcbiAgICBjb25zdCBzcGVudERhdGEgPSBbXTtcbiAgICBjb25zdCBzcGVuZEluZm9DaHVua3MgPSBjaHVuayhzcGVuZEluZm9BcnJheSwgREJfQ0hVTktfU0laRSk7XG4gICAgZm9yIChjb25zdCBzcGVuZEluZm9DaHVuayBvZiBzcGVuZEluZm9DaHVua3MpIHtcbiAgICAgIGNvbnN0IHNwZW50VHJpZ2dlcnMgPSBhd2FpdCB0aGlzLnJlcG9zaXRvcnkuZmluZEJ5KHtcbiAgICAgICAgYm94SWQ6IEluKHNwZW5kSW5mb0NodW5rLm1hcCgoc3BlbmRJbmZvKSA9PiBzcGVuZEluZm8uYm94SWQpKSxcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3JJZCxcbiAgICAgIH0pO1xuICAgICAgZm9yIChjb25zdCBzcGVudFRyaWdnZXIgb2Ygc3BlbnRUcmlnZ2Vycykge1xuICAgICAgICBjb25zdCBzcGVuZEluZm8gPSBzcGVuZEluZm9DaHVuay5maW5kKFxuICAgICAgICAgIChpbmZvKSA9PiBpbmZvLmJveElkID09PSBzcGVudFRyaWdnZXIuYm94SWRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFzcGVuZEluZm8gfHwgIXNwZW5kSW5mby5leHRyYXMgfHwgc3BlbmRJbmZvLmV4dHJhcy5sZW5ndGggPCAyKSB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICBgSW1wb3NzaWJsZSBjYXNlOiBzcGVuZGluZyBpbmZvcm1hdGlvbiBleHRyYXMgZG9lcyBub3QgY29udGFpbiByZXN1bHQgb3IgcGF5bWVudFR4SWQsICR7c3BlbmRJbmZvfWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMucmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICAgICAgeyBib3hJZDogc3BlbmRJbmZvLmJveElkLCBleHRyYWN0b3I6IGV4dHJhY3RvcklkIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgc3BlbmRCbG9jazogYmxvY2suaGFzaCxcbiAgICAgICAgICAgIHNwZW5kSGVpZ2h0OiBibG9jay5oZWlnaHQsXG4gICAgICAgICAgICBzcGVuZFR4SWQ6IHNwZW5kSW5mby50eElkLFxuICAgICAgICAgICAgcmVzdWx0OiBzcGVuZEluZm8uZXh0cmFzWzBdLFxuICAgICAgICAgICAgcGF5bWVudFR4SWQ6IHNwZW5kSW5mby5leHRyYXNbMV0sXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICBzcGVudERhdGEucHVzaChwaWNrKHNwZW5kSW5mbywgWydib3hJZCddKSk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICAgICAgYFNwZW50IHRyaWdnZXIgWyR7c3BlbnRUcmlnZ2VyLmJveElkfV0gb2YgZXZlbnQgWyR7c3BlbnRUcmlnZ2VyLmV2ZW50SWR9XSBhdCBoZWlnaHQgJHtibG9jay5oZWlnaHR9YFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBgU3BlbnQgdHJpZ2dlcjogWyR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICBzcGVudFRyaWdnZXJcbiAgICAgICAgICApfV0gd2l0aCBzcGVuZGluZyBpbmZvcm1hdGlvbiBbJHtKc29uQkkuc3RyaW5naWZ5KHNwZW5kSW5mbyl9XWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHNwZW50RGF0YTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgRXZlbnRUcmlnZ2VyQWN0aW9uO1xuIl19
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRUcmlnZ2VyQWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2FjdGlvbnMvRXZlbnRUcmlnZ2VyQWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFekMsT0FBTyxFQUNMLHdDQUF3QyxFQUV4QyxhQUFhLEdBRWQsTUFBTSxrQ0FBa0MsQ0FBQztBQUcxQyxPQUFPLGtCQUFrQixNQUFNLGdDQUFnQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFeEMsTUFBTSxrQkFBbUIsU0FBUSx3Q0FHaEM7SUFDa0IsVUFBVSxDQUFhO0lBRXhDLFlBQVksVUFBc0IsRUFBRSxNQUF1QjtRQUN6RCxLQUFLLENBQUMsVUFBVSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVksR0FBRyxDQUNiLFlBQXFDLEVBQ3JDLEtBQWdCLEVBQ2hCLFNBQWlCLEVBQ2lCLEVBQUU7UUFDcEMsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3BDLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87WUFDeEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3BCLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtZQUM5QixLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDakIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFNBQVMsRUFBRSxPQUFPLENBQUMs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QyxNQUFNLENBQUMsV0FBVztpQkFDMUMsQ0FDRixDQUFDO2dCQUNGLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2Qsa0JBQWtCLFlBQVksQ0FBQyxLQUFLLGVBQWUsWUFBWSxDQUFDLE9BQU8sZUFBZSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQ3JHLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsbUJBQW1CLElBQUksQ0FBQyxTQUFTLENBQy9CLFlBQVksQ0FDYixnQ0FBZ0MsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUNoRSxDQUFDO2FBQ0g7U0FDRjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUMsQ0FBQztDQUNIO0FBRUQsZUFBZSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UsIEluIH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7XG4gIEFic3RyYWN0SW5pdGlhbGl6YWJsZUVyZ29FeHRyYWN0b3JBY3Rpb24sXG4gIEJveEluZm8sXG4gIERCX0NIVU5LX1NJWkUsXG4gIFNwZW5kSW5mbyxcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1leHRyYWN0b3InO1xuaW1wb3J0IHsgQmxvY2tJbmZvIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuXG5pbXBvcnQgRXZlbnRUcmlnZ2VyRW50aXR5IGZyb20gJy4uL2VudGl0aWVzL0V2ZW50VHJpZ2dlckVudGl0eSc7XG5pbXBvcnQgeyBFeHRyYWN0ZWRFdmVudFRyaWdnZXIgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2V4dHJhY3RlZEV2ZW50VHJpZ2dlcic7XG5pbXBvcnQgeyBKc29uQkkgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBjaHVuaywgcGljayB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmNsYXNzIEV2ZW50VHJpZ2dlckFjdGlvbiBleHRlbmRzIEFic3RyYWN0SW5pdGlhbGl6YWJsZUVyZ29FeHRyYWN0b3JBY3Rpb248XG4gIEV4dHJhY3RlZEV2ZW50VHJpZ2dlcixcbiAgRXZlbnRUcmlnZ2VyRW50aXR5XG4+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhU291cmNlOiBEYXRhU291cmNlO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyKSB7XG4gICAgc3VwZXIoZGF0YVNvdXJjZSwgRXZlbnRUcmlnZ2VyRW50aXR5LCBsb2dnZXIpO1xuICAgIHRoaXMuZGF0YVNvdXJjZSA9IGRhdGFTb3VyY2U7XG4gIH1cblxuICAvKipcbiAgICogY3JlYXRlIHRoZSBib3ggZW50aXR5IGZyb20gZXh0cmFjdGVkIGRhdGEgYW5kIGJsb2NrIGluZm9ybWF0aW9uXG4gICAqL1xuICBjcmVhdGVFbnRpdHkgPSAoXG4gICAgdHJpZ2dlckJveGVzOiBFeHRyYWN0ZWRFdmVudFRyaWdnZXJbXSxcbiAgICBibG9jazogQmxvY2tJbmZvLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nXG4gICk6IE9taXQ8RXZlbnRUcmlnZ2VyRW50aXR5LCAnaWQnPltdID0+IHtcbiAgICByZXR1cm4gdHJpZ2dlckJveGVzLm1hcCgodHJpZ2dlcikgPT4gKHtcbiAgICAgIHR4SWQ6IHRyaWdnZXIudHhJZCxcbiAgICAgIGV2ZW50SWQ6IHRyaWdnZXIuZXZlbnRJZCxcbiAgICAgIGJveElkOiB0cmlnZ2VyLmJveElkLFxuICAgICAgc2VyaWFsaXplZDogdHJpZ2dlci5zZXJpYWxpemVkLFxuICAgICAgYmxvY2s6IGJsb2NrLmhhc2gsXG4gICAgICBoZWlnaHQ6IGJsb2NrLmhlaWdodCxcbiAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgV0lEc0NvdW50OiB0cmlnZ2VyLldJRHNDb3VudCxcbiAgICAgIFdJRHNIYXNoOiB0cmlnZ2VyLldJRHNIYXNoLFxuICAgICAgYW1vdW50OiB0cmlnZ2VyLmFtb3VudCxcbiAgICAgIGJyaWRnZUZlZTogdHJpZ2dlci5icmlkZ2VGZWUsXG4gICAgICBmcm9tQWRkcmVzczogdHJpZ2dlci5mcm9tQWRkcmVzcyxcbiAgICAgIHRvQWRkcmVzczogdHJpZ2dlci50b0FkZHJlc3MsXG4gICAgICBmcm9tQ2hhaW46IHRyaWdnZXIuZnJvbUNoYWluLFxuICAgICAgbmV0d29ya0ZlZTogdHJpZ2dlci5uZXR3b3JrRmVlLFxuICAgICAgc291cmNlQ2hhaW5Ub2tlbklkOiB0cmlnZ2VyLnNvdXJjZUNoYWluVG9rZW5JZCxcbiAgICAgIHRhcmdldENoYWluVG9rZW5JZDogdHJpZ2dlci50YXJnZXRDaGFpblRva2VuSWQsXG4gICAgICBzb3VyY2VCbG9ja0lkOiB0cmlnZ2VyLnNvdXJjZUJsb2NrSWQsXG4gICAgICB0b0NoYWluOiB0cmlnZ2VyLnRvQ2hhaW4sXG4gICAgICBzb3VyY2VUeElkOiB0cmlnZ2VyLnNvdXJjZVR4SWQsXG4gICAgICBzb3VyY2VDaGFpbkhlaWdodDogdHJpZ2dlci5zb3VyY2VDaGFpbkhlaWdodCxcbiAgICB9KSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIGNvbnZlcnQgdGhlIGRhdGFiYXNlIGVudGl0eSBiYWNrIHRvIHJhdyBkYXRhXG4gICAqL1xuICBjb252ZXJ0RW50aXR5VG9EYXRhID0gKFxuICAgIGVudGl0aWVzOiBFdmVudFRyaWdnZXJFbnRpdHlbXVxuICApOiBFeHRyYWN0ZWRFdmVudFRyaWdnZXJbXSA9PiB7XG4gICAgcmV0dXJuIGVudGl0aWVzLm1hcCgoZGF0YSkgPT5cbiAgICAgIHBpY2soZGF0YSwgW1xuICAgICAgICAnZXZlbnRJZCcsXG4gICAgICAgICd0eElkJyxcbiAgICAgICAgJ2JveElkJyxcbiAgICAgICAgJ3NlcmlhbGl6ZWQnLFxuICAgICAgICAnZnJvbUNoYWluJyxcbiAgICAgICAgJ3RvQ2hhaW4nLFxuICAgICAgICAnZnJvbUFkZHJlc3MnLFxuICAgICAgICAndG9BZGRyZXNzJyxcbiAgICAgICAgJ2Ftb3VudCcsXG4gICAgICAgICdicmlkZ2VGZWUnLFxuICAgICAgICAnbmV0d29ya0ZlZScsXG4gICAgICAgICdzb3VyY2VDaGFpblRva2VuSWQnLFxuICAgICAgICAndGFyZ2V0Q2hhaW5Ub2tlbklkJyxcbiAgICAgICAgJ3NvdXJjZUJsb2NrSWQnLFxuICAgICAgICAnc291cmNlVHhJZCcsXG4gICAgICAgICdXSURzQ291bnQnLFxuICAgICAgICAnV0lEc0hhc2gnLFxuICAgICAgICAnc291cmNlQ2hhaW5IZWlnaHQnLFxuICAgICAgXSlcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiB1cGRhdGUgc3BlbmRpbmcgaW5mb3JtYXRpb24gb2Ygc3RvcmVkIGV2ZW50IHRyaWdnZXJzXG4gICAqIGFuZCBzZXQgcmVzdWx0IGFuZCBwYXltZW50VHhJZCBvZiB0aGUgZXZlbnRcbiAgICogY2h1bmsgc3BlbmRJbmZvcyB0byBwcmV2ZW50IGxhcmdlIGRhdGFiYXNlIHF1ZXJpZXNcbiAgICogQHBhcmFtIHNwZW5kSW5mQXJyYXlcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JJZFxuICAgKiBAcmV0dXJucyBzcGVudCBib3ggaWRzXG4gICAqL1xuICBzcGVuZEJveGVzID0gYXN5bmMgKFxuICAgIHNwZW5kSW5mb0FycmF5OiBBcnJheTxTcGVuZEluZm8+LFxuICAgIGJsb2NrOiBCbG9ja0luZm8sXG4gICAgZXh0cmFjdG9ySWQ6IHN0cmluZ1xuICApOiBQcm9taXNlPEJveEluZm9bXT4gPT4ge1xuICAgIGNvbnN0IHNwZW50RGF0YSA9IFtdO1xuICAgIGNvbnN0IHNwZW5kSW5mb0NodW5rcyA9IGNodW5rKHNwZW5kSW5mb0FycmF5LCBEQl9DSFVOS19TSVpFKTtcbiAgICBmb3IgKGNvbnN0IHNwZW5kSW5mb0NodW5rIG9mIHNwZW5kSW5mb0NodW5rcykge1xuICAgICAgY29uc3Qgc3BlbnRUcmlnZ2VycyA9IGF3YWl0IHRoaXMucmVwb3NpdG9yeS5maW5kQnkoe1xuICAgICAgICBib3hJZDogSW4oc3BlbmRJbmZvQ2h1bmsubWFwKChzcGVuZEluZm8pID0+IHNwZW5kSW5mby5ib3hJZCkpLFxuICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcklkLFxuICAgICAgfSk7XG4gICAgICBmb3IgKGNvbnN0IHNwZW50VHJpZ2dlciBvZiBzcGVudFRyaWdnZXJzKSB7XG4gICAgICAgIGNvbnN0IHNwZW5kSW5mbyA9IHNwZW5kSW5mb0NodW5rLmZpbmQoXG4gICAgICAgICAgKGluZm8pID0+IGluZm8uYm94SWQgPT09IHNwZW50VHJpZ2dlci5ib3hJZFxuICAgICAgICApO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIXNwZW5kSW5mbyB8fFxuICAgICAgICAgICFzcGVuZEluZm8uZXh0cmFzIHx8XG4gICAgICAgICAgIXNwZW5kSW5mby5leHRyYXMucmVzdWx0IHx8XG4gICAgICAgICAgIXNwZW5kSW5mby5leHRyYXMucGF5bWVudFR4SWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICBgSW1wb3NzaWJsZSBjYXNlOiBzcGVuZGluZyBpbmZvcm1hdGlvbiBleHRyYXMgZG9lcyBub3QgY29udGFpbiByZXN1bHQgb3IgcGF5bWVudFR4SWQsICR7c3BlbmRJbmZvfWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMucmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICAgICAgeyBib3hJZDogc3BlbmRJbmZvLmJveElkLCBleHRyYWN0b3I6IGV4dHJhY3RvcklkIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgc3BlbmRCbG9jazogYmxvY2suaGFzaCxcbiAgICAgICAgICAgIHNwZW5kSGVpZ2h0OiBibG9jay5oZWlnaHQsXG4gICAgICAgICAgICBzcGVuZFR4SWQ6IHNwZW5kSW5mby50eElkLFxuICAgICAgICAgICAgcmVzdWx0OiBzcGVuZEluZm8uZXh0cmFzLnJlc3VsdCxcbiAgICAgICAgICAgIHBheW1lbnRUeElkOiBzcGVuZEluZm8uZXh0cmFzLnBheW1lbnRUeElkLFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgc3BlbnREYXRhLnB1c2gocGljayhzcGVuZEluZm8sIFsnYm94SWQnXSkpO1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgIGBTcGVudCB0cmlnZ2VyIFske3NwZW50VHJpZ2dlci5ib3hJZH1dIG9mIGV2ZW50IFske3NwZW50VHJpZ2dlci5ldmVudElkfV0gYXQgaGVpZ2h0ICR7YmxvY2suaGVpZ2h0fWBcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYFNwZW50IHRyaWdnZXI6IFske0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgc3BlbnRUcmlnZ2VyXG4gICAgICAgICAgKX1dIHdpdGggc3BlbmRpbmcgaW5mb3JtYXRpb24gWyR7SnNvbkJJLnN0cmluZ2lmeShzcGVuZEluZm8pfV1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzcGVudERhdGE7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IEV2ZW50VHJpZ2dlckFjdGlvbjtcbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
2
2
  import { DataSource, DeleteResult } from 'typeorm';
3
- import { Block } from '@rosen-bridge/abstract-extractor';
3
+ import { Block } from '@rosen-bridge/scanner-interfaces';
4
4
  import { ExtractedCollateral } from '../interfaces/extractedCollateral';
5
5
  import { SpendInfo } from '../interfaces/types';
6
6
  declare class CollateralAction {
@@ -191,4 +191,4 @@ class CollateralAction {
191
191
  };
192
192
  }
193
193
  export default CollateralAction;
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGF0ZXJhbEFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9hY3Rpb25zL2NvbGxhdGVyYWxBY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLFVBQVUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBNEIsRUFBRSxFQUFFLE1BQU0sRUFBYyxNQUFNLFNBQVMsQ0FBQztBQUczRSxPQUFPLGdCQUFnQixNQUFNLDhCQUE4QixDQUFDO0FBSTVELE1BQU0sZ0JBQWdCO0lBSUQ7SUFDUjtJQUpNLG9CQUFvQixDQUErQjtJQUVwRSxZQUNtQixVQUFzQixFQUM5QixTQUF5QixJQUFJLFdBQVcsRUFBRTtRQURsQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQzlCLFdBQU0sR0FBTixNQUFNLENBQW9DO1FBRW5ELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxnQkFBZ0IsR0FBRyxLQUFLLEVBQ3RCLFVBQStCLEVBQy9CLFNBQWlCLEVBQ2pCLEVBQUU7UUFDRixPQUFPLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztZQUM1QyxHQUFHLFVBQVU7WUFDYixTQUFTO1NBQ1YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUY7Ozs7OztPQU1HO0lBQ0gsZ0JBQWdCLEdBQUcsS0FBSyxFQUN0QixVQUNvQyxFQUNwQyxTQUFpQixFQUNqQixFQUFFO1FBQ0YsT0FBTyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQzNDO1lBQ0UsU0FBUztZQUNULEtBQUssRUFBRSxVQUFVLENBQUMsS0FB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QUVGLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztZQUNyQyxLQUFLLEVBQUUsS0FBSztZQUNaLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLHdDQUF3QyxLQUFLLG9CQUFvQixTQUFTLHFCQUFxQixDQUNoRyxDQUFDO1FBRUYsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUNwQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxFQUMzQztZQUNFLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsZ0JBQWdCLEdBQUcsS0FBSyxFQUN0QixLQUFhLEVBQ2IsU0FBaUIsRUFDTSxFQUFFO1FBQ3pCLE9BQU8sTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDO1lBQzVDLEtBQUssRUFBRSxLQUFLO1lBQ1osU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0NBQ0g7QUFFRCxlQUFlLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IEpzb25CaWdJbnQgZnJvbSAnQHJvc2VuLWJyaWRnZS9qc29uLWJpZ2ludCc7XG5pbXBvcnQgeyBkaWZmZXJlbmNlIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IERhdGFTb3VyY2UsIERlbGV0ZVJlc3VsdCwgSW4sIElzTnVsbCwgUmVwb3NpdG9yeSB9IGZyb20gJ3R5cGVvcm0nO1xuaW1wb3J0IHsgQmxvY2sgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWV4dHJhY3Rvcic7XG5cbmltcG9ydCBDb2xsYXRlcmFsRW50aXR5IGZyb20gJy4uL2VudGl0aWVzL0NvbGxhdGVyYWxFbnRpdHknO1xuaW1wb3J0IHsgRXh0cmFjdGVkQ29sbGF0ZXJhbCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZXh0cmFjdGVkQ29sbGF0ZXJhbCc7XG5pbXBvcnQgeyBTcGVuZEluZm8gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3R5cGVzJztcblxuY2xhc3MgQ29sbGF0ZXJhbEFjdGlvbiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29sbGF0ZXJhbFJlcG9zaXRvcnk6IFJlcG9zaXRvcnk8Q29sbGF0ZXJhbEVudGl0eT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIHJlYWRvbmx5IGxvZ2dlcjogQWJzdHJhY3RMb2dnZXIgPSBuZXcgRHVtbXlMb2dnZXIoKVxuICApIHtcbiAgICB0aGlzLmNvbGxhdGVyYWxSZXBvc2l0b3J5ID0gdGhpcy5kYXRhU291cmNlLmdldFJlcG9zaXRvcnkoQ29sbGF0ZXJhbEVudGl0eSk7XG4gIH1cblxuICAvKipcbiAgICogaW5zZXJ0cyBhIGNvbGxhdGVyYWwgaW50byB0aGUgZGF0YWJhc2VcbiAgICpcbiAgICogQHBhcmFtIHtFeHRyYWN0ZWRDb2xsYXRlcmFsfSBjb2xsYXRlcmFsXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBleHRyYWN0b3JcbiAgICogQG1lbWJlcm9mIENvbGxhdGVyYWxBY3Rpb25cbiAgICovXG4gIGluc2VydENvbGxhdGVyYWwgPSBhc3luYyAoXG4gICAgY29sbGF0ZXJhbDogRXh0cmFjdGVkQ29sbGF0ZXJhbCxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApID0+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jb2xsYXRlcmFsUmVwb3NpdG9yeS5pbnNlcnQoe1xuICAgICAgLi4uY29sbGF0ZXJhbCxcbiAgICAgIGV4dHJhY3RvcixcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogdXBkYXRlcyBhIGNvbGxhdGVyYWwgaW50byB0aGUgZGF0YWJhc2VcbiAgICpcbiAgICogQHBhcmFtIHtFeHRyYWN0ZWRDb2xsYXRlcmFsfSBjb2xsYXRlcmFsXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBleHRyYWN0b3JcbiAgICogQG1lbWJlcm9mIENvbGxhdGVyYWxBY3Rpb25cbiAgICovXG4gIHVwZGF0ZUNvbGxhdGVyYWwgPSBhc3luYyAoXG4gICAgY29sbGF0ZXJhbDogUGFydGlhbDxFeHRyYWN0ZWRDb2xsYXRlcmFsPiAmXG4gICAgICBQaWNrPEV4dHJhY3RlZENvbGxhdGVyYWwsICdib3hJZCc+LFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nXG4gICkgPT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNvbGxhdGVyYWxSZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgIHtcbiAgICAgICAgZXh0cmFjdG9yLFxuICAgICAgICBib3hJZDogY29sbGF0ZXJhbC5ib3hJZCxcbiAgICAgIH0sXG4gICAgICBjb2xsYXRlcmFsXG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogc3RvcmVzIGxpc3Qgb2YgY29sbGF0ZXJhbHNcbiAgICpcbiAgICogQHBhcmFtIHtBcnJheTxFeHRyYWN0ZWRDb2xsYXRlcmFsPn0gY29sbGF0ZXJhbHNcbiAgICogQHBhcmFtIHtCbG9ja30gYmxvY2tcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV4dHJhY3RvclxuICAgKiBAcmV0dXJuIHtQcm9taXNlPGJvb2xlYW4+fVxuICAgKiBAbWVtYmVyb2YgQ29sbGF0ZXJhbEFjdGlvblxuICAgKi9cbiAgc3RvcmVDb2xsYXRlcmFscyA9IGFzeW5jIChcbiAgICBjb2xsYXRlcmFsczogQXJyYXk8RXh0cmFjdGVkQ29sbGF0ZXJhbD4sXG4gICAgYmxvY2s6IEJsb2NrLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nXG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIGlmIChjb2xsYXRlcmFscy5sZW5ndGggPT0gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgY29sbGF0ZXJhbEVudGl0aWVzID0gY29sbGF0ZXJhbHMubWFwKChjb2wpID0+ICh7XG4gICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgIGJveElkOiBjb2wuYm94SWQsXG4gICAgICBib3hTZXJpYWxpemVkOiBjb2wuYm94U2VyaWFsaXplZCxcbiAgICAgIHdpZDogY29sLndpZCxcbiAgICAgIHJ3dENvdW50OiBjb2wucnd0Q291bnQsXG4gICAgICB0eElkOiBjb2wudHhJZCxcbiAgICAgIGJsb2NrOiBibG9jay5oYXNoLFxuICAgICAgaGVpZ2h0OiBjb2wuaGVpZ2h0ICE9IHVuZGVmaW5lZCA/IGNvbC5oZWlnaHQgOiBibG9jay5oZWlnaHQsXG4gICAgfSkpO1xuXG4gICAgY29uc3QgcXVlcnlSdW5uZXIgPSB0aGlzLmRhdGFTb3VyY2UuY3JlYXRlUXVlcnlSdW5uZXIoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb25uZWN0KCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuc3RhcnRUcmFuc2FjdGlvbigpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXBvc2l0b3J5ID0gYXdhaXQgcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KFxuICAgICAgICBDb2xsYXRlcmFsRW50aXR5XG4gICAgICApO1xuICAgICAgY29uc3QgZXhpc3RpbmdCb3hJZHMgPSAoXG4gICAgICAgIGF3YWl0IHJlcG9zaXRvcnkuZmluZCh7XG4gICAgICAgICAgd2hlcmU6IHtcbiAgICAgICAgICAgIGJveElkOiBJbihjb2xsYXRlcmFsRW50aXRpZXMubWFwKChib3gpID0+IGJveC5ib3hJZCkpLFxuICAgICAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZWxlY3Q6IHtcbiAgICAgICAgICAgIGJveElkOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICApLm1hcCgoY29sKSA9PiBjb2wuYm94SWQpO1xuXG4gICAgICBjb25zdCBjb2xsYXRlcmFsc1RvVXBkYXRlID0gY29sbGF0ZXJhbEVudGl0aWVzLmZpbHRlcigoY29sKSA9PlxuICAgICAgICBleGlzdGluZ0JveElkcy5pbmNsdWRlcyhjb2wuYm94SWQpXG4gICAgICApO1xuXG4gICAgICBjb25zdCBjb2xsYXRlcmFsc1RvSW5zZXJ0ID0gZGlmZmVyZW5jZShcbiAgICAgICAgY29sbGF0ZXJhbEVudGl0aWVzLFxuICAgICAgICBjb2xsYXRlcmFsc1RvVXBkYXRlXG4gICAgICApO1xuXG4gICAgICBpZiAoY29sbGF0ZXJhbHNUb1VwZGF0ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICAgICAgYEluc2VydGluZyBib3hlcyB3aXRoIGZvbGxvd2luZyBJRHMgaW50byB0aGUgZGF0YWJhc2U6IFske2NvbGxhdGVyYWxzVG9JbnNlcnRcbiAgICAgICAgICAgIC5tYXAoKGNvbCkgPT4gY29sLmJveElkKVxuICAgICAgICAgICAgLmpvaW4oJywgJyl9XWBcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYEluc2VydGluZyBjb2xsYXRlcmFsIGJveGVzIFske0pzb25CaWdJbnQuc3RyaW5naWZ5KFxuICAgICAgICAgICAgY29sbGF0ZXJhbHNUb0luc2VydFxuICAgICAgICAgICl9XWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHJlcG9zaXRvcnkuaW5zZXJ0KGNvbGxhdGVyYWxzVG9JbnNlcnQpO1xuXG4gICAgICBpZiAoY29sbGF0ZXJhbHNUb1VwZGF0ZS5sZW5ndGggPiAwKVxuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgIGBVcGRhdGluZyBib3hlcyB3aXRoIGZvbGxvd2luZyBJRHMgaW4gdGhlIGRhdGFiYXNlOiBbJHtjb2xsYXRlcmFsc1RvVXBkYXRlXG4gICAgICAgICAgICAubWFwKChjb2wpID0+IGNvbC5ib3hJZClcbiAgICAgICAgICAgIC5qb2luKCcsICcpfV1gXG4gICAgICAgICk7XG4gICAgICBjb2xsYXRlcmFsc1RvVXBkYXRlLmZvckVhY2goYXN5bmMgKGNvbGxhdGVyYWwpID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYFVwZGF0aW5nIGNvbGxhdGVyYWwgYm94IGluIGRhdGFiYXNlIFske0pzb25CaWdJbnQuc3RyaW5naWZ5KFxuICAgICAgICAgICAgY29sbGF0ZXJhbFxuICAgICAgICAgICl9XWBcbiAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgcmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICAgICAgeyBib3hJZDogY29sbGF0ZXJhbC5ib3hJZCwgZXh0cmFjdG9yOiBleHRyYWN0b3IgfSxcbiAgICAgICAgICBjb2xsYXRlcmFsXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihcbiAgICAgICAgYEFuIGVycm9yIG9jY3VycmVkIGR1cmluZyBzdG9yZUNvbGxhdGVyYWxzIGFjdGlvbjogJHtlfWBcbiAgICAgICk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJlbGVhc2UoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICAvKipcbiAgICogVXBkYXRlIHNwZW5kQmxvY2sgYW5kIHNwZW5kSGVpZ2h0IG9mIGNvbGxhdGVyYWxzIHNwZW50IGluIHRoZSBibG9ja1xuICAgKlxuICAgKiBAcGFyYW0ge0FycmF5PFNwZW5kSW5mbz59IHNwZW5kSW5mb3NcbiAgICogQHBhcmFtIHtCbG9ja30gYmxvY2tcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV4dHJhY3RvclxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fVxuICAgKiBAbWVtYmVyb2YgQ29sbGF0ZXJhbEFjdGlvblxuICAgKi9cbiAgc3BlbmRDb2xsYXRlcmFscyA9IGFzeW5jIChcbiAgICBzcGVuZEluZm9zOiBBcnJheTxTcGVuZEluZm8+LFxuICAgIGJsb2NrOiBCbG9jayxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBmb3IgKGNvbnN0IHNwZW5kSW5mbyBvZiBzcGVuZEluZm9zKSB7XG4gICAgICBjb25zdCB1cGRhdGVSZXN1bHQgPSBhd2FpdCB0aGlzLmNvbGxhdGVyYWxSZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgICAge1xuICAgICAgICAgIGJveElkOiBzcGVuZEluZm8uYm94SWQsXG4gICAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzcGVuZEJsb2NrOiBibG9jay5oYXNoLFxuICAgICAgICAgIHNwZW5kSGVpZ2h0OiBibG9jay5oZWlnaHQsXG4gICAgICAgICAgc3BlbmRUeElkOiBzcGVuZEluZm8udHhJZCxcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgaWYgKHVwZGF0ZVJlc3VsdC5hZmZlY3RlZCAmJiB1cGRhdGVSZXN1bHQuYWZmZWN0ZWQgPiAwKSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRSb3dzID0gYXdhaXQgdGhpcy5jb2xsYXRlcmFsUmVwb3NpdG9yeS5maW5kQnkoe1xuICAgICAgICAgIGJveElkOiBzcGVuZEluZm8uYm94SWQsXG4gICAgICAgICAgc3BlbmRCbG9jazogYmxvY2suaGFzaCxcbiAgICAgICAgfSk7XG4gICAgICAgIGZvciAoY29uc3Qgcm93IG9mIHVwZGF0ZWRSb3dzKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBgU3BlbnQgY29sbGF0ZXJhbCB3aXRoIGJveElkIFske3Jvdy5ib3hJZH1dIGJlbG9uZ2luZyB0byB3YXRjaGVyIHdpdGggV0lEIFske3Jvdy53aWR9XSBhdCBoZWlnaHQgJHtibG9jay5oZWlnaHR9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHN0b3JlZCB1bnNwZW50IGNvbGxhdGVyYWwgYm94IElEc1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXh0cmFjdG9yXG4gICAqIEByZXR1cm4ge1Byb21pc2U8QXJyYXk8c3RyaW5nPj59XG4gICAqIEBtZW1iZXJvZiBDb2xsYXRlcmFsQWN0aW9uXG4gICAqL1xuICBnZXRVbnNwZW50Q29sbGF0ZXJhbEJveElkcyA9IGFzeW5jIChcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApOiBQcm9taXNlPEFycmF5PHN0cmluZz4+ID0+IHtcbiAgICBjb25zdCBib3hJZHMgPSBhd2FpdCB0aGlzLmNvbGxhdGVyYWxSZXBvc2l0b3J5LmZpbmQoe1xuICAgICAgd2hlcmU6IHtcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgIHNwZW5kQmxvY2s6IElzTnVsbCgpLFxuICAgICAgfSxcbiAgICAgIHNlbGVjdDoge1xuICAgICAgICBib3hJZDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIGJveElkcy5tYXAoKGJveCkgPT4gYm94LmJveElkKTtcbiAgfTtcblxuICAvKipcbiAgICogRGVsZXRlIGFsbCBjb2xsYXRlcmFscyBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXNzZWQgYmxvY2sgYW5kIGV4dHJhY3RvciBhbmRcbiAgICogdXBkYXRlIGFsbCBjb2xsYXRlcmFscyBzcGVudCBpbiB0aGUgc3BlY2lmaWVkIGJsb2NrXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBibG9ja1xuICAgKiBAcGFyYW0ge3N0cmluZ30gZXh0cmFjdG9yXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59XG4gICAqIEBtZW1iZXJvZiBDb2xsYXRlcmFsQWN0aW9uXG4gICAqL1xuICBhc3luYyBkZWxldGVCbG9jayhibG9jazogc3RyaW5nLCBleHRyYWN0b3I6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICBgRGVsZXRpbmcgY29sbGF0ZXJhbHMgaW4gYmxvY2s9WyR7YmxvY2t9XSBhbmQgZXh0cmFjdG9yPVske2V4dHJhY3Rvcn1dYFxuICAgICk7XG5cbiAgICBhd2FpdCB0aGlzLmNvbGxhdGVyYWxSZXBvc2l0b3J5LmRlbGV0ZSh7XG4gICAgICBibG9jazogYmxvY2ssXG4gICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICB9KTtcblxuICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICBgY2hhbmdpbmcgc3BlbnQgY29sbGF0ZXJhbHMgaW4gYmxvY2s9WyR7YmxvY2t9XSBhbmQgZXh0cmFjdG9yPVske2V4dHJhY3Rvcn1dIHRvIHVuc3BlbnQgc3RhdHVzYFxuICAgICk7XG5cbiAgICBhd2FpdCB0aGlzLmNvbGxhdGVyYWxSZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgIHsgc3BlbmRCbG9jazogYmxvY2ssIGV4dHJhY3RvcjogZXh0cmFjdG9yIH0sXG4gICAgICB7XG4gICAgICAgIHNwZW5kQmxvY2s6IG51bGwsXG4gICAgICAgIHNwZW5kSGVpZ2h0OiBudWxsLFxuICAgICAgICBzcGVuZFR4SWQ6IG51bGwsXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZWxldGVzIHRoZSBzcGVjaWZpZWQgY29sbGF0ZXJhbCBib3ggZnJvbSBkYXRhYmFzZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYm94SWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV4dHJhY3RvclxuICAgKiBAcmV0dXJuIHtQcm9taXNlPERlbGV0ZVJlc3VsdD59XG4gICAqIEBtZW1iZXJvZiBDb2xsYXRlcmFsQWN0aW9uXG4gICAqL1xuICBkZWxldGVDb2xsYXRlcmFsID0gYXN5bmMgKFxuICAgIGJveElkOiBzdHJpbmcsXG4gICAgZXh0cmFjdG9yOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxEZWxldGVSZXN1bHQ+ID0+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jb2xsYXRlcmFsUmVwb3NpdG9yeS5kZWxldGUoe1xuICAgICAgYm94SWQ6IGJveElkLFxuICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgfSk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbGxhdGVyYWxBY3Rpb247XG4iXX0=
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGF0ZXJhbEFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9hY3Rpb25zL2NvbGxhdGVyYWxBY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLFVBQVUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBNEIsRUFBRSxFQUFFLE1BQU0sRUFBYyxNQUFNLFNBQVMsQ0FBQztBQUczRSxPQUFPLGdCQUFnQixNQUFNLDhCQUE4QixDQUFDO0FBSTVELE1BQU0sZ0JBQWdCO0lBSUQ7SUFDUjtJQUpNLG9CQUFvQixDQUErQjtJQUVwRSxZQUNtQixVQUFzQixFQUM5QixTQUF5QixJQUFJLFdBQVcsRUFBRTtRQURsQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQzlCLFdBQU0sR0FBTixNQUFNLENBQW9DO1FBRW5ELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxnQkFBZ0IsR0FBRyxLQUFLLEVBQ3RCLFVBQStCLEVBQy9CLFNBQWlCLEVBQ2pCLEVBQUU7UUFDRixPQUFPLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztZQUM1QyxHQUFHLFVBQVU7WUFDYixTQUFTO1NBQ1YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUY7Ozs7OztPQU1HO0lBQ0gsZ0JBQWdCLEdBQUcsS0FBSyxFQUN0QixVQUNvQyxFQUNwQyxTQUFpQixFQUNqQixFQUFFO1FBQ0YsT0FBTyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQzNDO1lBQ0UsU0FBUztZQUNULEtBQUssRUFBRSxVQUFVLENBQUMsS0FB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QUVGLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztZQUNyQyxLQUFLLEVBQUUsS0FBSztZQUNaLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLHdDQUF3QyxLQUFLLG9CQUFvQixTQUFTLHFCQUFxQixDQUNoRyxDQUFDO1FBRUYsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUNwQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxFQUMzQztZQUNFLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsZ0JBQWdCLEdBQUcsS0FBSyxFQUN0QixLQUFhLEVBQ2IsU0FBaUIsRUFDTSxFQUFFO1FBQ3pCLE9BQU8sTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDO1lBQzVDLEtBQUssRUFBRSxLQUFLO1lBQ1osU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0NBQ0g7QUFFRCxlQUFlLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IEpzb25CaWdJbnQgZnJvbSAnQHJvc2VuLWJyaWRnZS9qc29uLWJpZ2ludCc7XG5pbXBvcnQgeyBkaWZmZXJlbmNlIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IERhdGFTb3VyY2UsIERlbGV0ZVJlc3VsdCwgSW4sIElzTnVsbCwgUmVwb3NpdG9yeSB9IGZyb20gJ3R5cGVvcm0nO1xuaW1wb3J0IHsgQmxvY2sgfSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXItaW50ZXJmYWNlcyc7XG5cbmltcG9ydCBDb2xsYXRlcmFsRW50aXR5IGZyb20gJy4uL2VudGl0aWVzL0NvbGxhdGVyYWxFbnRpdHknO1xuaW1wb3J0IHsgRXh0cmFjdGVkQ29sbGF0ZXJhbCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZXh0cmFjdGVkQ29sbGF0ZXJhbCc7XG5pbXBvcnQgeyBTcGVuZEluZm8gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3R5cGVzJztcblxuY2xhc3MgQ29sbGF0ZXJhbEFjdGlvbiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29sbGF0ZXJhbFJlcG9zaXRvcnk6IFJlcG9zaXRvcnk8Q29sbGF0ZXJhbEVudGl0eT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIHJlYWRvbmx5IGxvZ2dlcjogQWJzdHJhY3RMb2dnZXIgPSBuZXcgRHVtbXlMb2dnZXIoKVxuICApIHtcbiAgICB0aGlzLmNvbGxhdGVyYWxSZXBvc2l0b3J5ID0gdGhpcy5kYXRhU291cmNlLmdldFJlcG9zaXRvcnkoQ29sbGF0ZXJhbEVudGl0eSk7XG4gIH1cblxuICAvKipcbiAgICogaW5zZXJ0cyBhIGNvbGxhdGVyYWwgaW50byB0aGUgZGF0YWJhc2VcbiAgICpcbiAgICogQHBhcmFtIHtFeHRyYWN0ZWRDb2xsYXRlcmFsfSBjb2xsYXRlcmFsXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBleHRyYWN0b3JcbiAgICogQG1lbWJlcm9mIENvbGxhdGVyYWxBY3Rpb25cbiAgICovXG4gIGluc2VydENvbGxhdGVyYWwgPSBhc3luYyAoXG4gICAgY29sbGF0ZXJhbDogRXh0cmFjdGVkQ29sbGF0ZXJhbCxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApID0+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jb2xsYXRlcmFsUmVwb3NpdG9yeS5pbnNlcnQoe1xuICAgICAgLi4uY29sbGF0ZXJhbCxcbiAgICAgIGV4dHJhY3RvcixcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogdXBkYXRlcyBhIGNvbGxhdGVyYWwgaW50byB0aGUgZGF0YWJhc2VcbiAgICpcbiAgICogQHBhcmFtIHtFeHRyYWN0ZWRDb2xsYXRlcmFsfSBjb2xsYXRlcmFsXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBleHRyYWN0b3JcbiAgICogQG1lbWJlcm9mIENvbGxhdGVyYWxBY3Rpb25cbiAgICovXG4gIHVwZGF0ZUNvbGxhdGVyYWwgPSBhc3luYyAoXG4gICAgY29sbGF0ZXJhbDogUGFydGlhbDxFeHRyYWN0ZWRDb2xsYXRlcmFsPiAmXG4gICAgICBQaWNrPEV4dHJhY3RlZENvbGxhdGVyYWwsICdib3hJZCc+LFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nXG4gICkgPT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNvbGxhdGVyYWxSZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgIHtcbiAgICAgICAgZXh0cmFjdG9yLFxuICAgICAgICBib3hJZDogY29sbGF0ZXJhbC5ib3hJZCxcbiAgICAgIH0sXG4gICAgICBjb2xsYXRlcmFsXG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogc3RvcmVzIGxpc3Qgb2YgY29sbGF0ZXJhbHNcbiAgICpcbiAgICogQHBhcmFtIHtBcnJheTxFeHRyYWN0ZWRDb2xsYXRlcmFsPn0gY29sbGF0ZXJhbHNcbiAgICogQHBhcmFtIHtCbG9ja30gYmxvY2tcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV4dHJhY3RvclxuICAgKiBAcmV0dXJuIHtQcm9taXNlPGJvb2xlYW4+fVxuICAgKiBAbWVtYmVyb2YgQ29sbGF0ZXJhbEFjdGlvblxuICAgKi9cbiAgc3RvcmVDb2xsYXRlcmFscyA9IGFzeW5jIChcbiAgICBjb2xsYXRlcmFsczogQXJyYXk8RXh0cmFjdGVkQ29sbGF0ZXJhbD4sXG4gICAgYmxvY2s6IEJsb2NrLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nXG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIGlmIChjb2xsYXRlcmFscy5sZW5ndGggPT0gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgY29sbGF0ZXJhbEVudGl0aWVzID0gY29sbGF0ZXJhbHMubWFwKChjb2wpID0+ICh7XG4gICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgIGJveElkOiBjb2wuYm94SWQsXG4gICAgICBib3hTZXJpYWxpemVkOiBjb2wuYm94U2VyaWFsaXplZCxcbiAgICAgIHdpZDogY29sLndpZCxcbiAgICAgIHJ3dENvdW50OiBjb2wucnd0Q291bnQsXG4gICAgICB0eElkOiBjb2wudHhJZCxcbiAgICAgIGJsb2NrOiBibG9jay5oYXNoLFxuICAgICAgaGVpZ2h0OiBjb2wuaGVpZ2h0ICE9IHVuZGVmaW5lZCA/IGNvbC5oZWlnaHQgOiBibG9jay5oZWlnaHQsXG4gICAgfSkpO1xuXG4gICAgY29uc3QgcXVlcnlSdW5uZXIgPSB0aGlzLmRhdGFTb3VyY2UuY3JlYXRlUXVlcnlSdW5uZXIoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb25uZWN0KCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuc3RhcnRUcmFuc2FjdGlvbigpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXBvc2l0b3J5ID0gYXdhaXQgcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KFxuICAgICAgICBDb2xsYXRlcmFsRW50aXR5XG4gICAgICApO1xuICAgICAgY29uc3QgZXhpc3RpbmdCb3hJZHMgPSAoXG4gICAgICAgIGF3YWl0IHJlcG9zaXRvcnkuZmluZCh7XG4gICAgICAgICAgd2hlcmU6IHtcbiAgICAgICAgICAgIGJveElkOiBJbihjb2xsYXRlcmFsRW50aXRpZXMubWFwKChib3gpID0+IGJveC5ib3hJZCkpLFxuICAgICAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZWxlY3Q6IHtcbiAgICAgICAgICAgIGJveElkOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICApLm1hcCgoY29sKSA9PiBjb2wuYm94SWQpO1xuXG4gICAgICBjb25zdCBjb2xsYXRlcmFsc1RvVXBkYXRlID0gY29sbGF0ZXJhbEVudGl0aWVzLmZpbHRlcigoY29sKSA9PlxuICAgICAgICBleGlzdGluZ0JveElkcy5pbmNsdWRlcyhjb2wuYm94SWQpXG4gICAgICApO1xuXG4gICAgICBjb25zdCBjb2xsYXRlcmFsc1RvSW5zZXJ0ID0gZGlmZmVyZW5jZShcbiAgICAgICAgY29sbGF0ZXJhbEVudGl0aWVzLFxuICAgICAgICBjb2xsYXRlcmFsc1RvVXBkYXRlXG4gICAgICApO1xuXG4gICAgICBpZiAoY29sbGF0ZXJhbHNUb1VwZGF0ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICAgICAgYEluc2VydGluZyBib3hlcyB3aXRoIGZvbGxvd2luZyBJRHMgaW50byB0aGUgZGF0YWJhc2U6IFske2NvbGxhdGVyYWxzVG9JbnNlcnRcbiAgICAgICAgICAgIC5tYXAoKGNvbCkgPT4gY29sLmJveElkKVxuICAgICAgICAgICAgLmpvaW4oJywgJyl9XWBcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYEluc2VydGluZyBjb2xsYXRlcmFsIGJveGVzIFske0pzb25CaWdJbnQuc3RyaW5naWZ5KFxuICAgICAgICAgICAgY29sbGF0ZXJhbHNUb0luc2VydFxuICAgICAgICAgICl9XWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHJlcG9zaXRvcnkuaW5zZXJ0KGNvbGxhdGVyYWxzVG9JbnNlcnQpO1xuXG4gICAgICBpZiAoY29sbGF0ZXJhbHNUb1VwZGF0ZS5sZW5ndGggPiAwKVxuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgIGBVcGRhdGluZyBib3hlcyB3aXRoIGZvbGxvd2luZyBJRHMgaW4gdGhlIGRhdGFiYXNlOiBbJHtjb2xsYXRlcmFsc1RvVXBkYXRlXG4gICAgICAgICAgICAubWFwKChjb2wpID0+IGNvbC5ib3hJZClcbiAgICAgICAgICAgIC5qb2luKCcsICcpfV1gXG4gICAgICAgICk7XG4gICAgICBjb2xsYXRlcmFsc1RvVXBkYXRlLmZvckVhY2goYXN5bmMgKGNvbGxhdGVyYWwpID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYFVwZGF0aW5nIGNvbGxhdGVyYWwgYm94IGluIGRhdGFiYXNlIFske0pzb25CaWdJbnQuc3RyaW5naWZ5KFxuICAgICAgICAgICAgY29sbGF0ZXJhbFxuICAgICAgICAgICl9XWBcbiAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgcmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICAgICAgeyBib3hJZDogY29sbGF0ZXJhbC5ib3hJZCwgZXh0cmFjdG9yOiBleHRyYWN0b3IgfSxcbiAgICAgICAgICBjb2xsYXRlcmFsXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihcbiAgICAgICAgYEFuIGVycm9yIG9jY3VycmVkIGR1cmluZyBzdG9yZUNvbGxhdGVyYWxzIGFjdGlvbjogJHtlfWBcbiAgICAgICk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJlbGVhc2UoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICAvKipcbiAgICogVXBkYXRlIHNwZW5kQmxvY2sgYW5kIHNwZW5kSGVpZ2h0IG9mIGNvbGxhdGVyYWxzIHNwZW50IGluIHRoZSBibG9ja1xuICAgKlxuICAgKiBAcGFyYW0ge0FycmF5PFNwZW5kSW5mbz59IHNwZW5kSW5mb3NcbiAgICogQHBhcmFtIHtCbG9ja30gYmxvY2tcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV4dHJhY3RvclxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fVxuICAgKiBAbWVtYmVyb2YgQ29sbGF0ZXJhbEFjdGlvblxuICAgKi9cbiAgc3BlbmRDb2xsYXRlcmFscyA9IGFzeW5jIChcbiAgICBzcGVuZEluZm9zOiBBcnJheTxTcGVuZEluZm8+LFxuICAgIGJsb2NrOiBCbG9jayxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBmb3IgKGNvbnN0IHNwZW5kSW5mbyBvZiBzcGVuZEluZm9zKSB7XG4gICAgICBjb25zdCB1cGRhdGVSZXN1bHQgPSBhd2FpdCB0aGlzLmNvbGxhdGVyYWxSZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgICAge1xuICAgICAgICAgIGJveElkOiBzcGVuZEluZm8uYm94SWQsXG4gICAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzcGVuZEJsb2NrOiBibG9jay5oYXNoLFxuICAgICAgICAgIHNwZW5kSGVpZ2h0OiBibG9jay5oZWlnaHQsXG4gICAgICAgICAgc3BlbmRUeElkOiBzcGVuZEluZm8udHhJZCxcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgaWYgKHVwZGF0ZVJlc3VsdC5hZmZlY3RlZCAmJiB1cGRhdGVSZXN1bHQuYWZmZWN0ZWQgPiAwKSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRSb3dzID0gYXdhaXQgdGhpcy5jb2xsYXRlcmFsUmVwb3NpdG9yeS5maW5kQnkoe1xuICAgICAgICAgIGJveElkOiBzcGVuZEluZm8uYm94SWQsXG4gICAgICAgICAgc3BlbmRCbG9jazogYmxvY2suaGFzaCxcbiAgICAgICAgfSk7XG4gICAgICAgIGZvciAoY29uc3Qgcm93IG9mIHVwZGF0ZWRSb3dzKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBgU3BlbnQgY29sbGF0ZXJhbCB3aXRoIGJveElkIFske3Jvdy5ib3hJZH1dIGJlbG9uZ2luZyB0byB3YXRjaGVyIHdpdGggV0lEIFske3Jvdy53aWR9XSBhdCBoZWlnaHQgJHtibG9jay5oZWlnaHR9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHN0b3JlZCB1bnNwZW50IGNvbGxhdGVyYWwgYm94IElEc1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXh0cmFjdG9yXG4gICAqIEByZXR1cm4ge1Byb21pc2U8QXJyYXk8c3RyaW5nPj59XG4gICAqIEBtZW1iZXJvZiBDb2xsYXRlcmFsQWN0aW9uXG4gICAqL1xuICBnZXRVbnNwZW50Q29sbGF0ZXJhbEJveElkcyA9IGFzeW5jIChcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApOiBQcm9taXNlPEFycmF5PHN0cmluZz4+ID0+IHtcbiAgICBjb25zdCBib3hJZHMgPSBhd2FpdCB0aGlzLmNvbGxhdGVyYWxSZXBvc2l0b3J5LmZpbmQoe1xuICAgICAgd2hlcmU6IHtcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgIHNwZW5kQmxvY2s6IElzTnVsbCgpLFxuICAgICAgfSxcbiAgICAgIHNlbGVjdDoge1xuICAgICAgICBib3hJZDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIGJveElkcy5tYXAoKGJveCkgPT4gYm94LmJveElkKTtcbiAgfTtcblxuICAvKipcbiAgICogRGVsZXRlIGFsbCBjb2xsYXRlcmFscyBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXNzZWQgYmxvY2sgYW5kIGV4dHJhY3RvciBhbmRcbiAgICogdXBkYXRlIGFsbCBjb2xsYXRlcmFscyBzcGVudCBpbiB0aGUgc3BlY2lmaWVkIGJsb2NrXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBibG9ja1xuICAgKiBAcGFyYW0ge3N0cmluZ30gZXh0cmFjdG9yXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59XG4gICAqIEBtZW1iZXJvZiBDb2xsYXRlcmFsQWN0aW9uXG4gICAqL1xuICBhc3luYyBkZWxldGVCbG9jayhibG9jazogc3RyaW5nLCBleHRyYWN0b3I6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICBgRGVsZXRpbmcgY29sbGF0ZXJhbHMgaW4gYmxvY2s9WyR7YmxvY2t9XSBhbmQgZXh0cmFjdG9yPVske2V4dHJhY3Rvcn1dYFxuICAgICk7XG5cbiAgICBhd2FpdCB0aGlzLmNvbGxhdGVyYWxSZXBvc2l0b3J5LmRlbGV0ZSh7XG4gICAgICBibG9jazogYmxvY2ssXG4gICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICB9KTtcblxuICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICBgY2hhbmdpbmcgc3BlbnQgY29sbGF0ZXJhbHMgaW4gYmxvY2s9WyR7YmxvY2t9XSBhbmQgZXh0cmFjdG9yPVske2V4dHJhY3Rvcn1dIHRvIHVuc3BlbnQgc3RhdHVzYFxuICAgICk7XG5cbiAgICBhd2FpdCB0aGlzLmNvbGxhdGVyYWxSZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgIHsgc3BlbmRCbG9jazogYmxvY2ssIGV4dHJhY3RvcjogZXh0cmFjdG9yIH0sXG4gICAgICB7XG4gICAgICAgIHNwZW5kQmxvY2s6IG51bGwsXG4gICAgICAgIHNwZW5kSGVpZ2h0OiBudWxsLFxuICAgICAgICBzcGVuZFR4SWQ6IG51bGwsXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZWxldGVzIHRoZSBzcGVjaWZpZWQgY29sbGF0ZXJhbCBib3ggZnJvbSBkYXRhYmFzZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYm94SWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV4dHJhY3RvclxuICAgKiBAcmV0dXJuIHtQcm9taXNlPERlbGV0ZVJlc3VsdD59XG4gICAqIEBtZW1iZXJvZiBDb2xsYXRlcmFsQWN0aW9uXG4gICAqL1xuICBkZWxldGVDb2xsYXRlcmFsID0gYXN5bmMgKFxuICAgIGJveElkOiBzdHJpbmcsXG4gICAgZXh0cmFjdG9yOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxEZWxldGVSZXN1bHQ+ID0+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jb2xsYXRlcmFsUmVwb3NpdG9yeS5kZWxldGUoe1xuICAgICAgYm94SWQ6IGJveElkLFxuICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgfSk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbGxhdGVyYWxBY3Rpb247XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { DataSource } from 'typeorm';
2
2
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
3
- import { Block } from '@rosen-bridge/abstract-extractor';
3
+ import { Block } from '@rosen-bridge/scanner-interfaces';
4
4
  import { extractedCommitment } from '../interfaces/extractedCommitment';
5
5
  import { SpendInfo } from '../interfaces/types';
6
6
  declare class CommitmentAction {
@@ -117,4 +117,4 @@ class CommitmentAction {
117
117
  };
118
118
  }
119
119
  export default CommitmentAction;
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWl0bWVudEFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9hY3Rpb25zL2NvbW1pdG1lbnRBY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLEVBQUUsRUFBYyxNQUFNLFNBQVMsQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJNUUsT0FBTyxnQkFBZ0IsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzdDLE1BQU0sZ0JBQWdCO0lBQ1gsTUFBTSxDQUFpQjtJQUNmLFVBQVUsQ0FBYTtJQUN2QixvQkFBb0IsQ0FBK0I7SUFFcEUsWUFBWSxVQUFzQixFQUFFLE1BQXVCO1FBQ3pELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsR0FBRyxLQUFLLEVBQ3RCLFdBQXVDLEVBQ3ZDLEtBQVksRUFDWixTQUFpQixFQUNDLEVBQUU7UUFDcEIsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUMxQyxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0Is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QixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN2RTtTQUNGO0lBQ0gsQ0FBQyxDQUFDO0lBRUY7Ozs7O09BS0c7SUFDSCxXQUFXLEdBQUcsS0FBSyxFQUFFLEtBQWEsRUFBRSxTQUFpQixFQUFFLEVBQUU7UUFDdkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2Qsa0NBQWtDLEtBQUssbUJBQW1CLFNBQVMsRUFBRSxDQUN0RSxDQUFDO1FBQ0YsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDO1lBQ3JDLEtBQUssRUFBRSxLQUFLO1lBQ1osU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUNwQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxFQUMzQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FDM0UsQ0FBQztJQUNKLENBQUMsQ0FBQztDQUNIO0FBRUQsZUFBZSxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UsIEluLCBSZXBvc2l0b3J5IH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgeyBjaHVuayB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciwgRHVtbXlMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBCbG9jayB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtZXh0cmFjdG9yJztcblxuaW1wb3J0IHsgZXh0cmFjdGVkQ29tbWl0bWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZXh0cmFjdGVkQ29tbWl0bWVudCc7XG5pbXBvcnQgQ29tbWl0bWVudEVudGl0eSBmcm9tICcuLi9lbnRpdGllcy9Db21taXRtZW50RW50aXR5JztcbmltcG9ydCB7IGRiSWRDaHVua1NpemUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgU3BlbmRJbmZvIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90eXBlcyc7XG5cbmNsYXNzIENvbW1pdG1lbnRBY3Rpb24ge1xuICByZWFkb25seSBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyO1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFzb3VyY2U6IERhdGFTb3VyY2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tbWl0bWVudFJlcG9zaXRvcnk6IFJlcG9zaXRvcnk8Q29tbWl0bWVudEVudGl0eT47XG5cbiAgY29uc3RydWN0b3IoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSwgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIpIHtcbiAgICB0aGlzLmRhdGFzb3VyY2UgPSBkYXRhU291cmNlO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyID8gbG9nZ2VyIDogbmV3IER1bW15TG9nZ2VyKCk7XG4gICAgdGhpcy5jb21taXRtZW50UmVwb3NpdG9yeSA9IGRhdGFTb3VyY2UuZ2V0UmVwb3NpdG9yeShDb21taXRtZW50RW50aXR5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBzdG9yZXMgbGlzdCBvZiBvYnNlcnZhdGlvbnMgaW4gdGhlIGRhdGFTb3VyY2Ugd2l0aCBibG9jayBpZFxuICAgKiBAcGFyYW0gY29tbWl0bWVudHNcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHN0b3JlQ29tbWl0bWVudHMgPSBhc3luYyAoXG4gICAgY29tbWl0bWVudHM6IEFycmF5PGV4dHJhY3RlZENvbW1pdG1lbnQ+LFxuICAgIGJsb2NrOiBCbG9jayxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICBpZiAoY29tbWl0bWVudHMubGVuZ3RoID09PSAwKSByZXR1cm4gdHJ1ZTtcbiAgICBjb25zdCBib3hJZHMgPSBjb21taXRtZW50cy5tYXAoKGNvbW1pdG1lbnQpID0+IGNvbW1pdG1lbnQuYm94SWQpO1xuICAgIGNvbnN0IHNhdmVkQ29tbWl0bWVudHMgPSBhd2FpdCB0aGlzLmNvbW1pdG1lbnRSZXBvc2l0b3J5LmZpbmRCeSh7XG4gICAgICBib3hJZDogSW4oYm94SWRzKSxcbiAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgIH0pO1xuICAgIGxldCBzdWNjZXNzID0gdHJ1ZTtcbiAgICBjb25zdCBxdWVyeVJ1bm5lciA9IHRoaXMuZGF0YXNvdXJjZS5jcmVhdGVRdWVyeVJ1bm5lcigpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3QoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKCk7XG4gICAgY29uc3QgcmVwb3NpdG9yeSA9IGF3YWl0IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeShcbiAgICAgIENvbW1pdG1lbnRFbnRpdHlcbiAgICApO1xuICAgIHRyeSB7XG4gICAgICBmb3IgKGNvbnN0IGNvbW1pdG1lbnQgb2YgY29tbWl0bWVudHMpIHtcbiAgICAgICAgY29uc3Qgc2F2ZWQgPSBzYXZlZENvbW1pdG1lbnRzLnNvbWUoKGVudGl0eSkgPT4ge1xuICAgICAgICAgIHJldHVybiBlbnRpdHkuYm94SWQgPT09IGNvbW1pdG1lbnQuYm94SWQ7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBlbnRpdHkgPSB7XG4gICAgICAgICAgdHhJZDogY29tbWl0bWVudC50eElkLFxuICAgICAgICAgIGNvbW1pdG1lbnQ6IGNvbW1pdG1lbnQuY29tbWl0bWVudCxcbiAgICAgICAgICBldmVudElkOiBjb21taXRtZW50LmV2ZW50SWQsXG4gICAgICAgICAgYm94SWQ6IGNvbW1pdG1lbnQuYm94SWQsXG4gICAgICAgICAgV0lEOiBjb21taXRtZW50LldJRCxcbiAgICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgICAgICBibG9jazogYmxvY2suaGFzaCxcbiAgICAgICAgICBoZWlnaHQ6IGJsb2NrLmhlaWdodCxcbiAgICAgICAgICBib3hTZXJpYWxpemVkOiBjb21taXRtZW50LmJveFNlcmlhbGl6ZWQsXG4gICAgICAgICAgcnd0Q291bnQ6IGNvbW1pdG1lbnQucnd0Q291bnQsXG4gICAgICAgIH07XG4gICAgICAgIGlmICghc2F2ZWQpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgICAgYFNhdmluZyBjb21taXRtZW50IFske2NvbW1pdG1lbnQuYm94SWR9XSBmb3IgZXZlbnQgWyR7Y29tbWl0bWVudC5ldmVudElkfV0gZnJvbSB3YXRjaGVyIFske2NvbW1pdG1lbnQuV0lEfV0gYXQgaGVpZ2h0ICR7YmxvY2suaGVpZ2h0fSBhbmQgZXh0cmFjdG9yICR7ZXh0cmFjdG9yfWBcbiAgICAgICAgICApO1xuICAgICAgICAgIGF3YWl0IHJlcG9zaXRvcnkuaW5zZXJ0KGVudGl0eSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgICAgIGBVcGRhdGluZyBjb21taXRtZW50IFske2NvbW1pdG1lbnQuYm94SWR9XSBmb3IgZXZlbnQgWyR7Y29tbWl0bWVudC5ldmVudElkfV0gZnJvbSB3YXRjaGVyIFske2NvbW1pdG1lbnQuV0lEfV0gYXQgaGVpZ2h0ICR7YmxvY2suaGVpZ2h0fSBhbmQgZXh0cmFjdG9yICR7ZXh0cmFjdG9yfWBcbiAgICAgICAgICApO1xuICAgICAgICAgIGF3YWl0IHJlcG9zaXRvcnkudXBkYXRlKHsgYm94SWQ6IGNvbW1pdG1lbnQuYm94SWQgfSwgZW50aXR5KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgRW50aXR5OiAke0pTT04uc3RyaW5naWZ5KGVudGl0eSl9YCk7XG4gICAgICB9XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFxuICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHN0b3JlIGNvbW1pdG1lbnRzIGFjdGlvbjogJHtlfWBcbiAgICAgICk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgICBzdWNjZXNzID0gZmFsc2U7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJlbGVhc2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1Y2Nlc3M7XG4gIH07XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBzcGVuZEJsb2NrIGFuZCBzcGVuZEhlaWdodCBvZiBjb21taXRtZW50cyBzcGVudCBvbiB0aGUgYmxvY2tcbiAgICogQHBhcmFtIHNwZW5kSWRcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHNwZW5kQ29tbWl0bWVudHMgPSBhc3luYyAoXG4gICAgc3BlbmRJZDogQXJyYXk8U3BlbmRJbmZvPixcbiAgICBibG9jazogQmxvY2ssXG4gICAgZXh0cmFjdG9yOiBzdHJpbmdcbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgLy8gVE9ETzogaW1wcm92ZSB1cGRhdGluZyAobG9jYWw6ZXJnby9yb3Nlbi1icmlkZ2Uvc2Nhbm5lciM4NSlcbiAgICBjb25zdCBzcGVuZElkQ2h1bmtzID0gY2h1bmsoc3BlbmRJZCwgZGJJZENodW5rU2l6ZSk7XG4gICAgZm9yIChjb25zdCBzcGVuZElkQ2h1bmsgb2Ygc3BlbmRJZENodW5rcykge1xuICAgICAgY29uc3QgY29tbWl0bWVudHMgPSBhd2FpdCB0aGlzLmNvbW1pdG1lbnRSZXBvc2l0b3J5LmZpbmRCeSh7XG4gICAgICAgIGJveElkOiBJbihzcGVuZElkQ2h1bmsubWFwKChpbmZvKSA9PiBpbmZvLmJveElkKSksXG4gICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgfSk7XG5cbiAgICAgIGZvciAoY29uc3QgY29tbWl0bWVudCBvZiBjb21taXRtZW50cykge1xuICAgICAgICBjb25zdCBzcGVuZEluZm8gPSBzcGVuZElkQ2h1bmsuZmluZChcbiAgICAgICAgICAoaW5mbykgPT4gaW5mby5ib3hJZCA9PT0gY29tbWl0bWVudC5ib3hJZFxuICAgICAgICApO1xuICAgICAgICBpZiAoIXNwZW5kSW5mbylcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgSW1wb3NzaWJsZSBiZWhhdmlvcjogYm94IFske2NvbW1pdG1lbnQuYm94SWR9XSBpcyBub3QgZm91bmQgaW4gc3BlbmRpbmcgaW5mbyBsaXN0YFxuICAgICAgICAgICk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5jb21taXRtZW50UmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6IGNvbW1pdG1lbnQuaWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzcGVuZEJsb2NrOiBibG9jay5oYXNoLFxuICAgICAgICAgICAgc3BlbmRIZWlnaHQ6IGJsb2NrLmhlaWdodCxcbiAgICAgICAgICAgIHNwZW5kVHhJZDogc3BlbmRJbmZvLnR4SWQsXG4gICAgICAgICAgICBzcGVuZEluZGV4OiBzcGVuZEluZm8uaW5kZXgsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgIGBTcGVudCBjb21taXRtZW50IFske2NvbW1pdG1lbnQuYm94SWR9XSBmb3IgZXZlbnQgWyR7Y29tbWl0bWVudC5ldmVudElkfV0gYXQgaGVpZ2h0ICR7YmxvY2suaGVpZ2h0fWBcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYFNwZW50IGNvbW1pdG1lbnQgWyR7SlNPTi5zdHJpbmdpZnkoY29tbWl0bWVudCl9XWApO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogRGVsZXRlIGFsbCBjb21taXRtZW50cyBjb3JyZXNwb25kaW5nIHRvIHRoZSBibG9jayhpZCkgYW5kIGV4dHJhY3RvcihpZClcbiAgICogYW5kIHVwZGF0ZSBhbGwgY29tbWl0bWVudHMgc3BlbnQgb24gdGhlIHNwZWNpZmllZCBibG9ja1xuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgZGVsZXRlQmxvY2sgPSBhc3luYyAoYmxvY2s6IHN0cmluZywgZXh0cmFjdG9yOiBzdHJpbmcpID0+IHtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgYERlbGV0aW5nIGNvbW1pdG1lbnRzIG9mIGJsb2NrIFske2Jsb2NrfV0gYW5kIGV4dHJhY3RvciAke2V4dHJhY3Rvcn1gXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLmNvbW1pdG1lbnRSZXBvc2l0b3J5LmRlbGV0ZSh7XG4gICAgICBibG9jazogYmxvY2ssXG4gICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLmNvbW1pdG1lbnRSZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgIHsgc3BlbmRCbG9jazogYmxvY2ssIGV4dHJhY3RvcjogZXh0cmFjdG9yIH0sXG4gICAgICB7IHNwZW5kQmxvY2s6IG51bGwsIHNwZW5kSGVpZ2h0OiBudWxsLCBzcGVuZFR4SWQ6IG51bGwsIHNwZW5kSW5kZXg6IG51bGwgfVxuICAgICk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbW1pdG1lbnRBY3Rpb247XG4iXX0=
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWl0bWVudEFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9hY3Rpb25zL2NvbW1pdG1lbnRBY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLEVBQUUsRUFBYyxNQUFNLFNBQVMsQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJNUUsT0FBTyxnQkFBZ0IsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzdDLE1BQU0sZ0JBQWdCO0lBQ1gsTUFBTSxDQUFpQjtJQUNmLFVBQVUsQ0FBYTtJQUN2QixvQkFBb0IsQ0FBK0I7SUFFcEUsWUFBWSxVQUFzQixFQUFFLE1BQXVCO1FBQ3pELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsR0FBRyxLQUFLLEVBQ3RCLFdBQXVDLEVBQ3ZDLEtBQVksRUFDWixTQUFpQixFQUNDLEVBQUU7UUFDcEIsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUMxQyxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0Is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QixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN2RTtTQUNGO0lBQ0gsQ0FBQyxDQUFDO0lBRUY7Ozs7O09BS0c7SUFDSCxXQUFXLEdBQUcsS0FBSyxFQUFFLEtBQWEsRUFBRSxTQUFpQixFQUFFLEVBQUU7UUFDdkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2Qsa0NBQWtDLEtBQUssbUJBQW1CLFNBQVMsRUFBRSxDQUN0RSxDQUFDO1FBQ0YsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDO1lBQ3JDLEtBQUssRUFBRSxLQUFLO1lBQ1osU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUNwQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxFQUMzQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FDM0UsQ0FBQztJQUNKLENBQUMsQ0FBQztDQUNIO0FBRUQsZUFBZSxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UsIEluLCBSZXBvc2l0b3J5IH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgeyBjaHVuayB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciwgRHVtbXlMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBCbG9jayB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgZXh0cmFjdGVkQ29tbWl0bWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZXh0cmFjdGVkQ29tbWl0bWVudCc7XG5pbXBvcnQgQ29tbWl0bWVudEVudGl0eSBmcm9tICcuLi9lbnRpdGllcy9Db21taXRtZW50RW50aXR5JztcbmltcG9ydCB7IGRiSWRDaHVua1NpemUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgU3BlbmRJbmZvIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90eXBlcyc7XG5cbmNsYXNzIENvbW1pdG1lbnRBY3Rpb24ge1xuICByZWFkb25seSBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyO1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFzb3VyY2U6IERhdGFTb3VyY2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tbWl0bWVudFJlcG9zaXRvcnk6IFJlcG9zaXRvcnk8Q29tbWl0bWVudEVudGl0eT47XG5cbiAgY29uc3RydWN0b3IoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSwgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIpIHtcbiAgICB0aGlzLmRhdGFzb3VyY2UgPSBkYXRhU291cmNlO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyID8gbG9nZ2VyIDogbmV3IER1bW15TG9nZ2VyKCk7XG4gICAgdGhpcy5jb21taXRtZW50UmVwb3NpdG9yeSA9IGRhdGFTb3VyY2UuZ2V0UmVwb3NpdG9yeShDb21taXRtZW50RW50aXR5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBzdG9yZXMgbGlzdCBvZiBvYnNlcnZhdGlvbnMgaW4gdGhlIGRhdGFTb3VyY2Ugd2l0aCBibG9jayBpZFxuICAgKiBAcGFyYW0gY29tbWl0bWVudHNcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHN0b3JlQ29tbWl0bWVudHMgPSBhc3luYyAoXG4gICAgY29tbWl0bWVudHM6IEFycmF5PGV4dHJhY3RlZENvbW1pdG1lbnQ+LFxuICAgIGJsb2NrOiBCbG9jayxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICBpZiAoY29tbWl0bWVudHMubGVuZ3RoID09PSAwKSByZXR1cm4gdHJ1ZTtcbiAgICBjb25zdCBib3hJZHMgPSBjb21taXRtZW50cy5tYXAoKGNvbW1pdG1lbnQpID0+IGNvbW1pdG1lbnQuYm94SWQpO1xuICAgIGNvbnN0IHNhdmVkQ29tbWl0bWVudHMgPSBhd2FpdCB0aGlzLmNvbW1pdG1lbnRSZXBvc2l0b3J5LmZpbmRCeSh7XG4gICAgICBib3hJZDogSW4oYm94SWRzKSxcbiAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgIH0pO1xuICAgIGxldCBzdWNjZXNzID0gdHJ1ZTtcbiAgICBjb25zdCBxdWVyeVJ1bm5lciA9IHRoaXMuZGF0YXNvdXJjZS5jcmVhdGVRdWVyeVJ1bm5lcigpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3QoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKCk7XG4gICAgY29uc3QgcmVwb3NpdG9yeSA9IGF3YWl0IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeShcbiAgICAgIENvbW1pdG1lbnRFbnRpdHlcbiAgICApO1xuICAgIHRyeSB7XG4gICAgICBmb3IgKGNvbnN0IGNvbW1pdG1lbnQgb2YgY29tbWl0bWVudHMpIHtcbiAgICAgICAgY29uc3Qgc2F2ZWQgPSBzYXZlZENvbW1pdG1lbnRzLnNvbWUoKGVudGl0eSkgPT4ge1xuICAgICAgICAgIHJldHVybiBlbnRpdHkuYm94SWQgPT09IGNvbW1pdG1lbnQuYm94SWQ7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBlbnRpdHkgPSB7XG4gICAgICAgICAgdHhJZDogY29tbWl0bWVudC50eElkLFxuICAgICAgICAgIGNvbW1pdG1lbnQ6IGNvbW1pdG1lbnQuY29tbWl0bWVudCxcbiAgICAgICAgICBldmVudElkOiBjb21taXRtZW50LmV2ZW50SWQsXG4gICAgICAgICAgYm94SWQ6IGNvbW1pdG1lbnQuYm94SWQsXG4gICAgICAgICAgV0lEOiBjb21taXRtZW50LldJRCxcbiAgICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgICAgICBibG9jazogYmxvY2suaGFzaCxcbiAgICAgICAgICBoZWlnaHQ6IGJsb2NrLmhlaWdodCxcbiAgICAgICAgICBib3hTZXJpYWxpemVkOiBjb21taXRtZW50LmJveFNlcmlhbGl6ZWQsXG4gICAgICAgICAgcnd0Q291bnQ6IGNvbW1pdG1lbnQucnd0Q291bnQsXG4gICAgICAgIH07XG4gICAgICAgIGlmICghc2F2ZWQpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgICAgYFNhdmluZyBjb21taXRtZW50IFske2NvbW1pdG1lbnQuYm94SWR9XSBmb3IgZXZlbnQgWyR7Y29tbWl0bWVudC5ldmVudElkfV0gZnJvbSB3YXRjaGVyIFske2NvbW1pdG1lbnQuV0lEfV0gYXQgaGVpZ2h0ICR7YmxvY2suaGVpZ2h0fSBhbmQgZXh0cmFjdG9yICR7ZXh0cmFjdG9yfWBcbiAgICAgICAgICApO1xuICAgICAgICAgIGF3YWl0IHJlcG9zaXRvcnkuaW5zZXJ0KGVudGl0eSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgICAgIGBVcGRhdGluZyBjb21taXRtZW50IFske2NvbW1pdG1lbnQuYm94SWR9XSBmb3IgZXZlbnQgWyR7Y29tbWl0bWVudC5ldmVudElkfV0gZnJvbSB3YXRjaGVyIFske2NvbW1pdG1lbnQuV0lEfV0gYXQgaGVpZ2h0ICR7YmxvY2suaGVpZ2h0fSBhbmQgZXh0cmFjdG9yICR7ZXh0cmFjdG9yfWBcbiAgICAgICAgICApO1xuICAgICAgICAgIGF3YWl0IHJlcG9zaXRvcnkudXBkYXRlKHsgYm94SWQ6IGNvbW1pdG1lbnQuYm94SWQgfSwgZW50aXR5KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgRW50aXR5OiAke0pTT04uc3RyaW5naWZ5KGVudGl0eSl9YCk7XG4gICAgICB9XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFxuICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHN0b3JlIGNvbW1pdG1lbnRzIGFjdGlvbjogJHtlfWBcbiAgICAgICk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgICBzdWNjZXNzID0gZmFsc2U7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJlbGVhc2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1Y2Nlc3M7XG4gIH07XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBzcGVuZEJsb2NrIGFuZCBzcGVuZEhlaWdodCBvZiBjb21taXRtZW50cyBzcGVudCBvbiB0aGUgYmxvY2tcbiAgICogQHBhcmFtIHNwZW5kSWRcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHNwZW5kQ29tbWl0bWVudHMgPSBhc3luYyAoXG4gICAgc3BlbmRJZDogQXJyYXk8U3BlbmRJbmZvPixcbiAgICBibG9jazogQmxvY2ssXG4gICAgZXh0cmFjdG9yOiBzdHJpbmdcbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgLy8gVE9ETzogaW1wcm92ZSB1cGRhdGluZyAobG9jYWw6ZXJnby9yb3Nlbi1icmlkZ2Uvc2Nhbm5lciM4NSlcbiAgICBjb25zdCBzcGVuZElkQ2h1bmtzID0gY2h1bmsoc3BlbmRJZCwgZGJJZENodW5rU2l6ZSk7XG4gICAgZm9yIChjb25zdCBzcGVuZElkQ2h1bmsgb2Ygc3BlbmRJZENodW5rcykge1xuICAgICAgY29uc3QgY29tbWl0bWVudHMgPSBhd2FpdCB0aGlzLmNvbW1pdG1lbnRSZXBvc2l0b3J5LmZpbmRCeSh7XG4gICAgICAgIGJveElkOiBJbihzcGVuZElkQ2h1bmsubWFwKChpbmZvKSA9PiBpbmZvLmJveElkKSksXG4gICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgfSk7XG5cbiAgICAgIGZvciAoY29uc3QgY29tbWl0bWVudCBvZiBjb21taXRtZW50cykge1xuICAgICAgICBjb25zdCBzcGVuZEluZm8gPSBzcGVuZElkQ2h1bmsuZmluZChcbiAgICAgICAgICAoaW5mbykgPT4gaW5mby5ib3hJZCA9PT0gY29tbWl0bWVudC5ib3hJZFxuICAgICAgICApO1xuICAgICAgICBpZiAoIXNwZW5kSW5mbylcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgSW1wb3NzaWJsZSBiZWhhdmlvcjogYm94IFske2NvbW1pdG1lbnQuYm94SWR9XSBpcyBub3QgZm91bmQgaW4gc3BlbmRpbmcgaW5mbyBsaXN0YFxuICAgICAgICAgICk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5jb21taXRtZW50UmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6IGNvbW1pdG1lbnQuaWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzcGVuZEJsb2NrOiBibG9jay5oYXNoLFxuICAgICAgICAgICAgc3BlbmRIZWlnaHQ6IGJsb2NrLmhlaWdodCxcbiAgICAgICAgICAgIHNwZW5kVHhJZDogc3BlbmRJbmZvLnR4SWQsXG4gICAgICAgICAgICBzcGVuZEluZGV4OiBzcGVuZEluZm8uaW5kZXgsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgIGBTcGVudCBjb21taXRtZW50IFske2NvbW1pdG1lbnQuYm94SWR9XSBmb3IgZXZlbnQgWyR7Y29tbWl0bWVudC5ldmVudElkfV0gYXQgaGVpZ2h0ICR7YmxvY2suaGVpZ2h0fWBcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYFNwZW50IGNvbW1pdG1lbnQgWyR7SlNPTi5zdHJpbmdpZnkoY29tbWl0bWVudCl9XWApO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogRGVsZXRlIGFsbCBjb21taXRtZW50cyBjb3JyZXNwb25kaW5nIHRvIHRoZSBibG9jayhpZCkgYW5kIGV4dHJhY3RvcihpZClcbiAgICogYW5kIHVwZGF0ZSBhbGwgY29tbWl0bWVudHMgc3BlbnQgb24gdGhlIHNwZWNpZmllZCBibG9ja1xuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgZGVsZXRlQmxvY2sgPSBhc3luYyAoYmxvY2s6IHN0cmluZywgZXh0cmFjdG9yOiBzdHJpbmcpID0+IHtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgYERlbGV0aW5nIGNvbW1pdG1lbnRzIG9mIGJsb2NrIFske2Jsb2NrfV0gYW5kIGV4dHJhY3RvciAke2V4dHJhY3Rvcn1gXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLmNvbW1pdG1lbnRSZXBvc2l0b3J5LmRlbGV0ZSh7XG4gICAgICBibG9jazogYmxvY2ssXG4gICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLmNvbW1pdG1lbnRSZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgIHsgc3BlbmRCbG9jazogYmxvY2ssIGV4dHJhY3RvcjogZXh0cmFjdG9yIH0sXG4gICAgICB7IHNwZW5kQmxvY2s6IG51bGwsIHNwZW5kSGVpZ2h0OiBudWxsLCBzcGVuZFR4SWQ6IG51bGwsIHNwZW5kSW5kZXg6IG51bGwgfVxuICAgICk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbW1pdG1lbnRBY3Rpb247XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { DataSource } from 'typeorm';
2
2
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
3
- import { Block } from '@rosen-bridge/abstract-extractor';
3
+ import { Block } from '@rosen-bridge/scanner-interfaces';
4
4
  import { ExtractedPermit } from '../interfaces/extractedPermit';
5
5
  declare class PermitAction {
6
6
  readonly logger: AbstractLogger;
@@ -171,4 +171,4 @@ class PermitAction {
171
171
  };
172
172
  }
173
173
  export default PermitAction;
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWl0QWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2FjdGlvbnMvcGVybWl0QWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQWMsTUFBTSxTQUFTLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSTVFLE9BQU8sWUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFN0MsTUFBTSxZQUFZO0lBQ1AsTUFBTSxDQUFpQjtJQUNmLFVBQVUsQ0FBYTtJQUN2QixnQkFBZ0IsQ0FBMkI7SUFFNUQsWUFBWSxVQUFzQixFQUFFLE1BQXVCO1FBQ3pELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxHQUFHLEtBQUssRUFBRSxNQUF1QixFQUFFLFNBQWlCLEVBQUUsRUFBRTtRQUNsRSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7WUFDbEMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1lBQ25CLGFBQWEsRUFBRSxNQUFNLENBQUMsYUFBYTtZQUNuQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7WUFDbkIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1lBQ3JCLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRztZ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LENBQUMsSUFBSSxDQUFDO1lBQzlDLEtBQUssRUFBRTtnQkFDTCxTQUFTLEVBQUUsU0FBUzthQUNyQjtZQUNELE1BQU0sRUFBRTtnQkFDTixLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBdUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdELENBQUMsQ0FBQztJQUVGOzs7O09BSUc7SUFDSCxZQUFZLEdBQUcsS0FBSyxFQUFFLEtBQWEsRUFBRSxTQUFpQixFQUFFLEVBQUU7UUFDeEQsT0FBTyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7WUFDeEMsS0FBSyxFQUFFLEtBQUs7WUFDWixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRjs7Ozs7O09BTUc7SUFDSCxnQkFBZ0IsR0FBRyxLQUFLLEVBQ3RCLEtBQWEsRUFDYixTQUFpQixFQUNqQixPQUFlLEVBQ2YsV0FBbUIsRUFDbkIsRUFBRTtRQUNGLE9BQU8sTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUN2QyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxFQUN0QyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUNsRCxDQUFDO0lBQ0osQ0FBQyxDQUFDO0NBQ0g7QUFFRCxlQUFlLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UsIEluLCBSZXBvc2l0b3J5IH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgeyBjaHVuayB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciwgRHVtbXlMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBCbG9jayB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtZXh0cmFjdG9yJztcblxuaW1wb3J0IHsgRXh0cmFjdGVkUGVybWl0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHRyYWN0ZWRQZXJtaXQnO1xuaW1wb3J0IFBlcm1pdEVudGl0eSBmcm9tICcuLi9lbnRpdGllcy9QZXJtaXRFbnRpdHknO1xuaW1wb3J0IHsgZGJJZENodW5rU2l6ZSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmNsYXNzIFBlcm1pdEFjdGlvbiB7XG4gIHJlYWRvbmx5IGxvZ2dlcjogQWJzdHJhY3RMb2dnZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YXNvdXJjZTogRGF0YVNvdXJjZTtcbiAgcHJpdmF0ZSByZWFkb25seSBwZXJtaXRSZXBvc2l0b3J5OiBSZXBvc2l0b3J5PFBlcm1pdEVudGl0eT47XG5cbiAgY29uc3RydWN0b3IoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSwgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIpIHtcbiAgICB0aGlzLmRhdGFzb3VyY2UgPSBkYXRhU291cmNlO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyID8gbG9nZ2VyIDogbmV3IER1bW15TG9nZ2VyKCk7XG4gICAgdGhpcy5wZXJtaXRSZXBvc2l0b3J5ID0gZGF0YVNvdXJjZS5nZXRSZXBvc2l0b3J5KFBlcm1pdEVudGl0eSk7XG4gIH1cblxuICAvKipcbiAgICogaW5zZXJ0IGEgbmV3IHBlcm1pdCBib3hlcyBpbiB0aGUgZGF0YWJhc2VcbiAgICogQHBhcmFtIHBlcm1pdHNcbiAgICogQHBhcmFtIGluaXRpYWxIZWlnaHRcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgaW5zZXJ0UGVybWl0ID0gYXN5bmMgKHBlcm1pdDogRXh0cmFjdGVkUGVybWl0LCBleHRyYWN0b3I6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcm1pdFJlcG9zaXRvcnkuaW5zZXJ0KHtcbiAgICAgIGJveElkOiBwZXJtaXQuYm94SWQsXG4gICAgICBib3hTZXJpYWxpemVkOiBwZXJtaXQuYm94U2VyaWFsaXplZCxcbiAgICAgIGJsb2NrOiBwZXJtaXQuYmxvY2ssXG4gICAgICBoZWlnaHQ6IHBlcm1pdC5oZWlnaHQsXG4gICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgIFdJRDogcGVybWl0LldJRCxcbiAgICAgIHR4SWQ6IHBlcm1pdC50eElkLFxuICAgICAgc3BlbmRCbG9jazogcGVybWl0LnNwZW5kQmxvY2ssXG4gICAgICBzcGVuZEhlaWdodDogcGVybWl0LnNwZW5kSGVpZ2h0LFxuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiB1cGRhdGUgYW4gdW5zcGVudCBwZXJtaXQgaW4gdGhlIGRhdGFiYXNlXG4gICAqIEBwYXJhbSBwZXJtaXRcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgdXBkYXRlUGVybWl0ID0gYXN5bmMgKHBlcm1pdDogRXh0cmFjdGVkUGVybWl0LCBleHRyYWN0b3I6IHN0cmluZykgPT4ge1xuICAgIGF3YWl0IHRoaXMucGVybWl0UmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICB7IGJveElkOiBwZXJtaXQuYm94SWQsIGV4dHJhY3RvcjogZXh0cmFjdG9yIH0sXG4gICAgICB7XG4gICAgICAgIGJveFNlcmlhbGl6ZWQ6IHBlcm1pdC5ib3hTZXJpYWxpemVkLFxuICAgICAgICBibG9jazogcGVybWl0LmJsb2NrLFxuICAgICAgICBoZWlnaHQ6IHBlcm1pdC5oZWlnaHQsXG4gICAgICAgIFdJRDogcGVybWl0LldJRCxcbiAgICAgICAgdHhJZDogcGVybWl0LnR4SWQsXG4gICAgICAgIHNwZW5kQmxvY2s6IG51bGwsXG4gICAgICAgIHNwZW5kSGVpZ2h0OiBudWxsLFxuICAgICAgfVxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEl0IHN0b3JlcyBsaXN0IG9mIHBlcm1pdHMgaW4gdGhlIGRhdGFTb3VyY2Ugd2l0aCBibG9jayBpZFxuICAgKiBAcGFyYW0gcGVybWl0c1xuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgc3RvcmVQZXJtaXRzID0gYXN5bmMgKFxuICAgIHBlcm1pdHM6IEFycmF5PEV4dHJhY3RlZFBlcm1pdD4sXG4gICAgYmxvY2s6IEJsb2NrLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nXG4gICkgPT4ge1xuICAgIGlmIChwZXJtaXRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHRydWU7XG4gICAgY29uc3QgYm94SWRzID0gcGVybWl0cy5tYXAoKHBlcm1pdCkgPT4gcGVybWl0LmJveElkKTtcbiAgICBjb25zdCBzYXZlZFBlcm1pdHMgPSBhd2FpdCB0aGlzLnBlcm1pdFJlcG9zaXRvcnkuZmluZEJ5KHtcbiAgICAgIGJveElkOiBJbihib3hJZHMpLFxuICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgfSk7XG4gICAgbGV0IHN1Y2Nlc3MgPSB0cnVlO1xuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5kYXRhc291cmNlLmNyZWF0ZVF1ZXJ5UnVubmVyKCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdCgpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnN0YXJ0VHJhbnNhY3Rpb24oKTtcbiAgICBjb25zdCByZXBvc2l0b3J5ID0gYXdhaXQgcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KFBlcm1pdEVudGl0eSk7XG4gICAgdHJ5IHtcbiAgICAgIGZvciAoY29uc3QgcGVybWl0IG9mIHBlcm1pdHMpIHtcbiAgICAgICAgY29uc3Qgc2F2ZWQgPSBzYXZlZFBlcm1pdHMuc29tZSgoZW50aXR5KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGVudGl0eS5ib3hJZCA9PT0gcGVybWl0LmJveElkO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZW50aXR5ID0ge1xuICAgICAgICAgIGJveElkOiBwZXJtaXQuYm94SWQsXG4gICAgICAgICAgYm94U2VyaWFsaXplZDogcGVybWl0LmJveFNlcmlhbGl6ZWQsXG4gICAgICAgICAgYmxvY2s6IGJsb2NrLmhhc2gsXG4gICAgICAgICAgaGVpZ2h0OiBibG9jay5oZWlnaHQsXG4gICAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgICAgV0lEOiBwZXJtaXQuV0lELFxuICAgICAgICAgIHR4SWQ6IHBlcm1pdC50eElkLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoIXNhdmVkKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBgU2F2aW5nIHBlcm1pdCBbJHtwZXJtaXQuYm94SWR9XSBiZWxvbmdpbmcgdG8gd2F0Y2hlciBbJHtwZXJtaXQuV0lEfV0gYXQgaGVpZ2h0ICR7YmxvY2suaGVpZ2h0fSBhbmQgZXh0cmFjdG9yICR7ZXh0cmFjdG9yfWBcbiAgICAgICAgICApO1xuICAgICAgICAgIGF3YWl0IHJlcG9zaXRvcnkuaW5zZXJ0KGVudGl0eSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBgVXBkYXRpbmcgcGVybWl0IFske3Blcm1pdC5ib3hJZH1dIGJlbG9uZ2luZyB0byB3YXRjaGVyIFske3Blcm1pdC5XSUR9XSBhdCBoZWlnaHQgJHtibG9jay5oZWlnaHR9IGFuZCBleHRyYWN0b3IgJHtleHRyYWN0b3J9YFxuICAgICAgICAgICk7XG4gICAgICAgICAgYXdhaXQgcmVwb3NpdG9yeS51cGRhdGUoeyBib3hJZDogcGVybWl0LmJveElkIH0sIGVudGl0eSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYEVudGl0eTogJHtKU09OLnN0cmluZ2lmeShlbnRpdHkpfWApO1xuICAgICAgfVxuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihgQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHN0b3JlIHBlcm1pdCBhY3Rpb246ICR7ZX1gKTtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgIH1cbiAgICByZXR1cm4gc3VjY2VzcztcbiAgfTtcblxuICAvKipcbiAgICogVXBkYXRlIHNwZW5kQmxvY2sgYW5kIHNwZW5kSGVpZ2h0IG9mIHBlcm1pdHMgc3BlbnQgb24gdGhlIGJsb2NrXG4gICAqIEBwYXJhbSBzcGVuZElkXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICBzcGVuZFBlcm1pdHMgPSBhc3luYyAoXG4gICAgc3BlbmRJZDogQXJyYXk8c3RyaW5nPixcbiAgICBibG9jazogQmxvY2ssXG4gICAgZXh0cmFjdG9yOiBzdHJpbmdcbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgY29uc3Qgc3BlbmRJZENodW5rcyA9IGNodW5rKHNwZW5kSWQsIGRiSWRDaHVua1NpemUpO1xuICAgIGZvciAoY29uc3Qgc3BlbmRJZENodW5rIG9mIHNwZW5kSWRDaHVua3MpIHtcbiAgICAgIGNvbnN0IHVwZGF0ZVJlc3VsdCA9IGF3YWl0IHRoaXMucGVybWl0UmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICAgIHsgYm94SWQ6IEluKHNwZW5kSWRDaHVuayksIGV4dHJhY3RvcjogZXh0cmFjdG9yIH0sXG4gICAgICAgIHsgc3BlbmRCbG9jazogYmxvY2suaGFzaCwgc3BlbmRIZWlnaHQ6IGJsb2NrLmhlaWdodCB9XG4gICAgICApO1xuXG4gICAgICBpZiAodXBkYXRlUmVzdWx0LmFmZmVjdGVkICYmIHVwZGF0ZVJlc3VsdC5hZmZlY3RlZCA+IDApIHtcbiAgICAgICAgY29uc3Qgc3BlbnRSb3dzID0gYXdhaXQgdGhpcy5wZXJtaXRSZXBvc2l0b3J5LmZpbmRCeSh7XG4gICAgICAgICAgYm94SWQ6IEluKHNwZW5kSWRDaHVuayksXG4gICAgICAgICAgc3BlbmRCbG9jazogYmxvY2suaGFzaCxcbiAgICAgICAgfSk7XG4gICAgICAgIGZvciAoY29uc3Qgcm93IG9mIHNwZW50Um93cykge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgYFNwZW50IHBlcm1pdCB3aXRoIGJveElkIFske3Jvdy5ib3hJZH1dIGJlbG9uZ2luZyB0byB3YXRjaGVyIHdpdGggV0lEIFske3Jvdy5XSUR9XSBhdCBoZWlnaHQgJHtibG9jay5oZWlnaHR9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhbGwgcGVybWl0cyBjb3JyZXNwb25kaW5nIHRvIHRoZSBibG9jayhpZCkgYW5kIGV4dHJhY3RvcihpZClcbiAgICogYW5kIHVwZGF0ZSBhbGwgcGVybWl0cyBzcGVudCBvbiB0aGUgc3BlY2lmaWVkIGJsb2NrXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICBkZWxldGVCbG9jayA9IGFzeW5jIChibG9jazogc3RyaW5nLCBleHRyYWN0b3I6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICBgRGVsZXRpbmcgcGVybWl0cyBhdCBibG9jayAke2Jsb2NrfSBhbmQgZXh0cmFjdG9yICR7ZXh0cmFjdG9yfWBcbiAgICApO1xuICAgIGF3YWl0IHRoaXMucGVybWl0UmVwb3NpdG9yeS5kZWxldGUoeyBibG9jazogYmxvY2ssIGV4dHJhY3RvcjogZXh0cmFjdG9yIH0pO1xuICAgIGF3YWl0IHRoaXMucGVybWl0UmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICB7IHNwZW5kQmxvY2s6IGJsb2NrLCBleHRyYWN0b3I6IGV4dHJhY3RvciB9LFxuICAgICAgeyBzcGVuZEJsb2NrOiBudWxsLCBzcGVuZEhlaWdodDogbnVsbCB9XG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogIFJldHVybnMgYWxsIHN0b3JlZCBwZXJtaXQgYm94IGlkc1xuICAgKi9cbiAgZ2V0QWxsUGVybWl0Qm94SWRzID0gYXN5bmMgKGV4dHJhY3Rvcjogc3RyaW5nKTogUHJvbWlzZTxBcnJheTxzdHJpbmc+PiA9PiB7XG4gICAgY29uc3QgYm94SWRzID0gYXdhaXQgdGhpcy5wZXJtaXRSZXBvc2l0b3J5LmZpbmQoe1xuICAgICAgd2hlcmU6IHtcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICB9LFxuICAgICAgc2VsZWN0OiB7XG4gICAgICAgIGJveElkOiB0cnVlLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICByZXR1cm4gYm94SWRzLm1hcCgoaXRlbTogeyBib3hJZDogc3RyaW5nIH0pID0+IGl0ZW0uYm94SWQpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHNwZWNpZmllZCBwZXJtaXRcbiAgICogQHBhcmFtIGJveElkXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHJlbW92ZVBlcm1pdCA9IGFzeW5jIChib3hJZDogc3RyaW5nLCBleHRyYWN0b3I6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnBlcm1pdFJlcG9zaXRvcnkuZGVsZXRlKHtcbiAgICAgIGJveElkOiBib3hJZCxcbiAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIHBlcm1pdCBzcGVuZGluZyBpbmZvcm1hdGlvblxuICAgKiBAcGFyYW0gYm94SWRcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKiBAcGFyYW0gYmxvY2tJZFxuICAgKiBAcGFyYW0gYmxvY2tIZWlnaHRcbiAgICovXG4gIHVwZGF0ZVNwZW5kQmxvY2sgPSBhc3luYyAoXG4gICAgYm94SWQ6IHN0cmluZyxcbiAgICBleHRyYWN0b3I6IHN0cmluZyxcbiAgICBibG9ja0lkOiBzdHJpbmcsXG4gICAgYmxvY2tIZWlnaHQ6IG51bWJlclxuICApID0+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wZXJtaXRSZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgIHsgYm94SWQ6IGJveElkLCBleHRyYWN0b3I6IGV4dHJhY3RvciB9LFxuICAgICAgeyBzcGVuZEJsb2NrOiBibG9ja0lkLCBzcGVuZEhlaWdodDogYmxvY2tIZWlnaHQgfVxuICAgICk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IFBlcm1pdEFjdGlvbjtcbiJdfQ==
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWl0QWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2FjdGlvbnMvcGVybWl0QWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQWMsTUFBTSxTQUFTLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSTVFLE9BQU8sWUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFN0MsTUFBTSxZQUFZO0lBQ1AsTUFBTSxDQUFpQjtJQUNmLFVBQVUsQ0FBYTtJQUN2QixnQkFBZ0IsQ0FBMkI7SUFFNUQsWUFBWSxVQUFzQixFQUFFLE1BQXVCO1FBQ3pELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxHQUFHLEtBQUssRUFBRSxNQUF1QixFQUFFLFNBQWlCLEVBQUUsRUFBRTtRQUNsRSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7WUFDbEMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1lBQ25CLGFBQWEsRUFBRSxNQUFNLENBQUMsYUFBYTtZQUNuQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7WUFDbkIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1lBQ3JCLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRztZ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LENBQUMsSUFBSSxDQUFDO1lBQzlDLEtBQUssRUFBRTtnQkFDTCxTQUFTLEVBQUUsU0FBUzthQUNyQjtZQUNELE1BQU0sRUFBRTtnQkFDTixLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBdUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdELENBQUMsQ0FBQztJQUVGOzs7O09BSUc7SUFDSCxZQUFZLEdBQUcsS0FBSyxFQUFFLEtBQWEsRUFBRSxTQUFpQixFQUFFLEVBQUU7UUFDeEQsT0FBTyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7WUFDeEMsS0FBSyxFQUFFLEtBQUs7WUFDWixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRjs7Ozs7O09BTUc7SUFDSCxnQkFBZ0IsR0FBRyxLQUFLLEVBQ3RCLEtBQWEsRUFDYixTQUFpQixFQUNqQixPQUFlLEVBQ2YsV0FBbUIsRUFDbkIsRUFBRTtRQUNGLE9BQU8sTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUN2QyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxFQUN0QyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUNsRCxDQUFDO0lBQ0osQ0FBQyxDQUFDO0NBQ0g7QUFFRCxlQUFlLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UsIEluLCBSZXBvc2l0b3J5IH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgeyBjaHVuayB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciwgRHVtbXlMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBCbG9jayB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgRXh0cmFjdGVkUGVybWl0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHRyYWN0ZWRQZXJtaXQnO1xuaW1wb3J0IFBlcm1pdEVudGl0eSBmcm9tICcuLi9lbnRpdGllcy9QZXJtaXRFbnRpdHknO1xuaW1wb3J0IHsgZGJJZENodW5rU2l6ZSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmNsYXNzIFBlcm1pdEFjdGlvbiB7XG4gIHJlYWRvbmx5IGxvZ2dlcjogQWJzdHJhY3RMb2dnZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YXNvdXJjZTogRGF0YVNvdXJjZTtcbiAgcHJpdmF0ZSByZWFkb25seSBwZXJtaXRSZXBvc2l0b3J5OiBSZXBvc2l0b3J5PFBlcm1pdEVudGl0eT47XG5cbiAgY29uc3RydWN0b3IoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSwgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIpIHtcbiAgICB0aGlzLmRhdGFzb3VyY2UgPSBkYXRhU291cmNlO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyID8gbG9nZ2VyIDogbmV3IER1bW15TG9nZ2VyKCk7XG4gICAgdGhpcy5wZXJtaXRSZXBvc2l0b3J5ID0gZGF0YVNvdXJjZS5nZXRSZXBvc2l0b3J5KFBlcm1pdEVudGl0eSk7XG4gIH1cblxuICAvKipcbiAgICogaW5zZXJ0IGEgbmV3IHBlcm1pdCBib3hlcyBpbiB0aGUgZGF0YWJhc2VcbiAgICogQHBhcmFtIHBlcm1pdHNcbiAgICogQHBhcmFtIGluaXRpYWxIZWlnaHRcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgaW5zZXJ0UGVybWl0ID0gYXN5bmMgKHBlcm1pdDogRXh0cmFjdGVkUGVybWl0LCBleHRyYWN0b3I6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcm1pdFJlcG9zaXRvcnkuaW5zZXJ0KHtcbiAgICAgIGJveElkOiBwZXJtaXQuYm94SWQsXG4gICAgICBib3hTZXJpYWxpemVkOiBwZXJtaXQuYm94U2VyaWFsaXplZCxcbiAgICAgIGJsb2NrOiBwZXJtaXQuYmxvY2ssXG4gICAgICBoZWlnaHQ6IHBlcm1pdC5oZWlnaHQsXG4gICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgIFdJRDogcGVybWl0LldJRCxcbiAgICAgIHR4SWQ6IHBlcm1pdC50eElkLFxuICAgICAgc3BlbmRCbG9jazogcGVybWl0LnNwZW5kQmxvY2ssXG4gICAgICBzcGVuZEhlaWdodDogcGVybWl0LnNwZW5kSGVpZ2h0LFxuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiB1cGRhdGUgYW4gdW5zcGVudCBwZXJtaXQgaW4gdGhlIGRhdGFiYXNlXG4gICAqIEBwYXJhbSBwZXJtaXRcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgdXBkYXRlUGVybWl0ID0gYXN5bmMgKHBlcm1pdDogRXh0cmFjdGVkUGVybWl0LCBleHRyYWN0b3I6IHN0cmluZykgPT4ge1xuICAgIGF3YWl0IHRoaXMucGVybWl0UmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICB7IGJveElkOiBwZXJtaXQuYm94SWQsIGV4dHJhY3RvcjogZXh0cmFjdG9yIH0sXG4gICAgICB7XG4gICAgICAgIGJveFNlcmlhbGl6ZWQ6IHBlcm1pdC5ib3hTZXJpYWxpemVkLFxuICAgICAgICBibG9jazogcGVybWl0LmJsb2NrLFxuICAgICAgICBoZWlnaHQ6IHBlcm1pdC5oZWlnaHQsXG4gICAgICAgIFdJRDogcGVybWl0LldJRCxcbiAgICAgICAgdHhJZDogcGVybWl0LnR4SWQsXG4gICAgICAgIHNwZW5kQmxvY2s6IG51bGwsXG4gICAgICAgIHNwZW5kSGVpZ2h0OiBudWxsLFxuICAgICAgfVxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEl0IHN0b3JlcyBsaXN0IG9mIHBlcm1pdHMgaW4gdGhlIGRhdGFTb3VyY2Ugd2l0aCBibG9jayBpZFxuICAgKiBAcGFyYW0gcGVybWl0c1xuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgc3RvcmVQZXJtaXRzID0gYXN5bmMgKFxuICAgIHBlcm1pdHM6IEFycmF5PEV4dHJhY3RlZFBlcm1pdD4sXG4gICAgYmxvY2s6IEJsb2NrLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nXG4gICkgPT4ge1xuICAgIGlmIChwZXJtaXRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHRydWU7XG4gICAgY29uc3QgYm94SWRzID0gcGVybWl0cy5tYXAoKHBlcm1pdCkgPT4gcGVybWl0LmJveElkKTtcbiAgICBjb25zdCBzYXZlZFBlcm1pdHMgPSBhd2FpdCB0aGlzLnBlcm1pdFJlcG9zaXRvcnkuZmluZEJ5KHtcbiAgICAgIGJveElkOiBJbihib3hJZHMpLFxuICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgfSk7XG4gICAgbGV0IHN1Y2Nlc3MgPSB0cnVlO1xuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5kYXRhc291cmNlLmNyZWF0ZVF1ZXJ5UnVubmVyKCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdCgpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnN0YXJ0VHJhbnNhY3Rpb24oKTtcbiAgICBjb25zdCByZXBvc2l0b3J5ID0gYXdhaXQgcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KFBlcm1pdEVudGl0eSk7XG4gICAgdHJ5IHtcbiAgICAgIGZvciAoY29uc3QgcGVybWl0IG9mIHBlcm1pdHMpIHtcbiAgICAgICAgY29uc3Qgc2F2ZWQgPSBzYXZlZFBlcm1pdHMuc29tZSgoZW50aXR5KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGVudGl0eS5ib3hJZCA9PT0gcGVybWl0LmJveElkO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZW50aXR5ID0ge1xuICAgICAgICAgIGJveElkOiBwZXJtaXQuYm94SWQsXG4gICAgICAgICAgYm94U2VyaWFsaXplZDogcGVybWl0LmJveFNlcmlhbGl6ZWQsXG4gICAgICAgICAgYmxvY2s6IGJsb2NrLmhhc2gsXG4gICAgICAgICAgaGVpZ2h0OiBibG9jay5oZWlnaHQsXG4gICAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgICAgV0lEOiBwZXJtaXQuV0lELFxuICAgICAgICAgIHR4SWQ6IHBlcm1pdC50eElkLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoIXNhdmVkKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBgU2F2aW5nIHBlcm1pdCBbJHtwZXJtaXQuYm94SWR9XSBiZWxvbmdpbmcgdG8gd2F0Y2hlciBbJHtwZXJtaXQuV0lEfV0gYXQgaGVpZ2h0ICR7YmxvY2suaGVpZ2h0fSBhbmQgZXh0cmFjdG9yICR7ZXh0cmFjdG9yfWBcbiAgICAgICAgICApO1xuICAgICAgICAgIGF3YWl0IHJlcG9zaXRvcnkuaW5zZXJ0KGVudGl0eSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBgVXBkYXRpbmcgcGVybWl0IFske3Blcm1pdC5ib3hJZH1dIGJlbG9uZ2luZyB0byB3YXRjaGVyIFske3Blcm1pdC5XSUR9XSBhdCBoZWlnaHQgJHtibG9jay5oZWlnaHR9IGFuZCBleHRyYWN0b3IgJHtleHRyYWN0b3J9YFxuICAgICAgICAgICk7XG4gICAgICAgICAgYXdhaXQgcmVwb3NpdG9yeS51cGRhdGUoeyBib3hJZDogcGVybWl0LmJveElkIH0sIGVudGl0eSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYEVudGl0eTogJHtKU09OLnN0cmluZ2lmeShlbnRpdHkpfWApO1xuICAgICAgfVxuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihgQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHN0b3JlIHBlcm1pdCBhY3Rpb246ICR7ZX1gKTtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgIH1cbiAgICByZXR1cm4gc3VjY2VzcztcbiAgfTtcblxuICAvKipcbiAgICogVXBkYXRlIHNwZW5kQmxvY2sgYW5kIHNwZW5kSGVpZ2h0IG9mIHBlcm1pdHMgc3BlbnQgb24gdGhlIGJsb2NrXG4gICAqIEBwYXJhbSBzcGVuZElkXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICBzcGVuZFBlcm1pdHMgPSBhc3luYyAoXG4gICAgc3BlbmRJZDogQXJyYXk8c3RyaW5nPixcbiAgICBibG9jazogQmxvY2ssXG4gICAgZXh0cmFjdG9yOiBzdHJpbmdcbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgY29uc3Qgc3BlbmRJZENodW5rcyA9IGNodW5rKHNwZW5kSWQsIGRiSWRDaHVua1NpemUpO1xuICAgIGZvciAoY29uc3Qgc3BlbmRJZENodW5rIG9mIHNwZW5kSWRDaHVua3MpIHtcbiAgICAgIGNvbnN0IHVwZGF0ZVJlc3VsdCA9IGF3YWl0IHRoaXMucGVybWl0UmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICAgIHsgYm94SWQ6IEluKHNwZW5kSWRDaHVuayksIGV4dHJhY3RvcjogZXh0cmFjdG9yIH0sXG4gICAgICAgIHsgc3BlbmRCbG9jazogYmxvY2suaGFzaCwgc3BlbmRIZWlnaHQ6IGJsb2NrLmhlaWdodCB9XG4gICAgICApO1xuXG4gICAgICBpZiAodXBkYXRlUmVzdWx0LmFmZmVjdGVkICYmIHVwZGF0ZVJlc3VsdC5hZmZlY3RlZCA+IDApIHtcbiAgICAgICAgY29uc3Qgc3BlbnRSb3dzID0gYXdhaXQgdGhpcy5wZXJtaXRSZXBvc2l0b3J5LmZpbmRCeSh7XG4gICAgICAgICAgYm94SWQ6IEluKHNwZW5kSWRDaHVuayksXG4gICAgICAgICAgc3BlbmRCbG9jazogYmxvY2suaGFzaCxcbiAgICAgICAgfSk7XG4gICAgICAgIGZvciAoY29uc3Qgcm93IG9mIHNwZW50Um93cykge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgYFNwZW50IHBlcm1pdCB3aXRoIGJveElkIFske3Jvdy5ib3hJZH1dIGJlbG9uZ2luZyB0byB3YXRjaGVyIHdpdGggV0lEIFske3Jvdy5XSUR9XSBhdCBoZWlnaHQgJHtibG9jay5oZWlnaHR9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhbGwgcGVybWl0cyBjb3JyZXNwb25kaW5nIHRvIHRoZSBibG9jayhpZCkgYW5kIGV4dHJhY3RvcihpZClcbiAgICogYW5kIHVwZGF0ZSBhbGwgcGVybWl0cyBzcGVudCBvbiB0aGUgc3BlY2lmaWVkIGJsb2NrXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICBkZWxldGVCbG9jayA9IGFzeW5jIChibG9jazogc3RyaW5nLCBleHRyYWN0b3I6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICBgRGVsZXRpbmcgcGVybWl0cyBhdCBibG9jayAke2Jsb2NrfSBhbmQgZXh0cmFjdG9yICR7ZXh0cmFjdG9yfWBcbiAgICApO1xuICAgIGF3YWl0IHRoaXMucGVybWl0UmVwb3NpdG9yeS5kZWxldGUoeyBibG9jazogYmxvY2ssIGV4dHJhY3RvcjogZXh0cmFjdG9yIH0pO1xuICAgIGF3YWl0IHRoaXMucGVybWl0UmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICB7IHNwZW5kQmxvY2s6IGJsb2NrLCBleHRyYWN0b3I6IGV4dHJhY3RvciB9LFxuICAgICAgeyBzcGVuZEJsb2NrOiBudWxsLCBzcGVuZEhlaWdodDogbnVsbCB9XG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogIFJldHVybnMgYWxsIHN0b3JlZCBwZXJtaXQgYm94IGlkc1xuICAgKi9cbiAgZ2V0QWxsUGVybWl0Qm94SWRzID0gYXN5bmMgKGV4dHJhY3Rvcjogc3RyaW5nKTogUHJvbWlzZTxBcnJheTxzdHJpbmc+PiA9PiB7XG4gICAgY29uc3QgYm94SWRzID0gYXdhaXQgdGhpcy5wZXJtaXRSZXBvc2l0b3J5LmZpbmQoe1xuICAgICAgd2hlcmU6IHtcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICB9LFxuICAgICAgc2VsZWN0OiB7XG4gICAgICAgIGJveElkOiB0cnVlLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICByZXR1cm4gYm94SWRzLm1hcCgoaXRlbTogeyBib3hJZDogc3RyaW5nIH0pID0+IGl0ZW0uYm94SWQpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHNwZWNpZmllZCBwZXJtaXRcbiAgICogQHBhcmFtIGJveElkXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHJlbW92ZVBlcm1pdCA9IGFzeW5jIChib3hJZDogc3RyaW5nLCBleHRyYWN0b3I6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnBlcm1pdFJlcG9zaXRvcnkuZGVsZXRlKHtcbiAgICAgIGJveElkOiBib3hJZCxcbiAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIHBlcm1pdCBzcGVuZGluZyBpbmZvcm1hdGlvblxuICAgKiBAcGFyYW0gYm94SWRcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKiBAcGFyYW0gYmxvY2tJZFxuICAgKiBAcGFyYW0gYmxvY2tIZWlnaHRcbiAgICovXG4gIHVwZGF0ZVNwZW5kQmxvY2sgPSBhc3luYyAoXG4gICAgYm94SWQ6IHN0cmluZyxcbiAgICBleHRyYWN0b3I6IHN0cmluZyxcbiAgICBibG9ja0lkOiBzdHJpbmcsXG4gICAgYmxvY2tIZWlnaHQ6IG51bWJlclxuICApID0+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wZXJtaXRSZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgIHsgYm94SWQ6IGJveElkLCBleHRyYWN0b3I6IGV4dHJhY3RvciB9LFxuICAgICAgeyBzcGVuZEJsb2NrOiBibG9ja0lkLCBzcGVuZEhlaWdodDogYmxvY2tIZWlnaHQgfVxuICAgICk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IFBlcm1pdEFjdGlvbjtcbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { DataSource } from 'typeorm';
2
- import { Transaction } from '@rosen-bridge/scanner';
3
2
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
4
- import { AbstractInitializableErgoExtractor, BlockInfo, ErgoNetworkType, OutputBox } from '@rosen-bridge/abstract-extractor';
3
+ import { AbstractInitializableErgoExtractor } from '@rosen-bridge/abstract-extractor';
4
+ import { BlockInfo, ErgoNetworkType, OutputBox, Transaction } from '@rosen-bridge/scanner-interfaces';
5
5
  import EventTriggerAction from '../actions/EventTriggerAction';
6
6
  import { ExtractedEventTrigger } from '../interfaces/extractedEventTrigger';
7
7
  import { EventResult } from '../types';
@@ -1 +1 @@
1
- {"version":3,"file":"EventTriggerExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/EventTriggerExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EACL,kCAAkC,EAClC,SAAS,EAET,eAAe,EACf,SAAS,EAEV,MAAM,kCAAkC,CAAC;AAE1C,OAAO,kBAAkB,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,kBAAkB,MAAM,gCAAgC,CAAC;AAEhE,cAAM,qBAAsB,SAAQ,kCAAkC,CACpE,qBAAqB,EACrB,kBAAkB,CACnB;IACC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IAC/C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAG3B,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,eAAe,EACrB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,cAAc,EACvB,UAAU,UAAO;IAiBnB;;OAEG;IACH,KAAK,eAAiB;IAEtB;;;;;;;;;OASG;IACH,OAAO,QAAS,SAAS,KAAG,OAAO,CA2BjC;IAEF;;;;OAIG;IACH,cAAc,QACP,SAAS,KACb,KAAK,qBAAqB,EAAE,YAAY,GAAG,aAAa,CAAC,GAAG,SAAS,CAwDtE;IAEF;;;;;OAKG;IACH,mBAAmB,QACZ,MAAM,WAAW,CAAC,SAChB,SAAS,KACf,QAAQ,OAAO,CAAC,CAuDjB;IAEF;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,gBAAiB,WAAW;;;MA0CtD;CACH;AAED,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"EventTriggerExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/EventTriggerExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EACL,kCAAkC,EAGnC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,SAAS,EACT,eAAe,EACf,SAAS,EACT,WAAW,EACZ,MAAM,kCAAkC,CAAC;AAE1C,OAAO,kBAAkB,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,kBAAkB,MAAM,gCAAgC,CAAC;AAEhE,cAAM,qBAAsB,SAAQ,kCAAkC,CACpE,qBAAqB,EACrB,kBAAkB,CACnB;IACC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IAC/C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAG3B,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,eAAe,EACrB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,cAAc,EACvB,UAAU,UAAO;IAiBnB;;OAEG;IACH,KAAK,eAAiB;IAEtB;;;;;;;;;OASG;IACH,OAAO,QAAS,SAAS,KAAG,OAAO,CA2BjC;IAEF;;;;OAIG;IACH,cAAc,QACP,SAAS,KACb,KAAK,qBAAqB,EAAE,YAAY,GAAG,aAAa,CAAC,GAAG,SAAS,CAwDtE;IAEF;;;;;OAKG;IACH,mBAAmB,QACZ,MAAM,WAAW,CAAC,SAChB,SAAS,KACf,QAAQ,OAAO,CAAC,CAuDjB;IAEF;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,gBAAiB,WAAW;;;MA0CtD;CACH;AAED,eAAe,qBAAqB,CAAC"}
@@ -142,7 +142,7 @@ class EventTriggerExtractor extends AbstractInitializableErgoExtractor {
142
142
  txId: transaction.id,
143
143
  boxId: transaction.inputs[index].boxId,
144
144
  index: index,
145
- extras: [result, paymentTxId],
145
+ extras: { result, paymentTxId },
146
146
  });
147
147
  });
148
148
  if (boxes.length > 0) {
@@ -212,4 +212,4 @@ class EventTriggerExtractor extends AbstractInitializableErgoExtractor {
212
212
  };
213
213
  }
214
214
  export default EventTriggerExtractor;
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRUcmlnZ2VyRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2V4dHJhY3Rvci9FdmVudFRyaWdnZXJFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLElBQUksTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBR2xDLE9BQU8sRUFDTCxrQ0FBa0MsRUFFbEMsWUFBWSxHQUliLE1BQU0sa0NBQWtDLENBQUM7QUFFMUMsT0FBTyxrQkFBa0IsTUFBTSwrQkFBK0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHdkMsTUFBTSxxQkFBc0IsU0FBUSxrQ0FHbkM7SUFDQyxFQUFFLENBQVM7SUFDUSxPQUFPLENBQXFCO0lBQzlCLG9CQUFvQixDQUFTO0lBQzdCLGNBQWMsQ0FBUztJQUN2QixhQUFhLENBQVM7SUFDdEIsR0FBRyxDQUFTO0lBRTdCLFlBQ0UsRUFBVSxFQUNWLFVBQXNCLEVBQ3RCLElBQXFCLEVBQ3JCLEdBQVcsRUFDWCxPQUFlLEVBQ2YsR0FBVyxFQUNYLGFBQXFCLEVBQ3JCLFlBQW9CLEVBQ3BCLE1BQXVCLEVBQ3ZCLFVBQVUsR0FBRyxJQUFJO1FBRWpCLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO2FBQzFELFlBQVksRUFBRTthQUNkLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8s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LENBQUMsRUFBRSxDQUFDOzRCQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZixrQ0FBa0MsV0FBVyxDQUFDLEVBQUUsOENBQThDLENBQy9GLENBQUM7eUJBQ0g7d0JBQ0QsMERBQTBEO3dCQUMxRCxNQUFNO3FCQUNQO2lCQUNGO2dCQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUNWLFNBQVM7aUJBQ1Y7YUFDRjtTQUNGO1FBQ0QsT0FBTztZQUNMLE1BQU07WUFDTixXQUFXO1NBQ1osQ0FBQztJQUNKLENBQUMsQ0FBQztDQUNIO0FBRUQsZUFBZSxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICd0eXBlb3JtJztcbmltcG9ydCAqIGFzIHdhc20gZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuaW1wb3J0IHsgYmxha2UyYiB9IGZyb20gJ2JsYWtlanMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXInO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQge1xuICBBYnN0cmFjdEluaXRpYWxpemFibGVFcmdvRXh0cmFjdG9yLFxuICBCbG9ja0luZm8sXG4gIENhbGxiYWNrVHlwZSxcbiAgRXJnb05ldHdvcmtUeXBlLFxuICBPdXRwdXRCb3gsXG4gIFNwZW5kSW5mbyxcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1leHRyYWN0b3InO1xuXG5pbXBvcnQgRXZlbnRUcmlnZ2VyQWN0aW9uIGZyb20gJy4uL2FjdGlvbnMvRXZlbnRUcmlnZ2VyQWN0aW9uJztcbmltcG9ydCB7IEV4dHJhY3RlZEV2ZW50VHJpZ2dlciB9IGZyb20gJy4uL2ludGVyZmFjZXMvZXh0cmFjdGVkRXZlbnRUcmlnZ2VyJztcbmltcG9ydCB7IEpzb25CSSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEV2ZW50UmVzdWx0IH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IEV2ZW50VHJpZ2dlckVudGl0eSBmcm9tICcuLi9lbnRpdGllcy9FdmVudFRyaWdnZXJFbnRpdHknO1xuXG5jbGFzcyBFdmVudFRyaWdnZXJFeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdEluaXRpYWxpemFibGVFcmdvRXh0cmFjdG9yPFxuICBFeHRyYWN0ZWRFdmVudFRyaWdnZXIsXG4gIEV2ZW50VHJpZ2dlckVudGl0eVxuPiB7XG4gIGlkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCByZWFkb25seSBhY3Rpb25zOiBFdmVudFRyaWdnZXJBY3Rpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRUcmlnZ2VyRXJnb1RyZWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBwZXJtaXRFcmdvVHJlZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGZyYXVkRXJnb1RyZWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBSV1Q6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBpZDogc3RyaW5nLFxuICAgIGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsXG4gICAgdHlwZTogRXJnb05ldHdvcmtUeXBlLFxuICAgIHVybDogc3RyaW5nLFxuICAgIGFkZHJlc3M6IHN0cmluZyxcbiAgICBSV1Q6IHN0cmluZyxcbiAgICBwZXJtaXRBZGRyZXNzOiBzdHJpbmcsXG4gICAgZnJhdWRBZGRyZXNzOiBzdHJpbmcsXG4gICAgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIsXG4gICAgaW5pdGlhbGl6ZSA9IHRydWVcbiAgKSB7XG4gICAgc3VwZXIodHlwZSwgdXJsLCBhZGRyZXNzLCBsb2dnZXIsIGluaXRpYWxpemUpO1xuICAgIHRoaXMuaWQgPSBpZDtcbiAgICB0aGlzLmV2ZW50VHJpZ2dlckVyZ29UcmVlID0gd2FzbS5BZGRyZXNzLmZyb21fYmFzZTU4KGFkZHJlc3MpXG4gICAgICAudG9fZXJnb190cmVlKClcbiAgICAgIC50b19iYXNlMTZfYnl0ZXMoKTtcbiAgICB0aGlzLnBlcm1pdEVyZ29UcmVlID0gd2FzbS5BZGRyZXNzLmZyb21fYmFzZTU4KHBlcm1pdEFkZHJlc3MpXG4gICAgICAudG9fZXJnb190cmVlKClcbiAgICAgIC50b19iYXNlMTZfYnl0ZXMoKTtcbiAgICB0aGlzLmZyYXVkRXJnb1RyZWUgPSB3YXNtLkFkZHJlc3MuZnJvbV9iYXNlNTgoZnJhdWRBZGRyZXNzKVxuICAgICAgLnRvX2VyZ29fdHJlZSgpXG4gICAgICAudG9fYmFzZTE2X2J5dGVzKCk7XG4gICAgdGhpcy5SV1QgPSBSV1Q7XG4gICAgdGhpcy5hY3Rpb25zID0gbmV3IEV2ZW50VHJpZ2dlckFjdGlvbihkYXRhU291cmNlLCB0aGlzLmxvZ2dlcik7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IElkIGZvciBjdXJyZW50IGV4dHJhY3RvclxuICAgKi9cbiAgZ2V0SWQgPSAoKSA9PiB0aGlzLmlkO1xuXG4gIC8qKlxuICAgKiBjaGVjayBwcm9wZXIgZGF0YSBmb3JtYXQgaW4gdGhlIGJveFxuICAgKiAgLSBib3ggZXJnb1RyZWVcbiAgICogIC0gUldUIGluIGZpcnN0IHRva2VuIHBsYWNlXG4gICAqICAtIHdpZExpc3RIYXNoIGluIFI0XG4gICAqICAtIGV2ZW50IGRhdGEgaW4gUjVcbiAgICogIC0gd2lkQ291bnQgaW4gUjdcbiAgICogQHBhcmFtIGJveFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGJveCBoYXMgdGhlIHJlcXVpcmVkIGRhdGEgYW5kIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgaGFzRGF0YSA9IChib3g6IE91dHB1dEJveCk6IGJvb2xlYW4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBpZiAoXG4gICAgICAgIGJveC5hZGRpdGlvbmFsUmVnaXN0ZXJzICYmXG4gICAgICAgIGJveC5hZGRpdGlvbmFsUmVnaXN0ZXJzLlI0ICYmXG4gICAgICAgIGJveC5hZGRpdGlvbmFsUmVnaXN0ZXJzLlI1ICYmXG4gICAgICAgIGJveC5hZGRpdGlvbmFsUmVnaXN0ZXJzLlI3ICYmXG4gICAgICAgIGJveC5hc3NldHMgJiZcbiAgICAgICAgYm94LmFzc2V0cy5sZW5ndGggPiAwICYmXG4gICAgICAgIGJveC5hc3NldHNbMF0udG9rZW5JZCA9PT0gdGhpcy5SV1QgJiZcbiAgICAgICAgYm94LmVyZ29UcmVlID09PSB0aGlzLmV2ZW50VHJpZ2dlckVyZ29UcmVlXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgcGFyc2VkQm94ID0gd2FzbS5FcmdvQm94LmZyb21fanNvbihKc29uQkkuc3RyaW5naWZ5KGJveCkpO1xuICAgICAgICBjb25zdCBSNFNlcmlhbGl6ZWQgPSBwYXJzZWRCb3hcbiAgICAgICAgICAucmVnaXN0ZXJfdmFsdWUod2FzbS5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI0KSFcbiAgICAgICAgICAudG9fYnl0ZV9hcnJheSgpO1xuICAgICAgICBjb25zdCBSNVNlcmlhbGl6ZWQgPSBwYXJzZWRCb3hcbiAgICAgICAgICAucmVnaXN0ZXJfdmFsdWUod2FzbS5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI1KSFcbiAgICAgICAgICAudG9fY29sbF9jb2xsX2J5dGUoKTtcbiAgICAgICAgaWYgKFI0U2VyaWFsaXplZC5sZW5ndGggPj0gMSAmJiBSNVNlcmlhbGl6ZWQubGVuZ3RoID49IDEyKSByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKFxuICAgICAgICBgVW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZCB3aGlsZSBjaGVja2luZyB0aGUgcHJvcGVyIHRyaWdnZXIgZGF0YSBmb3JtYXQgZm9yIGJveCAke2JveC5ib3hJZH06ICR7ZX1gXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgLyoqXG4gICAqIGV4dHJhY3QgYm94IGRhdGEgdG8gcHJvcGVyIGZvcm1hdCAobm90IGluY2x1ZGluZyBzcGVuZGluZyBpbmZvcm1hdGlvbilcbiAgICogQHBhcmFtIGJveFxuICAgKiBAcmV0dXJuIGV4dHJhY3RlZCBkYXRhIGluIHByb3BlciBmb3JtYXRcbiAgICovXG4gIGV4dHJhY3RCb3hEYXRhID0gKFxuICAgIGJveDogT3V0cHV0Qm94XG4gICk6IE9taXQ8RXh0cmFjdGVkRXZlbnRUcmlnZ2VyLCAnc3BlbmRCbG9jaycgfCAnc3BlbmRIZWlnaHQnPiB8IHVuZGVmaW5lZCA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcnNlZEJveCA9IHdhc20uRXJnb0JveC5mcm9tX2pzb24oSnNvbkJJLnN0cmluZ2lmeShib3gpKTtcbiAgICAgIGNvbnN0IFI0U2VyaWFsaXplZCA9IHBhcnNlZEJveFxuICAgICAgICAucmVnaXN0ZXJfdmFsdWUod2FzbS5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI0KSFcbiAgICAgICAgLnRvX2J5dGVfYXJyYXkoKTtcbiAgICAgIGNvbnN0IFI1U2VyaWFsaXplZCA9IHBhcnNlZEJveFxuICAgICAgICAucmVnaXN0ZXJfdmFsdWUod2FzbS5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI1KSFcbiAgICAgICAgLnRvX2NvbGxfY29sbF9ieXRlKCk7XG5cbiAgICAgIGNvbnN0IFdJRHNDb3VudCA9IHBhcnNlZEJveFxuICAgICAgICAucmVnaXN0ZXJfdmFsdWUod2FzbS5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI3KSFcbiAgICAgICAgLnRvX2kzMigpO1xuICAgICAgY29uc3QgV0lEc0hhc2ggPSBCdWZmZXIuZnJvbShSNFNlcmlhbGl6ZWQpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIGNvbnN0IHNvdXJjZVR4SWQgPSBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbMF0pLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBldmVudElkID0gQnVmZmVyLmZyb20oYmxha2UyYihzb3VyY2VUeElkLCB1bmRlZmluZWQsIDMyKSkudG9TdHJpbmcoXG4gICAgICAgICdoZXgnXG4gICAgICApO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZXZlbnRJZDogZXZlbnRJZCxcbiAgICAgICAgdHhJZDogYm94LnRyYW5zYWN0aW9uSWQsXG4gICAgICAgIGJveElkOiBib3guYm94SWQsXG4gICAgICAgIHNlcmlhbGl6ZWQ6IEJ1ZmZlci5mcm9tKHBhcnNlZEJveC5zaWdtYV9zZXJpYWxpemVfYnl0ZXMoKSkudG9TdHJpbmcoXG4gICAgICAgICAgJ2Jhc2U2NCdcbiAgICAgICAgKSxcbiAgICAgICAgdG9DaGFpbjogQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzJdKS50b1N0cmluZygpLFxuICAgICAgICB0b0FkZHJlc3M6IEJ1ZmZlci5mcm9tKFI1U2VyaWFsaXplZFs0XSkudG9TdHJpbmcoKSxcbiAgICAgICAgbmV0d29ya0ZlZTogQmlnSW50KFxuICAgICAgICAgICcweCcgKyBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbN10pLnRvU3RyaW5nKCdoZXgnKVxuICAgICAgICApLnRvU3RyaW5nKDEwKSxcbiAgICAgICAgYnJpZGdlRmVlOiBCaWdJbnQoXG4gICAgICAgICAgJzB4JyArIEJ1ZmZlci5mcm9tKFI1U2VyaWFsaXplZFs2XSkudG9TdHJpbmcoJ2hleCcpXG4gICAgICAgICkudG9TdHJpbmcoMTApLFxuICAgICAgICBhbW91bnQ6IEJpZ0ludChcbiAgICAgICAgICAnMHgnICsgQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzVdKS50b1N0cmluZygnaGV4JylcbiAgICAgICAgKS50b1N0cmluZygxMCksXG4gICAgICAgIHNvdXJjZUNoYWluVG9rZW5JZDogQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzhdKS50b1N0cmluZygpLFxuICAgICAgICB0YXJnZXRDaGFpblRva2VuSWQ6IEJ1ZmZlci5mcm9tKFI1U2VyaWFsaXplZFs5XSkudG9TdHJpbmcoKSxcbiAgICAgICAgc291cmNlVHhJZDogc291cmNlVHhJZCxcbiAgICAgICAgZnJvbUNoYWluOiBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbMV0pLnRvU3RyaW5nKCksXG4gICAgICAgIGZyb21BZGRyZXNzOiBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbM10pLnRvU3RyaW5nKCksXG4gICAgICAgIHNvdXJjZUJsb2NrSWQ6IEJ1ZmZlci5mcm9tKFI1U2VyaWFsaXplZFsxMF0pLnRvU3RyaW5nKCksXG4gICAgICAgIFdJRHNDb3VudDogV0lEc0NvdW50LFxuICAgICAgICBXSURzSGFzaDogV0lEc0hhc2gsXG4gICAgICAgIHNvdXJjZUNoYWluSGVpZ2h0OiBOdW1iZXIoXG4gICAgICAgICAgQmlnSW50KCcweCcgKyBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbMTFdKS50b1N0cmluZygnaGV4JykpLnRvU3RyaW5nKFxuICAgICAgICAgICAgMTBcbiAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oXG4gICAgICAgIGBVbmV4cGVjdGVkIGVycm9yIG9jY3VycmVkIHdoaWxlIGV4dHJhY3RpbmcgdHJpZ2dlciBkYXRhIGZvciBib3ggJHtib3guYm94SWR9OiAke2V9YFxuICAgICAgKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBnZXRzIGJsb2NrIGlkIGFuZCB0cmFuc2FjdGlvbnMgY29ycmVzcG9uZGluZyB0byB0aGUgYmxvY2sgYW5kIHNhdmVzIGlmIHRoZXkgYXJlIHZhbGlkIHJvc2VuXG4gICAqICB0cmFuc2FjdGlvbnMgYW5kIGluIGNhc2Ugb2Ygc3VjY2VzcyByZXR1cm4gdHJ1ZSBhbmQgaW4gY2FzZSBvZiBmYWlsdXJlIHJldHVybnMgZmFsc2VcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSB0eHNcbiAgICovXG4gIHByb2Nlc3NUcmFuc2FjdGlvbnMgPSBhc3luYyAoXG4gICAgdHhzOiBBcnJheTxUcmFuc2FjdGlvbj4sXG4gICAgYmxvY2s6IEJsb2NrSW5mb1xuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYm94ZXM6IEFycmF5PEV4dHJhY3RlZEV2ZW50VHJpZ2dlcj4gPSBbXTtcbiAgICAgIGNvbnN0IHNwZW5kSW5mb0FycmF5OiBBcnJheTxTcGVuZEluZm8+ID0gW107XG4gICAgICB0eHMuZm9yRWFjaCgodHJhbnNhY3Rpb24pID0+IHtcbiAgICAgICAgLy8gZXh0cmFjdCBldmVudCByZXN1bHRcbiAgICAgICAgY29uc3QgeyByZXN1bHQsIHBheW1lbnRUeElkIH0gPSB0aGlzLmV4dHJhY3RFdmVudFJlc3VsdCh0cmFuc2FjdGlvbik7XG4gICAgICAgIGZvciAoY29uc3Qgb3V0cHV0IG9mIHRyYW5zYWN0aW9uLm91dHB1dHMpIHtcbiAgICAgICAgICAvLyBleHRyYWN0IG91dHB1dCBib3ggZGF0YVxuICAgICAgICAgIGlmICh0aGlzLmhhc0RhdGEob3V0cHV0KSkge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgIGBUcnlpbmcgdG8gZXh0cmFjdCBkYXRhIGZyb20gYm94ICR7b3V0cHV0LmJveElkfSBhdCBoZWlnaHQgJHtibG9jay5oZWlnaHR9YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmV4dHJhY3RCb3hEYXRhKG91dHB1dCk7XG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgICAgICBgRXh0cmFjdGVkIGRhdGEgJHtKc29uQkkuc3RyaW5naWZ5KGRhdGEpfSBmcm9tIGJveCAke1xuICAgICAgICAgICAgICAgICAgb3V0cHV0LmJveElkXG4gICAgICAgICAgICAgICAgfWBcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgYm94ZXMucHVzaChkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gcHJvY2VzcyBpbnB1dHNcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRyYW5zYWN0aW9uLmlucHV0cy5sZW5ndGg7IGluZGV4KyspXG4gICAgICAgICAgc3BlbmRJbmZvQXJyYXkucHVzaCh7XG4gICAgICAgICAgICB0eElkOiB0cmFuc2FjdGlvbi5pZCxcbiAgICAgICAgICAgIGJveElkOiB0cmFuc2FjdGlvbi5pbnB1dHNbaW5kZXhdLmJveElkLFxuICAgICAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgZXh0cmFzOiBbcmVzdWx0LCBwYXltZW50VHhJZF0sXG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIGlmIChib3hlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmICghKGF3YWl0IHRoaXMuYWN0aW9ucy5zdG9yZUJveGVzKGJveGVzLCBibG9jaywgdGhpcy5nZXRJZCgpKSkpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKFxuICAgICAgICAgICAgYERhdGEgaW5zZXJ0aW9uIGZhaWxlZCBhdCBoZWlnaHQgJHtibG9jay5oZWlnaHR9IGZvciBleHRyYWN0b3IgJHt0aGlzLmlkfWBcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRyaWdnZXJDYWxsYmFja3MoQ2FsbGJhY2tUeXBlLkluc2VydCwgYm94ZXMpO1xuICAgICAgfVxuICAgICAgY29uc3Qgc3BlbnREYXRhID0gYXdhaXQgdGhpcy5hY3Rpb25zLnNwZW5kQm94ZXMoXG4gICAgICAgIHNwZW5kSW5mb0FycmF5LFxuICAgICAgICBibG9jayxcbiAgICAgICAgdGhpcy5pZFxuICAgICAgKTtcbiAgICAgIHRoaXMudHJpZ2dlckNhbGxiYWNrcyhDYWxsYmFja1R5cGUuU3BlbmQsIHNwZW50RGF0YSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgIGBFcnJvciBpbiBzdG9yaW5nIGRhdGEgaW4gJHt0aGlzLmdldElkKCl9IG9mIHRoZSBibG9jayAke2Jsb2NrfTogJHtlfWBcbiAgICAgICk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBleHRyYWN0cyByZXN1bHQgYW5kIHBheW1lbnRUeElkIGZyb20gYSB0cmFuc2FjdGlvblxuICAgKiByZXR1cm5zICd1bmtub3duJyBhcyByZXN1bHQgd2hlbiB0eCBpcyBuZWl0aGVyIGZyYXVkIG9yIHN1Y2Nlc3NmdWxcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcm90ZWN0ZWQgZXh0cmFjdEV2ZW50UmVzdWx0ID0gKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4ge1xuICAgIGxldCByZXN1bHQgPSBFdmVudFJlc3VsdC51bmtub3duO1xuICAgIGxldCBwYXltZW50VHhJZCA9ICcnO1xuICAgIGlmICh0cmFuc2FjdGlvbi5vdXRwdXRzWzBdLmVyZ29UcmVlID09PSB0aGlzLmZyYXVkRXJnb1RyZWUpXG4gICAgICByZXN1bHQgPSBFdmVudFJlc3VsdC5mcmF1ZDtcbiAgICBlbHNlIGlmICh0cmFuc2FjdGlvbi5vdXRwdXRzWzBdLmVyZ29UcmVlID09PSB0aGlzLnBlcm1pdEVyZ29UcmVlKSB7XG4gICAgICByZXN1bHQgPSBFdmVudFJlc3VsdC5zdWNjZXNzZnVsO1xuICAgICAgLy8gZmluZCBmaXJzdCBub24td2F0Y2hlciBib3ggd2l0aCBSNCB2YWx1ZVxuICAgICAgZm9yIChjb25zdCBib3ggb2YgdHJhbnNhY3Rpb24ub3V0cHV0cykge1xuICAgICAgICAvLyBpZiBpdCdzIHdhdGNoZXIgYm94LCBza2lwIGl0XG4gICAgICAgIGlmIChib3guZXJnb1RyZWUgPT09IHRoaXMucGVybWl0RXJnb1RyZWUpIGNvbnRpbnVlO1xuICAgICAgICBjb25zdCBvdXRwdXRQYXJzZWQgPSB3YXNtLkVyZ29Cb3guZnJvbV9qc29uKEpzb25CSS5zdHJpbmdpZnkoYm94KSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgUjRTZXJpYWxpemVkID0gb3V0cHV0UGFyc2VkXG4gICAgICAgICAgICAucmVnaXN0ZXJfdmFsdWUod2FzbS5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI0KVxuICAgICAgICAgICAgPy50b19ieXRlX2FycmF5KCk7XG4gICAgICAgICAgaWYgKFI0U2VyaWFsaXplZCAhPT0gdW5kZWZpbmVkICYmIFI0U2VyaWFsaXplZC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBsZXQgdHhJZCA9IEJ1ZmZlci5mcm9tKFI0U2VyaWFsaXplZCkudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIC8vIHdlIGFzc3VtZWQgdHhJZCBvbmx5IGluY2x1ZGVzIHRoZXNlIGNoYXJhY3RlcnNcbiAgICAgICAgICAgIGlmICghdHhJZC5tYXRjaCgvXlswLTlhLXpBLVpcXC1fLl0rJC8pKSB7XG4gICAgICAgICAgICAgIC8vIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAgICAgICAgICAgICAgdHhJZCA9IEJ1ZmZlci5mcm9tKFI0U2VyaWFsaXplZCkudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGF5bWVudFR4SWQgPSB0eElkO1xuICAgICAgICAgICAgaWYgKHR4SWQgPT09ICcnKSB7XG4gICAgICAgICAgICAgIHBheW1lbnRUeElkID0gdHJhbnNhY3Rpb24uaWQ7XG4gICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgICAgIGBzdWNjZXNzZnVsIGV2ZW50IGlzIHNwZW50LiB0eCBbJHt0cmFuc2FjdGlvbi5pZH1dIGlzIGJvdGggcGF5bWVudCBhbmQgcmV3YXJkIGRpc3RyaWJ1dGlvbiB0eGBcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHBheW1lbnRUeElkIGlzIGV4dHJhY3RlZC4gbm8gbmVlZCB0byBwcm9jZXNzIG5leHQgYm94ZXNcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICByZXN1bHQsXG4gICAgICBwYXltZW50VHhJZCxcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBFdmVudFRyaWdnZXJFeHRyYWN0b3I7XG4iXX0=
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRUcmlnZ2VyRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2V4dHJhY3Rvci9FdmVudFRyaWdnZXJFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLElBQUksTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWxDLE9BQU8sRUFDTCxrQ0FBa0MsRUFDbEMsWUFBWSxHQUViLE1BQU0sa0NBQWtDLENBQUM7QUFRMUMsT0FBTyxrQkFBa0IsTUFBTSwrQkFBK0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHdkMsTUFBTSxxQkFBc0IsU0FBUSxrQ0FHbkM7SUFDQyxFQUFFLENBQVM7SUFDUSxPQUFPLENBQXFCO0lBQzlCLG9CQUFvQixDQUFTO0lBQzdCLGNBQWMsQ0FBUztJQUN2QixhQUFhLENBQVM7SUFDdEIsR0FBRyxDQUFTO0lBRTdCLFlBQ0UsRUFBVSxFQUNWLFVBQXNCLEVBQ3RCLElBQXFCLEVBQ3JCLEdBQVcsRUFDWCxPQUFlLEVBQ2YsR0FBVyxFQUNYLGFBQXFCLEVBQ3JCLFlBQW9CLEVBQ3BCLE1BQXVCLEVBQ3ZCLFVBQVUsR0FBRyxJQUFJO1FBRWpCLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO2FBQzFELFlBQVksRUFBRTthQUNkLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8s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LENBQUMsRUFBRSxDQUFDOzRCQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZixrQ0FBa0MsV0FBVyxDQUFDLEVBQUUsOENBQThDLENBQy9GLENBQUM7eUJBQ0g7d0JBQ0QsMERBQTBEO3dCQUMxRCxNQUFNO3FCQUNQO2lCQUNGO2dCQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUNWLFNBQVM7aUJBQ1Y7YUFDRjtTQUNGO1FBQ0QsT0FBTztZQUNMLE1BQU07WUFDTixXQUFXO1NBQ1osQ0FBQztJQUNKLENBQUMsQ0FBQztDQUNIO0FBRUQsZUFBZSxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICd0eXBlb3JtJztcbmltcG9ydCAqIGFzIHdhc20gZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuaW1wb3J0IHsgYmxha2UyYiB9IGZyb20gJ2JsYWtlanMnO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQge1xuICBBYnN0cmFjdEluaXRpYWxpemFibGVFcmdvRXh0cmFjdG9yLFxuICBDYWxsYmFja1R5cGUsXG4gIFNwZW5kSW5mbyxcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1leHRyYWN0b3InO1xuaW1wb3J0IHtcbiAgQmxvY2tJbmZvLFxuICBFcmdvTmV0d29ya1R5cGUsXG4gIE91dHB1dEJveCxcbiAgVHJhbnNhY3Rpb24sXG59IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcblxuaW1wb3J0IEV2ZW50VHJpZ2dlckFjdGlvbiBmcm9tICcuLi9hY3Rpb25zL0V2ZW50VHJpZ2dlckFjdGlvbic7XG5pbXBvcnQgeyBFeHRyYWN0ZWRFdmVudFRyaWdnZXIgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2V4dHJhY3RlZEV2ZW50VHJpZ2dlcic7XG5pbXBvcnQgeyBKc29uQkkgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBFdmVudFJlc3VsdCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCBFdmVudFRyaWdnZXJFbnRpdHkgZnJvbSAnLi4vZW50aXRpZXMvRXZlbnRUcmlnZ2VyRW50aXR5JztcblxuY2xhc3MgRXZlbnRUcmlnZ2VyRXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RJbml0aWFsaXphYmxlRXJnb0V4dHJhY3RvcjxcbiAgRXh0cmFjdGVkRXZlbnRUcmlnZ2VyLFxuICBFdmVudFRyaWdnZXJFbnRpdHlcbj4ge1xuICBpZDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWN0aW9uczogRXZlbnRUcmlnZ2VyQWN0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50VHJpZ2dlckVyZ29UcmVlOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGVybWl0RXJnb1RyZWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBmcmF1ZEVyZ29UcmVlOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgUldUOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaWQ6IHN0cmluZyxcbiAgICBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIHR5cGU6IEVyZ29OZXR3b3JrVHlwZSxcbiAgICB1cmw6IHN0cmluZyxcbiAgICBhZGRyZXNzOiBzdHJpbmcsXG4gICAgUldUOiBzdHJpbmcsXG4gICAgcGVybWl0QWRkcmVzczogc3RyaW5nLFxuICAgIGZyYXVkQWRkcmVzczogc3RyaW5nLFxuICAgIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyLFxuICAgIGluaXRpYWxpemUgPSB0cnVlXG4gICkge1xuICAgIHN1cGVyKHR5cGUsIHVybCwgYWRkcmVzcywgbG9nZ2VyLCBpbml0aWFsaXplKTtcbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgdGhpcy5ldmVudFRyaWdnZXJFcmdvVHJlZSA9IHdhc20uQWRkcmVzcy5mcm9tX2Jhc2U1OChhZGRyZXNzKVxuICAgICAgLnRvX2VyZ29fdHJlZSgpXG4gICAgICAudG9fYmFzZTE2X2J5dGVzKCk7XG4gICAgdGhpcy5wZXJtaXRFcmdvVHJlZSA9IHdhc20uQWRkcmVzcy5mcm9tX2Jhc2U1OChwZXJtaXRBZGRyZXNzKVxuICAgICAgLnRvX2VyZ29fdHJlZSgpXG4gICAgICAudG9fYmFzZTE2X2J5dGVzKCk7XG4gICAgdGhpcy5mcmF1ZEVyZ29UcmVlID0gd2FzbS5BZGRyZXNzLmZyb21fYmFzZTU4KGZyYXVkQWRkcmVzcylcbiAgICAgIC50b19lcmdvX3RyZWUoKVxuICAgICAgLnRvX2Jhc2UxNl9ieXRlcygpO1xuICAgIHRoaXMuUldUID0gUldUO1xuICAgIHRoaXMuYWN0aW9ucyA9IG5ldyBFdmVudFRyaWdnZXJBY3Rpb24oZGF0YVNvdXJjZSwgdGhpcy5sb2dnZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBJZCBmb3IgY3VycmVudCBleHRyYWN0b3JcbiAgICovXG4gIGdldElkID0gKCkgPT4gdGhpcy5pZDtcblxuICAvKipcbiAgICogY2hlY2sgcHJvcGVyIGRhdGEgZm9ybWF0IGluIHRoZSBib3hcbiAgICogIC0gYm94IGVyZ29UcmVlXG4gICAqICAtIFJXVCBpbiBmaXJzdCB0b2tlbiBwbGFjZVxuICAgKiAgLSB3aWRMaXN0SGFzaCBpbiBSNFxuICAgKiAgLSBldmVudCBkYXRhIGluIFI1XG4gICAqICAtIHdpZENvdW50IGluIFI3XG4gICAqIEBwYXJhbSBib3hcbiAgICogQHJldHVybiB0cnVlIGlmIHRoZSBib3ggaGFzIHRoZSByZXF1aXJlZCBkYXRhIGFuZCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIGhhc0RhdGEgPSAoYm94OiBPdXRwdXRCb3gpOiBib29sZWFuID0+IHtcbiAgICB0cnkge1xuICAgICAgaWYgKFxuICAgICAgICBib3guYWRkaXRpb25hbFJlZ2lzdGVycyAmJlxuICAgICAgICBib3guYWRkaXRpb25hbFJlZ2lzdGVycy5SNCAmJlxuICAgICAgICBib3guYWRkaXRpb25hbFJlZ2lzdGVycy5SNSAmJlxuICAgICAgICBib3guYWRkaXRpb25hbFJlZ2lzdGVycy5SNyAmJlxuICAgICAgICBib3guYXNzZXRzICYmXG4gICAgICAgIGJveC5hc3NldHMubGVuZ3RoID4gMCAmJlxuICAgICAgICBib3guYXNzZXRzWzBdLnRva2VuSWQgPT09IHRoaXMuUldUICYmXG4gICAgICAgIGJveC5lcmdvVHJlZSA9PT0gdGhpcy5ldmVudFRyaWdnZXJFcmdvVHJlZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZEJveCA9IHdhc20uRXJnb0JveC5mcm9tX2pzb24oSnNvbkJJLnN0cmluZ2lmeShib3gpKTtcbiAgICAgICAgY29uc3QgUjRTZXJpYWxpemVkID0gcGFyc2VkQm94XG4gICAgICAgICAgLnJlZ2lzdGVyX3ZhbHVlKHdhc20uTm9uTWFuZGF0b3J5UmVnaXN0ZXJJZC5SNCkhXG4gICAgICAgICAgLnRvX2J5dGVfYXJyYXkoKTtcbiAgICAgICAgY29uc3QgUjVTZXJpYWxpemVkID0gcGFyc2VkQm94XG4gICAgICAgICAgLnJlZ2lzdGVyX3ZhbHVlKHdhc20uTm9uTWFuZGF0b3J5UmVnaXN0ZXJJZC5SNSkhXG4gICAgICAgICAgLnRvX2NvbGxfY29sbF9ieXRlKCk7XG4gICAgICAgIGlmIChSNFNlcmlhbGl6ZWQubGVuZ3RoID49IDEgJiYgUjVTZXJpYWxpemVkLmxlbmd0aCA+PSAxMikgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgYFVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQgd2hpbGUgY2hlY2tpbmcgdGhlIHByb3BlciB0cmlnZ2VyIGRhdGEgZm9ybWF0IGZvciBib3ggJHtib3guYm94SWR9OiAke2V9YFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBleHRyYWN0IGJveCBkYXRhIHRvIHByb3BlciBmb3JtYXQgKG5vdCBpbmNsdWRpbmcgc3BlbmRpbmcgaW5mb3JtYXRpb24pXG4gICAqIEBwYXJhbSBib3hcbiAgICogQHJldHVybiBleHRyYWN0ZWQgZGF0YSBpbiBwcm9wZXIgZm9ybWF0XG4gICAqL1xuICBleHRyYWN0Qm94RGF0YSA9IChcbiAgICBib3g6IE91dHB1dEJveFxuICApOiBPbWl0PEV4dHJhY3RlZEV2ZW50VHJpZ2dlciwgJ3NwZW5kQmxvY2snIHwgJ3NwZW5kSGVpZ2h0Jz4gfCB1bmRlZmluZWQgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXJzZWRCb3ggPSB3YXNtLkVyZ29Cb3guZnJvbV9qc29uKEpzb25CSS5zdHJpbmdpZnkoYm94KSk7XG4gICAgICBjb25zdCBSNFNlcmlhbGl6ZWQgPSBwYXJzZWRCb3hcbiAgICAgICAgLnJlZ2lzdGVyX3ZhbHVlKHdhc20uTm9uTWFuZGF0b3J5UmVnaXN0ZXJJZC5SNCkhXG4gICAgICAgIC50b19ieXRlX2FycmF5KCk7XG4gICAgICBjb25zdCBSNVNlcmlhbGl6ZWQgPSBwYXJzZWRCb3hcbiAgICAgICAgLnJlZ2lzdGVyX3ZhbHVlKHdhc20uTm9uTWFuZGF0b3J5UmVnaXN0ZXJJZC5SNSkhXG4gICAgICAgIC50b19jb2xsX2NvbGxfYnl0ZSgpO1xuXG4gICAgICBjb25zdCBXSURzQ291bnQgPSBwYXJzZWRCb3hcbiAgICAgICAgLnJlZ2lzdGVyX3ZhbHVlKHdhc20uTm9uTWFuZGF0b3J5UmVnaXN0ZXJJZC5SNykhXG4gICAgICAgIC50b19pMzIoKTtcbiAgICAgIGNvbnN0IFdJRHNIYXNoID0gQnVmZmVyLmZyb20oUjRTZXJpYWxpemVkKS50b1N0cmluZygnaGV4Jyk7XG4gICAgICBjb25zdCBzb3VyY2VUeElkID0gQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzBdKS50b1N0cmluZygpO1xuICAgICAgY29uc3QgZXZlbnRJZCA9IEJ1ZmZlci5mcm9tKGJsYWtlMmIoc291cmNlVHhJZCwgdW5kZWZpbmVkLCAzMikpLnRvU3RyaW5nKFxuICAgICAgICAnaGV4J1xuICAgICAgKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGV2ZW50SWQ6IGV2ZW50SWQsXG4gICAgICAgIHR4SWQ6IGJveC50cmFuc2FjdGlvbklkLFxuICAgICAgICBib3hJZDogYm94LmJveElkLFxuICAgICAgICBzZXJpYWxpemVkOiBCdWZmZXIuZnJvbShwYXJzZWRCb3guc2lnbWFfc2VyaWFsaXplX2J5dGVzKCkpLnRvU3RyaW5nKFxuICAgICAgICAgICdiYXNlNjQnXG4gICAgICAgICksXG4gICAgICAgIHRvQ2hhaW46IEJ1ZmZlci5mcm9tKFI1U2VyaWFsaXplZFsyXSkudG9TdHJpbmcoKSxcbiAgICAgICAgdG9BZGRyZXNzOiBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbNF0pLnRvU3RyaW5nKCksXG4gICAgICAgIG5ldHdvcmtGZWU6IEJpZ0ludChcbiAgICAgICAgICAnMHgnICsgQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzddKS50b1N0cmluZygnaGV4JylcbiAgICAgICAgKS50b1N0cmluZygxMCksXG4gICAgICAgIGJyaWRnZUZlZTogQmlnSW50KFxuICAgICAgICAgICcweCcgKyBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbNl0pLnRvU3RyaW5nKCdoZXgnKVxuICAgICAgICApLnRvU3RyaW5nKDEwKSxcbiAgICAgICAgYW1vdW50OiBCaWdJbnQoXG4gICAgICAgICAgJzB4JyArIEJ1ZmZlci5mcm9tKFI1U2VyaWFsaXplZFs1XSkudG9TdHJpbmcoJ2hleCcpXG4gICAgICAgICkudG9TdHJpbmcoMTApLFxuICAgICAgICBzb3VyY2VDaGFpblRva2VuSWQ6IEJ1ZmZlci5mcm9tKFI1U2VyaWFsaXplZFs4XSkudG9TdHJpbmcoKSxcbiAgICAgICAgdGFyZ2V0Q2hhaW5Ub2tlbklkOiBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbOV0pLnRvU3RyaW5nKCksXG4gICAgICAgIHNvdXJjZVR4SWQ6IHNvdXJjZVR4SWQsXG4gICAgICAgIGZyb21DaGFpbjogQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzFdKS50b1N0cmluZygpLFxuICAgICAgICBmcm9tQWRkcmVzczogQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzNdKS50b1N0cmluZygpLFxuICAgICAgICBzb3VyY2VCbG9ja0lkOiBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbMTBdKS50b1N0cmluZygpLFxuICAgICAgICBXSURzQ291bnQ6IFdJRHNDb3VudCxcbiAgICAgICAgV0lEc0hhc2g6IFdJRHNIYXNoLFxuICAgICAgICBzb3VyY2VDaGFpbkhlaWdodDogTnVtYmVyKFxuICAgICAgICAgIEJpZ0ludCgnMHgnICsgQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzExXSkudG9TdHJpbmcoJ2hleCcpKS50b1N0cmluZyhcbiAgICAgICAgICAgIDEwXG4gICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKFxuICAgICAgICBgVW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZCB3aGlsZSBleHRyYWN0aW5nIHRyaWdnZXIgZGF0YSBmb3IgYm94ICR7Ym94LmJveElkfTogJHtlfWBcbiAgICAgICk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogZ2V0cyBibG9jayBpZCBhbmQgdHJhbnNhY3Rpb25zIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGJsb2NrIGFuZCBzYXZlcyBpZiB0aGV5IGFyZSB2YWxpZCByb3NlblxuICAgKiAgdHJhbnNhY3Rpb25zIGFuZCBpbiBjYXNlIG9mIHN1Y2Nlc3MgcmV0dXJuIHRydWUgYW5kIGluIGNhc2Ugb2YgZmFpbHVyZSByZXR1cm5zIGZhbHNlXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gdHhzXG4gICAqL1xuICBwcm9jZXNzVHJhbnNhY3Rpb25zID0gYXN5bmMgKFxuICAgIHR4czogQXJyYXk8VHJhbnNhY3Rpb24+LFxuICAgIGJsb2NrOiBCbG9ja0luZm9cbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJveGVzOiBBcnJheTxFeHRyYWN0ZWRFdmVudFRyaWdnZXI+ID0gW107XG4gICAgICBjb25zdCBzcGVuZEluZm9BcnJheTogQXJyYXk8U3BlbmRJbmZvPiA9IFtdO1xuICAgICAgdHhzLmZvckVhY2goKHRyYW5zYWN0aW9uKSA9PiB7XG4gICAgICAgIC8vIGV4dHJhY3QgZXZlbnQgcmVzdWx0XG4gICAgICAgIGNvbnN0IHsgcmVzdWx0LCBwYXltZW50VHhJZCB9ID0gdGhpcy5leHRyYWN0RXZlbnRSZXN1bHQodHJhbnNhY3Rpb24pO1xuICAgICAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiB0cmFuc2FjdGlvbi5vdXRwdXRzKSB7XG4gICAgICAgICAgLy8gZXh0cmFjdCBvdXRwdXQgYm94IGRhdGFcbiAgICAgICAgICBpZiAodGhpcy5oYXNEYXRhKG91dHB1dCkpIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgICBgVHJ5aW5nIHRvIGV4dHJhY3QgZGF0YSBmcm9tIGJveCAke291dHB1dC5ib3hJZH0gYXQgaGVpZ2h0ICR7YmxvY2suaGVpZ2h0fWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5leHRyYWN0Qm94RGF0YShvdXRwdXQpO1xuICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgICAgYEV4dHJhY3RlZCBkYXRhICR7SnNvbkJJLnN0cmluZ2lmeShkYXRhKX0gZnJvbSBib3ggJHtcbiAgICAgICAgICAgICAgICAgIG91dHB1dC5ib3hJZFxuICAgICAgICAgICAgICAgIH1gXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGJveGVzLnB1c2goZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIHByb2Nlc3MgaW5wdXRzXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0cmFuc2FjdGlvbi5pbnB1dHMubGVuZ3RoOyBpbmRleCsrKVxuICAgICAgICAgIHNwZW5kSW5mb0FycmF5LnB1c2goe1xuICAgICAgICAgICAgdHhJZDogdHJhbnNhY3Rpb24uaWQsXG4gICAgICAgICAgICBib3hJZDogdHJhbnNhY3Rpb24uaW5wdXRzW2luZGV4XS5ib3hJZCxcbiAgICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICAgIGV4dHJhczogeyByZXN1bHQsIHBheW1lbnRUeElkIH0sXG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIGlmIChib3hlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmICghKGF3YWl0IHRoaXMuYWN0aW9ucy5zdG9yZUJveGVzKGJveGVzLCBibG9jaywgdGhpcy5nZXRJZCgpKSkpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKFxuICAgICAgICAgICAgYERhdGEgaW5zZXJ0aW9uIGZhaWxlZCBhdCBoZWlnaHQgJHtibG9jay5oZWlnaHR9IGZvciBleHRyYWN0b3IgJHt0aGlzLmlkfWBcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRyaWdnZXJDYWxsYmFja3MoQ2FsbGJhY2tUeXBlLkluc2VydCwgYm94ZXMpO1xuICAgICAgfVxuICAgICAgY29uc3Qgc3BlbnREYXRhID0gYXdhaXQgdGhpcy5hY3Rpb25zLnNwZW5kQm94ZXMoXG4gICAgICAgIHNwZW5kSW5mb0FycmF5LFxuICAgICAgICBibG9jayxcbiAgICAgICAgdGhpcy5pZFxuICAgICAgKTtcbiAgICAgIHRoaXMudHJpZ2dlckNhbGxiYWNrcyhDYWxsYmFja1R5cGUuU3BlbmQsIHNwZW50RGF0YSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgIGBFcnJvciBpbiBzdG9yaW5nIGRhdGEgaW4gJHt0aGlzLmdldElkKCl9IG9mIHRoZSBibG9jayAke2Jsb2NrfTogJHtlfWBcbiAgICAgICk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBleHRyYWN0cyByZXN1bHQgYW5kIHBheW1lbnRUeElkIGZyb20gYSB0cmFuc2FjdGlvblxuICAgKiByZXR1cm5zICd1bmtub3duJyBhcyByZXN1bHQgd2hlbiB0eCBpcyBuZWl0aGVyIGZyYXVkIG9yIHN1Y2Nlc3NmdWxcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcm90ZWN0ZWQgZXh0cmFjdEV2ZW50UmVzdWx0ID0gKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4ge1xuICAgIGxldCByZXN1bHQgPSBFdmVudFJlc3VsdC51bmtub3duO1xuICAgIGxldCBwYXltZW50VHhJZCA9ICcnO1xuICAgIGlmICh0cmFuc2FjdGlvbi5vdXRwdXRzWzBdLmVyZ29UcmVlID09PSB0aGlzLmZyYXVkRXJnb1RyZWUpXG4gICAgICByZXN1bHQgPSBFdmVudFJlc3VsdC5mcmF1ZDtcbiAgICBlbHNlIGlmICh0cmFuc2FjdGlvbi5vdXRwdXRzWzBdLmVyZ29UcmVlID09PSB0aGlzLnBlcm1pdEVyZ29UcmVlKSB7XG4gICAgICByZXN1bHQgPSBFdmVudFJlc3VsdC5zdWNjZXNzZnVsO1xuICAgICAgLy8gZmluZCBmaXJzdCBub24td2F0Y2hlciBib3ggd2l0aCBSNCB2YWx1ZVxuICAgICAgZm9yIChjb25zdCBib3ggb2YgdHJhbnNhY3Rpb24ub3V0cHV0cykge1xuICAgICAgICAvLyBpZiBpdCdzIHdhdGNoZXIgYm94LCBza2lwIGl0XG4gICAgICAgIGlmIChib3guZXJnb1RyZWUgPT09IHRoaXMucGVybWl0RXJnb1RyZWUpIGNvbnRpbnVlO1xuICAgICAgICBjb25zdCBvdXRwdXRQYXJzZWQgPSB3YXNtLkVyZ29Cb3guZnJvbV9qc29uKEpzb25CSS5zdHJpbmdpZnkoYm94KSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgUjRTZXJpYWxpemVkID0gb3V0cHV0UGFyc2VkXG4gICAgICAgICAgICAucmVnaXN0ZXJfdmFsdWUod2FzbS5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI0KVxuICAgICAgICAgICAgPy50b19ieXRlX2FycmF5KCk7XG4gICAgICAgICAgaWYgKFI0U2VyaWFsaXplZCAhPT0gdW5kZWZpbmVkICYmIFI0U2VyaWFsaXplZC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBsZXQgdHhJZCA9IEJ1ZmZlci5mcm9tKFI0U2VyaWFsaXplZCkudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIC8vIHdlIGFzc3VtZWQgdHhJZCBvbmx5IGluY2x1ZGVzIHRoZXNlIGNoYXJhY3RlcnNcbiAgICAgICAgICAgIGlmICghdHhJZC5tYXRjaCgvXlswLTlhLXpBLVpcXC1fLl0rJC8pKSB7XG4gICAgICAgICAgICAgIC8vIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAgICAgICAgICAgICAgdHhJZCA9IEJ1ZmZlci5mcm9tKFI0U2VyaWFsaXplZCkudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGF5bWVudFR4SWQgPSB0eElkO1xuICAgICAgICAgICAgaWYgKHR4SWQgPT09ICcnKSB7XG4gICAgICAgICAgICAgIHBheW1lbnRUeElkID0gdHJhbnNhY3Rpb24uaWQ7XG4gICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgICAgIGBzdWNjZXNzZnVsIGV2ZW50IGlzIHNwZW50LiB0eCBbJHt0cmFuc2FjdGlvbi5pZH1dIGlzIGJvdGggcGF5bWVudCBhbmQgcmV3YXJkIGRpc3RyaWJ1dGlvbiB0eGBcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHBheW1lbnRUeElkIGlzIGV4dHJhY3RlZC4gbm8gbmVlZCB0byBwcm9jZXNzIG5leHQgYm94ZXNcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICByZXN1bHQsXG4gICAgICBwYXltZW50VHhJZCxcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBFdmVudFRyaWdnZXJFeHRyYWN0b3I7XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
2
- import { InitialInfo, Transaction } from '@rosen-bridge/scanner';
3
2
  import { DataSource } from 'typeorm';
4
- import { AbstractExtractor, Block } from '@rosen-bridge/abstract-extractor';
3
+ import { Block, BlockInfo, Transaction } from '@rosen-bridge/scanner-interfaces';
4
+ import { AbstractExtractor } from '@rosen-bridge/abstract-extractor';
5
5
  import CollateralAction from '../actions/collateralAction';
6
6
  export declare class CollateralExtractor extends AbstractExtractor<Transaction> {
7
7
  private readonly id;
@@ -53,7 +53,7 @@ export declare class CollateralExtractor extends AbstractExtractor<Transaction>
53
53
  * @return {Promise<void>}
54
54
  * @memberof CollateralExtractor
55
55
  */
56
- initializeBoxes: (initialBlock: InitialInfo) => Promise<void>;
56
+ initializeBoxes: (initialBlock: BlockInfo) => Promise<void>;
57
57
  /**
58
58
  * removes or updates stored collateral boxes before initializing boxes
59
59
  *
@@ -1 +1 @@
1
- {"version":3,"file":"collateralExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/collateralExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAa,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAG5E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE5E,OAAO,gBAAgB,MAAM,6BAA6B,CAAC;AAM3D,qBAAa,mBAAoB,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IAMnE,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,OAAO,CAAC,WAAW,CAAC;gBAGD,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,EACvC,WAAW,EAAE,MAAM,EACF,MAAM,GAAE,cAAkC;IAU7D;;;;OAIG;IACH,KAAK,QAAO,MAAM,CAAY;IAE9B;;;;;;;OAOG;IACH,mBAAmB,QACZ,WAAW,EAAE,SACX,KAAK,KACX,QAAQ,OAAO,CAAC,CAoCjB;IAEF;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe,CAOrB;IAEF;;;;;;;OAOG;IACH,SAAS,SAAgB,MAAM,KAAG,QAAQ,IAAI,CAAC,CAE7C;IAEF;;;;;;OAMG;IACH,eAAe,iBAAwB,WAAW,KAAG,QAAQ,IAAI,CAAC,CAmChE;IAEF;;;;;;;;OAQG;YACW,uBAAuB;IAkDrC;;;;;;;OAOG;IACH,OAAO,CAAC,wBAAwB,CAiC9B;IAEF;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB,CAgD3B;CACH"}
1
+ {"version":3,"file":"collateralExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/collateralExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAG5E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EACL,KAAK,EACL,SAAS,EAET,WAAW,EACZ,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,gBAAgB,MAAM,6BAA6B,CAAC;AAM3D,qBAAa,mBAAoB,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IAMnE,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,OAAO,CAAC,WAAW,CAAC;gBAGD,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,EACvC,WAAW,EAAE,MAAM,EACF,MAAM,GAAE,cAAkC;IAU7D;;;;OAIG;IACH,KAAK,QAAO,MAAM,CAAY;IAE9B;;;;;;;OAOG;IACH,mBAAmB,QACZ,WAAW,EAAE,SACX,KAAK,KACX,QAAQ,OAAO,CAAC,CAoCjB;IAEF;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe,CAOrB;IAEF;;;;;;;OAOG;IACH,SAAS,SAAgB,MAAM,KAAG,QAAQ,IAAI,CAAC,CAE7C;IAEF;;;;;;OAMG;IACH,eAAe,iBAAwB,SAAS,KAAG,QAAQ,IAAI,CAAC,CAmC9D;IAEF;;;;;;;;OAQG;YACW,uBAAuB;IAkDrC;;;;;;;OAOG;IACH,OAAO,CAAC,wBAAwB,CAiC9B;IAEF;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB,CAgD3B;CACH"}
@@ -233,4 +233,4 @@ export class CollateralExtractor extends AbstractExtractor {
233
233
  };
234
234
  };
235
235
  }
236
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGF0ZXJhbEV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9leHRyYWN0b3IvY29sbGF0ZXJhbEV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTVFLE9BQU8seUJBQWlDLE1BQU0sOEJBQThCLENBQUM7QUFDN0UsT0FBTyxLQUFLLE9BQU8sTUFBTSxzQkFBc0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQVMsTUFBTSxrQ0FBa0MsQ0FBQztBQUU1RSxPQUFPLGdCQUFnQixNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHbkQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGlCQUE4QjtJQU1sRDtJQUNBO0lBQ0E7SUFDQTtJQUVBO0lBVkYsUUFBUSxDQUFTO0lBQ3pCLE1BQU0sQ0FBbUI7SUFDMUIsV0FBVyxDQUFDO0lBRXBCLFlBQ21CLEVBQVUsRUFDVixNQUFjLEVBQ2QsT0FBZSxFQUNmLFVBQXNCLEVBQ3ZDLFdBQW1CLEVBQ0YsU0FBeUIsSUFBSSxXQUFXLEVBQUU7UUFFM0QsS0FBSyxFQUFFLENBQUM7UUFQUyxPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ1YsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRXRCLFdBQU0sR0FBTixNQUFNLENBQW9DO1FBRzNELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUN0RCxZQUFZLEVBQUU7YUFDZCxlQUFlLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMs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QUUsR0FBRyxhQUFhO2FBQ3JCLGNBQWMsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDO1lBQ2xELEVBQUUsTUFBTSxFQUFFO2FBQ1QsTUFBTSxFQUFFLENBQUM7UUFFWixJQUFJLEVBQUUsSUFBSSxTQUFTLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2QsOEJBQThCLEdBQUcsQ0FBQyxLQUFLLDhCQUE4QixDQUN0RSxDQUFDO1lBQ0YsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFDRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsdUJBQXVCLFFBQVEsOEJBQThCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FDMUUsQ0FBQztRQUVGLE9BQU87WUFDTCxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7WUFDaEIsYUFBYSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQ3hCLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUN0QyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDcEIsR0FBRyxFQUFFLEdBQUc7WUFDUixRQUFRLEVBQUUsUUFBUTtZQUNsQixJQUFJLEVBQUUsR0FBRyxDQUFDLGFBQWE7WUFDdkIsS0FBSyxFQUFFLE9BQU87WUFDZCxNQUFNLEVBQUUsV0FBVztTQUNwQixDQUFDO0lBQ0osQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdExvZ2dlciwgRHVtbXlMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBJbml0aWFsSW5mbywgT3V0cHV0Qm94LCBUcmFuc2FjdGlvbiB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lcic7XG5pbXBvcnQgZXJnb0V4cGxvcmVyQ2xpZW50RmFjdG9yeSwgeyBWMSB9IGZyb20gJ0Byb3Nlbi1jbGllbnRzL2VyZ28tZXhwbG9yZXInO1xuaW1wb3J0ICogYXMgZXJnb0xpYiBmcm9tICdlcmdvLWxpYi13YXNtLW5vZGVqcyc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgeyBBYnN0cmFjdEV4dHJhY3RvciwgQmxvY2sgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWV4dHJhY3Rvcic7XG5cbmltcG9ydCBDb2xsYXRlcmFsQWN0aW9uIGZyb20gJy4uL2FjdGlvbnMvY29sbGF0ZXJhbEFjdGlvbic7XG5pbXBvcnQgeyBEZWZhdWx0QXBpTGltaXQgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRXh0cmFjdGVkQ29sbGF0ZXJhbCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZXh0cmFjdGVkQ29sbGF0ZXJhbCc7XG5pbXBvcnQgeyBKc29uQkksIHVpbnQ4QXJyYXlUb0hleCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IFNwZW5kSW5mbyB9IGZyb20gJy4uL2ludGVyZmFjZXMvdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgQ29sbGF0ZXJhbEV4dHJhY3RvciBleHRlbmRzIEFic3RyYWN0RXh0cmFjdG9yPFRyYW5zYWN0aW9uPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXJnb1RyZWU6IHN0cmluZztcbiAgcmVhZG9ubHkgYWN0aW9uOiBDb2xsYXRlcmFsQWN0aW9uO1xuICBwcml2YXRlIGV4cGxvcmVyQXBpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaWQ6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGF3Y05mdDogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWRkcmVzczogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGF0YVNvdXJjZTogRGF0YVNvdXJjZSxcbiAgICBleHBsb3JlclVybDogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlciA9IG5ldyBEdW1teUxvZ2dlcigpXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5lcmdvVHJlZSA9IGVyZ29MaWIuQWRkcmVzcy5mcm9tX2Jhc2U1OCh0aGlzLmFkZHJlc3MpXG4gICAgICAudG9fZXJnb190cmVlKClcbiAgICAgIC50b19iYXNlMTZfYnl0ZXMoKTtcbiAgICB0aGlzLmFjdGlvbiA9IG5ldyBDb2xsYXRlcmFsQWN0aW9uKHRoaXMuZGF0YVNvdXJjZSwgdGhpcy5sb2dnZXIpO1xuICAgIHRoaXMuZXhwbG9yZXJBcGkgPSBlcmdvRXhwbG9yZXJDbGllbnRGYWN0b3J5KGV4cGxvcmVyVXJsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgaWQgZm9yIGV4dHJhY3Rvci4gVGhpcyBpZCBtdXN0IGJlIHVuaXF1ZSBvdmVyIGFsbCBleHRyYWN0b3JzLlxuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICBnZXRJZCA9ICgpOiBzdHJpbmcgPT4gdGhpcy5pZDtcblxuICAvKipcbiAgICogcHJvY2VzcyBhIGxpc3Qgb2YgdHJhbnNhY3Rpb25zIGFuZCBzdG9yZSBjb2xsYXRlcmFsIGJveCBkZXRhaWxzXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25bXX0gdHhzIGxpc3Qgb2YgdHJhbnNhY3Rpb24gZm9yIGJsb2NrXG4gICAqIEBwYXJhbSB7QmxvY2t9IGJsb2NrIGJsb2NrIGlkIGZvciB0cmFuc2FjdGlvbnMgYXMgaGV4IGVuY29kZWRcbiAgICogQHJldHVybiB7UHJvbWlzZTxib29sZWFuPn0gUHJvbWlzZTxib29sZWFuPiBpZiBubyBlcnJvciBvY2N1cnJlZCByZXR1cm5cbiAgICogdHJ1ZS4gb3RoZXJ3aXNlLCByZXR1cm4gZmFsc2VcbiAgICovXG4gIHByb2Nlc3NUcmFuc2FjdGlvbnMgPSBhc3luYyAoXG4gICAgdHhzOiBUcmFuc2FjdGlvbltdLFxuICAgIGJsb2NrOiBCbG9ja1xuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYm94ZXM6IEFycmF5PEV4dHJhY3RlZENvbGxhdGVyYWw+ID0gW107XG4gICAgICBjb25zdCBzcGVudEluZm9zOiBBcnJheTxTcGVuZEluZm8+ID0gW107XG4gICAgICBmb3IgKGNvbnN0IHR4IG9mIHR4cykge1xuICAgICAgICBjb25zdCBvdXRwdXRCb3ggPSB0eC5vdXRwdXRzLmF0KDEpO1xuICAgICAgICBpZiAob3V0cHV0Qm94ID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzQ29sbGF0ZXJhbEJveChvdXRwdXRCb3gpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXh0cmFjdGVkQ29sbGF0ZXJhbCA9IHRoaXMudG9FeHRyYWN0ZWRDb2xsYXRlcmFsKFxuICAgICAgICAgIG91dHB1dEJveCxcbiAgICAgICAgICBibG9jay5oYXNoLFxuICAgICAgICAgIGJsb2NrLmhlaWdodFxuICAgICAgICApO1xuICAgICAgICBpZiAoZXh0cmFjdGVkQ29sbGF0ZXJhbCkgYm94ZXMucHVzaChleHRyYWN0ZWRDb2xsYXRlcmFsKTtcblxuICAgICAgICBjb25zdCBpbnB1dENvbGxhdGVyYWwgPSB0eC5pbnB1dHMuYXQoMSk7XG4gICAgICAgIGlmIChpbnB1dENvbGxhdGVyYWwgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc3BlbnRJbmZvcy5wdXNoKHsgdHhJZDogdHguaWQsIGJveElkOiBpbnB1dENvbGxhdGVyYWwuYm94SWQgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChib3hlcy5sZW5ndGggPiAwKVxuICAgICAgICBhd2FpdCB0aGlzLmFjdGlvbi5zdG9yZUNvbGxhdGVyYWxzKGJveGVzLCBibG9jaywgdGhpcy5nZXRJZCgpKTtcbiAgICAgIGF3YWl0IHRoaXMuYWN0aW9uLnNwZW5kQ29sbGF0ZXJhbHMoc3BlbnRJbmZvcywgYmxvY2ssIHRoaXMuZ2V0SWQoKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgIGBFcnJvciBpbiBzdG9yaW5nIGNvbGxhdGVyYWxzIG9mIHRoZSBibG9jayAke2Jsb2NrfTogJHtlfWBcbiAgICAgICk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgLyoqXG4gICAqIGNoZWNrcyBpZiB0aGUgcGFzc2VkIGJveCBpcyBhIGNvbGxhdGVyYWwgYm94XG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7T3V0cHV0Qm94fSBvdXRwdXRCb3hcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIENvbGxhdGVyYWxFeHRyYWN0b3JcbiAgICovXG4gIHByaXZhdGUgaXNDb2xsYXRlcmFsQm94ID0gKG91dHB1dEJveDogVjEuT3V0cHV0SW5mbyB8IE91dHB1dEJveCk6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IGF3Y05mdCA9IG91dHB1dEJveC5hc3NldHM/LmF0KDApPy50b2tlbklkO1xuICAgIHJldHVybiAoXG4gICAgICBhd2NOZnQgIT0gdW5kZWZpbmVkICYmXG4gICAgICBhd2NOZnQgPT09IHRoaXMuYXdjTmZ0ICYmXG4gICAgICBvdXRwdXRCb3guZXJnb1RyZWUgPT09IHRoaXMuZXJnb1RyZWVcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBEZWxldGUgYWxsIGNvbGxhdGVyYWxzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhc3NlZCBibG9jayBhbmQgZXh0cmFjdG9yIGFuZFxuICAgKiB1cGRhdGUgYWxsIGNvbGxhdGVyYWxzIHNwZW50IGluIHRoZSBzcGVjaWZpZWQgYmxvY2tcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGhhc2hcbiAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn1cbiAgICogQG1lbWJlcm9mIENvbGxhdGVyYWxFeHRyYWN0b3JcbiAgICovXG4gIGZvcmtCbG9jayA9IGFzeW5jIChoYXNoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBhd2FpdCB0aGlzLmFjdGlvbi5kZWxldGVCbG9jayhoYXNoLCB0aGlzLmdldElkKCkpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgZGF0YWJhc2Ugd2l0aCBvbGRlciBjb2xsYXRlcmFsc1xuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5pdGlhbEhlaWdodFxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fVxuICAgKiBAbWVtYmVyb2YgQ29sbGF0ZXJhbEV4dHJhY3RvclxuICAgKi9cbiAgaW5pdGlhbGl6ZUJveGVzID0gYXN5bmMgKGluaXRpYWxCbG9jazogSW5pdGlhbEluZm8pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBjb25zdCB1bnNwZW50Q29sbGF0ZXJhbHMgPSBhd2FpdCB0aGlzLmdldEFsbFVuc3BlbnRDb2xsYXRlcmFscyhcbiAgICAgIGluaXRpYWxCbG9jay5oZWlnaHRcbiAgICApO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgYHVuc3BlbnQgY29sbGF0ZXJhbCBib3ggaW5mbyB3aXRoIGZvbGxvd2luZyBJRHMgZ290dGVuIGZvcm0gRXJnbyBuZXR3b3JrOiBbJHt1bnNwZW50Q29sbGF0ZXJhbHNcbiAgICAgICAgLm1hcCgoYm94KSA9PiBib3guYm94SWQpXG4gICAgICAgIC5qb2luKCcsICcpfV1gXG4gICAgKTtcblxuICAgIGNvbnN0IHN0b3JlZFVuc3BlbnRDb2xsYXRlcmFsQm94SWRzID1cbiAgICAgIGF3YWl0IHRoaXMuYWN0aW9uLmdldFVuc3BlbnRDb2xsYXRlcmFsQm94SWRzKHRoaXMuZ2V0SWQoKSk7XG4gICAgY29uc3QgdW5zcGVudENvbGxhdGVyYWxCb3hJZHMgPSBuZXcgU2V0KFxuICAgICAgdW5zcGVudENvbGxhdGVyYWxzLm1hcCgoYm94KSA9PiBib3guYm94SWQpXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLnRpZHlVcFN0b3JlZENvbGxhdGVyYWxzKFxuICAgICAgaW5pdGlhbEJsb2NrLmhlaWdodCxcbiAgICAgIHN0b3JlZFVuc3BlbnRDb2xsYXRlcmFsQm94SWRzLmZpbHRlcihcbiAgICAgICAgKGJveElkKSA9PiAhdW5zcGVudENvbGxhdGVyYWxCb3hJZHMuaGFzKGJveElkKVxuICAgICAgKVxuICAgICk7XG5cbiAgICBmb3IgKGNvbnN0IGNvbGxhdGVyYWwgb2YgdW5zcGVudENvbGxhdGVyYWxzKSB7XG4gICAgICBpZiAoc3RvcmVkVW5zcGVudENvbGxhdGVyYWxCb3hJZHMuaW5jbHVkZXMoY29sbGF0ZXJhbC5ib3hJZCkpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYHVwZGF0aW5nIHVuc3BlbnQgY29sbGF0ZXJhbCB3aXRoIGJveElkPVske2NvbGxhdGVyYWwuYm94SWR9XSBhdCBpbml0aWFsaXphdGlvbiBwaGFzZWBcbiAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb24udXBkYXRlQ29sbGF0ZXJhbChjb2xsYXRlcmFsLCB0aGlzLmdldElkKCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYGluc2VydGluZyB1bnNwZW50IGNvbGxhdGVyYWwgd2l0aCBib3hJZD1bJHtjb2xsYXRlcmFsLmJveElkfV0gdG8gZGF0YWJhc2UgYXQgaW5pdGlhbGl6YXRpb24gcGhhc2VgXG4gICAgICAgICk7XG4gICAgICAgIGF3YWl0IHRoaXMuYWN0aW9uLmluc2VydENvbGxhdGVyYWwoY29sbGF0ZXJhbCwgdGhpcy5nZXRJZCgpKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIHJlbW92ZXMgb3IgdXBkYXRlcyBzdG9yZWQgY29sbGF0ZXJhbCBib3hlcyBiZWZvcmUgaW5pdGlhbGl6aW5nIGJveGVzXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbml0aWFsSGVpZ2h0XG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGNvbGxhdGVyYWxCb3hJZHNcbiAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn1cbiAgICogQG1lbWJlcm9mIENvbGxhdGVyYWxFeHRyYWN0b3JcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgdGlkeVVwU3RvcmVkQ29sbGF0ZXJhbHMoXG4gICAgaW5pdGlhbEhlaWdodDogbnVtYmVyLFxuICAgIGNvbGxhdGVyYWxCb3hJZHM6IHN0cmluZ1tdXG4gICkge1xuICAgIGZvciAoY29uc3QgYm94SWQgb2YgY29sbGF0ZXJhbEJveElkcykge1xuICAgICAgbGV0IGJveEluZm86IFYxLk91dHB1dEluZm87XG4gICAgICB0cnkge1xuICAgICAgICBib3hJbmZvID0gYXdhaXQgdGhpcy5leHBsb3JlckFwaS52MS5nZXRBcGlWMUJveGVzUDEoYm94SWQpO1xuICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgIGlmIChlPy5yZXNwb25zZT8uc3RhdHVzID09PSA0MDQpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmFjdGlvbi5kZWxldGVDb2xsYXRlcmFsKGJveElkLCB0aGlzLmdldElkKCkpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBzb21ldGhpbmcgd2VudCB3cm9uZyB3aGVuIHRyeWluZyB0byBnZXQgYm94PVske2JveElkfV0gZnJvbSBFcmdvIG5ldHdvcms6ICR7ZT8ubWVzc2FnZX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoYm94SW5mbz8uc3BlbnRUcmFuc2FjdGlvbklkICE9IG51bGwpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB0cmFuc2FjdGlvbkluZm86IFYxLlRyYW5zYWN0aW9uSW5mbyA9XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmV4cGxvcmVyQXBpLnYxLmdldEFwaVYxVHJhbnNhY3Rpb25zUDEoXG4gICAgICAgICAgICAgIGJveEluZm8uc3BlbnRUcmFuc2FjdGlvbklkXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKHRyYW5zYWN0aW9uSW5mby5pbmNsdXNpb25IZWlnaHQgPCBpbml0aWFsSGVpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgICAgYGNvbGxhdGVyYWwgd2l0aCBib3hJZD1bJHtib3hJZH1dIGlzIHNwZW50IGFuZCBpcyBiZWluZyB1cGRhdGVkIHdpdGggc3BlbmRIZWlnaHQ9WyR7dHJhbnNhY3Rpb25JbmZvLmluY2x1c2lvbkhlaWdodH1dIGFuZCBzcGVuZEJsb2NrPVske3RyYW5zYWN0aW9uSW5mby5ibG9ja0lkfV1gXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmFjdGlvbi51cGRhdGVDb2xsYXRlcmFsKFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYm94SWQ6IGJveElkLFxuICAgICAgICAgICAgICAgIHNwZW5kSGVpZ2h0OiB0cmFuc2FjdGlvbkluZm8uaW5jbHVzaW9uSGVpZ2h0LFxuICAgICAgICAgICAgICAgIHNwZW5kQmxvY2s6IHRyYW5zYWN0aW9uSW5mby5ibG9ja0lkLFxuICAgICAgICAgICAgICAgIHNwZW5kVHhJZDogdHJhbnNhY3Rpb25JbmZvLmlkLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0aGlzLmdldElkKClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgc29tZXRoaW5nIHdlbnQgd3Jvbmcgd2hlbiB0cnlpbmcgdG8gZ2V0IHRyYW5zYWN0aW9uPVske2JveEluZm8uc3BlbnRUcmFuc2FjdGlvbklkfV0gZnJvbSBFcmdvIG5ldHdvcms6ICR7ZT8ubWVzc2FnZX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBnZXRzIGFsbCB1bnNwZW50IGNvbGxhdGVyYWxzIGZyb20gRXJnbyBleHBsb3JlciBhcGlcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluaXRpYWxIZWlnaHRcbiAgICogQHJldHVybiB7UHJvbWlzZTxBcnJheTxFeHRyYWN0ZWRDb2xsYXRlcmFsPj59XG4gICAqIEBtZW1iZXJvZiBDb2xsYXRlcmFsRXh0cmFjdG9yXG4gICAqL1xuICBwcml2YXRlIGdldEFsbFVuc3BlbnRDb2xsYXRlcmFscyA9IGFzeW5jIChcbiAgICBpbml0aWFsSGVpZ2h0OiBudW1iZXJcbiAgKTogUHJvbWlzZTxBcnJheTxFeHRyYWN0ZWRDb2xsYXRlcmFsPj4gPT4ge1xuICAgIGNvbnN0IGV4dHJhY3RlZEJveGVzOiBBcnJheTxFeHRyYWN0ZWRDb2xsYXRlcmFsPiA9IFtdO1xuICAgIGxldCBvZmZzZXQgPSAwO1xuICAgIGxldCB0b3RhbCA9IDE7XG4gICAgd2hpbGUgKG9mZnNldCA8IHRvdGFsKSB7XG4gICAgICBjb25zdCBib3hlcyA9IGF3YWl0IHRoaXMuZXhwbG9yZXJBcGkudjEuZ2V0QXBpVjFCb3hlc1Vuc3BlbnRCeWVyZ290cmVlUDEoXG4gICAgICAgIHRoaXMuZXJnb1RyZWUsXG4gICAgICAgIHsgb2Zmc2V0OiBvZmZzZXQsIGxpbWl0OiBEZWZhdWx0QXBpTGltaXQgfVxuICAgICAgKTtcblxuICAgICAgaWYgKCFib3hlcy5pdGVtcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGxvcmVyIGFwaSBvdXRwdXQgaXRlbXMgc2hvdWxkIG5vdCBiZSB1bmRlZmluZWQuJyk7XG4gICAgICB9XG5cbiAgICAgIGV4dHJhY3RlZEJveGVzLnB1c2goXG4gICAgICAgIC4uLmJveGVzLml0ZW1zXG4gICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgIChib3gpID0+XG4gICAgICAgICAgICAgIGJveC5jcmVhdGlvbkhlaWdodCAmJlxuICAgICAgICAgICAgICBib3guY3JlYXRpb25IZWlnaHQgPCBpbml0aWFsSGVpZ2h0ICYmXG4gICAgICAgICAgICAgIHRoaXMuaXNDb2xsYXRlcmFsQm94KGJveClcbiAgICAgICAgICApXG4gICAgICAgICAgLm1hcCgoYm94KSA9PlxuICAgICAgICAgICAgdGhpcy50b0V4dHJhY3RlZENvbGxhdGVyYWwoYm94LCBib3guYmxvY2tJZCwgYm94LnNldHRsZW1lbnRIZWlnaHQpXG4gICAgICAgICAgKVxuICAgICAgICAgIC5maWx0ZXIoKGRhdGEpOiBkYXRhIGlzIEV4dHJhY3RlZENvbGxhdGVyYWwgPT4gZGF0YSAhPSB1bmRlZmluZWQpXG4gICAgICApO1xuICAgICAgdG90YWwgPSBib3hlcy50b3RhbDtcbiAgICAgIG9mZnNldCArPSBEZWZhdWx0QXBpTGltaXQ7XG4gICAgfVxuICAgIHJldHVybiBleHRyYWN0ZWRCb3hlcztcbiAgfTtcblxuICAvKipcbiAgICogY29udmVydHMgb3V0cHV0IGJveCBpbmZvcm1hdGlvbiB0byBhbiBFeHRyYWN0ZWRDb2xsYXRlcmFsIG9iamVjdFxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0geyhPdXRwdXRJbmZvIHwgT3V0cHV0Qm94KX0gYm94XG4gICAqIEByZXR1cm4ge0V4dHJhY3RlZENvbGxhdGVyYWx9XG4gICAqIEBtZW1iZXJvZiBDb2xsYXRlcmFsRXh0cmFjdG9yXG4gICAqL1xuICBwcml2YXRlIHRvRXh0cmFjdGVkQ29sbGF0ZXJhbCA9IChcbiAgICBib3g6IFYxLk91dHB1dEluZm8gfCBPdXRwdXRCb3gsXG4gICAgYmxvY2tJZDogc3RyaW5nLFxuICAgIGJsb2NrSGVpZ2h0OiBudW1iZXJcbiAgKTogRXh0cmFjdGVkQ29sbGF0ZXJhbCB8IHVuZGVmaW5lZCA9PiB7XG4gICAgY29uc3QgZXJnb091dHB1dEJveCA9IGVyZ29MaWIuRXJnb0JveC5mcm9tX2pzb24oSnNvbkJJLnN0cmluZ2lmeShib3gpKTtcblxuICAgIGNvbnN0IHI0ID0gZXJnb091dHB1dEJveFxuICAgICAgLnJlZ2lzdGVyX3ZhbHVlKGVyZ29MaWIuTm9uTWFuZGF0b3J5UmVnaXN0ZXJJZC5SNClcbiAgICAgID8udG9fYnl0ZV9hcnJheSgpO1xuICAgIGlmIChyNCA9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oXG4gICAgICAgIGBjb2xsYXRlcmFsIGJveCB3aXRoIGJveElkPVske2JveC5ib3hJZH1dIGhhcyBhbiBpbnZhbGlkIFI0IHJlZ2lzdGVyYFxuICAgICAgKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IHdpZCA9IHVpbnQ4QXJyYXlUb0hleChyNCk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICBgRXh0cmFjdGVkIFdJRD1bJHt3aWR9XSBmcm9tIFI0IHJlZ2lzdGVyIG9mIGJveD1bJHtib3guYm94SWR9XWBcbiAgICApO1xuXG4gICAgY29uc3QgcjUgPSBlcmdvT3V0cHV0Qm94XG4gICAgICAucmVnaXN0ZXJfdmFsdWUoZXJnb0xpYi5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI1KVxuICAgICAgPy50b19pNjQoKVxuICAgICAgLnRvX3N0cigpO1xuXG4gICAgaWYgKHI1ID09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgYGNvbGxhdGVyYWwgYm94IHdpdGggYm94SWQ9WyR7Ym94LmJveElkfV0gaGFzIGFuIGludmFsaWQgUjUgcmVnaXN0ZXJgXG4gICAgICApO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3Qgcnd0Q291bnQgPSBCaWdJbnQocjUpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgYEV4dHJhY3RlZCByd3RDb3VudD1bJHtyd3RDb3VudH1dIGZyb20gUjUgcmVnaXN0ZXIgb2YgYm94PVske2JveC5ib3hJZH1dYFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYm94SWQ6IGJveC5ib3hJZCxcbiAgICAgIGJveFNlcmlhbGl6ZWQ6IEJ1ZmZlci5mcm9tKFxuICAgICAgICBlcmdvT3V0cHV0Qm94LnNpZ21hX3NlcmlhbGl6ZV9ieXRlcygpXG4gICAgICApLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgIHdpZDogd2lkLFxuICAgICAgcnd0Q291bnQ6IHJ3dENvdW50LFxuICAgICAgdHhJZDogYm94LnRyYW5zYWN0aW9uSWQsXG4gICAgICBibG9jazogYmxvY2tJZCxcbiAgICAgIGhlaWdodDogYmxvY2tIZWlnaHQsXG4gICAgfTtcbiAgfTtcbn1cbiJdfQ==
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGF0ZXJhbEV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9leHRyYWN0b3IvY29sbGF0ZXJhbEV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8seUJBQWlDLE1BQU0sOEJBQThCLENBQUM7QUFDN0UsT0FBTyxLQUFLLE9BQU8sTUFBTSxzQkFBc0IsQ0FBQztBQVFoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVyRSxPQUFPLGdCQUFnQixNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHbkQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGlCQUE4QjtJQU1sRDtJQUNBO0lBQ0E7SUFDQTtJQUVBO0lBVkYsUUFBUSxDQUFTO0lBQ3pCLE1BQU0sQ0FBbUI7SUFDMUIsV0FBVyxDQUFDO0lBRXBCLFlBQ21CLEVBQVUsRUFDVixNQUFjLEVBQ2QsT0FBZSxFQUNmLFVBQXNCLEVBQ3ZDLFdBQW1CLEVBQ0YsU0FBeUIsSUFBSSxXQUFXLEVBQUU7UUFFM0QsS0FBSyxFQUFFLENBQUM7UUFQUyxPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ1YsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRXRCLFdBQU0sR0FBTixNQUFNLENBQW9DO1FBRzNELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUN0RCxZQUFZLEVBQUU7YUFDZCxlQUFlLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMs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QUUsR0FBRyxhQUFhO2FBQ3JCLGNBQWMsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDO1lBQ2xELEVBQUUsTUFBTSxFQUFFO2FBQ1QsTUFBTSxFQUFFLENBQUM7UUFFWixJQUFJLEVBQUUsSUFBSSxTQUFTLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2QsOEJBQThCLEdBQUcsQ0FBQyxLQUFLLDhCQUE4QixDQUN0RSxDQUFDO1lBQ0YsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFDRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsdUJBQXVCLFFBQVEsOEJBQThCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FDMUUsQ0FBQztRQUVGLE9BQU87WUFDTCxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7WUFDaEIsYUFBYSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQ3hCLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUN0QyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDcEIsR0FBRyxFQUFFLEdBQUc7WUFDUixRQUFRLEVBQUUsUUFBUTtZQUNsQixJQUFJLEVBQUUsR0FBRyxDQUFDLGFBQWE7WUFDdkIsS0FBSyxFQUFFLE9BQU87WUFDZCxNQUFNLEVBQUUsV0FBVztTQUNwQixDQUFDO0lBQ0osQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdExvZ2dlciwgRHVtbXlMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgZXJnb0V4cGxvcmVyQ2xpZW50RmFjdG9yeSwgeyBWMSB9IGZyb20gJ0Byb3Nlbi1jbGllbnRzL2VyZ28tZXhwbG9yZXInO1xuaW1wb3J0ICogYXMgZXJnb0xpYiBmcm9tICdlcmdvLWxpYi13YXNtLW5vZGVqcyc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQge1xuICBCbG9jayxcbiAgQmxvY2tJbmZvLFxuICBPdXRwdXRCb3gsXG4gIFRyYW5zYWN0aW9uLFxufSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXItaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBYnN0cmFjdEV4dHJhY3RvciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtZXh0cmFjdG9yJztcblxuaW1wb3J0IENvbGxhdGVyYWxBY3Rpb24gZnJvbSAnLi4vYWN0aW9ucy9jb2xsYXRlcmFsQWN0aW9uJztcbmltcG9ydCB7IERlZmF1bHRBcGlMaW1pdCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBFeHRyYWN0ZWRDb2xsYXRlcmFsIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHRyYWN0ZWRDb2xsYXRlcmFsJztcbmltcG9ydCB7IEpzb25CSSwgdWludDhBcnJheVRvSGV4IH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgU3BlbmRJbmZvIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBDb2xsYXRlcmFsRXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RFeHRyYWN0b3I8VHJhbnNhY3Rpb24+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBlcmdvVHJlZTogc3RyaW5nO1xuICByZWFkb25seSBhY3Rpb246IENvbGxhdGVyYWxBY3Rpb247XG4gIHByaXZhdGUgZXhwbG9yZXJBcGk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBpZDogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXdjTmZ0OiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhZGRyZXNzOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIGV4cGxvcmVyVXJsOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyID0gbmV3IER1bW15TG9nZ2VyKClcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmVyZ29UcmVlID0gZXJnb0xpYi5BZGRyZXNzLmZyb21fYmFzZTU4KHRoaXMuYWRkcmVzcylcbiAgICAgIC50b19lcmdvX3RyZWUoKVxuICAgICAgLnRvX2Jhc2UxNl9ieXRlcygpO1xuICAgIHRoaXMuYWN0aW9uID0gbmV3IENvbGxhdGVyYWxBY3Rpb24odGhpcy5kYXRhU291cmNlLCB0aGlzLmxvZ2dlcik7XG4gICAgdGhpcy5leHBsb3JlckFwaSA9IGVyZ29FeHBsb3JlckNsaWVudEZhY3RvcnkoZXhwbG9yZXJVcmwpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBpZCBmb3IgZXh0cmFjdG9yLiBUaGlzIGlkIG11c3QgYmUgdW5pcXVlIG92ZXIgYWxsIGV4dHJhY3RvcnMuXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIGdldElkID0gKCk6IHN0cmluZyA9PiB0aGlzLmlkO1xuXG4gIC8qKlxuICAgKiBwcm9jZXNzIGEgbGlzdCBvZiB0cmFuc2FjdGlvbnMgYW5kIHN0b3JlIGNvbGxhdGVyYWwgYm94IGRldGFpbHNcbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbltdfSB0eHMgbGlzdCBvZiB0cmFuc2FjdGlvbiBmb3IgYmxvY2tcbiAgICogQHBhcmFtIHtCbG9ja30gYmxvY2sgYmxvY2sgaWQgZm9yIHRyYW5zYWN0aW9ucyBhcyBoZXggZW5jb2RlZFxuICAgKiBAcmV0dXJuIHtQcm9taXNlPGJvb2xlYW4+fSBQcm9taXNlPGJvb2xlYW4+IGlmIG5vIGVycm9yIG9jY3VycmVkIHJldHVyblxuICAgKiB0cnVlLiBvdGhlcndpc2UsIHJldHVybiBmYWxzZVxuICAgKi9cbiAgcHJvY2Vzc1RyYW5zYWN0aW9ucyA9IGFzeW5jIChcbiAgICB0eHM6IFRyYW5zYWN0aW9uW10sXG4gICAgYmxvY2s6IEJsb2NrXG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBib3hlczogQXJyYXk8RXh0cmFjdGVkQ29sbGF0ZXJhbD4gPSBbXTtcbiAgICAgIGNvbnN0IHNwZW50SW5mb3M6IEFycmF5PFNwZW5kSW5mbz4gPSBbXTtcbiAgICAgIGZvciAoY29uc3QgdHggb2YgdHhzKSB7XG4gICAgICAgIGNvbnN0IG91dHB1dEJveCA9IHR4Lm91dHB1dHMuYXQoMSk7XG4gICAgICAgIGlmIChvdXRwdXRCb3ggPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuaXNDb2xsYXRlcmFsQm94KG91dHB1dEJveCkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBleHRyYWN0ZWRDb2xsYXRlcmFsID0gdGhpcy50b0V4dHJhY3RlZENvbGxhdGVyYWwoXG4gICAgICAgICAgb3V0cHV0Qm94LFxuICAgICAgICAgIGJsb2NrLmhhc2gsXG4gICAgICAgICAgYmxvY2suaGVpZ2h0XG4gICAgICAgICk7XG4gICAgICAgIGlmIChleHRyYWN0ZWRDb2xsYXRlcmFsKSBib3hlcy5wdXNoKGV4dHJhY3RlZENvbGxhdGVyYWwpO1xuXG4gICAgICAgIGNvbnN0IGlucHV0Q29sbGF0ZXJhbCA9IHR4LmlucHV0cy5hdCgxKTtcbiAgICAgICAgaWYgKGlucHV0Q29sbGF0ZXJhbCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBzcGVudEluZm9zLnB1c2goeyB0eElkOiB0eC5pZCwgYm94SWQ6IGlucHV0Q29sbGF0ZXJhbC5ib3hJZCB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGJveGVzLmxlbmd0aCA+IDApXG4gICAgICAgIGF3YWl0IHRoaXMuYWN0aW9uLnN0b3JlQ29sbGF0ZXJhbHMoYm94ZXMsIGJsb2NrLCB0aGlzLmdldElkKCkpO1xuICAgICAgYXdhaXQgdGhpcy5hY3Rpb24uc3BlbmRDb2xsYXRlcmFscyhzcGVudEluZm9zLCBibG9jaywgdGhpcy5nZXRJZCgpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihcbiAgICAgICAgYEVycm9yIGluIHN0b3JpbmcgY29sbGF0ZXJhbHMgb2YgdGhlIGJsb2NrICR7YmxvY2t9OiAke2V9YFxuICAgICAgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICAvKipcbiAgICogY2hlY2tzIGlmIHRoZSBwYXNzZWQgYm94IGlzIGEgY29sbGF0ZXJhbCBib3hcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtPdXRwdXRCb3h9IG91dHB1dEJveFxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgQ29sbGF0ZXJhbEV4dHJhY3RvclxuICAgKi9cbiAgcHJpdmF0ZSBpc0NvbGxhdGVyYWxCb3ggPSAob3V0cHV0Qm94OiBWMS5PdXRwdXRJbmZvIHwgT3V0cHV0Qm94KTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgYXdjTmZ0ID0gb3V0cHV0Qm94LmFzc2V0cz8uYXQoMCk/LnRva2VuSWQ7XG4gICAgcmV0dXJuIChcbiAgICAgIGF3Y05mdCAhPSB1bmRlZmluZWQgJiZcbiAgICAgIGF3Y05mdCA9PT0gdGhpcy5hd2NOZnQgJiZcbiAgICAgIG91dHB1dEJveC5lcmdvVHJlZSA9PT0gdGhpcy5lcmdvVHJlZVxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhbGwgY29sbGF0ZXJhbHMgY29ycmVzcG9uZGluZyB0byB0aGUgcGFzc2VkIGJsb2NrIGFuZCBleHRyYWN0b3IgYW5kXG4gICAqIHVwZGF0ZSBhbGwgY29sbGF0ZXJhbHMgc3BlbnQgaW4gdGhlIHNwZWNpZmllZCBibG9ja1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaGFzaFxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fVxuICAgKiBAbWVtYmVyb2YgQ29sbGF0ZXJhbEV4dHJhY3RvclxuICAgKi9cbiAgZm9ya0Jsb2NrID0gYXN5bmMgKGhhc2g6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGF3YWl0IHRoaXMuYWN0aW9uLmRlbGV0ZUJsb2NrKGhhc2gsIHRoaXMuZ2V0SWQoKSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBkYXRhYmFzZSB3aXRoIG9sZGVyIGNvbGxhdGVyYWxzXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbml0aWFsSGVpZ2h0XG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59XG4gICAqIEBtZW1iZXJvZiBDb2xsYXRlcmFsRXh0cmFjdG9yXG4gICAqL1xuICBpbml0aWFsaXplQm94ZXMgPSBhc3luYyAoaW5pdGlhbEJsb2NrOiBCbG9ja0luZm8pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBjb25zdCB1bnNwZW50Q29sbGF0ZXJhbHMgPSBhd2FpdCB0aGlzLmdldEFsbFVuc3BlbnRDb2xsYXRlcmFscyhcbiAgICAgIGluaXRpYWxCbG9jay5oZWlnaHRcbiAgICApO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgYHVuc3BlbnQgY29sbGF0ZXJhbCBib3ggaW5mbyB3aXRoIGZvbGxvd2luZyBJRHMgZ290dGVuIGZvcm0gRXJnbyBuZXR3b3JrOiBbJHt1bnNwZW50Q29sbGF0ZXJhbHNcbiAgICAgICAgLm1hcCgoYm94KSA9PiBib3guYm94SWQpXG4gICAgICAgIC5qb2luKCcsICcpfV1gXG4gICAgKTtcblxuICAgIGNvbnN0IHN0b3JlZFVuc3BlbnRDb2xsYXRlcmFsQm94SWRzID1cbiAgICAgIGF3YWl0IHRoaXMuYWN0aW9uLmdldFVuc3BlbnRDb2xsYXRlcmFsQm94SWRzKHRoaXMuZ2V0SWQoKSk7XG4gICAgY29uc3QgdW5zcGVudENvbGxhdGVyYWxCb3hJZHMgPSBuZXcgU2V0KFxuICAgICAgdW5zcGVudENvbGxhdGVyYWxzLm1hcCgoYm94KSA9PiBib3guYm94SWQpXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLnRpZHlVcFN0b3JlZENvbGxhdGVyYWxzKFxuICAgICAgaW5pdGlhbEJsb2NrLmhlaWdodCxcbiAgICAgIHN0b3JlZFVuc3BlbnRDb2xsYXRlcmFsQm94SWRzLmZpbHRlcihcbiAgICAgICAgKGJveElkKSA9PiAhdW5zcGVudENvbGxhdGVyYWxCb3hJZHMuaGFzKGJveElkKVxuICAgICAgKVxuICAgICk7XG5cbiAgICBmb3IgKGNvbnN0IGNvbGxhdGVyYWwgb2YgdW5zcGVudENvbGxhdGVyYWxzKSB7XG4gICAgICBpZiAoc3RvcmVkVW5zcGVudENvbGxhdGVyYWxCb3hJZHMuaW5jbHVkZXMoY29sbGF0ZXJhbC5ib3hJZCkpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYHVwZGF0aW5nIHVuc3BlbnQgY29sbGF0ZXJhbCB3aXRoIGJveElkPVske2NvbGxhdGVyYWwuYm94SWR9XSBhdCBpbml0aWFsaXphdGlvbiBwaGFzZWBcbiAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb24udXBkYXRlQ29sbGF0ZXJhbChjb2xsYXRlcmFsLCB0aGlzLmdldElkKCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYGluc2VydGluZyB1bnNwZW50IGNvbGxhdGVyYWwgd2l0aCBib3hJZD1bJHtjb2xsYXRlcmFsLmJveElkfV0gdG8gZGF0YWJhc2UgYXQgaW5pdGlhbGl6YXRpb24gcGhhc2VgXG4gICAgICAgICk7XG4gICAgICAgIGF3YWl0IHRoaXMuYWN0aW9uLmluc2VydENvbGxhdGVyYWwoY29sbGF0ZXJhbCwgdGhpcy5nZXRJZCgpKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIHJlbW92ZXMgb3IgdXBkYXRlcyBzdG9yZWQgY29sbGF0ZXJhbCBib3hlcyBiZWZvcmUgaW5pdGlhbGl6aW5nIGJveGVzXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbml0aWFsSGVpZ2h0XG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGNvbGxhdGVyYWxCb3hJZHNcbiAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn1cbiAgICogQG1lbWJlcm9mIENvbGxhdGVyYWxFeHRyYWN0b3JcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgdGlkeVVwU3RvcmVkQ29sbGF0ZXJhbHMoXG4gICAgaW5pdGlhbEhlaWdodDogbnVtYmVyLFxuICAgIGNvbGxhdGVyYWxCb3hJZHM6IHN0cmluZ1tdXG4gICkge1xuICAgIGZvciAoY29uc3QgYm94SWQgb2YgY29sbGF0ZXJhbEJveElkcykge1xuICAgICAgbGV0IGJveEluZm86IFYxLk91dHB1dEluZm87XG4gICAgICB0cnkge1xuICAgICAgICBib3hJbmZvID0gYXdhaXQgdGhpcy5leHBsb3JlckFwaS52MS5nZXRBcGlWMUJveGVzUDEoYm94SWQpO1xuICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgIGlmIChlPy5yZXNwb25zZT8uc3RhdHVzID09PSA0MDQpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmFjdGlvbi5kZWxldGVDb2xsYXRlcmFsKGJveElkLCB0aGlzLmdldElkKCkpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBzb21ldGhpbmcgd2VudCB3cm9uZyB3aGVuIHRyeWluZyB0byBnZXQgYm94PVske2JveElkfV0gZnJvbSBFcmdvIG5ldHdvcms6ICR7ZT8ubWVzc2FnZX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoYm94SW5mbz8uc3BlbnRUcmFuc2FjdGlvbklkICE9IG51bGwpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB0cmFuc2FjdGlvbkluZm86IFYxLlRyYW5zYWN0aW9uSW5mbyA9XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmV4cGxvcmVyQXBpLnYxLmdldEFwaVYxVHJhbnNhY3Rpb25zUDEoXG4gICAgICAgICAgICAgIGJveEluZm8uc3BlbnRUcmFuc2FjdGlvbklkXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKHRyYW5zYWN0aW9uSW5mby5pbmNsdXNpb25IZWlnaHQgPCBpbml0aWFsSGVpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgICAgYGNvbGxhdGVyYWwgd2l0aCBib3hJZD1bJHtib3hJZH1dIGlzIHNwZW50IGFuZCBpcyBiZWluZyB1cGRhdGVkIHdpdGggc3BlbmRIZWlnaHQ9WyR7dHJhbnNhY3Rpb25JbmZvLmluY2x1c2lvbkhlaWdodH1dIGFuZCBzcGVuZEJsb2NrPVske3RyYW5zYWN0aW9uSW5mby5ibG9ja0lkfV1gXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmFjdGlvbi51cGRhdGVDb2xsYXRlcmFsKFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYm94SWQ6IGJveElkLFxuICAgICAgICAgICAgICAgIHNwZW5kSGVpZ2h0OiB0cmFuc2FjdGlvbkluZm8uaW5jbHVzaW9uSGVpZ2h0LFxuICAgICAgICAgICAgICAgIHNwZW5kQmxvY2s6IHRyYW5zYWN0aW9uSW5mby5ibG9ja0lkLFxuICAgICAgICAgICAgICAgIHNwZW5kVHhJZDogdHJhbnNhY3Rpb25JbmZvLmlkLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0aGlzLmdldElkKClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgc29tZXRoaW5nIHdlbnQgd3Jvbmcgd2hlbiB0cnlpbmcgdG8gZ2V0IHRyYW5zYWN0aW9uPVske2JveEluZm8uc3BlbnRUcmFuc2FjdGlvbklkfV0gZnJvbSBFcmdvIG5ldHdvcms6ICR7ZT8ubWVzc2FnZX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBnZXRzIGFsbCB1bnNwZW50IGNvbGxhdGVyYWxzIGZyb20gRXJnbyBleHBsb3JlciBhcGlcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluaXRpYWxIZWlnaHRcbiAgICogQHJldHVybiB7UHJvbWlzZTxBcnJheTxFeHRyYWN0ZWRDb2xsYXRlcmFsPj59XG4gICAqIEBtZW1iZXJvZiBDb2xsYXRlcmFsRXh0cmFjdG9yXG4gICAqL1xuICBwcml2YXRlIGdldEFsbFVuc3BlbnRDb2xsYXRlcmFscyA9IGFzeW5jIChcbiAgICBpbml0aWFsSGVpZ2h0OiBudW1iZXJcbiAgKTogUHJvbWlzZTxBcnJheTxFeHRyYWN0ZWRDb2xsYXRlcmFsPj4gPT4ge1xuICAgIGNvbnN0IGV4dHJhY3RlZEJveGVzOiBBcnJheTxFeHRyYWN0ZWRDb2xsYXRlcmFsPiA9IFtdO1xuICAgIGxldCBvZmZzZXQgPSAwO1xuICAgIGxldCB0b3RhbCA9IDE7XG4gICAgd2hpbGUgKG9mZnNldCA8IHRvdGFsKSB7XG4gICAgICBjb25zdCBib3hlcyA9IGF3YWl0IHRoaXMuZXhwbG9yZXJBcGkudjEuZ2V0QXBpVjFCb3hlc1Vuc3BlbnRCeWVyZ290cmVlUDEoXG4gICAgICAgIHRoaXMuZXJnb1RyZWUsXG4gICAgICAgIHsgb2Zmc2V0OiBvZmZzZXQsIGxpbWl0OiBEZWZhdWx0QXBpTGltaXQgfVxuICAgICAgKTtcblxuICAgICAgaWYgKCFib3hlcy5pdGVtcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGxvcmVyIGFwaSBvdXRwdXQgaXRlbXMgc2hvdWxkIG5vdCBiZSB1bmRlZmluZWQuJyk7XG4gICAgICB9XG5cbiAgICAgIGV4dHJhY3RlZEJveGVzLnB1c2goXG4gICAgICAgIC4uLmJveGVzLml0ZW1zXG4gICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgIChib3gpID0+XG4gICAgICAgICAgICAgIGJveC5jcmVhdGlvbkhlaWdodCAmJlxuICAgICAgICAgICAgICBib3guY3JlYXRpb25IZWlnaHQgPCBpbml0aWFsSGVpZ2h0ICYmXG4gICAgICAgICAgICAgIHRoaXMuaXNDb2xsYXRlcmFsQm94KGJveClcbiAgICAgICAgICApXG4gICAgICAgICAgLm1hcCgoYm94KSA9PlxuICAgICAgICAgICAgdGhpcy50b0V4dHJhY3RlZENvbGxhdGVyYWwoYm94LCBib3guYmxvY2tJZCwgYm94LnNldHRsZW1lbnRIZWlnaHQpXG4gICAgICAgICAgKVxuICAgICAgICAgIC5maWx0ZXIoKGRhdGEpOiBkYXRhIGlzIEV4dHJhY3RlZENvbGxhdGVyYWwgPT4gZGF0YSAhPSB1bmRlZmluZWQpXG4gICAgICApO1xuICAgICAgdG90YWwgPSBib3hlcy50b3RhbDtcbiAgICAgIG9mZnNldCArPSBEZWZhdWx0QXBpTGltaXQ7XG4gICAgfVxuICAgIHJldHVybiBleHRyYWN0ZWRCb3hlcztcbiAgfTtcblxuICAvKipcbiAgICogY29udmVydHMgb3V0cHV0IGJveCBpbmZvcm1hdGlvbiB0byBhbiBFeHRyYWN0ZWRDb2xsYXRlcmFsIG9iamVjdFxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0geyhPdXRwdXRJbmZvIHwgT3V0cHV0Qm94KX0gYm94XG4gICAqIEByZXR1cm4ge0V4dHJhY3RlZENvbGxhdGVyYWx9XG4gICAqIEBtZW1iZXJvZiBDb2xsYXRlcmFsRXh0cmFjdG9yXG4gICAqL1xuICBwcml2YXRlIHRvRXh0cmFjdGVkQ29sbGF0ZXJhbCA9IChcbiAgICBib3g6IFYxLk91dHB1dEluZm8gfCBPdXRwdXRCb3gsXG4gICAgYmxvY2tJZDogc3RyaW5nLFxuICAgIGJsb2NrSGVpZ2h0OiBudW1iZXJcbiAgKTogRXh0cmFjdGVkQ29sbGF0ZXJhbCB8IHVuZGVmaW5lZCA9PiB7XG4gICAgY29uc3QgZXJnb091dHB1dEJveCA9IGVyZ29MaWIuRXJnb0JveC5mcm9tX2pzb24oSnNvbkJJLnN0cmluZ2lmeShib3gpKTtcblxuICAgIGNvbnN0IHI0ID0gZXJnb091dHB1dEJveFxuICAgICAgLnJlZ2lzdGVyX3ZhbHVlKGVyZ29MaWIuTm9uTWFuZGF0b3J5UmVnaXN0ZXJJZC5SNClcbiAgICAgID8udG9fYnl0ZV9hcnJheSgpO1xuICAgIGlmIChyNCA9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oXG4gICAgICAgIGBjb2xsYXRlcmFsIGJveCB3aXRoIGJveElkPVske2JveC5ib3hJZH1dIGhhcyBhbiBpbnZhbGlkIFI0IHJlZ2lzdGVyYFxuICAgICAgKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IHdpZCA9IHVpbnQ4QXJyYXlUb0hleChyNCk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICBgRXh0cmFjdGVkIFdJRD1bJHt3aWR9XSBmcm9tIFI0IHJlZ2lzdGVyIG9mIGJveD1bJHtib3guYm94SWR9XWBcbiAgICApO1xuXG4gICAgY29uc3QgcjUgPSBlcmdvT3V0cHV0Qm94XG4gICAgICAucmVnaXN0ZXJfdmFsdWUoZXJnb0xpYi5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI1KVxuICAgICAgPy50b19pNjQoKVxuICAgICAgLnRvX3N0cigpO1xuXG4gICAgaWYgKHI1ID09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgYGNvbGxhdGVyYWwgYm94IHdpdGggYm94SWQ9WyR7Ym94LmJveElkfV0gaGFzIGFuIGludmFsaWQgUjUgcmVnaXN0ZXJgXG4gICAgICApO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3Qgcnd0Q291bnQgPSBCaWdJbnQocjUpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgYEV4dHJhY3RlZCByd3RDb3VudD1bJHtyd3RDb3VudH1dIGZyb20gUjUgcmVnaXN0ZXIgb2YgYm94PVske2JveC5ib3hJZH1dYFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYm94SWQ6IGJveC5ib3hJZCxcbiAgICAgIGJveFNlcmlhbGl6ZWQ6IEJ1ZmZlci5mcm9tKFxuICAgICAgICBlcmdvT3V0cHV0Qm94LnNpZ21hX3NlcmlhbGl6ZV9ieXRlcygpXG4gICAgICApLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgIHdpZDogd2lkLFxuICAgICAgcnd0Q291bnQ6IHJ3dENvdW50LFxuICAgICAgdHhJZDogYm94LnRyYW5zYWN0aW9uSWQsXG4gICAgICBibG9jazogYmxvY2tJZCxcbiAgICAgIGhlaWdodDogYmxvY2tIZWlnaHQsXG4gICAgfTtcbiAgfTtcbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { DataSource } from 'typeorm';
2
- import { Transaction } from '@rosen-bridge/scanner';
3
2
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
4
- import { AbstractExtractor, Block } from '@rosen-bridge/abstract-extractor';
3
+ import { Block, Transaction } from '@rosen-bridge/scanner-interfaces';
4
+ import { AbstractExtractor } from '@rosen-bridge/abstract-extractor';
5
5
  import { TokenMap } from '@rosen-bridge/tokens';
6
6
  declare class CommitmentExtractor extends AbstractExtractor<Transaction> {
7
7
  readonly logger: AbstractLogger;
@@ -1 +1 @@
1
- {"version":3,"file":"commitmentExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/commitmentExtractor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAM5E,OAAO,EAAe,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE7D,cAAM,mBAAoB,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IAC9D,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgB;IACrD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;gBAGlC,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EACxB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,QAAQ,EAChB,MAAM,CAAC,EAAE,cAAc;IAczB;;OAEG;IACH,KAAK,eAAiB;IAEtB;;;;;OAKG;IACH,mBAAmB,QACZ,MAAM,WAAW,CAAC,SAChB,KAAK,KACX,QAAQ,OAAO,CAAC,CAmFjB;IAEF;;;OAGG;IACH,SAAS,SAAgB,MAAM,KAAG,QAAQ,IAAI,CAAC,CAE7C;IAEF;;;OAGG;IACH,eAAe,sBAEb;CACH;AAED,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"commitmentExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/commitmentExtractor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAMrE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,cAAM,mBAAoB,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IAC9D,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgB;IACrD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;gBAGlC,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EACxB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,QAAQ,EAChB,MAAM,CAAC,EAAE,cAAc;IAczB;;OAEG;IACH,KAAK,eAAiB;IAEtB;;;;;OAKG;IACH,mBAAmB,QACZ,MAAM,WAAW,CAAC,SAChB,KAAK,KACX,QAAQ,OAAO,CAAC,CAmFjB;IAEF;;;OAGG;IACH,SAAS,SAAgB,MAAM,KAAG,QAAQ,IAAI,CAAC,CAE7C;IAEF;;;OAGG;IACH,eAAe,sBAEb;CACH;AAED,eAAe,mBAAmB,CAAC"}
@@ -115,4 +115,4 @@ class CommitmentExtractor extends AbstractExtractor {
115
115
  };
116
116
  }
117
117
  export default CommitmentExtractor;
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWl0bWVudEV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9leHRyYWN0b3IvY29tbWl0bWVudEV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLHNCQUFzQixDQUFDO0FBRzdDLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGlCQUFpQixFQUFTLE1BQU0sa0NBQWtDLENBQUM7QUFFNUUsT0FBTyxnQkFBZ0IsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBSWxDLE1BQU0sbUJBQW9CLFNBQVEsaUJBQThCO0lBQ3JELE1BQU0sQ0FBaUI7SUFDaEMsRUFBRSxDQUFTO0lBQ00sVUFBVSxDQUFhO0lBQ3ZCLG9CQUFvQixDQUFnQjtJQUNwQyxLQUFLLENBQVM7SUFDZCxPQUFPLENBQW1CO0lBQzFCLFFBQVEsQ0FBVztJQUVwQyxZQUNFLEVBQVUsRUFDVixTQUF3QixFQUN4QixLQUFhLEVBQ2IsVUFBc0IsRUFDdEIsTUFBZ0IsRUFDaEIsTUFBdUI7UUFFdkIsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsZUFBZSxFQUFFLENBQ25FLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENB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QyxNQUFNLENBQUMsS0FBSyxDQUNmLHdDQUF3QyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQ3RELENBQUM7Z0JBQ0YsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ1g7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILFNBQVMsR0FBRyxLQUFLLEVBQUUsSUFBWSxFQUFpQixFQUFFO1FBQ2hELE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILGVBQWUsR0FBRyxLQUFLLElBQUksRUFBRTtRQUMzQixPQUFPO0lBQ1QsQ0FBQyxDQUFDO0NBQ0g7QUFFRCxlQUFlLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgd2FzbSBmcm9tICdlcmdvLWxpYi13YXNtLW5vZGVqcyc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lcic7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciwgRHVtbXlMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBBYnN0cmFjdEV4dHJhY3RvciwgQmxvY2sgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWV4dHJhY3Rvcic7XG5cbmltcG9ydCBDb21taXRtZW50QWN0aW9uIGZyb20gJy4uL2FjdGlvbnMvY29tbWl0bWVudEFjdGlvbic7XG5pbXBvcnQgeyBleHRyYWN0ZWRDb21taXRtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHRyYWN0ZWRDb21taXRtZW50JztcbmltcG9ydCB7IEpzb25CSSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IFNwZW5kSW5mbyB9IGZyb20gJy4uL2ludGVyZmFjZXMvdHlwZXMnO1xuaW1wb3J0IHsgUm9zZW5Ub2tlbnMsIFRva2VuTWFwIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS90b2tlbnMnO1xuXG5jbGFzcyBDb21taXRtZW50RXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RFeHRyYWN0b3I8VHJhbnNhY3Rpb24+IHtcbiAgcmVhZG9ubHkgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlcjtcbiAgaWQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhU291cmNlOiBEYXRhU291cmNlO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbW1pdG1lbnRzRXJnb1RyZWVzOiBBcnJheTxzdHJpbmc+O1xuICBwcml2YXRlIHJlYWRvbmx5IFJXVElkOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aW9uczogQ29tbWl0bWVudEFjdGlvbjtcbiAgcHJpdmF0ZSByZWFkb25seSB0b2tlbk1hcDogVG9rZW5NYXA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhZGRyZXNzZXM6IEFycmF5PHN0cmluZz4sXG4gICAgUldUSWQ6IHN0cmluZyxcbiAgICBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIHRva2VuczogVG9rZW5NYXAsXG4gICAgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgdGhpcy5kYXRhU291cmNlID0gZGF0YVNvdXJjZTtcbiAgICB0aGlzLmNvbW1pdG1lbnRzRXJnb1RyZWVzID0gYWRkcmVzc2VzLm1hcCgoYWRkcmVzcykgPT5cbiAgICAgIHdhc20uQWRkcmVzcy5mcm9tX2Jhc2U1OChhZGRyZXNzKS50b19lcmdvX3RyZWUoKS50b19iYXNlMTZfYnl0ZXMoKVxuICAgICk7XG4gICAgdGhpcy5SV1RJZCA9IFJXVElkO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyID8gbG9nZ2VyIDogbmV3IER1bW15TG9nZ2VyKCk7XG4gICAgdGhpcy5hY3Rpb25zID0gbmV3IENvbW1pdG1lbnRBY3Rpb24oZGF0YVNvdXJjZSwgdGhpcy5sb2dnZXIpO1xuICAgIHRoaXMudG9rZW5NYXAgPSB0b2tlbnM7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IElkIGZvciBjdXJyZW50IGV4dHJhY3RvclxuICAgKi9cbiAgZ2V0SWQgPSAoKSA9PiB0aGlzLmlkO1xuXG4gIC8qKlxuICAgKiBnZXRzIGJsb2NrIGlkIGFuZCB0cmFuc2FjdGlvbnMgY29ycmVzcG9uZGluZyB0byB0aGUgYmxvY2sgYW5kIHNhdmVzIGlmIHRoZXkgYXJlIHZhbGlkIHJvc2VuXG4gICAqICB0cmFuc2FjdGlvbnMgYW5kIGluIGNhc2Ugb2Ygc3VjY2VzcyByZXR1cm4gdHJ1ZSBhbmQgaW4gY2FzZSBvZiBmYWlsdXJlIHJldHVybnMgZmFsc2VcbiAgICogQHBhcmFtIHR4c1xuICAgKiBAcGFyYW0gYmxvY2tcbiAgICovXG4gIHByb2Nlc3NUcmFuc2FjdGlvbnMgPSAoXG4gICAgdHhzOiBBcnJheTxUcmFuc2FjdGlvbj4sXG4gICAgYmxvY2s6IEJsb2NrXG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjb21taXRtZW50czogQXJyYXk8ZXh0cmFjdGVkQ29tbWl0bWVudD4gPSBbXTtcbiAgICAgICAgY29uc3Qgc3BlbmRJZHM6IEFycmF5PFNwZW5kSW5mbz4gPSBbXTtcbiAgICAgICAgdHhzLmZvckVhY2goKHRyYW5zYWN0aW9uKSA9PiB7XG4gICAgICAgICAgLy8gcHJvY2VzcyBvdXRwdXRzXG4gICAgICAgICAgZm9yIChjb25zdCBvdXRwdXQgb2YgdHJhbnNhY3Rpb24ub3V0cHV0cykge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBvdXRwdXQuYXNzZXRzICYmXG4gICAgICAgICAgICAgIG91dHB1dC5hZGRpdGlvbmFsUmVnaXN0ZXJzICYmXG4gICAgICAgICAgICAgIG91dHB1dC5hc3NldHMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgICBvdXRwdXQuYXNzZXRzWzBdLnRva2VuSWQgPT09IHRoaXMuUldUSWQgJiZcbiAgICAgICAgICAgICAgdGhpcy5jb21taXRtZW50c0VyZ29UcmVlcy5pbmRleE9mKG91dHB1dC5lcmdvVHJlZSkgIT09IC0xXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWNvZGVkQm94ID0gd2FzbS5FcmdvQm94LmZyb21fanNvbihcbiAgICAgICAgICAgICAgICAgIEpzb25CSS5zdHJpbmdpZnkob3V0cHV0KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY29uc3QgUjQgPSBkZWNvZGVkQm94LnJlZ2lzdGVyX3ZhbHVlKFxuICAgICAgICAgICAgICAgICAgd2FzbS5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI0XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb25zdCBSNSA9IGRlY29kZWRCb3gucmVnaXN0ZXJfdmFsdWUoXG4gICAgICAgICAgICAgICAgICB3YXNtLk5vbk1hbmRhdG9yeVJlZ2lzdGVySWQuUjVcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IFI2ID0gZGVjb2RlZEJveC5yZWdpc3Rlcl92YWx1ZShcbiAgICAgICAgICAgICAgICAgIHdhc20uTm9uTWFuZGF0b3J5UmVnaXN0ZXJJZC5SNlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKFI0ICYmIFI1ICYmIFI2KSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBSNFZhbHVlID0gUjQudG9fYnl0ZV9hcnJheSgpO1xuICAgICAgICAgICAgICAgICAgY29uc3QgUjVWYWx1ZSA9IFI1LnRvX2J5dGVfYXJyYXkoKTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IFI2VmFsdWUgPSBSNi50b19ieXRlX2FycmF5KCk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBXSUQgPSBCdWZmZXIuZnJvbShSNFZhbHVlKS50b1N0cmluZygnaGV4Jyk7XG4gICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0SWQgPSBCdWZmZXIuZnJvbShSNVZhbHVlKS50b1N0cmluZygnaGV4Jyk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBldmVudERpZ2VzdCA9IEJ1ZmZlci5mcm9tKFI2VmFsdWUpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgICAgICAgICAgICAgIGNvbW1pdG1lbnRzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICB0eElkOiB0cmFuc2FjdGlvbi5pZCxcbiAgICAgICAgICAgICAgICAgICAgV0lEOiBXSUQsXG4gICAgICAgICAgICAgICAgICAgIGNvbW1pdG1lbnQ6IGV2ZW50RGlnZXN0LFxuICAgICAgICAgICAgICAgICAgICBldmVudElkOiByZXF1ZXN0SWQsXG4gICAgICAgICAgICAgICAgICAgIGJveElkOiBvdXRwdXQuYm94SWQsXG4gICAgICAgICAgICAgICAgICAgIGJveFNlcmlhbGl6ZWQ6IEJ1ZmZlci5mcm9tKFxuICAgICAgICAgICAgICAgICAgICAgIGRlY29kZWRCb3guc2lnbWFfc2VyaWFsaXplX2J5dGVzKClcbiAgICAgICAgICAgICAgICAgICAgKS50b1N0cmluZygnYmFzZTY0JyksXG4gICAgICAgICAgICAgICAgICAgIHJ3dENvdW50OiB0aGlzLnRva2VuTWFwXG4gICAgICAgICAgICAgICAgICAgICAgLndyYXBBbW91bnQoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlJXVElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgQmlnSW50KG91dHB1dC5hc3NldHNbMF0uYW1vdW50KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdlcmdvJ1xuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAuYW1vdW50LnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgIC8vIGVtcHR5XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gcHJvY2VzcyBpbnB1dHNcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRyYW5zYWN0aW9uLmlucHV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgc3BlbmRJZHMucHVzaCh7XG4gICAgICAgICAgICAgIGJveElkOiB0cmFuc2FjdGlvbi5pbnB1dHNbaV0uYm94SWQsXG4gICAgICAgICAgICAgIHR4SWQ6IHRyYW5zYWN0aW9uLmlkLFxuICAgICAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIHByb2Nlc3Mgc2F2ZSBjb21taXRtZW50c1xuICAgICAgICB0aGlzLmFjdGlvbnNcbiAgICAgICAgICAuc3RvcmVDb21taXRtZW50cyhjb21taXRtZW50cywgYmxvY2ssIHRoaXMuaWQpXG4gICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25zLnNwZW5kQ29tbWl0bWVudHMoc3BlbmRJZHMsIGJsb2NrLCB0aGlzLmlkKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlKSA9PiByZWplY3QoZSkpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihcbiAgICAgICAgICBgRXJyb3IgaW4gc29yaW5nIHBlcm1pdHMgb2YgdGhlIGJsb2NrICR7YmxvY2t9OiAke2V9YFxuICAgICAgICApO1xuICAgICAgICByZWplY3QoZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIGZvcmsgb25lIGJsb2NrIGFuZCByZW1vdmUgYWxsIHN0b3JlZCBpbmZvcm1hdGlvbiBmb3IgdGhpcyBibG9ja1xuICAgKiBAcGFyYW0gaGFzaDogYmxvY2sgaGFzaFxuICAgKi9cbiAgZm9ya0Jsb2NrID0gYXN5bmMgKGhhc2g6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGF3YWl0IHRoaXMuYWN0aW9ucy5kZWxldGVCbG9jayhoYXNoLCB0aGlzLmdldElkKCkpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBFeHRyYWN0b3IgYm94IGluaXRpYWxpemF0aW9uXG4gICAqIE5vIGFjdGlvbiBuZWVkZWQgZm9yIGNvbW1pdG1lbnQgZXh0cmFjdG9yXG4gICAqL1xuICBpbml0aWFsaXplQm94ZXMgPSBhc3luYyAoKSA9PiB7XG4gICAgcmV0dXJuO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBDb21taXRtZW50RXh0cmFjdG9yO1xuIl19
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWl0bWVudEV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9leHRyYWN0b3IvY29tbWl0bWVudEV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLHNCQUFzQixDQUFDO0FBRTdDLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFNUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFckUsT0FBTyxnQkFBZ0IsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBSWxDLE1BQU0sbUJBQW9CLFNBQVEsaUJBQThCO0lBQ3JELE1BQU0sQ0FBaUI7SUFDaEMsRUFBRSxDQUFTO0lBQ00sVUFBVSxDQUFhO0lBQ3ZCLG9CQUFvQixDQUFnQjtJQUNwQyxLQUFLLENBQVM7SUFDZCxPQUFPLENBQW1CO0lBQzFCLFFBQVEsQ0FBVztJQUVwQyxZQUNFLEVBQVUsRUFDVixTQUF3QixFQUN4QixLQUFhLEVBQ2IsVUFBc0IsRUFDdEIsTUFBZ0IsRUFDaEIsTUFBdUI7UUFFdkIsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsZUFBZSxFQUFFLENBQ25FLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENB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QyxNQUFNLENBQUMsS0FBSyxDQUNmLHdDQUF3QyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQ3RELENBQUM7Z0JBQ0YsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ1g7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILFNBQVMsR0FBRyxLQUFLLEVBQUUsSUFBWSxFQUFpQixFQUFFO1FBQ2hELE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILGVBQWUsR0FBRyxLQUFLLElBQUksRUFBRTtRQUMzQixPQUFPO0lBQ1QsQ0FBQyxDQUFDO0NBQ0g7QUFFRCxlQUFlLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgd2FzbSBmcm9tICdlcmdvLWxpYi13YXNtLW5vZGVqcyc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciwgRHVtbXlMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBCbG9jaywgVHJhbnNhY3Rpb24gfSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXItaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBYnN0cmFjdEV4dHJhY3RvciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtZXh0cmFjdG9yJztcblxuaW1wb3J0IENvbW1pdG1lbnRBY3Rpb24gZnJvbSAnLi4vYWN0aW9ucy9jb21taXRtZW50QWN0aW9uJztcbmltcG9ydCB7IGV4dHJhY3RlZENvbW1pdG1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2V4dHJhY3RlZENvbW1pdG1lbnQnO1xuaW1wb3J0IHsgSnNvbkJJIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgU3BlbmRJbmZvIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90eXBlcyc7XG5pbXBvcnQgeyBUb2tlbk1hcCB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvdG9rZW5zJztcblxuY2xhc3MgQ29tbWl0bWVudEV4dHJhY3RvciBleHRlbmRzIEFic3RyYWN0RXh0cmFjdG9yPFRyYW5zYWN0aW9uPiB7XG4gIHJlYWRvbmx5IGxvZ2dlcjogQWJzdHJhY3RMb2dnZXI7XG4gIGlkOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YVNvdXJjZTogRGF0YVNvdXJjZTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb21taXRtZW50c0VyZ29UcmVlczogQXJyYXk8c3RyaW5nPjtcbiAgcHJpdmF0ZSByZWFkb25seSBSV1RJZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvbnM6IENvbW1pdG1lbnRBY3Rpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgdG9rZW5NYXA6IFRva2VuTWFwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYWRkcmVzc2VzOiBBcnJheTxzdHJpbmc+LFxuICAgIFJXVElkOiBzdHJpbmcsXG4gICAgZGF0YVNvdXJjZTogRGF0YVNvdXJjZSxcbiAgICB0b2tlbnM6IFRva2VuTWFwLFxuICAgIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pZCA9IGlkO1xuICAgIHRoaXMuZGF0YVNvdXJjZSA9IGRhdGFTb3VyY2U7XG4gICAgdGhpcy5jb21taXRtZW50c0VyZ29UcmVlcyA9IGFkZHJlc3Nlcy5tYXAoKGFkZHJlc3MpID0+XG4gICAgICB3YXNtLkFkZHJlc3MuZnJvbV9iYXNlNTgoYWRkcmVzcykudG9fZXJnb190cmVlKCkudG9fYmFzZTE2X2J5dGVzKClcbiAgICApO1xuICAgIHRoaXMuUldUSWQgPSBSV1RJZDtcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlciA/IGxvZ2dlciA6IG5ldyBEdW1teUxvZ2dlcigpO1xuICAgIHRoaXMuYWN0aW9ucyA9IG5ldyBDb21taXRtZW50QWN0aW9uKGRhdGFTb3VyY2UsIHRoaXMubG9nZ2VyKTtcbiAgICB0aGlzLnRva2VuTWFwID0gdG9rZW5zO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBJZCBmb3IgY3VycmVudCBleHRyYWN0b3JcbiAgICovXG4gIGdldElkID0gKCkgPT4gdGhpcy5pZDtcblxuICAvKipcbiAgICogZ2V0cyBibG9jayBpZCBhbmQgdHJhbnNhY3Rpb25zIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGJsb2NrIGFuZCBzYXZlcyBpZiB0aGV5IGFyZSB2YWxpZCByb3NlblxuICAgKiAgdHJhbnNhY3Rpb25zIGFuZCBpbiBjYXNlIG9mIHN1Y2Nlc3MgcmV0dXJuIHRydWUgYW5kIGluIGNhc2Ugb2YgZmFpbHVyZSByZXR1cm5zIGZhbHNlXG4gICAqIEBwYXJhbSB0eHNcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqL1xuICBwcm9jZXNzVHJhbnNhY3Rpb25zID0gKFxuICAgIHR4czogQXJyYXk8VHJhbnNhY3Rpb24+LFxuICAgIGJsb2NrOiBCbG9ja1xuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY29tbWl0bWVudHM6IEFycmF5PGV4dHJhY3RlZENvbW1pdG1lbnQ+ID0gW107XG4gICAgICAgIGNvbnN0IHNwZW5kSWRzOiBBcnJheTxTcGVuZEluZm8+ID0gW107XG4gICAgICAgIHR4cy5mb3JFYWNoKCh0cmFuc2FjdGlvbikgPT4ge1xuICAgICAgICAgIC8vIHByb2Nlc3Mgb3V0cHV0c1xuICAgICAgICAgIGZvciAoY29uc3Qgb3V0cHV0IG9mIHRyYW5zYWN0aW9uLm91dHB1dHMpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgb3V0cHV0LmFzc2V0cyAmJlxuICAgICAgICAgICAgICBvdXRwdXQuYWRkaXRpb25hbFJlZ2lzdGVycyAmJlxuICAgICAgICAgICAgICBvdXRwdXQuYXNzZXRzLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICAgb3V0cHV0LmFzc2V0c1swXS50b2tlbklkID09PSB0aGlzLlJXVElkICYmXG4gICAgICAgICAgICAgIHRoaXMuY29tbWl0bWVudHNFcmdvVHJlZXMuaW5kZXhPZihvdXRwdXQuZXJnb1RyZWUpICE9PSAtMVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVjb2RlZEJveCA9IHdhc20uRXJnb0JveC5mcm9tX2pzb24oXG4gICAgICAgICAgICAgICAgICBKc29uQkkuc3RyaW5naWZ5KG91dHB1dClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IFI0ID0gZGVjb2RlZEJveC5yZWdpc3Rlcl92YWx1ZShcbiAgICAgICAgICAgICAgICAgIHdhc20uTm9uTWFuZGF0b3J5UmVnaXN0ZXJJZC5SNFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY29uc3QgUjUgPSBkZWNvZGVkQm94LnJlZ2lzdGVyX3ZhbHVlKFxuICAgICAgICAgICAgICAgICAgd2FzbS5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI1XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb25zdCBSNiA9IGRlY29kZWRCb3gucmVnaXN0ZXJfdmFsdWUoXG4gICAgICAgICAgICAgICAgICB3YXNtLk5vbk1hbmRhdG9yeVJlZ2lzdGVySWQuUjZcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmIChSNCAmJiBSNSAmJiBSNikge1xuICAgICAgICAgICAgICAgICAgY29uc3QgUjRWYWx1ZSA9IFI0LnRvX2J5dGVfYXJyYXkoKTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IFI1VmFsdWUgPSBSNS50b19ieXRlX2FycmF5KCk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBSNlZhbHVlID0gUjYudG9fYnl0ZV9hcnJheSgpO1xuICAgICAgICAgICAgICAgICAgY29uc3QgV0lEID0gQnVmZmVyLmZyb20oUjRWYWx1ZSkudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdElkID0gQnVmZmVyLmZyb20oUjVWYWx1ZSkudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgICAgICAgICAgICAgY29uc3QgZXZlbnREaWdlc3QgPSBCdWZmZXIuZnJvbShSNlZhbHVlKS50b1N0cmluZygnaGV4Jyk7XG4gICAgICAgICAgICAgICAgICBjb21taXRtZW50cy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgdHhJZDogdHJhbnNhY3Rpb24uaWQsXG4gICAgICAgICAgICAgICAgICAgIFdJRDogV0lELFxuICAgICAgICAgICAgICAgICAgICBjb21taXRtZW50OiBldmVudERpZ2VzdCxcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRJZDogcmVxdWVzdElkLFxuICAgICAgICAgICAgICAgICAgICBib3hJZDogb3V0cHV0LmJveElkLFxuICAgICAgICAgICAgICAgICAgICBib3hTZXJpYWxpemVkOiBCdWZmZXIuZnJvbShcbiAgICAgICAgICAgICAgICAgICAgICBkZWNvZGVkQm94LnNpZ21hX3NlcmlhbGl6ZV9ieXRlcygpXG4gICAgICAgICAgICAgICAgICAgICkudG9TdHJpbmcoJ2Jhc2U2NCcpLFxuICAgICAgICAgICAgICAgICAgICByd3RDb3VudDogdGhpcy50b2tlbk1hcFxuICAgICAgICAgICAgICAgICAgICAgIC53cmFwQW1vdW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5SV1RJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIEJpZ0ludChvdXRwdXQuYXNzZXRzWzBdLmFtb3VudCksXG4gICAgICAgICAgICAgICAgICAgICAgICAnZXJnbydcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgLmFtb3VudC50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAvLyBlbXB0eVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIHByb2Nlc3MgaW5wdXRzXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0cmFuc2FjdGlvbi5pbnB1dHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHNwZW5kSWRzLnB1c2goe1xuICAgICAgICAgICAgICBib3hJZDogdHJhbnNhY3Rpb24uaW5wdXRzW2ldLmJveElkLFxuICAgICAgICAgICAgICB0eElkOiB0cmFuc2FjdGlvbi5pZCxcbiAgICAgICAgICAgICAgaW5kZXg6IGksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBwcm9jZXNzIHNhdmUgY29tbWl0bWVudHNcbiAgICAgICAgdGhpcy5hY3Rpb25zXG4gICAgICAgICAgLnN0b3JlQ29tbWl0bWVudHMoY29tbWl0bWVudHMsIGJsb2NrLCB0aGlzLmlkKVxuICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9ucy5zcGVuZENvbW1pdG1lbnRzKHNwZW5kSWRzLCBibG9jaywgdGhpcy5pZCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZSkgPT4gcmVqZWN0KGUpKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgICAgYEVycm9yIGluIHNvcmluZyBwZXJtaXRzIG9mIHRoZSBibG9jayAke2Jsb2NrfTogJHtlfWBcbiAgICAgICAgKTtcbiAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBmb3JrIG9uZSBibG9jayBhbmQgcmVtb3ZlIGFsbCBzdG9yZWQgaW5mb3JtYXRpb24gZm9yIHRoaXMgYmxvY2tcbiAgICogQHBhcmFtIGhhc2g6IGJsb2NrIGhhc2hcbiAgICovXG4gIGZvcmtCbG9jayA9IGFzeW5jIChoYXNoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBhd2FpdCB0aGlzLmFjdGlvbnMuZGVsZXRlQmxvY2soaGFzaCwgdGhpcy5nZXRJZCgpKTtcbiAgfTtcblxuICAvKipcbiAgICogRXh0cmFjdG9yIGJveCBpbml0aWFsaXphdGlvblxuICAgKiBObyBhY3Rpb24gbmVlZGVkIGZvciBjb21taXRtZW50IGV4dHJhY3RvclxuICAgKi9cbiAgaW5pdGlhbGl6ZUJveGVzID0gYXN5bmMgKCkgPT4ge1xuICAgIHJldHVybjtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29tbWl0bWVudEV4dHJhY3RvcjtcbiJdfQ==
@@ -1,8 +1,8 @@
1
1
  import { DataSource } from 'typeorm';
2
- import { InitialInfo, Transaction } from '@rosen-bridge/scanner';
3
2
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
4
3
  import { OutputInfo } from '@rosen-clients/ergo-explorer/dist/src/v1/types/outputInfo';
5
- import { AbstractExtractor, Block } from '@rosen-bridge/abstract-extractor';
4
+ import { Block, BlockInfo, Transaction } from '@rosen-bridge/scanner-interfaces';
5
+ import { AbstractExtractor } from '@rosen-bridge/abstract-extractor';
6
6
  import PermitAction from '../actions/permitAction';
7
7
  import { ExtractedPermit } from '../interfaces/extractedPermit';
8
8
  declare class PermitExtractor extends AbstractExtractor<Transaction> {
@@ -101,7 +101,7 @@ declare class PermitExtractor extends AbstractExtractor<Transaction> {
101
101
  /**
102
102
  * Initializes the database with older permits related to the address
103
103
  */
104
- initializeBoxes: (initialBlock: InitialInfo) => Promise<void>;
104
+ initializeBoxes: (initialBlock: BlockInfo) => Promise<void>;
105
105
  /**
106
106
  * Validate all remaining permits in the database
107
107
  * update the correct ones and remove the invalid ones
@@ -1 +1 @@
1
- {"version":3,"file":"permitExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/permitExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAKrC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,2DAA2D,CAAC;AAEvF,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAI5E,OAAO,YAAY,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,cAAM,eAAgB,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IAC1D,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAC;gBAGnB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,cAAc;IAczB,KAAK,eAAiB;IAEtB;;;;;OAKG;IACH,mBAAmB,QACZ,MAAM,WAAW,CAAC,SAChB,KAAK,KACX,QAAQ,OAAO,CAAC,CAoEjB;IAEF,SAAS,SAAgB,MAAM,mBAE7B;IAEF;;OAEG;IACH,eAAe,iBAAwB,WAAW,mBA0BhD;IAEF;;;;;OAKG;IACH,wBAAwB,0BACC,MAAM,MAAM,CAAC,iBACrB,MAAM,mBAmBrB;IAEF;;;OAGG;IACH,kBAAkB,UACT,MAAM,KACZ,QAAQ,eAAe,GAAG,SAAS,CAAC,CAQrC;IAEF;;;;OAIG;IACH,oBAAoB,kBACH,MAAM,KACpB,QAAQ,MAAM,eAAe,CAAC,CAAC,CAuBhC;IAEF;;;OAGG;IACH,UAAU,SAAgB,MAAM;;;OAM9B;IAEF;;;;;;;OAOG;IACH,iBAAiB,UAAiB,MAAM,UAAU,CAAC,gCA4BjD;CACH;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"permitExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/permitExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAKrC,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,2DAA2D,CAAC;AAEvF,OAAO,EACL,KAAK,EACL,SAAS,EACT,WAAW,EACZ,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAIrE,OAAO,YAAY,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,cAAM,eAAgB,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IAC1D,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAC;gBAGnB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,cAAc;IAczB,KAAK,eAAiB;IAEtB;;;;;OAKG;IACH,mBAAmB,QACZ,MAAM,WAAW,CAAC,SAChB,KAAK,KACX,QAAQ,OAAO,CAAC,CAoEjB;IAEF,SAAS,SAAgB,MAAM,mBAE7B;IAEF;;OAEG;IACH,eAAe,iBAAwB,SAAS,mBA0B9C;IAEF;;;;;OAKG;IACH,wBAAwB,0BACC,MAAM,MAAM,CAAC,iBACrB,MAAM,mBAmBrB;IAEF;;;OAGG;IACH,kBAAkB,UACT,MAAM,KACZ,QAAQ,eAAe,GAAG,SAAS,CAAC,CAQrC;IAEF;;;;OAIG;IACH,oBAAoB,kBACH,MAAM,KACpB,QAAQ,MAAM,eAAe,CAAC,CAAC,CAuBhC;IAEF;;;OAGG;IACH,UAAU,SAAgB,MAAM;;;OAM9B;IAEF;;;;;;;OAOG;IACH,iBAAiB,UAAiB,MAAM,UAAU,CAAC,gCA4BjD;CACH;AAED,eAAe,eAAe,CAAC"}
@@ -225,4 +225,4 @@ class PermitExtractor extends AbstractExtractor {
225
225
  };
226
226
  }
227
227
  export default PermitExtractor;
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWl0RXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2V4dHJhY3Rvci9wZXJtaXRFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLElBQUksTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxLQUFLLE9BQU8sTUFBTSxzQkFBc0IsQ0FBQztBQUVoRCxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTVFLE9BQU8seUJBQXlCLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFTLE1BQU0sa0NBQWtDLENBQUM7QUFFNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sWUFBWSxNQUFNLHlCQUF5QixDQUFDO0FBR25ELE1BQU0sZUFBZ0IsU0FBUSxpQkFBOEI7SUFDakQsTUFBTSxDQUFpQjtJQUNoQyxFQUFFLENBQVM7SUFDTSxVQUFVLENBQWE7SUFDL0IsT0FBTyxDQUFlO0lBQ2QsY0FBYyxDQUFTO0lBQ3ZCLEdBQUcsQ0FBUztJQUNwQixXQUFXLENBQUM7SUFFckIsWUFDRSxFQUFVLEVBQ1YsVUFBc0IsRUFDdEIsT0FBZSxFQUNmLEdBQVcsRUFDWCxXQUFtQixFQUNuQixNQUF1QjtRQUV2QixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7YUFD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QUFDLE1BQU0sRUFBRTtvQkFDMUIsVUFBVSxFQUFFLFVBQVU7b0JBQ3RCLFdBQVcsRUFBRSxXQUFXO2lCQUN6QixDQUFDLENBQUM7YUFDSjtTQUNGO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0NBQ0g7QUFFRCxlQUFlLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICd0eXBlb3JtJztcbmltcG9ydCAqIGFzIHdhc20gZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJztcbmltcG9ydCB7IGRpZmZlcmVuY2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0ICogYXMgZXJnb0xpYiBmcm9tICdlcmdvLWxpYi13YXNtLW5vZGVqcyc7XG5pbXBvcnQgeyBJbml0aWFsSW5mbywgVHJhbnNhY3Rpb24gfSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXInO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgT3V0cHV0SW5mbyB9IGZyb20gJ0Byb3Nlbi1jbGllbnRzL2VyZ28tZXhwbG9yZXIvZGlzdC9zcmMvdjEvdHlwZXMvb3V0cHV0SW5mbyc7XG5pbXBvcnQgZXJnb0V4cGxvcmVyQ2xpZW50RmFjdG9yeSBmcm9tICdAcm9zZW4tY2xpZW50cy9lcmdvLWV4cGxvcmVyJztcbmltcG9ydCB7IEFic3RyYWN0RXh0cmFjdG9yLCBCbG9jayB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtZXh0cmFjdG9yJztcblxuaW1wb3J0IHsgRGVmYXVsdEFwaUxpbWl0IH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEpzb25CSSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCBQZXJtaXRBY3Rpb24gZnJvbSAnLi4vYWN0aW9ucy9wZXJtaXRBY3Rpb24nO1xuaW1wb3J0IHsgRXh0cmFjdGVkUGVybWl0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHRyYWN0ZWRQZXJtaXQnO1xuXG5jbGFzcyBQZXJtaXRFeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdEV4dHJhY3RvcjxUcmFuc2FjdGlvbj4ge1xuICByZWFkb25seSBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyO1xuICBpZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFTb3VyY2U6IERhdGFTb3VyY2U7XG4gIHJlYWRvbmx5IGFjdGlvbnM6IFBlcm1pdEFjdGlvbjtcbiAgcHJpdmF0ZSByZWFkb25seSBwZXJtaXRFcmdvVHJlZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IFJXVDogc3RyaW5nO1xuICByZWFkb25seSBleHBsb3JlckFwaTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBpZDogc3RyaW5nLFxuICAgIGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsXG4gICAgYWRkcmVzczogc3RyaW5nLFxuICAgIFJXVDogc3RyaW5nLFxuICAgIGV4cGxvcmVyVXJsOiBzdHJpbmcsXG4gICAgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgdGhpcy5kYXRhU291cmNlID0gZGF0YVNvdXJjZTtcbiAgICB0aGlzLnBlcm1pdEVyZ29UcmVlID0gd2FzbS5BZGRyZXNzLmZyb21fYmFzZTU4KGFkZHJlc3MpXG4gICAgICAudG9fZXJnb190cmVlKClcbiAgICAgIC50b19iYXNlMTZfYnl0ZXMoKTtcbiAgICB0aGlzLlJXVCA9IFJXVDtcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlciA/IGxvZ2dlciA6IG5ldyBEdW1teUxvZ2dlcigpO1xuICAgIHRoaXMuYWN0aW9ucyA9IG5ldyBQZXJtaXRBY3Rpb24oZGF0YVNvdXJjZSwgdGhpcy5sb2dnZXIpO1xuICAgIHRoaXMuZXhwbG9yZXJBcGkgPSBlcmdvRXhwbG9yZXJDbGllbnRGYWN0b3J5KGV4cGxvcmVyVXJsKTtcbiAgfVxuXG4gIGdldElkID0gKCkgPT4gdGhpcy5pZDtcblxuICAvKipcbiAgICogZ2V0cyBibG9jayBpZCBhbmQgdHJhbnNhY3Rpb25zIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGJsb2NrIGFuZCBzYXZlcyBpZiB0aGV5IGFyZSB2YWxpZCByb3NlblxuICAgKiAgdHJhbnNhY3Rpb25zIGFuZCBpbiBjYXNlIG9mIHN1Y2Nlc3MgcmV0dXJuIHRydWUgYW5kIGluIGNhc2Ugb2YgZmFpbHVyZSByZXR1cm5zIGZhbHNlXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gdHhzXG4gICAqL1xuICBwcm9jZXNzVHJhbnNhY3Rpb25zID0gKFxuICAgIHR4czogQXJyYXk8VHJhbnNhY3Rpb24+LFxuICAgIGJsb2NrOiBCbG9ja1xuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgYm94ZXM6IEFycmF5PEV4dHJhY3RlZFBlcm1pdD4gPSBbXTtcbiAgICAgICAgY29uc3Qgc3BlbmRJZHM6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgICAgICAgdHhzLmZvckVhY2goKHRyYW5zYWN0aW9uKSA9PiB7XG4gICAgICAgICAgZm9yIChjb25zdCBvdXRwdXQgb2YgdHJhbnNhY3Rpb24ub3V0cHV0cykge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIG91dHB1dC5hZGRpdGlvbmFsUmVnaXN0ZXJzICYmXG4gICAgICAgICAgICAgICAgb3V0cHV0LmFkZGl0aW9uYWxSZWdpc3RlcnMuUjQgJiZcbiAgICAgICAgICAgICAgICBvdXRwdXQuYXNzZXRzICYmXG4gICAgICAgICAgICAgICAgb3V0cHV0LmFzc2V0cy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAgICAgb3V0cHV0LmFzc2V0c1swXS50b2tlbklkID09PSB0aGlzLlJXVCAmJlxuICAgICAgICAgICAgICAgIG91dHB1dC5lcmdvVHJlZSA9PT0gdGhpcy5wZXJtaXRFcmdvVHJlZVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBib3hPdXRwdXQgPSB3YXNtLkVyZ29Cb3guZnJvbV9qc29uKFxuICAgICAgICAgICAgICAgICAgSnNvbkJJLnN0cmluZ2lmeShvdXRwdXQpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb25zdCByNCA9IGJveE91dHB1dC5yZWdpc3Rlcl92YWx1ZShcbiAgICAgICAgICAgICAgICAgIHdhc20uTm9uTWFuZGF0b3J5UmVnaXN0ZXJJZC5SNFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKHI0KSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBSNFNlcmlhbGl6ZWQgPSByNC50b19ieXRlX2FycmF5KCk7XG4gICAgICAgICAgICAgICAgICBpZiAoUjRTZXJpYWxpemVkLmxlbmd0aCA+PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGJveGVzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgIGJveElkOiBvdXRwdXQuYm94SWQsXG4gICAgICAgICAgICAgICAgICAgICAgYm94U2VyaWFsaXplZDogQnVmZmVyLmZyb20oXG4gICAgICAgICAgICAgICAgICAgICAgICBib3hPdXRwdXQuc2lnbWFfc2VyaWFsaXplX2J5dGVzKClcbiAgICAgICAgICAgICAgICAgICAgICApLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgICAgICAgICAgICAgICAgICBXSUQ6IEJ1ZmZlci5mcm9tKFI0U2VyaWFsaXplZCkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICAgICAgICAgICAgICAgIHR4SWQ6IG91dHB1dC50cmFuc2FjdGlvbklkLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAvLyBlbXB0eVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBwcm9jZXNzIGlucHV0c1xuICAgICAgICAgIGZvciAoY29uc3QgaW5wdXQgb2YgdHJhbnNhY3Rpb24uaW5wdXRzKSB7XG4gICAgICAgICAgICBzcGVuZElkcy5wdXNoKGlucHV0LmJveElkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuYWN0aW9uc1xuICAgICAgICAgIC5zdG9yZVBlcm1pdHMoYm94ZXMsIGJsb2NrLCB0aGlzLmdldElkKCkpXG4gICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25zXG4gICAgICAgICAgICAgIC5zcGVuZFBlcm1pdHMoc3BlbmRJZHMsIGJsb2NrLCB0aGlzLmdldElkKCkpXG4gICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICAgIGBFcnJvciBpbiBzdG9yaW5nIHBlcm1pdHMgb2YgdGhlIGJsb2NrICR7YmxvY2t9OiAke2V9YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgICAgYGJsb2NrICR7YmxvY2t9IGRvZXNuJ3Qgc2F2ZSBpbiB0aGUgZGF0YWJhc2Ugd2l0aCBlcnJvcjogJHtlfWBcbiAgICAgICAgKTtcbiAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIGZvcmtCbG9jayA9IGFzeW5jIChoYXNoOiBzdHJpbmcpID0+IHtcbiAgICBhd2FpdCB0aGlzLmFjdGlvbnMuZGVsZXRlQmxvY2soaGFzaCwgdGhpcy5nZXRJZCgpKTtcbiAgfTtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGRhdGFiYXNlIHdpdGggb2xkZXIgcGVybWl0cyByZWxhdGVkIHRvIHRoZSBhZGRyZXNzXG4gICAqL1xuICBpbml0aWFsaXplQm94ZXMgPSBhc3luYyAoaW5pdGlhbEJsb2NrOiBJbml0aWFsSW5mbykgPT4ge1xuICAgIGxldCBhbGxTdG9yZWRCb3hJZHMgPSBhd2FpdCB0aGlzLmFjdGlvbnMuZ2V0QWxsUGVybWl0Qm94SWRzKHRoaXMuZ2V0SWQoKSk7XG4gICAgLy8gRXh0cmFjdCB1bnNwZW50IHBlcm1pdHNcbiAgICBjb25zdCB1bnNwZW50UGVybWl0cyA9IGF3YWl0IHRoaXMuZ2V0QWxsVW5zcGVudFBlcm1pdHMoaW5pdGlhbEJsb2NrLmhlaWdodCk7XG4gICAgY29uc3QgdW5zcGVudEJveElkcyA9IHVuc3BlbnRQZXJtaXRzLm1hcCgoYm94KSA9PiBib3guYm94SWQpO1xuICAgIC8vIFN0b3JpbmcgZXh0cmFjdGVkIHBlcm1pdHNcbiAgICBmb3IgKGNvbnN0IHBlcm1pdCBvZiB1bnNwZW50UGVybWl0cykge1xuICAgICAgaWYgKGFsbFN0b3JlZEJveElkcy5pbmNsdWRlcyhwZXJtaXQuYm94SWQpKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuYWN0aW9ucy51cGRhdGVQZXJtaXQocGVybWl0LCB0aGlzLmdldElkKCkpO1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgIGBVcGRhdGVkIHRoZSBleGlzdGluZyB1bnNwZW50IHBlcm1pdCB3aXRoIGJveElkLCBbJHtwZXJtaXQuYm94SWR9XWBcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYFVwZGF0ZWQgcGVybWl0IFske0pTT04uc3RyaW5naWZ5KHBlcm1pdCl9XWApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb25zLmluc2VydFBlcm1pdChwZXJtaXQsIHRoaXMuZ2V0SWQoKSk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICAgICAgYEluc2VydGVkIG5ldyB1bnNwZW50IHBlcm1pdCB3aXRoIGJveElkLCBbJHtwZXJtaXQuYm94SWR9XWBcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYEluc2VydGVkIHBlcm1pdCBbJHtKU09OLnN0cmluZ2lmeShwZXJtaXQpfV1gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUmVtb3ZlIHVwZGF0ZWQgcGVybWl0cyBmcm9tIGV4aXN0aW5nIHBlcm1pdHMgaW4gZGF0YWJhc2VcbiAgICBhbGxTdG9yZWRCb3hJZHMgPSBkaWZmZXJlbmNlKGFsbFN0b3JlZEJveElkcywgdW5zcGVudEJveElkcyk7XG4gICAgLy8gVmFsaWRhdGluZyByZW1haW5lZCBwZXJtaXRzXG4gICAgLy8gVE9ETzogRml4IHZhbGlkYXRpb24gcHJvY2Vzc1xuICAgIC8vIGF3YWl0IHRoaXMudmFsaWRhdGVPbGRTdG9yZWRQZXJtaXRzKGFsbFN0b3JlZEJveElkcywgaW5pdGlhbEhlaWdodCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGFsbCByZW1haW5pbmcgcGVybWl0cyBpbiB0aGUgZGF0YWJhc2VcbiAgICogdXBkYXRlIHRoZSBjb3JyZWN0IG9uZXMgYW5kIHJlbW92ZSB0aGUgaW52YWxpZCBvbmVzXG4gICAqIEBwYXJhbSB1bmNoYW5nZWRTdG9yZWRCb3hJZHNcbiAgICogQHBhcmFtIGluaXRpYWxIZWlnaHRcbiAgICovXG4gIHZhbGlkYXRlT2xkU3RvcmVkUGVybWl0cyA9IGFzeW5jIChcbiAgICB1bmNoYW5nZWRTdG9yZWRCb3hJZHM6IEFycmF5PHN0cmluZz4sXG4gICAgaW5pdGlhbEhlaWdodDogbnVtYmVyXG4gICkgPT4ge1xuICAgIGZvciAoY29uc3QgYm94SWQgb2YgdW5jaGFuZ2VkU3RvcmVkQm94SWRzKSB7XG4gICAgICBjb25zdCBwZXJtaXQgPSBhd2FpdCB0aGlzLmdldFBlcm1pdFdpdGhCb3hJZChib3hJZCk7XG4gICAgICBpZiAocGVybWl0ICYmIHBlcm1pdC5zcGVuZEJsb2NrICYmIHBlcm1pdC5zcGVuZEhlaWdodCkge1xuICAgICAgICBpZiAocGVybWl0LnNwZW5kSGVpZ2h0IDwgaW5pdGlhbEhlaWdodClcbiAgICAgICAgICBhd2FpdCB0aGlzLmFjdGlvbnMudXBkYXRlU3BlbmRCbG9jayhcbiAgICAgICAgICAgIGJveElkLFxuICAgICAgICAgICAgdGhpcy5nZXRJZCgpLFxuICAgICAgICAgICAgcGVybWl0LnNwZW5kQmxvY2ssXG4gICAgICAgICAgICBwZXJtaXQuc3BlbmRIZWlnaHRcbiAgICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb25zLnJlbW92ZVBlcm1pdChib3hJZCwgdGhpcy5nZXRJZCgpKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgICBgUmVtb3ZlZCBpbnZhbGlkIGJveCBbJHtib3hJZH1dIGluIGluaXRpYWxpemF0aW9uIHZhbGlkYXRpb25gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gZXh0cmFjdGVkIHBlcm1pdCBmcm9tIGEgYm94XG4gICAqIEBwYXJhbSBib3hJZFxuICAgKi9cbiAgZ2V0UGVybWl0V2l0aEJveElkID0gYXN5bmMgKFxuICAgIGJveElkOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxFeHRyYWN0ZWRQZXJtaXQgfCB1bmRlZmluZWQ+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYm94ID0gYXdhaXQgdGhpcy5leHBsb3JlckFwaS52MS5nZXRBcGlWMUJveGVzUDEoYm94SWQpO1xuICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmV4dHJhY3RQZXJtaXREYXRhKFtib3hdKSlbMF07XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKGBQZXJtaXQgd2l0aCBib3hJZCAke2JveElkfSBkb2VzIG5vdCBleGlzdGApO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbGwgdW5zcGVudCBwZXJtaXRzXG4gICAqIEBwYXJhbSBpbml0aWFsSGVpZ2h0XG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBnZXRBbGxVbnNwZW50UGVybWl0cyA9IGFzeW5jIChcbiAgICBpbml0aWFsSGVpZ2h0OiBudW1iZXJcbiAgKTogUHJvbWlzZTxBcnJheTxFeHRyYWN0ZWRQZXJtaXQ+PiA9PiB7XG4gICAgbGV0IGV4dHJhY3RlZEJveGVzOiBBcnJheTxFeHRyYWN0ZWRQZXJtaXQ+ID0gW107XG4gICAgbGV0IG9mZnNldCA9IDAsXG4gICAgICB0b3RhbCA9IERlZmF1bHRBcGlMaW1pdDtcbiAgICB3aGlsZSAob2Zmc2V0IDwgdG90YWwpIHtcbiAgICAgIGNvbnN0IGJveGVzID0gYXdhaXQgdGhpcy5leHBsb3JlckFwaS52MS5nZXRBcGlWMUJveGVzVW5zcGVudEJ5ZXJnb3RyZWVQMShcbiAgICAgICAgdGhpcy5wZXJtaXRFcmdvVHJlZSxcbiAgICAgICAgeyBvZmZzZXQ6IG9mZnNldCwgbGltaXQ6IERlZmF1bHRBcGlMaW1pdCB9XG4gICAgICApO1xuICAgICAgaWYgKCFib3hlcy5pdGVtcykge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdFeHBsb3JlciBhcGkgb3V0cHV0IGl0ZW1zIHNob3VsZCBub3QgYmUgdW5kZWZpbmVkLicpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0luY29ycmVjdCBleHBsb3JlciBhcGkgb3V0cHV0Jyk7XG4gICAgICB9XG4gICAgICBjb25zdCBmaWx0ZXJlZEJveGVzID0gYXdhaXQgdGhpcy5leHRyYWN0UGVybWl0RGF0YShcbiAgICAgICAgYm94ZXMuaXRlbXMuZmlsdGVyKFxuICAgICAgICAgIChib3gpID0+IGJveC5jcmVhdGlvbkhlaWdodCAmJiBib3guY3JlYXRpb25IZWlnaHQgPCBpbml0aWFsSGVpZ2h0XG4gICAgICAgIClcbiAgICAgICk7XG4gICAgICBleHRyYWN0ZWRCb3hlcyA9IFsuLi5leHRyYWN0ZWRCb3hlcywgLi4uZmlsdGVyZWRCb3hlc107XG4gICAgICB0b3RhbCA9IGJveGVzLnRvdGFsO1xuICAgICAgb2Zmc2V0ICs9IERlZmF1bHRBcGlMaW1pdDtcbiAgICB9XG4gICAgcmV0dXJuIGV4dHJhY3RlZEJveGVzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGJsb2NrIGluZm9ybWF0aW9uIG9mIHR4XG4gICAqIEBwYXJhbSB0eElkXG4gICAqL1xuICBnZXRUeEJsb2NrID0gYXN5bmMgKHR4SWQ6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHR4ID0gYXdhaXQgdGhpcy5leHBsb3JlckFwaS52MS5nZXRBcGlWMVRyYW5zYWN0aW9uc1AxKHR4SWQpO1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdHguYmxvY2tJZCxcbiAgICAgIGhlaWdodDogdHguaW5jbHVzaW9uSGVpZ2h0LFxuICAgIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIEV4dHJhY3QgcGVybWl0IGRhdGEgZnJvbSBqc29uIGJveGVzXG4gICAqIGFuZCBmaWx0ZXIgdG8gZml0IGluIGEgc3BlY2lmaWVkIGhlaWdodCByYW5nZVxuICAgKiBAcGFyYW0gYm94ZXNcbiAgICogQHBhcmFtIHRvSGVpZ2h0XG4gICAqIEBwYXJhbSBoZWlnaHREaWZmZXJlbmNlXG4gICAqIEByZXR1cm5zIGV4dHJhY3RlZCBwZXJtaXRcbiAgICovXG4gIGV4dHJhY3RQZXJtaXREYXRhID0gYXN5bmMgKGJveGVzOiBBcnJheTxPdXRwdXRJbmZvPikgPT4ge1xuICAgIGNvbnN0IGV4dHJhY3RlZEJveGVzOiBBcnJheTxFeHRyYWN0ZWRQZXJtaXQ+ID0gW107XG4gICAgZm9yIChjb25zdCBib3hKc29uIG9mIGJveGVzKSB7XG4gICAgICBjb25zdCBib3ggPSBlcmdvTGliLkVyZ29Cb3guZnJvbV9qc29uKEpzb25CSS5zdHJpbmdpZnkoYm94SnNvbikpO1xuICAgICAgY29uc3QgcjQgPSBib3gucmVnaXN0ZXJfdmFsdWUoNCk7XG4gICAgICBpZiAocjQpIHtcbiAgICAgICAgY29uc3QgUjRTZXJpYWxpemVkID0gcjQudG9fYnl0ZV9hcnJheSgpO1xuICAgICAgICBsZXQgc3BlbmRCbG9jaywgc3BlbmRIZWlnaHQ7XG4gICAgICAgIGlmIChib3hKc29uLnNwZW50VHJhbnNhY3Rpb25JZCkge1xuICAgICAgICAgIGNvbnN0IGJsb2NrID0gYXdhaXQgdGhpcy5nZXRUeEJsb2NrKGJveEpzb24uc3BlbnRUcmFuc2FjdGlvbklkKTtcbiAgICAgICAgICBzcGVuZEJsb2NrID0gYmxvY2suaWQ7XG4gICAgICAgICAgc3BlbmRIZWlnaHQgPSBibG9jay5oZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgZXh0cmFjdGVkQm94ZXMucHVzaCh7XG4gICAgICAgICAgYm94SWQ6IGJveC5ib3hfaWQoKS50b19zdHIoKSxcbiAgICAgICAgICBib3hTZXJpYWxpemVkOiBCdWZmZXIuZnJvbShib3guc2lnbWFfc2VyaWFsaXplX2J5dGVzKCkpLnRvU3RyaW5nKFxuICAgICAgICAgICAgJ2Jhc2U2NCdcbiAgICAgICAgICApLFxuICAgICAgICAgIGJsb2NrOiBib3hKc29uLmJsb2NrSWQsXG4gICAgICAgICAgaGVpZ2h0OiBib3hKc29uLnNldHRsZW1lbnRIZWlnaHQsXG4gICAgICAgICAgV0lEOiBCdWZmZXIuZnJvbShSNFNlcmlhbGl6ZWQpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgICB0eElkOiBib3gudHhfaWQoKS50b19zdHIoKSxcbiAgICAgICAgICBzcGVuZEJsb2NrOiBzcGVuZEJsb2NrLFxuICAgICAgICAgIHNwZW5kSGVpZ2h0OiBzcGVuZEhlaWdodCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBleHRyYWN0ZWRCb3hlcztcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgUGVybWl0RXh0cmFjdG9yO1xuIl19
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWl0RXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2V4dHJhY3Rvci9wZXJtaXRFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLElBQUksTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxLQUFLLE9BQU8sTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTVFLE9BQU8seUJBQXlCLE1BQU0sOEJBQThCLENBQUM7QUFNckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sWUFBWSxNQUFNLHlCQUF5QixDQUFDO0FBR25ELE1BQU0sZUFBZ0IsU0FBUSxpQkFBOEI7SUFDakQsTUFBTSxDQUFpQjtJQUNoQyxFQUFFLENBQVM7SUFDTSxVQUFVLENBQWE7SUFDL0IsT0FBTyxDQUFlO0lBQ2QsY0FBYyxDQUFTO0lBQ3ZCLEdBQUcsQ0FBUztJQUNwQixXQUFXLENBQUM7SUFFckIsWUFDRSxFQUFVLEVBQ1YsVUFBc0IsRUFDdEIsT0FBZSxFQUNmLEdBQVcsRUFDWCxXQUFtQixFQUNuQixNQUF1QjtRQUV2QixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7YUFD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QUFDLE1BQU0sRUFBRTtvQkFDMUIsVUFBVSxFQUFFLFVBQVU7b0JBQ3RCLFdBQVcsRUFBRSxXQUFXO2lCQUN6QixDQUFDLENBQUM7YUFDSjtTQUNGO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0NBQ0g7QUFFRCxlQUFlLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICd0eXBlb3JtJztcbmltcG9ydCAqIGFzIHdhc20gZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJztcbmltcG9ydCB7IGRpZmZlcmVuY2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0ICogYXMgZXJnb0xpYiBmcm9tICdlcmdvLWxpYi13YXNtLW5vZGVqcyc7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciwgRHVtbXlMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBPdXRwdXRJbmZvIH0gZnJvbSAnQHJvc2VuLWNsaWVudHMvZXJnby1leHBsb3Jlci9kaXN0L3NyYy92MS90eXBlcy9vdXRwdXRJbmZvJztcbmltcG9ydCBlcmdvRXhwbG9yZXJDbGllbnRGYWN0b3J5IGZyb20gJ0Byb3Nlbi1jbGllbnRzL2VyZ28tZXhwbG9yZXInO1xuaW1wb3J0IHtcbiAgQmxvY2ssXG4gIEJsb2NrSW5mbyxcbiAgVHJhbnNhY3Rpb24sXG59IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFic3RyYWN0RXh0cmFjdG9yIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1leHRyYWN0b3InO1xuXG5pbXBvcnQgeyBEZWZhdWx0QXBpTGltaXQgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgSnNvbkJJIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IFBlcm1pdEFjdGlvbiBmcm9tICcuLi9hY3Rpb25zL3Blcm1pdEFjdGlvbic7XG5pbXBvcnQgeyBFeHRyYWN0ZWRQZXJtaXQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2V4dHJhY3RlZFBlcm1pdCc7XG5cbmNsYXNzIFBlcm1pdEV4dHJhY3RvciBleHRlbmRzIEFic3RyYWN0RXh0cmFjdG9yPFRyYW5zYWN0aW9uPiB7XG4gIHJlYWRvbmx5IGxvZ2dlcjogQWJzdHJhY3RMb2dnZXI7XG4gIGlkOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YVNvdXJjZTogRGF0YVNvdXJjZTtcbiAgcmVhZG9ubHkgYWN0aW9uczogUGVybWl0QWN0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IHBlcm1pdEVyZ29UcmVlOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgUldUOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGV4cGxvcmVyQXBpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgZGF0YVNvdXJjZTogRGF0YVNvdXJjZSxcbiAgICBhZGRyZXNzOiBzdHJpbmcsXG4gICAgUldUOiBzdHJpbmcsXG4gICAgZXhwbG9yZXJVcmw6IHN0cmluZyxcbiAgICBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlclxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaWQgPSBpZDtcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBkYXRhU291cmNlO1xuICAgIHRoaXMucGVybWl0RXJnb1RyZWUgPSB3YXNtLkFkZHJlc3MuZnJvbV9iYXNlNTgoYWRkcmVzcylcbiAgICAgIC50b19lcmdvX3RyZWUoKVxuICAgICAgLnRvX2Jhc2UxNl9ieXRlcygpO1xuICAgIHRoaXMuUldUID0gUldUO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyID8gbG9nZ2VyIDogbmV3IER1bW15TG9nZ2VyKCk7XG4gICAgdGhpcy5hY3Rpb25zID0gbmV3IFBlcm1pdEFjdGlvbihkYXRhU291cmNlLCB0aGlzLmxvZ2dlcik7XG4gICAgdGhpcy5leHBsb3JlckFwaSA9IGVyZ29FeHBsb3JlckNsaWVudEZhY3RvcnkoZXhwbG9yZXJVcmwpO1xuICB9XG5cbiAgZ2V0SWQgPSAoKSA9PiB0aGlzLmlkO1xuXG4gIC8qKlxuICAgKiBnZXRzIGJsb2NrIGlkIGFuZCB0cmFuc2FjdGlvbnMgY29ycmVzcG9uZGluZyB0byB0aGUgYmxvY2sgYW5kIHNhdmVzIGlmIHRoZXkgYXJlIHZhbGlkIHJvc2VuXG4gICAqICB0cmFuc2FjdGlvbnMgYW5kIGluIGNhc2Ugb2Ygc3VjY2VzcyByZXR1cm4gdHJ1ZSBhbmQgaW4gY2FzZSBvZiBmYWlsdXJlIHJldHVybnMgZmFsc2VcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSB0eHNcbiAgICovXG4gIHByb2Nlc3NUcmFuc2FjdGlvbnMgPSAoXG4gICAgdHhzOiBBcnJheTxUcmFuc2FjdGlvbj4sXG4gICAgYmxvY2s6IEJsb2NrXG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBib3hlczogQXJyYXk8RXh0cmFjdGVkUGVybWl0PiA9IFtdO1xuICAgICAgICBjb25zdCBzcGVuZElkczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgICAgICB0eHMuZm9yRWFjaCgodHJhbnNhY3Rpb24pID0+IHtcbiAgICAgICAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiB0cmFuc2FjdGlvbi5vdXRwdXRzKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgb3V0cHV0LmFkZGl0aW9uYWxSZWdpc3RlcnMgJiZcbiAgICAgICAgICAgICAgICBvdXRwdXQuYWRkaXRpb25hbFJlZ2lzdGVycy5SNCAmJlxuICAgICAgICAgICAgICAgIG91dHB1dC5hc3NldHMgJiZcbiAgICAgICAgICAgICAgICBvdXRwdXQuYXNzZXRzLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICAgICBvdXRwdXQuYXNzZXRzWzBdLnRva2VuSWQgPT09IHRoaXMuUldUICYmXG4gICAgICAgICAgICAgICAgb3V0cHV0LmVyZ29UcmVlID09PSB0aGlzLnBlcm1pdEVyZ29UcmVlXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJveE91dHB1dCA9IHdhc20uRXJnb0JveC5mcm9tX2pzb24oXG4gICAgICAgICAgICAgICAgICBKc29uQkkuc3RyaW5naWZ5KG91dHB1dClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IHI0ID0gYm94T3V0cHV0LnJlZ2lzdGVyX3ZhbHVlKFxuICAgICAgICAgICAgICAgICAgd2FzbS5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI0XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAocjQpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IFI0U2VyaWFsaXplZCA9IHI0LnRvX2J5dGVfYXJyYXkoKTtcbiAgICAgICAgICAgICAgICAgIGlmIChSNFNlcmlhbGl6ZWQubGVuZ3RoID49IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgYm94ZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgYm94SWQ6IG91dHB1dC5ib3hJZCxcbiAgICAgICAgICAgICAgICAgICAgICBib3hTZXJpYWxpemVkOiBCdWZmZXIuZnJvbShcbiAgICAgICAgICAgICAgICAgICAgICAgIGJveE91dHB1dC5zaWdtYV9zZXJpYWxpemVfYnl0ZXMoKVxuICAgICAgICAgICAgICAgICAgICAgICkudG9TdHJpbmcoJ2Jhc2U2NCcpLFxuICAgICAgICAgICAgICAgICAgICAgIFdJRDogQnVmZmVyLmZyb20oUjRTZXJpYWxpemVkKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgICAgICAgICAgICAgICAgdHhJZDogb3V0cHV0LnRyYW5zYWN0aW9uSWQsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgIC8vIGVtcHR5XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIHByb2Nlc3MgaW5wdXRzXG4gICAgICAgICAgZm9yIChjb25zdCBpbnB1dCBvZiB0cmFuc2FjdGlvbi5pbnB1dHMpIHtcbiAgICAgICAgICAgIHNwZW5kSWRzLnB1c2goaW5wdXQuYm94SWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hY3Rpb25zXG4gICAgICAgICAgLnN0b3JlUGVybWl0cyhib3hlcywgYmxvY2ssIHRoaXMuZ2V0SWQoKSlcbiAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbnNcbiAgICAgICAgICAgICAgLnNwZW5kUGVybWl0cyhzcGVuZElkcywgYmxvY2ssIHRoaXMuZ2V0SWQoKSlcbiAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihcbiAgICAgICAgICAgICAgYEVycm9yIGluIHN0b3JpbmcgcGVybWl0cyBvZiB0aGUgYmxvY2sgJHtibG9ja306ICR7ZX1gXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihcbiAgICAgICAgICBgYmxvY2sgJHtibG9ja30gZG9lc24ndCBzYXZlIGluIHRoZSBkYXRhYmFzZSB3aXRoIGVycm9yOiAke2V9YFxuICAgICAgICApO1xuICAgICAgICByZWplY3QoZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgZm9ya0Jsb2NrID0gYXN5bmMgKGhhc2g6IHN0cmluZykgPT4ge1xuICAgIGF3YWl0IHRoaXMuYWN0aW9ucy5kZWxldGVCbG9jayhoYXNoLCB0aGlzLmdldElkKCkpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgZGF0YWJhc2Ugd2l0aCBvbGRlciBwZXJtaXRzIHJlbGF0ZWQgdG8gdGhlIGFkZHJlc3NcbiAgICovXG4gIGluaXRpYWxpemVCb3hlcyA9IGFzeW5jIChpbml0aWFsQmxvY2s6IEJsb2NrSW5mbykgPT4ge1xuICAgIGxldCBhbGxTdG9yZWRCb3hJZHMgPSBhd2FpdCB0aGlzLmFjdGlvbnMuZ2V0QWxsUGVybWl0Qm94SWRzKHRoaXMuZ2V0SWQoKSk7XG4gICAgLy8gRXh0cmFjdCB1bnNwZW50IHBlcm1pdHNcbiAgICBjb25zdCB1bnNwZW50UGVybWl0cyA9IGF3YWl0IHRoaXMuZ2V0QWxsVW5zcGVudFBlcm1pdHMoaW5pdGlhbEJsb2NrLmhlaWdodCk7XG4gICAgY29uc3QgdW5zcGVudEJveElkcyA9IHVuc3BlbnRQZXJtaXRzLm1hcCgoYm94KSA9PiBib3guYm94SWQpO1xuICAgIC8vIFN0b3JpbmcgZXh0cmFjdGVkIHBlcm1pdHNcbiAgICBmb3IgKGNvbnN0IHBlcm1pdCBvZiB1bnNwZW50UGVybWl0cykge1xuICAgICAgaWYgKGFsbFN0b3JlZEJveElkcy5pbmNsdWRlcyhwZXJtaXQuYm94SWQpKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuYWN0aW9ucy51cGRhdGVQZXJtaXQocGVybWl0LCB0aGlzLmdldElkKCkpO1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgIGBVcGRhdGVkIHRoZSBleGlzdGluZyB1bnNwZW50IHBlcm1pdCB3aXRoIGJveElkLCBbJHtwZXJtaXQuYm94SWR9XWBcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYFVwZGF0ZWQgcGVybWl0IFske0pTT04uc3RyaW5naWZ5KHBlcm1pdCl9XWApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb25zLmluc2VydFBlcm1pdChwZXJtaXQsIHRoaXMuZ2V0SWQoKSk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICAgICAgYEluc2VydGVkIG5ldyB1bnNwZW50IHBlcm1pdCB3aXRoIGJveElkLCBbJHtwZXJtaXQuYm94SWR9XWBcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYEluc2VydGVkIHBlcm1pdCBbJHtKU09OLnN0cmluZ2lmeShwZXJtaXQpfV1gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUmVtb3ZlIHVwZGF0ZWQgcGVybWl0cyBmcm9tIGV4aXN0aW5nIHBlcm1pdHMgaW4gZGF0YWJhc2VcbiAgICBhbGxTdG9yZWRCb3hJZHMgPSBkaWZmZXJlbmNlKGFsbFN0b3JlZEJveElkcywgdW5zcGVudEJveElkcyk7XG4gICAgLy8gVmFsaWRhdGluZyByZW1haW5lZCBwZXJtaXRzXG4gICAgLy8gVE9ETzogRml4IHZhbGlkYXRpb24gcHJvY2Vzc1xuICAgIC8vIGF3YWl0IHRoaXMudmFsaWRhdGVPbGRTdG9yZWRQZXJtaXRzKGFsbFN0b3JlZEJveElkcywgaW5pdGlhbEhlaWdodCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGFsbCByZW1haW5pbmcgcGVybWl0cyBpbiB0aGUgZGF0YWJhc2VcbiAgICogdXBkYXRlIHRoZSBjb3JyZWN0IG9uZXMgYW5kIHJlbW92ZSB0aGUgaW52YWxpZCBvbmVzXG4gICAqIEBwYXJhbSB1bmNoYW5nZWRTdG9yZWRCb3hJZHNcbiAgICogQHBhcmFtIGluaXRpYWxIZWlnaHRcbiAgICovXG4gIHZhbGlkYXRlT2xkU3RvcmVkUGVybWl0cyA9IGFzeW5jIChcbiAgICB1bmNoYW5nZWRTdG9yZWRCb3hJZHM6IEFycmF5PHN0cmluZz4sXG4gICAgaW5pdGlhbEhlaWdodDogbnVtYmVyXG4gICkgPT4ge1xuICAgIGZvciAoY29uc3QgYm94SWQgb2YgdW5jaGFuZ2VkU3RvcmVkQm94SWRzKSB7XG4gICAgICBjb25zdCBwZXJtaXQgPSBhd2FpdCB0aGlzLmdldFBlcm1pdFdpdGhCb3hJZChib3hJZCk7XG4gICAgICBpZiAocGVybWl0ICYmIHBlcm1pdC5zcGVuZEJsb2NrICYmIHBlcm1pdC5zcGVuZEhlaWdodCkge1xuICAgICAgICBpZiAocGVybWl0LnNwZW5kSGVpZ2h0IDwgaW5pdGlhbEhlaWdodClcbiAgICAgICAgICBhd2FpdCB0aGlzLmFjdGlvbnMudXBkYXRlU3BlbmRCbG9jayhcbiAgICAgICAgICAgIGJveElkLFxuICAgICAgICAgICAgdGhpcy5nZXRJZCgpLFxuICAgICAgICAgICAgcGVybWl0LnNwZW5kQmxvY2ssXG4gICAgICAgICAgICBwZXJtaXQuc3BlbmRIZWlnaHRcbiAgICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb25zLnJlbW92ZVBlcm1pdChib3hJZCwgdGhpcy5nZXRJZCgpKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgICBgUmVtb3ZlZCBpbnZhbGlkIGJveCBbJHtib3hJZH1dIGluIGluaXRpYWxpemF0aW9uIHZhbGlkYXRpb25gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gZXh0cmFjdGVkIHBlcm1pdCBmcm9tIGEgYm94XG4gICAqIEBwYXJhbSBib3hJZFxuICAgKi9cbiAgZ2V0UGVybWl0V2l0aEJveElkID0gYXN5bmMgKFxuICAgIGJveElkOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxFeHRyYWN0ZWRQZXJtaXQgfCB1bmRlZmluZWQ+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYm94ID0gYXdhaXQgdGhpcy5leHBsb3JlckFwaS52MS5nZXRBcGlWMUJveGVzUDEoYm94SWQpO1xuICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmV4dHJhY3RQZXJtaXREYXRhKFtib3hdKSlbMF07XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKGBQZXJtaXQgd2l0aCBib3hJZCAke2JveElkfSBkb2VzIG5vdCBleGlzdGApO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbGwgdW5zcGVudCBwZXJtaXRzXG4gICAqIEBwYXJhbSBpbml0aWFsSGVpZ2h0XG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBnZXRBbGxVbnNwZW50UGVybWl0cyA9IGFzeW5jIChcbiAgICBpbml0aWFsSGVpZ2h0OiBudW1iZXJcbiAgKTogUHJvbWlzZTxBcnJheTxFeHRyYWN0ZWRQZXJtaXQ+PiA9PiB7XG4gICAgbGV0IGV4dHJhY3RlZEJveGVzOiBBcnJheTxFeHRyYWN0ZWRQZXJtaXQ+ID0gW107XG4gICAgbGV0IG9mZnNldCA9IDAsXG4gICAgICB0b3RhbCA9IERlZmF1bHRBcGlMaW1pdDtcbiAgICB3aGlsZSAob2Zmc2V0IDwgdG90YWwpIHtcbiAgICAgIGNvbnN0IGJveGVzID0gYXdhaXQgdGhpcy5leHBsb3JlckFwaS52MS5nZXRBcGlWMUJveGVzVW5zcGVudEJ5ZXJnb3RyZWVQMShcbiAgICAgICAgdGhpcy5wZXJtaXRFcmdvVHJlZSxcbiAgICAgICAgeyBvZmZzZXQ6IG9mZnNldCwgbGltaXQ6IERlZmF1bHRBcGlMaW1pdCB9XG4gICAgICApO1xuICAgICAgaWYgKCFib3hlcy5pdGVtcykge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdFeHBsb3JlciBhcGkgb3V0cHV0IGl0ZW1zIHNob3VsZCBub3QgYmUgdW5kZWZpbmVkLicpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0luY29ycmVjdCBleHBsb3JlciBhcGkgb3V0cHV0Jyk7XG4gICAgICB9XG4gICAgICBjb25zdCBmaWx0ZXJlZEJveGVzID0gYXdhaXQgdGhpcy5leHRyYWN0UGVybWl0RGF0YShcbiAgICAgICAgYm94ZXMuaXRlbXMuZmlsdGVyKFxuICAgICAgICAgIChib3gpID0+IGJveC5jcmVhdGlvbkhlaWdodCAmJiBib3guY3JlYXRpb25IZWlnaHQgPCBpbml0aWFsSGVpZ2h0XG4gICAgICAgIClcbiAgICAgICk7XG4gICAgICBleHRyYWN0ZWRCb3hlcyA9IFsuLi5leHRyYWN0ZWRCb3hlcywgLi4uZmlsdGVyZWRCb3hlc107XG4gICAgICB0b3RhbCA9IGJveGVzLnRvdGFsO1xuICAgICAgb2Zmc2V0ICs9IERlZmF1bHRBcGlMaW1pdDtcbiAgICB9XG4gICAgcmV0dXJuIGV4dHJhY3RlZEJveGVzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGJsb2NrIGluZm9ybWF0aW9uIG9mIHR4XG4gICAqIEBwYXJhbSB0eElkXG4gICAqL1xuICBnZXRUeEJsb2NrID0gYXN5bmMgKHR4SWQ6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHR4ID0gYXdhaXQgdGhpcy5leHBsb3JlckFwaS52MS5nZXRBcGlWMVRyYW5zYWN0aW9uc1AxKHR4SWQpO1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdHguYmxvY2tJZCxcbiAgICAgIGhlaWdodDogdHguaW5jbHVzaW9uSGVpZ2h0LFxuICAgIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIEV4dHJhY3QgcGVybWl0IGRhdGEgZnJvbSBqc29uIGJveGVzXG4gICAqIGFuZCBmaWx0ZXIgdG8gZml0IGluIGEgc3BlY2lmaWVkIGhlaWdodCByYW5nZVxuICAgKiBAcGFyYW0gYm94ZXNcbiAgICogQHBhcmFtIHRvSGVpZ2h0XG4gICAqIEBwYXJhbSBoZWlnaHREaWZmZXJlbmNlXG4gICAqIEByZXR1cm5zIGV4dHJhY3RlZCBwZXJtaXRcbiAgICovXG4gIGV4dHJhY3RQZXJtaXREYXRhID0gYXN5bmMgKGJveGVzOiBBcnJheTxPdXRwdXRJbmZvPikgPT4ge1xuICAgIGNvbnN0IGV4dHJhY3RlZEJveGVzOiBBcnJheTxFeHRyYWN0ZWRQZXJtaXQ+ID0gW107XG4gICAgZm9yIChjb25zdCBib3hKc29uIG9mIGJveGVzKSB7XG4gICAgICBjb25zdCBib3ggPSBlcmdvTGliLkVyZ29Cb3guZnJvbV9qc29uKEpzb25CSS5zdHJpbmdpZnkoYm94SnNvbikpO1xuICAgICAgY29uc3QgcjQgPSBib3gucmVnaXN0ZXJfdmFsdWUoNCk7XG4gICAgICBpZiAocjQpIHtcbiAgICAgICAgY29uc3QgUjRTZXJpYWxpemVkID0gcjQudG9fYnl0ZV9hcnJheSgpO1xuICAgICAgICBsZXQgc3BlbmRCbG9jaywgc3BlbmRIZWlnaHQ7XG4gICAgICAgIGlmIChib3hKc29uLnNwZW50VHJhbnNhY3Rpb25JZCkge1xuICAgICAgICAgIGNvbnN0IGJsb2NrID0gYXdhaXQgdGhpcy5nZXRUeEJsb2NrKGJveEpzb24uc3BlbnRUcmFuc2FjdGlvbklkKTtcbiAgICAgICAgICBzcGVuZEJsb2NrID0gYmxvY2suaWQ7XG4gICAgICAgICAgc3BlbmRIZWlnaHQgPSBibG9jay5oZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgZXh0cmFjdGVkQm94ZXMucHVzaCh7XG4gICAgICAgICAgYm94SWQ6IGJveC5ib3hfaWQoKS50b19zdHIoKSxcbiAgICAgICAgICBib3hTZXJpYWxpemVkOiBCdWZmZXIuZnJvbShib3guc2lnbWFfc2VyaWFsaXplX2J5dGVzKCkpLnRvU3RyaW5nKFxuICAgICAgICAgICAgJ2Jhc2U2NCdcbiAgICAgICAgICApLFxuICAgICAgICAgIGJsb2NrOiBib3hKc29uLmJsb2NrSWQsXG4gICAgICAgICAgaGVpZ2h0OiBib3hKc29uLnNldHRsZW1lbnRIZWlnaHQsXG4gICAgICAgICAgV0lEOiBCdWZmZXIuZnJvbShSNFNlcmlhbGl6ZWQpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgICB0eElkOiBib3gudHhfaWQoKS50b19zdHIoKSxcbiAgICAgICAgICBzcGVuZEJsb2NrOiBzcGVuZEJsb2NrLFxuICAgICAgICAgIHNwZW5kSGVpZ2h0OiBzcGVuZEhlaWdodCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBleHRyYWN0ZWRCb3hlcztcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgUGVybWl0RXh0cmFjdG9yO1xuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rosen-bridge/watcher-data-extractor",
3
- "version": "12.0.0",
3
+ "version": "12.1.0",
4
4
  "description": "Extractor for rosen specific boxes on ergo blockchain",
5
5
  "author": "Rosen Team",
6
6
  "license": "GPL-3.0",
@@ -19,12 +19,12 @@
19
19
  "dist"
20
20
  ],
21
21
  "dependencies": {
22
- "@rosen-bridge/abstract-extractor": "^1.0.2",
22
+ "@rosen-bridge/abstract-extractor": "^2.0.0",
23
23
  "@rosen-bridge/abstract-logger": "^2.0.1",
24
24
  "@rosen-bridge/extended-typeorm": "^0.0.3",
25
25
  "@rosen-bridge/json-bigint": "^0.1.0",
26
- "@rosen-bridge/scanner": "^5.1.0",
27
- "@rosen-bridge/tokens": "^3.0.0",
26
+ "@rosen-bridge/scanner-interfaces": "^0.1.0",
27
+ "@rosen-bridge/tokens": "^3.1.0",
28
28
  "@rosen-clients/ergo-explorer": "^1.1.1",
29
29
  "@types/lodash-es": "^4.17.6",
30
30
  "blakejs": "^1.2.1",
@@ -39,6 +39,7 @@
39
39
  "type": "module",
40
40
  "devDependencies": {
41
41
  "@babel/preset-env": "^7.19.0",
42
+ "@rosen-bridge/scanner": "^6.0.0",
42
43
  "@types/jest": "^28.1.6",
43
44
  "@types/json-bigint": "^1.0.1",
44
45
  "@types/node": "^20.11.9",