@rosen-bridge/abstract-scanner 0.2.2 → 1.0.0-8f3c7016

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @rosen-bridge/abstract-scanner
2
2
 
3
+ ## 1.0.0-8f3c7016
4
+
5
+ ### Major Changes
6
+
7
+ - Update AbstractExtractor interface; use `BlockInfo` in `processTransactions` and rename `initializeBoxes` to `initializeData`
8
+
9
+ ### Patch Changes
10
+
11
+ - Update dependencies
12
+ - Update dependencies
13
+ - Update dependencies
14
+ - Update dependencies
15
+ - @rosen-bridge/abstract-extractor@3.0.0-8f3c7016
16
+
3
17
  ## 0.2.2
4
18
 
5
19
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"generalScanner.d.ts","sourceRoot":"","sources":["../../../lib/scanner/abstract/generalScanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EACL,wBAAwB,EACxB,KAAK,EACN,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,uBAAe,cAAc,CAC3B,eAAe,CACf,SAAQ,eAAe,CAAC,eAAe,CAAC;IAOtC,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;IAElB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,gBAAgB;IAExB,OAAO,CAAC,MAAM,CAAC;IAZjB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,SAAS,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAa;IAE/D,IAAI,eAAmE;gBAG7D,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EAC9B,aAAa,EAAE,MAAM,EACb,OAAO,EAAE,wBAAwB,CAAC,eAAe,CAAC,EAClD,gBAAgB,SAAI,EAC5B,MAAM,CAAC,EAAE,cAAc,EACf,MAAM,CAAC,EAAE,MAAM,YAAA;IAYzB;;;OAGG;IACH,SAAS,CAAC,aAAa,QAAO,OAAO,CAAC,KAAK,CAAC,CAE1C;IAEF;;;OAGG;IACH,SAAS,CAAC,YAAY,QAAa,OAAO,CAAC,OAAO,CAAC,CAUjD;IAEF;;OAEG;IACH,SAAS,CAAC,4BAA4B,GAAU,WAAW,MAAM,mBAK/D;IAEF;;;OAGG;IACH,SAAS,CAAC,YAAY,GAAU,OAAO,KAAK,kCAyB1C;IAEF;;;OAGG;IACH,SAAS,CAAC,WAAW,GAAU,gBAAgB,WAAW,mBA8BxD;IAEF;;;OAGG;IACH,SAAS,CAAC,YAAY,sBAepB;IAEF;;;;OAIG;IACH,SAAS,CAAC,UAAU,6BAYlB;IAEF;;;OAGG;IACI,uBAAuB,QAAO,MAAM,GAAG,SAAS,CAC3B;IAE5B;;;OAGG;IACH,MAAM,sBAqBJ;CACH;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"generalScanner.d.ts","sourceRoot":"","sources":["../../../lib/scanner/abstract/generalScanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EACL,wBAAwB,EACxB,KAAK,EACN,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,uBAAe,cAAc,CAC3B,eAAe,CACf,SAAQ,eAAe,CAAC,eAAe,CAAC;IAOtC,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;IAElB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,gBAAgB;IAExB,OAAO,CAAC,MAAM,CAAC;IAZjB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,SAAS,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAa;IAE/D,IAAI,eAAmE;gBAG7D,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EAC9B,aAAa,EAAE,MAAM,EACb,OAAO,EAAE,wBAAwB,CAAC,eAAe,CAAC,EAClD,gBAAgB,SAAI,EAC5B,MAAM,CAAC,EAAE,cAAc,EACf,MAAM,CAAC,EAAE,MAAM,YAAA;IAYzB;;;OAGG;IACH,SAAS,CAAC,aAAa,QAAO,OAAO,CAAC,KAAK,CAAC,CAE1C;IAEF;;;OAGG;IACH,SAAS,CAAC,YAAY,QAAa,OAAO,CAAC,OAAO,CAAC,CAUjD;IAEF;;OAEG;IACH,SAAS,CAAC,4BAA4B,GAAU,WAAW,MAAM,mBAK/D;IAEF;;;OAGG;IACH,SAAS,CAAC,YAAY,GAAU,OAAO,KAAK,kCAyB1C;IAEF;;;OAGG;IACH,SAAS,CAAC,WAAW,GAAU,gBAAgB,WAAW,mBA8BxD;IAEF;;;OAGG;IACH,SAAS,CAAC,YAAY,sBAepB;IAEF;;;;OAIG;IACH,SAAS,CAAC,UAAU,6BAYlB;IAEF;;;OAGG;IACI,uBAAuB,QAAO,MAAM,GAAG,SAAS,CAC3B;IAE5B;;;OAGG;IACH,MAAM,sBAwBJ;CACH;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -167,8 +167,11 @@ class GeneralScanner extends AbstractScanner {
167
167
  }
168
168
  catch (e) {
169
169
  this.logger.error(`An error occurred during update process. ${e}`);
170
+ if (e instanceof Error && e.stack) {
171
+ this.logger.error(`error stack: ${e.stack}`);
172
+ }
170
173
  }
171
174
  };
172
175
  }
173
176
  export { GeneralScanner };
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbFNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc2Nhbm5lci9hYnN0cmFjdC9nZW5lcmFsU2Nhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLE1BQU0sTUFBTSwyQkFBMkIsQ0FBQztBQU8vQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFNUMsTUFBZSxjQUViLFNBQVEsZUFBZ0M7SUFPOUI7SUFDQTtJQUVBO0lBQ0E7SUFFQTtJQVpPLGFBQWEsQ0FBUztJQUM3QixvQkFBb0IsR0FBdUIsU0FBUyxDQUFDO0lBRS9ELElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXZFLFlBQ1UsV0FBbUIsRUFDbkIsVUFBc0IsRUFDOUIsYUFBcUIsRUFDYixPQUFrRCxFQUNsRCxtQkFBbUIsQ0FBQyxFQUM1QixNQUF1QixFQUNmLE1BQWU7UUFFdkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBUk4sZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUV0QixZQUFPLEdBQVAsT0FBTyxDQUEyQztRQUNsRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQUk7UUFFcEIsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUd2Qjs7O1dBR0c7UUFDSCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFB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Q0FBQztZQUNILE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzNELElBQ0UsQ0FBQyxJQUFJLENBQUMsb0JBQW9CO2dCQUMxQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsWUFBWTtnQkFFeEMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFlBQVksQ0FBQztZQUUzQyxJQUFJLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3BCLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMzQyxDQUFDOztnQkFBTSxNQUFNLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNqRSxJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN6QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUIsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsNENBQTRDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckUsQ0FBQztJQUNILENBQUMsQ0FBQztDQUNIO0FBRUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9leHRlbmRlZC10eXBlb3JtJztcbmltcG9ydCBKc29uQkkgZnJvbSAnQHJvc2VuLWJyaWRnZS9qc29uLWJpZ2ludCc7XG5pbXBvcnQge1xuICBBYnN0cmFjdE5ldHdvcmtDb25uZWN0b3IsXG4gIEJsb2NrLFxufSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXItaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7IEJsb2NrRW50aXR5IH0gZnJvbSAnLi4vLi4vZW50aXRpZXMvYmxvY2tFbnRpdHknO1xuaW1wb3J0IHsgQmxvY2tEYkFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbic7XG5pbXBvcnQgeyBBYnN0cmFjdFNjYW5uZXIgfSBmcm9tICcuL3NjYW5uZXInO1xuXG5hYnN0cmFjdCBjbGFzcyBHZW5lcmFsU2Nhbm5lcjxcbiAgVHJhbnNhY3Rpb25UeXBlLFxuPiBleHRlbmRzIEFic3RyYWN0U2Nhbm5lcjxUcmFuc2FjdGlvblR5cGU+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBpbml0aWFsSGVpZ2h0OiBudW1iZXI7XG4gIHByb3RlY3RlZCBibG9ja0NoYWluTGFzdEhlaWdodDogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIG5hbWUgPSAoKSA9PiB0aGlzLnNjYW5uZXJOYW1lICsgKHRoaXMuc3VmZml4ID8gYC0ke3RoaXMuc3VmZml4fWAgOiAnJyk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzY2FubmVyTmFtZTogc3RyaW5nLFxuICAgIHByaXZhdGUgZGF0YVNvdXJjZTogRGF0YVNvdXJjZSxcbiAgICBpbml0aWFsSGVpZ2h0OiBudW1iZXIsXG4gICAgcHJpdmF0ZSBuZXR3b3JrOiBBYnN0cmFjdE5ldHdvcmtDb25uZWN0b3I8VHJhbnNhY3Rpb25UeXBlPixcbiAgICBwcml2YXRlIGJsb2NrUmV0cmlldmVHYXAgPSAwLFxuICAgIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyLFxuICAgIHByaXZhdGUgc3VmZml4Pzogc3RyaW5nLFxuICApIHtcbiAgICBzdXBlcihsb2dnZXIpO1xuICAgIC8qKlxuICAgICAqIEluIG9yZGVyIHRvIGtlZXAgdGhlIHNjYW5uZXJzIGZ1bmN0aW9uYWxpdGllcyBjb25zaXN0ZW50LCB3ZSBhZGQgY29uZmlnXG4gICAgICogYGluaXRpYWxIZWlnaHRgIGJ5IG9uZSBzbyB0aGF0IGl0IG1hdGNoZXMgaG93IG90aGVyIHNjYW5uZXJzIHdvcmsuXG4gICAgICovXG4gICAgdGhpcy5pbml0aWFsSGVpZ2h0ID0gaW5pdGlhbEhlaWdodCArIDE7XG4gICAgdGhpcy5zdWZmaXggPSBzdWZmaXg7XG4gICAgdGhpcy5hY3Rpb24gPSBuZXcgQmxvY2tEYkFjdGlvbih0aGlzLmRhdGFTb3VyY2UsIHRoaXMubmFtZSgpLCB0aGlzLmxvZ2dlcik7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBmaXJzdCBibG9jayB0byBwcm9jZXNzXG4gICAqIEByZXR1cm5zIFRoZSBmaXJzdCBibG9jayBhdCB0aGUgY29uZmlndXJlZCBpbml0aWFsIGhlaWdodFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldEZpcnN0QmxvY2sgPSAoKTogUHJvbWlzZTxCbG9jaz4gPT4ge1xuICAgIHJldHVybiB0aGlzLm5ldHdvcmsuZ2V0QmxvY2tBdEhlaWdodCh0aGlzLmluaXRpYWxIZWlnaHQpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBmdW5jdGlvbiB0aGF0IGNoZWNrcyBpZiBmb3JrIGlzIGhhcHBlbiBpbiB0aGUgYmxvY2tjaGFpbiBvciBub3RcbiAgICogQHJldHVybiBQcm9taXNlPEJvb2xlYW4+XG4gICAqL1xuICBwcm90ZWN0ZWQgaXNGb3JrSGFwcGVuID0gYXN5bmMgKCk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIGNvbnN0IGxhc3RTYXZlZEJsb2NrID0gYXdhaXQgdGhpcy5hY3Rpb24uZ2V0TGFzdFNhdmVkQmxvY2soKTtcbiAgICBpZiAobGFzdFNhdmVkQmxvY2sgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgbGFzdFNhdmVkQmxvY2tGcm9tTmV0d29yayA9IGF3YWl0IHRoaXMubmV0d29yay5nZXRCbG9ja0F0SGVpZ2h0KFxuICAgICAgICBsYXN0U2F2ZWRCbG9jay5oZWlnaHQsXG4gICAgICApO1xuICAgICAgcmV0dXJuIGxhc3RTYXZlZEJsb2NrRnJvbU5ldHdvcmsuaGFzaCAhPT0gbGFzdFNhdmVkQmxvY2suaGFzaDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgaW50cm9kdWNlcyBkZWxheSBiZXR3ZWVuIGNvbnNlY3V0aXZlIGJsb2NrIHByb2Nlc3Npbmcgb3BlcmF0aW9uc1xuICAgKi9cbiAgcHJvdGVjdGVkIGRlbGF5QmV0d2VlbkJsb2Nrc1Byb2Nlc3NpbmcgPSBhc3luYyAoc3RhcnRUaW1lOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBzcGVudFRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHN0YXJ0VGltZTtcbiAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVzb2x2ZShudWxsKSwgdGhpcy5ibG9ja1JldHJpZXZlR2FwIC0gc3BlbnRUaW1lKSxcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBwcm9jZXNzIGEgYmxvY2sgYW5kIGV4ZWN1dGUgYWxsIGV4dHJhY3RvciBvbiBpdC5cbiAgICogQHBhcmFtIGJsb2NrXG4gICAqL1xuICBwcm90ZWN0ZWQgcHJvY2Vzc0Jsb2NrID0gYXN5bmMgKGJsb2NrOiBCbG9jaykgPT4ge1xuICAgIGNvbnN0IHN0YXJ0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgYFByb2Nlc3NpbmcgYmxvY2sgYXQgaGVpZ2h0IFske2Jsb2NrLmhlaWdodH1dIGluIHNjYW5uZXIgJHt0aGlzLm5hbWUoKX1gLFxuICAgICk7XG4gICAgY29uc3QgdHhzID0gYXdhaXQgdGhpcy5uZXR3b3JrLmdldEJsb2NrVHhzKGJsb2NrLmhhc2gpO1xuICAgIGlmIChibG9jay50eENvdW50KSB7XG4gICAgICBpZiAodHhzLmxlbmd0aCAhPSBibG9jay50eENvdW50KSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGBBYm9ydGluZyBibG9jayBwcm9jZXNzIHdpdGggaGFzaCBbJHtibG9jay5oYXNofV0gZXhwZWN0ZWQgdG8gaGF2ZSAke2Jsb2NrLnR4Q291bnR9IHRyYW5zYWN0aW9ucyBidXQgaGFkICR7dHhzLmxlbmd0aH1gLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYHByb2Nlc3NpbmcgJHtibG9jay50eENvdW50fSB0cmFuc2FjdGlvbnMgb2YgYmxvY2sgd2l0aCBoYXNoIFske2Jsb2NrLmhhc2h9XWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucHJvY2Vzc0Jsb2NrVHJhbnNhY3Rpb25zKGJsb2NrLCB0eHMpO1xuXG4gICAgLy8gU3BlbmRpbmcgdGltZSBiZXR3ZWVuIGJsb2NrIGZldGNoZXMgaWYgdGhlIHNldHRpbmcgaXMgZW5hYmxlZFxuICAgIGlmICh0aGlzLmJsb2NrUmV0cmlldmVHYXApXG4gICAgICBhd2FpdCB0aGlzLmRlbGF5QmV0d2VlbkJsb2Nrc1Byb2Nlc3Npbmcoc3RhcnRUaW1lKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIHByb2Nlc3MgZm9yd2FyZCBpbiBzY2FubmVyLiBnZXQgYmxvY2tzIGFuZCBzdG9yZSBpbmZvcm1hdGlvbiBmcm9tIHRyYW5zYWN0aW9ucy5cbiAgICogQHBhcmFtIGxhc3RTYXZlZEJsb2NrOiBsYXN0IHNhdmVkIGJsb2NrIGVudGl0eSBpbiBkYXRhYmFzZVxuICAgKi9cbiAgcHJvdGVjdGVkIHN0ZXBGb3J3YXJkID0gYXN5bmMgKGxhc3RTYXZlZEJsb2NrOiBCbG9ja0VudGl0eSkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRIZWlnaHQgPSBhd2FpdCB0aGlzLm5ldHdvcmsuZ2V0Q3VycmVudEhlaWdodCgpO1xuICAgIGNvbnN0IGZpcnN0QmxvY2sgPSBhd2FpdCB0aGlzLmFjdGlvbi5nZXRGaXJzdFNhdmVkQmxvY2soKTtcbiAgICBpZiAoIWZpcnN0QmxvY2sgfHwgZmlyc3RCbG9jay5oZWlnaHQgPj0gY3VycmVudEhlaWdodCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb3IgKFxuICAgICAgbGV0IGhlaWdodCA9IGxhc3RTYXZlZEJsb2NrLmhlaWdodCArIDE7XG4gICAgICBoZWlnaHQgPD0gY3VycmVudEhlaWdodDtcbiAgICAgIGhlaWdodCsrXG4gICAgKSB7XG4gICAgICBjb25zdCBibG9jayA9IGF3YWl0IHRoaXMubmV0d29yay5nZXRCbG9ja0F0SGVpZ2h0KGhlaWdodCk7XG4gICAgICBpZiAobGFzdFNhdmVkQmxvY2sgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoYmxvY2sucGFyZW50SGFzaCA9PT0gbGFzdFNhdmVkQmxvY2suaGFzaCkge1xuICAgICAgICAgIGNvbnN0IHNhdmVkQmxvY2sgPSBhd2FpdCB0aGlzLnByb2Nlc3NCbG9jayhibG9jayk7XG4gICAgICAgICAgaWYgKHR5cGVvZiBzYXZlZEJsb2NrID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsYXN0U2F2ZWRCbG9jayA9IHNhdmVkQmxvY2s7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgYEludmFsaWQgYmxvY2sgYXQgaGVpZ2h0ICR7aGVpZ2h0fS4gQmxvY2sgaW5mbyBpcyBbJHtKc29uQkkuc3RyaW5naWZ5KFxuICAgICAgICAgICAgICBibG9jayxcbiAgICAgICAgICAgICl9IGFuZCB0aGUgZXhwZWN0ZWQgcGFyZW50IGhhc2ggaXMgWyR7bGFzdFNhdmVkQmxvY2suaGFzaH1dYCxcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBTdGVwIGJhY2t3YXJkIGluIGJsb2NrY2hhaW4gYW5kIGZpbmQgZm9yayBwb2ludC5cbiAgICogYW5kIHJlbW92ZSBhbGwgZm9ya2VkIGJsb2NrcyBmcm9tIGRhdGFiYXNlXG4gICAqL1xuICBwcm90ZWN0ZWQgc3RlcEJhY2t3YXJkID0gYXN5bmMgKCkgPT4ge1xuICAgIGxldCBibG9jayA9IGF3YWl0IHRoaXMuYWN0aW9uLmdldExhc3RTYXZlZEJsb2NrKCk7XG4gICAgd2hpbGUgKGJsb2NrKSB7XG4gICAgICBjb25zdCBibG9ja0Zyb21OZXR3b3JrID0gYXdhaXQgdGhpcy5uZXR3b3JrLmdldEJsb2NrQXRIZWlnaHQoXG4gICAgICAgIGJsb2NrLmhlaWdodCxcbiAgICAgICk7XG4gICAgICBpZiAoXG4gICAgICAgIGJsb2NrRnJvbU5ldHdvcmsuaGFzaCA9PT0gYmxvY2suaGFzaCAmJlxuICAgICAgICBibG9jay5wYXJlbnRIYXNoID09PSBibG9ja0Zyb21OZXR3b3JrLnBhcmVudEhhc2hcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLmZvcmtCbG9jayhibG9jay5oZWlnaHQpO1xuICAgICAgYmxvY2sgPSBhd2FpdCB0aGlzLmFjdGlvbi5nZXRMYXN0U2F2ZWRCbG9jaygpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgZXh0cmFjdG9ycyB3aXRoIHRoZSBmaXJzdCBibG9ja1xuICAgKiBQcm9jZXNzIGFuZCBzdG9yZSB0aGUgZmlyc3QgYmxvY2sgaW4gZGF0YWJhc2VcbiAgICogQHJldHVybnNcbiAgICovXG4gIHByb3RlY3RlZCBpbml0aWFsaXplID0gYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGJsb2NrID0gYXdhaXQgdGhpcy5nZXRGaXJzdEJsb2NrKCk7XG4gICAgYXdhaXQgdGhpcy52ZXJpZnlFeHRyYWN0b3JzSW5pdGlhbGl6YXRpb24oe1xuICAgICAgaGVpZ2h0OiBibG9jay5oZWlnaHQgLSAxLFxuICAgICAgaGFzaDogYmxvY2sucGFyZW50SGFzaCxcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLnByb2Nlc3NCbG9jayhibG9jayk7XG4gICAgY29uc3QgZW50aXR5ID0gYXdhaXQgdGhpcy5hY3Rpb24uZ2V0Rmlyc3RTYXZlZEJsb2NrKCk7XG4gICAgaWYgKGVudGl0eSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NhbiBub3Qgc3RvcmUgYmxvY2sgaW4gZGF0YWJhc2UnKTtcbiAgICB9XG4gICAgcmV0dXJuIGVudGl0eTtcbiAgfTtcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBsYXRlc3QgaGVpZ2h0IG9mIHRoZSBibG9ja2NoYWluXG4gICAqIEByZXR1cm5zIHsgbnVtYmVyIHwgdW5kZWZpbmVkIH1cbiAgICovXG4gIHB1YmxpYyBnZXRCbG9ja0NoYWluTGFzdEhlaWdodCA9ICgpOiBudW1iZXIgfCB1bmRlZmluZWQgPT5cbiAgICB0aGlzLmJsb2NrQ2hhaW5MYXN0SGVpZ2h0O1xuXG4gIC8qKlxuICAgKiB3b3JrZXIgZnVuY3Rpb24gdGhhdCBydW5zIGZvciBzeW5jaW5nIHRoZSBkYXRhYmFzZSB3aXRoIHRoZSBDYXJkYW5vIGJsb2NrY2hhaW4gYW5kIGNoZWNrcyBpZiB3ZSBoYXZlIGFueSBmb3JrXG4gICAqIHNjZW5hcmlvIGluIHRoZSBibG9ja2NoYWluIGFuZCBpbnZhbGlkYXRlIHRoZSBkYXRhYmFzZSB0aWxsIHRoZSBkYXRhYmFzZSBzeW5jZWQgYWdhaW4uXG4gICAqL1xuICB1cGRhdGUgPSBhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGxhdGVzdEhlaWdodCA9IGF3YWl0IHRoaXMubmV0d29yay5nZXRDdXJyZW50SGVpZ2h0KCk7XG4gICAgICBpZiAoXG4gICAgICAgICF0aGlzLmJsb2NrQ2hhaW5MYXN0SGVpZ2h0IHx8XG4gICAgICAgIHRoaXMuYmxvY2tDaGFpbkxhc3RIZWlnaHQgPCBsYXRlc3RIZWlnaHRcbiAgICAgIClcbiAgICAgICAgdGhpcy5ibG9ja0NoYWluTGFzdEhlaWdodCA9IGxhdGVzdEhlaWdodDtcblxuICAgICAgbGV0IGxhc3RTYXZlZEJsb2NrID0gYXdhaXQgdGhpcy5hY3Rpb24uZ2V0TGFzdFNhdmVkQmxvY2soKTtcbiAgICAgIGlmICghbGFzdFNhdmVkQmxvY2spIHtcbiAgICAgICAgbGFzdFNhdmVkQmxvY2sgPSBhd2FpdCB0aGlzLmluaXRpYWxpemUoKTtcbiAgICAgIH0gZWxzZSBhd2FpdCB0aGlzLnZlcmlmeUV4dHJhY3RvcnNJbml0aWFsaXphdGlvbihsYXN0U2F2ZWRCbG9jayk7XG4gICAgICBpZiAoIShhd2FpdCB0aGlzLmlzRm9ya0hhcHBlbigpKSkge1xuICAgICAgICBhd2FpdCB0aGlzLnN0ZXBGb3J3YXJkKGxhc3RTYXZlZEJsb2NrKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IHRoaXMuc3RlcEJhY2t3YXJkKCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoYEFuIGVycm9yIG9jY3VycmVkIGR1cmluZyB1cGRhdGUgcHJvY2Vzcy4gJHtlfWApO1xuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IHsgR2VuZXJhbFNjYW5uZXIgfTtcbiJdfQ==
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbFNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc2Nhbm5lci9hYnN0cmFjdC9nZW5lcmFsU2Nhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLE1BQU0sTUFBTSwyQkFBMkIsQ0FBQztBQU8vQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFNUMsTUFBZSxjQUViLFNBQVEsZUFBZ0M7SUFPOUI7SUFDQTtJQUVBO0lBQ0E7SUFFQTtJQVpPLGFBQWEsQ0FBUztJQUM3QixvQkFBb0IsR0FBdUIsU0FBUyxDQUFDO0lBRS9ELElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXZFLFlBQ1UsV0FBbUIsRUFDbkIsVUFBc0IsRUFDOUIsYUFBcUIsRUFDYixPQUFrRCxFQUNsRCxtQkFBbUIsQ0FBQyxFQUM1QixNQUF1QixFQUNmLE1BQWU7UUFFdkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBUk4sZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUV0QixZQUFPLEdBQVAsT0FBTyxDQUEyQztRQUNsRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQUk7UUFFcEIsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUd2Qjs7O1dBR0c7UUFDSCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFB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J0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuaW1wb3J0IEpzb25CSSBmcm9tICdAcm9zZW4tYnJpZGdlL2pzb24tYmlnaW50JztcbmltcG9ydCB7XG4gIEFic3RyYWN0TmV0d29ya0Nvbm5lY3RvcixcbiAgQmxvY2ssXG59IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgQmxvY2tFbnRpdHkgfSBmcm9tICcuLi8uLi9lbnRpdGllcy9ibG9ja0VudGl0eSc7XG5pbXBvcnQgeyBCbG9ja0RiQWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9uJztcbmltcG9ydCB7IEFic3RyYWN0U2Nhbm5lciB9IGZyb20gJy4vc2Nhbm5lcic7XG5cbmFic3RyYWN0IGNsYXNzIEdlbmVyYWxTY2FubmVyPFxuICBUcmFuc2FjdGlvblR5cGUsXG4+IGV4dGVuZHMgQWJzdHJhY3RTY2FubmVyPFRyYW5zYWN0aW9uVHlwZT4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGluaXRpYWxIZWlnaHQ6IG51bWJlcjtcbiAgcHJvdGVjdGVkIGJsb2NrQ2hhaW5MYXN0SGVpZ2h0OiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgbmFtZSA9ICgpID0+IHRoaXMuc2Nhbm5lck5hbWUgKyAodGhpcy5zdWZmaXggPyBgLSR7dGhpcy5zdWZmaXh9YCA6ICcnKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNjYW5uZXJOYW1lOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIGluaXRpYWxIZWlnaHQ6IG51bWJlcixcbiAgICBwcml2YXRlIG5ldHdvcms6IEFic3RyYWN0TmV0d29ya0Nvbm5lY3RvcjxUcmFuc2FjdGlvblR5cGU+LFxuICAgIHByaXZhdGUgYmxvY2tSZXRyaWV2ZUdhcCA9IDAsXG4gICAgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIsXG4gICAgcHJpdmF0ZSBzdWZmaXg/OiBzdHJpbmcsXG4gICkge1xuICAgIHN1cGVyKGxvZ2dlcik7XG4gICAgLyoqXG4gICAgICogSW4gb3JkZXIgdG8ga2VlcCB0aGUgc2Nhbm5lcnMgZnVuY3Rpb25hbGl0aWVzIGNvbnNpc3RlbnQsIHdlIGFkZCBjb25maWdcbiAgICAgKiBgaW5pdGlhbEhlaWdodGAgYnkgb25lIHNvIHRoYXQgaXQgbWF0Y2hlcyBob3cgb3RoZXIgc2Nhbm5lcnMgd29yay5cbiAgICAgKi9cbiAgICB0aGlzLmluaXRpYWxIZWlnaHQgPSBpbml0aWFsSGVpZ2h0ICsgMTtcbiAgICB0aGlzLnN1ZmZpeCA9IHN1ZmZpeDtcbiAgICB0aGlzLmFjdGlvbiA9IG5ldyBCbG9ja0RiQWN0aW9uKHRoaXMuZGF0YVNvdXJjZSwgdGhpcy5uYW1lKCksIHRoaXMubG9nZ2VyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGZpcnN0IGJsb2NrIHRvIHByb2Nlc3NcbiAgICogQHJldHVybnMgVGhlIGZpcnN0IGJsb2NrIGF0IHRoZSBjb25maWd1cmVkIGluaXRpYWwgaGVpZ2h0XG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0Rmlyc3RCbG9jayA9ICgpOiBQcm9taXNlPEJsb2NrPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMubmV0d29yay5nZXRCbG9ja0F0SGVpZ2h0KHRoaXMuaW5pdGlhbEhlaWdodCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIGZ1bmN0aW9uIHRoYXQgY2hlY2tzIGlmIGZvcmsgaXMgaGFwcGVuIGluIHRoZSBibG9ja2NoYWluIG9yIG5vdFxuICAgKiBAcmV0dXJuIFByb21pc2U8Qm9vbGVhbj5cbiAgICovXG4gIHByb3RlY3RlZCBpc0ZvcmtIYXBwZW4gPSBhc3luYyAoKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgY29uc3QgbGFzdFNhdmVkQmxvY2sgPSBhd2FpdCB0aGlzLmFjdGlvbi5nZXRMYXN0U2F2ZWRCbG9jaygpO1xuICAgIGlmIChsYXN0U2F2ZWRCbG9jayAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBsYXN0U2F2ZWRCbG9ja0Zyb21OZXR3b3JrID0gYXdhaXQgdGhpcy5uZXR3b3JrLmdldEJsb2NrQXRIZWlnaHQoXG4gICAgICAgIGxhc3RTYXZlZEJsb2NrLmhlaWdodCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gbGFzdFNhdmVkQmxvY2tGcm9tTmV0d29yay5oYXNoICE9PSBsYXN0U2F2ZWRCbG9jay5oYXNoO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBpbnRyb2R1Y2VzIGRlbGF5IGJldHdlZW4gY29uc2VjdXRpdmUgYmxvY2sgcHJvY2Vzc2luZyBvcGVyYXRpb25zXG4gICAqL1xuICBwcm90ZWN0ZWQgZGVsYXlCZXR3ZWVuQmxvY2tzUHJvY2Vzc2luZyA9IGFzeW5jIChzdGFydFRpbWU6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IHNwZW50VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gc3RhcnRUaW1lO1xuICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PlxuICAgICAgc2V0VGltZW91dCgoKSA9PiByZXNvbHZlKG51bGwpLCB0aGlzLmJsb2NrUmV0cmlldmVHYXAgLSBzcGVudFRpbWUpLFxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIHByb2Nlc3MgYSBibG9jayBhbmQgZXhlY3V0ZSBhbGwgZXh0cmFjdG9yIG9uIGl0LlxuICAgKiBAcGFyYW0gYmxvY2tcbiAgICovXG4gIHByb3RlY3RlZCBwcm9jZXNzQmxvY2sgPSBhc3luYyAoYmxvY2s6IEJsb2NrKSA9PiB7XG4gICAgY29uc3Qgc3RhcnRUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICBgUHJvY2Vzc2luZyBibG9jayBhdCBoZWlnaHQgWyR7YmxvY2suaGVpZ2h0fV0gaW4gc2Nhbm5lciAke3RoaXMubmFtZSgpfWAsXG4gICAgKTtcbiAgICBjb25zdCB0eHMgPSBhd2FpdCB0aGlzLm5ldHdvcmsuZ2V0QmxvY2tUeHMoYmxvY2suaGFzaCk7XG4gICAgaWYgKGJsb2NrLnR4Q291bnQpIHtcbiAgICAgIGlmICh0eHMubGVuZ3RoICE9IGJsb2NrLnR4Q291bnQpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYEFib3J0aW5nIGJsb2NrIHByb2Nlc3Mgd2l0aCBoYXNoIFske2Jsb2NrLmhhc2h9XSBleHBlY3RlZCB0byBoYXZlICR7YmxvY2sudHhDb3VudH0gdHJhbnNhY3Rpb25zIGJ1dCBoYWQgJHt0eHMubGVuZ3RofWAsXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgcHJvY2Vzc2luZyAke2Jsb2NrLnR4Q291bnR9IHRyYW5zYWN0aW9ucyBvZiBibG9jayB3aXRoIGhhc2ggWyR7YmxvY2suaGFzaH1dYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5wcm9jZXNzQmxvY2tUcmFuc2FjdGlvbnMoYmxvY2ssIHR4cyk7XG5cbiAgICAvLyBTcGVuZGluZyB0aW1lIGJldHdlZW4gYmxvY2sgZmV0Y2hlcyBpZiB0aGUgc2V0dGluZyBpcyBlbmFibGVkXG4gICAgaWYgKHRoaXMuYmxvY2tSZXRyaWV2ZUdhcClcbiAgICAgIGF3YWl0IHRoaXMuZGVsYXlCZXR3ZWVuQmxvY2tzUHJvY2Vzc2luZyhzdGFydFRpbWUpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuICAvKipcbiAgICogcHJvY2VzcyBmb3J3YXJkIGluIHNjYW5uZXIuIGdldCBibG9ja3MgYW5kIHN0b3JlIGluZm9ybWF0aW9uIGZyb20gdHJhbnNhY3Rpb25zLlxuICAgKiBAcGFyYW0gbGFzdFNhdmVkQmxvY2s6IGxhc3Qgc2F2ZWQgYmxvY2sgZW50aXR5IGluIGRhdGFiYXNlXG4gICAqL1xuICBwcm90ZWN0ZWQgc3RlcEZvcndhcmQgPSBhc3luYyAobGFzdFNhdmVkQmxvY2s6IEJsb2NrRW50aXR5KSA9PiB7XG4gICAgY29uc3QgY3VycmVudEhlaWdodCA9IGF3YWl0IHRoaXMubmV0d29yay5nZXRDdXJyZW50SGVpZ2h0KCk7XG4gICAgY29uc3QgZmlyc3RCbG9jayA9IGF3YWl0IHRoaXMuYWN0aW9uLmdldEZpcnN0U2F2ZWRCbG9jaygpO1xuICAgIGlmICghZmlyc3RCbG9jayB8fCBmaXJzdEJsb2NrLmhlaWdodCA+PSBjdXJyZW50SGVpZ2h0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAoXG4gICAgICBsZXQgaGVpZ2h0ID0gbGFzdFNhdmVkQmxvY2suaGVpZ2h0ICsgMTtcbiAgICAgIGhlaWdodCA8PSBjdXJyZW50SGVpZ2h0O1xuICAgICAgaGVpZ2h0KytcbiAgICApIHtcbiAgICAgIGNvbnN0IGJsb2NrID0gYXdhaXQgdGhpcy5uZXR3b3JrLmdldEJsb2NrQXRIZWlnaHQoaGVpZ2h0KTtcbiAgICAgIGlmIChsYXN0U2F2ZWRCbG9jayAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChibG9jay5wYXJlbnRIYXNoID09PSBsYXN0U2F2ZWRCbG9jay5oYXNoKSB7XG4gICAgICAgICAgY29uc3Qgc2F2ZWRCbG9jayA9IGF3YWl0IHRoaXMucHJvY2Vzc0Jsb2NrKGJsb2NrKTtcbiAgICAgICAgICBpZiAodHlwZW9mIHNhdmVkQmxvY2sgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxhc3RTYXZlZEJsb2NrID0gc2F2ZWRCbG9jaztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBgSW52YWxpZCBibG9jayBhdCBoZWlnaHQgJHtoZWlnaHR9LiBCbG9jayBpbmZvIGlzIFske0pzb25CSS5zdHJpbmdpZnkoXG4gICAgICAgICAgICAgIGJsb2NrLFxuICAgICAgICAgICAgKX0gYW5kIHRoZSBleHBlY3RlZCBwYXJlbnQgaGFzaCBpcyBbJHtsYXN0U2F2ZWRCbG9jay5oYXNofV1gLFxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIFN0ZXAgYmFja3dhcmQgaW4gYmxvY2tjaGFpbiBhbmQgZmluZCBmb3JrIHBvaW50LlxuICAgKiBhbmQgcmVtb3ZlIGFsbCBmb3JrZWQgYmxvY2tzIGZyb20gZGF0YWJhc2VcbiAgICovXG4gIHByb3RlY3RlZCBzdGVwQmFja3dhcmQgPSBhc3luYyAoKSA9PiB7XG4gICAgbGV0IGJsb2NrID0gYXdhaXQgdGhpcy5hY3Rpb24uZ2V0TGFzdFNhdmVkQmxvY2soKTtcbiAgICB3aGlsZSAoYmxvY2spIHtcbiAgICAgIGNvbnN0IGJsb2NrRnJvbU5ldHdvcmsgPSBhd2FpdCB0aGlzLm5ldHdvcmsuZ2V0QmxvY2tBdEhlaWdodChcbiAgICAgICAgYmxvY2suaGVpZ2h0LFxuICAgICAgKTtcbiAgICAgIGlmIChcbiAgICAgICAgYmxvY2tGcm9tTmV0d29yay5oYXNoID09PSBibG9jay5oYXNoICYmXG4gICAgICAgIGJsb2NrLnBhcmVudEhhc2ggPT09IGJsb2NrRnJvbU5ldHdvcmsucGFyZW50SGFzaFxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMuZm9ya0Jsb2NrKGJsb2NrLmhlaWdodCk7XG4gICAgICBibG9jayA9IGF3YWl0IHRoaXMuYWN0aW9uLmdldExhc3RTYXZlZEJsb2NrKCk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBleHRyYWN0b3JzIHdpdGggdGhlIGZpcnN0IGJsb2NrXG4gICAqIFByb2Nlc3MgYW5kIHN0b3JlIHRoZSBmaXJzdCBibG9jayBpbiBkYXRhYmFzZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJvdGVjdGVkIGluaXRpYWxpemUgPSBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgYmxvY2sgPSBhd2FpdCB0aGlzLmdldEZpcnN0QmxvY2soKTtcbiAgICBhd2FpdCB0aGlzLnZlcmlmeUV4dHJhY3RvcnNJbml0aWFsaXphdGlvbih7XG4gICAgICBoZWlnaHQ6IGJsb2NrLmhlaWdodCAtIDEsXG4gICAgICBoYXNoOiBibG9jay5wYXJlbnRIYXNoLFxuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMucHJvY2Vzc0Jsb2NrKGJsb2NrKTtcbiAgICBjb25zdCBlbnRpdHkgPSBhd2FpdCB0aGlzLmFjdGlvbi5nZXRGaXJzdFNhdmVkQmxvY2soKTtcbiAgICBpZiAoZW50aXR5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2FuIG5vdCBzdG9yZSBibG9jayBpbiBkYXRhYmFzZScpO1xuICAgIH1cbiAgICByZXR1cm4gZW50aXR5O1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGxhdGVzdCBoZWlnaHQgb2YgdGhlIGJsb2NrY2hhaW5cbiAgICogQHJldHVybnMgeyBudW1iZXIgfCB1bmRlZmluZWQgfVxuICAgKi9cbiAgcHVibGljIGdldEJsb2NrQ2hhaW5MYXN0SGVpZ2h0ID0gKCk6IG51bWJlciB8IHVuZGVmaW5lZCA9PlxuICAgIHRoaXMuYmxvY2tDaGFpbkxhc3RIZWlnaHQ7XG5cbiAgLyoqXG4gICAqIHdvcmtlciBmdW5jdGlvbiB0aGF0IHJ1bnMgZm9yIHN5bmNpbmcgdGhlIGRhdGFiYXNlIHdpdGggdGhlIENhcmRhbm8gYmxvY2tjaGFpbiBhbmQgY2hlY2tzIGlmIHdlIGhhdmUgYW55IGZvcmtcbiAgICogc2NlbmFyaW8gaW4gdGhlIGJsb2NrY2hhaW4gYW5kIGludmFsaWRhdGUgdGhlIGRhdGFiYXNlIHRpbGwgdGhlIGRhdGFiYXNlIHN5bmNlZCBhZ2Fpbi5cbiAgICovXG4gIHVwZGF0ZSA9IGFzeW5jICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbGF0ZXN0SGVpZ2h0ID0gYXdhaXQgdGhpcy5uZXR3b3JrLmdldEN1cnJlbnRIZWlnaHQoKTtcbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMuYmxvY2tDaGFpbkxhc3RIZWlnaHQgfHxcbiAgICAgICAgdGhpcy5ibG9ja0NoYWluTGFzdEhlaWdodCA8IGxhdGVzdEhlaWdodFxuICAgICAgKVxuICAgICAgICB0aGlzLmJsb2NrQ2hhaW5MYXN0SGVpZ2h0ID0gbGF0ZXN0SGVpZ2h0O1xuXG4gICAgICBsZXQgbGFzdFNhdmVkQmxvY2sgPSBhd2FpdCB0aGlzLmFjdGlvbi5nZXRMYXN0U2F2ZWRCbG9jaygpO1xuICAgICAgaWYgKCFsYXN0U2F2ZWRCbG9jaykge1xuICAgICAgICBsYXN0U2F2ZWRCbG9jayA9IGF3YWl0IHRoaXMuaW5pdGlhbGl6ZSgpO1xuICAgICAgfSBlbHNlIGF3YWl0IHRoaXMudmVyaWZ5RXh0cmFjdG9yc0luaXRpYWxpemF0aW9uKGxhc3RTYXZlZEJsb2NrKTtcbiAgICAgIGlmICghKGF3YWl0IHRoaXMuaXNGb3JrSGFwcGVuKCkpKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuc3RlcEZvcndhcmQobGFzdFNhdmVkQmxvY2spO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgdGhpcy5zdGVwQmFja3dhcmQoKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihgQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHVwZGF0ZSBwcm9jZXNzLiAke2V9YCk7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yICYmIGUuc3RhY2spIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoYGVycm9yIHN0YWNrOiAke2Uuc3RhY2t9YCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgeyBHZW5lcmFsU2Nhbm5lciB9O1xuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../../lib/scanner/abstract/scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,8BAAsB,eAAe,CAAC,eAAe;IACnD,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;IACtD,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;IACzD,MAAM,EAAE,cAAc,CAAC;IACvB,eAAe,EAAE,KAAK,CAAC;gBAEX,MAAM,CAAC,EAAE,cAAc;IAOnC,QAAQ,CAAC,IAAI,EAAE,MAAM,MAAM,CAAC;IAE5B;;;OAGG;IACH,SAAS,CAAC,SAAS,GAAU,QAAQ,MAAM,mBAuBzC;IAEF;;;;OAIG;IACH,SAAS,CAAC,wBAAwB,GAChC,OAAO,KAAK,EACZ,cAAc,KAAK,CAAC,eAAe,CAAC,kDAyBpC;IAEF;;;OAGG;IACH,iBAAiB,GACf,WAAW,iBAAiB,CAAC,eAAe,CAAC,KAC5C,OAAO,CAAC,IAAI,CAAC,CAmBd;IAEF;;;OAGG;IACH,eAAe,GACb,WAAW,iBAAiB,CAAC,eAAe,CAAC,KAC5C,OAAO,CAAC,IAAI,CAAC,CAQd;IAEF;;;;OAIG;IACH,OAAO,CAAC,oBAAoB,CAkB1B;IAEF;;;;OAIG;IACH,SAAS,CAAC,8BAA8B,GAAU,OAAO,SAAS,mBA2DhE;CACH"}
1
+ {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../../lib/scanner/abstract/scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,8BAAsB,eAAe,CAAC,eAAe;IACnD,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;IACtD,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;IACzD,MAAM,EAAE,cAAc,CAAC;IACvB,eAAe,EAAE,KAAK,CAAC;gBAEX,MAAM,CAAC,EAAE,cAAc;IAOnC,QAAQ,CAAC,IAAI,EAAE,MAAM,MAAM,CAAC;IAE5B;;;OAGG;IACH,SAAS,CAAC,SAAS,GAAU,QAAQ,MAAM,mBAiBzC;IAEF;;;;OAIG;IACH,SAAS,CAAC,wBAAwB,GAChC,OAAO,KAAK,EACZ,cAAc,KAAK,CAAC,eAAe,CAAC,kDAyBpC;IAEF;;;OAGG;IACH,iBAAiB,GACf,WAAW,iBAAiB,CAAC,eAAe,CAAC,KAC5C,OAAO,CAAC,IAAI,CAAC,CAmBd;IAEF;;;OAGG;IACH,eAAe,GACb,WAAW,iBAAiB,CAAC,eAAe,CAAC,KAC5C,OAAO,CAAC,IAAI,CAAC,CAQd;IAEF;;;;OAIG;IACH,OAAO,CAAC,oBAAoB,CAkB1B;IAEF;;;;OAIG;IACH,SAAS,CAAC,8BAA8B,GAAU,OAAO,SAAS,mBA2DhE;CACH"}
@@ -23,12 +23,7 @@ export class AbstractScanner {
23
23
  this.logger.debug(`Reverting block ${lastBlock.hash} at height ${lastBlock.height}`);
24
24
  await this.action.revertBlockStatus(lastBlock.height, lastBlock.parentHash, this.extractors.map((e) => e.getId()));
25
25
  for (const extractor of this.extractors) {
26
- try {
27
- await extractor.forkBlock(lastBlock.hash);
28
- }
29
- catch (e) {
30
- this.logger.error(`An error occurred during fork block in extractor ${extractor.getId()}: ${e}`);
31
- }
26
+ await extractor.forkBlock(lastBlock.hash);
32
27
  }
33
28
  await this.action.removeBlocksFromHeight(lastBlock.height);
34
29
  lastBlock = await this.action.getBlockAtHeight(lastBlock.height - 1);
@@ -94,7 +89,7 @@ export class AbstractScanner {
94
89
  const initRequiredExtractors = allExtractors.filter((extractor) => extractorIds.includes(extractor.getId()));
95
90
  for (const extractor of initRequiredExtractors) {
96
91
  this.logger.info(`Initializing [${extractor.getId()}] boxes`);
97
- await extractor.initializeBoxes(block);
92
+ await extractor.initializeData(block);
98
93
  await this.action.updateOrInsertExtractorStatus(extractor.getId(), block.height, block.hash);
99
94
  this.logger.debug(`Initialization finished for [${extractor.getId()}]`);
100
95
  }
@@ -151,4 +146,4 @@ export class AbstractScanner {
151
146
  throw new Error(`Initialization failed for new extractors ${getIds(this.newExtractors)}`);
152
147
  };
153
148
  }
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zY2FubmVyL2Fic3RyYWN0L3NjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRy9DLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFLNUUsTUFBTSxPQUFnQixlQUFlO0lBQ25DLE1BQU0sQ0FBZ0I7SUFDdEIsVUFBVSxDQUE0QztJQUN0RCxhQUFhLENBQTRDO0lBQ3pELE1BQU0sQ0FBaUI7SUFDdkIsZUFBZSxDQUFRO0lBRXZCLFlBQVksTUFBdUI7UUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUlEOzs7T0FHRztJQUNPLFNBQVMsR0FBRyxLQUFLLEVBQUUsTUFBYyxFQUFFLEVBQUU7UUFDN0MsSUFBSSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDdEQsT0FBTyxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZixtQkFBbUIsU0FBUyxDQUFDLElBQUksY0FBYyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQ2xFLENBQUM7WUFDRixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsaUJB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QUM1QyxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1EQUFtRCxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pFLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDbEIsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU87WUFDVixNQUFNLElBQUksS0FBSyxDQUNiLDRDQUE0QyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQ3pFLENBQUM7SUFDTixDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE11dGV4IH0gZnJvbSAnYXdhaXQtc2VtYXBob3JlJztcbmltcG9ydCB7IGRpZmZlcmVuY2UsIHJlbW92ZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmltcG9ydCB7IEFic3RyYWN0RXh0cmFjdG9yIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1leHRyYWN0b3InO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgQmxvY2ssIEJsb2NrSW5mbyB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgQmxvY2tEYkFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbic7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFNjYW5uZXI8VHJhbnNhY3Rpb25UeXBlPiB7XG4gIGFjdGlvbjogQmxvY2tEYkFjdGlvbjtcbiAgZXh0cmFjdG9yczogQXJyYXk8QWJzdHJhY3RFeHRyYWN0b3I8VHJhbnNhY3Rpb25UeXBlPj47XG4gIG5ld0V4dHJhY3RvcnM6IEFycmF5PEFic3RyYWN0RXh0cmFjdG9yPFRyYW5zYWN0aW9uVHlwZT4+O1xuICBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyO1xuICBpbml0aWFsaXplTXV0ZXg6IE11dGV4O1xuXG4gIGNvbnN0cnVjdG9yKGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyKSB7XG4gICAgdGhpcy5leHRyYWN0b3JzID0gW107XG4gICAgdGhpcy5uZXdFeHRyYWN0b3JzID0gW107XG4gICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIgPyBsb2dnZXIgOiBuZXcgRHVtbXlMb2dnZXIoKTtcbiAgICB0aGlzLmluaXRpYWxpemVNdXRleCA9IG5ldyBNdXRleCgpO1xuICB9XG5cbiAgYWJzdHJhY3QgbmFtZTogKCkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBmb3JrIGJsb2NrcyBmcm9tIHNwZWNpZmljIGhlaWdodCBmcm9tIHNjYW5uZXIuXG4gICAqIEBwYXJhbSBoZWlnaHQ6IHNlbGVjdGVkIGhlaWdodFxuICAgKi9cbiAgcHJvdGVjdGVkIGZvcmtCbG9jayA9IGFzeW5jIChoZWlnaHQ6IG51bWJlcikgPT4ge1xuICAgIGxldCBsYXN0QmxvY2sgPSBhd2FpdCB0aGlzLmFjdGlvbi5nZXRMYXN0U2F2ZWRCbG9jaygpO1xuICAgIHdoaWxlIChsYXN0QmxvY2sgJiYgbGFzdEJsb2NrLmhlaWdodCA+PSBoZWlnaHQpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgUmV2ZXJ0aW5nIGJsb2NrICR7bGFzdEJsb2NrLmhhc2h9IGF0IGhlaWdodCAke2xhc3RCbG9jay5oZWlnaHR9YCxcbiAgICAgICk7XG4gICAgICBhd2FpdCB0aGlzLmFjdGlvbi5yZXZlcnRCbG9ja1N0YXR1cyhcbiAgICAgICAgbGFzdEJsb2NrLmhlaWdodCxcbiAgICAgICAgbGFzdEJsb2NrLnBhcmVudEhhc2gsXG4gICAgICAgIHRoaXMuZXh0cmFjdG9ycy5tYXAoKGUpID0+IGUuZ2V0SWQoKSksXG4gICAgICApO1xuICAgICAgZm9yIChjb25zdCBleHRyYWN0b3Igb2YgdGhpcy5leHRyYWN0b3JzKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgZXh0cmFjdG9yLmZvcmtCbG9jayhsYXN0QmxvY2suaGFzaCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihcbiAgICAgICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgZm9yayBibG9jayBpbiBleHRyYWN0b3IgJHtleHRyYWN0b3IuZ2V0SWQoKX06ICR7ZX1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMuYWN0aW9uLnJlbW92ZUJsb2Nrc0Zyb21IZWlnaHQobGFzdEJsb2NrLmhlaWdodCk7XG4gICAgICBsYXN0QmxvY2sgPSBhd2FpdCB0aGlzLmFjdGlvbi5nZXRCbG9ja0F0SGVpZ2h0KGxhc3RCbG9jay5oZWlnaHQgLSAxKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIHByb2Nlc3MgYSBibG9jayBhbmQgYWxsIG9mIGl0cyB0cmFuc2FjdGlvbnMuIHN0b3JlIGFueSBpbmZvcm1hdGlvbiBpbnRvIGRhdGFiYXNlXG4gICAqIEBwYXJhbSBibG9jazogc2VsZWN0ZWQgYmxvY2tcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uczogbGlzdCBvZiB0cmFuc2FjdGlvbiBmb3Igc2VsZWN0ZWQgYmxvY2tcbiAgICovXG4gIHByb3RlY3RlZCBwcm9jZXNzQmxvY2tUcmFuc2FjdGlvbnMgPSBhc3luYyAoXG4gICAgYmxvY2s6IEJsb2NrLFxuICAgIHRyYW5zYWN0aW9uczogQXJyYXk8VHJhbnNhY3Rpb25UeXBlPixcbiAgKSA9PiB7XG4gICAgY29uc3Qgc2F2ZWRCbG9jayA9IGF3YWl0IHRoaXMuYWN0aW9uLnNhdmVCbG9jayhibG9jayk7XG4gICAgaWYgKHR5cGVvZiBzYXZlZEJsb2NrID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbGV0IHN1Y2Nlc3MgPSB0cnVlO1xuICAgIGZvciAoY29uc3QgZXh0cmFjdG9yIG9mIHRoaXMuZXh0cmFjdG9ycykge1xuICAgICAgaWYgKCEoYXdhaXQgZXh0cmFjdG9yLnByb2Nlc3NUcmFuc2FjdGlvbnModHJhbnNhY3Rpb25zLCBzYXZlZEJsb2NrKSkpIHtcbiAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBzdWNjZXNzICYmXG4gICAgICAoYXdhaXQgdGhpcy5hY3Rpb24udXBkYXRlQmxvY2tTdGF0dXMoXG4gICAgICAgIGJsb2NrLmhlaWdodCxcbiAgICAgICAgYmxvY2suaGFzaCxcbiAgICAgICAgdGhpcy5leHRyYWN0b3JzLm1hcCgoZSkgPT4gZS5nZXRJZCgpKSxcbiAgICAgICkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gc2F2ZWRCbG9jaztcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xuXG4gIC8qKlxuICAgKiByZWdpc3RlciBhIG5yZSBleHRyYWN0b3IgdG8gc2Nhbm5lci5cbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgcmVnaXN0ZXJFeHRyYWN0b3IgPSBhc3luYyAoXG4gICAgZXh0cmFjdG9yOiBBYnN0cmFjdEV4dHJhY3RvcjxUcmFuc2FjdGlvblR5cGU+LFxuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBjb25zdCBub3RSZWdpc3RlcmVkSW4gPSAoXG4gICAgICBleHRyYWN0b3JzOiBBcnJheTxBYnN0cmFjdEV4dHJhY3RvcjxUcmFuc2FjdGlvblR5cGU+PixcbiAgICApID0+XG4gICAgICBleHRyYWN0b3JzLmZpbHRlcihcbiAgICAgICAgKGV4dHJhY3Rvckl0ZW0pID0+IGV4dHJhY3Rvckl0ZW0uZ2V0SWQoKSA9PT0gZXh0cmFjdG9yLmdldElkKCksXG4gICAgICApLmxlbmd0aCA9PT0gMDtcbiAgICBjb25zdCByZWxlYXNlID0gYXdhaXQgdGhpcy5pbml0aWFsaXplTXV0ZXguYWNxdWlyZSgpO1xuICAgIGlmIChcbiAgICAgIG5vdFJlZ2lzdGVyZWRJbih0aGlzLmV4dHJhY3RvcnMpICYmXG4gICAgICBub3RSZWdpc3RlcmVkSW4odGhpcy5uZXdFeHRyYWN0b3JzKVxuICAgICkge1xuICAgICAgdGhpcy5uZXdFeHRyYWN0b3JzLnB1c2goZXh0cmFjdG9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgYEV4dHJhY3RvciB3aXRoIGlkICR7ZXh0cmFjdG9yLmdldElkKCl9IGlzIGFscmVhZHkgcmVnaXN0ZXJlZGAsXG4gICAgICApO1xuICAgIH1cbiAgICByZWxlYXNlKCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIHJlbW92ZSBhbiBleHRyYWN0b3IgZnJvbSBzY2FubmVyXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHJlbW92ZUV4dHJhY3RvciA9IGFzeW5jIChcbiAgICBleHRyYWN0b3I6IEFic3RyYWN0RXh0cmFjdG9yPFRyYW5zYWN0aW9uVHlwZT4sXG4gICk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IHJlbW92ZUZuID0gKGV4OiBBYnN0cmFjdEV4dHJhY3RvcjxUcmFuc2FjdGlvblR5cGU+KSA9PlxuICAgICAgZXguZ2V0SWQoKSA9PT0gZXh0cmFjdG9yLmdldElkKCk7XG5cbiAgICBjb25zdCByZWxlYXNlID0gYXdhaXQgdGhpcy5pbml0aWFsaXplTXV0ZXguYWNxdWlyZSgpO1xuICAgIHJlbW92ZSh0aGlzLmV4dHJhY3RvcnMsIHJlbW92ZUZuKTtcbiAgICByZW1vdmUodGhpcy5uZXdFeHRyYWN0b3JzLCByZW1vdmVGbik7XG4gICAgcmVsZWFzZSgpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIGFsbCBzcGVjaWZpZWQgZXh0cmFjdG9ycyBhbmQgc3RvcmUgdGhlIHVwZGF0ZWQgc3RhdHVzXG4gICAqIEBwYXJhbSBleHRyYWN0b3JJZHNcbiAgICogQHBhcmFtIGhlaWdodFxuICAgKi9cbiAgcHJpdmF0ZSBpbml0aWFsaXplRXh0cmFjdG9ycyA9IGFzeW5jIChcbiAgICBleHRyYWN0b3JJZHM6IHN0cmluZ1tdLFxuICAgIGJsb2NrOiBCbG9ja0luZm8sXG4gICkgPT4ge1xuICAgIGNvbnN0IGFsbEV4dHJhY3RvcnMgPSBbLi4udGhpcy5leHRyYWN0b3JzLCAuLi50aGlzLm5ld0V4dHJhY3RvcnNdO1xuICAgIGNvbnN0IGluaXRSZXF1aXJlZEV4dHJhY3RvcnMgPSBhbGxFeHRyYWN0b3JzLmZpbHRlcigoZXh0cmFjdG9yKSA9PlxuICAgICAgZXh0cmFjdG9ySWRzLmluY2x1ZGVzKGV4dHJhY3Rvci5nZXRJZCgpKSxcbiAgICApO1xuICAgIGZvciAoY29uc3QgZXh0cmFjdG9yIG9mIGluaXRSZXF1aXJlZEV4dHJhY3RvcnMpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oYEluaXRpYWxpemluZyBbJHtleHRyYWN0b3IuZ2V0SWQoKX1dIGJveGVzYCk7XG4gICAgICBhd2FpdCBleHRyYWN0b3IuaW5pdGlhbGl6ZUJveGVzKGJsb2NrKTtcbiAgICAgIGF3YWl0IHRoaXMuYWN0aW9uLnVwZGF0ZU9ySW5zZXJ0RXh0cmFjdG9yU3RhdHVzKFxuICAgICAgICBleHRyYWN0b3IuZ2V0SWQoKSxcbiAgICAgICAgYmxvY2suaGVpZ2h0LFxuICAgICAgICBibG9jay5oYXNoLFxuICAgICAgKTtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBJbml0aWFsaXphdGlvbiBmaW5pc2hlZCBmb3IgWyR7ZXh0cmFjdG9yLmdldElkKCl9XWApO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGV4dHJhY3RvcnMgaWYgdGhleSdyZSBub3Qgc3luY2VkIG9yIG5vdCBpbml0aWFsaXplZCB5ZXQsXG4gICAqIGFuZCB1cGRhdGUgdGhlIGFjdGl2ZSBleHRyYWN0b3JzIGxpc3RcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqL1xuICBwcm90ZWN0ZWQgdmVyaWZ5RXh0cmFjdG9yc0luaXRpYWxpemF0aW9uID0gYXN5bmMgKGJsb2NrOiBCbG9ja0luZm8pID0+IHtcbiAgICBjb25zdCBnZXRJZHMgPSAoZXh0cmFjdG9yczogQXJyYXk8QWJzdHJhY3RFeHRyYWN0b3I8VHJhbnNhY3Rpb25UeXBlPj4pID0+IHtcbiAgICAgIHJldHVybiBleHRyYWN0b3JzLm1hcCgoZXh0cmFjdG9yKSA9PiBleHRyYWN0b3IuZ2V0SWQoKSk7XG4gICAgfTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgSW5pdGlhbGl6aW5nIGV4dHJhY3RvcnMgZm9yIGJsb2NrIFske2Jsb2NrLmhlaWdodH1dYCk7XG4gICAgbGV0IHN1Y2Nlc3MgPSB0cnVlO1xuICAgIGNvbnN0IHJlbGVhc2UgPSBhd2FpdCB0aGlzLmluaXRpYWxpemVNdXRleC5hY3F1aXJlKCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGV4dHJhY3RvcnNTdGF0dXMgPSBhd2FpdCB0aGlzLmFjdGlvbi5nZXRFeHRyYWN0b3JzU3RhdHVzKFtcbiAgICAgICAgLi4uZ2V0SWRzKHRoaXMuZXh0cmFjdG9ycyksXG4gICAgICAgIC4uLmdldElkcyh0aGlzLm5ld0V4dHJhY3RvcnMpLFxuICAgICAgXSk7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYFN0b3JlZCBleHRyYWN0b3JzIHN0YXR1cyBhcmUgWyR7SlNPTi5zdHJpbmdpZnkoZXh0cmFjdG9yc1N0YXR1cyl9XWAsXG4gICAgICApO1xuICAgICAgLy8gRmluZCBleHRyYWN0b3JzIG5vdCBzeW5jZWQgd2l0aCB0aGUgbGF0ZXN0IGhlaWdodFxuICAgICAgY29uc3Qgbm90U3luY2VkRXh0cmFjdG9ySWRzID0gZXh0cmFjdG9yc1N0YXR1c1xuICAgICAgICAuZmlsdGVyKChlcykgPT4gZXMudXBkYXRlQmxvY2tIYXNoICE9IGJsb2NrLmhhc2gpXG4gICAgICAgIC5tYXAoKGVzKSA9PiBlcy5leHRyYWN0b3JJZCk7XG4gICAgICBpZiAobm90U3luY2VkRXh0cmFjdG9ySWRzLmxlbmd0aCA+IDApXG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGBPbGQgbm90IHN5bmNlZCBleHRyYWN0b3JzIGFyZSAke25vdFN5bmNlZEV4dHJhY3Rvcklkc31gLFxuICAgICAgICApO1xuICAgICAgLy8gRmluZCBuZXcgZXh0cmFjdG9ycyBub3QgYXZhaWxhYmxlIGluIGRhdGFiYXNlXG4gICAgICBjb25zdCBzdG9yZWRFeHRyYWN0b3JJZHMgPSBleHRyYWN0b3JzU3RhdHVzLm1hcCgoZXMpID0+IGVzLmV4dHJhY3RvcklkKTtcbiAgICAgIGNvbnN0IG5ld1JlZ2lzdGVyZWRFeHRyYWN0b3JJZHMgPSBkaWZmZXJlbmNlKFxuICAgICAgICBnZXRJZHModGhpcy5uZXdFeHRyYWN0b3JzKSxcbiAgICAgICAgc3RvcmVkRXh0cmFjdG9ySWRzLFxuICAgICAgKTtcbiAgICAgIGlmIChuZXdSZWdpc3RlcmVkRXh0cmFjdG9ySWRzLmxlbmd0aCA+IDApXG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGBOZXcgcmVnaXN0ZXJlZCBleHRyYWN0b3JzIGFyZSAke25ld1JlZ2lzdGVyZWRFeHRyYWN0b3JJZHN9YCxcbiAgICAgICAgKTtcbiAgICAgIC8vIEluaXRpYWxpemUgcmVxdWlyZWQgZXh0cmFjdG9yc1xuICAgICAgY29uc3QgaW5pdFJlcXVpcmVkRXh0cmFjdG9ycyA9IFtcbiAgICAgICAgLi4ubmV3UmVnaXN0ZXJlZEV4dHJhY3RvcklkcyxcbiAgICAgICAgLi4ubm90U3luY2VkRXh0cmFjdG9ySWRzLFxuICAgICAgXTtcbiAgICAgIGlmIChpbml0UmVxdWlyZWRFeHRyYWN0b3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgICBgSW5pdGlhbGl6aW5nICR7XG4gICAgICAgICAgICBpbml0UmVxdWlyZWRFeHRyYWN0b3JzLmxlbmd0aFxuICAgICAgICAgIH0gZXh0cmFjdG9yKHMpIGZvciBbJHt0aGlzLm5hbWUoKX1dYCxcbiAgICAgICAgICB7IGluaXRSZXF1aXJlZEV4dHJhY3RvcnMgfSxcbiAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgdGhpcy5pbml0aWFsaXplRXh0cmFjdG9ycyhpbml0UmVxdWlyZWRFeHRyYWN0b3JzLCBibG9jayk7XG4gICAgICB9XG4gICAgICB0aGlzLmV4dHJhY3RvcnMucHVzaCguLi50aGlzLm5ld0V4dHJhY3RvcnMpO1xuICAgICAgdGhpcy5uZXdFeHRyYWN0b3JzID0gW107XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihgSW5pdGlhbGl6YXRpb24gZm9yIGV4dHJhY3RvcnMgZmFpbGVkIHdpdGggZXJyb3IgJHtlfWApO1xuICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuICAgIH0gZmluYWxseSB7XG4gICAgICByZWxlYXNlKCk7XG4gICAgfVxuICAgIGlmICghc3VjY2VzcylcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEluaXRpYWxpemF0aW9uIGZhaWxlZCBmb3IgbmV3IGV4dHJhY3RvcnMgJHtnZXRJZHModGhpcy5uZXdFeHRyYWN0b3JzKX1gLFxuICAgICAgKTtcbiAgfTtcbn1cbiJdfQ==
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zY2FubmVyL2Fic3RyYWN0L3NjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRy9DLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFLNUUsTUFBTSxPQUFnQixlQUFlO0lBQ25DLE1BQU0sQ0FBZ0I7SUFDdEIsVUFBVSxDQUE0QztJQUN0RCxhQUFhLENBQTRDO0lBQ3pELE1BQU0sQ0FBaUI7SUFDdkIsZUFBZSxDQUFRO0lBRXZCLFlBQVksTUFBdUI7UUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUlEOzs7T0FHRztJQUNPLFNBQVMsR0FBRyxLQUFLLEVBQUUsTUFBYyxFQUFFLEVBQUU7UUFDN0MsSUFBSSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDdEQsT0FBTyxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZixtQkFBbUIsU0FBUyxDQUFDLElBQUksY0FBYyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQ2xFLENBQUM7WUFDRixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQ2pDLFNBQVMsQ0FBQyxNQUFNLEVBQ2hCLFNBQVMsQ0FBQyxVQUFVLEVBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FDdEMsQ0FBQztZQUNGLEtBQUssTUFBTSxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN4QyxNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVDLENBQUM7WUFDRCxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNELFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2RSxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNPLHdCQUF3QixHQUFHLEtBQUssRUFDeEMsS0FBWSxFQUNaLFlBQW9DLEVBQ3BDLEVBQUU7UUFDRixNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RELElBQUksT0FBTyxVQUFVLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDcEMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ25CLEtBQUssTUFBTSxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxDQUFDLE1BQU0sU0FBUyxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JFLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ2hCLE1BQU07WUFDUixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQ0UsT0FBTztZQUNQLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUNsQyxLQUFLLENBQUMsTUFBTSxFQUNaLEtBQUssQ0FBQyxJQUFJLEVBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUN0QyxDQUFDLEVBQ0YsQ0FBQztZQUNELE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILGlCQUFpQixHQUFHLEtBQUssRUFDdkIsU0FBNkMsRUFDOUIsRUFBRTtRQUNqQixNQUFNLGVBQWUsR0FBRyxDQUN0QixVQUFxRCxFQUNyRCxFQUFFLENBQ0YsVUFBVSxDQUFDLE1BQU0sQ0FDZixDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FDL0QsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNyRCxJQUNFLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2hDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQ25DLENBQUM7WUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLHFCQUFxQixTQUFTLENBQUMsS0FBSyxFQUFFLHdCQUF3QixDQUMvRCxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQyxDQUFDO0lBRUY7OztPQUdHO0lBQ0gsZUFBZSxHQUFHLEtBQUssRUFDckIsU0FBNkMsRUFDOUIsRUFBRTtRQUNqQixNQUFNLFFBQVEsR0FBRyxDQUFDLEVBQXNDLEVBQUUsRUFBRSxDQUMxRCxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRW5DLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNyRCxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNyQyxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUMsQ0FBQztJQUVGOzs7O09BSUc7SUFDSyxvQkFBb0IsR0FBRyxLQUFLLEVBQ2xDLFlBQXNCLEVBQ3RCLEtBQWdCLEVBQ2hCLEVBQUU7UUFDRixNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNsRSxNQUFNLHNCQUFzQixHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUNoRSxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUN6QyxDQUFDO1FBQ0YsS0FBSyxNQUFNLFNBQVMsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixTQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzlELE1BQU0sU0FBUyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsNkJBQTZCLENBQzdDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFDakIsS0FBSyxDQUFDLE1BQU0sRUFDWixLQUFLLENBQUMsSUFBSSxDQUNYLENBQUM7WUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsU0FBUyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxRSxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNPLDhCQUE4QixHQUFHLEtBQUssRUFBRSxLQUFnQixFQUFFLEVBQUU7UUFDcEUsTUFBTSxNQUFNLEdBQUcsQ0FBQyxVQUFxRCxFQUFFLEVBQUU7WUFDdkUsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMxRCxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDekUsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ25CLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNyRCxJQUFJLENBQUM7WUFDSCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQztnQkFDN0QsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDMUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQzthQUM5QixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZixpQ0FBaUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQ3JFLENBQUM7WUFDRixvREFBb0Q7WUFDcEQsTUFBTSxxQkFBcUIsR0FBRyxnQkFBZ0I7aUJBQzNDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLGVBQWUsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDO2lCQUNoRCxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMvQixJQUFJLHFCQUFxQixDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZixpQ0FBaUMscUJBQXFCLEVBQUUsQ0FDekQsQ0FBQztZQUNKLGdEQUFnRDtZQUNoRCxNQUFNLGtCQUFrQixHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3hFLE1BQU0seUJBQXlCLEdBQUcsVUFBVSxDQUMxQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUMxQixrQkFBa0IsQ0FDbkIsQ0FBQztZQUNGLElBQUkseUJBQXlCLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLGlDQUFpQyx5QkFBeUIsRUFBRSxDQUM3RCxDQUFDO1lBQ0osaUNBQWlDO1lBQ2pDLE1BQU0sc0JBQXNCLEdBQUc7Z0JBQzdCLEdBQUcseUJBQXlCO2dCQUM1QixHQUFHLHFCQUFxQjthQUN6QixDQUFDO1lBQ0YsSUFBSSxzQkFBc0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLGdCQUNFLHNCQUFzQixDQUFDLE1BQ3pCLHNCQUFzQixJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFDcEMsRUFBRSxzQkFBc0IsRUFBRSxDQUMzQixDQUFDO2dCQUNGLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2pFLENBQUM7WUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1EQUFtRCxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pFLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDbEIsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU87WUFDVixNQUFNLElBQUksS0FBSyxDQUNiLDRDQUE0QyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQ3pFLENBQUM7SUFDTixDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE11dGV4IH0gZnJvbSAnYXdhaXQtc2VtYXBob3JlJztcbmltcG9ydCB7IGRpZmZlcmVuY2UsIHJlbW92ZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmltcG9ydCB7IEFic3RyYWN0RXh0cmFjdG9yIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1leHRyYWN0b3InO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgQmxvY2ssIEJsb2NrSW5mbyB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgQmxvY2tEYkFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbic7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFNjYW5uZXI8VHJhbnNhY3Rpb25UeXBlPiB7XG4gIGFjdGlvbjogQmxvY2tEYkFjdGlvbjtcbiAgZXh0cmFjdG9yczogQXJyYXk8QWJzdHJhY3RFeHRyYWN0b3I8VHJhbnNhY3Rpb25UeXBlPj47XG4gIG5ld0V4dHJhY3RvcnM6IEFycmF5PEFic3RyYWN0RXh0cmFjdG9yPFRyYW5zYWN0aW9uVHlwZT4+O1xuICBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyO1xuICBpbml0aWFsaXplTXV0ZXg6IE11dGV4O1xuXG4gIGNvbnN0cnVjdG9yKGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyKSB7XG4gICAgdGhpcy5leHRyYWN0b3JzID0gW107XG4gICAgdGhpcy5uZXdFeHRyYWN0b3JzID0gW107XG4gICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIgPyBsb2dnZXIgOiBuZXcgRHVtbXlMb2dnZXIoKTtcbiAgICB0aGlzLmluaXRpYWxpemVNdXRleCA9IG5ldyBNdXRleCgpO1xuICB9XG5cbiAgYWJzdHJhY3QgbmFtZTogKCkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBmb3JrIGJsb2NrcyBmcm9tIHNwZWNpZmljIGhlaWdodCBmcm9tIHNjYW5uZXIuXG4gICAqIEBwYXJhbSBoZWlnaHQ6IHNlbGVjdGVkIGhlaWdodFxuICAgKi9cbiAgcHJvdGVjdGVkIGZvcmtCbG9jayA9IGFzeW5jIChoZWlnaHQ6IG51bWJlcikgPT4ge1xuICAgIGxldCBsYXN0QmxvY2sgPSBhd2FpdCB0aGlzLmFjdGlvbi5nZXRMYXN0U2F2ZWRCbG9jaygpO1xuICAgIHdoaWxlIChsYXN0QmxvY2sgJiYgbGFzdEJsb2NrLmhlaWdodCA+PSBoZWlnaHQpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgUmV2ZXJ0aW5nIGJsb2NrICR7bGFzdEJsb2NrLmhhc2h9IGF0IGhlaWdodCAke2xhc3RCbG9jay5oZWlnaHR9YCxcbiAgICAgICk7XG4gICAgICBhd2FpdCB0aGlzLmFjdGlvbi5yZXZlcnRCbG9ja1N0YXR1cyhcbiAgICAgICAgbGFzdEJsb2NrLmhlaWdodCxcbiAgICAgICAgbGFzdEJsb2NrLnBhcmVudEhhc2gsXG4gICAgICAgIHRoaXMuZXh0cmFjdG9ycy5tYXAoKGUpID0+IGUuZ2V0SWQoKSksXG4gICAgICApO1xuICAgICAgZm9yIChjb25zdCBleHRyYWN0b3Igb2YgdGhpcy5leHRyYWN0b3JzKSB7XG4gICAgICAgIGF3YWl0IGV4dHJhY3Rvci5mb3JrQmxvY2sobGFzdEJsb2NrLmhhc2gpO1xuICAgICAgfVxuICAgICAgYXdhaXQgdGhpcy5hY3Rpb24ucmVtb3ZlQmxvY2tzRnJvbUhlaWdodChsYXN0QmxvY2suaGVpZ2h0KTtcbiAgICAgIGxhc3RCbG9jayA9IGF3YWl0IHRoaXMuYWN0aW9uLmdldEJsb2NrQXRIZWlnaHQobGFzdEJsb2NrLmhlaWdodCAtIDEpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogcHJvY2VzcyBhIGJsb2NrIGFuZCBhbGwgb2YgaXRzIHRyYW5zYWN0aW9ucy4gc3RvcmUgYW55IGluZm9ybWF0aW9uIGludG8gZGF0YWJhc2VcbiAgICogQHBhcmFtIGJsb2NrOiBzZWxlY3RlZCBibG9ja1xuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb25zOiBsaXN0IG9mIHRyYW5zYWN0aW9uIGZvciBzZWxlY3RlZCBibG9ja1xuICAgKi9cbiAgcHJvdGVjdGVkIHByb2Nlc3NCbG9ja1RyYW5zYWN0aW9ucyA9IGFzeW5jIChcbiAgICBibG9jazogQmxvY2ssXG4gICAgdHJhbnNhY3Rpb25zOiBBcnJheTxUcmFuc2FjdGlvblR5cGU+LFxuICApID0+IHtcbiAgICBjb25zdCBzYXZlZEJsb2NrID0gYXdhaXQgdGhpcy5hY3Rpb24uc2F2ZUJsb2NrKGJsb2NrKTtcbiAgICBpZiAodHlwZW9mIHNhdmVkQmxvY2sgPT09ICdib29sZWFuJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBsZXQgc3VjY2VzcyA9IHRydWU7XG4gICAgZm9yIChjb25zdCBleHRyYWN0b3Igb2YgdGhpcy5leHRyYWN0b3JzKSB7XG4gICAgICBpZiAoIShhd2FpdCBleHRyYWN0b3IucHJvY2Vzc1RyYW5zYWN0aW9ucyh0cmFuc2FjdGlvbnMsIHNhdmVkQmxvY2spKSkge1xuICAgICAgICBzdWNjZXNzID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHN1Y2Nlc3MgJiZcbiAgICAgIChhd2FpdCB0aGlzLmFjdGlvbi51cGRhdGVCbG9ja1N0YXR1cyhcbiAgICAgICAgYmxvY2suaGVpZ2h0LFxuICAgICAgICBibG9jay5oYXNoLFxuICAgICAgICB0aGlzLmV4dHJhY3RvcnMubWFwKChlKSA9PiBlLmdldElkKCkpLFxuICAgICAgKSlcbiAgICApIHtcbiAgICAgIHJldHVybiBzYXZlZEJsb2NrO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgLyoqXG4gICAqIHJlZ2lzdGVyIGEgbnJlIGV4dHJhY3RvciB0byBzY2FubmVyLlxuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICByZWdpc3RlckV4dHJhY3RvciA9IGFzeW5jIChcbiAgICBleHRyYWN0b3I6IEFic3RyYWN0RXh0cmFjdG9yPFRyYW5zYWN0aW9uVHlwZT4sXG4gICk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IG5vdFJlZ2lzdGVyZWRJbiA9IChcbiAgICAgIGV4dHJhY3RvcnM6IEFycmF5PEFic3RyYWN0RXh0cmFjdG9yPFRyYW5zYWN0aW9uVHlwZT4+LFxuICAgICkgPT5cbiAgICAgIGV4dHJhY3RvcnMuZmlsdGVyKFxuICAgICAgICAoZXh0cmFjdG9ySXRlbSkgPT4gZXh0cmFjdG9ySXRlbS5nZXRJZCgpID09PSBleHRyYWN0b3IuZ2V0SWQoKSxcbiAgICAgICkubGVuZ3RoID09PSAwO1xuICAgIGNvbnN0IHJlbGVhc2UgPSBhd2FpdCB0aGlzLmluaXRpYWxpemVNdXRleC5hY3F1aXJlKCk7XG4gICAgaWYgKFxuICAgICAgbm90UmVnaXN0ZXJlZEluKHRoaXMuZXh0cmFjdG9ycykgJiZcbiAgICAgIG5vdFJlZ2lzdGVyZWRJbih0aGlzLm5ld0V4dHJhY3RvcnMpXG4gICAgKSB7XG4gICAgICB0aGlzLm5ld0V4dHJhY3RvcnMucHVzaChleHRyYWN0b3IpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKFxuICAgICAgICBgRXh0cmFjdG9yIHdpdGggaWQgJHtleHRyYWN0b3IuZ2V0SWQoKX0gaXMgYWxyZWFkeSByZWdpc3RlcmVkYCxcbiAgICAgICk7XG4gICAgfVxuICAgIHJlbGVhc2UoKTtcbiAgfTtcblxuICAvKipcbiAgICogcmVtb3ZlIGFuIGV4dHJhY3RvciBmcm9tIHNjYW5uZXJcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgcmVtb3ZlRXh0cmFjdG9yID0gYXN5bmMgKFxuICAgIGV4dHJhY3RvcjogQWJzdHJhY3RFeHRyYWN0b3I8VHJhbnNhY3Rpb25UeXBlPixcbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgY29uc3QgcmVtb3ZlRm4gPSAoZXg6IEFic3RyYWN0RXh0cmFjdG9yPFRyYW5zYWN0aW9uVHlwZT4pID0+XG4gICAgICBleC5nZXRJZCgpID09PSBleHRyYWN0b3IuZ2V0SWQoKTtcblxuICAgIGNvbnN0IHJlbGVhc2UgPSBhd2FpdCB0aGlzLmluaXRpYWxpemVNdXRleC5hY3F1aXJlKCk7XG4gICAgcmVtb3ZlKHRoaXMuZXh0cmFjdG9ycywgcmVtb3ZlRm4pO1xuICAgIHJlbW92ZSh0aGlzLm5ld0V4dHJhY3RvcnMsIHJlbW92ZUZuKTtcbiAgICByZWxlYXNlKCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgYWxsIHNwZWNpZmllZCBleHRyYWN0b3JzIGFuZCBzdG9yZSB0aGUgdXBkYXRlZCBzdGF0dXNcbiAgICogQHBhcmFtIGV4dHJhY3Rvcklkc1xuICAgKiBAcGFyYW0gaGVpZ2h0XG4gICAqL1xuICBwcml2YXRlIGluaXRpYWxpemVFeHRyYWN0b3JzID0gYXN5bmMgKFxuICAgIGV4dHJhY3Rvcklkczogc3RyaW5nW10sXG4gICAgYmxvY2s6IEJsb2NrSW5mbyxcbiAgKSA9PiB7XG4gICAgY29uc3QgYWxsRXh0cmFjdG9ycyA9IFsuLi50aGlzLmV4dHJhY3RvcnMsIC4uLnRoaXMubmV3RXh0cmFjdG9yc107XG4gICAgY29uc3QgaW5pdFJlcXVpcmVkRXh0cmFjdG9ycyA9IGFsbEV4dHJhY3RvcnMuZmlsdGVyKChleHRyYWN0b3IpID0+XG4gICAgICBleHRyYWN0b3JJZHMuaW5jbHVkZXMoZXh0cmFjdG9yLmdldElkKCkpLFxuICAgICk7XG4gICAgZm9yIChjb25zdCBleHRyYWN0b3Igb2YgaW5pdFJlcXVpcmVkRXh0cmFjdG9ycykge1xuICAgICAgdGhpcy5sb2dnZXIuaW5mbyhgSW5pdGlhbGl6aW5nIFske2V4dHJhY3Rvci5nZXRJZCgpfV0gYm94ZXNgKTtcbiAgICAgIGF3YWl0IGV4dHJhY3Rvci5pbml0aWFsaXplRGF0YShibG9jayk7XG4gICAgICBhd2FpdCB0aGlzLmFjdGlvbi51cGRhdGVPckluc2VydEV4dHJhY3RvclN0YXR1cyhcbiAgICAgICAgZXh0cmFjdG9yLmdldElkKCksXG4gICAgICAgIGJsb2NrLmhlaWdodCxcbiAgICAgICAgYmxvY2suaGFzaCxcbiAgICAgICk7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgSW5pdGlhbGl6YXRpb24gZmluaXNoZWQgZm9yIFske2V4dHJhY3Rvci5nZXRJZCgpfV1gKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBleHRyYWN0b3JzIGlmIHRoZXkncmUgbm90IHN5bmNlZCBvciBub3QgaW5pdGlhbGl6ZWQgeWV0LFxuICAgKiBhbmQgdXBkYXRlIHRoZSBhY3RpdmUgZXh0cmFjdG9ycyBsaXN0XG4gICAqIEBwYXJhbSBibG9ja1xuICAgKi9cbiAgcHJvdGVjdGVkIHZlcmlmeUV4dHJhY3RvcnNJbml0aWFsaXphdGlvbiA9IGFzeW5jIChibG9jazogQmxvY2tJbmZvKSA9PiB7XG4gICAgY29uc3QgZ2V0SWRzID0gKGV4dHJhY3RvcnM6IEFycmF5PEFic3RyYWN0RXh0cmFjdG9yPFRyYW5zYWN0aW9uVHlwZT4+KSA9PiB7XG4gICAgICByZXR1cm4gZXh0cmFjdG9ycy5tYXAoKGV4dHJhY3RvcikgPT4gZXh0cmFjdG9yLmdldElkKCkpO1xuICAgIH07XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoYEluaXRpYWxpemluZyBleHRyYWN0b3JzIGZvciBibG9jayBbJHtibG9jay5oZWlnaHR9XWApO1xuICAgIGxldCBzdWNjZXNzID0gdHJ1ZTtcbiAgICBjb25zdCByZWxlYXNlID0gYXdhaXQgdGhpcy5pbml0aWFsaXplTXV0ZXguYWNxdWlyZSgpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBleHRyYWN0b3JzU3RhdHVzID0gYXdhaXQgdGhpcy5hY3Rpb24uZ2V0RXh0cmFjdG9yc1N0YXR1cyhbXG4gICAgICAgIC4uLmdldElkcyh0aGlzLmV4dHJhY3RvcnMpLFxuICAgICAgICAuLi5nZXRJZHModGhpcy5uZXdFeHRyYWN0b3JzKSxcbiAgICAgIF0pO1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBTdG9yZWQgZXh0cmFjdG9ycyBzdGF0dXMgYXJlIFske0pTT04uc3RyaW5naWZ5KGV4dHJhY3RvcnNTdGF0dXMpfV1gLFxuICAgICAgKTtcbiAgICAgIC8vIEZpbmQgZXh0cmFjdG9ycyBub3Qgc3luY2VkIHdpdGggdGhlIGxhdGVzdCBoZWlnaHRcbiAgICAgIGNvbnN0IG5vdFN5bmNlZEV4dHJhY3RvcklkcyA9IGV4dHJhY3RvcnNTdGF0dXNcbiAgICAgICAgLmZpbHRlcigoZXMpID0+IGVzLnVwZGF0ZUJsb2NrSGFzaCAhPSBibG9jay5oYXNoKVxuICAgICAgICAubWFwKChlcykgPT4gZXMuZXh0cmFjdG9ySWQpO1xuICAgICAgaWYgKG5vdFN5bmNlZEV4dHJhY3Rvcklkcy5sZW5ndGggPiAwKVxuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBgT2xkIG5vdCBzeW5jZWQgZXh0cmFjdG9ycyBhcmUgJHtub3RTeW5jZWRFeHRyYWN0b3JJZHN9YCxcbiAgICAgICAgKTtcbiAgICAgIC8vIEZpbmQgbmV3IGV4dHJhY3RvcnMgbm90IGF2YWlsYWJsZSBpbiBkYXRhYmFzZVxuICAgICAgY29uc3Qgc3RvcmVkRXh0cmFjdG9ySWRzID0gZXh0cmFjdG9yc1N0YXR1cy5tYXAoKGVzKSA9PiBlcy5leHRyYWN0b3JJZCk7XG4gICAgICBjb25zdCBuZXdSZWdpc3RlcmVkRXh0cmFjdG9ySWRzID0gZGlmZmVyZW5jZShcbiAgICAgICAgZ2V0SWRzKHRoaXMubmV3RXh0cmFjdG9ycyksXG4gICAgICAgIHN0b3JlZEV4dHJhY3RvcklkcyxcbiAgICAgICk7XG4gICAgICBpZiAobmV3UmVnaXN0ZXJlZEV4dHJhY3Rvcklkcy5sZW5ndGggPiAwKVxuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBgTmV3IHJlZ2lzdGVyZWQgZXh0cmFjdG9ycyBhcmUgJHtuZXdSZWdpc3RlcmVkRXh0cmFjdG9ySWRzfWAsXG4gICAgICAgICk7XG4gICAgICAvLyBJbml0aWFsaXplIHJlcXVpcmVkIGV4dHJhY3RvcnNcbiAgICAgIGNvbnN0IGluaXRSZXF1aXJlZEV4dHJhY3RvcnMgPSBbXG4gICAgICAgIC4uLm5ld1JlZ2lzdGVyZWRFeHRyYWN0b3JJZHMsXG4gICAgICAgIC4uLm5vdFN5bmNlZEV4dHJhY3RvcklkcyxcbiAgICAgIF07XG4gICAgICBpZiAoaW5pdFJlcXVpcmVkRXh0cmFjdG9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICAgICAgYEluaXRpYWxpemluZyAke1xuICAgICAgICAgICAgaW5pdFJlcXVpcmVkRXh0cmFjdG9ycy5sZW5ndGhcbiAgICAgICAgICB9IGV4dHJhY3RvcihzKSBmb3IgWyR7dGhpcy5uYW1lKCl9XWAsXG4gICAgICAgICAgeyBpbml0UmVxdWlyZWRFeHRyYWN0b3JzIH0sXG4gICAgICAgICk7XG4gICAgICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZUV4dHJhY3RvcnMoaW5pdFJlcXVpcmVkRXh0cmFjdG9ycywgYmxvY2spO1xuICAgICAgfVxuICAgICAgdGhpcy5leHRyYWN0b3JzLnB1c2goLi4udGhpcy5uZXdFeHRyYWN0b3JzKTtcbiAgICAgIHRoaXMubmV3RXh0cmFjdG9ycyA9IFtdO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oYEluaXRpYWxpemF0aW9uIGZvciBleHRyYWN0b3JzIGZhaWxlZCB3aXRoIGVycm9yICR7ZX1gKTtcbiAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgcmVsZWFzZSgpO1xuICAgIH1cbiAgICBpZiAoIXN1Y2Nlc3MpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBJbml0aWFsaXphdGlvbiBmYWlsZWQgZm9yIG5ldyBleHRyYWN0b3JzICR7Z2V0SWRzKHRoaXMubmV3RXh0cmFjdG9ycyl9YCxcbiAgICAgICk7XG4gIH07XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rosen-bridge/abstract-scanner",
3
- "version": "0.2.2",
3
+ "version": "1.0.0-8f3c7016",
4
4
  "description": "Abstract scanner toolkit for blockchain scanning with logging.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -28,7 +28,7 @@
28
28
  "type-check": "tsc --noEmit"
29
29
  },
30
30
  "dependencies": {
31
- "@rosen-bridge/abstract-extractor": "^2.1.2",
31
+ "@rosen-bridge/abstract-extractor": "3.0.0-8f3c7016",
32
32
  "@rosen-bridge/abstract-logger": "^3.0.1",
33
33
  "@rosen-bridge/extended-typeorm": "^1.0.1",
34
34
  "@rosen-bridge/json-bigint": "^1.1.0",