@aerokit/sdk 12.69.0 → 12.70.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -128,7 +128,8 @@ function Entity(entityName) {
128
128
  function Table(tableName) {
129
129
  return function(value, context) {
130
130
  context.addInitializer(function() {
131
- value.$table_name = tableName || (context.name?.toString() ?? value.name.toUpperCase());
131
+ const target = value;
132
+ target.$table_name = tableName || context.name?.toString() || value.name.toUpperCase();
132
133
  });
133
134
  return value;
134
135
  };
@@ -192,4 +193,4 @@ function ManyToOne(typeFunction, options = {}) {
192
193
  });
193
194
  };
194
195
  }
195
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL2RlY29yYXRvcnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogKiBFQ01BU2NyaXB0IDIwMjUtY29tcGxpYW50IE9STSBkZWNvcmF0b3IgaW1wbGVtZW50YXRpb25cbiAqIENvbXBhdGlibGUgd2l0aCBHcmFhbEpTIHJ1bnRpbWUuXG4gKiAqIEZlYXR1cmVzOlxuICogLSBVc2VzIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIgZm9yIHN0YWJsZSBkZWNvcmF0b3IgdGltaW5nXG4gKiAtIFN0b3JlcyBtZXRhZGF0YSBpbiBhIGdsb2JhbCBXZWFrTWFwIGNhY2hlXG4gKiAtIEZpbmFsaXplcyBlbnRpdHkgbWV0YWRhdGEgb25jZSBwZXIgY2xhc3NcbiAqIC0gRGVmZXJzIGZpbmFsaXphdGlvbiB2aWEgbWljcm90YXNrIChQcm9taXNlLnJlc29sdmUoKS50aGVuKVxuICovXG5cbi8vIC0tLSBEZWNvcmF0b3IgQ29udGV4dCBUeXBlcyAoYmFzZWQgb24gRUNNQVNjcmlwdCBEZWNvcmF0b3JzIHByb3Bvc2FsKSAtLS1cbnR5cGUgQ2xhc3NGaWVsZERlY29yYXRvckNvbnRleHQgPSB7XG4gIGtpbmQ6IFwiZmllbGRcIjtcbiAgbmFtZTogc3RyaW5nIHwgc3ltYm9sO1xuICBzdGF0aWM6IGJvb2xlYW47XG4gIHByaXZhdGU6IGJvb2xlYW47XG4gIGFkZEluaXRpYWxpemVyKGZuOiAoKSA9PiB2b2lkKTogdm9pZDtcbn07XG5cbnR5cGUgQ2xhc3NEZWNvcmF0b3JDb250ZXh0ID0ge1xuICBraW5kOiBcImNsYXNzXCI7XG4gIG5hbWU/OiBzdHJpbmcgfCBzeW1ib2w7XG4gIGFkZEluaXRpYWxpemVyKGZuOiAoKSA9PiB2b2lkKTogdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIENvbHVtblR5cGVzID1cbiAgLy8gTnVtZXJpYyB0eXBlc1xuICB8ICdpbnRlZ2VyJyB8ICdsb25nJyB8ICdzaG9ydCcgfCAnYnl0ZScgfCAnZmxvYXQnIHwgJ2RvdWJsZScgfCAnYmlnX2ludGVnZXInIHwgJ2JpZ19kZWNpbWFsJ1xuICAvLyBTdHJpbmcgdHlwZXNcbiAgfCAnc3RyaW5nJyB8ICdjaGFyJyB8ICd0ZXh0JyB8ICduc3RyaW5nJyB8ICdudGV4dCdcbiAgLy8gRGF0ZS9UaW1lIHR5cGVzXG4gIHwgJ2RhdGUnIHwgJ3RpbWUnIHwgJ3RpbWVzdGFtcCcgfCAnY2FsZW5kYXInIHwgJ2NhbGVuZGFyX2RhdGUnIHwgJ2luc3RhbnQnXG4gIC8vIEJvb2xlYW4gdHlwZXNcbiAgfCAnYm9vbGVhbicgfCAndHJ1ZV9mYWxzZScgfCAneWVzX25vJyB8ICdudW1lcmljX2Jvb2xlYW4nIFxuICAvLyBCaW5hcnkgdHlwZXNcbiAgfCAnYmluYXJ5JyB8ICdibG9iJyB8ICdjbG9iJyB8ICdtYXRlcmlhbGl6ZWRfYmxvYicgfCAnbWF0ZXJpYWxpemVkX2Nsb2InXG4gIC8vIE90aGVyIHR5cGVzXG4gIHwgJ3NlcmlhbGl6YWJsZScgfCAnYW55JyB8ICdvYmplY3QnIHwgJ3V1aWQtY2hhcicgfCAndXVpZC1iaW5hcnknIHwgJ2pzb24nIHwgJ2pzb25iJyB8ICd4bWwnO1xuXG4vLyAtLS0gTWV0YWRhdGEgTW9kZWxzIC0tLVxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5PcHRpb25zIHtcbiAgbmFtZT86IHN0cmluZztcbiAgdHlwZT86IENvbHVtblR5cGVzIHwgKHN0cmluZyAmIHt9KTtcbiAgbGVuZ3RoPzogbnVtYmVyO1xuICBudWxsYWJsZT86IGJvb2xlYW47XG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgcHJlY2lzaW9uPzogbnVtYmVyO1xuICBzY2FsZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVUb01hbnlPcHRpb25zIHtcbiAgdGFibGU/OiBzdHJpbmc7XG4gIGpvaW5Db2x1bW46IHN0cmluZztcbiAgY2FzY2FkZT86IFwiYWxsXCIgfCBcIm5vbmVcIiB8IFwicGVyc2lzdFwiIHwgXCJtZXJnZVwiIHwgXCJyZW1vdmVcIjtcbiAgaW52ZXJzZT86IGJvb2xlYW47XG4gIGxhenk/OiBib29sZWFuO1xuICBmZXRjaD86IFwic2VsZWN0XCIgfCBcImpvaW5cIjtcbiAgam9pbkNvbHVtbk5vdE51bGw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hbnlUb09uZU9wdGlvbnMge1xuICBqb2luQ29sdW1uPzogc3RyaW5nO1xuICBjYXNjYWRlPzogXCJhbGxcIiB8IFwibm9uZVwiIHwgXCJwZXJzaXN0XCIgfCBcIm1lcmdlXCIgfCBcInJlbW92ZVwiO1xuICBudWxsYWJsZT86IGJvb2xlYW47XG4gIGxhenk/OiBib29sZWFuO1xuICBmZXRjaD86IFwic2VsZWN0XCIgfCBcImpvaW5cIjtcbn1cblxuaW50ZXJmYWNlIFByb3BlcnR5TWV0YWRhdGEge1xuICBwcm9wZXJ0eU5hbWU6IHN0cmluZztcbiAgaXNJZDogYm9vbGVhbjtcbiAgaXNDcmVhdGVkQXQ6IGJvb2xlYW47XG4gIGlzVXBkYXRlZEF0OiBib29sZWFuO1xuICBpc0NyZWF0ZWRCeTogYm9vbGVhbjtcbiAgaXNVcGRhdGVkQnk6IGJvb2xlYW47XG4gIGlzR2VuZXJhdGVkOiBib29sZWFuO1xuICBkb2N1bWVudGF0aW9uPzogc3RyaW5nO1xuICBjb2x1bW5PcHRpb25zPzogQ29sdW1uT3B0aW9ucztcbiAgb25lVG9NYW55T3B0aW9ucz86IHsgdHlwZTogRnVuY3Rpb247IG9wdGlvbnM6IE9uZVRvTWFueU9wdGlvbnMgfTtcbiAgbWFueVRvT25lT3B0aW9ucz86IHsgdHlwZTogRnVuY3Rpb247IG9wdGlvbnM6IE1hbnlUb09uZU9wdGlvbnMgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlDb25zdHJ1Y3RvciBleHRlbmRzIEZ1bmN0aW9uIHtcbiAgbmV3KC4uLmFyZ3M6IGFueVtdKTogYW55O1xuICAkZW50aXR5X25hbWU6IHN0cmluZztcbiAgJHRhYmxlX25hbWU6IHN0cmluZztcbiAgJGlkX25hbWU6IHN0cmluZztcbiAgJGlkX2NvbHVtbjogc3RyaW5nO1xuICAkaW5pdGlhbGl6ZWQ/OiBib29sZWFuO1xuICAkZG9jdW1lbnRhdGlvbj86IHN0cmluZztcbn1cblxuLy8gLS0tIEdsb2JhbCBNZXRhZGF0YSBDYWNoZSAtLS1cbmNvbnN0IGdsb2JhbENhY2hlOiBXZWFrTWFwPEZ1bmN0aW9uLCBQcm9wZXJ0eU1ldGFkYXRhW10+ID1cbiAgKGdsb2JhbFRoaXMgYXMgYW55KS5fX2RlY29yYXRvcl9tZXRhZGF0YV9jYWNoZV9fIHx8XG4gICgoZ2xvYmFsVGhpcyBhcyBhbnkpLl9fZGVjb3JhdG9yX21ldGFkYXRhX2NhY2hlX18gPSBuZXcgV2Vha01hcCgpKTtcblxuZnVuY3Rpb24gZ2V0TWV0YWRhdGFBcnJheShjb25zdHJ1Y3RvcjogRnVuY3Rpb24pOiBQcm9wZXJ0eU1ldGFkYXRhW10ge1xuICBpZiAoIWdsb2JhbENhY2hlLmhhcyhjb25zdHJ1Y3RvcikpIHtcbiAgICBnbG9iYWxDYWNoZS5zZXQoY29uc3RydWN0b3IsIFtdKTtcbiAgfVxuICByZXR1cm4gZ2xvYmFsQ2FjaGUuZ2V0KGNvbnN0cnVjdG9yKSE7XG59XG5cbi8vIC0tLSBEZWZlciBIZWxwZXIgKEdyYWFsSlMtc2FmZSBtaWNyb3Rhc2spIC0tLVxuZnVuY3Rpb24gZGVmZXIoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgLy8gVXNlcyBQcm9taXNlIG1pY3JvdGFzayBxdWV1ZSBmb3IgZGVmZXJyZWQgZXhlY3V0aW9uXG4gIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZm4pO1xufVxuXG4vLyAtLS0gQ29yZSBQcm9wZXJ0eSBEZWNvcmF0b3IgRmFjdG9yeSAtLS1cbmZ1bmN0aW9uIGNyZWF0ZVByb3BlcnR5RGVjb3JhdG9yKFxuICBraW5kOiBcImNvbHVtblwiIHwgXCJpZFwiIHwgXCJnZW5lcmF0ZWRcIiB8IFwiY3JlYXRlZEF0XCIgfCBcInVwZGF0ZWRBdFwiIHwgXCJjcmVhdGVkQnlcIiB8IFwidXBkYXRlZEJ5XCIsXG4gIG9wdGlvbnM/OiBDb2x1bW5PcHRpb25zXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChfOiBhbnksIGNvbnRleHQ6IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQua2luZCAhPT0gXCJmaWVsZFwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEAke2tpbmR9IG11c3QgYXBwbHkgdG8gZmllbGRzYCk7XG4gICAgfVxuXG4gICAgY29udGV4dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBjdG9yID0gKHRoaXMgYXMgYW55KS5jb25zdHJ1Y3RvciBhcyBFbnRpdHlDb25zdHJ1Y3RvcjtcbiAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IGNvbnRleHQubmFtZS50b1N0cmluZygpO1xuICAgICAgY29uc3QgbWV0YWRhdGFBcnJheSA9IGdldE1ldGFkYXRhQXJyYXkoY3Rvcik7XG5cbiAgICAgIGxldCBtZXRhZGF0YSA9IG1ldGFkYXRhQXJyYXkuZmluZChcbiAgICAgICAgKG0pID0+IG0ucHJvcGVydHlOYW1lID09PSBwcm9wZXJ0eU5hbWVcbiAgICAgICk7XG5cbiAgICAgIGlmICghbWV0YWRhdGEpIHtcbiAgICAgICAgbWV0YWRhdGEgPSB7XG4gICAgICAgICAgcHJvcGVydHlOYW1lOiBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgaXNJZDogZmFsc2UsXG5cdFx0ICBpc0NyZWF0ZWRBdDogZmFsc2UsXG5cdFx0ICBpc1VwZGF0ZWRBdDogZmFsc2UsXG5cdFx0ICBpc0NyZWF0ZWRCeTogZmFsc2UsXG5cdFx0ICBpc1VwZGF0ZWRCeTogZmFsc2UsXG4gICAgICAgICAgaXNHZW5lcmF0ZWQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBtZXRhZGF0YUFycmF5LnB1c2gobWV0YWRhdGEpO1xuICAgICAgfVxuXG4gICAgICBpZiAoa2luZCA9PT0gXCJpZFwiKSBtZXRhZGF0YS5pc0lkID0gdHJ1ZTtcblx0ICBpZiAoa2luZCA9PT0gXCJjcmVhdGVkQXRcIikgbWV0YWRhdGEuaXNDcmVhdGVkQXQgPSB0cnVlO1xuXHQgIGlmIChraW5kID09PSBcInVwZGF0ZWRBdFwiKSBtZXRhZGF0YS5pc1VwZGF0ZWRBdCA9IHRydWU7XG5cdCAgaWYgKGtpbmQgPT09IFwiY3JlYXRlZEJ5XCIpIG1ldGFkYXRhLmlzQ3JlYXRlZEJ5ID0gdHJ1ZTtcblx0ICBpZiAoa2luZCA9PT0gXCJ1cGRhdGVkQnlcIikgbWV0YWRhdGEuaXNVcGRhdGVkQnkgPSB0cnVlO1xuICAgICAgaWYgKGtpbmQgPT09IFwiZ2VuZXJhdGVkXCIpIG1ldGFkYXRhLmlzR2VuZXJhdGVkID0gdHJ1ZTtcbiAgICAgIGlmIChraW5kID09PSBcImNvbHVtblwiKSBtZXRhZGF0YS5jb2x1bW5PcHRpb25zID0gb3B0aW9ucztcbiAgICB9KTtcbiAgfTtcbn1cblxuLy8gLS0tIEBEb2N1bWVudGF0aW9uIERlY29yYXRvciAoRHVhbC1QdXJwb3NlKSAtLS1cbi8qKlxuICogQWRkcyBkb2N1bWVudGF0aW9uIG1ldGFkYXRhIHRvIGEgY2xhc3Mgb3IgYSBmaWVsZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERvY3VtZW50YXRpb24oZGVzY3JpcHRpb246IHN0cmluZykge1xuICByZXR1cm4gZnVuY3Rpb24gKFxuICAgIHZhbHVlOiBGdW5jdGlvbiB8IGFueSxcbiAgICBjb250ZXh0OiBDbGFzc0RlY29yYXRvckNvbnRleHQgfCBDbGFzc0ZpZWxkRGVjb3JhdG9yQ29udGV4dFxuICApIHtcbiAgICBpZiAoY29udGV4dC5raW5kID09PSBcImNsYXNzXCIpIHtcbiAgICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgICAodmFsdWUgYXMgRW50aXR5Q29uc3RydWN0b3IpLiRkb2N1bWVudGF0aW9uID0gZGVzY3JpcHRpb247XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9IGVsc2UgaWYgKGNvbnRleHQua2luZCA9PT0gXCJmaWVsZFwiKSB7XG4gICAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgY3RvciA9ICh0aGlzIGFzIGFueSkuY29uc3RydWN0b3IgYXMgRW50aXR5Q29uc3RydWN0b3I7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IGNvbnRleHQubmFtZS50b1N0cmluZygpO1xuICAgICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcblxuICAgICAgICBsZXQgbWV0YWRhdGEgPSBtZXRhZGF0YUFycmF5LmZpbmQoXG4gICAgICAgICAgKG0pID0+IG0ucHJvcGVydHlOYW1lID09PSBwcm9wZXJ0eU5hbWVcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIW1ldGFkYXRhKSB7XG4gICAgICAgICAgbWV0YWRhdGEgPSB7XG4gICAgICAgICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgICAgICAgIGlzSWQ6IGZhbHNlLFxuXHRcdFx0aXNDcmVhdGVkQXQ6IGZhbHNlLFxuXHRcdFx0aXNVcGRhdGVkQXQ6IGZhbHNlLFxuXHRcdFx0aXNDcmVhdGVkQnk6IGZhbHNlLFxuXHRcdFx0aXNVcGRhdGVkQnk6IGZhbHNlLFxuICAgICAgICAgICAgaXNHZW5lcmF0ZWQ6IGZhbHNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgbWV0YWRhdGFBcnJheS5wdXNoKG1ldGFkYXRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG1ldGFkYXRhLmRvY3VtZW50YXRpb24gPSBkZXNjcmlwdGlvbjtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cblxuXG4vLyAtLS0gQEVudGl0eSBEZWNvcmF0b3IgLS0tXG4vKipcbiAqIE1hcmtzIGEgY2xhc3MgYXMgYW4gZW50aXR5IGFuZCBpbml0aWF0ZXMgbWV0YWRhdGEgZmluYWxpemF0aW9uLlxuICogQHBhcmFtIGVudGl0eU5hbWUgVGhlIG5hbWUgb2YgdGhlIGVudGl0eSAoZGVmYXVsdHMgdG8gY2xhc3MgbmFtZSkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFbnRpdHkoZW50aXR5TmFtZT86IHN0cmluZykge1xuICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlOiBGdW5jdGlvbiwgY29udGV4dDogQ2xhc3NEZWNvcmF0b3JDb250ZXh0KSB7XG4gICAgY29udGV4dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBEZWZlciBleGVjdXRpb24gdG8gZW5zdXJlIGFsbCBmaWVsZCBkZWNvcmF0b3JzIGhhdmUgcnVuXG4gICAgICBkZWZlcigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGN0b3IgPSB2YWx1ZSBhcyBFbnRpdHlDb25zdHJ1Y3RvcjtcblxuICAgICAgICAvLyBQcmV2ZW50IGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gKGlkZW1wb3RlbmN5KVxuICAgICAgICBpZiAoY3Rvci4kaW5pdGlhbGl6ZWQpIHJldHVybjtcbiAgICAgICAgY3Rvci4kaW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgICAgIGN0b3IuJGVudGl0eV9uYW1lID0gZW50aXR5TmFtZSB8fCBjdG9yLm5hbWU7XG5cbiAgICAgICAgY29uc3QgbWV0YWRhdGFBcnJheSA9IGdldE1ldGFkYXRhQXJyYXkoY3Rvcik7XG4gICAgICAgIGNvbnN0IGlkTWV0YWRhdGEgPSBtZXRhZGF0YUFycmF5LmZpbmQoKG0pID0+IG0uaXNJZCk7XG5cbiAgICAgICAgaWYgKGlkTWV0YWRhdGEpIHtcbiAgICAgICAgICBjdG9yLiRpZF9uYW1lID0gaWRNZXRhZGF0YS5wcm9wZXJ0eU5hbWU7XG4gICAgICAgICAgLy8gRGV0ZXJtaW5lIElEIGNvbHVtbiBuYW1lOiB1c2UgZXhwbGljaXQgbmFtZSBvciBjb252ZXJ0IHByb3BlcnR5IG5hbWUgdG8gdXBwZXIgY2FzZVxuICAgICAgICAgIGN0b3IuJGlkX2NvbHVtbiA9XG4gICAgICAgICAgICBpZE1ldGFkYXRhLmNvbHVtbk9wdGlvbnM/Lm5hbWUgfHxcbiAgICAgICAgICAgIGlkTWV0YWRhdGEucHJvcGVydHlOYW1lLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGdXR1cmU6IExvZ2ljIHRvIG1hcCBhbGwgcHJvcGVydGllcyB0byBjb2x1bW5zL3JlbGF0aW9ucyBnb2VzIGhlcmVcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xufVxuXG4vLyAtLS0gQFRhYmxlIERlY29yYXRvciAtLS1cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBkYXRhYmFzZSB0YWJsZSBuYW1lIGZvciB0aGUgZW50aXR5LlxuICogQHBhcmFtIHRhYmxlTmFtZSBUaGUgdGFibGUgbmFtZSAoZGVmYXVsdHMgdG8gdXBwZXJjYXNlIGNsYXNzIG5hbWUpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gVGFibGUodGFibGVOYW1lPzogc3RyaW5nKSB7XG4gIHJldHVybiBmdW5jdGlvbiA8VCBleHRlbmRzIEVudGl0eUNvbnN0cnVjdG9yPihcbiAgICB2YWx1ZTogVCxcbiAgICBjb250ZXh0OiBDbGFzc0RlY29yYXRvckNvbnRleHRcbiAgKSB7XG4gICAgY29udGV4dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbiAoKSB7XG4gICAgICAodmFsdWUgYXMgRW50aXR5Q29uc3RydWN0b3IpLiR0YWJsZV9uYW1lID1cbiAgICAgICAgdGFibGVOYW1lIHx8IChjb250ZXh0Lm5hbWU/LnRvU3RyaW5nKCkgPz8gdmFsdWUubmFtZS50b1VwcGVyQ2FzZSgpKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfTtcbn1cblxuLy8gLS0tIEV4cG9ydGVkIFByb3BlcnR5IERlY29yYXRvcnMgLS0tXG4vKipcbiAqIE1hcmtzIGEgcHJvcGVydHkgYXMgYSBzdGFuZGFyZCBkYXRhYmFzZSBjb2x1bW4uXG4gKi9cbmV4cG9ydCBjb25zdCBDb2x1bW4gPSAob3B0aW9ucz86IENvbHVtbk9wdGlvbnMpID0+XG4gIGNyZWF0ZVByb3BlcnR5RGVjb3JhdG9yKFwiY29sdW1uXCIsIG9wdGlvbnMpO1xuXG4vKipcbiAqIE1hcmtzIGEgcHJvcGVydHkgYXMgdGhlIGVudGl0eSdzIHByaW1hcnkga2V5LlxuICovXG5leHBvcnQgY29uc3QgSWQgPSAoKSA9PiBjcmVhdGVQcm9wZXJ0eURlY29yYXRvcihcImlkXCIpO1xuXG4vKipcbiAqIE1hcmtzIGEgcHJvcGVydHkgYXMgdGhlIGVudGl0eSdzIGNyZWF0ZWQgYXQgdGltZXN0YW1wLlxuICovXG5leHBvcnQgY29uc3QgQ3JlYXRlZEF0ID0gKCkgPT4gY3JlYXRlUHJvcGVydHlEZWNvcmF0b3IoXCJjcmVhdGVkQXRcIik7XG5cbi8qKlxuICogTWFya3MgYSBwcm9wZXJ0eSBhcyB0aGUgZW50aXR5J3MgdXBkYXRlIGF0IHRpbWVzdGFtcC5cbiAqL1xuZXhwb3J0IGNvbnN0IFVwZGF0ZWRBdCA9ICgpID0+IGNyZWF0ZVByb3BlcnR5RGVjb3JhdG9yKFwidXBkYXRlZEF0XCIpO1xuXG4vKipcbiAqIE1hcmtzIGEgcHJvcGVydHkgYXMgdGhlIGVudGl0eSdzIGNyZWF0aW9uIGFjdG9yLlxuICovXG5leHBvcnQgY29uc3QgQ3JlYXRlZEJ5ID0gKCkgPT4gY3JlYXRlUHJvcGVydHlEZWNvcmF0b3IoXCJjcmVhdGVkQnlcIik7XG5cbi8qKlxuICogTWFya3MgYSBwcm9wZXJ0eSBhcyB0aGUgZW50aXR5J3MgdXBkYXRlIGFjdG9yLlxuICovXG5leHBvcnQgY29uc3QgVXBkYXRlZEJ5ID0gKCkgPT4gY3JlYXRlUHJvcGVydHlEZWNvcmF0b3IoXCJ1cGRhdGVkQnlcIik7XG5cbi8qKlxuICogTWFya3MgYSBwcm9wZXJ0eSBhcyBhIGdlbmVyYXRlZCB2YWx1ZSAoZS5nLiwgYXV0by1pbmNyZW1lbnQpLlxuICogQHBhcmFtIHN0cmF0ZWd5IFRoZSBnZW5lcmF0aW9uIHN0cmF0ZWd5IChlLmcuLCBcIklERU5USVRZXCIpLiBQYXJhbWV0ZXIgaXMgY3VycmVudGx5IHVudXNlZCBpbiBsb2dpYy5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmVyYXRlZCA9IChzdHJhdGVneTogc3RyaW5nKSA9PlxuICBjcmVhdGVQcm9wZXJ0eURlY29yYXRvcihcImdlbmVyYXRlZFwiKTtcblxuLyoqXG4gKiBEZWZpbmVzIGEgb25lLXRvLW1hbnkgcmVsYXRpb25zaGlwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gT25lVG9NYW55KFxuICB0eXBlRnVuY3Rpb246ICgpID0+IEZ1bmN0aW9uLFxuICBvcHRpb25zOiBPbmVUb01hbnlPcHRpb25zXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChfOiBhbnksIGNvbnRleHQ6IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQua2luZCAhPT0gXCJmaWVsZFwiKSByZXR1cm47XG5cbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGN0b3IgPSAodGhpcyBhcyBhbnkpLmNvbnN0cnVjdG9yIGFzIEVudGl0eUNvbnN0cnVjdG9yO1xuICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gY29udGV4dC5uYW1lLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcblxuICAgICAgbGV0IG1ldGFkYXRhID0gbWV0YWRhdGFBcnJheS5maW5kKFxuICAgICAgICAobSkgPT4gbS5wcm9wZXJ0eU5hbWUgPT09IHByb3BlcnR5TmFtZVxuICAgICAgKTtcblxuICAgICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgICAgICBpc0lkOiBmYWxzZSxcblx0XHQgIGlzQ3JlYXRlZEF0OiBmYWxzZSxcblx0XHQgIGlzVXBkYXRlZEF0OiBmYWxzZSxcblx0XHQgIGlzQ3JlYXRlZEJ5OiBmYWxzZSxcblx0XHQgIGlzVXBkYXRlZEJ5OiBmYWxzZSxcbiAgICAgICAgICBpc0dlbmVyYXRlZDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIG1ldGFkYXRhQXJyYXkucHVzaChtZXRhZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIG1ldGFkYXRhLm9uZVRvTWFueU9wdGlvbnMgPSB7IHR5cGU6IHR5cGVGdW5jdGlvbigpLCBvcHRpb25zIH07XG4gICAgfSk7XG4gIH07XG59XG5cbi8qKlxuICogRGVmaW5lcyBhIG1hbnktdG8tb25lIHJlbGF0aW9uc2hpcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE1hbnlUb09uZShcbiAgdHlwZUZ1bmN0aW9uOiAoKSA9PiBGdW5jdGlvbixcbiAgb3B0aW9uczogTWFueVRvT25lT3B0aW9ucyA9IHt9XG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChfOiBhbnksIGNvbnRleHQ6IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQua2luZCAhPT0gXCJmaWVsZFwiKSByZXR1cm47XG5cbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGN0b3IgPSAodGhpcyBhcyBhbnkpLmNvbnN0cnVjdG9yIGFzIEVudGl0eUNvbnN0cnVjdG9yO1xuICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gY29udGV4dC5uYW1lLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcblxuICAgICAgbGV0IG1ldGFkYXRhID0gbWV0YWRhdGFBcnJheS5maW5kKFxuICAgICAgICAobSkgPT4gbS5wcm9wZXJ0eU5hbWUgPT09IHByb3BlcnR5TmFtZVxuICAgICAgKTtcblxuICAgICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgICAgICBpc0lkOiBmYWxzZSxcblx0XHQgIGlzQ3JlYXRlZEF0OiBmYWxzZSxcblx0XHQgIGlzVXBkYXRlZEF0OiBmYWxzZSxcblx0XHQgIGlzQ3JlYXRlZEJ5OiBmYWxzZSxcblx0XHQgIGlzVXBkYXRlZEJ5OiBmYWxzZSxcbiAgICAgICAgICBpc0dlbmVyYXRlZDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIG1ldGFkYXRhQXJyYXkucHVzaChtZXRhZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIG1ldGFkYXRhLm1hbnlUb09uZU9wdGlvbnMgPSB7IHR5cGU6IHR5cGVGdW5jdGlvbigpLCBvcHRpb25zIH07XG4gICAgfSk7XG4gIH07XG59Il0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTZGQSxNQUFNLGNBQ0gsV0FBbUIsaUNBQ2xCLFdBQW1CLCtCQUErQixvQkFBSSxRQUFRO0FBRWxFLFNBQVMsaUJBQWlCLGFBQTJDO0FBQ25FLE1BQUksQ0FBQyxZQUFZLElBQUksV0FBVyxHQUFHO0FBQ2pDLGdCQUFZLElBQUksYUFBYSxDQUFDLENBQUM7QUFBQSxFQUNqQztBQUNBLFNBQU8sWUFBWSxJQUFJLFdBQVc7QUFDcEM7QUFHQSxTQUFTLE1BQU0sSUFBc0I7QUFFbkMsVUFBUSxRQUFRLEVBQUUsS0FBSyxFQUFFO0FBQzNCO0FBR0EsU0FBUyx3QkFDUCxNQUNBLFNBQ0E7QUFDQSxTQUFPLFNBQVUsR0FBUSxTQUFxQztBQUM1RCxRQUFJLFFBQVEsU0FBUyxTQUFTO0FBQzVCLFlBQU0sSUFBSSxNQUFNLElBQUksSUFBSSx1QkFBdUI7QUFBQSxJQUNqRDtBQUVBLFlBQVEsZUFBZSxXQUFZO0FBQ2pDLFlBQU0sT0FBUSxLQUFhO0FBQzNCLFlBQU0sZUFBZSxRQUFRLEtBQUssU0FBUztBQUMzQyxZQUFNLGdCQUFnQixpQkFBaUIsSUFBSTtBQUUzQyxVQUFJLFdBQVcsY0FBYztBQUFBLFFBQzNCLENBQUMsTUFBTSxFQUFFLGlCQUFpQjtBQUFBLE1BQzVCO0FBRUEsVUFBSSxDQUFDLFVBQVU7QUFDYixtQkFBVztBQUFBLFVBQ1Q7QUFBQSxVQUNBLE1BQU07QUFBQSxVQUNaLGFBQWE7QUFB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
196
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL2RlY29yYXRvcnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogKiBFQ01BU2NyaXB0IDIwMjUtY29tcGxpYW50IE9STSBkZWNvcmF0b3IgaW1wbGVtZW50YXRpb25cbiAqIENvbXBhdGlibGUgd2l0aCBHcmFhbEpTIHJ1bnRpbWUuXG4gKiAqIEZlYXR1cmVzOlxuICogLSBVc2VzIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIgZm9yIHN0YWJsZSBkZWNvcmF0b3IgdGltaW5nXG4gKiAtIFN0b3JlcyBtZXRhZGF0YSBpbiBhIGdsb2JhbCBXZWFrTWFwIGNhY2hlXG4gKiAtIEZpbmFsaXplcyBlbnRpdHkgbWV0YWRhdGEgb25jZSBwZXIgY2xhc3NcbiAqIC0gRGVmZXJzIGZpbmFsaXphdGlvbiB2aWEgbWljcm90YXNrIChQcm9taXNlLnJlc29sdmUoKS50aGVuKVxuICovXG5cbi8vIC0tLSBEZWNvcmF0b3IgQ29udGV4dCBUeXBlcyAoYmFzZWQgb24gRUNNQVNjcmlwdCBEZWNvcmF0b3JzIHByb3Bvc2FsKSAtLS1cbnR5cGUgQ2xhc3NGaWVsZERlY29yYXRvckNvbnRleHQgPSB7XG4gIGtpbmQ6IFwiZmllbGRcIjtcbiAgbmFtZTogc3RyaW5nIHwgc3ltYm9sO1xuICBzdGF0aWM6IGJvb2xlYW47XG4gIHByaXZhdGU6IGJvb2xlYW47XG4gIGFkZEluaXRpYWxpemVyKGZuOiAoKSA9PiB2b2lkKTogdm9pZDtcbn07XG5cbnR5cGUgQ2xhc3NEZWNvcmF0b3JDb250ZXh0ID0ge1xuICBraW5kOiBcImNsYXNzXCI7XG4gIG5hbWU/OiBzdHJpbmcgfCBzeW1ib2w7XG4gIGFkZEluaXRpYWxpemVyKGZuOiAoKSA9PiB2b2lkKTogdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIENvbHVtblR5cGVzID1cbiAgLy8gTnVtZXJpYyB0eXBlc1xuICB8ICdpbnRlZ2VyJyB8ICdsb25nJyB8ICdzaG9ydCcgfCAnYnl0ZScgfCAnZmxvYXQnIHwgJ2RvdWJsZScgfCAnYmlnX2ludGVnZXInIHwgJ2JpZ19kZWNpbWFsJ1xuICAvLyBTdHJpbmcgdHlwZXNcbiAgfCAnc3RyaW5nJyB8ICdjaGFyJyB8ICd0ZXh0JyB8ICduc3RyaW5nJyB8ICdudGV4dCdcbiAgLy8gRGF0ZS9UaW1lIHR5cGVzXG4gIHwgJ2RhdGUnIHwgJ3RpbWUnIHwgJ3RpbWVzdGFtcCcgfCAnY2FsZW5kYXInIHwgJ2NhbGVuZGFyX2RhdGUnIHwgJ2luc3RhbnQnXG4gIC8vIEJvb2xlYW4gdHlwZXNcbiAgfCAnYm9vbGVhbicgfCAndHJ1ZV9mYWxzZScgfCAneWVzX25vJyB8ICdudW1lcmljX2Jvb2xlYW4nIFxuICAvLyBCaW5hcnkgdHlwZXNcbiAgfCAnYmluYXJ5JyB8ICdibG9iJyB8ICdjbG9iJyB8ICdtYXRlcmlhbGl6ZWRfYmxvYicgfCAnbWF0ZXJpYWxpemVkX2Nsb2InXG4gIC8vIE90aGVyIHR5cGVzXG4gIHwgJ3NlcmlhbGl6YWJsZScgfCAnYW55JyB8ICdvYmplY3QnIHwgJ3V1aWQtY2hhcicgfCAndXVpZC1iaW5hcnknIHwgJ2pzb24nIHwgJ2pzb25iJyB8ICd4bWwnO1xuXG4vLyAtLS0gTWV0YWRhdGEgTW9kZWxzIC0tLVxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5PcHRpb25zIHtcbiAgbmFtZT86IHN0cmluZztcbiAgdHlwZT86IENvbHVtblR5cGVzIHwgKHN0cmluZyAmIHt9KTtcbiAgbGVuZ3RoPzogbnVtYmVyO1xuICBudWxsYWJsZT86IGJvb2xlYW47XG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgcHJlY2lzaW9uPzogbnVtYmVyO1xuICBzY2FsZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVUb01hbnlPcHRpb25zIHtcbiAgdGFibGU/OiBzdHJpbmc7XG4gIGpvaW5Db2x1bW46IHN0cmluZztcbiAgY2FzY2FkZT86IFwiYWxsXCIgfCBcIm5vbmVcIiB8IFwicGVyc2lzdFwiIHwgXCJtZXJnZVwiIHwgXCJyZW1vdmVcIjtcbiAgaW52ZXJzZT86IGJvb2xlYW47XG4gIGxhenk/OiBib29sZWFuO1xuICBmZXRjaD86IFwic2VsZWN0XCIgfCBcImpvaW5cIjtcbiAgam9pbkNvbHVtbk5vdE51bGw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hbnlUb09uZU9wdGlvbnMge1xuICBqb2luQ29sdW1uPzogc3RyaW5nO1xuICBjYXNjYWRlPzogXCJhbGxcIiB8IFwibm9uZVwiIHwgXCJwZXJzaXN0XCIgfCBcIm1lcmdlXCIgfCBcInJlbW92ZVwiO1xuICBudWxsYWJsZT86IGJvb2xlYW47XG4gIGxhenk/OiBib29sZWFuO1xuICBmZXRjaD86IFwic2VsZWN0XCIgfCBcImpvaW5cIjtcbn1cblxuaW50ZXJmYWNlIFByb3BlcnR5TWV0YWRhdGEge1xuICBwcm9wZXJ0eU5hbWU6IHN0cmluZztcbiAgaXNJZDogYm9vbGVhbjtcbiAgaXNDcmVhdGVkQXQ6IGJvb2xlYW47XG4gIGlzVXBkYXRlZEF0OiBib29sZWFuO1xuICBpc0NyZWF0ZWRCeTogYm9vbGVhbjtcbiAgaXNVcGRhdGVkQnk6IGJvb2xlYW47XG4gIGlzR2VuZXJhdGVkOiBib29sZWFuO1xuICBkb2N1bWVudGF0aW9uPzogc3RyaW5nO1xuICBjb2x1bW5PcHRpb25zPzogQ29sdW1uT3B0aW9ucztcbiAgb25lVG9NYW55T3B0aW9ucz86IHsgdHlwZTogRnVuY3Rpb247IG9wdGlvbnM6IE9uZVRvTWFueU9wdGlvbnMgfTtcbiAgbWFueVRvT25lT3B0aW9ucz86IHsgdHlwZTogRnVuY3Rpb247IG9wdGlvbnM6IE1hbnlUb09uZU9wdGlvbnMgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlDb25zdHJ1Y3RvciBleHRlbmRzIEZ1bmN0aW9uIHtcbiAgbmV3KC4uLmFyZ3M6IGFueVtdKTogYW55O1xuICAkZW50aXR5X25hbWU6IHN0cmluZztcbiAgJHRhYmxlX25hbWU6IHN0cmluZztcbiAgJGlkX25hbWU6IHN0cmluZztcbiAgJGlkX2NvbHVtbjogc3RyaW5nO1xuICAkaW5pdGlhbGl6ZWQ/OiBib29sZWFuO1xuICAkZG9jdW1lbnRhdGlvbj86IHN0cmluZztcbn1cblxuLy8gLS0tIEdsb2JhbCBNZXRhZGF0YSBDYWNoZSAtLS1cbmNvbnN0IGdsb2JhbENhY2hlOiBXZWFrTWFwPEZ1bmN0aW9uLCBQcm9wZXJ0eU1ldGFkYXRhW10+ID1cbiAgKGdsb2JhbFRoaXMgYXMgYW55KS5fX2RlY29yYXRvcl9tZXRhZGF0YV9jYWNoZV9fIHx8XG4gICgoZ2xvYmFsVGhpcyBhcyBhbnkpLl9fZGVjb3JhdG9yX21ldGFkYXRhX2NhY2hlX18gPSBuZXcgV2Vha01hcCgpKTtcblxuZnVuY3Rpb24gZ2V0TWV0YWRhdGFBcnJheShjb25zdHJ1Y3RvcjogRnVuY3Rpb24pOiBQcm9wZXJ0eU1ldGFkYXRhW10ge1xuICBpZiAoIWdsb2JhbENhY2hlLmhhcyhjb25zdHJ1Y3RvcikpIHtcbiAgICBnbG9iYWxDYWNoZS5zZXQoY29uc3RydWN0b3IsIFtdKTtcbiAgfVxuICByZXR1cm4gZ2xvYmFsQ2FjaGUuZ2V0KGNvbnN0cnVjdG9yKSE7XG59XG5cbi8vIC0tLSBEZWZlciBIZWxwZXIgKEdyYWFsSlMtc2FmZSBtaWNyb3Rhc2spIC0tLVxuZnVuY3Rpb24gZGVmZXIoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgLy8gVXNlcyBQcm9taXNlIG1pY3JvdGFzayBxdWV1ZSBmb3IgZGVmZXJyZWQgZXhlY3V0aW9uXG4gIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZm4pO1xufVxuXG4vLyAtLS0gQ29yZSBQcm9wZXJ0eSBEZWNvcmF0b3IgRmFjdG9yeSAtLS1cbmZ1bmN0aW9uIGNyZWF0ZVByb3BlcnR5RGVjb3JhdG9yKFxuICBraW5kOiBcImNvbHVtblwiIHwgXCJpZFwiIHwgXCJnZW5lcmF0ZWRcIiB8IFwiY3JlYXRlZEF0XCIgfCBcInVwZGF0ZWRBdFwiIHwgXCJjcmVhdGVkQnlcIiB8IFwidXBkYXRlZEJ5XCIsXG4gIG9wdGlvbnM/OiBDb2x1bW5PcHRpb25zXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChfOiBhbnksIGNvbnRleHQ6IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQua2luZCAhPT0gXCJmaWVsZFwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEAke2tpbmR9IG11c3QgYXBwbHkgdG8gZmllbGRzYCk7XG4gICAgfVxuXG4gICAgY29udGV4dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBjdG9yID0gKHRoaXMgYXMgYW55KS5jb25zdHJ1Y3RvciBhcyBFbnRpdHlDb25zdHJ1Y3RvcjtcbiAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IGNvbnRleHQubmFtZS50b1N0cmluZygpO1xuICAgICAgY29uc3QgbWV0YWRhdGFBcnJheSA9IGdldE1ldGFkYXRhQXJyYXkoY3Rvcik7XG5cbiAgICAgIGxldCBtZXRhZGF0YSA9IG1ldGFkYXRhQXJyYXkuZmluZChcbiAgICAgICAgKG0pID0+IG0ucHJvcGVydHlOYW1lID09PSBwcm9wZXJ0eU5hbWVcbiAgICAgICk7XG5cbiAgICAgIGlmICghbWV0YWRhdGEpIHtcbiAgICAgICAgbWV0YWRhdGEgPSB7XG4gICAgICAgICAgcHJvcGVydHlOYW1lOiBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgaXNJZDogZmFsc2UsXG5cdFx0ICBpc0NyZWF0ZWRBdDogZmFsc2UsXG5cdFx0ICBpc1VwZGF0ZWRBdDogZmFsc2UsXG5cdFx0ICBpc0NyZWF0ZWRCeTogZmFsc2UsXG5cdFx0ICBpc1VwZGF0ZWRCeTogZmFsc2UsXG4gICAgICAgICAgaXNHZW5lcmF0ZWQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBtZXRhZGF0YUFycmF5LnB1c2gobWV0YWRhdGEpO1xuICAgICAgfVxuXG4gICAgICBpZiAoa2luZCA9PT0gXCJpZFwiKSBtZXRhZGF0YS5pc0lkID0gdHJ1ZTtcblx0ICBpZiAoa2luZCA9PT0gXCJjcmVhdGVkQXRcIikgbWV0YWRhdGEuaXNDcmVhdGVkQXQgPSB0cnVlO1xuXHQgIGlmIChraW5kID09PSBcInVwZGF0ZWRBdFwiKSBtZXRhZGF0YS5pc1VwZGF0ZWRBdCA9IHRydWU7XG5cdCAgaWYgKGtpbmQgPT09IFwiY3JlYXRlZEJ5XCIpIG1ldGFkYXRhLmlzQ3JlYXRlZEJ5ID0gdHJ1ZTtcblx0ICBpZiAoa2luZCA9PT0gXCJ1cGRhdGVkQnlcIikgbWV0YWRhdGEuaXNVcGRhdGVkQnkgPSB0cnVlO1xuICAgICAgaWYgKGtpbmQgPT09IFwiZ2VuZXJhdGVkXCIpIG1ldGFkYXRhLmlzR2VuZXJhdGVkID0gdHJ1ZTtcbiAgICAgIGlmIChraW5kID09PSBcImNvbHVtblwiKSBtZXRhZGF0YS5jb2x1bW5PcHRpb25zID0gb3B0aW9ucztcbiAgICB9KTtcbiAgfTtcbn1cblxuLy8gLS0tIEBEb2N1bWVudGF0aW9uIERlY29yYXRvciAoRHVhbC1QdXJwb3NlKSAtLS1cbi8qKlxuICogQWRkcyBkb2N1bWVudGF0aW9uIG1ldGFkYXRhIHRvIGEgY2xhc3Mgb3IgYSBmaWVsZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERvY3VtZW50YXRpb24oZGVzY3JpcHRpb246IHN0cmluZykge1xuICByZXR1cm4gZnVuY3Rpb24gKFxuICAgIHZhbHVlOiBGdW5jdGlvbiB8IGFueSxcbiAgICBjb250ZXh0OiBDbGFzc0RlY29yYXRvckNvbnRleHQgfCBDbGFzc0ZpZWxkRGVjb3JhdG9yQ29udGV4dFxuICApIHtcbiAgICBpZiAoY29udGV4dC5raW5kID09PSBcImNsYXNzXCIpIHtcbiAgICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgICAodmFsdWUgYXMgRW50aXR5Q29uc3RydWN0b3IpLiRkb2N1bWVudGF0aW9uID0gZGVzY3JpcHRpb247XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9IGVsc2UgaWYgKGNvbnRleHQua2luZCA9PT0gXCJmaWVsZFwiKSB7XG4gICAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgY3RvciA9ICh0aGlzIGFzIGFueSkuY29uc3RydWN0b3IgYXMgRW50aXR5Q29uc3RydWN0b3I7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IGNvbnRleHQubmFtZS50b1N0cmluZygpO1xuICAgICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcblxuICAgICAgICBsZXQgbWV0YWRhdGEgPSBtZXRhZGF0YUFycmF5LmZpbmQoXG4gICAgICAgICAgKG0pID0+IG0ucHJvcGVydHlOYW1lID09PSBwcm9wZXJ0eU5hbWVcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIW1ldGFkYXRhKSB7XG4gICAgICAgICAgbWV0YWRhdGEgPSB7XG4gICAgICAgICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgICAgICAgIGlzSWQ6IGZhbHNlLFxuXHRcdFx0aXNDcmVhdGVkQXQ6IGZhbHNlLFxuXHRcdFx0aXNVcGRhdGVkQXQ6IGZhbHNlLFxuXHRcdFx0aXNDcmVhdGVkQnk6IGZhbHNlLFxuXHRcdFx0aXNVcGRhdGVkQnk6IGZhbHNlLFxuICAgICAgICAgICAgaXNHZW5lcmF0ZWQ6IGZhbHNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgbWV0YWRhdGFBcnJheS5wdXNoKG1ldGFkYXRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG1ldGFkYXRhLmRvY3VtZW50YXRpb24gPSBkZXNjcmlwdGlvbjtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cblxuXG4vLyAtLS0gQEVudGl0eSBEZWNvcmF0b3IgLS0tXG4vKipcbiAqIE1hcmtzIGEgY2xhc3MgYXMgYW4gZW50aXR5IGFuZCBpbml0aWF0ZXMgbWV0YWRhdGEgZmluYWxpemF0aW9uLlxuICogQHBhcmFtIGVudGl0eU5hbWUgVGhlIG5hbWUgb2YgdGhlIGVudGl0eSAoZGVmYXVsdHMgdG8gY2xhc3MgbmFtZSkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFbnRpdHkoZW50aXR5TmFtZT86IHN0cmluZykge1xuICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlOiBGdW5jdGlvbiwgY29udGV4dDogQ2xhc3NEZWNvcmF0b3JDb250ZXh0KSB7XG4gICAgY29udGV4dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBEZWZlciBleGVjdXRpb24gdG8gZW5zdXJlIGFsbCBmaWVsZCBkZWNvcmF0b3JzIGhhdmUgcnVuXG4gICAgICBkZWZlcigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGN0b3IgPSB2YWx1ZSBhcyBFbnRpdHlDb25zdHJ1Y3RvcjtcblxuICAgICAgICAvLyBQcmV2ZW50IGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gKGlkZW1wb3RlbmN5KVxuICAgICAgICBpZiAoY3Rvci4kaW5pdGlhbGl6ZWQpIHJldHVybjtcbiAgICAgICAgY3Rvci4kaW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgICAgIGN0b3IuJGVudGl0eV9uYW1lID0gZW50aXR5TmFtZSB8fCBjdG9yLm5hbWU7XG5cbiAgICAgICAgY29uc3QgbWV0YWRhdGFBcnJheSA9IGdldE1ldGFkYXRhQXJyYXkoY3Rvcik7XG4gICAgICAgIGNvbnN0IGlkTWV0YWRhdGEgPSBtZXRhZGF0YUFycmF5LmZpbmQoKG0pID0+IG0uaXNJZCk7XG5cbiAgICAgICAgaWYgKGlkTWV0YWRhdGEpIHtcbiAgICAgICAgICBjdG9yLiRpZF9uYW1lID0gaWRNZXRhZGF0YS5wcm9wZXJ0eU5hbWU7XG4gICAgICAgICAgLy8gRGV0ZXJtaW5lIElEIGNvbHVtbiBuYW1lOiB1c2UgZXhwbGljaXQgbmFtZSBvciBjb252ZXJ0IHByb3BlcnR5IG5hbWUgdG8gdXBwZXIgY2FzZVxuICAgICAgICAgIGN0b3IuJGlkX2NvbHVtbiA9XG4gICAgICAgICAgICBpZE1ldGFkYXRhLmNvbHVtbk9wdGlvbnM/Lm5hbWUgfHxcbiAgICAgICAgICAgIGlkTWV0YWRhdGEucHJvcGVydHlOYW1lLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGdXR1cmU6IExvZ2ljIHRvIG1hcCBhbGwgcHJvcGVydGllcyB0byBjb2x1bW5zL3JlbGF0aW9ucyBnb2VzIGhlcmVcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xufVxuXG4vLyAtLS0gQFRhYmxlIERlY29yYXRvciAtLS1cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBkYXRhYmFzZSB0YWJsZSBuYW1lIGZvciB0aGUgZW50aXR5LlxuICogQHBhcmFtIHRhYmxlTmFtZSBUaGUgdGFibGUgbmFtZSAoZGVmYXVsdHMgdG8gdXBwZXJjYXNlIGNsYXNzIG5hbWUpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gVGFibGUodGFibGVOYW1lPzogc3RyaW5nKSB7XG4gIHJldHVybiBmdW5jdGlvbiA8VCBleHRlbmRzIGFic3RyYWN0IG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueT4oXG4gICAgdmFsdWU6IFQsXG4gICAgY29udGV4dDogQ2xhc3NEZWNvcmF0b3JDb250ZXh0XG4gICkge1xuICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gdmFsdWUgYXMgYW55O1xuICAgICAgdGFyZ2V0LiR0YWJsZV9uYW1lID0gdGFibGVOYW1lIHx8IGNvbnRleHQubmFtZT8udG9TdHJpbmcoKSB8fCB2YWx1ZS5uYW1lLnRvVXBwZXJDYXNlKCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH07XG59XG5cbi8vIC0tLSBFeHBvcnRlZCBQcm9wZXJ0eSBEZWNvcmF0b3JzIC0tLVxuLyoqXG4gKiBNYXJrcyBhIHByb3BlcnR5IGFzIGEgc3RhbmRhcmQgZGF0YWJhc2UgY29sdW1uLlxuICovXG5leHBvcnQgY29uc3QgQ29sdW1uID0gKG9wdGlvbnM/OiBDb2x1bW5PcHRpb25zKSA9PlxuICBjcmVhdGVQcm9wZXJ0eURlY29yYXRvcihcImNvbHVtblwiLCBvcHRpb25zKTtcblxuLyoqXG4gKiBNYXJrcyBhIHByb3BlcnR5IGFzIHRoZSBlbnRpdHkncyBwcmltYXJ5IGtleS5cbiAqL1xuZXhwb3J0IGNvbnN0IElkID0gKCkgPT4gY3JlYXRlUHJvcGVydHlEZWNvcmF0b3IoXCJpZFwiKTtcblxuLyoqXG4gKiBNYXJrcyBhIHByb3BlcnR5IGFzIHRoZSBlbnRpdHkncyBjcmVhdGVkIGF0IHRpbWVzdGFtcC5cbiAqL1xuZXhwb3J0IGNvbnN0IENyZWF0ZWRBdCA9ICgpID0+IGNyZWF0ZVByb3BlcnR5RGVjb3JhdG9yKFwiY3JlYXRlZEF0XCIpO1xuXG4vKipcbiAqIE1hcmtzIGEgcHJvcGVydHkgYXMgdGhlIGVudGl0eSdzIHVwZGF0ZSBhdCB0aW1lc3RhbXAuXG4gKi9cbmV4cG9ydCBjb25zdCBVcGRhdGVkQXQgPSAoKSA9PiBjcmVhdGVQcm9wZXJ0eURlY29yYXRvcihcInVwZGF0ZWRBdFwiKTtcblxuLyoqXG4gKiBNYXJrcyBhIHByb3BlcnR5IGFzIHRoZSBlbnRpdHkncyBjcmVhdGlvbiBhY3Rvci5cbiAqL1xuZXhwb3J0IGNvbnN0IENyZWF0ZWRCeSA9ICgpID0+IGNyZWF0ZVByb3BlcnR5RGVjb3JhdG9yKFwiY3JlYXRlZEJ5XCIpO1xuXG4vKipcbiAqIE1hcmtzIGEgcHJvcGVydHkgYXMgdGhlIGVudGl0eSdzIHVwZGF0ZSBhY3Rvci5cbiAqL1xuZXhwb3J0IGNvbnN0IFVwZGF0ZWRCeSA9ICgpID0+IGNyZWF0ZVByb3BlcnR5RGVjb3JhdG9yKFwidXBkYXRlZEJ5XCIpO1xuXG4vKipcbiAqIE1hcmtzIGEgcHJvcGVydHkgYXMgYSBnZW5lcmF0ZWQgdmFsdWUgKGUuZy4sIGF1dG8taW5jcmVtZW50KS5cbiAqIEBwYXJhbSBzdHJhdGVneSBUaGUgZ2VuZXJhdGlvbiBzdHJhdGVneSAoZS5nLiwgXCJJREVOVElUWVwiKS4gUGFyYW1ldGVyIGlzIGN1cnJlbnRseSB1bnVzZWQgaW4gbG9naWMuXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5lcmF0ZWQgPSAoc3RyYXRlZ3k6IHN0cmluZykgPT5cbiAgY3JlYXRlUHJvcGVydHlEZWNvcmF0b3IoXCJnZW5lcmF0ZWRcIik7XG5cbi8qKlxuICogRGVmaW5lcyBhIG9uZS10by1tYW55IHJlbGF0aW9uc2hpcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE9uZVRvTWFueShcbiAgdHlwZUZ1bmN0aW9uOiAoKSA9PiBGdW5jdGlvbixcbiAgb3B0aW9uczogT25lVG9NYW55T3B0aW9uc1xuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoXzogYW55LCBjb250ZXh0OiBDbGFzc0ZpZWxkRGVjb3JhdG9yQ29udGV4dCkge1xuICAgIGlmIChjb250ZXh0LmtpbmQgIT09IFwiZmllbGRcIikgcmV0dXJuO1xuXG4gICAgY29udGV4dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBjdG9yID0gKHRoaXMgYXMgYW55KS5jb25zdHJ1Y3RvciBhcyBFbnRpdHlDb25zdHJ1Y3RvcjtcbiAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IGNvbnRleHQubmFtZS50b1N0cmluZygpO1xuICAgICAgY29uc3QgbWV0YWRhdGFBcnJheSA9IGdldE1ldGFkYXRhQXJyYXkoY3Rvcik7XG5cbiAgICAgIGxldCBtZXRhZGF0YSA9IG1ldGFkYXRhQXJyYXkuZmluZChcbiAgICAgICAgKG0pID0+IG0ucHJvcGVydHlOYW1lID09PSBwcm9wZXJ0eU5hbWVcbiAgICAgICk7XG5cbiAgICAgIGlmICghbWV0YWRhdGEpIHtcbiAgICAgICAgbWV0YWRhdGEgPSB7XG4gICAgICAgICAgcHJvcGVydHlOYW1lOiBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgaXNJZDogZmFsc2UsXG5cdFx0ICBpc0NyZWF0ZWRBdDogZmFsc2UsXG5cdFx0ICBpc1VwZGF0ZWRBdDogZmFsc2UsXG5cdFx0ICBpc0NyZWF0ZWRCeTogZmFsc2UsXG5cdFx0ICBpc1VwZGF0ZWRCeTogZmFsc2UsXG4gICAgICAgICAgaXNHZW5lcmF0ZWQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBtZXRhZGF0YUFycmF5LnB1c2gobWV0YWRhdGEpO1xuICAgICAgfVxuXG4gICAgICBtZXRhZGF0YS5vbmVUb01hbnlPcHRpb25zID0geyB0eXBlOiB0eXBlRnVuY3Rpb24oKSwgb3B0aW9ucyB9O1xuICAgIH0pO1xuICB9O1xufVxuXG4vKipcbiAqIERlZmluZXMgYSBtYW55LXRvLW9uZSByZWxhdGlvbnNoaXAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBNYW55VG9PbmUoXG4gIHR5cGVGdW5jdGlvbjogKCkgPT4gRnVuY3Rpb24sXG4gIG9wdGlvbnM6IE1hbnlUb09uZU9wdGlvbnMgPSB7fVxuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoXzogYW55LCBjb250ZXh0OiBDbGFzc0ZpZWxkRGVjb3JhdG9yQ29udGV4dCkge1xuICAgIGlmIChjb250ZXh0LmtpbmQgIT09IFwiZmllbGRcIikgcmV0dXJuO1xuXG4gICAgY29udGV4dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBjdG9yID0gKHRoaXMgYXMgYW55KS5jb25zdHJ1Y3RvciBhcyBFbnRpdHlDb25zdHJ1Y3RvcjtcbiAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IGNvbnRleHQubmFtZS50b1N0cmluZygpO1xuICAgICAgY29uc3QgbWV0YWRhdGFBcnJheSA9IGdldE1ldGFkYXRhQXJyYXkoY3Rvcik7XG5cbiAgICAgIGxldCBtZXRhZGF0YSA9IG1ldGFkYXRhQXJyYXkuZmluZChcbiAgICAgICAgKG0pID0+IG0ucHJvcGVydHlOYW1lID09PSBwcm9wZXJ0eU5hbWVcbiAgICAgICk7XG5cbiAgICAgIGlmICghbWV0YWRhdGEpIHtcbiAgICAgICAgbWV0YWRhdGEgPSB7XG4gICAgICAgICAgcHJvcGVydHlOYW1lOiBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgaXNJZDogZmFsc2UsXG5cdFx0ICBpc0NyZWF0ZWRBdDogZmFsc2UsXG5cdFx0ICBpc1VwZGF0ZWRBdDogZmFsc2UsXG5cdFx0ICBpc0NyZWF0ZWRCeTogZmFsc2UsXG5cdFx0ICBpc1VwZGF0ZWRCeTogZmFsc2UsXG4gICAgICAgICAgaXNHZW5lcmF0ZWQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBtZXRhZGF0YUFycmF5LnB1c2gobWV0YWRhdGEpO1xuICAgICAgfVxuXG4gICAgICBtZXRhZGF0YS5tYW55VG9PbmVPcHRpb25zID0geyB0eXBlOiB0eXBlRnVuY3Rpb24oKSwgb3B0aW9ucyB9O1xuICAgIH0pO1xuICB9O1xufSJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE2RkEsTUFBTSxjQUNILFdBQW1CLGlDQUNsQixXQUFtQiwrQkFBK0Isb0JBQUksUUFBUTtBQUVsRSxTQUFTLGlCQUFpQixhQUEyQztBQUNuRSxNQUFJLENBQUMsWUFBWSxJQUFJLFdBQVcsR0FBRztBQUNqQyxnQkFBWSxJQUFJLGFBQWEsQ0FBQyxDQUFDO0FBQUEsRUFDakM7QUFDQSxTQUFPLFlBQVksSUFBSSxXQUFXO0FBQ3BDO0FBR0EsU0FBUyxNQUFNLElBQXNCO0FBRW5DLFVBQVEsUUFBUSxFQUFFLEtBQUssRUFBRTtBQUMzQjtBQUdBLFNBQVMsd0JBQ1AsTUFDQSxTQUNBO0FBQ0EsU0FBTyxTQUFVLEdBQVEsU0FBcUM7QUFDNUQsUUFBSSxRQUFRLFNBQVMsU0FBUztBQUM1QixZQUFNLElBQUksTUFBTSxJQUFJLElBQUksdUJBQXVCO0FBQUEsSUFDakQ7QUFFQSxZQUFRLGVBQWUsV0FBWTtBQUNqQyxZQUFNLE9BQVEsS0FBYTtBQUMzQixZQUFNLGVBQWUsUUFBUSxLQUFLLFNBQVM7QUFDM0MsWUFBTSxnQkFBZ0IsaUJBQWlCLElBQUk7QUFFM0MsVUFBSSxXQUFXLGNBQWM7QUFBQSxRQUMzQixDQUFDLE1BQU0sRUFBRSxpQkFBaUI7QUFBQSxNQUM1QjtBQUVBLFVBQUksQ0FBQyxVQUFVO0FBQ2IsbUJBQVc7QUFBQSxVQUNUO0FBQUEsVUFDQSxN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
@@ -67,7 +67,7 @@ export declare function Entity(entityName?: string): (value: Function, context:
67
67
  * Specifies the database table name for the entity.
68
68
  * @param tableName The table name (defaults to uppercase class name).
69
69
  */
70
- export declare function Table(tableName?: string): <T extends EntityConstructor>(value: T, context: ClassDecoratorContext) => T;
70
+ export declare function Table(tableName?: string): <T extends abstract new (...args: any[]) => any>(value: T, context: ClassDecoratorContext) => T;
71
71
  /**
72
72
  * Marks a property as a standard database column.
73
73
  */
@@ -95,7 +95,8 @@ function Entity(entityName) {
95
95
  function Table(tableName) {
96
96
  return function(value, context) {
97
97
  context.addInitializer(function() {
98
- value.$table_name = tableName || (context.name?.toString() ?? value.name.toUpperCase());
98
+ const target = value;
99
+ target.$table_name = tableName || context.name?.toString() || value.name.toUpperCase();
99
100
  });
100
101
  return value;
101
102
  };
@@ -173,4 +174,4 @@ export {
173
174
  UpdatedAt,
174
175
  UpdatedBy
175
176
  };
176
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL2RlY29yYXRvcnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogKiBFQ01BU2NyaXB0IDIwMjUtY29tcGxpYW50IE9STSBkZWNvcmF0b3IgaW1wbGVtZW50YXRpb25cbiAqIENvbXBhdGlibGUgd2l0aCBHcmFhbEpTIHJ1bnRpbWUuXG4gKiAqIEZlYXR1cmVzOlxuICogLSBVc2VzIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIgZm9yIHN0YWJsZSBkZWNvcmF0b3IgdGltaW5nXG4gKiAtIFN0b3JlcyBtZXRhZGF0YSBpbiBhIGdsb2JhbCBXZWFrTWFwIGNhY2hlXG4gKiAtIEZpbmFsaXplcyBlbnRpdHkgbWV0YWRhdGEgb25jZSBwZXIgY2xhc3NcbiAqIC0gRGVmZXJzIGZpbmFsaXphdGlvbiB2aWEgbWljcm90YXNrIChQcm9taXNlLnJlc29sdmUoKS50aGVuKVxuICovXG5cbi8vIC0tLSBEZWNvcmF0b3IgQ29udGV4dCBUeXBlcyAoYmFzZWQgb24gRUNNQVNjcmlwdCBEZWNvcmF0b3JzIHByb3Bvc2FsKSAtLS1cbnR5cGUgQ2xhc3NGaWVsZERlY29yYXRvckNvbnRleHQgPSB7XG4gIGtpbmQ6IFwiZmllbGRcIjtcbiAgbmFtZTogc3RyaW5nIHwgc3ltYm9sO1xuICBzdGF0aWM6IGJvb2xlYW47XG4gIHByaXZhdGU6IGJvb2xlYW47XG4gIGFkZEluaXRpYWxpemVyKGZuOiAoKSA9PiB2b2lkKTogdm9pZDtcbn07XG5cbnR5cGUgQ2xhc3NEZWNvcmF0b3JDb250ZXh0ID0ge1xuICBraW5kOiBcImNsYXNzXCI7XG4gIG5hbWU/OiBzdHJpbmcgfCBzeW1ib2w7XG4gIGFkZEluaXRpYWxpemVyKGZuOiAoKSA9PiB2b2lkKTogdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIENvbHVtblR5cGVzID1cbiAgLy8gTnVtZXJpYyB0eXBlc1xuICB8ICdpbnRlZ2VyJyB8ICdsb25nJyB8ICdzaG9ydCcgfCAnYnl0ZScgfCAnZmxvYXQnIHwgJ2RvdWJsZScgfCAnYmlnX2ludGVnZXInIHwgJ2JpZ19kZWNpbWFsJ1xuICAvLyBTdHJpbmcgdHlwZXNcbiAgfCAnc3RyaW5nJyB8ICdjaGFyJyB8ICd0ZXh0JyB8ICduc3RyaW5nJyB8ICdudGV4dCdcbiAgLy8gRGF0ZS9UaW1lIHR5cGVzXG4gIHwgJ2RhdGUnIHwgJ3RpbWUnIHwgJ3RpbWVzdGFtcCcgfCAnY2FsZW5kYXInIHwgJ2NhbGVuZGFyX2RhdGUnIHwgJ2luc3RhbnQnXG4gIC8vIEJvb2xlYW4gdHlwZXNcbiAgfCAnYm9vbGVhbicgfCAndHJ1ZV9mYWxzZScgfCAneWVzX25vJyB8ICdudW1lcmljX2Jvb2xlYW4nIFxuICAvLyBCaW5hcnkgdHlwZXNcbiAgfCAnYmluYXJ5JyB8ICdibG9iJyB8ICdjbG9iJyB8ICdtYXRlcmlhbGl6ZWRfYmxvYicgfCAnbWF0ZXJpYWxpemVkX2Nsb2InXG4gIC8vIE90aGVyIHR5cGVzXG4gIHwgJ3NlcmlhbGl6YWJsZScgfCAnYW55JyB8ICdvYmplY3QnIHwgJ3V1aWQtY2hhcicgfCAndXVpZC1iaW5hcnknIHwgJ2pzb24nIHwgJ2pzb25iJyB8ICd4bWwnO1xuXG4vLyAtLS0gTWV0YWRhdGEgTW9kZWxzIC0tLVxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5PcHRpb25zIHtcbiAgbmFtZT86IHN0cmluZztcbiAgdHlwZT86IENvbHVtblR5cGVzIHwgKHN0cmluZyAmIHt9KTtcbiAgbGVuZ3RoPzogbnVtYmVyO1xuICBudWxsYWJsZT86IGJvb2xlYW47XG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgcHJlY2lzaW9uPzogbnVtYmVyO1xuICBzY2FsZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVUb01hbnlPcHRpb25zIHtcbiAgdGFibGU/OiBzdHJpbmc7XG4gIGpvaW5Db2x1bW46IHN0cmluZztcbiAgY2FzY2FkZT86IFwiYWxsXCIgfCBcIm5vbmVcIiB8IFwicGVyc2lzdFwiIHwgXCJtZXJnZVwiIHwgXCJyZW1vdmVcIjtcbiAgaW52ZXJzZT86IGJvb2xlYW47XG4gIGxhenk/OiBib29sZWFuO1xuICBmZXRjaD86IFwic2VsZWN0XCIgfCBcImpvaW5cIjtcbiAgam9pbkNvbHVtbk5vdE51bGw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hbnlUb09uZU9wdGlvbnMge1xuICBqb2luQ29sdW1uPzogc3RyaW5nO1xuICBjYXNjYWRlPzogXCJhbGxcIiB8IFwibm9uZVwiIHwgXCJwZXJzaXN0XCIgfCBcIm1lcmdlXCIgfCBcInJlbW92ZVwiO1xuICBudWxsYWJsZT86IGJvb2xlYW47XG4gIGxhenk/OiBib29sZWFuO1xuICBmZXRjaD86IFwic2VsZWN0XCIgfCBcImpvaW5cIjtcbn1cblxuaW50ZXJmYWNlIFByb3BlcnR5TWV0YWRhdGEge1xuICBwcm9wZXJ0eU5hbWU6IHN0cmluZztcbiAgaXNJZDogYm9vbGVhbjtcbiAgaXNDcmVhdGVkQXQ6IGJvb2xlYW47XG4gIGlzVXBkYXRlZEF0OiBib29sZWFuO1xuICBpc0NyZWF0ZWRCeTogYm9vbGVhbjtcbiAgaXNVcGRhdGVkQnk6IGJvb2xlYW47XG4gIGlzR2VuZXJhdGVkOiBib29sZWFuO1xuICBkb2N1bWVudGF0aW9uPzogc3RyaW5nO1xuICBjb2x1bW5PcHRpb25zPzogQ29sdW1uT3B0aW9ucztcbiAgb25lVG9NYW55T3B0aW9ucz86IHsgdHlwZTogRnVuY3Rpb247IG9wdGlvbnM6IE9uZVRvTWFueU9wdGlvbnMgfTtcbiAgbWFueVRvT25lT3B0aW9ucz86IHsgdHlwZTogRnVuY3Rpb247IG9wdGlvbnM6IE1hbnlUb09uZU9wdGlvbnMgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlDb25zdHJ1Y3RvciBleHRlbmRzIEZ1bmN0aW9uIHtcbiAgbmV3KC4uLmFyZ3M6IGFueVtdKTogYW55O1xuICAkZW50aXR5X25hbWU6IHN0cmluZztcbiAgJHRhYmxlX25hbWU6IHN0cmluZztcbiAgJGlkX25hbWU6IHN0cmluZztcbiAgJGlkX2NvbHVtbjogc3RyaW5nO1xuICAkaW5pdGlhbGl6ZWQ/OiBib29sZWFuO1xuICAkZG9jdW1lbnRhdGlvbj86IHN0cmluZztcbn1cblxuLy8gLS0tIEdsb2JhbCBNZXRhZGF0YSBDYWNoZSAtLS1cbmNvbnN0IGdsb2JhbENhY2hlOiBXZWFrTWFwPEZ1bmN0aW9uLCBQcm9wZXJ0eU1ldGFkYXRhW10+ID1cbiAgKGdsb2JhbFRoaXMgYXMgYW55KS5fX2RlY29yYXRvcl9tZXRhZGF0YV9jYWNoZV9fIHx8XG4gICgoZ2xvYmFsVGhpcyBhcyBhbnkpLl9fZGVjb3JhdG9yX21ldGFkYXRhX2NhY2hlX18gPSBuZXcgV2Vha01hcCgpKTtcblxuZnVuY3Rpb24gZ2V0TWV0YWRhdGFBcnJheShjb25zdHJ1Y3RvcjogRnVuY3Rpb24pOiBQcm9wZXJ0eU1ldGFkYXRhW10ge1xuICBpZiAoIWdsb2JhbENhY2hlLmhhcyhjb25zdHJ1Y3RvcikpIHtcbiAgICBnbG9iYWxDYWNoZS5zZXQoY29uc3RydWN0b3IsIFtdKTtcbiAgfVxuICByZXR1cm4gZ2xvYmFsQ2FjaGUuZ2V0KGNvbnN0cnVjdG9yKSE7XG59XG5cbi8vIC0tLSBEZWZlciBIZWxwZXIgKEdyYWFsSlMtc2FmZSBtaWNyb3Rhc2spIC0tLVxuZnVuY3Rpb24gZGVmZXIoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgLy8gVXNlcyBQcm9taXNlIG1pY3JvdGFzayBxdWV1ZSBmb3IgZGVmZXJyZWQgZXhlY3V0aW9uXG4gIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZm4pO1xufVxuXG4vLyAtLS0gQ29yZSBQcm9wZXJ0eSBEZWNvcmF0b3IgRmFjdG9yeSAtLS1cbmZ1bmN0aW9uIGNyZWF0ZVByb3BlcnR5RGVjb3JhdG9yKFxuICBraW5kOiBcImNvbHVtblwiIHwgXCJpZFwiIHwgXCJnZW5lcmF0ZWRcIiB8IFwiY3JlYXRlZEF0XCIgfCBcInVwZGF0ZWRBdFwiIHwgXCJjcmVhdGVkQnlcIiB8IFwidXBkYXRlZEJ5XCIsXG4gIG9wdGlvbnM/OiBDb2x1bW5PcHRpb25zXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChfOiBhbnksIGNvbnRleHQ6IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQua2luZCAhPT0gXCJmaWVsZFwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEAke2tpbmR9IG11c3QgYXBwbHkgdG8gZmllbGRzYCk7XG4gICAgfVxuXG4gICAgY29udGV4dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBjdG9yID0gKHRoaXMgYXMgYW55KS5jb25zdHJ1Y3RvciBhcyBFbnRpdHlDb25zdHJ1Y3RvcjtcbiAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IGNvbnRleHQubmFtZS50b1N0cmluZygpO1xuICAgICAgY29uc3QgbWV0YWRhdGFBcnJheSA9IGdldE1ldGFkYXRhQXJyYXkoY3Rvcik7XG5cbiAgICAgIGxldCBtZXRhZGF0YSA9IG1ldGFkYXRhQXJyYXkuZmluZChcbiAgICAgICAgKG0pID0+IG0ucHJvcGVydHlOYW1lID09PSBwcm9wZXJ0eU5hbWVcbiAgICAgICk7XG5cbiAgICAgIGlmICghbWV0YWRhdGEpIHtcbiAgICAgICAgbWV0YWRhdGEgPSB7XG4gICAgICAgICAgcHJvcGVydHlOYW1lOiBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgaXNJZDogZmFsc2UsXG5cdFx0ICBpc0NyZWF0ZWRBdDogZmFsc2UsXG5cdFx0ICBpc1VwZGF0ZWRBdDogZmFsc2UsXG5cdFx0ICBpc0NyZWF0ZWRCeTogZmFsc2UsXG5cdFx0ICBpc1VwZGF0ZWRCeTogZmFsc2UsXG4gICAgICAgICAgaXNHZW5lcmF0ZWQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBtZXRhZGF0YUFycmF5LnB1c2gobWV0YWRhdGEpO1xuICAgICAgfVxuXG4gICAgICBpZiAoa2luZCA9PT0gXCJpZFwiKSBtZXRhZGF0YS5pc0lkID0gdHJ1ZTtcblx0ICBpZiAoa2luZCA9PT0gXCJjcmVhdGVkQXRcIikgbWV0YWRhdGEuaXNDcmVhdGVkQXQgPSB0cnVlO1xuXHQgIGlmIChraW5kID09PSBcInVwZGF0ZWRBdFwiKSBtZXRhZGF0YS5pc1VwZGF0ZWRBdCA9IHRydWU7XG5cdCAgaWYgKGtpbmQgPT09IFwiY3JlYXRlZEJ5XCIpIG1ldGFkYXRhLmlzQ3JlYXRlZEJ5ID0gdHJ1ZTtcblx0ICBpZiAoa2luZCA9PT0gXCJ1cGRhdGVkQnlcIikgbWV0YWRhdGEuaXNVcGRhdGVkQnkgPSB0cnVlO1xuICAgICAgaWYgKGtpbmQgPT09IFwiZ2VuZXJhdGVkXCIpIG1ldGFkYXRhLmlzR2VuZXJhdGVkID0gdHJ1ZTtcbiAgICAgIGlmIChraW5kID09PSBcImNvbHVtblwiKSBtZXRhZGF0YS5jb2x1bW5PcHRpb25zID0gb3B0aW9ucztcbiAgICB9KTtcbiAgfTtcbn1cblxuLy8gLS0tIEBEb2N1bWVudGF0aW9uIERlY29yYXRvciAoRHVhbC1QdXJwb3NlKSAtLS1cbi8qKlxuICogQWRkcyBkb2N1bWVudGF0aW9uIG1ldGFkYXRhIHRvIGEgY2xhc3Mgb3IgYSBmaWVsZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERvY3VtZW50YXRpb24oZGVzY3JpcHRpb246IHN0cmluZykge1xuICByZXR1cm4gZnVuY3Rpb24gKFxuICAgIHZhbHVlOiBGdW5jdGlvbiB8IGFueSxcbiAgICBjb250ZXh0OiBDbGFzc0RlY29yYXRvckNvbnRleHQgfCBDbGFzc0ZpZWxkRGVjb3JhdG9yQ29udGV4dFxuICApIHtcbiAgICBpZiAoY29udGV4dC5raW5kID09PSBcImNsYXNzXCIpIHtcbiAgICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgICAodmFsdWUgYXMgRW50aXR5Q29uc3RydWN0b3IpLiRkb2N1bWVudGF0aW9uID0gZGVzY3JpcHRpb247XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9IGVsc2UgaWYgKGNvbnRleHQua2luZCA9PT0gXCJmaWVsZFwiKSB7XG4gICAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgY3RvciA9ICh0aGlzIGFzIGFueSkuY29uc3RydWN0b3IgYXMgRW50aXR5Q29uc3RydWN0b3I7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IGNvbnRleHQubmFtZS50b1N0cmluZygpO1xuICAgICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcblxuICAgICAgICBsZXQgbWV0YWRhdGEgPSBtZXRhZGF0YUFycmF5LmZpbmQoXG4gICAgICAgICAgKG0pID0+IG0ucHJvcGVydHlOYW1lID09PSBwcm9wZXJ0eU5hbWVcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIW1ldGFkYXRhKSB7XG4gICAgICAgICAgbWV0YWRhdGEgPSB7XG4gICAgICAgICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgICAgICAgIGlzSWQ6IGZhbHNlLFxuXHRcdFx0aXNDcmVhdGVkQXQ6IGZhbHNlLFxuXHRcdFx0aXNVcGRhdGVkQXQ6IGZhbHNlLFxuXHRcdFx0aXNDcmVhdGVkQnk6IGZhbHNlLFxuXHRcdFx0aXNVcGRhdGVkQnk6IGZhbHNlLFxuICAgICAgICAgICAgaXNHZW5lcmF0ZWQ6IGZhbHNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgbWV0YWRhdGFBcnJheS5wdXNoKG1ldGFkYXRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG1ldGFkYXRhLmRvY3VtZW50YXRpb24gPSBkZXNjcmlwdGlvbjtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cblxuXG4vLyAtLS0gQEVudGl0eSBEZWNvcmF0b3IgLS0tXG4vKipcbiAqIE1hcmtzIGEgY2xhc3MgYXMgYW4gZW50aXR5IGFuZCBpbml0aWF0ZXMgbWV0YWRhdGEgZmluYWxpemF0aW9uLlxuICogQHBhcmFtIGVudGl0eU5hbWUgVGhlIG5hbWUgb2YgdGhlIGVudGl0eSAoZGVmYXVsdHMgdG8gY2xhc3MgbmFtZSkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFbnRpdHkoZW50aXR5TmFtZT86IHN0cmluZykge1xuICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlOiBGdW5jdGlvbiwgY29udGV4dDogQ2xhc3NEZWNvcmF0b3JDb250ZXh0KSB7XG4gICAgY29udGV4dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBEZWZlciBleGVjdXRpb24gdG8gZW5zdXJlIGFsbCBmaWVsZCBkZWNvcmF0b3JzIGhhdmUgcnVuXG4gICAgICBkZWZlcigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGN0b3IgPSB2YWx1ZSBhcyBFbnRpdHlDb25zdHJ1Y3RvcjtcblxuICAgICAgICAvLyBQcmV2ZW50IGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gKGlkZW1wb3RlbmN5KVxuICAgICAgICBpZiAoY3Rvci4kaW5pdGlhbGl6ZWQpIHJldHVybjtcbiAgICAgICAgY3Rvci4kaW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgICAgIGN0b3IuJGVudGl0eV9uYW1lID0gZW50aXR5TmFtZSB8fCBjdG9yLm5hbWU7XG5cbiAgICAgICAgY29uc3QgbWV0YWRhdGFBcnJheSA9IGdldE1ldGFkYXRhQXJyYXkoY3Rvcik7XG4gICAgICAgIGNvbnN0IGlkTWV0YWRhdGEgPSBtZXRhZGF0YUFycmF5LmZpbmQoKG0pID0+IG0uaXNJZCk7XG5cbiAgICAgICAgaWYgKGlkTWV0YWRhdGEpIHtcbiAgICAgICAgICBjdG9yLiRpZF9uYW1lID0gaWRNZXRhZGF0YS5wcm9wZXJ0eU5hbWU7XG4gICAgICAgICAgLy8gRGV0ZXJtaW5lIElEIGNvbHVtbiBuYW1lOiB1c2UgZXhwbGljaXQgbmFtZSBvciBjb252ZXJ0IHByb3BlcnR5IG5hbWUgdG8gdXBwZXIgY2FzZVxuICAgICAgICAgIGN0b3IuJGlkX2NvbHVtbiA9XG4gICAgICAgICAgICBpZE1ldGFkYXRhLmNvbHVtbk9wdGlvbnM/Lm5hbWUgfHxcbiAgICAgICAgICAgIGlkTWV0YWRhdGEucHJvcGVydHlOYW1lLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGdXR1cmU6IExvZ2ljIHRvIG1hcCBhbGwgcHJvcGVydGllcyB0byBjb2x1bW5zL3JlbGF0aW9ucyBnb2VzIGhlcmVcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xufVxuXG4vLyAtLS0gQFRhYmxlIERlY29yYXRvciAtLS1cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBkYXRhYmFzZSB0YWJsZSBuYW1lIGZvciB0aGUgZW50aXR5LlxuICogQHBhcmFtIHRhYmxlTmFtZSBUaGUgdGFibGUgbmFtZSAoZGVmYXVsdHMgdG8gdXBwZXJjYXNlIGNsYXNzIG5hbWUpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gVGFibGUodGFibGVOYW1lPzogc3RyaW5nKSB7XG4gIHJldHVybiBmdW5jdGlvbiA8VCBleHRlbmRzIEVudGl0eUNvbnN0cnVjdG9yPihcbiAgICB2YWx1ZTogVCxcbiAgICBjb250ZXh0OiBDbGFzc0RlY29yYXRvckNvbnRleHRcbiAgKSB7XG4gICAgY29udGV4dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbiAoKSB7XG4gICAgICAodmFsdWUgYXMgRW50aXR5Q29uc3RydWN0b3IpLiR0YWJsZV9uYW1lID1cbiAgICAgICAgdGFibGVOYW1lIHx8IChjb250ZXh0Lm5hbWU/LnRvU3RyaW5nKCkgPz8gdmFsdWUubmFtZS50b1VwcGVyQ2FzZSgpKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfTtcbn1cblxuLy8gLS0tIEV4cG9ydGVkIFByb3BlcnR5IERlY29yYXRvcnMgLS0tXG4vKipcbiAqIE1hcmtzIGEgcHJvcGVydHkgYXMgYSBzdGFuZGFyZCBkYXRhYmFzZSBjb2x1bW4uXG4gKi9cbmV4cG9ydCBjb25zdCBDb2x1bW4gPSAob3B0aW9ucz86IENvbHVtbk9wdGlvbnMpID0+XG4gIGNyZWF0ZVByb3BlcnR5RGVjb3JhdG9yKFwiY29sdW1uXCIsIG9wdGlvbnMpO1xuXG4vKipcbiAqIE1hcmtzIGEgcHJvcGVydHkgYXMgdGhlIGVudGl0eSdzIHByaW1hcnkga2V5LlxuICovXG5leHBvcnQgY29uc3QgSWQgPSAoKSA9PiBjcmVhdGVQcm9wZXJ0eURlY29yYXRvcihcImlkXCIpO1xuXG4vKipcbiAqIE1hcmtzIGEgcHJvcGVydHkgYXMgdGhlIGVudGl0eSdzIGNyZWF0ZWQgYXQgdGltZXN0YW1wLlxuICovXG5leHBvcnQgY29uc3QgQ3JlYXRlZEF0ID0gKCkgPT4gY3JlYXRlUHJvcGVydHlEZWNvcmF0b3IoXCJjcmVhdGVkQXRcIik7XG5cbi8qKlxuICogTWFya3MgYSBwcm9wZXJ0eSBhcyB0aGUgZW50aXR5J3MgdXBkYXRlIGF0IHRpbWVzdGFtcC5cbiAqL1xuZXhwb3J0IGNvbnN0IFVwZGF0ZWRBdCA9ICgpID0+IGNyZWF0ZVByb3BlcnR5RGVjb3JhdG9yKFwidXBkYXRlZEF0XCIpO1xuXG4vKipcbiAqIE1hcmtzIGEgcHJvcGVydHkgYXMgdGhlIGVudGl0eSdzIGNyZWF0aW9uIGFjdG9yLlxuICovXG5leHBvcnQgY29uc3QgQ3JlYXRlZEJ5ID0gKCkgPT4gY3JlYXRlUHJvcGVydHlEZWNvcmF0b3IoXCJjcmVhdGVkQnlcIik7XG5cbi8qKlxuICogTWFya3MgYSBwcm9wZXJ0eSBhcyB0aGUgZW50aXR5J3MgdXBkYXRlIGFjdG9yLlxuICovXG5leHBvcnQgY29uc3QgVXBkYXRlZEJ5ID0gKCkgPT4gY3JlYXRlUHJvcGVydHlEZWNvcmF0b3IoXCJ1cGRhdGVkQnlcIik7XG5cbi8qKlxuICogTWFya3MgYSBwcm9wZXJ0eSBhcyBhIGdlbmVyYXRlZCB2YWx1ZSAoZS5nLiwgYXV0by1pbmNyZW1lbnQpLlxuICogQHBhcmFtIHN0cmF0ZWd5IFRoZSBnZW5lcmF0aW9uIHN0cmF0ZWd5IChlLmcuLCBcIklERU5USVRZXCIpLiBQYXJhbWV0ZXIgaXMgY3VycmVudGx5IHVudXNlZCBpbiBsb2dpYy5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmVyYXRlZCA9IChzdHJhdGVneTogc3RyaW5nKSA9PlxuICBjcmVhdGVQcm9wZXJ0eURlY29yYXRvcihcImdlbmVyYXRlZFwiKTtcblxuLyoqXG4gKiBEZWZpbmVzIGEgb25lLXRvLW1hbnkgcmVsYXRpb25zaGlwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gT25lVG9NYW55KFxuICB0eXBlRnVuY3Rpb246ICgpID0+IEZ1bmN0aW9uLFxuICBvcHRpb25zOiBPbmVUb01hbnlPcHRpb25zXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChfOiBhbnksIGNvbnRleHQ6IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQua2luZCAhPT0gXCJmaWVsZFwiKSByZXR1cm47XG5cbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGN0b3IgPSAodGhpcyBhcyBhbnkpLmNvbnN0cnVjdG9yIGFzIEVudGl0eUNvbnN0cnVjdG9yO1xuICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gY29udGV4dC5uYW1lLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcblxuICAgICAgbGV0IG1ldGFkYXRhID0gbWV0YWRhdGFBcnJheS5maW5kKFxuICAgICAgICAobSkgPT4gbS5wcm9wZXJ0eU5hbWUgPT09IHByb3BlcnR5TmFtZVxuICAgICAgKTtcblxuICAgICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgICAgICBpc0lkOiBmYWxzZSxcblx0XHQgIGlzQ3JlYXRlZEF0OiBmYWxzZSxcblx0XHQgIGlzVXBkYXRlZEF0OiBmYWxzZSxcblx0XHQgIGlzQ3JlYXRlZEJ5OiBmYWxzZSxcblx0XHQgIGlzVXBkYXRlZEJ5OiBmYWxzZSxcbiAgICAgICAgICBpc0dlbmVyYXRlZDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIG1ldGFkYXRhQXJyYXkucHVzaChtZXRhZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIG1ldGFkYXRhLm9uZVRvTWFueU9wdGlvbnMgPSB7IHR5cGU6IHR5cGVGdW5jdGlvbigpLCBvcHRpb25zIH07XG4gICAgfSk7XG4gIH07XG59XG5cbi8qKlxuICogRGVmaW5lcyBhIG1hbnktdG8tb25lIHJlbGF0aW9uc2hpcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE1hbnlUb09uZShcbiAgdHlwZUZ1bmN0aW9uOiAoKSA9PiBGdW5jdGlvbixcbiAgb3B0aW9uczogTWFueVRvT25lT3B0aW9ucyA9IHt9XG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChfOiBhbnksIGNvbnRleHQ6IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQua2luZCAhPT0gXCJmaWVsZFwiKSByZXR1cm47XG5cbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGN0b3IgPSAodGhpcyBhcyBhbnkpLmNvbnN0cnVjdG9yIGFzIEVudGl0eUNvbnN0cnVjdG9yO1xuICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gY29udGV4dC5uYW1lLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcblxuICAgICAgbGV0IG1ldGFkYXRhID0gbWV0YWRhdGFBcnJheS5maW5kKFxuICAgICAgICAobSkgPT4gbS5wcm9wZXJ0eU5hbWUgPT09IHByb3BlcnR5TmFtZVxuICAgICAgKTtcblxuICAgICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgICAgICBpc0lkOiBmYWxzZSxcblx0XHQgIGlzQ3JlYXRlZEF0OiBmYWxzZSxcblx0XHQgIGlzVXBkYXRlZEF0OiBmYWxzZSxcblx0XHQgIGlzQ3JlYXRlZEJ5OiBmYWxzZSxcblx0XHQgIGlzVXBkYXRlZEJ5OiBmYWxzZSxcbiAgICAgICAgICBpc0dlbmVyYXRlZDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIG1ldGFkYXRhQXJyYXkucHVzaChtZXRhZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIG1ldGFkYXRhLm1hbnlUb09uZU9wdGlvbnMgPSB7IHR5cGU6IHR5cGVGdW5jdGlvbigpLCBvcHRpb25zIH07XG4gICAgfSk7XG4gIH07XG59Il0sCiAgIm1hcHBpbmdzIjogIkFBNkZBLE1BQU0sY0FDSCxXQUFtQixpQ0FDbEIsV0FBbUIsK0JBQStCLG9CQUFJLFFBQVE7QUFFbEUsU0FBUyxpQkFBaUIsYUFBMkM7QUFDbkUsTUFBSSxDQUFDLFlBQVksSUFBSSxXQUFXLEdBQUc7QUFDakMsZ0JBQVksSUFBSSxhQUFhLENBQUMsQ0FBQztBQUFBLEVBQ2pDO0FBQ0EsU0FBTyxZQUFZLElBQUksV0FBVztBQUNwQztBQUdBLFNBQVMsTUFBTSxJQUFzQjtBQUVuQyxVQUFRLFFBQVEsRUFBRSxLQUFLLEVBQUU7QUFDM0I7QUFHQSxTQUFTLHdCQUNQLE1BQ0EsU0FDQTtBQUNBLFNBQU8sU0FBVSxHQUFRLFNBQXFDO0FBQzVELFFBQUksUUFBUSxTQUFTLFNBQVM7QUFDNUIsWUFBTSxJQUFJLE1BQU0sSUFBSSxJQUFJLHVCQUF1QjtBQUFBLElBQ2pEO0FBRUEsWUFBUSxlQUFlLFdBQVk7QUFDakMsWUFBTSxPQUFRLEtBQWE7QUFDM0IsWUFBTSxlQUFlLFFBQVEsS0FBSyxTQUFTO0FBQzNDLFlBQU0sZ0JBQWdCLGlCQUFpQixJQUFJO0FBRTNDLFVBQUksV0FBVyxjQUFjO0FBQUEsUUFDM0IsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCO0FBQUEsTUFDNUI7QUFFQSxVQUFJLENBQUMsVUFBVTtBQUNiLG1CQUFXO0FBQUEsVUFDVDtBQUFBLFVBQ0EsTUFBTTtBQUFBLFVBQ1osYUFBYTtBQUFBLFVBQ2IsYUFBYTtBQUFBLFVBQ2IsYUFBYTtBQUFBLFVBQ2IsYUFBYTtBQUFBLFVBQ1AsYUFBYTtBQUFBLFFBQ2Y7QUFDQSxzQkFBYyxLQUFLLFFBQVE7QUFBQSxNQUM3QjtBQUVBLFVBQUksU0FBUyxLQUFNLFVBQVMsT0FBTztBQUN0QyxVQUFJLFNBQVMsWUFBYSxVQUFTLGNBQWM7QUFDakQsVUFBSSxTQUFTLFlBQWEsVUFBUyxjQUFjO0FBQ2pELFVBQUksU0FBUyxZQUFhLFVBQVMsY0FBYztBQUNqRCxVQUFJLFNBQVMsWUFBYSxVQUFTLGNBQWM7QUFDOUMsVUFBSSxTQUFTLFlBQWEsVUFBUyxjQUFjO0FBQ2pELFVBQUksU0FBUyxTQUFVLFVBQVMsZ0JBQWdCO0FBQUEsSUFDbEQsQ0FBQztBQUFBLEVBQ0g7QUFDRjtBQU1PLFNBQVMsY0FBYyxhQUFxQjtBQUNqRCxTQUFPLFNBQ0wsT0FDQSxTQUNBO0FBQ0EsUUFBSSxRQUFRLFNBQVMsU0FBUztBQUM1QixjQUFRLGVBQWUsV0FBWTtBQUNqQyxRQUFDLE1BQTRCLGlCQUFpQjtBQUFBLE1BQ2hELENBQUM7QUFDRCxhQUFPO0FBQUEsSUFDVCxXQUFXLFFBQVEsU0FBUyxTQUFTO0FBQ25DLGNBQVEsZUFBZSxXQUFZO0FBQ2pDLGNBQU0sT0FBUSxLQUFhO0FBQzNCLGNBQU0sZUFBZSxRQUFRLEtBQUssU0FBUztBQUMzQyxjQUFNLGdCQUFnQixpQkFBaUIsSUFBSTtBQUUzQyxZQUFJLFdBQVcsY0FBYztBQUFBLFVBQzNCLENBQUMsTUFBTSxFQUFFLGlCQUFpQjtBQUFBLFFBQzVCO0FBRUEsWUFBSSxDQUFDLFVBQVU7QUFDYixxQkFBVztBQUFBLFlBQ1Q7QUFBQSxZQUNBLE1BQU07QUFBQSxZQUNmLGFBQWE7QUFBQSxZQUNiLGFBQWE7QUFBQSxZQUNiLGFBQWE7QUFBQSxZQUNiLGFBQWE7QUFBQSxZQUNKLGFBQWE7QUFBQSxVQUNmO0FBQ0Esd0JBQWMsS0FBSyxRQUFRO0FBQUEsUUFDN0I7QUFFQSxpQkFBUyxnQkFBZ0I7QUFBQSxNQUMzQixDQUFDO0FBQUEsSUFDSDtBQUFBLEVBQ0Y7QUFDRjtBQVFPLFNBQVMsT0FBTyxZQUFxQjtBQUMxQyxTQUFPLFNBQVUsT0FBaUIsU0FBZ0M7QUFDaEUsWUFBUSxlQUFlLFdBQVk7QUFFakMsWUFBTSxNQUFNO0FBQ1YsY0FBTSxPQUFPO0FBR2IsWUFBSSxLQUFLLGFBQWM7QUFDdkIsYUFBSyxlQUFlO0FBRXBCLGFBQUssZUFBZSxjQUFjLEtBQUs7QUFFdkMsY0FBTSxnQkFBZ0IsaUJBQWlCLElBQUk7QUFDM0MsY0FBTSxhQUFhLGNBQWMsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJO0FBRW5ELFlBQUksWUFBWTtBQUNkLGVBQUssV0FBVyxXQUFXO0FBRTNCLGVBQUssYUFDSCxXQUFXLGVBQWUsUUFDMUIsV0FBVyxhQUFhLFlBQVk7QUFBQSxRQUN4QztBQUFBLE1BR0YsQ0FBQztBQUFBLElBQ0gsQ0FBQztBQUFBLEVBQ0g7QUFDRjtBQU9PLFNBQVMsTUFBTSxXQUFvQjtBQUN4QyxTQUFPLFNBQ0wsT0FDQSxTQUNBO0FBQ0EsWUFBUSxlQUFlLFdBQVk7QUFDakMsTUFBQyxNQUE0QixjQUMzQixjQUFjLFFBQVEsTUFBTSxTQUFTLEtBQUssTUFBTSxLQUFLLFlBQVk7QUFBQSxJQUNyRSxDQUFDO0FBRUQsV0FBTztBQUFBLEVBQ1Q7QUFDRjtBQU1PLE1BQU0sU0FBUyxDQUFDLFlBQ3JCLHdCQUF3QixVQUFVLE9BQU87QUFLcEMsTUFBTSxLQUFLLE1BQU0sd0JBQXdCLElBQUk7QUFLN0MsTUFBTSxZQUFZLE1BQU0sd0JBQXdCLFdBQVc7QUFLM0QsTUFBTSxZQUFZLE1BQU0sd0JBQXdCLFdBQVc7QUFLM0QsTUFBTSxZQUFZLE1BQU0sd0JBQXdCLFdBQVc7QUFLM0QsTUFBTSxZQUFZLE1BQU0sd0JBQXdCLFdBQVc7QUFNM0QsTUFBTSxZQUFZLENBQUMsYUFDeEIsd0JBQXdCLFdBQVc7QUFLOUIsU0FBUyxVQUNkLGNBQ0EsU0FDQTtBQUNBLFNBQU8sU0FBVSxHQUFRLFNBQXFDO0FBQzVELFFBQUksUUFBUSxTQUFTLFFBQVM7QUFFOUIsWUFBUSxlQUFlLFdBQVk7QUFDakMsWUFBTSxPQUFRLEtBQWE7QUFDM0IsWUFBTSxlQUFlLFFBQVEsS0FBSyxTQUFTO0FBQzNDLFlBQU0sZ0JBQWdCLGlCQUFpQixJQUFJO0FBRTNDLFVBQUksV0FBVyxjQUFjO0FBQUEsUUFDM0IsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCO0FBQUEsTUFDNUI7QUFFQSxVQUFJLENBQUMsVUFBVTtBQUNiLG1CQUFXO0FBQUEsVUFDVDtBQUFBLFVBQ0EsTUFBTTtBQUFBLFVBQ1osYUFBYTtBQUFBLFVBQ2IsYUFBYTtBQUFBLFVBQ2IsYUFBYTtBQUFBLFVBQ2IsYUFBYTtBQUFBLFVBQ1AsYUFBYTtBQUFBLFFBQ2Y7QUFDQSxzQkFBYyxLQUFLLFFBQVE7QUFBQSxNQUM3QjtBQUVBLGVBQVMsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLEdBQUcsUUFBUTtBQUFBLElBQzlELENBQUM7QUFBQSxFQUNIO0FBQ0Y7QUFLTyxTQUFTLFVBQ2QsY0FDQSxVQUE0QixDQUFDLEdBQzdCO0FBQ0EsU0FBTyxTQUFVLEdBQVEsU0FBcUM7QUFDNUQsUUFBSSxRQUFRLFNBQVMsUUFBUztBQUU5QixZQUFRLGVBQWUsV0FBWTtBQUNqQyxZQUFNLE9BQVEsS0FBYTtBQUMzQixZQUFNLGVBQWUsUUFBUSxLQUFLLFNBQVM7QUFDM0MsWUFBTSxnQkFBZ0IsaUJBQWlCLElBQUk7QUFFM0MsVUFBSSxXQUFXLGNBQWM7QUFBQSxRQUMzQixDQUFDLE1BQU0sRUFBRSxpQkFBaUI7QUFBQSxNQUM1QjtBQUVBLFVBQUksQ0FBQyxVQUFVO0FBQ2IsbUJBQVc7QUFBQSxVQUNUO0FBQUEsVUFDQSxNQUFNO0FBQUEsVUFDWixhQUFhO0FBQUEsVUFDYixhQUFhO0FBQUEsVUFDYixhQUFhO0FBQUEsVUFDYixhQUFhO0FBQUEsVUFDUCxhQUFhO0FBQUEsUUFDZjtBQUNBLHNCQUFjLEtBQUssUUFBUTtBQUFBLE1BQzdCO0FBRUEsZUFBUyxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsR0FBRyxRQUFRO0FBQUEsSUFDOUQsQ0FBQztBQUFBLEVBQ0g7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
177
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL2RlY29yYXRvcnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogKiBFQ01BU2NyaXB0IDIwMjUtY29tcGxpYW50IE9STSBkZWNvcmF0b3IgaW1wbGVtZW50YXRpb25cbiAqIENvbXBhdGlibGUgd2l0aCBHcmFhbEpTIHJ1bnRpbWUuXG4gKiAqIEZlYXR1cmVzOlxuICogLSBVc2VzIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIgZm9yIHN0YWJsZSBkZWNvcmF0b3IgdGltaW5nXG4gKiAtIFN0b3JlcyBtZXRhZGF0YSBpbiBhIGdsb2JhbCBXZWFrTWFwIGNhY2hlXG4gKiAtIEZpbmFsaXplcyBlbnRpdHkgbWV0YWRhdGEgb25jZSBwZXIgY2xhc3NcbiAqIC0gRGVmZXJzIGZpbmFsaXphdGlvbiB2aWEgbWljcm90YXNrIChQcm9taXNlLnJlc29sdmUoKS50aGVuKVxuICovXG5cbi8vIC0tLSBEZWNvcmF0b3IgQ29udGV4dCBUeXBlcyAoYmFzZWQgb24gRUNNQVNjcmlwdCBEZWNvcmF0b3JzIHByb3Bvc2FsKSAtLS1cbnR5cGUgQ2xhc3NGaWVsZERlY29yYXRvckNvbnRleHQgPSB7XG4gIGtpbmQ6IFwiZmllbGRcIjtcbiAgbmFtZTogc3RyaW5nIHwgc3ltYm9sO1xuICBzdGF0aWM6IGJvb2xlYW47XG4gIHByaXZhdGU6IGJvb2xlYW47XG4gIGFkZEluaXRpYWxpemVyKGZuOiAoKSA9PiB2b2lkKTogdm9pZDtcbn07XG5cbnR5cGUgQ2xhc3NEZWNvcmF0b3JDb250ZXh0ID0ge1xuICBraW5kOiBcImNsYXNzXCI7XG4gIG5hbWU/OiBzdHJpbmcgfCBzeW1ib2w7XG4gIGFkZEluaXRpYWxpemVyKGZuOiAoKSA9PiB2b2lkKTogdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIENvbHVtblR5cGVzID1cbiAgLy8gTnVtZXJpYyB0eXBlc1xuICB8ICdpbnRlZ2VyJyB8ICdsb25nJyB8ICdzaG9ydCcgfCAnYnl0ZScgfCAnZmxvYXQnIHwgJ2RvdWJsZScgfCAnYmlnX2ludGVnZXInIHwgJ2JpZ19kZWNpbWFsJ1xuICAvLyBTdHJpbmcgdHlwZXNcbiAgfCAnc3RyaW5nJyB8ICdjaGFyJyB8ICd0ZXh0JyB8ICduc3RyaW5nJyB8ICdudGV4dCdcbiAgLy8gRGF0ZS9UaW1lIHR5cGVzXG4gIHwgJ2RhdGUnIHwgJ3RpbWUnIHwgJ3RpbWVzdGFtcCcgfCAnY2FsZW5kYXInIHwgJ2NhbGVuZGFyX2RhdGUnIHwgJ2luc3RhbnQnXG4gIC8vIEJvb2xlYW4gdHlwZXNcbiAgfCAnYm9vbGVhbicgfCAndHJ1ZV9mYWxzZScgfCAneWVzX25vJyB8ICdudW1lcmljX2Jvb2xlYW4nIFxuICAvLyBCaW5hcnkgdHlwZXNcbiAgfCAnYmluYXJ5JyB8ICdibG9iJyB8ICdjbG9iJyB8ICdtYXRlcmlhbGl6ZWRfYmxvYicgfCAnbWF0ZXJpYWxpemVkX2Nsb2InXG4gIC8vIE90aGVyIHR5cGVzXG4gIHwgJ3NlcmlhbGl6YWJsZScgfCAnYW55JyB8ICdvYmplY3QnIHwgJ3V1aWQtY2hhcicgfCAndXVpZC1iaW5hcnknIHwgJ2pzb24nIHwgJ2pzb25iJyB8ICd4bWwnO1xuXG4vLyAtLS0gTWV0YWRhdGEgTW9kZWxzIC0tLVxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5PcHRpb25zIHtcbiAgbmFtZT86IHN0cmluZztcbiAgdHlwZT86IENvbHVtblR5cGVzIHwgKHN0cmluZyAmIHt9KTtcbiAgbGVuZ3RoPzogbnVtYmVyO1xuICBudWxsYWJsZT86IGJvb2xlYW47XG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgcHJlY2lzaW9uPzogbnVtYmVyO1xuICBzY2FsZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVUb01hbnlPcHRpb25zIHtcbiAgdGFibGU/OiBzdHJpbmc7XG4gIGpvaW5Db2x1bW46IHN0cmluZztcbiAgY2FzY2FkZT86IFwiYWxsXCIgfCBcIm5vbmVcIiB8IFwicGVyc2lzdFwiIHwgXCJtZXJnZVwiIHwgXCJyZW1vdmVcIjtcbiAgaW52ZXJzZT86IGJvb2xlYW47XG4gIGxhenk/OiBib29sZWFuO1xuICBmZXRjaD86IFwic2VsZWN0XCIgfCBcImpvaW5cIjtcbiAgam9pbkNvbHVtbk5vdE51bGw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hbnlUb09uZU9wdGlvbnMge1xuICBqb2luQ29sdW1uPzogc3RyaW5nO1xuICBjYXNjYWRlPzogXCJhbGxcIiB8IFwibm9uZVwiIHwgXCJwZXJzaXN0XCIgfCBcIm1lcmdlXCIgfCBcInJlbW92ZVwiO1xuICBudWxsYWJsZT86IGJvb2xlYW47XG4gIGxhenk/OiBib29sZWFuO1xuICBmZXRjaD86IFwic2VsZWN0XCIgfCBcImpvaW5cIjtcbn1cblxuaW50ZXJmYWNlIFByb3BlcnR5TWV0YWRhdGEge1xuICBwcm9wZXJ0eU5hbWU6IHN0cmluZztcbiAgaXNJZDogYm9vbGVhbjtcbiAgaXNDcmVhdGVkQXQ6IGJvb2xlYW47XG4gIGlzVXBkYXRlZEF0OiBib29sZWFuO1xuICBpc0NyZWF0ZWRCeTogYm9vbGVhbjtcbiAgaXNVcGRhdGVkQnk6IGJvb2xlYW47XG4gIGlzR2VuZXJhdGVkOiBib29sZWFuO1xuICBkb2N1bWVudGF0aW9uPzogc3RyaW5nO1xuICBjb2x1bW5PcHRpb25zPzogQ29sdW1uT3B0aW9ucztcbiAgb25lVG9NYW55T3B0aW9ucz86IHsgdHlwZTogRnVuY3Rpb247IG9wdGlvbnM6IE9uZVRvTWFueU9wdGlvbnMgfTtcbiAgbWFueVRvT25lT3B0aW9ucz86IHsgdHlwZTogRnVuY3Rpb247IG9wdGlvbnM6IE1hbnlUb09uZU9wdGlvbnMgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlDb25zdHJ1Y3RvciBleHRlbmRzIEZ1bmN0aW9uIHtcbiAgbmV3KC4uLmFyZ3M6IGFueVtdKTogYW55O1xuICAkZW50aXR5X25hbWU6IHN0cmluZztcbiAgJHRhYmxlX25hbWU6IHN0cmluZztcbiAgJGlkX25hbWU6IHN0cmluZztcbiAgJGlkX2NvbHVtbjogc3RyaW5nO1xuICAkaW5pdGlhbGl6ZWQ/OiBib29sZWFuO1xuICAkZG9jdW1lbnRhdGlvbj86IHN0cmluZztcbn1cblxuLy8gLS0tIEdsb2JhbCBNZXRhZGF0YSBDYWNoZSAtLS1cbmNvbnN0IGdsb2JhbENhY2hlOiBXZWFrTWFwPEZ1bmN0aW9uLCBQcm9wZXJ0eU1ldGFkYXRhW10+ID1cbiAgKGdsb2JhbFRoaXMgYXMgYW55KS5fX2RlY29yYXRvcl9tZXRhZGF0YV9jYWNoZV9fIHx8XG4gICgoZ2xvYmFsVGhpcyBhcyBhbnkpLl9fZGVjb3JhdG9yX21ldGFkYXRhX2NhY2hlX18gPSBuZXcgV2Vha01hcCgpKTtcblxuZnVuY3Rpb24gZ2V0TWV0YWRhdGFBcnJheShjb25zdHJ1Y3RvcjogRnVuY3Rpb24pOiBQcm9wZXJ0eU1ldGFkYXRhW10ge1xuICBpZiAoIWdsb2JhbENhY2hlLmhhcyhjb25zdHJ1Y3RvcikpIHtcbiAgICBnbG9iYWxDYWNoZS5zZXQoY29uc3RydWN0b3IsIFtdKTtcbiAgfVxuICByZXR1cm4gZ2xvYmFsQ2FjaGUuZ2V0KGNvbnN0cnVjdG9yKSE7XG59XG5cbi8vIC0tLSBEZWZlciBIZWxwZXIgKEdyYWFsSlMtc2FmZSBtaWNyb3Rhc2spIC0tLVxuZnVuY3Rpb24gZGVmZXIoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgLy8gVXNlcyBQcm9taXNlIG1pY3JvdGFzayBxdWV1ZSBmb3IgZGVmZXJyZWQgZXhlY3V0aW9uXG4gIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZm4pO1xufVxuXG4vLyAtLS0gQ29yZSBQcm9wZXJ0eSBEZWNvcmF0b3IgRmFjdG9yeSAtLS1cbmZ1bmN0aW9uIGNyZWF0ZVByb3BlcnR5RGVjb3JhdG9yKFxuICBraW5kOiBcImNvbHVtblwiIHwgXCJpZFwiIHwgXCJnZW5lcmF0ZWRcIiB8IFwiY3JlYXRlZEF0XCIgfCBcInVwZGF0ZWRBdFwiIHwgXCJjcmVhdGVkQnlcIiB8IFwidXBkYXRlZEJ5XCIsXG4gIG9wdGlvbnM/OiBDb2x1bW5PcHRpb25zXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChfOiBhbnksIGNvbnRleHQ6IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQua2luZCAhPT0gXCJmaWVsZFwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEAke2tpbmR9IG11c3QgYXBwbHkgdG8gZmllbGRzYCk7XG4gICAgfVxuXG4gICAgY29udGV4dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBjdG9yID0gKHRoaXMgYXMgYW55KS5jb25zdHJ1Y3RvciBhcyBFbnRpdHlDb25zdHJ1Y3RvcjtcbiAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IGNvbnRleHQubmFtZS50b1N0cmluZygpO1xuICAgICAgY29uc3QgbWV0YWRhdGFBcnJheSA9IGdldE1ldGFkYXRhQXJyYXkoY3Rvcik7XG5cbiAgICAgIGxldCBtZXRhZGF0YSA9IG1ldGFkYXRhQXJyYXkuZmluZChcbiAgICAgICAgKG0pID0+IG0ucHJvcGVydHlOYW1lID09PSBwcm9wZXJ0eU5hbWVcbiAgICAgICk7XG5cbiAgICAgIGlmICghbWV0YWRhdGEpIHtcbiAgICAgICAgbWV0YWRhdGEgPSB7XG4gICAgICAgICAgcHJvcGVydHlOYW1lOiBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgaXNJZDogZmFsc2UsXG5cdFx0ICBpc0NyZWF0ZWRBdDogZmFsc2UsXG5cdFx0ICBpc1VwZGF0ZWRBdDogZmFsc2UsXG5cdFx0ICBpc0NyZWF0ZWRCeTogZmFsc2UsXG5cdFx0ICBpc1VwZGF0ZWRCeTogZmFsc2UsXG4gICAgICAgICAgaXNHZW5lcmF0ZWQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBtZXRhZGF0YUFycmF5LnB1c2gobWV0YWRhdGEpO1xuICAgICAgfVxuXG4gICAgICBpZiAoa2luZCA9PT0gXCJpZFwiKSBtZXRhZGF0YS5pc0lkID0gdHJ1ZTtcblx0ICBpZiAoa2luZCA9PT0gXCJjcmVhdGVkQXRcIikgbWV0YWRhdGEuaXNDcmVhdGVkQXQgPSB0cnVlO1xuXHQgIGlmIChraW5kID09PSBcInVwZGF0ZWRBdFwiKSBtZXRhZGF0YS5pc1VwZGF0ZWRBdCA9IHRydWU7XG5cdCAgaWYgKGtpbmQgPT09IFwiY3JlYXRlZEJ5XCIpIG1ldGFkYXRhLmlzQ3JlYXRlZEJ5ID0gdHJ1ZTtcblx0ICBpZiAoa2luZCA9PT0gXCJ1cGRhdGVkQnlcIikgbWV0YWRhdGEuaXNVcGRhdGVkQnkgPSB0cnVlO1xuICAgICAgaWYgKGtpbmQgPT09IFwiZ2VuZXJhdGVkXCIpIG1ldGFkYXRhLmlzR2VuZXJhdGVkID0gdHJ1ZTtcbiAgICAgIGlmIChraW5kID09PSBcImNvbHVtblwiKSBtZXRhZGF0YS5jb2x1bW5PcHRpb25zID0gb3B0aW9ucztcbiAgICB9KTtcbiAgfTtcbn1cblxuLy8gLS0tIEBEb2N1bWVudGF0aW9uIERlY29yYXRvciAoRHVhbC1QdXJwb3NlKSAtLS1cbi8qKlxuICogQWRkcyBkb2N1bWVudGF0aW9uIG1ldGFkYXRhIHRvIGEgY2xhc3Mgb3IgYSBmaWVsZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERvY3VtZW50YXRpb24oZGVzY3JpcHRpb246IHN0cmluZykge1xuICByZXR1cm4gZnVuY3Rpb24gKFxuICAgIHZhbHVlOiBGdW5jdGlvbiB8IGFueSxcbiAgICBjb250ZXh0OiBDbGFzc0RlY29yYXRvckNvbnRleHQgfCBDbGFzc0ZpZWxkRGVjb3JhdG9yQ29udGV4dFxuICApIHtcbiAgICBpZiAoY29udGV4dC5raW5kID09PSBcImNsYXNzXCIpIHtcbiAgICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgICAodmFsdWUgYXMgRW50aXR5Q29uc3RydWN0b3IpLiRkb2N1bWVudGF0aW9uID0gZGVzY3JpcHRpb247XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9IGVsc2UgaWYgKGNvbnRleHQua2luZCA9PT0gXCJmaWVsZFwiKSB7XG4gICAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgY3RvciA9ICh0aGlzIGFzIGFueSkuY29uc3RydWN0b3IgYXMgRW50aXR5Q29uc3RydWN0b3I7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IGNvbnRleHQubmFtZS50b1N0cmluZygpO1xuICAgICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcblxuICAgICAgICBsZXQgbWV0YWRhdGEgPSBtZXRhZGF0YUFycmF5LmZpbmQoXG4gICAgICAgICAgKG0pID0+IG0ucHJvcGVydHlOYW1lID09PSBwcm9wZXJ0eU5hbWVcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIW1ldGFkYXRhKSB7XG4gICAgICAgICAgbWV0YWRhdGEgPSB7XG4gICAgICAgICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgICAgICAgIGlzSWQ6IGZhbHNlLFxuXHRcdFx0aXNDcmVhdGVkQXQ6IGZhbHNlLFxuXHRcdFx0aXNVcGRhdGVkQXQ6IGZhbHNlLFxuXHRcdFx0aXNDcmVhdGVkQnk6IGZhbHNlLFxuXHRcdFx0aXNVcGRhdGVkQnk6IGZhbHNlLFxuICAgICAgICAgICAgaXNHZW5lcmF0ZWQ6IGZhbHNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgbWV0YWRhdGFBcnJheS5wdXNoKG1ldGFkYXRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG1ldGFkYXRhLmRvY3VtZW50YXRpb24gPSBkZXNjcmlwdGlvbjtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cblxuXG4vLyAtLS0gQEVudGl0eSBEZWNvcmF0b3IgLS0tXG4vKipcbiAqIE1hcmtzIGEgY2xhc3MgYXMgYW4gZW50aXR5IGFuZCBpbml0aWF0ZXMgbWV0YWRhdGEgZmluYWxpemF0aW9uLlxuICogQHBhcmFtIGVudGl0eU5hbWUgVGhlIG5hbWUgb2YgdGhlIGVudGl0eSAoZGVmYXVsdHMgdG8gY2xhc3MgbmFtZSkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFbnRpdHkoZW50aXR5TmFtZT86IHN0cmluZykge1xuICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlOiBGdW5jdGlvbiwgY29udGV4dDogQ2xhc3NEZWNvcmF0b3JDb250ZXh0KSB7XG4gICAgY29udGV4dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBEZWZlciBleGVjdXRpb24gdG8gZW5zdXJlIGFsbCBmaWVsZCBkZWNvcmF0b3JzIGhhdmUgcnVuXG4gICAgICBkZWZlcigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGN0b3IgPSB2YWx1ZSBhcyBFbnRpdHlDb25zdHJ1Y3RvcjtcblxuICAgICAgICAvLyBQcmV2ZW50IGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gKGlkZW1wb3RlbmN5KVxuICAgICAgICBpZiAoY3Rvci4kaW5pdGlhbGl6ZWQpIHJldHVybjtcbiAgICAgICAgY3Rvci4kaW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgICAgIGN0b3IuJGVudGl0eV9uYW1lID0gZW50aXR5TmFtZSB8fCBjdG9yLm5hbWU7XG5cbiAgICAgICAgY29uc3QgbWV0YWRhdGFBcnJheSA9IGdldE1ldGFkYXRhQXJyYXkoY3Rvcik7XG4gICAgICAgIGNvbnN0IGlkTWV0YWRhdGEgPSBtZXRhZGF0YUFycmF5LmZpbmQoKG0pID0+IG0uaXNJZCk7XG5cbiAgICAgICAgaWYgKGlkTWV0YWRhdGEpIHtcbiAgICAgICAgICBjdG9yLiRpZF9uYW1lID0gaWRNZXRhZGF0YS5wcm9wZXJ0eU5hbWU7XG4gICAgICAgICAgLy8gRGV0ZXJtaW5lIElEIGNvbHVtbiBuYW1lOiB1c2UgZXhwbGljaXQgbmFtZSBvciBjb252ZXJ0IHByb3BlcnR5IG5hbWUgdG8gdXBwZXIgY2FzZVxuICAgICAgICAgIGN0b3IuJGlkX2NvbHVtbiA9XG4gICAgICAgICAgICBpZE1ldGFkYXRhLmNvbHVtbk9wdGlvbnM/Lm5hbWUgfHxcbiAgICAgICAgICAgIGlkTWV0YWRhdGEucHJvcGVydHlOYW1lLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGdXR1cmU6IExvZ2ljIHRvIG1hcCBhbGwgcHJvcGVydGllcyB0byBjb2x1bW5zL3JlbGF0aW9ucyBnb2VzIGhlcmVcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xufVxuXG4vLyAtLS0gQFRhYmxlIERlY29yYXRvciAtLS1cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBkYXRhYmFzZSB0YWJsZSBuYW1lIGZvciB0aGUgZW50aXR5LlxuICogQHBhcmFtIHRhYmxlTmFtZSBUaGUgdGFibGUgbmFtZSAoZGVmYXVsdHMgdG8gdXBwZXJjYXNlIGNsYXNzIG5hbWUpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gVGFibGUodGFibGVOYW1lPzogc3RyaW5nKSB7XG4gIHJldHVybiBmdW5jdGlvbiA8VCBleHRlbmRzIGFic3RyYWN0IG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueT4oXG4gICAgdmFsdWU6IFQsXG4gICAgY29udGV4dDogQ2xhc3NEZWNvcmF0b3JDb250ZXh0XG4gICkge1xuICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gdmFsdWUgYXMgYW55O1xuICAgICAgdGFyZ2V0LiR0YWJsZV9uYW1lID0gdGFibGVOYW1lIHx8IGNvbnRleHQubmFtZT8udG9TdHJpbmcoKSB8fCB2YWx1ZS5uYW1lLnRvVXBwZXJDYXNlKCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH07XG59XG5cbi8vIC0tLSBFeHBvcnRlZCBQcm9wZXJ0eSBEZWNvcmF0b3JzIC0tLVxuLyoqXG4gKiBNYXJrcyBhIHByb3BlcnR5IGFzIGEgc3RhbmRhcmQgZGF0YWJhc2UgY29sdW1uLlxuICovXG5leHBvcnQgY29uc3QgQ29sdW1uID0gKG9wdGlvbnM/OiBDb2x1bW5PcHRpb25zKSA9PlxuICBjcmVhdGVQcm9wZXJ0eURlY29yYXRvcihcImNvbHVtblwiLCBvcHRpb25zKTtcblxuLyoqXG4gKiBNYXJrcyBhIHByb3BlcnR5IGFzIHRoZSBlbnRpdHkncyBwcmltYXJ5IGtleS5cbiAqL1xuZXhwb3J0IGNvbnN0IElkID0gKCkgPT4gY3JlYXRlUHJvcGVydHlEZWNvcmF0b3IoXCJpZFwiKTtcblxuLyoqXG4gKiBNYXJrcyBhIHByb3BlcnR5IGFzIHRoZSBlbnRpdHkncyBjcmVhdGVkIGF0IHRpbWVzdGFtcC5cbiAqL1xuZXhwb3J0IGNvbnN0IENyZWF0ZWRBdCA9ICgpID0+IGNyZWF0ZVByb3BlcnR5RGVjb3JhdG9yKFwiY3JlYXRlZEF0XCIpO1xuXG4vKipcbiAqIE1hcmtzIGEgcHJvcGVydHkgYXMgdGhlIGVudGl0eSdzIHVwZGF0ZSBhdCB0aW1lc3RhbXAuXG4gKi9cbmV4cG9ydCBjb25zdCBVcGRhdGVkQXQgPSAoKSA9PiBjcmVhdGVQcm9wZXJ0eURlY29yYXRvcihcInVwZGF0ZWRBdFwiKTtcblxuLyoqXG4gKiBNYXJrcyBhIHByb3BlcnR5IGFzIHRoZSBlbnRpdHkncyBjcmVhdGlvbiBhY3Rvci5cbiAqL1xuZXhwb3J0IGNvbnN0IENyZWF0ZWRCeSA9ICgpID0+IGNyZWF0ZVByb3BlcnR5RGVjb3JhdG9yKFwiY3JlYXRlZEJ5XCIpO1xuXG4vKipcbiAqIE1hcmtzIGEgcHJvcGVydHkgYXMgdGhlIGVudGl0eSdzIHVwZGF0ZSBhY3Rvci5cbiAqL1xuZXhwb3J0IGNvbnN0IFVwZGF0ZWRCeSA9ICgpID0+IGNyZWF0ZVByb3BlcnR5RGVjb3JhdG9yKFwidXBkYXRlZEJ5XCIpO1xuXG4vKipcbiAqIE1hcmtzIGEgcHJvcGVydHkgYXMgYSBnZW5lcmF0ZWQgdmFsdWUgKGUuZy4sIGF1dG8taW5jcmVtZW50KS5cbiAqIEBwYXJhbSBzdHJhdGVneSBUaGUgZ2VuZXJhdGlvbiBzdHJhdGVneSAoZS5nLiwgXCJJREVOVElUWVwiKS4gUGFyYW1ldGVyIGlzIGN1cnJlbnRseSB1bnVzZWQgaW4gbG9naWMuXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5lcmF0ZWQgPSAoc3RyYXRlZ3k6IHN0cmluZykgPT5cbiAgY3JlYXRlUHJvcGVydHlEZWNvcmF0b3IoXCJnZW5lcmF0ZWRcIik7XG5cbi8qKlxuICogRGVmaW5lcyBhIG9uZS10by1tYW55IHJlbGF0aW9uc2hpcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE9uZVRvTWFueShcbiAgdHlwZUZ1bmN0aW9uOiAoKSA9PiBGdW5jdGlvbixcbiAgb3B0aW9uczogT25lVG9NYW55T3B0aW9uc1xuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoXzogYW55LCBjb250ZXh0OiBDbGFzc0ZpZWxkRGVjb3JhdG9yQ29udGV4dCkge1xuICAgIGlmIChjb250ZXh0LmtpbmQgIT09IFwiZmllbGRcIikgcmV0dXJuO1xuXG4gICAgY29udGV4dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBjdG9yID0gKHRoaXMgYXMgYW55KS5jb25zdHJ1Y3RvciBhcyBFbnRpdHlDb25zdHJ1Y3RvcjtcbiAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IGNvbnRleHQubmFtZS50b1N0cmluZygpO1xuICAgICAgY29uc3QgbWV0YWRhdGFBcnJheSA9IGdldE1ldGFkYXRhQXJyYXkoY3Rvcik7XG5cbiAgICAgIGxldCBtZXRhZGF0YSA9IG1ldGFkYXRhQXJyYXkuZmluZChcbiAgICAgICAgKG0pID0+IG0ucHJvcGVydHlOYW1lID09PSBwcm9wZXJ0eU5hbWVcbiAgICAgICk7XG5cbiAgICAgIGlmICghbWV0YWRhdGEpIHtcbiAgICAgICAgbWV0YWRhdGEgPSB7XG4gICAgICAgICAgcHJvcGVydHlOYW1lOiBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgaXNJZDogZmFsc2UsXG5cdFx0ICBpc0NyZWF0ZWRBdDogZmFsc2UsXG5cdFx0ICBpc1VwZGF0ZWRBdDogZmFsc2UsXG5cdFx0ICBpc0NyZWF0ZWRCeTogZmFsc2UsXG5cdFx0ICBpc1VwZGF0ZWRCeTogZmFsc2UsXG4gICAgICAgICAgaXNHZW5lcmF0ZWQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBtZXRhZGF0YUFycmF5LnB1c2gobWV0YWRhdGEpO1xuICAgICAgfVxuXG4gICAgICBtZXRhZGF0YS5vbmVUb01hbnlPcHRpb25zID0geyB0eXBlOiB0eXBlRnVuY3Rpb24oKSwgb3B0aW9ucyB9O1xuICAgIH0pO1xuICB9O1xufVxuXG4vKipcbiAqIERlZmluZXMgYSBtYW55LXRvLW9uZSByZWxhdGlvbnNoaXAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBNYW55VG9PbmUoXG4gIHR5cGVGdW5jdGlvbjogKCkgPT4gRnVuY3Rpb24sXG4gIG9wdGlvbnM6IE1hbnlUb09uZU9wdGlvbnMgPSB7fVxuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoXzogYW55LCBjb250ZXh0OiBDbGFzc0ZpZWxkRGVjb3JhdG9yQ29udGV4dCkge1xuICAgIGlmIChjb250ZXh0LmtpbmQgIT09IFwiZmllbGRcIikgcmV0dXJuO1xuXG4gICAgY29udGV4dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBjdG9yID0gKHRoaXMgYXMgYW55KS5jb25zdHJ1Y3RvciBhcyBFbnRpdHlDb25zdHJ1Y3RvcjtcbiAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IGNvbnRleHQubmFtZS50b1N0cmluZygpO1xuICAgICAgY29uc3QgbWV0YWRhdGFBcnJheSA9IGdldE1ldGFkYXRhQXJyYXkoY3Rvcik7XG5cbiAgICAgIGxldCBtZXRhZGF0YSA9IG1ldGFkYXRhQXJyYXkuZmluZChcbiAgICAgICAgKG0pID0+IG0ucHJvcGVydHlOYW1lID09PSBwcm9wZXJ0eU5hbWVcbiAgICAgICk7XG5cbiAgICAgIGlmICghbWV0YWRhdGEpIHtcbiAgICAgICAgbWV0YWRhdGEgPSB7XG4gICAgICAgICAgcHJvcGVydHlOYW1lOiBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgaXNJZDogZmFsc2UsXG5cdFx0ICBpc0NyZWF0ZWRBdDogZmFsc2UsXG5cdFx0ICBpc1VwZGF0ZWRBdDogZmFsc2UsXG5cdFx0ICBpc0NyZWF0ZWRCeTogZmFsc2UsXG5cdFx0ICBpc1VwZGF0ZWRCeTogZmFsc2UsXG4gICAgICAgICAgaXNHZW5lcmF0ZWQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBtZXRhZGF0YUFycmF5LnB1c2gobWV0YWRhdGEpO1xuICAgICAgfVxuXG4gICAgICBtZXRhZGF0YS5tYW55VG9PbmVPcHRpb25zID0geyB0eXBlOiB0eXBlRnVuY3Rpb24oKSwgb3B0aW9ucyB9O1xuICAgIH0pO1xuICB9O1xufSJdLAogICJtYXBwaW5ncyI6ICJBQTZGQSxNQUFNLGNBQ0gsV0FBbUIsaUNBQ2xCLFdBQW1CLCtCQUErQixvQkFBSSxRQUFRO0FBRWxFLFNBQVMsaUJBQWlCLGFBQTJDO0FBQ25FLE1BQUksQ0FBQyxZQUFZLElBQUksV0FBVyxHQUFHO0FBQ2pDLGdCQUFZLElBQUksYUFBYSxDQUFDLENBQUM7QUFBQSxFQUNqQztBQUNBLFNBQU8sWUFBWSxJQUFJLFdBQVc7QUFDcEM7QUFHQSxTQUFTLE1BQU0sSUFBc0I7QUFFbkMsVUFBUSxRQUFRLEVBQUUsS0FBSyxFQUFFO0FBQzNCO0FBR0EsU0FBUyx3QkFDUCxNQUNBLFNBQ0E7QUFDQSxTQUFPLFNBQVUsR0FBUSxTQUFxQztBQUM1RCxRQUFJLFFBQVEsU0FBUyxTQUFTO0FBQzVCLFlBQU0sSUFBSSxNQUFNLElBQUksSUFBSSx1QkFBdUI7QUFBQSxJQUNqRDtBQUVBLFlBQVEsZUFBZSxXQUFZO0FBQ2pDLFlBQU0sT0FBUSxLQUFhO0FBQzNCLFlBQU0sZUFBZSxRQUFRLEtBQUssU0FBUztBQUMzQyxZQUFNLGdCQUFnQixpQkFBaUIsSUFBSTtBQUUzQyxVQUFJLFdBQVcsY0FBYztBQUFBLFFBQzNCLENBQUMsTUFBTSxFQUFFLGlCQUFpQjtBQUFBLE1BQzVCO0FBRUEsVUFBSSxDQUFDLFVBQVU7QUFDYixtQkFBVztBQUFBLFVBQ1Q7QUFBQSxVQUNBLE1BQU07QUFBQSxVQUNaLGFBQWE7QUFBQSxVQUNiLGFBQWE7QUFBQSxVQUNiLGFBQWE7QUFBQSxVQUNiLGFBQWE7QUFBQSxVQUNQLGFBQWE7QUFBQSxRQUNmO0FBQ0Esc0JB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aerokit/sdk",
3
- "version": "12.69.0",
3
+ "version": "12.70.0",
4
4
  "description": "Unified TypeScript SDK for modern cloud platforms.",
5
5
  "scripts": {
6
6
  "clean": "rm -rf dist",