@railhook/node 2.16.1 → 2.16.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/client.js +2 -2
  2. package/package.json +1 -1
package/dist/client.js CHANGED
@@ -40,7 +40,7 @@ const url_1 = require("url");
40
40
  const errors_1 = require("./errors");
41
41
  const DEFAULT_BASE_URL = 'http://localhost:8080';
42
42
  const DEFAULT_TIMEOUT = 30000;
43
- const SDK_VERSION = '2.16.1';
43
+ const SDK_VERSION = '2.16.3';
44
44
  class Railhook {
45
45
  constructor(config) {
46
46
  if (!config.apiKey) {
@@ -341,4 +341,4 @@ class IncomingEvents {
341
341
  return this.client.request('POST', `/api/v1/projects/${projectId}/incoming-events/${eventId}/replay`);
342
342
  }
343
343
  }
344
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBK0I7QUFDL0IsMkNBQTZCO0FBQzdCLDZCQUEwQjtBQTRCMUIscUNBTWtCO0FBRWxCLE1BQU0sZ0JBQWdCLEdBQUcsdUJBQXVCLENBQUM7QUFDakQsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDO0FBQzlCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQztBQUU3QixNQUFhLFFBQVE7SUFZbkIsWUFBWSxNQUFzQjtRQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQztRQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksZUFBZSxDQUFDO1FBRWpELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLElBQUks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QUFNLElBQUksR0FBRyxvQkFBb0IsU0FBUyxtQkFBbUIsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUVwRyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFtQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBaUIsRUFBRSxPQUFlO1FBQzFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQ3hCLEtBQUssRUFDTCxvQkFBb0IsU0FBUyxvQkFBb0IsT0FBTyxFQUFFLENBQzNELENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FDZixTQUFpQixFQUNqQixPQUFlO1FBRWYsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDeEIsS0FBSyxFQUNMLG9CQUFvQixTQUFTLG9CQUFvQixPQUFPLFdBQVcsQ0FDcEUsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQWlCLEVBQUUsT0FBZTtRQUM3QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUN4QixNQUFNLEVBQ04sb0JBQW9CLFNBQVMsb0JBQW9CLE9BQU8sU0FBUyxDQUNsRSxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaHR0cHMgZnJvbSAnaHR0cHMnO1xuaW1wb3J0ICogYXMgaHR0cCBmcm9tICdodHRwJztcbmltcG9ydCB7IFVSTCB9IGZyb20gJ3VybCc7XG5pbXBvcnQge1xuICBSYWlsaG9va0NvbmZpZyxcbiAgRXZlbnQsXG4gIEV2ZW50UmVzcG9uc2UsXG4gIEVuZHBvaW50LFxuICBFbmRwb2ludENyZWF0ZVBhcmFtcyxcbiAgRW5kcG9pbnRVcGRhdGVQYXJhbXMsXG4gIEVuZHBvaW50TGlzdFBhcmFtcyxcbiAgU3Vic2NyaXB0aW9uLFxuICBTdWJzY3JpcHRpb25DcmVhdGVQYXJhbXMsXG4gIERlbGl2ZXJ5LFxuICBEZWxpdmVyeUF0dGVtcHQsXG4gIERlbGl2ZXJ5TGlzdFBhcmFtcyxcbiAgUGFnaW5hdGVkUmVzcG9uc2UsXG4gIEVuZHBvaW50VGVzdFJlc3VsdCxcbiAgUmF0ZUxpbWl0SW5mbyxcbiAgSW5jb21pbmdTb3VyY2UsXG4gIEluY29taW5nU291cmNlQ3JlYXRlUGFyYW1zLFxuICBJbmNvbWluZ1NvdXJjZVVwZGF0ZVBhcmFtcyxcbiAgSW5jb21pbmdEZXN0aW5hdGlvbixcbiAgSW5jb21pbmdEZXN0aW5hdGlvbkNyZWF0ZVBhcmFtcyxcbiAgSW5jb21pbmdEZXN0aW5hdGlvblVwZGF0ZVBhcmFtcyxcbiAgSW5jb21pbmdFdmVudCxcbiAgSW5jb21pbmdFdmVudExpc3RQYXJhbXMsXG4gIEluY29taW5nRm9yd2FyZEF0dGVtcHQsXG4gIFJlcGxheUV2ZW50UmVzcG9uc2UsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgUmFpbGhvb2tFcnJvcixcbiAgQXV0aGVudGljYXRpb25FcnJvcixcbiAgUmF0ZUxpbWl0RXJyb3IsXG4gIFZhbGlkYXRpb25FcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbn0gZnJvbSAnLi9lcnJvcnMnO1xuXG5jb25zdCBERUZBVUxUX0JBU0VfVVJMID0gJ2h0dHA6Ly9sb2NhbGhvc3Q6ODA4MCc7XG5jb25zdCBERUZBVUxUX1RJTUVPVVQgPSAzMDAwMDtcbmNvbnN0IFNES19WRVJTSU9OID0gJzIuMTYuMSc7XG5cbmV4cG9ydCBjbGFzcyBSYWlsaG9vayB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXBpS2V5OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHRpbWVvdXQ6IG51bWJlcjtcblxuICBwdWJsaWMgcmVhZG9ubHkgZXZlbnRzOiBFdmVudHM7XG4gIHB1YmxpYyByZWFkb25seSBlbmRwb2ludHM6IEVuZHBvaW50cztcbiAgcHVibGljIHJlYWRvbmx5IHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbnM7XG4gIHB1YmxpYyByZWFkb25seSBkZWxpdmVyaWVzOiBEZWxpdmVyaWVzO1xuICBwdWJsaWMgcmVhZG9ubHkgaW5jb21pbmdTb3VyY2VzOiBJbmNvbWluZ1NvdXJjZXM7XG4gIHB1YmxpYyByZWFkb25seSBpbmNvbWluZ0V2ZW50czogSW5jb21pbmdFdmVudHM7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBSYWlsaG9va0NvbmZpZykge1xuICAgIGlmICghY29uZmlnLmFwaUtleSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBUEkga2V5IGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuXG4gICAgdGhpcy5hcGlLZXkgPSBjb25maWcuYXBpS2V5O1xuICAgIHRoaXMuYmFzZVVybCA9IGNvbmZpZy5iYXNlVXJsIHx8IERFRkFVTFRfQkFTRV9VUkw7XG4gICAgdGhpcy50aW1lb3V0ID0gY29uZmlnLnRpbWVvdXQgfHwgREVGQVVMVF9USU1FT1VUO1xuXG4gICAgdGhpcy5ldmVudHMgPSBuZXcgRXZlbnRzKHRoaXMpO1xuICAgIHRoaXMuZW5kcG9pbnRzID0gbmV3IEVuZHBvaW50cyh0aGlzKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9ucyh0aGlzKTtcbiAgICB0aGlzLmRlbGl2ZXJpZXMgPSBuZXcgRGVsaXZlcmllcyh0aGlzKTtcbiAgICB0aGlzLmluY29taW5nU291cmNlcyA9IG5ldyBJbmNvbWluZ1NvdXJjZXModGhpcyk7XG4gICAgdGhpcy5pbmNvbWluZ0V2ZW50cyA9IG5ldyBJbmNvbWluZ0V2ZW50cyh0aGlzKTtcbiAgfVxuXG4gIGFzeW5jIHJlcXVlc3Q8VD4oXG4gICAgbWV0aG9kOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGJvZHk/OiB1bmtub3duLFxuICAgIGlkZW1wb3RlbmN5S2V5Pzogc3RyaW5nXG4gICk6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwocGF0aCwgdGhpcy5iYXNlVXJsKTtcbiAgICBjb25zdCBpc0h0dHBzID0gdXJsLnByb3RvY29sID09PSAnaHR0cHM6JztcbiAgICBjb25zdCBsaWIgPSBpc0h0dHBzID8gaHR0cHMgOiBodHRwO1xuXG4gICAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICdYLUFQSS1LZXknOiB0aGlzLmFwaUtleSxcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAnVXNlci1BZ2VudCc6IGByYWlsaG9vay1ub2RlLyR7U0RLX1ZFUlNJT059YCxcbiAgICB9O1xuXG4gICAgaWYgKGlkZW1wb3RlbmN5S2V5KSB7XG4gICAgICBoZWFkZXJzWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5S2V5O1xuICAgIH1cblxuICAgIGNvbnN0IG9wdGlvbnM6IGh0dHAuUmVxdWVzdE9wdGlvbnMgPSB7XG4gICAgICBtZXRob2QsXG4gICAgICBob3N0bmFtZTogdXJsLmhvc3RuYW1lLFxuICAgICAgcG9ydDogdXJsLnBvcnQgfHwgKGlzSHR0cHMgPyA0NDMgOiA4MCksXG4gICAgICBwYXRoOiB1cmwucGF0aG5hbWUgKyB1cmwuc2VhcmNoLFxuICAgICAgaGVhZGVycyxcbiAgICAgIHRpbWVvdXQ6IHRoaXMudGltZW91dCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IHJlcSA9IGxpYi5yZXF1ZXN0KG9wdGlvbnMsIChyZXMpID0+IHtcbiAgICAgICAgbGV0IGRhdGEgPSAnJztcbiAgICAgICAgcmVzLm9uKCdkYXRhJywgKGNodW5rKSA9PiAoZGF0YSArPSBjaHVuaykpO1xuICAgICAgICByZXMub24oJ2VuZCcsICgpID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmF0ZUxpbWl0SW5mbyA9IHRoaXMuZXh0cmFjdFJhdGVMaW1pdEluZm8ocmVzLmhlYWRlcnMpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAocmVzLnN0YXR1c0NvZGUgPT09IDIwNCkge1xuICAgICAgICAgICAgICByZXNvbHZlKHVuZGVmaW5lZCBhcyBUKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBwYXJzZWQgPSBkYXRhID8gSlNPTi5wYXJzZShkYXRhKSA6IHt9O1xuXG4gICAgICAgICAgICBpZiAocmVzLnN0YXR1c0NvZGUgJiYgcmVzLnN0YXR1c0NvZGUgPj0gNDAwKSB7XG4gICAgICAgICAgICAgIHJlamVjdCh0aGlzLmhhbmRsZUVycm9yKHJlcy5zdGF0dXNDb2RlLCBwYXJzZWQsIHJhdGVMaW1pdEluZm8pKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXNvbHZlKHBhcnNlZCBhcyBUKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHJlamVjdChuZXcgUmFpbGhvb2tFcnJvcignRmFpbGVkIHRvIHBhcnNlIHJlc3BvbnNlJywgNTAwKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICByZXEub24oJ2Vycm9yJywgKGVycikgPT4ge1xuICAgICAgICByZWplY3QobmV3IFJhaWxob29rRXJyb3IoZXJyLm1lc3NhZ2UsIDAsICduZXR3b3JrX2Vycm9yJykpO1xuICAgICAgfSk7XG5cbiAgICAgIHJlcS5vbigndGltZW91dCcsICgpID0+IHtcbiAgICAgICAgcmVxLmRlc3Ryb3koKTtcbiAgICAgICAgcmVqZWN0KG5ldyBSYWlsaG9va0Vycm9yKCdSZXF1ZXN0IHRpbWVvdXQnLCAwLCAndGltZW91dCcpKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoYm9keSkge1xuICAgICAgICByZXEud3JpdGUoSlNPTi5zdHJpbmdpZnkoYm9keSkpO1xuICAgICAgfVxuXG4gICAgICByZXEuZW5kKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJpYyBHRVQgcmVxdWVzdCB0byBhbnkgQVBJIHBhdGguXG4gICAqIFVzZSB0aGlzIGZvciBlbmRwb2ludHMgbm90IHlldCBjb3ZlcmVkIGJ5IHRoZSBTREsuXG4gICAqL1xuICBhc3luYyBnZXQ8VCA9IHVua25vd24+KHBhdGg6IHN0cmluZyk6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4oJ0dFVCcsIHBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyaWMgUE9TVCByZXF1ZXN0IHRvIGFueSBBUEkgcGF0aC5cbiAgICogVXNlIHRoaXMgZm9yIGVuZHBvaW50cyBub3QgeWV0IGNvdmVyZWQgYnkgdGhlIFNESy5cbiAgICovXG4gIGFzeW5jIHBvc3Q8VCA9IHVua25vd24+KHBhdGg6IHN0cmluZywgYm9keT86IHVua25vd24sIGlkZW1wb3RlbmN5S2V5Pzogc3RyaW5nKTogUHJvbWlzZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdDxUPignUE9TVCcsIHBhdGgsIGJvZHksIGlkZW1wb3RlbmN5S2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmljIFBVVCByZXF1ZXN0IHRvIGFueSBBUEkgcGF0aC5cbiAgICogVXNlIHRoaXMgZm9yIGVuZHBvaW50cyBub3QgeWV0IGNvdmVyZWQgYnkgdGhlIFNESy5cbiAgICovXG4gIGFzeW5jIHB1dDxUID0gdW5rbm93bj4ocGF0aDogc3RyaW5nLCBib2R5PzogdW5rbm93bik6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4oJ1BVVCcsIHBhdGgsIGJvZHkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyaWMgUEFUQ0ggcmVxdWVzdCB0byBhbnkgQVBJIHBhdGguXG4gICAqIFVzZSB0aGlzIGZvciBlbmRwb2ludHMgbm90IHlldCBjb3ZlcmVkIGJ5IHRoZSBTREsuXG4gICAqL1xuICBhc3luYyBwYXRjaDxUID0gdW5rbm93bj4ocGF0aDogc3RyaW5nLCBib2R5PzogdW5rbm93bik6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4oJ1BBVENIJywgcGF0aCwgYm9keSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJpYyBERUxFVEUgcmVxdWVzdCB0byBhbnkgQVBJIHBhdGguXG4gICAqIFVzZSB0aGlzIGZvciBlbmRwb2ludHMgbm90IHlldCBjb3ZlcmVkIGJ5IHRoZSBTREsuXG4gICAqL1xuICBhc3luYyBkZWxldGU8VCA9IHZvaWQ+KHBhdGg6IHN0cmluZyk6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4oJ0RFTEVURScsIHBhdGgpO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0UmF0ZUxpbWl0SW5mbyhoZWFkZXJzOiBodHRwLkluY29taW5nSHR0cEhlYWRlcnMpOiBSYXRlTGltaXRJbmZvIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBsaW1pdCA9IGhlYWRlcnNbJ3gtcmF0ZWxpbWl0LWxpbWl0J107XG4gICAgY29uc3QgcmVtYWluaW5nID0gaGVhZGVyc1sneC1yYXRlbGltaXQtcmVtYWluaW5nJ107XG4gICAgY29uc3QgcmVzZXQgPSBoZWFkZXJzWyd4LXJhdGVsaW1pdC1yZXNldCddO1xuXG4gICAgaWYgKGxpbWl0ICYmIHJlbWFpbmluZyAmJiByZXNldCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGltaXQ6IHBhcnNlSW50KGxpbWl0IGFzIHN0cmluZywgMTApLFxuICAgICAgICByZW1haW5pbmc6IHBhcnNlSW50KHJlbWFpbmluZyBhcyBzdHJpbmcsIDEwKSxcbiAgICAgICAgcmVzZXQ6IHBhcnNlSW50KHJlc2V0IGFzIHN0cmluZywgMTApLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoXG4gICAgc3RhdHVzOiBudW1iZXIsXG4gICAgYm9keTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgcmF0ZUxpbWl0SW5mbz86IFJhdGVMaW1pdEluZm9cbiAgKTogUmFpbGhvb2tFcnJvciB7XG4gICAgY29uc3QgbWVzc2FnZSA9IChib2R5Lm1lc3NhZ2UgYXMgc3RyaW5nKSB8fCAnVW5rbm93biBlcnJvcic7XG5cbiAgICBzd2l0Y2ggKHN0YXR1cykge1xuICAgICAgY2FzZSA0MDE6XG4gICAgICAgIHJldHVybiBuZXcgQXV0aGVudGljYXRpb25FcnJvcihtZXNzYWdlKTtcbiAgICAgIGNhc2UgNDA0OlxuICAgICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICBjYXNlIDQyOTpcbiAgICAgICAgcmV0dXJuIG5ldyBSYXRlTGltaXRFcnJvcihcbiAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgIC8vIGByZXNldGAgaXMgYSBVbml4IHRpbWVzdGFtcCBpbiBzZWNvbmRzIChzZWUgUmF0ZUxpbWl0SW5mbyksIHNvIHRoZVxuICAgICAgICAgIC8vIGZhbGxiYWNrIGhhcyB0byBiZSBpbiBzZWNvbmRzIHRvbywgbm90IERhdGUubm93KCkgKyA2MDAwMC5cbiAgICAgICAgICByYXRlTGltaXRJbmZvIHx8IHsgbGltaXQ6IDAsIHJlbWFpbmluZzogMCwgcmVzZXQ6IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApICsgNjAgfVxuICAgICAgICApO1xuICAgICAgY2FzZSA0MDA6XG4gICAgICAgIHJldHVybiBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgKGJvZHkuZmllbGRFcnJvcnMgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPikgfHwge31cbiAgICAgICAgKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBuZXcgUmFpbGhvb2tFcnJvcihtZXNzYWdlLCBzdGF0dXMsIGJvZHkuZXJyb3IgYXMgc3RyaW5nKTtcbiAgICB9XG4gIH1cbn1cblxuY2xhc3MgRXZlbnRzIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjbGllbnQ6IFJhaWxob29rKSB7fVxuXG4gIGFzeW5jIHNlbmQoZXZlbnQ6IEV2ZW50LCBpZGVtcG90ZW5jeUtleT86IHN0cmluZyk6IFByb21pc2U8RXZlbnRSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0PEV2ZW50UmVzcG9uc2U+KFxuICAgICAgJ1BPU1QnLFxuICAgICAgJy9hcGkvdjEvZXZlbnRzJyxcbiAgICAgIGV2ZW50LFxuICAgICAgaWRlbXBvdGVuY3lLZXlcbiAgICApO1xuICB9XG59XG5cbmNsYXNzIEVuZHBvaW50cyB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2xpZW50OiBSYWlsaG9vaykge31cblxuICBhc3luYyBjcmVhdGUocHJvamVjdElkOiBzdHJpbmcsIHBhcmFtczogRW5kcG9pbnRDcmVhdGVQYXJhbXMpOiBQcm9taXNlPEVuZHBvaW50PiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8RW5kcG9pbnQ+KFxuICAgICAgJ1BPU1QnLFxuICAgICAgYC9hcGkvdjEvcHJvamVjdHMvJHtwcm9qZWN0SWR9L2VuZHBvaW50c2AsXG4gICAgICBwYXJhbXNcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZ2V0KHByb2plY3RJZDogc3RyaW5nLCBlbmRwb2ludElkOiBzdHJpbmcpOiBQcm9taXNlPEVuZHBvaW50PiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8RW5kcG9pbnQ+KFxuICAgICAgJ0dFVCcsXG4gICAgICBgL2FwaS92MS9wcm9qZWN0cy8ke3Byb2plY3RJZH0vZW5kcG9pbnRzLyR7ZW5kcG9pbnRJZH1gXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0cyBhIHByb2plY3QncyBlbmRwb2ludHMuXG4gICAqXG4gICAqIFRoZSBBUEkgcmV0dXJucyBhIFNwcmluZyBwYWdlIGVudmVsb3BlIGhlcmUsIG5vdCBhIGJhcmUgYXJyYXkg4oCUIHRoZVxuICAgKiBlbmRwb2ludHMgdGhlbXNlbHZlcyBhcmUgaW4gYC5jb250ZW50YC5cbiAgICovXG4gIGFzeW5jIGxpc3QoXG4gICAgcHJvamVjdElkOiBzdHJpbmcsXG4gICAgcGFyYW1zOiBFbmRwb2ludExpc3RQYXJhbXMgPSB7fVxuICApOiBQcm9taXNlPFBhZ2luYXRlZFJlc3BvbnNlPEVuZHBvaW50Pj4ge1xuICAgIGNvbnN0IHF1ZXJ5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIGlmIChwYXJhbXMucGFnZSAhPT0gdW5kZWZpbmVkKSBxdWVyeS5zZXQoJ3BhZ2UnLCBwYXJhbXMucGFnZS50b1N0cmluZygpKTtcbiAgICBpZiAocGFyYW1zLnNpemUgIT09IHVuZGVmaW5lZCkgcXVlcnkuc2V0KCdzaXplJywgcGFyYW1zLnNpemUudG9TdHJpbmcoKSk7XG5cbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IHF1ZXJ5LnRvU3RyaW5nKCk7XG4gICAgY29uc3QgcGF0aCA9IGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9lbmRwb2ludHMke3F1ZXJ5U3RyaW5nID8gYD8ke3F1ZXJ5U3RyaW5nfWAgOiAnJ31gO1xuXG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8UGFnaW5hdGVkUmVzcG9uc2U8RW5kcG9pbnQ+PignR0VUJywgcGF0aCk7XG4gIH1cblxuICBhc3luYyB1cGRhdGUoXG4gICAgcHJvamVjdElkOiBzdHJpbmcsXG4gICAgZW5kcG9pbnRJZDogc3RyaW5nLFxuICAgIHBhcmFtczogRW5kcG9pbnRVcGRhdGVQYXJhbXNcbiAgKTogUHJvbWlzZTxFbmRwb2ludD4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0PEVuZHBvaW50PihcbiAgICAgICdQVVQnLFxuICAgICAgYC9hcGkvdjEvcHJvamVjdHMvJHtwcm9qZWN0SWR9L2VuZHBvaW50cy8ke2VuZHBvaW50SWR9YCxcbiAgICAgIHBhcmFtc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBkZWxldGUocHJvamVjdElkOiBzdHJpbmcsIGVuZHBvaW50SWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0PHZvaWQ+KFxuICAgICAgJ0RFTEVURScsXG4gICAgICBgL2FwaS92MS9wcm9qZWN0cy8ke3Byb2plY3RJZH0vZW5kcG9pbnRzLyR7ZW5kcG9pbnRJZH1gXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHJvdGF0ZVNlY3JldChwcm9qZWN0SWQ6IHN0cmluZywgZW5kcG9pbnRJZDogc3RyaW5nKTogUHJvbWlzZTxFbmRwb2ludD4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0PEVuZHBvaW50PihcbiAgICAgICdQT1NUJyxcbiAgICAgIGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9lbmRwb2ludHMvJHtlbmRwb2ludElkfS9yb3RhdGUtc2VjcmV0YFxuICAgICk7XG4gIH1cblxuICBhc3luYyB0ZXN0KHByb2plY3RJZDogc3RyaW5nLCBlbmRwb2ludElkOiBzdHJpbmcpOiBQcm9taXNlPEVuZHBvaW50VGVzdFJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0PEVuZHBvaW50VGVzdFJlc3VsdD4oXG4gICAgICAnUE9TVCcsXG4gICAgICBgL2FwaS92MS9wcm9qZWN0cy8ke3Byb2plY3RJZH0vZW5kcG9pbnRzLyR7ZW5kcG9pbnRJZH0vdGVzdGBcbiAgICApO1xuICB9XG59XG5cbmNsYXNzIFN1YnNjcmlwdGlvbnMge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNsaWVudDogUmFpbGhvb2spIHt9XG5cbiAgYXN5bmMgY3JlYXRlKHByb2plY3RJZDogc3RyaW5nLCBwYXJhbXM6IFN1YnNjcmlwdGlvbkNyZWF0ZVBhcmFtcyk6IFByb21pc2U8U3Vic2NyaXB0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8U3Vic2NyaXB0aW9uPihcbiAgICAgICdQT1NUJyxcbiAgICAgIGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9zdWJzY3JpcHRpb25zYCxcbiAgICAgIHBhcmFtc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBnZXQocHJvamVjdElkOiBzdHJpbmcsIHN1YnNjcmlwdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPFN1YnNjcmlwdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0PFN1YnNjcmlwdGlvbj4oXG4gICAgICAnR0VUJyxcbiAgICAgIGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9zdWJzY3JpcHRpb25zLyR7c3Vic2NyaXB0aW9uSWR9YFxuICAgICk7XG4gIH1cblxuICBhc3luYyBsaXN0KHByb2plY3RJZDogc3RyaW5nKTogUHJvbWlzZTxTdWJzY3JpcHRpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0PFN1YnNjcmlwdGlvbltdPihcbiAgICAgICdHRVQnLFxuICAgICAgYC9hcGkvdjEvcHJvamVjdHMvJHtwcm9qZWN0SWR9L3N1YnNjcmlwdGlvbnNgXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZShcbiAgICBwcm9qZWN0SWQ6IHN0cmluZyxcbiAgICBzdWJzY3JpcHRpb25JZDogc3RyaW5nLFxuICAgIHBhcmFtczogUGFydGlhbDxTdWJzY3JpcHRpb25DcmVhdGVQYXJhbXM+XG4gICk6IFByb21pc2U8U3Vic2NyaXB0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8U3Vic2NyaXB0aW9uPihcbiAgICAgICdQVVQnLFxuICAgICAgYC9hcGkvdjEvcHJvamVjdHMvJHtwcm9qZWN0SWR9L3N1YnNjcmlwdGlvbnMvJHtzdWJzY3JpcHRpb25JZH1gLFxuICAgICAgcGFyYW1zXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZShwcm9qZWN0SWQ6IHN0cmluZywgc3Vic2NyaXB0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0PHZvaWQ+KFxuICAgICAgJ0RFTEVURScsXG4gICAgICBgL2FwaS92MS9wcm9qZWN0cy8ke3Byb2plY3RJZH0vc3Vic2NyaXB0aW9ucy8ke3N1YnNjcmlwdGlvbklkfWBcbiAgICApO1xuICB9XG59XG5cbmNsYXNzIERlbGl2ZXJpZXMge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNsaWVudDogUmFpbGhvb2spIHt9XG5cbiAgYXN5bmMgZ2V0KGRlbGl2ZXJ5SWQ6IHN0cmluZyk6IFByb21pc2U8RGVsaXZlcnk+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQucmVxdWVzdDxEZWxpdmVyeT4oJ0dFVCcsIGAvYXBpL3YxL2RlbGl2ZXJpZXMvJHtkZWxpdmVyeUlkfWApO1xuICB9XG5cbiAgYXN5bmMgbGlzdChcbiAgICBwcm9qZWN0SWQ6IHN0cmluZyxcbiAgICBwYXJhbXM6IERlbGl2ZXJ5TGlzdFBhcmFtcyA9IHt9XG4gICk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8RGVsaXZlcnk+PiB7XG4gICAgY29uc3QgcXVlcnkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgaWYgKHBhcmFtcy5zdGF0dXMpIHF1ZXJ5LnNldCgnc3RhdHVzJywgcGFyYW1zLnN0YXR1cyk7XG4gICAgaWYgKHBhcmFtcy5lbmRwb2ludElkKSBxdWVyeS5zZXQoJ2VuZHBvaW50SWQnLCBwYXJhbXMuZW5kcG9pbnRJZCk7XG4gICAgaWYgKHBhcmFtcy5mcm9tRGF0ZSkgcXVlcnkuc2V0KCdmcm9tRGF0ZScsIHBhcmFtcy5mcm9tRGF0ZSk7XG4gICAgaWYgKHBhcmFtcy50b0RhdGUpIHF1ZXJ5LnNldCgndG9EYXRlJywgcGFyYW1zLnRvRGF0ZSk7XG4gICAgaWYgKHBhcmFtcy5wYWdlICE9PSB1bmRlZmluZWQpIHF1ZXJ5LnNldCgncGFnZScsIHBhcmFtcy5wYWdlLnRvU3RyaW5nKCkpO1xuICAgIGlmIChwYXJhbXMuc2l6ZSAhPT0gdW5kZWZpbmVkKSBxdWVyeS5zZXQoJ3NpemUnLCBwYXJhbXMuc2l6ZS50b1N0cmluZygpKTtcblxuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gcXVlcnkudG9TdHJpbmcoKTtcbiAgICBjb25zdCBwYXRoID0gYC9hcGkvdjEvZGVsaXZlcmllcy9wcm9qZWN0cy8ke3Byb2plY3RJZH0ke3F1ZXJ5U3RyaW5nID8gYD8ke3F1ZXJ5U3RyaW5nfWAgOiAnJ31gO1xuXG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8UGFnaW5hdGVkUmVzcG9uc2U8RGVsaXZlcnk+PignR0VUJywgcGF0aCk7XG4gIH1cblxuICBhc3luYyBnZXRBdHRlbXB0cyhkZWxpdmVyeUlkOiBzdHJpbmcpOiBQcm9taXNlPERlbGl2ZXJ5QXR0ZW1wdFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8RGVsaXZlcnlBdHRlbXB0W10+KFxuICAgICAgJ0dFVCcsXG4gICAgICBgL2FwaS92MS9kZWxpdmVyaWVzLyR7ZGVsaXZlcnlJZH0vYXR0ZW1wdHNgXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHJlcGxheShkZWxpdmVyeUlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQucmVxdWVzdDx2b2lkPignUE9TVCcsIGAvYXBpL3YxL2RlbGl2ZXJpZXMvJHtkZWxpdmVyeUlkfS9yZXBsYXlgKTtcbiAgfVxufVxuXG5jbGFzcyBJbmNvbWluZ1NvdXJjZXMge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNsaWVudDogUmFpbGhvb2spIHt9XG5cbiAgYXN5bmMgY3JlYXRlKHByb2plY3RJZDogc3RyaW5nLCBwYXJhbXM6IEluY29taW5nU291cmNlQ3JlYXRlUGFyYW1zKTogUHJvbWlzZTxJbmNvbWluZ1NvdXJjZT4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0PEluY29taW5nU291cmNlPihcbiAgICAgICdQT1NUJyxcbiAgICAgIGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9pbmNvbWluZy1zb3VyY2VzYCxcbiAgICAgIHBhcmFtc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBnZXQocHJvamVjdElkOiBzdHJpbmcsIHNvdXJjZUlkOiBzdHJpbmcpOiBQcm9taXNlPEluY29taW5nU291cmNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8SW5jb21pbmdTb3VyY2U+KFxuICAgICAgJ0dFVCcsXG4gICAgICBgL2FwaS92MS9wcm9qZWN0cy8ke3Byb2plY3RJZH0vaW5jb21pbmctc291cmNlcy8ke3NvdXJjZUlkfWBcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdChwcm9qZWN0SWQ6IHN0cmluZyk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8SW5jb21pbmdTb3VyY2U+PiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8UGFnaW5hdGVkUmVzcG9uc2U8SW5jb21pbmdTb3VyY2U+PihcbiAgICAgICdHRVQnLFxuICAgICAgYC9hcGkvdjEvcHJvamVjdHMvJHtwcm9qZWN0SWR9L2luY29taW5nLXNvdXJjZXNgXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZShwcm9qZWN0SWQ6IHN0cmluZywgc291cmNlSWQ6IHN0cmluZywgcGFyYW1zOiBJbmNvbWluZ1NvdXJjZVVwZGF0ZVBhcmFtcyk6IFByb21pc2U8SW5jb21pbmdTb3VyY2U+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQucmVxdWVzdDxJbmNvbWluZ1NvdXJjZT4oXG4gICAgICAnUFVUJyxcbiAgICAgIGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9pbmNvbWluZy1zb3VyY2VzLyR7c291cmNlSWR9YCxcbiAgICAgIHBhcmFtc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBkZWxldGUocHJvamVjdElkOiBzdHJpbmcsIHNvdXJjZUlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQucmVxdWVzdDx2b2lkPihcbiAgICAgICdERUxFVEUnLFxuICAgICAgYC9hcGkvdjEvcHJvamVjdHMvJHtwcm9qZWN0SWR9L2luY29taW5nLXNvdXJjZXMvJHtzb3VyY2VJZH1gXG4gICAgKTtcbiAgfVxuXG4gIC8vIOKUgOKUgCBEZXN0aW5hdGlvbnMg4pSA4pSAXG5cbiAgYXN5bmMgY3JlYXRlRGVzdGluYXRpb24oXG4gICAgcHJvamVjdElkOiBzdHJpbmcsXG4gICAgc291cmNlSWQ6IHN0cmluZyxcbiAgICBwYXJhbXM6IEluY29taW5nRGVzdGluYXRpb25DcmVhdGVQYXJhbXNcbiAgKTogUHJvbWlzZTxJbmNvbWluZ0Rlc3RpbmF0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8SW5jb21pbmdEZXN0aW5hdGlvbj4oXG4gICAgICAnUE9TVCcsXG4gICAgICBgL2FwaS92MS9wcm9qZWN0cy8ke3Byb2plY3RJZH0vaW5jb21pbmctc291cmNlcy8ke3NvdXJjZUlkfS9kZXN0aW5hdGlvbnNgLFxuICAgICAgcGFyYW1zXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGdldERlc3RpbmF0aW9uKFxuICAgIHByb2plY3RJZDogc3RyaW5nLFxuICAgIHNvdXJjZUlkOiBzdHJpbmcsXG4gICAgZGVzdGluYXRpb25JZDogc3RyaW5nXG4gICk6IFByb21pc2U8SW5jb21pbmdEZXN0aW5hdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0PEluY29taW5nRGVzdGluYXRpb24+KFxuICAgICAgJ0dFVCcsXG4gICAgICBgL2FwaS92MS9wcm9qZWN0cy8ke3Byb2plY3RJZH0vaW5jb21pbmctc291cmNlcy8ke3NvdXJjZUlkfS9kZXN0aW5hdGlvbnMvJHtkZXN0aW5hdGlvbklkfWBcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdERlc3RpbmF0aW9ucyhcbiAgICBwcm9qZWN0SWQ6IHN0cmluZyxcbiAgICBzb3VyY2VJZDogc3RyaW5nXG4gICk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8SW5jb21pbmdEZXN0aW5hdGlvbj4+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQucmVxdWVzdDxQYWdpbmF0ZWRSZXNwb25zZTxJbmNvbWluZ0Rlc3RpbmF0aW9uPj4oXG4gICAgICAnR0VUJyxcbiAgICAgIGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9pbmNvbWluZy1zb3VyY2VzLyR7c291cmNlSWR9L2Rlc3RpbmF0aW9uc2BcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlRGVzdGluYXRpb24oXG4gICAgcHJvamVjdElkOiBzdHJpbmcsXG4gICAgc291cmNlSWQ6IHN0cmluZyxcbiAgICBkZXN0aW5hdGlvbklkOiBzdHJpbmcsXG4gICAgcGFyYW1zOiBJbmNvbWluZ0Rlc3RpbmF0aW9uVXBkYXRlUGFyYW1zXG4gICk6IFByb21pc2U8SW5jb21pbmdEZXN0aW5hdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0PEluY29taW5nRGVzdGluYXRpb24+KFxuICAgICAgJ1BVVCcsXG4gICAgICBgL2FwaS92MS9wcm9qZWN0cy8ke3Byb2plY3RJZH0vaW5jb21pbmctc291cmNlcy8ke3NvdXJjZUlkfS9kZXN0aW5hdGlvbnMvJHtkZXN0aW5hdGlvbklkfWAsXG4gICAgICBwYXJhbXNcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlRGVzdGluYXRpb24oXG4gICAgcHJvamVjdElkOiBzdHJpbmcsXG4gICAgc291cmNlSWQ6IHN0cmluZyxcbiAgICBkZXN0aW5hdGlvbklkOiBzdHJpbmdcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8dm9pZD4oXG4gICAgICAnREVMRVRFJyxcbiAgICAgIGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9pbmNvbWluZy1zb3VyY2VzLyR7c291cmNlSWR9L2Rlc3RpbmF0aW9ucy8ke2Rlc3RpbmF0aW9uSWR9YFxuICAgICk7XG4gIH1cbn1cblxuY2xhc3MgSW5jb21pbmdFdmVudHMge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNsaWVudDogUmFpbGhvb2spIHt9XG5cbiAgYXN5bmMgbGlzdChcbiAgICBwcm9qZWN0SWQ6IHN0cmluZyxcbiAgICBwYXJhbXM6IEluY29taW5nRXZlbnRMaXN0UGFyYW1zID0ge31cbiAgKTogUHJvbWlzZTxQYWdpbmF0ZWRSZXNwb25zZTxJbmNvbWluZ0V2ZW50Pj4ge1xuICAgIGNvbnN0IHF1ZXJ5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIGlmIChwYXJhbXMuc291cmNlSWQpIHF1ZXJ5LnNldCgnc291cmNlSWQnLCBwYXJhbXMuc291cmNlSWQpO1xuICAgIGlmIChwYXJhbXMucGFnZSAhPT0gdW5kZWZpbmVkKSBxdWVyeS5zZXQoJ3BhZ2UnLCBwYXJhbXMucGFnZS50b1N0cmluZygpKTtcbiAgICBpZiAocGFyYW1zLnNpemUgIT09IHVuZGVmaW5lZCkgcXVlcnkuc2V0KCdzaXplJywgcGFyYW1zLnNpemUudG9TdHJpbmcoKSk7XG5cbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IHF1ZXJ5LnRvU3RyaW5nKCk7XG4gICAgY29uc3QgcGF0aCA9IGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9pbmNvbWluZy1ldmVudHMke3F1ZXJ5U3RyaW5nID8gYD8ke3F1ZXJ5U3RyaW5nfWAgOiAnJ31gO1xuXG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8UGFnaW5hdGVkUmVzcG9uc2U8SW5jb21pbmdFdmVudD4+KCdHRVQnLCBwYXRoKTtcbiAgfVxuXG4gIGFzeW5jIGdldChwcm9qZWN0SWQ6IHN0cmluZywgZXZlbnRJZDogc3RyaW5nKTogUHJvbWlzZTxJbmNvbWluZ0V2ZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8SW5jb21pbmdFdmVudD4oXG4gICAgICAnR0VUJyxcbiAgICAgIGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9pbmNvbWluZy1ldmVudHMvJHtldmVudElkfWBcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZ2V0QXR0ZW1wdHMoXG4gICAgcHJvamVjdElkOiBzdHJpbmcsXG4gICAgZXZlbnRJZDogc3RyaW5nXG4gICk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8SW5jb21pbmdGb3J3YXJkQXR0ZW1wdD4+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQucmVxdWVzdDxQYWdpbmF0ZWRSZXNwb25zZTxJbmNvbWluZ0ZvcndhcmRBdHRlbXB0Pj4oXG4gICAgICAnR0VUJyxcbiAgICAgIGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9pbmNvbWluZy1ldmVudHMvJHtldmVudElkfS9hdHRlbXB0c2BcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmVwbGF5KHByb2plY3RJZDogc3RyaW5nLCBldmVudElkOiBzdHJpbmcpOiBQcm9taXNlPFJlcGxheUV2ZW50UmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQucmVxdWVzdDxSZXBsYXlFdmVudFJlc3BvbnNlPihcbiAgICAgICdQT1NUJyxcbiAgICAgIGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9pbmNvbWluZy1ldmVudHMvJHtldmVudElkfS9yZXBsYXlgXG4gICAgKTtcbiAgfVxufVxuIl19
344
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBK0I7QUFDL0IsMkNBQTZCO0FBQzdCLDZCQUEwQjtBQTRCMUIscUNBTWtCO0FBRWxCLE1BQU0sZ0JBQWdCLEdBQUcsdUJBQXVCLENBQUM7QUFDakQsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDO0FBQzlCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQztBQUU3QixNQUFhLFFBQVE7SUFZbkIsWUFBWSxNQUFzQjtRQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQztRQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksZUFBZSxDQUFDO1FBRWpELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUNYLE1BQWMsRUFDZCxJQUFZLEVBQ1osSUFBYyxFQUNkLGNBQXVCO1FBRXZCLE1BQU0sR0FBRyxHQUFHLElBQUksU0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUM7UUFDMUMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUVuQyxNQUFNLE9BQU8sR0FBMkI7WUFDdEMsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ3hCLGNBQWMsRUFBRSxrQkFBa0I7WUFDbEMsWUFBWSxFQUFFLGlCQUFpQixXQUFXLEVBQUU7U0FDN0MsQ0FBQztRQUVGLElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsY0FBYyxDQUFDO1FBQzlDLENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBd0I7WUFDbkMsTUFBTTtZQUNOLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTtZQUN0QixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdEMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLE1BQU07WUFDL0IsT0FBTztZQUNQLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDO1FBRUYsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUN2QyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ2QsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRTtvQkFDakIsSUFBSSxDQUFDO3dCQUNILE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7d0JBRTdELElBQUksR0FBRyxDQUFDLFVBQVUsS0FBSyxHQUFHLEVBQUUsQ0FBQzs0QkFDM0IsT0FBTyxDQUFDLFNBQWMsQ0FBQyxDQUFDOzRCQUN4QixPQUFPO3dCQUNULENBQUM7d0JBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBRTVDLElBQUksR0FBRyxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUMsVUFBVSxJQUFJLEdBQUcsRUFBRSxDQUFDOzRCQUM1QyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDOzRCQUNoRSxPQUFPO3dCQUNULENBQUM7d0JBRUQsT0FBTyxDQUFDLE1BQVcsQ0FBQyxDQUFDO29CQUN2QixDQUFDO29CQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7d0JBQ2IsTUFBTSxDQUFDLElBQUksc0JBQWEsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUM3RCxDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFFSCxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUN0QixNQUFNLENBQUMsSUFBSSxzQkFBYSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDN0QsQ0FBQyxDQUFDLENBQUM7WUFFSCxHQUFHLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7Z0JBQ3JCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDZCxNQUFNLENBQUMsSUFBSSxzQkFBYSxDQUFDLGlCQUFpQixFQUFFLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQzdELENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNsQyxDQUFDO1lBRUQsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLEdBQUcsQ0FBYyxJQUFZO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBSSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQWMsSUFBWSxFQUFFLElBQWMsRUFBRSxjQUF1QjtRQUMzRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUksTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxHQUFHLENBQWMsSUFBWSxFQUFFLElBQWM7UUFDakQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFJLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxLQUFLLENBQWMsSUFBWSxFQUFFLElBQWM7UUFDbkQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFJLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQVcsSUFBWTtRQUNqQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUksUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxPQUFpQztRQUM1RCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNuRCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUUzQyxJQUFJLEtBQUssSUFBSSxTQUFTLElBQUksS0FBSyxFQUFFLENBQUM7WUFDaEMsT0FBTztnQkFDTCxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQWUsRUFBRSxFQUFFLENBQUM7Z0JBQ3BDLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBbUIsRUFBRSxFQUFFLENBQUM7Z0JBQzVDLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBZSxFQUFFLEVBQUUsQ0FBQzthQUNyQyxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTyxXQUFXLENBQ2pCLE1BQWMsRUFDZCxJQUE2QixFQUM3QixhQUE2QjtRQUU3QixNQUFNLE9BQU8sR0FBSSxJQUFJLENBQUMsT0FBa0IsSUFBSSxlQUFlLENBQUM7UUFFNUQsUUFBUSxNQUFNLEVBQUUsQ0FBQztZQUNmLEtBQUssR0FBRztnQkFDTixPQUFPLElBQUksNEJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUMsS0FBSyxHQUFHO2dCQUNOLE9BQU8sSUFBSSxzQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BDLEtBQUssR0FBRztnQkFDTixPQUFPLElBQUksdUJBQWMsQ0FDdkIsT0FBTztnQkFDUCxxRUFBcUU7Z0JBQ3JFLDZEQUE2RDtnQkFDN0QsYUFBYSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDdkYsQ0FBQztZQUNKLEtBQUssR0FBRztnQkFDTixPQUFPLElBQUksd0JBQWUsQ0FDeEIsT0FBTyxFQUNOLElBQUksQ0FBQyxXQUFzQyxJQUFJLEVBQUUsQ0FDbkQsQ0FBQztZQUNKO2dCQUNFLE9BQU8sSUFBSSxzQkFBYSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQWUsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF6TEQsNEJBeUxDO0FBRUQsTUFBTSxNQUFNO0lBQ1YsWUFBb0IsTUFBZ0I7UUFBaEIsV0FBTSxHQUFOLE1BQU0sQ0FBVTtJQUFHLENBQUM7SUFFeEMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFZLEVBQUUsY0FBdUI7UUFDOUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDeEIsTUFBTSxFQUNOLGdCQUFnQixFQUNoQixLQUFLLEVBQ0wsY0FBYyxDQUNmLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFFRCxNQUFNLFNBQVM7SUFDYixZQUFvQixNQUFnQjtRQUFoQixXQUFNLEdBQU4sTUFBTSxDQUFVO0lBQUcsQ0FBQztJQUV4QyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQWlCLEVBQUUsTUFBNEI7UUFDMUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDeEIsTUFBTSxFQUNOLG9CQUFvQixTQUFTLFlBQVksRUFDekMsTUFBTSxDQUNQLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFpQixFQUFFLFVBQWtCO1FBQzdDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQ3hCLEtBQUssRUFDTCxvQkFBb0IsU0FBUyxjQUFjLFVBQVUsRUFBRSxDQUN4RCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLElBQUksQ0FDUixTQUFpQixFQUNqQixTQUE2QixFQUFFO1FBRS9CLE1BQU0sS0FBSyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDcEMsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDekUsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFekUsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sSUFBSSxHQUFHLG9CQUFvQixTQUFTLGFBQWEsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUU5RixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUE4QixLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQ1YsU0FBaUIsRUFDakIsVUFBa0IsRUFDbEIsTUFBNEI7UUFFNUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDeEIsS0FBSyxFQUNMLG9CQUFvQixTQUFTLGNBQWMsVUFBVSxFQUFFLEVBQ3ZELE1BQU0sQ0FDUCxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBaUIsRUFBRSxVQUFrQjtRQUNoRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUN4QixRQUFRLEVBQ1Isb0JBQW9CLFNBQVMsY0FBYyxVQUFVLEVBQUUsQ0FDeEQsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFDLFNBQWlCLEVBQUUsVUFBa0I7UUFDdEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDeEIsTUFBTSxFQUNOLG9CQUFvQixTQUFTLGNBQWMsVUFBVSxnQkFBZ0IsQ0FDdEUsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQWlCLEVBQUUsVUFBa0I7UUFDOUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDeEIsTUFBTSxFQUNOLG9CQUFvQixTQUFTLGNBQWMsVUFBVSxPQUFPLENBQzdELENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFFRCxNQUFNLGFBQWE7SUFDakIsWUFBb0IsTUFBZ0I7UUFBaEIsV0FBTSxHQUFOLE1BQU0sQ0FBVTtJQUFHLENBQUM7SUFFeEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFpQixFQUFFLE1BQWdDO1FBQzlELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQ3hCLE1BQU0sRUFDTixvQkFBb0IsU0FBUyxnQkFBZ0IsRUFDN0MsTUFBTSxDQUNQLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFpQixFQUFFLGNBQXNCO1FBQ2pELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQ3hCLEtBQUssRUFDTCxvQkFBb0IsU0FBUyxrQkFBa0IsY0FBYyxFQUFFLENBQ2hFLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUN4QixLQUFLLEVBQ0wsb0JBQW9CLFNBQVMsZ0JBQWdCLENBQzlDLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FDVixTQUFpQixFQUNqQixjQUFzQixFQUN0QixNQUF5QztRQUV6QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUN4QixLQUFLLEVBQ0wsb0JBQW9CLFNBQVMsa0JBQWtCLGNBQWMsRUFBRSxFQUMvRCxNQUFNLENBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQWlCLEVBQUUsY0FBc0I7UUFDcEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDeEIsUUFBUSxFQUNSLG9CQUFvQixTQUFTLGtCQUFrQixjQUFjLEVBQUUsQ0FDaEUsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVELE1BQU0sVUFBVTtJQUNkLFlBQW9CLE1BQWdCO1FBQWhCLFdBQU0sR0FBTixNQUFNLENBQVU7SUFBRyxDQUFDO0lBRXhDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBa0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBVyxLQUFLLEVBQUUsc0JBQXNCLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQ1IsU0FBaUIsRUFDakIsU0FBNkIsRUFBRTtRQUUvQixNQUFNLEtBQUssR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3BDLElBQUksTUFBTSxDQUFDLE1BQU07WUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEQsSUFBSSxNQUFNLENBQUMsVUFBVTtZQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsRSxJQUFJLE1BQU0sQ0FBQyxRQUFRO1lBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVELElBQUksTUFBTSxDQUFDLE1BQU07WUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEQsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDekUsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFekUsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sSUFBSSxHQUFHLCtCQUErQixTQUFTLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUUvRixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUE4QixLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBa0I7UUFDbEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDeEIsS0FBSyxFQUNMLHNCQUFzQixVQUFVLFdBQVcsQ0FDNUMsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQWtCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQU8sTUFBTSxFQUFFLHNCQUFzQixVQUFVLFNBQVMsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7Q0FDRjtBQUVELE1BQU0sZUFBZTtJQUNuQixZQUFvQixNQUFnQjtRQUFoQixXQUFNLEdBQU4sTUFBTSxDQUFVO0lBQUcsQ0FBQztJQUV4QyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQWlCLEVBQUUsTUFBa0M7UUFDaEUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDeEIsTUFBTSxFQUNOLG9CQUFvQixTQUFTLG1CQUFtQixFQUNoRCxNQUFNLENBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQWlCLEVBQUUsUUFBZ0I7UUFDM0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDeEIsS0FBSyxFQUNMLG9CQUFvQixTQUFTLHFCQUFxQixRQUFRLEVBQUUsQ0FDN0QsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQ3hCLEtBQUssRUFDTCxvQkFBb0IsU0FBUyxtQkFBbUIsQ0FDakQsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQWlCLEVBQUUsUUFBZ0IsRUFBRSxNQUFrQztRQUNsRixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUN4QixLQUFLLEVBQ0wsb0JBQW9CLFNBQVMscUJBQXFCLFFBQVEsRUFBRSxFQUM1RCxNQUFNLENBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQWlCLEVBQUUsUUFBZ0I7UUFDOUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDeEIsUUFBUSxFQUNSLG9CQUFvQixTQUFTLHFCQUFxQixRQUFRLEVBQUUsQ0FDN0QsQ0FBQztJQUNKLENBQUM7SUFFRCxxQkFBcUI7SUFFckIsS0FBSyxDQUFDLGlCQUFpQixDQUNyQixTQUFpQixFQUNqQixRQUFnQixFQUNoQixNQUF1QztRQUV2QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUN4QixNQUFNLEVBQ04sb0JBQW9CLFNBQVMscUJBQXFCLFFBQVEsZUFBZSxFQUN6RSxNQUFNLENBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUNsQixTQUFpQixFQUNqQixRQUFnQixFQUNoQixhQUFxQjtRQUVyQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUN4QixLQUFLLEVBQ0wsb0JBQW9CLFNBQVMscUJBQXFCLFFBQVEsaUJBQWlCLGFBQWEsRUFBRSxDQUMzRixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxnQkFBZ0IsQ0FDcEIsU0FBaUIsRUFDakIsUUFBZ0I7UUFFaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDeEIsS0FBSyxFQUNMLG9CQUFvQixTQUFTLHFCQUFxQixRQUFRLGVBQWUsQ0FDMUUsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQ3JCLFNBQWlCLEVBQ2pCLFFBQWdCLEVBQ2hCLGFBQXFCLEVBQ3JCLE1BQXVDO1FBRXZDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQ3hCLEtBQUssRUFDTCxvQkFBb0IsU0FBUyxxQkFBcUIsUUFBUSxpQkFBaUIsYUFBYSxFQUFFLEVBQzFGLE1BQU0sQ0FDUCxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FDckIsU0FBaUIsRUFDakIsUUFBZ0IsRUFDaEIsYUFBcUI7UUFFckIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDeEIsUUFBUSxFQUNSLG9CQUFvQixTQUFTLHFCQUFxQixRQUFRLGlCQUFpQixhQUFhLEVBQUUsQ0FDM0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVELE1BQU0sY0FBYztJQUNsQixZQUFvQixNQUFnQjtRQUFoQixXQUFNLEdBQU4sTUFBTSxDQUFVO0lBQUcsQ0FBQztJQUV4QyxLQUFLLENBQUMsSUFBSSxDQUNSLFNBQWlCLEVBQ2pCLFNBQWtDLEVBQUU7UUFFcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNwQyxJQUFJLE1BQU0sQ0FBQyxRQUFRO1lBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVELElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTO1lBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3pFLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTO1lBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRXpFLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyQyxNQUFNLElBQUksR0FBRyxvQkFBb0IsU0FBUyxtQkFBbUIsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUVwRyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFtQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBaUIsRUFBRSxPQUFlO1FBQzFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQ3hCLEtBQUssRUFDTCxvQkFBb0IsU0FBUyxvQkFBb0IsT0FBTyxFQUFFLENBQzNELENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FDZixTQUFpQixFQUNqQixPQUFlO1FBRWYsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDeEIsS0FBSyxFQUNMLG9CQUFvQixTQUFTLG9CQUFvQixPQUFPLFdBQVcsQ0FDcEUsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQWlCLEVBQUUsT0FBZTtRQUM3QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUN4QixNQUFNLEVBQ04sb0JBQW9CLFNBQVMsb0JBQW9CLE9BQU8sU0FBUyxDQUNsRSxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaHR0cHMgZnJvbSAnaHR0cHMnO1xuaW1wb3J0ICogYXMgaHR0cCBmcm9tICdodHRwJztcbmltcG9ydCB7IFVSTCB9IGZyb20gJ3VybCc7XG5pbXBvcnQge1xuICBSYWlsaG9va0NvbmZpZyxcbiAgRXZlbnQsXG4gIEV2ZW50UmVzcG9uc2UsXG4gIEVuZHBvaW50LFxuICBFbmRwb2ludENyZWF0ZVBhcmFtcyxcbiAgRW5kcG9pbnRVcGRhdGVQYXJhbXMsXG4gIEVuZHBvaW50TGlzdFBhcmFtcyxcbiAgU3Vic2NyaXB0aW9uLFxuICBTdWJzY3JpcHRpb25DcmVhdGVQYXJhbXMsXG4gIERlbGl2ZXJ5LFxuICBEZWxpdmVyeUF0dGVtcHQsXG4gIERlbGl2ZXJ5TGlzdFBhcmFtcyxcbiAgUGFnaW5hdGVkUmVzcG9uc2UsXG4gIEVuZHBvaW50VGVzdFJlc3VsdCxcbiAgUmF0ZUxpbWl0SW5mbyxcbiAgSW5jb21pbmdTb3VyY2UsXG4gIEluY29taW5nU291cmNlQ3JlYXRlUGFyYW1zLFxuICBJbmNvbWluZ1NvdXJjZVVwZGF0ZVBhcmFtcyxcbiAgSW5jb21pbmdEZXN0aW5hdGlvbixcbiAgSW5jb21pbmdEZXN0aW5hdGlvbkNyZWF0ZVBhcmFtcyxcbiAgSW5jb21pbmdEZXN0aW5hdGlvblVwZGF0ZVBhcmFtcyxcbiAgSW5jb21pbmdFdmVudCxcbiAgSW5jb21pbmdFdmVudExpc3RQYXJhbXMsXG4gIEluY29taW5nRm9yd2FyZEF0dGVtcHQsXG4gIFJlcGxheUV2ZW50UmVzcG9uc2UsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgUmFpbGhvb2tFcnJvcixcbiAgQXV0aGVudGljYXRpb25FcnJvcixcbiAgUmF0ZUxpbWl0RXJyb3IsXG4gIFZhbGlkYXRpb25FcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbn0gZnJvbSAnLi9lcnJvcnMnO1xuXG5jb25zdCBERUZBVUxUX0JBU0VfVVJMID0gJ2h0dHA6Ly9sb2NhbGhvc3Q6ODA4MCc7XG5jb25zdCBERUZBVUxUX1RJTUVPVVQgPSAzMDAwMDtcbmNvbnN0IFNES19WRVJTSU9OID0gJzIuMTYuMyc7XG5cbmV4cG9ydCBjbGFzcyBSYWlsaG9vayB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXBpS2V5OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHRpbWVvdXQ6IG51bWJlcjtcblxuICBwdWJsaWMgcmVhZG9ubHkgZXZlbnRzOiBFdmVudHM7XG4gIHB1YmxpYyByZWFkb25seSBlbmRwb2ludHM6IEVuZHBvaW50cztcbiAgcHVibGljIHJlYWRvbmx5IHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbnM7XG4gIHB1YmxpYyByZWFkb25seSBkZWxpdmVyaWVzOiBEZWxpdmVyaWVzO1xuICBwdWJsaWMgcmVhZG9ubHkgaW5jb21pbmdTb3VyY2VzOiBJbmNvbWluZ1NvdXJjZXM7XG4gIHB1YmxpYyByZWFkb25seSBpbmNvbWluZ0V2ZW50czogSW5jb21pbmdFdmVudHM7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBSYWlsaG9va0NvbmZpZykge1xuICAgIGlmICghY29uZmlnLmFwaUtleSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBUEkga2V5IGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuXG4gICAgdGhpcy5hcGlLZXkgPSBjb25maWcuYXBpS2V5O1xuICAgIHRoaXMuYmFzZVVybCA9IGNvbmZpZy5iYXNlVXJsIHx8IERFRkFVTFRfQkFTRV9VUkw7XG4gICAgdGhpcy50aW1lb3V0ID0gY29uZmlnLnRpbWVvdXQgfHwgREVGQVVMVF9USU1FT1VUO1xuXG4gICAgdGhpcy5ldmVudHMgPSBuZXcgRXZlbnRzKHRoaXMpO1xuICAgIHRoaXMuZW5kcG9pbnRzID0gbmV3IEVuZHBvaW50cyh0aGlzKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9ucyh0aGlzKTtcbiAgICB0aGlzLmRlbGl2ZXJpZXMgPSBuZXcgRGVsaXZlcmllcyh0aGlzKTtcbiAgICB0aGlzLmluY29taW5nU291cmNlcyA9IG5ldyBJbmNvbWluZ1NvdXJjZXModGhpcyk7XG4gICAgdGhpcy5pbmNvbWluZ0V2ZW50cyA9IG5ldyBJbmNvbWluZ0V2ZW50cyh0aGlzKTtcbiAgfVxuXG4gIGFzeW5jIHJlcXVlc3Q8VD4oXG4gICAgbWV0aG9kOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGJvZHk/OiB1bmtub3duLFxuICAgIGlkZW1wb3RlbmN5S2V5Pzogc3RyaW5nXG4gICk6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwocGF0aCwgdGhpcy5iYXNlVXJsKTtcbiAgICBjb25zdCBpc0h0dHBzID0gdXJsLnByb3RvY29sID09PSAnaHR0cHM6JztcbiAgICBjb25zdCBsaWIgPSBpc0h0dHBzID8gaHR0cHMgOiBodHRwO1xuXG4gICAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICdYLUFQSS1LZXknOiB0aGlzLmFwaUtleSxcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAnVXNlci1BZ2VudCc6IGByYWlsaG9vay1ub2RlLyR7U0RLX1ZFUlNJT059YCxcbiAgICB9O1xuXG4gICAgaWYgKGlkZW1wb3RlbmN5S2V5KSB7XG4gICAgICBoZWFkZXJzWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5S2V5O1xuICAgIH1cblxuICAgIGNvbnN0IG9wdGlvbnM6IGh0dHAuUmVxdWVzdE9wdGlvbnMgPSB7XG4gICAgICBtZXRob2QsXG4gICAgICBob3N0bmFtZTogdXJsLmhvc3RuYW1lLFxuICAgICAgcG9ydDogdXJsLnBvcnQgfHwgKGlzSHR0cHMgPyA0NDMgOiA4MCksXG4gICAgICBwYXRoOiB1cmwucGF0aG5hbWUgKyB1cmwuc2VhcmNoLFxuICAgICAgaGVhZGVycyxcbiAgICAgIHRpbWVvdXQ6IHRoaXMudGltZW91dCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IHJlcSA9IGxpYi5yZXF1ZXN0KG9wdGlvbnMsIChyZXMpID0+IHtcbiAgICAgICAgbGV0IGRhdGEgPSAnJztcbiAgICAgICAgcmVzLm9uKCdkYXRhJywgKGNodW5rKSA9PiAoZGF0YSArPSBjaHVuaykpO1xuICAgICAgICByZXMub24oJ2VuZCcsICgpID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmF0ZUxpbWl0SW5mbyA9IHRoaXMuZXh0cmFjdFJhdGVMaW1pdEluZm8ocmVzLmhlYWRlcnMpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAocmVzLnN0YXR1c0NvZGUgPT09IDIwNCkge1xuICAgICAgICAgICAgICByZXNvbHZlKHVuZGVmaW5lZCBhcyBUKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBwYXJzZWQgPSBkYXRhID8gSlNPTi5wYXJzZShkYXRhKSA6IHt9O1xuXG4gICAgICAgICAgICBpZiAocmVzLnN0YXR1c0NvZGUgJiYgcmVzLnN0YXR1c0NvZGUgPj0gNDAwKSB7XG4gICAgICAgICAgICAgIHJlamVjdCh0aGlzLmhhbmRsZUVycm9yKHJlcy5zdGF0dXNDb2RlLCBwYXJzZWQsIHJhdGVMaW1pdEluZm8pKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXNvbHZlKHBhcnNlZCBhcyBUKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHJlamVjdChuZXcgUmFpbGhvb2tFcnJvcignRmFpbGVkIHRvIHBhcnNlIHJlc3BvbnNlJywgNTAwKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICByZXEub24oJ2Vycm9yJywgKGVycikgPT4ge1xuICAgICAgICByZWplY3QobmV3IFJhaWxob29rRXJyb3IoZXJyLm1lc3NhZ2UsIDAsICduZXR3b3JrX2Vycm9yJykpO1xuICAgICAgfSk7XG5cbiAgICAgIHJlcS5vbigndGltZW91dCcsICgpID0+IHtcbiAgICAgICAgcmVxLmRlc3Ryb3koKTtcbiAgICAgICAgcmVqZWN0KG5ldyBSYWlsaG9va0Vycm9yKCdSZXF1ZXN0IHRpbWVvdXQnLCAwLCAndGltZW91dCcpKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoYm9keSkge1xuICAgICAgICByZXEud3JpdGUoSlNPTi5zdHJpbmdpZnkoYm9keSkpO1xuICAgICAgfVxuXG4gICAgICByZXEuZW5kKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJpYyBHRVQgcmVxdWVzdCB0byBhbnkgQVBJIHBhdGguXG4gICAqIFVzZSB0aGlzIGZvciBlbmRwb2ludHMgbm90IHlldCBjb3ZlcmVkIGJ5IHRoZSBTREsuXG4gICAqL1xuICBhc3luYyBnZXQ8VCA9IHVua25vd24+KHBhdGg6IHN0cmluZyk6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4oJ0dFVCcsIHBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyaWMgUE9TVCByZXF1ZXN0IHRvIGFueSBBUEkgcGF0aC5cbiAgICogVXNlIHRoaXMgZm9yIGVuZHBvaW50cyBub3QgeWV0IGNvdmVyZWQgYnkgdGhlIFNESy5cbiAgICovXG4gIGFzeW5jIHBvc3Q8VCA9IHVua25vd24+KHBhdGg6IHN0cmluZywgYm9keT86IHVua25vd24sIGlkZW1wb3RlbmN5S2V5Pzogc3RyaW5nKTogUHJvbWlzZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdDxUPignUE9TVCcsIHBhdGgsIGJvZHksIGlkZW1wb3RlbmN5S2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmljIFBVVCByZXF1ZXN0IHRvIGFueSBBUEkgcGF0aC5cbiAgICogVXNlIHRoaXMgZm9yIGVuZHBvaW50cyBub3QgeWV0IGNvdmVyZWQgYnkgdGhlIFNESy5cbiAgICovXG4gIGFzeW5jIHB1dDxUID0gdW5rbm93bj4ocGF0aDogc3RyaW5nLCBib2R5PzogdW5rbm93bik6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4oJ1BVVCcsIHBhdGgsIGJvZHkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyaWMgUEFUQ0ggcmVxdWVzdCB0byBhbnkgQVBJIHBhdGguXG4gICAqIFVzZSB0aGlzIGZvciBlbmRwb2ludHMgbm90IHlldCBjb3ZlcmVkIGJ5IHRoZSBTREsuXG4gICAqL1xuICBhc3luYyBwYXRjaDxUID0gdW5rbm93bj4ocGF0aDogc3RyaW5nLCBib2R5PzogdW5rbm93bik6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4oJ1BBVENIJywgcGF0aCwgYm9keSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJpYyBERUxFVEUgcmVxdWVzdCB0byBhbnkgQVBJIHBhdGguXG4gICAqIFVzZSB0aGlzIGZvciBlbmRwb2ludHMgbm90IHlldCBjb3ZlcmVkIGJ5IHRoZSBTREsuXG4gICAqL1xuICBhc3luYyBkZWxldGU8VCA9IHZvaWQ+KHBhdGg6IHN0cmluZyk6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4oJ0RFTEVURScsIHBhdGgpO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0UmF0ZUxpbWl0SW5mbyhoZWFkZXJzOiBodHRwLkluY29taW5nSHR0cEhlYWRlcnMpOiBSYXRlTGltaXRJbmZvIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBsaW1pdCA9IGhlYWRlcnNbJ3gtcmF0ZWxpbWl0LWxpbWl0J107XG4gICAgY29uc3QgcmVtYWluaW5nID0gaGVhZGVyc1sneC1yYXRlbGltaXQtcmVtYWluaW5nJ107XG4gICAgY29uc3QgcmVzZXQgPSBoZWFkZXJzWyd4LXJhdGVsaW1pdC1yZXNldCddO1xuXG4gICAgaWYgKGxpbWl0ICYmIHJlbWFpbmluZyAmJiByZXNldCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGltaXQ6IHBhcnNlSW50KGxpbWl0IGFzIHN0cmluZywgMTApLFxuICAgICAgICByZW1haW5pbmc6IHBhcnNlSW50KHJlbWFpbmluZyBhcyBzdHJpbmcsIDEwKSxcbiAgICAgICAgcmVzZXQ6IHBhcnNlSW50KHJlc2V0IGFzIHN0cmluZywgMTApLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoXG4gICAgc3RhdHVzOiBudW1iZXIsXG4gICAgYm9keTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgcmF0ZUxpbWl0SW5mbz86IFJhdGVMaW1pdEluZm9cbiAgKTogUmFpbGhvb2tFcnJvciB7XG4gICAgY29uc3QgbWVzc2FnZSA9IChib2R5Lm1lc3NhZ2UgYXMgc3RyaW5nKSB8fCAnVW5rbm93biBlcnJvcic7XG5cbiAgICBzd2l0Y2ggKHN0YXR1cykge1xuICAgICAgY2FzZSA0MDE6XG4gICAgICAgIHJldHVybiBuZXcgQXV0aGVudGljYXRpb25FcnJvcihtZXNzYWdlKTtcbiAgICAgIGNhc2UgNDA0OlxuICAgICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICBjYXNlIDQyOTpcbiAgICAgICAgcmV0dXJuIG5ldyBSYXRlTGltaXRFcnJvcihcbiAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgIC8vIGByZXNldGAgaXMgYSBVbml4IHRpbWVzdGFtcCBpbiBzZWNvbmRzIChzZWUgUmF0ZUxpbWl0SW5mbyksIHNvIHRoZVxuICAgICAgICAgIC8vIGZhbGxiYWNrIGhhcyB0byBiZSBpbiBzZWNvbmRzIHRvbywgbm90IERhdGUubm93KCkgKyA2MDAwMC5cbiAgICAgICAgICByYXRlTGltaXRJbmZvIHx8IHsgbGltaXQ6IDAsIHJlbWFpbmluZzogMCwgcmVzZXQ6IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApICsgNjAgfVxuICAgICAgICApO1xuICAgICAgY2FzZSA0MDA6XG4gICAgICAgIHJldHVybiBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgKGJvZHkuZmllbGRFcnJvcnMgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPikgfHwge31cbiAgICAgICAgKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBuZXcgUmFpbGhvb2tFcnJvcihtZXNzYWdlLCBzdGF0dXMsIGJvZHkuZXJyb3IgYXMgc3RyaW5nKTtcbiAgICB9XG4gIH1cbn1cblxuY2xhc3MgRXZlbnRzIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjbGllbnQ6IFJhaWxob29rKSB7fVxuXG4gIGFzeW5jIHNlbmQoZXZlbnQ6IEV2ZW50LCBpZGVtcG90ZW5jeUtleT86IHN0cmluZyk6IFByb21pc2U8RXZlbnRSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0PEV2ZW50UmVzcG9uc2U+KFxuICAgICAgJ1BPU1QnLFxuICAgICAgJy9hcGkvdjEvZXZlbnRzJyxcbiAgICAgIGV2ZW50LFxuICAgICAgaWRlbXBvdGVuY3lLZXlcbiAgICApO1xuICB9XG59XG5cbmNsYXNzIEVuZHBvaW50cyB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2xpZW50OiBSYWlsaG9vaykge31cblxuICBhc3luYyBjcmVhdGUocHJvamVjdElkOiBzdHJpbmcsIHBhcmFtczogRW5kcG9pbnRDcmVhdGVQYXJhbXMpOiBQcm9taXNlPEVuZHBvaW50PiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8RW5kcG9pbnQ+KFxuICAgICAgJ1BPU1QnLFxuICAgICAgYC9hcGkvdjEvcHJvamVjdHMvJHtwcm9qZWN0SWR9L2VuZHBvaW50c2AsXG4gICAgICBwYXJhbXNcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZ2V0KHByb2plY3RJZDogc3RyaW5nLCBlbmRwb2ludElkOiBzdHJpbmcpOiBQcm9taXNlPEVuZHBvaW50PiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8RW5kcG9pbnQ+KFxuICAgICAgJ0dFVCcsXG4gICAgICBgL2FwaS92MS9wcm9qZWN0cy8ke3Byb2plY3RJZH0vZW5kcG9pbnRzLyR7ZW5kcG9pbnRJZH1gXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0cyBhIHByb2plY3QncyBlbmRwb2ludHMuXG4gICAqXG4gICAqIFRoZSBBUEkgcmV0dXJucyBhIFNwcmluZyBwYWdlIGVudmVsb3BlIGhlcmUsIG5vdCBhIGJhcmUgYXJyYXkg4oCUIHRoZVxuICAgKiBlbmRwb2ludHMgdGhlbXNlbHZlcyBhcmUgaW4gYC5jb250ZW50YC5cbiAgICovXG4gIGFzeW5jIGxpc3QoXG4gICAgcHJvamVjdElkOiBzdHJpbmcsXG4gICAgcGFyYW1zOiBFbmRwb2ludExpc3RQYXJhbXMgPSB7fVxuICApOiBQcm9taXNlPFBhZ2luYXRlZFJlc3BvbnNlPEVuZHBvaW50Pj4ge1xuICAgIGNvbnN0IHF1ZXJ5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIGlmIChwYXJhbXMucGFnZSAhPT0gdW5kZWZpbmVkKSBxdWVyeS5zZXQoJ3BhZ2UnLCBwYXJhbXMucGFnZS50b1N0cmluZygpKTtcbiAgICBpZiAocGFyYW1zLnNpemUgIT09IHVuZGVmaW5lZCkgcXVlcnkuc2V0KCdzaXplJywgcGFyYW1zLnNpemUudG9TdHJpbmcoKSk7XG5cbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IHF1ZXJ5LnRvU3RyaW5nKCk7XG4gICAgY29uc3QgcGF0aCA9IGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9lbmRwb2ludHMke3F1ZXJ5U3RyaW5nID8gYD8ke3F1ZXJ5U3RyaW5nfWAgOiAnJ31gO1xuXG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8UGFnaW5hdGVkUmVzcG9uc2U8RW5kcG9pbnQ+PignR0VUJywgcGF0aCk7XG4gIH1cblxuICBhc3luYyB1cGRhdGUoXG4gICAgcHJvamVjdElkOiBzdHJpbmcsXG4gICAgZW5kcG9pbnRJZDogc3RyaW5nLFxuICAgIHBhcmFtczogRW5kcG9pbnRVcGRhdGVQYXJhbXNcbiAgKTogUHJvbWlzZTxFbmRwb2ludD4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0PEVuZHBvaW50PihcbiAgICAgICdQVVQnLFxuICAgICAgYC9hcGkvdjEvcHJvamVjdHMvJHtwcm9qZWN0SWR9L2VuZHBvaW50cy8ke2VuZHBvaW50SWR9YCxcbiAgICAgIHBhcmFtc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBkZWxldGUocHJvamVjdElkOiBzdHJpbmcsIGVuZHBvaW50SWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0PHZvaWQ+KFxuICAgICAgJ0RFTEVURScsXG4gICAgICBgL2FwaS92MS9wcm9qZWN0cy8ke3Byb2plY3RJZH0vZW5kcG9pbnRzLyR7ZW5kcG9pbnRJZH1gXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHJvdGF0ZVNlY3JldChwcm9qZWN0SWQ6IHN0cmluZywgZW5kcG9pbnRJZDogc3RyaW5nKTogUHJvbWlzZTxFbmRwb2ludD4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0PEVuZHBvaW50PihcbiAgICAgICdQT1NUJyxcbiAgICAgIGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9lbmRwb2ludHMvJHtlbmRwb2ludElkfS9yb3RhdGUtc2VjcmV0YFxuICAgICk7XG4gIH1cblxuICBhc3luYyB0ZXN0KHByb2plY3RJZDogc3RyaW5nLCBlbmRwb2ludElkOiBzdHJpbmcpOiBQcm9taXNlPEVuZHBvaW50VGVzdFJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0PEVuZHBvaW50VGVzdFJlc3VsdD4oXG4gICAgICAnUE9TVCcsXG4gICAgICBgL2FwaS92MS9wcm9qZWN0cy8ke3Byb2plY3RJZH0vZW5kcG9pbnRzLyR7ZW5kcG9pbnRJZH0vdGVzdGBcbiAgICApO1xuICB9XG59XG5cbmNsYXNzIFN1YnNjcmlwdGlvbnMge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNsaWVudDogUmFpbGhvb2spIHt9XG5cbiAgYXN5bmMgY3JlYXRlKHByb2plY3RJZDogc3RyaW5nLCBwYXJhbXM6IFN1YnNjcmlwdGlvbkNyZWF0ZVBhcmFtcyk6IFByb21pc2U8U3Vic2NyaXB0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8U3Vic2NyaXB0aW9uPihcbiAgICAgICdQT1NUJyxcbiAgICAgIGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9zdWJzY3JpcHRpb25zYCxcbiAgICAgIHBhcmFtc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBnZXQocHJvamVjdElkOiBzdHJpbmcsIHN1YnNjcmlwdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPFN1YnNjcmlwdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0PFN1YnNjcmlwdGlvbj4oXG4gICAgICAnR0VUJyxcbiAgICAgIGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9zdWJzY3JpcHRpb25zLyR7c3Vic2NyaXB0aW9uSWR9YFxuICAgICk7XG4gIH1cblxuICBhc3luYyBsaXN0KHByb2plY3RJZDogc3RyaW5nKTogUHJvbWlzZTxTdWJzY3JpcHRpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0PFN1YnNjcmlwdGlvbltdPihcbiAgICAgICdHRVQnLFxuICAgICAgYC9hcGkvdjEvcHJvamVjdHMvJHtwcm9qZWN0SWR9L3N1YnNjcmlwdGlvbnNgXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZShcbiAgICBwcm9qZWN0SWQ6IHN0cmluZyxcbiAgICBzdWJzY3JpcHRpb25JZDogc3RyaW5nLFxuICAgIHBhcmFtczogUGFydGlhbDxTdWJzY3JpcHRpb25DcmVhdGVQYXJhbXM+XG4gICk6IFByb21pc2U8U3Vic2NyaXB0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8U3Vic2NyaXB0aW9uPihcbiAgICAgICdQVVQnLFxuICAgICAgYC9hcGkvdjEvcHJvamVjdHMvJHtwcm9qZWN0SWR9L3N1YnNjcmlwdGlvbnMvJHtzdWJzY3JpcHRpb25JZH1gLFxuICAgICAgcGFyYW1zXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZShwcm9qZWN0SWQ6IHN0cmluZywgc3Vic2NyaXB0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0PHZvaWQ+KFxuICAgICAgJ0RFTEVURScsXG4gICAgICBgL2FwaS92MS9wcm9qZWN0cy8ke3Byb2plY3RJZH0vc3Vic2NyaXB0aW9ucy8ke3N1YnNjcmlwdGlvbklkfWBcbiAgICApO1xuICB9XG59XG5cbmNsYXNzIERlbGl2ZXJpZXMge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNsaWVudDogUmFpbGhvb2spIHt9XG5cbiAgYXN5bmMgZ2V0KGRlbGl2ZXJ5SWQ6IHN0cmluZyk6IFByb21pc2U8RGVsaXZlcnk+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQucmVxdWVzdDxEZWxpdmVyeT4oJ0dFVCcsIGAvYXBpL3YxL2RlbGl2ZXJpZXMvJHtkZWxpdmVyeUlkfWApO1xuICB9XG5cbiAgYXN5bmMgbGlzdChcbiAgICBwcm9qZWN0SWQ6IHN0cmluZyxcbiAgICBwYXJhbXM6IERlbGl2ZXJ5TGlzdFBhcmFtcyA9IHt9XG4gICk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8RGVsaXZlcnk+PiB7XG4gICAgY29uc3QgcXVlcnkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgaWYgKHBhcmFtcy5zdGF0dXMpIHF1ZXJ5LnNldCgnc3RhdHVzJywgcGFyYW1zLnN0YXR1cyk7XG4gICAgaWYgKHBhcmFtcy5lbmRwb2ludElkKSBxdWVyeS5zZXQoJ2VuZHBvaW50SWQnLCBwYXJhbXMuZW5kcG9pbnRJZCk7XG4gICAgaWYgKHBhcmFtcy5mcm9tRGF0ZSkgcXVlcnkuc2V0KCdmcm9tRGF0ZScsIHBhcmFtcy5mcm9tRGF0ZSk7XG4gICAgaWYgKHBhcmFtcy50b0RhdGUpIHF1ZXJ5LnNldCgndG9EYXRlJywgcGFyYW1zLnRvRGF0ZSk7XG4gICAgaWYgKHBhcmFtcy5wYWdlICE9PSB1bmRlZmluZWQpIHF1ZXJ5LnNldCgncGFnZScsIHBhcmFtcy5wYWdlLnRvU3RyaW5nKCkpO1xuICAgIGlmIChwYXJhbXMuc2l6ZSAhPT0gdW5kZWZpbmVkKSBxdWVyeS5zZXQoJ3NpemUnLCBwYXJhbXMuc2l6ZS50b1N0cmluZygpKTtcblxuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gcXVlcnkudG9TdHJpbmcoKTtcbiAgICBjb25zdCBwYXRoID0gYC9hcGkvdjEvZGVsaXZlcmllcy9wcm9qZWN0cy8ke3Byb2plY3RJZH0ke3F1ZXJ5U3RyaW5nID8gYD8ke3F1ZXJ5U3RyaW5nfWAgOiAnJ31gO1xuXG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8UGFnaW5hdGVkUmVzcG9uc2U8RGVsaXZlcnk+PignR0VUJywgcGF0aCk7XG4gIH1cblxuICBhc3luYyBnZXRBdHRlbXB0cyhkZWxpdmVyeUlkOiBzdHJpbmcpOiBQcm9taXNlPERlbGl2ZXJ5QXR0ZW1wdFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8RGVsaXZlcnlBdHRlbXB0W10+KFxuICAgICAgJ0dFVCcsXG4gICAgICBgL2FwaS92MS9kZWxpdmVyaWVzLyR7ZGVsaXZlcnlJZH0vYXR0ZW1wdHNgXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHJlcGxheShkZWxpdmVyeUlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQucmVxdWVzdDx2b2lkPignUE9TVCcsIGAvYXBpL3YxL2RlbGl2ZXJpZXMvJHtkZWxpdmVyeUlkfS9yZXBsYXlgKTtcbiAgfVxufVxuXG5jbGFzcyBJbmNvbWluZ1NvdXJjZXMge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNsaWVudDogUmFpbGhvb2spIHt9XG5cbiAgYXN5bmMgY3JlYXRlKHByb2plY3RJZDogc3RyaW5nLCBwYXJhbXM6IEluY29taW5nU291cmNlQ3JlYXRlUGFyYW1zKTogUHJvbWlzZTxJbmNvbWluZ1NvdXJjZT4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0PEluY29taW5nU291cmNlPihcbiAgICAgICdQT1NUJyxcbiAgICAgIGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9pbmNvbWluZy1zb3VyY2VzYCxcbiAgICAgIHBhcmFtc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBnZXQocHJvamVjdElkOiBzdHJpbmcsIHNvdXJjZUlkOiBzdHJpbmcpOiBQcm9taXNlPEluY29taW5nU291cmNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8SW5jb21pbmdTb3VyY2U+KFxuICAgICAgJ0dFVCcsXG4gICAgICBgL2FwaS92MS9wcm9qZWN0cy8ke3Byb2plY3RJZH0vaW5jb21pbmctc291cmNlcy8ke3NvdXJjZUlkfWBcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdChwcm9qZWN0SWQ6IHN0cmluZyk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8SW5jb21pbmdTb3VyY2U+PiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8UGFnaW5hdGVkUmVzcG9uc2U8SW5jb21pbmdTb3VyY2U+PihcbiAgICAgICdHRVQnLFxuICAgICAgYC9hcGkvdjEvcHJvamVjdHMvJHtwcm9qZWN0SWR9L2luY29taW5nLXNvdXJjZXNgXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZShwcm9qZWN0SWQ6IHN0cmluZywgc291cmNlSWQ6IHN0cmluZywgcGFyYW1zOiBJbmNvbWluZ1NvdXJjZVVwZGF0ZVBhcmFtcyk6IFByb21pc2U8SW5jb21pbmdTb3VyY2U+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQucmVxdWVzdDxJbmNvbWluZ1NvdXJjZT4oXG4gICAgICAnUFVUJyxcbiAgICAgIGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9pbmNvbWluZy1zb3VyY2VzLyR7c291cmNlSWR9YCxcbiAgICAgIHBhcmFtc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBkZWxldGUocHJvamVjdElkOiBzdHJpbmcsIHNvdXJjZUlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQucmVxdWVzdDx2b2lkPihcbiAgICAgICdERUxFVEUnLFxuICAgICAgYC9hcGkvdjEvcHJvamVjdHMvJHtwcm9qZWN0SWR9L2luY29taW5nLXNvdXJjZXMvJHtzb3VyY2VJZH1gXG4gICAgKTtcbiAgfVxuXG4gIC8vIOKUgOKUgCBEZXN0aW5hdGlvbnMg4pSA4pSAXG5cbiAgYXN5bmMgY3JlYXRlRGVzdGluYXRpb24oXG4gICAgcHJvamVjdElkOiBzdHJpbmcsXG4gICAgc291cmNlSWQ6IHN0cmluZyxcbiAgICBwYXJhbXM6IEluY29taW5nRGVzdGluYXRpb25DcmVhdGVQYXJhbXNcbiAgKTogUHJvbWlzZTxJbmNvbWluZ0Rlc3RpbmF0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8SW5jb21pbmdEZXN0aW5hdGlvbj4oXG4gICAgICAnUE9TVCcsXG4gICAgICBgL2FwaS92MS9wcm9qZWN0cy8ke3Byb2plY3RJZH0vaW5jb21pbmctc291cmNlcy8ke3NvdXJjZUlkfS9kZXN0aW5hdGlvbnNgLFxuICAgICAgcGFyYW1zXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGdldERlc3RpbmF0aW9uKFxuICAgIHByb2plY3RJZDogc3RyaW5nLFxuICAgIHNvdXJjZUlkOiBzdHJpbmcsXG4gICAgZGVzdGluYXRpb25JZDogc3RyaW5nXG4gICk6IFByb21pc2U8SW5jb21pbmdEZXN0aW5hdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0PEluY29taW5nRGVzdGluYXRpb24+KFxuICAgICAgJ0dFVCcsXG4gICAgICBgL2FwaS92MS9wcm9qZWN0cy8ke3Byb2plY3RJZH0vaW5jb21pbmctc291cmNlcy8ke3NvdXJjZUlkfS9kZXN0aW5hdGlvbnMvJHtkZXN0aW5hdGlvbklkfWBcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdERlc3RpbmF0aW9ucyhcbiAgICBwcm9qZWN0SWQ6IHN0cmluZyxcbiAgICBzb3VyY2VJZDogc3RyaW5nXG4gICk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8SW5jb21pbmdEZXN0aW5hdGlvbj4+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQucmVxdWVzdDxQYWdpbmF0ZWRSZXNwb25zZTxJbmNvbWluZ0Rlc3RpbmF0aW9uPj4oXG4gICAgICAnR0VUJyxcbiAgICAgIGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9pbmNvbWluZy1zb3VyY2VzLyR7c291cmNlSWR9L2Rlc3RpbmF0aW9uc2BcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlRGVzdGluYXRpb24oXG4gICAgcHJvamVjdElkOiBzdHJpbmcsXG4gICAgc291cmNlSWQ6IHN0cmluZyxcbiAgICBkZXN0aW5hdGlvbklkOiBzdHJpbmcsXG4gICAgcGFyYW1zOiBJbmNvbWluZ0Rlc3RpbmF0aW9uVXBkYXRlUGFyYW1zXG4gICk6IFByb21pc2U8SW5jb21pbmdEZXN0aW5hdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0PEluY29taW5nRGVzdGluYXRpb24+KFxuICAgICAgJ1BVVCcsXG4gICAgICBgL2FwaS92MS9wcm9qZWN0cy8ke3Byb2plY3RJZH0vaW5jb21pbmctc291cmNlcy8ke3NvdXJjZUlkfS9kZXN0aW5hdGlvbnMvJHtkZXN0aW5hdGlvbklkfWAsXG4gICAgICBwYXJhbXNcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlRGVzdGluYXRpb24oXG4gICAgcHJvamVjdElkOiBzdHJpbmcsXG4gICAgc291cmNlSWQ6IHN0cmluZyxcbiAgICBkZXN0aW5hdGlvbklkOiBzdHJpbmdcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8dm9pZD4oXG4gICAgICAnREVMRVRFJyxcbiAgICAgIGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9pbmNvbWluZy1zb3VyY2VzLyR7c291cmNlSWR9L2Rlc3RpbmF0aW9ucy8ke2Rlc3RpbmF0aW9uSWR9YFxuICAgICk7XG4gIH1cbn1cblxuY2xhc3MgSW5jb21pbmdFdmVudHMge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNsaWVudDogUmFpbGhvb2spIHt9XG5cbiAgYXN5bmMgbGlzdChcbiAgICBwcm9qZWN0SWQ6IHN0cmluZyxcbiAgICBwYXJhbXM6IEluY29taW5nRXZlbnRMaXN0UGFyYW1zID0ge31cbiAgKTogUHJvbWlzZTxQYWdpbmF0ZWRSZXNwb25zZTxJbmNvbWluZ0V2ZW50Pj4ge1xuICAgIGNvbnN0IHF1ZXJ5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIGlmIChwYXJhbXMuc291cmNlSWQpIHF1ZXJ5LnNldCgnc291cmNlSWQnLCBwYXJhbXMuc291cmNlSWQpO1xuICAgIGlmIChwYXJhbXMucGFnZSAhPT0gdW5kZWZpbmVkKSBxdWVyeS5zZXQoJ3BhZ2UnLCBwYXJhbXMucGFnZS50b1N0cmluZygpKTtcbiAgICBpZiAocGFyYW1zLnNpemUgIT09IHVuZGVmaW5lZCkgcXVlcnkuc2V0KCdzaXplJywgcGFyYW1zLnNpemUudG9TdHJpbmcoKSk7XG5cbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IHF1ZXJ5LnRvU3RyaW5nKCk7XG4gICAgY29uc3QgcGF0aCA9IGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9pbmNvbWluZy1ldmVudHMke3F1ZXJ5U3RyaW5nID8gYD8ke3F1ZXJ5U3RyaW5nfWAgOiAnJ31gO1xuXG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8UGFnaW5hdGVkUmVzcG9uc2U8SW5jb21pbmdFdmVudD4+KCdHRVQnLCBwYXRoKTtcbiAgfVxuXG4gIGFzeW5jIGdldChwcm9qZWN0SWQ6IHN0cmluZywgZXZlbnRJZDogc3RyaW5nKTogUHJvbWlzZTxJbmNvbWluZ0V2ZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Q8SW5jb21pbmdFdmVudD4oXG4gICAgICAnR0VUJyxcbiAgICAgIGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9pbmNvbWluZy1ldmVudHMvJHtldmVudElkfWBcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZ2V0QXR0ZW1wdHMoXG4gICAgcHJvamVjdElkOiBzdHJpbmcsXG4gICAgZXZlbnRJZDogc3RyaW5nXG4gICk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8SW5jb21pbmdGb3J3YXJkQXR0ZW1wdD4+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQucmVxdWVzdDxQYWdpbmF0ZWRSZXNwb25zZTxJbmNvbWluZ0ZvcndhcmRBdHRlbXB0Pj4oXG4gICAgICAnR0VUJyxcbiAgICAgIGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9pbmNvbWluZy1ldmVudHMvJHtldmVudElkfS9hdHRlbXB0c2BcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmVwbGF5KHByb2plY3RJZDogc3RyaW5nLCBldmVudElkOiBzdHJpbmcpOiBQcm9taXNlPFJlcGxheUV2ZW50UmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQucmVxdWVzdDxSZXBsYXlFdmVudFJlc3BvbnNlPihcbiAgICAgICdQT1NUJyxcbiAgICAgIGAvYXBpL3YxL3Byb2plY3RzLyR7cHJvamVjdElkfS9pbmNvbWluZy1ldmVudHMvJHtldmVudElkfS9yZXBsYXlgXG4gICAgKTtcbiAgfVxufVxuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@railhook/node",
3
- "version": "2.16.1",
3
+ "version": "2.16.3",
4
4
  "description": "Official Node.js SDK for Railhook — reliable webhook infrastructure",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",