single-scripture-rcl 3.4.13-beta.54 → 3.4.13

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.
@@ -527,7 +527,7 @@ export function useScripture(_ref2) {
527
527
 
528
528
  /**
529
529
  * get the verses for current reference or reference range
530
- * @param {object} _bookObjects
530
+ * @param {BookObjectsType} _bookObjects
531
531
  */
532
532
  function fetchVersesForRef() {
533
533
  var _bookObjects = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : bookObjects;
@@ -654,4 +654,4 @@ export function useScripture(_ref2) {
654
654
  versesForRef: versesForRef
655
655
  };
656
656
  }
657
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJhbGxvd0FycmF5TGlrZSIsIml0IiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiRiIsIl9lIiwibm9ybWFsQ29tcGxldGlvbiIsImRpZEVyciIsImVyciIsInN0ZXAiLCJfZTIiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJyZWplY3QiLCJfbmV4dCIsIl90aHJvdyIsImtleSIsImluZm8iLCJlcnJvciIsIl9hc3luY1RvR2VuZXJhdG9yIiwiZm4iLCJzZWxmIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwidW5kZWZpbmVkIiwib3duS2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIm9iaiIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwicmVzIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfbm9uSXRlcmFibGVSZXN0IiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsImZyb20iLCJ0ZXN0IiwibGVuIiwiYXJyMiIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiY29yZSIsInVzZm1qcyIsIkNPTlRFTlRfTk9UX0ZPVU5EX0VSUk9SIiwiRVJST1JfU1RBVEUiLCJJTklUSUFMSVpFRF9TVEFURSIsIklOVkFMSURfTUFOSUZFU1RfRVJST1IiLCJMT0FESU5HX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsIlNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SIiwidXNlRGVlcENvbXBhcmVFZmZlY3QiLCJnZXRWZXJzZXMiLCJpc0VxdWFsIiwiQWxpZ25tZW50SGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJkZWxheSIsInZlcnNlT2JqZWN0c0hhdmVXb3JkcyIsImNsZWFudXBWZXJzZU9iamVjdHMiLCJnZXRCb29rTmFtZUZyb21Vc2ZtRmlsZU5hbWUiLCJnZXRSZXNvdXJjZUxpbmsiLCJwYXJzZVJlc291cmNlTGluayIsIkJvb2tPYmplY3RzVHlwZSIsIlNjcmlwdHVyZVJlc291cmNlIiwiU2NyaXB0dXJlUmVmZXJlbmNlIiwiU2VydmVyQ29uZmlnIiwiVmVyc2VPYmplY3RzVHlwZSIsIlZlcnNlUmVmZXJlbmNlc1R5cGUiLCJwYXJzZVJlc291cmNlTWFuaWZlc3QiLCJnZXRCcmFuY2hOYW1lIiwicmVzb3VyY2VMaW5rIiwiYnJhbmNoIiwicGFydHMiLCJzcGxpdCIsIl9wYXJ0cyIsImdldFZlcnNlc0ZvclJlZlN0ciIsInJlZlN0ciIsImJvb2tPYmplY3RzIiwibGFuZ3VhZ2VJZCIsInZlcnNlcyIsImNoYXB0ZXJzIiwibWFwIiwidmVyc2UiLCJfdmVyc2UkdmVyc2VEYXRhIiwidmVyc2VEYXRhIiwidmVyc2VPYmplY3RzIiwidmVyc2VPYmplY3RzXyIsIm9jY3VycmVuY2VJbmplY3RWZXJzZU9iamVjdHMiLCJnZXRWZXJzZXNGb3JSZWYiLCJyZWZlcmVuY2UiLCJjb25jYXQiLCJjaGFwdGVyIiwidXNlU2NyaXB0dXJlIiwiX3JlZjIiLCJfcmVzb3VyY2VTdGF0dXMiLCJfZmV0Y2hQYXJhbXMkcmVmZXJlbmMiLCJjb25maWciLCJyZWFkeUZvckZldGNoIiwicmVzb3VyY2VfIiwicmVzb3VyY2UiLCJyZXNvdXJjZUxpbmtfIiwiX3JlZjIkd2hvbGVCb29rIiwid2hvbGVCb29rIiwiX3VzZVN0YXRlIiwiYmlibGVVc2ZtIiwiZmV0Y2hDb3VudCIsImZldGNoZWQiLCJmZXRjaGVkQm9vayIsImZldGNoUGFyYW1zIiwiaWdub3JlU2hhIiwiaW5pdGlhbGl6ZWQiLCJyZXNvdXJjZVN0YXRlIiwiY29udGVudCIsImZldGNoUmVzcG9uc2UiLCJmZXRjaGVkUmVzb3VyY2VzIiwibG9hZGluZ1Jlc291cmNlIiwibG9hZGluZ0NvbnRlbnQiLCJzaGEiLCJ1cmwiLCJ2ZXJzZXNGb3JSZWYiLCJfdXNlU3RhdGUyIiwic3RhdGUiLCJzZXRTdGF0ZV8iLCJfcmVmMyIsIm93bmVyIiwiX3JlZjMkYnJhbmNoIiwiX3JlZjMkcmVmIiwicmVmIiwiX3JlZjQiLCJib29rSWQiLCJwcm9qZWN0SWQiLCJfc3RhdGUiLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiaW5pdGlhdGVCb29rRmV0Y2giLCJjb25zb2xlIiwibG9nIiwicmVmXyIsInJlc291cmNlSWQiLCJib29rUmVmIiwibmV3RmV0Y2hQYXJhbXMiLCJmZXRjaEJvb2siLCJfeCIsIl9mZXRjaEJvb2siLCJfY2FsbGVlIiwiX2ZldGNoUGFyYW1zJHJlZmVyZW5jMiIsIl9yZXNvdXJjZSRwcm9qZWN0IiwiX3Jlc291cmNlJHByb2plY3QyIiwiZmV0Y2hMaW5rIiwiX3Jlc291cmNlU3RhdGUkcmVzb3VyIiwiZmV0Y2hlZFNoYU1hdGNoZXNJZ25vcmVTaGEiLCJfcmVzb3VyY2VTdGF0ZSRyZXNvdXIyIiwiX2ZldGNoQ291bnQiLCJfcmVzb3VyY2UiLCJlcnJvck1zZyIsInJlc3BvbnNlIiwiX2JpYmxlVXNmbSIsIl9ib29rT2JqZWN0czMiLCJfZXJyb3JNc2ciLCJfcmVmNSIsIl9hcmdzIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInJlc291cmNlRnJvbVJlc291cmNlTGluayIsIm1hbmlmZXN0IiwicHJvamVjdCIsImZpbGUiLCJ3YXJuIiwiZ2V0UmVzcG9uc2VEYXRhIiwidG9KU09OIiwiZGF0YSIsInQwIiwidmFsaWRhdGVSZXNwb25zZSIsIl9mZXRjaGVkQm9vayR0b0xvd2VyQyIsImlzU2FtZUJvb2siLCJleHBlY3RlZEJvb2tJZCIsInRvTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJmZXRjaGVkQnJhbmNoIiwiZmV0Y2hpbmdCcmFuY2giLCJiaWJsZVVzZm1fIiwiZmV0Y2hWZXJzZXNGb3JSZWYiLCJfcGFyc2VSZXNvdXJjZU1hbmlmZXMiLCJ0aXRsZSIsInZlcnNpb24iLCJsb2FkaW5nIiwiY29udGVudE5vdEZvdW5kRXJyb3IiLCJzY3JpcHR1cmVOb3RMb2FkZWRFcnJvciIsIm1hbmlmZXN0Tm90Rm91bmRFcnJvciIsImludmFsaWRNYW5pZmVzdEVycm9yIiwicmVzb3VyY2VTdGF0dXMiLCJpbnRpYWxpemVkIiwiX2dldFZlcnNlc0ZvclJlZiIsImNvbnRlbnRfIiwidXBkYXRlVmVyc2UiLCJib29rT2JqZWN0c18iLCJfYm9va09iamVjdHMiLCJuZXdWZXJzZXNGb3JSZWYiLCJfbmV3VmVyc2VzRm9yUmVmIiwiaW5pdGlhbFZlcnNlT2JqZWN0cyIsIl9pdGVyYXRvciIsIl9zdGVwIiwidm8iLCJ2ZXJzZVRleHQiLCJnZXRVc2ZtRm9yVmVyc2VDb250ZW50IiwiX0FsaWdubWVudEhlbHBlcnMkdXBkIiwidXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UiLCJ0YXJnZXRWZXJzZU9iamVjdHMiLCJyZWxvYWRSZXNvdXJjZSIsIl9mZXRjaFBhcmFtcyIsIl9wYXJzZVJlc291cmNlTGluayIsIl9yZWYiLCJfcmVzb3VyY2VMaW5rIiwiY3VycmVudEJvb2tSZWYiLCJmZXRjaGVkQm9va1NhbWUiLCJfdmVyc2VzRm9yUmVmIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVNjcmlwdHVyZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHtcbiAgdXNlRWZmZWN0LFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjb3JlIH0gZnJvbSAnc2NyaXB0dXJlLXJlc291cmNlcy1yY2wnXG5pbXBvcnQgdXNmbWpzIGZyb20gJ3VzZm0tanMnXG5pbXBvcnQge1xuICBDT05URU5UX05PVF9GT1VORF9FUlJPUixcbiAgRVJST1JfU1RBVEUsXG4gIElOSVRJQUxJWkVEX1NUQVRFLFxuICBJTlZBTElEX01BTklGRVNUX0VSUk9SLFxuICBMT0FESU5HX1NUQVRFLFxuICBNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SLFxuICBTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUixcbn0gZnJvbSAndHJhbnNsYXRpb24taGVscHMtcmNsJ1xuaW1wb3J0IHVzZURlZXBDb21wYXJlRWZmZWN0IGZyb20gJ3VzZS1kZWVwLWNvbXBhcmUtZWZmZWN0J1xuaW1wb3J0IHsgZ2V0VmVyc2VzIH0gZnJvbSAnYmlibGUtcmVmZXJlbmNlLXJhbmdlJ1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJ0ByZWFjdC1ob29rei9kZWVwLWVxdWFsJ1xuaW1wb3J0IHsgQWxpZ25tZW50SGVscGVycywgVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyB9IGZyb20gJ3dvcmQtYWxpZ25lci1yY2wnXG5pbXBvcnQgeyBkZWxheSwgdmVyc2VPYmplY3RzSGF2ZVdvcmRzIH0gZnJvbSAnLi4vdXRpbHMnXG5pbXBvcnQge1xuICBjbGVhbnVwVmVyc2VPYmplY3RzLFxuICBnZXRCb29rTmFtZUZyb21Vc2ZtRmlsZU5hbWUsXG4gIGdldFJlc291cmNlTGluayxcbiAgcGFyc2VSZXNvdXJjZUxpbmssXG59IGZyb20gJy4uL3V0aWxzL1NjcmlwdHVyZVNldHRpbmdzJ1xuaW1wb3J0IHtcbiAgQm9va09iamVjdHNUeXBlLFxuICBTY3JpcHR1cmVSZXNvdXJjZSxcbiAgU2NyaXB0dXJlUmVmZXJlbmNlLFxuICBTZXJ2ZXJDb25maWcsXG4gIFZlcnNlT2JqZWN0c1R5cGUsXG4gIFZlcnNlUmVmZXJlbmNlc1R5cGUsXG59IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgcGFyc2VSZXNvdXJjZU1hbmlmZXN0IH0gZnJvbSAnLi9wYXJzZVJlc291cmNlTWFuaWZlc3QnXG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIC8qKiByZWZlcmVuY2UgZm9yIHNjcmlwdHVyZSAqKi9cbiAgcmVmZXJlbmNlOiBTY3JpcHR1cmVSZWZlcmVuY2U7XG4gIC8qKiB3aGVyZSB0byBnZXQgZGF0YSAqKi9cbiAgY29uZmlnOiBTZXJ2ZXJDb25maWc7XG4gIC8qKiBvcHRpb25hbCBkaXJlY3QgcGF0aCB0byBiaWJsZSByZXNvdXJjZSwgaW4gZm9ybWF0ICR7b3duZXJ9LyR7bGFuZ3VhZ2VJZH0vJHtwcm9qZWN0SWR9LyR7YnJhbmNofSAqKi9cbiAgcmVzb3VyY2VMaW5rOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogb3B0aW9uYWwgcmVzb3VyY2Ugb2JqZWN0IHRvIHVzZSB0byBidWlsZCByZXNvdXJjZUxpbmsgKiovXG4gIHJlc291cmNlOiBTY3JpcHR1cmVSZXNvdXJjZXx1bmRlZmluZWQ7XG4gIC8qKiBpZiB0cnVlIHRoZW4gZmV0Y2ggdGhlIGVudGlyZSBib29rICovXG4gIHdob2xlQm9vazogYm9vbGVhbjtcbiAgLyoqIGlmIHRydWUgdGhlbiBzZXR0aW5ncyBhcmUgcmVhZHkgZm9yIGZldGNoaW5nIGRhdGEgKi9cbiAgcmVhZHlGb3JGZXRjaDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBleHRyYWN0IGJyYW5jaCBmcm9tIHJlc291cmNlIGxpbmtcbiAqIEBwYXJhbSByZXNvdXJjZUxpbmtcbiAqL1xuZnVuY3Rpb24gZ2V0QnJhbmNoTmFtZShyZXNvdXJjZUxpbms6IHN0cmluZykge1xuICBsZXQgYnJhbmNoID0gbnVsbFxuICByZXNvdXJjZUxpbmsgPSByZXNvdXJjZUxpbmsgfHwgJydcbiAgY29uc3QgcGFydHMgPSByZXNvdXJjZUxpbmsuc3BsaXQoJz9yZWY9JylcblxuICBpZiAocGFydHMubGVuZ3RoID4gMSkgeyAvLyBpZiByZWYgcGFyYW1ldGVyIGZvdW5kLCBnZXQgYnJhbmNoIG5hbWUgYWZ0ZXJcbiAgICBicmFuY2ggPSBwYXJ0cz8uWzFdXG4gIH0gZWxzZSB7IC8vIGZhbGwgYmFjayB0byB1c2luZyB1c2VSc3JjIGZvcm1hdCBzdWNoIGFzIFwidW5mb2xkaW5nV29yZC9lbi91c3QvbWFzdGVyXCJcbiAgICBjb25zdCBfcGFydHMgPSByZXNvdXJjZUxpbmsuc3BsaXQoJy8nKVxuICAgIGJyYW5jaCA9IF9wYXJ0cz8uWzNdXG4gIH1cbiAgcmV0dXJuIGJyYW5jaFxufVxuXG4vKipcbiAqIGdldCB0aGUgdmVyc2Ugb2JqZWN0cyBmb3IgdGhlIHJlZmVyZW5jZSBzdHJpbmdcbiAqIEBwYXJhbSB7c3RyaW5nfSByZWZTdHIgLSBpbiBmb3JtYXQgPGNoYXB0ZXI+Ojx2ZXJzZT5cbiAqIEBwYXJhbSB7b2JqZWN0fSBib29rT2JqZWN0cyAtIHBhcnNlZCB1c2ZtIGZvciBib29rXG4gKiBAcGFyYW0ge3N0cmluZ30gbGFuZ3VhZ2VJZFxuICogQHJldHVybiB7YXJyYXl8bnVsbH0gLSBvZiB2ZXJzZU9iamVjdHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnNlc0ZvclJlZlN0cihyZWZTdHIsIGJvb2tPYmplY3RzLCBsYW5ndWFnZUlkKTogVmVyc2VSZWZlcmVuY2VzVHlwZSB7XG4gIGlmIChib29rT2JqZWN0cykge1xuICAgIGxldCB2ZXJzZXMgPSBnZXRWZXJzZXMoYm9va09iamVjdHMuY2hhcHRlcnMsIHJlZlN0cilcblxuICAgIGlmIChsYW5ndWFnZUlkID09PSAnZWwteC1rb2luZScgfHwgbGFuZ3VhZ2VJZCA9PT0gJ2hibycpIHtcbiAgICAgIHZlcnNlcyA9IHZlcnNlcy5tYXAodmVyc2UgPT4ge1xuICAgICAgICBpZiAoIHZlcnNlPy52ZXJzZURhdGE/LnZlcnNlT2JqZWN0cykge1xuICAgICAgICAgIGxldCB2ZXJzZU9iamVjdHNfID0gY29yZS5vY2N1cnJlbmNlSW5qZWN0VmVyc2VPYmplY3RzKCB2ZXJzZS52ZXJzZURhdGEudmVyc2VPYmplY3RzKVxuICAgICAgICAgIHZlcnNlT2JqZWN0c18gPSBjbGVhbnVwVmVyc2VPYmplY3RzKHZlcnNlT2JqZWN0c18pXG4gICAgICAgICAgdmVyc2UudmVyc2VEYXRhLnZlcnNlT2JqZWN0cyA9IHZlcnNlT2JqZWN0c19cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmVyc2VcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcnNlc1xuICB9XG4gIHJldHVybiBudWxsXG59XG5cbi8qKlxuICogZ2V0IHRoZSB2ZXJzZSBvYmplY3RzIGZvciB0aGUgcmVmZXJlbmNlIG9iamVjdFxuICogQHBhcmFtIHtvYmplY3R9IHJlZmVyZW5jZVxuICogQHBhcmFtIHtvYmplY3R9IGJvb2tPYmplY3RzIC0gcGFyc2VkIHVzZm0gZm9yIGJvb2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBsYW5ndWFnZUlkXG4gKiBAcmV0dXJuIHthcnJheXxudWxsfSAtIG9mIHZlcnNlT2JqZWN0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVyc2VzRm9yUmVmKHJlZmVyZW5jZSwgYm9va09iamVjdHMsIGxhbmd1YWdlSWQpOiBWZXJzZVJlZmVyZW5jZXNUeXBlIHtcbiAgY29uc3QgcmVmU3RyID0gYCR7cmVmZXJlbmNlLmNoYXB0ZXJ9OiR7cmVmZXJlbmNlLnZlcnNlfWBcbiAgcmV0dXJuIGdldFZlcnNlc0ZvclJlZlN0cihyZWZTdHIsIGJvb2tPYmplY3RzLCBsYW5ndWFnZUlkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlU2NyaXB0dXJlKHsgLy8gaG9vayBmb3IgZmV0Y2hpbmcgc2NyaXB0dXJlXG4gIGNvbmZpZyxcbiAgcmVhZHlGb3JGZXRjaCxcbiAgcmVmZXJlbmNlLFxuICByZXNvdXJjZTogcmVzb3VyY2VfLFxuICByZXNvdXJjZUxpbms6IHJlc291cmNlTGlua18sXG4gIHdob2xlQm9vayA9IGZhbHNlLFxufSA6IFByb3BzKSB7XG4gIHR5cGUgU3RhdGVUeXBlcyA9IHtcbiAgICBiaWJsZVVzZm06IHN0cmluZyxcbiAgICBib29rT2JqZWN0czogQm9va09iamVjdHNUeXBlLFxuICAgIGZldGNoQ291bnQ6IG51bWJlcixcbiAgICBmZXRjaGVkOiBib29sZWFuLFxuICAgIGZldGNoZWRCb29rOiBzdHJpbmcsXG4gICAgZmV0Y2hQYXJhbXM6IHtcbiAgICAgIGNvbmZpZzoge30sXG4gICAgICByZWZlcmVuY2U6IHt9LFxuICAgICAgcmVzb3VyY2VMaW5rOiBzdHJpbmcsXG4gICAgfSxcbiAgICBpZ25vcmVTaGE6IHN0cmluZ3xudWxsLFxuICAgIGluaXRpYWxpemVkOiBib29sZWFuLFxuICAgIHJlc291cmNlU3RhdGU6IHtcbiAgICAgIGJpYmxlVXNmbTogc3RyaW5nLFxuICAgICAgYm9va09iamVjdHM6IEJvb2tPYmplY3RzVHlwZSxcbiAgICAgIGNvbnRlbnQ6IHt9LFxuICAgICAgZmV0Y2hSZXNwb25zZToge30sXG4gICAgICBmZXRjaGVkUmVzb3VyY2VzOiB7XG4gICAgICAgIGJpYmxlVXNmbTogc3RyaW5nLFxuICAgICAgICBib29rT2JqZWN0czogQm9va09iamVjdHNUeXBlLFxuICAgICAgICBmZXRjaENvdW50OiBudW1iZXIsXG4gICAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgICAgc2hhOiBzdHJpbmcsXG4gICAgICAgIHVybDogc3RyaW5nLFxuICAgICAgfSxcbiAgICAgIGxvYWRpbmdSZXNvdXJjZTogYm9vbGVhbixcbiAgICAgIGxvYWRpbmdDb250ZW50OiBib29sZWFuLFxuICAgICAgcmVzb3VyY2U6IHtcbiAgICAgICAgbWFuaWZlc3Q6IHt9LFxuICAgICAgICByZXNvdXJjZUxpbms6IHt9XG4gICAgICB9LFxuICAgICAgc2hhOiBzdHJpbmcsXG4gICAgICB1cmw6IHN0cmluZyxcbiAgICB9LFxuICAgIHZlcnNlc0ZvclJlZjogYW55W10sXG4gIH1cblxuICBjb25zdCBbc3RhdGUsIHNldFN0YXRlX10gPSB1c2VTdGF0ZSh7XG4gICAgYmlibGVVc2ZtOiBudWxsLFxuICAgIGJvb2tPYmplY3RzOiBudWxsLFxuICAgIGZldGNoQ291bnQ6IDAsXG4gICAgZmV0Y2hlZDogZmFsc2UsXG4gICAgZmV0Y2hlZEJvb2s6ICcnLFxuICAgIGZldGNoUGFyYW1zOiB7XG4gICAgICBjb25maWc6IHt9LFxuICAgICAgcmVmZXJlbmNlOiB7fSxcbiAgICAgIHJlc291cmNlTGluazogJycsXG4gICAgfSxcbiAgICBpZ25vcmVTaGE6IG51bGwsXG4gICAgaW5pdGlhbGl6ZWQ6IGZhbHNlLFxuICAgIHJlc291cmNlU3RhdGU6IHtcbiAgICAgIGJvb2tPYmplY3RzOiBudWxsLFxuICAgICAgYmlibGVVc2ZtOiBudWxsLFxuICAgICAgY29udGVudDogbnVsbCxcbiAgICAgIGZldGNoUmVzcG9uc2U6IG51bGwsXG4gICAgICBmZXRjaGVkUmVzb3VyY2VzOiBudWxsLFxuICAgICAgbG9hZGluZ1Jlc291cmNlOiBmYWxzZSxcbiAgICAgIGxvYWRpbmdDb250ZW50OiBmYWxzZSxcbiAgICAgIHJlc291cmNlOiBudWxsLFxuICAgICAgc2hhOiBudWxsLFxuICAgICAgdXJsOiBudWxsLFxuICAgIH0sXG4gICAgdmVyc2VzRm9yUmVmOiBbXSxcbiAgfSlcblxuICBjb25zdCB7XG4gICAgb3duZXIsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICBicmFuY2ggPSAnbWFzdGVyJyxcbiAgICByZWYgPSBudWxsLFxuICB9ID0gcmVzb3VyY2VfIHx8IHt9XG5cbiAgY29uc3QgeyBwcm9qZWN0SWQ6IGJvb2tJZH0gPSByZWZlcmVuY2UgfHwge31cblxuICBjb25zdCBfc3RhdGU6IFN0YXRlVHlwZXMgPSBzdGF0ZSAvLyBUcmlja3k6IHdvcmstYXJvdW5kIGZvciBidWcgdGhhdCBzdGFuZGFyZCB0eXBlc2NyaXB0IHR5cGUgY2FzdGluZyBkb2VzIG5vdCB3b3JrIGluIC50c3ggZmlsZXNcbiAgY29uc3Qge1xuICAgIGJpYmxlVXNmbSxcbiAgICBib29rT2JqZWN0cyxcbiAgICBmZXRjaENvdW50LFxuICAgIGZldGNoZWQsXG4gICAgZmV0Y2hlZEJvb2ssXG4gICAgZmV0Y2hQYXJhbXMsXG4gICAgaWdub3JlU2hhLFxuICAgIGluaXRpYWxpemVkLFxuICAgIHJlc291cmNlU3RhdGUsXG4gICAgdmVyc2VzRm9yUmVmLFxuICB9ID0gX3N0YXRlXG4gIGNvbnN0IGZldGNoZWRSZXNvdXJjZXMgPSByZXNvdXJjZVN0YXRlPy5mZXRjaGVkUmVzb3VyY2VzXG5cbiAgZnVuY3Rpb24gc2V0U3RhdGUobmV3U3RhdGUpIHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7IC4uLnByZXZTdGF0ZSwgLi4ubmV3U3RhdGUgfSkpXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyZWFkeUZvckZldGNoKSB7XG4gICAgICBpbml0aWF0ZUJvb2tGZXRjaCgpXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaW5pdGlhdGVCb29rRmV0Y2goKSB7XG4gICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlIC0gcmVhZHlGb3JGZXRjaCB0cnVlLCBpbml0aWFsaXppbmdgKVxuICAgICAgbGV0IHJlc291cmNlTGluayA9IHJlYWR5Rm9yRmV0Y2ggJiYgcmVzb3VyY2VMaW5rX1xuXG4gICAgICBpZiAoIXJlc291cmNlTGlua18gJiYgcmVzb3VyY2VfKSB7XG4gICAgICAgIGNvbnN0IHJlZl8gPSByZWYgfHwgYnJhbmNoXG5cbiAgICAgICAgcmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHtcbiAgICAgICAgICBvd25lcixcbiAgICAgICAgICBsYW5ndWFnZUlkLFxuICAgICAgICAgIHJlc291cmNlSWQ6IGJvb2tJZCxcbiAgICAgICAgICByZWY6IHJlZl8sXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJvb2tSZWYgPSB7IC4uLnJlZmVyZW5jZSB9XG5cbiAgICAgIGlmICh3aG9sZUJvb2spIHtcbiAgICAgICAgZGVsZXRlIGJvb2tSZWYuY2hhcHRlciAvLyByZW1vdmUgdGhlIGNoYXB0ZXIgYW5kIHZlcnNlIHNvIHRoZSB3aG9sZSBib29rIGlzIGZldGNoZWRcbiAgICAgICAgZGVsZXRlIGJvb2tSZWYudmVyc2VcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc291cmNlTGluayAhPT0gZmV0Y2hQYXJhbXM/LnJlc291cmNlTGluaykge1xuICAgICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlIC0gZm9yICR7cmVzb3VyY2VfPy5wcm9qZWN0SWR9IHJlc291cmNlTGluayBpcyBub3cgJHtyZXNvdXJjZUxpbmt9IGFuZCByZXNvdXJjZUxpbmtfPSR7cmVzb3VyY2VMaW5rX31gKVxuICAgICAgfSBlbHNlIGlmIChib29rUmVmICE9PSBmZXRjaFBhcmFtcz8ucmVmZXJlbmNlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUgLSBib29rIGNoYW5nZWQgdG8gJHtyZXNvdXJjZV8/LnByb2plY3RJZH0gcmVzb3VyY2VMaW5rIGlzIG5vdyAke3Jlc291cmNlTGlua31gKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBuZXdGZXRjaFBhcmFtcyA9IHtcbiAgICAgICAgY29uZmlnLFxuICAgICAgICByZWZlcmVuY2U6IGJvb2tSZWYsXG4gICAgICAgIHJlc291cmNlTGluayxcbiAgICAgIH1cblxuICAgICAgaWYgKCFpc0VxdWFsKG5ld0ZldGNoUGFyYW1zLCBmZXRjaFBhcmFtcykpIHtcbiAgICAgICAgc2V0U3RhdGUoe1xuICAgICAgICAgIGZldGNoUGFyYW1zOiBuZXdGZXRjaFBhcmFtcyxcbiAgICAgICAgICBmZXRjaGVkOiBmYWxzZSxcbiAgICAgICAgICBpbml0aWFsaXplZDogdHJ1ZSxcbiAgICAgICAgfSlcblxuICAgICAgICBmZXRjaEJvb2sobmV3RmV0Y2hQYXJhbXMpXG4gICAgICB9XG4gICAgfVxuICB9LCBbXG4gICAgcmVhZHlGb3JGZXRjaCxcbiAgICBvd25lcixcbiAgICBsYW5ndWFnZUlkLFxuICAgIGJvb2tJZCxcbiAgICBicmFuY2gsXG4gICAgcmVmLFxuICBdKVxuXG4gIC8qKlxuICAgKiBkbyBhIGZldGNoIG9mIG1hbmlmZXN0IGFuZCBib29rIG9mIHRoZSBiaWJsZSBzcGVjaWZpZWQgaW4gZmV0Y2hQYXJhbXNcbiAgICogQHBhcmFtIHtvYmplY3R9IGZldGNoUGFyYW1zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpZ25vcmVTaGEgLSBvcHRpb25hbCBwcmV2aW91cyBzaGEgLSBpZ25vcmUgcmVzcG9uc2VzIHRoYXQgY2FtZSBiYWNrIGZvciB0aGlzIHByZXZpb3VzIGJvb2sgY29tbWl0XG4gICAqL1xuICBhc3luYyBmdW5jdGlvbiBmZXRjaEJvb2soZmV0Y2hQYXJhbXMsIGlnbm9yZVNoYSA9IG51bGwpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZmV0Y2hMaW5rID0gYCR7ZmV0Y2hQYXJhbXM/LnJlc291cmNlTGlua30vJHtmZXRjaFBhcmFtcz8ucmVmZXJlbmNlPy5wcm9qZWN0SWR9YFxuXG4gICAgICBpZiAoaWdub3JlU2hhKSB7XG4gICAgICAgIGNvbnN0IGZldGNoZWRTaGFNYXRjaGVzSWdub3JlU2hhID0gaWdub3JlU2hhID09PSByZXNvdXJjZVN0YXRlPy5zaGEgLy8gd2Ugd2lsbCByZWxvYWQgaWYgaWdub3JlU2hhIGdpdmVuIGFuZCBpdCBtYXRjaGVzIGN1cnJlbnQgc2hhXG4gICAgICAgIGlmICgoZmV0Y2hMaW5rID09PSByZXNvdXJjZVN0YXRlPy5yZXNvdXJjZT8ucmVzb3VyY2VMaW5rKSAmJiAhZmV0Y2hlZFNoYU1hdGNoZXNJZ25vcmVTaGEpIHsgLy8gc2VlIGlmIHdlIGFscmVhZHkgZmV0Y2hlZCB0aGlzXG4gICAgICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZS5mZXRjaEJvb2soKSAtIEFscmVhZHkgZmV0Y2hpbmcgcmVzb3VyY2VMaW5rICR7cmVzb3VyY2VTdGF0ZT8ucmVzb3VyY2U/LnJlc291cmNlTGlua30gYW5kIGlnbm9yZVNoYT0ke2lnbm9yZVNoYX1gLCBmZXRjaFBhcmFtcylcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBfZmV0Y2hDb3VudCA9IGZldGNoQ291bnQgKyAxXG4gICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlLmZldGNoQm9vaygpIC0gRkVUQ0hJTkcgYmlibGUgJHtyZXNvdXJjZV8/LnByb2plY3RJZH0gcmVzb3VyY2VMaW5rIGlzIG5vdyAke2ZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmt9IGFuZCBpZ25vcmVTaGE9JHtpZ25vcmVTaGF9YCwgZmV0Y2hQYXJhbXMpXG4gICAgICBzZXRTdGF0ZSh7XG4gICAgICAgIGZldGNoQ291bnQ6IF9mZXRjaENvdW50LFxuICAgICAgICBmZXRjaGVkOiBmYWxzZSxcbiAgICAgICAgaWdub3JlU2hhLFxuICAgICAgICByZXNvdXJjZVN0YXRlOiB7IGxvYWRpbmdSZXNvdXJjZTogdHJ1ZSB9LFxuICAgICAgfSlcblxuICAgICAgLy8gZmV0Y2ggbWFuaWZlc3QgZGF0YVxuICAgICAgYXdhaXQgZGVsYXkoMTAwKVxuICAgICAgY29uc3QgX3Jlc291cmNlID0gYXdhaXQgY29yZS5yZXNvdXJjZUZyb21SZXNvdXJjZUxpbmsoZmV0Y2hQYXJhbXMpXG5cbiAgICAgIGlmICghX3Jlc291cmNlPy5tYW5pZmVzdCB8fCAhX3Jlc291cmNlPy5wcm9qZWN0Py5maWxlKSB7XG4gICAgICAgIGNvbnN0IGVycm9yTXNnID0gX3Jlc291cmNlPy5tYW5pZmVzdCA/ICdwYXJzaW5nIHJlc291cmNlIG1hbmlmZXN0JyA6ICdsb2FkaW5nIHJlc291cmNlIG1hbmlmZXN0J1xuICAgICAgICBjb25zb2xlLndhcm4oYHVzZVNjcmlwdHVyZS5mZXRjaEJvb2soKSAtIGVycm9yICR7ZXJyb3JNc2d9YCwgZmV0Y2hQYXJhbXMgKVxuICAgICAgICBzZXRTdGF0ZSh7XG4gICAgICAgICAgcmVzb3VyY2VTdGF0ZToge1xuICAgICAgICAgICAgbG9hZGluZ1Jlc291cmNlOiBmYWxzZSxcbiAgICAgICAgICAgIHJlc291cmNlOiBfcmVzb3VyY2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUuZmV0Y2hCb29rKCkgLSBMT0FERUQgYmlibGUgbWFuaWZlc3QsIGZldGNoaW5nIGJvb2sgJHtyZXNvdXJjZV8/LnByb2plY3RJZH0gcmVzb3VyY2VMaW5rIGlzIG5vdyAke2ZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmt9IGFuZCByZXNvdXJjZUxpbmtfPSR7ZmV0Y2hQYXJhbXM/LnJlc291cmNlTGlua199YCwgZmV0Y2hQYXJhbXMpXG4gICAgICBhd2FpdCBkZWxheSgxMDApXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IF9yZXNvdXJjZT8ucHJvamVjdD8uZmlsZSgpXG4gICAgICAvLyBwYXJzZSBib29rIHVzZm1cbiAgICAgIGNvbnN0IGJpYmxlVXNmbSA9IHJlc3BvbnNlICYmIGNvcmUuZ2V0UmVzcG9uc2VEYXRhKHJlc3BvbnNlKVxuICAgICAgYXdhaXQgZGVsYXkoMTAwKVxuICAgICAgY29uc3QgYm9va09iamVjdHMgPSBiaWJsZVVzZm0gJiYgdXNmbWpzLnRvSlNPTihiaWJsZVVzZm0pIC8vIGNvbnZlcnQgdG8gYmlibGUgb2JqZWN0c1xuXG4gICAgICBpZiAoIWJvb2tPYmplY3RzKSB7XG4gICAgICAgIGNvbnN0IGVycm9yTXNnID0gYmlibGVVc2ZtID8gJ2ZldGNoaW5nIGJvb2sgb2YgdGhlIGJpYmxlJyA6ICdwYXJzaW5nIGJvb2sgb2YgdGhlIGJpYmxlJ1xuICAgICAgICBjb25zb2xlLndhcm4oYHVzZVNjcmlwdHVyZS5mZXRjaEJvb2soKSAtIGVycm9yICR7ZXJyb3JNc2d9YCwgZmV0Y2hQYXJhbXMgKVxuICAgICAgICBzZXRTdGF0ZSh7XG4gICAgICAgICAgcmVzb3VyY2VTdGF0ZToge1xuICAgICAgICAgICAgbG9hZGluZ1Jlc291cmNlOiBmYWxzZSxcbiAgICAgICAgICAgIHJlc291cmNlOiBfcmVzb3VyY2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgbmFtZSwgc2hhLCB1cmwgfSA9IHJlc3BvbnNlPy5kYXRhIHx8IHt9XG5cbiAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUuZmV0Y2hCb29rKCkgLSBMT0FERUQgYmlibGUgYm9vayAke3Jlc291cmNlXz8ucHJvamVjdElkfSByZXNvdXJjZUxpbmsgaXMgbm93ICR7ZmV0Y2hQYXJhbXM/LnJlc291cmNlTGlua30gYW5kIHJlc291cmNlTGlua189JHtmZXRjaFBhcmFtcz8ucmVzb3VyY2VMaW5rX31gLCBmZXRjaFBhcmFtcylcbiAgICAgIHNldFN0YXRlKFxuICAgICAgICB7XG4gICAgICAgICAgcmVzb3VyY2VTdGF0ZToge1xuICAgICAgICAgICAgbG9hZGluZ1Jlc291cmNlOiBmYWxzZSxcbiAgICAgICAgICAgIGZldGNoZWRSZXNvdXJjZXM6IHtcbiAgICAgICAgICAgICAgLi4uX3Jlc291cmNlLFxuICAgICAgICAgICAgICBiaWJsZVVzZm0sXG4gICAgICAgICAgICAgIGJvb2tPYmplY3RzLFxuICAgICAgICAgICAgICBmZXRjaENvdW50OiBfZmV0Y2hDb3VudCxcbiAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgcmVmZXJlbmNlOiBmZXRjaFBhcmFtcz8ucmVmZXJlbmNlLFxuICAgICAgICAgICAgICBzaGEsXG4gICAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIClcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGB1c2VTY3JpcHR1cmUuZmV0Y2hCb29rKCkgLSBoYXJkIGVycm9yIGxvYWRpbmcgcmVzb3VyY2VgLCBmZXRjaFBhcmFtcywgZSApXG4gICAgICBzZXRTdGF0ZSh7XG4gICAgICAgIHJlc291cmNlU3RhdGU6IHtcbiAgICAgICAgICBsb2FkaW5nUmVzb3VyY2U6IGZhbHNlLFxuICAgICAgICAgIHJlc291cmNlOiBudWxsLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUgLSBmb3IgJHtyZXNvdXJjZV8/LnByb2plY3RJZH0gcmVhZHlGb3JGZXRjaCBpcyBub3cgJHtyZWFkeUZvckZldGNofWApXG4gIH0sIFtyZWFkeUZvckZldGNoXSlcblxuICAvKipcbiAgICogbWFrZSBzdXJlIGxhc3QgZmV0Y2ggcmVzcG9uc2UgaXMgZm9yIGN1cnJlbnQgYm9vay9icmFuY2hcbiAgICovXG4gIGZ1bmN0aW9uIHZhbGlkYXRlUmVzcG9uc2UoKSB7XG4gICAgbGV0IGlzU2FtZUJvb2sgPSBmYWxzZVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBleHBlY3RlZEJvb2tJZCA9IGJvb2tJZCB8fCAnenp6J1xuICAgIGNvbnN0IGZldGNoZWRCb29rID0gZ2V0Qm9va05hbWVGcm9tVXNmbUZpbGVOYW1lKGZldGNoZWRSZXNvdXJjZXM/Lm5hbWUpXG4gICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZS52YWxpZGF0ZVJlc3BvbnNlKCkgLSBDdXJyZW50IGJvb2tJZCBpcyAke2Jvb2tJZH0gYW5kIHNlZWluZyAke2ZldGNoZWRCb29rfSBpbiBVU0ZNYClcbiAgICBpc1NhbWVCb29rID0gZmV0Y2hlZEJvb2s/LnRvTG93ZXJDYXNlKCk/LmluY2x1ZGVzKGJvb2tJZClcblxuICAgIGNvbnN0IHNoYSA9IGZldGNoZWRSZXNvdXJjZXM/LnNoYSB8fCBudWxsXG4gICAgY29uc3QgdXJsID0gZmV0Y2hlZFJlc291cmNlcz8udXJsIHx8IG51bGxcblxuICAgIGlmIChpc1NhbWVCb29rKSB7IC8vIGFsc28gbWFrZSBzdXJlIGl0IGlzIHRoZSBzYW1lIGJyYW5jaFxuICAgICAgY29uc3QgZmV0Y2hlZEJyYW5jaCA9IGdldEJyYW5jaE5hbWUodXJsKVxuICAgICAgY29uc3QgZmV0Y2hpbmdCcmFuY2ggPSBnZXRCcmFuY2hOYW1lKGZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmspXG5cbiAgICAgIGlmIChmZXRjaGVkQnJhbmNoICE9PSBmZXRjaGluZ0JyYW5jaCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlLnZhbGlkYXRlUmVzcG9uc2UoKSBpbnZhbGlkIGJyYW5jaCwgZXhwZWN0ZWQgYnJhbmNoIGlzICR7ZmV0Y2hpbmdCcmFuY2h9LCBidXQgZmV0Y2hlZEJyYW5jaCBpcyAke2ZldGNoZWRCcmFuY2h9YCwgeyBzaGEsIHVybCB9KVxuICAgICAgICBpc1NhbWVCb29rID0gZmFsc2VcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZS52YWxpZGF0ZVJlc3BvbnNlKCkgLSAgaW52YWxpZCBib29rLCBleHBlY3RlZEJvb2tJZCBpcyAke2V4cGVjdGVkQm9va0lkfSwgYnV0IHJlY2VpdmVkIGJvb2sgbmFtZSAke2ZldGNoZWRCb29rfWAsIHsgc2hhLCB1cmwgfSlcbiAgICB9XG5cbiAgICBpZiAoaWdub3JlU2hhID09PSBzaGEpIHtcbiAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUudmFsaWRhdGVSZXNwb25zZSgpIC0gdGhlIHNoYSBpcyB0aGUgc2FtZSBhcyB0aGUgaWdub3JlIHNoYSAke3NoYX1gLCB7IHNoYSwgdXJsIH0pXG4gICAgICBpc1NhbWVCb29rID0gZmFsc2VcbiAgICB9XG5cbiAgICBpZiAoaXNTYW1lQm9vaykge1xuICAgICAgY29uc3QgYmlibGVVc2ZtXyA9IGZldGNoZWRSZXNvdXJjZXM/LmJpYmxlVXNmbVxuICAgICAgY29uc3QgYm9va09iamVjdHMgPSBmZXRjaGVkUmVzb3VyY2VzPy5ib29rT2JqZWN0c1xuICAgICAgY29uc3QgdmVyc2VzRm9yUmVmID0gZmV0Y2hWZXJzZXNGb3JSZWYoYm9va09iamVjdHMpXG5cbiAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUudmFsaWRhdGVSZXNwb25zZSgpIC0gY29ycmVjdCBib29rLCBleHBlY3RlZEJvb2tJZCBpcyAke2V4cGVjdGVkQm9va0lkfWAsIHsgc2hhLCB1cmwgfSlcbiAgICAgIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgICAgICBiaWJsZVVzZm06IGJpYmxlVXNmbV8sXG4gICAgICAgIGJvb2tPYmplY3RzLFxuICAgICAgICBmZXRjaGVkOiB0cnVlLFxuICAgICAgICBmZXRjaGVkQm9vazogZXhwZWN0ZWRCb29rSWQsXG4gICAgICAgIGlnbm9yZVNoYTogbnVsbCxcbiAgICAgICAgcmVzb3VyY2VTdGF0ZToge1xuICAgICAgICAgIGJvb2tPYmplY3RzLFxuICAgICAgICAgIGJpYmxlVXNmbTogYmlibGVVc2ZtXyxcbiAgICAgICAgICBsb2FkaW5nUmVzb3VyY2U6IGZhbHNlLFxuICAgICAgICAgIGxvYWRpbmdDb250ZW50OiBmYWxzZSxcbiAgICAgICAgICByZXNvdXJjZTogZmV0Y2hlZFJlc291cmNlcyxcbiAgICAgICAgICBzaGEsXG4gICAgICAgICAgdXJsLFxuICAgICAgICB9LFxuICAgICAgICB2ZXJzZXNGb3JSZWYsXG4gICAgICB9XG5cbiAgICAgIHNldFN0YXRlKG5ld1N0YXRlKVxuICAgIH1cbiAgfVxuXG4gIHVzZURlZXBDb21wYXJlRWZmZWN0KCgpID0+IHsgLy8gdmFsaWRhdGUgcmVzcG9uc2UgdG8gbWFrZSBzdXJlIGZyb20gbGF0ZXN0IHJlcXVlc3RcbiAgICBpZiAocmVhZHlGb3JGZXRjaCAmJiBmZXRjaGVkUmVzb3VyY2VzKSB7XG4gICAgICBpZiAoIWZldGNoZWQgJiYgZmV0Y2hlZFJlc291cmNlcz8uZmV0Y2hDb3VudCA9PT0gZmV0Y2hDb3VudCkge1xuICAgICAgICBkZWxheSg1MDApLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHZhbGlkYXRlUmVzcG9uc2UoKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgfSwgW3sgcmVhZHlGb3JGZXRjaCwgZmV0Y2hlZFJlc291cmNlcyB9XSlcblxuICBjb25zdCByZXNvdXJjZSA9IHJlc291cmNlU3RhdGU/LnJlc291cmNlXG4gIGNvbnN0IHsgdGl0bGUsIHZlcnNpb24gfSA9IHBhcnNlUmVzb3VyY2VNYW5pZmVzdChyZXNvdXJjZSlcbiAgY29uc3QgbG9hZGluZyA9IHJlc291cmNlU3RhdGU/LmxvYWRpbmdSZXNvdXJjZSB8fCByZXNvdXJjZVN0YXRlPy5sb2FkaW5nQ29udGVudCB8fCAhcmVhZHlGb3JGZXRjaFxuICBjb25zdCBjb250ZW50Tm90Rm91bmRFcnJvciA9ICFyZXNvdXJjZVN0YXRlPy5iaWJsZVVzZm1cbiAgY29uc3Qgc2NyaXB0dXJlTm90TG9hZGVkRXJyb3IgPSAhcmVzb3VyY2VTdGF0ZT8uYm9va09iamVjdHNcbiAgY29uc3QgbWFuaWZlc3ROb3RGb3VuZEVycm9yID0gIXJlc291cmNlPy5tYW5pZmVzdFxuICBjb25zdCBpbnZhbGlkTWFuaWZlc3RFcnJvciA9ICF0aXRsZSB8fCAhdmVyc2lvbiB8fCAhbGFuZ3VhZ2VJZFxuICBjb25zdCBlcnJvciA9IHJlYWR5Rm9yRmV0Y2ggJiYgaW5pdGlhbGl6ZWQgJiYgIWxvYWRpbmcgJiZcbiAgICAoY29udGVudE5vdEZvdW5kRXJyb3IgfHwgc2NyaXB0dXJlTm90TG9hZGVkRXJyb3IgfHwgbWFuaWZlc3ROb3RGb3VuZEVycm9yIHx8IGludmFsaWRNYW5pZmVzdEVycm9yKVxuICBjb25zdCByZXNvdXJjZVN0YXR1cyA9IHtcbiAgICBbTE9BRElOR19TVEFURV06IGxvYWRpbmcsXG4gICAgW0NPTlRFTlRfTk9UX0ZPVU5EX0VSUk9SXTogY29udGVudE5vdEZvdW5kRXJyb3IsXG4gICAgW1NDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SXTogc2NyaXB0dXJlTm90TG9hZGVkRXJyb3IsXG4gICAgW01BTklGRVNUX05PVF9MT0FERURfRVJST1JdOiBtYW5pZmVzdE5vdEZvdW5kRXJyb3IsXG4gICAgW0lOVkFMSURfTUFOSUZFU1RfRVJST1JdOiBpbnZhbGlkTWFuaWZlc3RFcnJvcixcbiAgICBbRVJST1JfU1RBVEVdOiBlcnJvcixcbiAgICBbSU5JVElBTElaRURfU1RBVEVdOiBpbml0aWFsaXplZCxcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFyZWFkeUZvckZldGNoKSB7XG4gICAgICBpZiAoaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgc2V0U3RhdGUoeyBpbnRpYWxpemVkOiBmYWxzZSB9KVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIWluaXRpYWxpemVkKSB7XG4gICAgICBpZiAobG9hZGluZykgeyAvLyBvbmNlIGZpcnN0IGxvYWQgaGFzIGJlZ3VuLCB3ZSBhcmUgaW5pdGlhbGl6ZWRcbiAgICAgICAgc2V0U3RhdGUoeyBpbnRpYWxpemVkOiB0cnVlIH0pXG4gICAgICB9XG4gICAgfVxuICB9LCBbbG9hZGluZywgcmVhZHlGb3JGZXRjaF0pXG5cbiAgLyoqXG4gICAqIGdldCB2ZXJzZXMgZm9yIHJlZlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVmU3RyXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBjb250ZW50X1xuICAgKi9cbiAgZnVuY3Rpb24gX2dldFZlcnNlc0ZvclJlZihyZWZTdHIsIGNvbnRlbnRfID0gYm9va09iamVjdHMpOiBWZXJzZVJlZmVyZW5jZXNUeXBlIHtcbiAgICBpZiAoY29udGVudF8pIHtcbiAgICAgIHJldHVybiBnZXRWZXJzZXNGb3JSZWZTdHIocmVmU3RyLCBjb250ZW50XywgbGFuZ3VhZ2VJZClcbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIC8qKlxuICAgKiB1cGRhdGUgdmVyc2UgZGF0YSBmb3IgY3VycmVudCBib29rXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaGFwdGVyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2ZXJzZVxuICAgKiBAcGFyYW0ge29iamVjdH0gdmVyc2VEYXRhXG4gICAqL1xuICBmdW5jdGlvbiB1cGRhdGVWZXJzZShjaGFwdGVyLCB2ZXJzZSwgdmVyc2VEYXRhKSB7XG4gICAgaWYgKGJvb2tPYmplY3RzKSB7XG4gICAgICBjb25zdCBib29rT2JqZWN0c18gPSB7IC4uLmJvb2tPYmplY3RzIH0gLy8gc2hhbGxvdyBjb3B5XG5cbiAgICAgIGlmIChib29rT2JqZWN0c18/LmNoYXB0ZXJzKSB7XG4gICAgICAgIGJvb2tPYmplY3RzXy5jaGFwdGVycyA9IHsgLi4uYm9va09iamVjdHNfLmNoYXB0ZXJzIH0gLy8gc2hhbGxvdyBjb3B5IGNoYXB0ZXJzXG5cbiAgICAgICAgaWYgKGJvb2tPYmplY3RzXy5jaGFwdGVyc1tjaGFwdGVyXSkge1xuICAgICAgICAgIGJvb2tPYmplY3RzXy5jaGFwdGVyc1tjaGFwdGVyXSA9IHsgLi4uYm9va09iamVjdHNfLmNoYXB0ZXJzW2NoYXB0ZXJdIH0gLy8gc2hhbGxvdyBjb3B5IHZlcnNlc1xuICAgICAgICAgIGJvb2tPYmplY3RzXy5jaGFwdGVyc1tjaGFwdGVyXVt2ZXJzZV0gPSB2ZXJzZURhdGFcbiAgICAgICAgICBzZXRTdGF0ZSh7IGJvb2tPYmplY3RzOiBib29rT2JqZWN0c18gfSlcbiAgICAgICAgICByZXR1cm4gYm9va09iamVjdHNfXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgdGhlIHZlcnNlcyBmb3IgY3VycmVudCByZWZlcmVuY2Ugb3IgcmVmZXJlbmNlIHJhbmdlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBfYm9va09iamVjdHNcbiAgICovXG4gIGZ1bmN0aW9uIGZldGNoVmVyc2VzRm9yUmVmKF9ib29rT2JqZWN0czogQm9va09iamVjdHNUeXBlID0gYm9va09iamVjdHMpOiBWZXJzZU9iamVjdHNUeXBlIHtcbiAgICBsZXQgbmV3VmVyc2VzRm9yUmVmID0gW11cblxuICAgIGlmIChfYm9va09iamVjdHMpIHtcbiAgICAgIG5ld1ZlcnNlc0ZvclJlZiA9IGdldFZlcnNlc0ZvclJlZihyZWZlcmVuY2UsIF9ib29rT2JqZWN0cywgbGFuZ3VhZ2VJZClcbiAgICAgIGlmIChyZWZlcmVuY2U/LnZlcnNlID09PSAnZnJvbnQnKSB7IC8vIHNwZWNpYWwgaGFuZGxpbmcgZm9yIGZyb250IG1hdHRlclxuICAgICAgICBjb25zdCB2ZXJzZURhdGEgPSBuZXdWZXJzZXNGb3JSZWY/LlswXT8udmVyc2VEYXRhXG4gICAgICAgIGNvbnN0IGluaXRpYWxWZXJzZU9iamVjdHMgPSB2ZXJzZURhdGE/LnZlcnNlT2JqZWN0c1xuICAgICAgICBpZiAoaW5pdGlhbFZlcnNlT2JqZWN0cyAmJiAhdmVyc2VPYmplY3RzSGF2ZVdvcmRzKGluaXRpYWxWZXJzZU9iamVjdHMpKSB7XG4gICAgICAgICAgZm9yIChjb25zdCB2byBvZiBpbml0aWFsVmVyc2VPYmplY3RzKSB7XG4gICAgICAgICAgICBpZiAodm9bJ3RhZyddID09PSAnZCcpIHsgLy8gY2hlY2sgZm9yIGRlc2NyaXB0aXZlIHRpdGxlXG4gICAgICAgICAgICAgIC8vIHJlcGFyc2Ugc28gZGVzY3JpcHRpdmUgdGl0bGUgdGV4dCBpcyBicm9rZW4gaW50byBhbGlnbi1hYmxlIHdvcmRzXG4gICAgICAgICAgICAgIGxldCB2ZXJzZVRleHQgPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmdldFVzZm1Gb3JWZXJzZUNvbnRlbnQoeyB2ZXJzZU9iamVjdHM6IGluaXRpYWxWZXJzZU9iamVjdHMgfSlcbiAgICAgICAgICAgICAgY29uc3QgeyB0YXJnZXRWZXJzZU9iamVjdHMgfSA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UoaW5pdGlhbFZlcnNlT2JqZWN0cywgdmVyc2VUZXh0KVxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0YXJnZXRWZXJzZU9iamVjdHMpXG4gICAgICAgICAgICAgIHZlcnNlRGF0YS52ZXJzZU9iamVjdHMgPSB0YXJnZXRWZXJzZU9iamVjdHMgLy8gcmVwbGFjZSB2ZXJzZU9iamVjdHMgd2l0aCBhbGlnbi1hYmxlIGNvbnRlbnRcbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXdWZXJzZXNGb3JSZWZcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIGZvcmNlIHJlbG9hZCBvZiByZXNvdXJjZVxuICAgKiBAcGFyYW0ge3N0cmluZ3x1bmRlZmluZWR9IGlnbm9yZVNoYSAtIG9wdGlvbmFsIHNoYSB0byBpZ25vcmVcbiAgICogQHBhcmFtIHtzdHJpbmd8dW5kZWZpbmVkfSByZWYgLSBvcHRpb25hbCByZWZlcmVuY2UgdG8gZmV0Y2hcbiAgICovXG4gIGZ1bmN0aW9uIHJlbG9hZFJlc291cmNlKGlnbm9yZVNoYSA9IG51bGwsIHJlZiA9IG51bGwpIHtcbiAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlLnJlbG9hZFJlc291cmNlKCkgaWdub3JlU2hhOiAke2lnbm9yZVNoYX1gIClcbiAgICBjb25zdCBfZmV0Y2hQYXJhbXMgPSB7IC4uLmZldGNoUGFyYW1zIH1cblxuICAgIGlmIChyZWYgJiYgZmV0Y2hQYXJhbXM/LnJlc291cmNlTGluaykge1xuICAgICAgY29uc3Qge1xuICAgICAgICBvd25lcixcbiAgICAgICAgbGFuZ3VhZ2VJZCxcbiAgICAgICAgcmVzb3VyY2VJZCxcbiAgICAgICAgcmVmOiBfcmVmLFxuICAgICAgfSA9IHBhcnNlUmVzb3VyY2VMaW5rKGZldGNoUGFyYW1zLnJlc291cmNlTGluaylcblxuICAgICAgaWYgKHJlZiAhPT0gX3JlZikgeyAvLyBpZiByZWYgY2hhbmdlZCwgdXBkYXRlIHJlc291cmNlbGlua1xuICAgICAgICBjb25zdCBfcmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHtcbiAgICAgICAgICBvd25lcixcbiAgICAgICAgICBsYW5ndWFnZUlkLFxuICAgICAgICAgIHJlc291cmNlSWQsXG4gICAgICAgICAgcmVmLFxuICAgICAgICB9KVxuICAgICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlLnJlbG9hZFJlc291cmNlKCkgb2xkIHJlZiBpcyBkaWZmZXJlbnQgJHtfcmVmfSwgc3dpdGNoaW5nIHRvIGxvYWQgcmVmOiAke3JlZn0sIG5ldyByZXNvdXJjZUxpbms6ICR7X3Jlc291cmNlTGlua31gIClcbiAgICAgICAgX2ZldGNoUGFyYW1zLnJlc291cmNlTGluayA9IF9yZXNvdXJjZUxpbmtcbiAgICAgIH1cbiAgICB9XG4gICAgZmV0Y2hCb29rKF9mZXRjaFBhcmFtcywgaWdub3JlU2hhKVxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCBjdXJyZW50Qm9va1JlZiA9IGZldGNoUGFyYW1zPy5yZWZlcmVuY2U/LnByb2plY3RJZFxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGN1cnJlbnRCb29rUmVmKSB7XG4gICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlIGZldGNoZWQgYm9vayBjaGFuZ2VkIHRvICR7Y3VycmVudEJvb2tSZWZ9LCAke3Jlc291cmNlTGlua199YCwgZmV0Y2hQYXJhbXMgKVxuICAgICAgc2V0U3RhdGUoeyBib29rT2JqZWN0czogbnVsbCwgYmlibGVVc2ZtOiBudWxsIH0pXG4gICAgfVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgfSwgW2N1cnJlbnRCb29rUmVmXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUgYm9vayByZWYgY2hhbmdlZCB0byAke2Jvb2tJZH0sICR7cmVzb3VyY2VMaW5rX31gKVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgfSwgW2Jvb2tJZF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBleHBlY3RlZEJvb2tJZCA9IGJvb2tJZCB8fCAnJ1xuICAgIGNvbnN0IGZldGNoZWRCb29rU2FtZSA9IGZldGNoZWRCb29rICYmIChmZXRjaGVkQm9vayA9PT0gZXhwZWN0ZWRCb29rSWQpXG4gICAgbGV0IF92ZXJzZXNGb3JSZWYgPSBbXVxuXG4gICAgaWYgKCFmZXRjaGVkQm9va1NhbWUpIHtcbiAgICAgIC8vIGlmIChleHBlY3RlZEJvb2tJZCAmJiBmZXRjaGVkQm9vaykge1xuICAgICAgLy8gICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlIGV4cGVjdGVkIGJvb2sgJHtleHBlY3RlZEJvb2tJZH0gYnV0IGZldGNoZWQgYm9vayB3YXMgJHtmZXRjaGVkQm9va30gLSBjbGVhcmluZ2ApXG4gICAgICAvLyB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IF9ib29rT2JqZWN0cyA9IGZldGNoZWRCb29rU2FtZSA/IGJvb2tPYmplY3RzIDogbnVsbFxuICAgICAgX3ZlcnNlc0ZvclJlZiA9IGZldGNoVmVyc2VzRm9yUmVmKF9ib29rT2JqZWN0cylcbiAgICAgIC8vIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUgX2Jvb2tPYmplY3RzIGlzICR7ISFfYm9va09iamVjdHN9IGFuZCBib29rcyBhcmUgdGhlIHNhbWUgJHtmZXRjaGVkQm9va31gLCB7IGNvbnRlbnQsIGZldGNoUGFyYW1zIH0pXG4gICAgfVxuXG4gICAgaWYgKCFpc0VxdWFsKF92ZXJzZXNGb3JSZWYsIHZlcnNlc0ZvclJlZikpIHtcbiAgICAgIHNldFN0YXRlKHsgdmVyc2VzRm9yUmVmOiBfdmVyc2VzRm9yUmVmIH0pXG4gICAgfVxuICB9LCBbcmVmZXJlbmNlXSlcblxuICByZXR1cm4ge1xuICAgIGJpYmxlVXNmbSxcbiAgICBib29rT2JqZWN0cyxcbiAgICBnZXRWZXJzZXNGb3JSZWY6IF9nZXRWZXJzZXNGb3JSZWYsXG4gICAgcmVmZXJlbmNlOiBmZXRjaFBhcmFtcz8ucmVmZXJlbmNlLFxuICAgIHJlbG9hZFJlc291cmNlLFxuICAgIHJlc291cmNlTGluazogZmV0Y2hQYXJhbXM/LnJlc291cmNlTGluayxcbiAgICByZXNvdXJjZVN0YXRlLCAvLyBzdGF0ZSBpbmZvcm1hdGlvbiBmb3IgbGF0ZXN0IGZldGNoZWQgcmVzb3VyY2VcbiAgICByZXNvdXJjZVN0YXR1cywgLy8gc3RhdHVzIGZsYWdzIGZvciBmZXRjaGVkIHJlc291cmNlXG4gICAgdGl0bGUsXG4gICAgdXBkYXRlVmVyc2UsXG4gICAgdmVyc2lvbixcbiAgICB2ZXJzZXNGb3JSZWYsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IjsrQ0FDQSxxSkFBQUEsbUJBQUEsWUFBQUEsb0JBQUEsV0FBQUMsQ0FBQSxTQUFBQyxDQUFBLEVBQUFELENBQUEsT0FBQUUsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLFNBQUEsRUFBQUMsQ0FBQSxHQUFBSCxDQUFBLENBQUFJLGNBQUEsRUFBQUMsQ0FBQSxHQUFBSixNQUFBLENBQUFLLGNBQUEsY0FBQVAsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsSUFBQUQsQ0FBQSxDQUFBRCxDQUFBLElBQUFFLENBQUEsQ0FBQU8sS0FBQSxLQUFBQyxDQUFBLHdCQUFBQyxNQUFBLEdBQUFBLE1BQUEsT0FBQUMsQ0FBQSxHQUFBRixDQUFBLENBQUFHLFFBQUEsa0JBQUFDLENBQUEsR0FBQUosQ0FBQSxDQUFBSyxhQUFBLHVCQUFBQyxDQUFBLEdBQUFOLENBQUEsQ0FBQU8sV0FBQSw4QkFBQUMsT0FBQWpCLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLFdBQUFDLE1BQUEsQ0FBQUssY0FBQSxDQUFBUCxDQUFBLEVBQUFELENBQUEsSUFBQVMsS0FBQSxFQUFBUCxDQUFBLEVBQUFpQixVQUFBLE1BQUFDLFlBQUEsTUFBQUMsUUFBQSxTQUFBcEIsQ0FBQSxDQUFBRCxDQUFBLFdBQUFrQixNQUFBLG1CQUFBakIsQ0FBQSxJQUFBaUIsTUFBQSxZQUFBQSxPQUFBakIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUQsQ0FBQSxDQUFBRCxDQUFBLElBQUFFLENBQUEsZ0JBQUFvQixLQUFBckIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsRUFBQUcsQ0FBQSxRQUFBSyxDQUFBLEdBQUFWLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxTQUFBLFlBQUFtQixTQUFBLEdBQUF2QixDQUFBLEdBQUF1QixTQUFB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
657
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJhbGxvd0FycmF5TGlrZSIsIml0IiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiRiIsIl9lIiwibm9ybWFsQ29tcGxldGlvbiIsImRpZEVyciIsImVyciIsInN0ZXAiLCJfZTIiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJyZWplY3QiLCJfbmV4dCIsIl90aHJvdyIsImtleSIsImluZm8iLCJlcnJvciIsIl9hc3luY1RvR2VuZXJhdG9yIiwiZm4iLCJzZWxmIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwidW5kZWZpbmVkIiwib3duS2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIm9iaiIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwicmVzIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfbm9uSXRlcmFibGVSZXN0IiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsImZyb20iLCJ0ZXN0IiwibGVuIiwiYXJyMiIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiY29yZSIsInVzZm1qcyIsIkNPTlRFTlRfTk9UX0ZPVU5EX0VSUk9SIiwiRVJST1JfU1RBVEUiLCJJTklUSUFMSVpFRF9TVEFURSIsIklOVkFMSURfTUFOSUZFU1RfRVJST1IiLCJMT0FESU5HX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsIlNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SIiwidXNlRGVlcENvbXBhcmVFZmZlY3QiLCJnZXRWZXJzZXMiLCJpc0VxdWFsIiwiQWxpZ25tZW50SGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJkZWxheSIsInZlcnNlT2JqZWN0c0hhdmVXb3JkcyIsImNsZWFudXBWZXJzZU9iamVjdHMiLCJnZXRCb29rTmFtZUZyb21Vc2ZtRmlsZU5hbWUiLCJnZXRSZXNvdXJjZUxpbmsiLCJwYXJzZVJlc291cmNlTGluayIsIkJvb2tPYmplY3RzVHlwZSIsIlNjcmlwdHVyZVJlc291cmNlIiwiU2NyaXB0dXJlUmVmZXJlbmNlIiwiU2VydmVyQ29uZmlnIiwiVmVyc2VPYmplY3RzVHlwZSIsIlZlcnNlUmVmZXJlbmNlc1R5cGUiLCJwYXJzZVJlc291cmNlTWFuaWZlc3QiLCJnZXRCcmFuY2hOYW1lIiwicmVzb3VyY2VMaW5rIiwiYnJhbmNoIiwicGFydHMiLCJzcGxpdCIsIl9wYXJ0cyIsImdldFZlcnNlc0ZvclJlZlN0ciIsInJlZlN0ciIsImJvb2tPYmplY3RzIiwibGFuZ3VhZ2VJZCIsInZlcnNlcyIsImNoYXB0ZXJzIiwibWFwIiwidmVyc2UiLCJfdmVyc2UkdmVyc2VEYXRhIiwidmVyc2VEYXRhIiwidmVyc2VPYmplY3RzIiwidmVyc2VPYmplY3RzXyIsIm9jY3VycmVuY2VJbmplY3RWZXJzZU9iamVjdHMiLCJnZXRWZXJzZXNGb3JSZWYiLCJyZWZlcmVuY2UiLCJjb25jYXQiLCJjaGFwdGVyIiwidXNlU2NyaXB0dXJlIiwiX3JlZjIiLCJfcmVzb3VyY2VTdGF0dXMiLCJfZmV0Y2hQYXJhbXMkcmVmZXJlbmMiLCJjb25maWciLCJyZWFkeUZvckZldGNoIiwicmVzb3VyY2VfIiwicmVzb3VyY2UiLCJyZXNvdXJjZUxpbmtfIiwiX3JlZjIkd2hvbGVCb29rIiwid2hvbGVCb29rIiwiX3VzZVN0YXRlIiwiYmlibGVVc2ZtIiwiZmV0Y2hDb3VudCIsImZldGNoZWQiLCJmZXRjaGVkQm9vayIsImZldGNoUGFyYW1zIiwiaWdub3JlU2hhIiwiaW5pdGlhbGl6ZWQiLCJyZXNvdXJjZVN0YXRlIiwiY29udGVudCIsImZldGNoUmVzcG9uc2UiLCJmZXRjaGVkUmVzb3VyY2VzIiwibG9hZGluZ1Jlc291cmNlIiwibG9hZGluZ0NvbnRlbnQiLCJzaGEiLCJ1cmwiLCJ2ZXJzZXNGb3JSZWYiLCJfdXNlU3RhdGUyIiwic3RhdGUiLCJzZXRTdGF0ZV8iLCJfcmVmMyIsIm93bmVyIiwiX3JlZjMkYnJhbmNoIiwiX3JlZjMkcmVmIiwicmVmIiwiX3JlZjQiLCJib29rSWQiLCJwcm9qZWN0SWQiLCJfc3RhdGUiLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiaW5pdGlhdGVCb29rRmV0Y2giLCJjb25zb2xlIiwibG9nIiwicmVmXyIsInJlc291cmNlSWQiLCJib29rUmVmIiwibmV3RmV0Y2hQYXJhbXMiLCJmZXRjaEJvb2siLCJfeCIsIl9mZXRjaEJvb2siLCJfY2FsbGVlIiwiX2ZldGNoUGFyYW1zJHJlZmVyZW5jMiIsIl9yZXNvdXJjZSRwcm9qZWN0IiwiX3Jlc291cmNlJHByb2plY3QyIiwiZmV0Y2hMaW5rIiwiX3Jlc291cmNlU3RhdGUkcmVzb3VyIiwiZmV0Y2hlZFNoYU1hdGNoZXNJZ25vcmVTaGEiLCJfcmVzb3VyY2VTdGF0ZSRyZXNvdXIyIiwiX2ZldGNoQ291bnQiLCJfcmVzb3VyY2UiLCJlcnJvck1zZyIsInJlc3BvbnNlIiwiX2JpYmxlVXNmbSIsIl9ib29rT2JqZWN0czMiLCJfZXJyb3JNc2ciLCJfcmVmNSIsIl9hcmdzIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInJlc291cmNlRnJvbVJlc291cmNlTGluayIsIm1hbmlmZXN0IiwicHJvamVjdCIsImZpbGUiLCJ3YXJuIiwiZ2V0UmVzcG9uc2VEYXRhIiwidG9KU09OIiwiZGF0YSIsInQwIiwidmFsaWRhdGVSZXNwb25zZSIsIl9mZXRjaGVkQm9vayR0b0xvd2VyQyIsImlzU2FtZUJvb2siLCJleHBlY3RlZEJvb2tJZCIsInRvTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJmZXRjaGVkQnJhbmNoIiwiZmV0Y2hpbmdCcmFuY2giLCJiaWJsZVVzZm1fIiwiZmV0Y2hWZXJzZXNGb3JSZWYiLCJfcGFyc2VSZXNvdXJjZU1hbmlmZXMiLCJ0aXRsZSIsInZlcnNpb24iLCJsb2FkaW5nIiwiY29udGVudE5vdEZvdW5kRXJyb3IiLCJzY3JpcHR1cmVOb3RMb2FkZWRFcnJvciIsIm1hbmlmZXN0Tm90Rm91bmRFcnJvciIsImludmFsaWRNYW5pZmVzdEVycm9yIiwicmVzb3VyY2VTdGF0dXMiLCJpbnRpYWxpemVkIiwiX2dldFZlcnNlc0ZvclJlZiIsImNvbnRlbnRfIiwidXBkYXRlVmVyc2UiLCJib29rT2JqZWN0c18iLCJfYm9va09iamVjdHMiLCJuZXdWZXJzZXNGb3JSZWYiLCJfbmV3VmVyc2VzRm9yUmVmIiwiaW5pdGlhbFZlcnNlT2JqZWN0cyIsIl9pdGVyYXRvciIsIl9zdGVwIiwidm8iLCJ2ZXJzZVRleHQiLCJnZXRVc2ZtRm9yVmVyc2VDb250ZW50IiwiX0FsaWdubWVudEhlbHBlcnMkdXBkIiwidXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UiLCJ0YXJnZXRWZXJzZU9iamVjdHMiLCJyZWxvYWRSZXNvdXJjZSIsIl9mZXRjaFBhcmFtcyIsIl9wYXJzZVJlc291cmNlTGluayIsIl9yZWYiLCJfcmVzb3VyY2VMaW5rIiwiY3VycmVudEJvb2tSZWYiLCJmZXRjaGVkQm9va1NhbWUiLCJfdmVyc2VzRm9yUmVmIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVNjcmlwdHVyZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHtcbiAgdXNlRWZmZWN0LFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjb3JlIH0gZnJvbSAnc2NyaXB0dXJlLXJlc291cmNlcy1yY2wnXG5pbXBvcnQgdXNmbWpzIGZyb20gJ3VzZm0tanMnXG5pbXBvcnQge1xuICBDT05URU5UX05PVF9GT1VORF9FUlJPUixcbiAgRVJST1JfU1RBVEUsXG4gIElOSVRJQUxJWkVEX1NUQVRFLFxuICBJTlZBTElEX01BTklGRVNUX0VSUk9SLFxuICBMT0FESU5HX1NUQVRFLFxuICBNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SLFxuICBTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUixcbn0gZnJvbSAndHJhbnNsYXRpb24taGVscHMtcmNsJ1xuaW1wb3J0IHVzZURlZXBDb21wYXJlRWZmZWN0IGZyb20gJ3VzZS1kZWVwLWNvbXBhcmUtZWZmZWN0J1xuaW1wb3J0IHsgZ2V0VmVyc2VzIH0gZnJvbSAnYmlibGUtcmVmZXJlbmNlLXJhbmdlJ1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJ0ByZWFjdC1ob29rei9kZWVwLWVxdWFsJ1xuaW1wb3J0IHsgQWxpZ25tZW50SGVscGVycywgVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyB9IGZyb20gJ3dvcmQtYWxpZ25lci1yY2wnXG5pbXBvcnQgeyBkZWxheSwgdmVyc2VPYmplY3RzSGF2ZVdvcmRzIH0gZnJvbSAnLi4vdXRpbHMnXG5pbXBvcnQge1xuICBjbGVhbnVwVmVyc2VPYmplY3RzLFxuICBnZXRCb29rTmFtZUZyb21Vc2ZtRmlsZU5hbWUsXG4gIGdldFJlc291cmNlTGluayxcbiAgcGFyc2VSZXNvdXJjZUxpbmssXG59IGZyb20gJy4uL3V0aWxzL1NjcmlwdHVyZVNldHRpbmdzJ1xuaW1wb3J0IHtcbiAgQm9va09iamVjdHNUeXBlLFxuICBTY3JpcHR1cmVSZXNvdXJjZSxcbiAgU2NyaXB0dXJlUmVmZXJlbmNlLFxuICBTZXJ2ZXJDb25maWcsXG4gIFZlcnNlT2JqZWN0c1R5cGUsXG4gIFZlcnNlUmVmZXJlbmNlc1R5cGUsXG59IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgcGFyc2VSZXNvdXJjZU1hbmlmZXN0IH0gZnJvbSAnLi9wYXJzZVJlc291cmNlTWFuaWZlc3QnXG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIC8qKiByZWZlcmVuY2UgZm9yIHNjcmlwdHVyZSAqKi9cbiAgcmVmZXJlbmNlOiBTY3JpcHR1cmVSZWZlcmVuY2U7XG4gIC8qKiB3aGVyZSB0byBnZXQgZGF0YSAqKi9cbiAgY29uZmlnOiBTZXJ2ZXJDb25maWc7XG4gIC8qKiBvcHRpb25hbCBkaXJlY3QgcGF0aCB0byBiaWJsZSByZXNvdXJjZSwgaW4gZm9ybWF0ICR7b3duZXJ9LyR7bGFuZ3VhZ2VJZH0vJHtwcm9qZWN0SWR9LyR7YnJhbmNofSAqKi9cbiAgcmVzb3VyY2VMaW5rOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogb3B0aW9uYWwgcmVzb3VyY2Ugb2JqZWN0IHRvIHVzZSB0byBidWlsZCByZXNvdXJjZUxpbmsgKiovXG4gIHJlc291cmNlOiBTY3JpcHR1cmVSZXNvdXJjZXx1bmRlZmluZWQ7XG4gIC8qKiBpZiB0cnVlIHRoZW4gZmV0Y2ggdGhlIGVudGlyZSBib29rICovXG4gIHdob2xlQm9vazogYm9vbGVhbjtcbiAgLyoqIGlmIHRydWUgdGhlbiBzZXR0aW5ncyBhcmUgcmVhZHkgZm9yIGZldGNoaW5nIGRhdGEgKi9cbiAgcmVhZHlGb3JGZXRjaDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBleHRyYWN0IGJyYW5jaCBmcm9tIHJlc291cmNlIGxpbmtcbiAqIEBwYXJhbSByZXNvdXJjZUxpbmtcbiAqL1xuZnVuY3Rpb24gZ2V0QnJhbmNoTmFtZShyZXNvdXJjZUxpbms6IHN0cmluZykge1xuICBsZXQgYnJhbmNoID0gbnVsbFxuICByZXNvdXJjZUxpbmsgPSByZXNvdXJjZUxpbmsgfHwgJydcbiAgY29uc3QgcGFydHMgPSByZXNvdXJjZUxpbmsuc3BsaXQoJz9yZWY9JylcblxuICBpZiAocGFydHMubGVuZ3RoID4gMSkgeyAvLyBpZiByZWYgcGFyYW1ldGVyIGZvdW5kLCBnZXQgYnJhbmNoIG5hbWUgYWZ0ZXJcbiAgICBicmFuY2ggPSBwYXJ0cz8uWzFdXG4gIH0gZWxzZSB7IC8vIGZhbGwgYmFjayB0byB1c2luZyB1c2VSc3JjIGZvcm1hdCBzdWNoIGFzIFwidW5mb2xkaW5nV29yZC9lbi91c3QvbWFzdGVyXCJcbiAgICBjb25zdCBfcGFydHMgPSByZXNvdXJjZUxpbmsuc3BsaXQoJy8nKVxuICAgIGJyYW5jaCA9IF9wYXJ0cz8uWzNdXG4gIH1cbiAgcmV0dXJuIGJyYW5jaFxufVxuXG4vKipcbiAqIGdldCB0aGUgdmVyc2Ugb2JqZWN0cyBmb3IgdGhlIHJlZmVyZW5jZSBzdHJpbmdcbiAqIEBwYXJhbSB7c3RyaW5nfSByZWZTdHIgLSBpbiBmb3JtYXQgPGNoYXB0ZXI+Ojx2ZXJzZT5cbiAqIEBwYXJhbSB7b2JqZWN0fSBib29rT2JqZWN0cyAtIHBhcnNlZCB1c2ZtIGZvciBib29rXG4gKiBAcGFyYW0ge3N0cmluZ30gbGFuZ3VhZ2VJZFxuICogQHJldHVybiB7YXJyYXl8bnVsbH0gLSBvZiB2ZXJzZU9iamVjdHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnNlc0ZvclJlZlN0cihyZWZTdHIsIGJvb2tPYmplY3RzLCBsYW5ndWFnZUlkKTogVmVyc2VSZWZlcmVuY2VzVHlwZSB7XG4gIGlmIChib29rT2JqZWN0cykge1xuICAgIGxldCB2ZXJzZXMgPSBnZXRWZXJzZXMoYm9va09iamVjdHMuY2hhcHRlcnMsIHJlZlN0cilcblxuICAgIGlmIChsYW5ndWFnZUlkID09PSAnZWwteC1rb2luZScgfHwgbGFuZ3VhZ2VJZCA9PT0gJ2hibycpIHtcbiAgICAgIHZlcnNlcyA9IHZlcnNlcy5tYXAodmVyc2UgPT4ge1xuICAgICAgICBpZiAoIHZlcnNlPy52ZXJzZURhdGE/LnZlcnNlT2JqZWN0cykge1xuICAgICAgICAgIGxldCB2ZXJzZU9iamVjdHNfID0gY29yZS5vY2N1cnJlbmNlSW5qZWN0VmVyc2VPYmplY3RzKCB2ZXJzZS52ZXJzZURhdGEudmVyc2VPYmplY3RzKVxuICAgICAgICAgIHZlcnNlT2JqZWN0c18gPSBjbGVhbnVwVmVyc2VPYmplY3RzKHZlcnNlT2JqZWN0c18pXG4gICAgICAgICAgdmVyc2UudmVyc2VEYXRhLnZlcnNlT2JqZWN0cyA9IHZlcnNlT2JqZWN0c19cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmVyc2VcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcnNlc1xuICB9XG4gIHJldHVybiBudWxsXG59XG5cbi8qKlxuICogZ2V0IHRoZSB2ZXJzZSBvYmplY3RzIGZvciB0aGUgcmVmZXJlbmNlIG9iamVjdFxuICogQHBhcmFtIHtvYmplY3R9IHJlZmVyZW5jZVxuICogQHBhcmFtIHtvYmplY3R9IGJvb2tPYmplY3RzIC0gcGFyc2VkIHVzZm0gZm9yIGJvb2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBsYW5ndWFnZUlkXG4gKiBAcmV0dXJuIHthcnJheXxudWxsfSAtIG9mIHZlcnNlT2JqZWN0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVyc2VzRm9yUmVmKHJlZmVyZW5jZSwgYm9va09iamVjdHMsIGxhbmd1YWdlSWQpOiBWZXJzZVJlZmVyZW5jZXNUeXBlIHtcbiAgY29uc3QgcmVmU3RyID0gYCR7cmVmZXJlbmNlLmNoYXB0ZXJ9OiR7cmVmZXJlbmNlLnZlcnNlfWBcbiAgcmV0dXJuIGdldFZlcnNlc0ZvclJlZlN0cihyZWZTdHIsIGJvb2tPYmplY3RzLCBsYW5ndWFnZUlkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlU2NyaXB0dXJlKHsgLy8gaG9vayBmb3IgZmV0Y2hpbmcgc2NyaXB0dXJlXG4gIGNvbmZpZyxcbiAgcmVhZHlGb3JGZXRjaCxcbiAgcmVmZXJlbmNlLFxuICByZXNvdXJjZTogcmVzb3VyY2VfLFxuICByZXNvdXJjZUxpbms6IHJlc291cmNlTGlua18sXG4gIHdob2xlQm9vayA9IGZhbHNlLFxufSA6IFByb3BzKSB7XG4gIHR5cGUgU3RhdGVUeXBlcyA9IHtcbiAgICBiaWJsZVVzZm06IHN0cmluZyxcbiAgICBib29rT2JqZWN0czogQm9va09iamVjdHNUeXBlLFxuICAgIGZldGNoQ291bnQ6IG51bWJlcixcbiAgICBmZXRjaGVkOiBib29sZWFuLFxuICAgIGZldGNoZWRCb29rOiBzdHJpbmcsXG4gICAgZmV0Y2hQYXJhbXM6IHtcbiAgICAgIGNvbmZpZzoge30sXG4gICAgICByZWZlcmVuY2U6IHt9LFxuICAgICAgcmVzb3VyY2VMaW5rOiBzdHJpbmcsXG4gICAgfSxcbiAgICBpZ25vcmVTaGE6IHN0cmluZ3xudWxsLFxuICAgIGluaXRpYWxpemVkOiBib29sZWFuLFxuICAgIHJlc291cmNlU3RhdGU6IHtcbiAgICAgIGJpYmxlVXNmbTogc3RyaW5nLFxuICAgICAgYm9va09iamVjdHM6IEJvb2tPYmplY3RzVHlwZSxcbiAgICAgIGNvbnRlbnQ6IHt9LFxuICAgICAgZmV0Y2hSZXNwb25zZToge30sXG4gICAgICBmZXRjaGVkUmVzb3VyY2VzOiB7XG4gICAgICAgIGJpYmxlVXNmbTogc3RyaW5nLFxuICAgICAgICBib29rT2JqZWN0czogQm9va09iamVjdHNUeXBlLFxuICAgICAgICBmZXRjaENvdW50OiBudW1iZXIsXG4gICAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgICAgc2hhOiBzdHJpbmcsXG4gICAgICAgIHVybDogc3RyaW5nLFxuICAgICAgfSxcbiAgICAgIGxvYWRpbmdSZXNvdXJjZTogYm9vbGVhbixcbiAgICAgIGxvYWRpbmdDb250ZW50OiBib29sZWFuLFxuICAgICAgcmVzb3VyY2U6IHtcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICBtYW5pZmVzdDoge30sXG4gICAgICAgIHJlc291cmNlTGluazoge31cbiAgICAgIH0sXG4gICAgICBzaGE6IHN0cmluZyxcbiAgICAgIHVybDogc3RyaW5nLFxuICAgIH0sXG4gICAgdmVyc2VzRm9yUmVmOiBhbnlbXSxcbiAgfVxuXG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVfXSA9IHVzZVN0YXRlKHtcbiAgICBiaWJsZVVzZm06IG51bGwsXG4gICAgYm9va09iamVjdHM6IG51bGwsXG4gICAgZmV0Y2hDb3VudDogMCxcbiAgICBmZXRjaGVkOiBmYWxzZSxcbiAgICBmZXRjaGVkQm9vazogJycsXG4gICAgZmV0Y2hQYXJhbXM6IHtcbiAgICAgIGNvbmZpZzoge30sXG4gICAgICByZWZlcmVuY2U6IHt9LFxuICAgICAgcmVzb3VyY2VMaW5rOiAnJyxcbiAgICB9LFxuICAgIGlnbm9yZVNoYTogbnVsbCxcbiAgICBpbml0aWFsaXplZDogZmFsc2UsXG4gICAgcmVzb3VyY2VTdGF0ZToge1xuICAgICAgYm9va09iamVjdHM6IG51bGwsXG4gICAgICBiaWJsZVVzZm06IG51bGwsXG4gICAgICBjb250ZW50OiBudWxsLFxuICAgICAgZmV0Y2hSZXNwb25zZTogbnVsbCxcbiAgICAgIGZldGNoZWRSZXNvdXJjZXM6IG51bGwsXG4gICAgICBsb2FkaW5nUmVzb3VyY2U6IGZhbHNlLFxuICAgICAgbG9hZGluZ0NvbnRlbnQ6IGZhbHNlLFxuICAgICAgcmVzb3VyY2U6IG51bGwsXG4gICAgICBzaGE6IG51bGwsXG4gICAgICB1cmw6IG51bGwsXG4gICAgfSxcbiAgICB2ZXJzZXNGb3JSZWY6IFtdLFxuICB9KVxuXG4gIGNvbnN0IHtcbiAgICBvd25lcixcbiAgICBsYW5ndWFnZUlkLFxuICAgIGJyYW5jaCA9ICdtYXN0ZXInLFxuICAgIHJlZiA9IG51bGwsXG4gIH0gPSByZXNvdXJjZV8gfHwge31cblxuICBjb25zdCB7IHByb2plY3RJZDogYm9va0lkfSA9IHJlZmVyZW5jZSB8fCB7fVxuXG4gIGNvbnN0IF9zdGF0ZTogU3RhdGVUeXBlcyA9IHN0YXRlIC8vIFRyaWNreTogd29yay1hcm91bmQgZm9yIGJ1ZyB0aGF0IHN0YW5kYXJkIHR5cGVzY3JpcHQgdHlwZSBjYXN0aW5nIGRvZXMgbm90IHdvcmsgaW4gLnRzeCBmaWxlc1xuICBjb25zdCB7XG4gICAgYmlibGVVc2ZtLFxuICAgIGJvb2tPYmplY3RzLFxuICAgIGZldGNoQ291bnQsXG4gICAgZmV0Y2hlZCxcbiAgICBmZXRjaGVkQm9vayxcbiAgICBmZXRjaFBhcmFtcyxcbiAgICBpZ25vcmVTaGEsXG4gICAgaW5pdGlhbGl6ZWQsXG4gICAgcmVzb3VyY2VTdGF0ZSxcbiAgICB2ZXJzZXNGb3JSZWYsXG4gIH0gPSBfc3RhdGVcbiAgY29uc3QgZmV0Y2hlZFJlc291cmNlcyA9IHJlc291cmNlU3RhdGU/LmZldGNoZWRSZXNvdXJjZXNcblxuICBmdW5jdGlvbiBzZXRTdGF0ZShuZXdTdGF0ZSkge1xuICAgIHNldFN0YXRlXyhwcmV2U3RhdGUgPT4gKHsgLi4ucHJldlN0YXRlLCAuLi5uZXdTdGF0ZSB9KSlcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlYWR5Rm9yRmV0Y2gpIHtcbiAgICAgIGluaXRpYXRlQm9va0ZldGNoKClcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpbml0aWF0ZUJvb2tGZXRjaCgpIHtcbiAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUgLSByZWFkeUZvckZldGNoIHRydWUsIGluaXRpYWxpemluZ2ApXG4gICAgICBsZXQgcmVzb3VyY2VMaW5rID0gcmVhZHlGb3JGZXRjaCAmJiByZXNvdXJjZUxpbmtfXG5cbiAgICAgIGlmICghcmVzb3VyY2VMaW5rXyAmJiByZXNvdXJjZV8pIHtcbiAgICAgICAgY29uc3QgcmVmXyA9IHJlZiB8fCBicmFuY2hcblxuICAgICAgICByZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoe1xuICAgICAgICAgIG93bmVyLFxuICAgICAgICAgIGxhbmd1YWdlSWQsXG4gICAgICAgICAgcmVzb3VyY2VJZDogYm9va0lkLFxuICAgICAgICAgIHJlZjogcmVmXyxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgY29uc3QgYm9va1JlZiA9IHsgLi4ucmVmZXJlbmNlIH1cblxuICAgICAgaWYgKHdob2xlQm9vaykge1xuICAgICAgICBkZWxldGUgYm9va1JlZi5jaGFwdGVyIC8vIHJlbW92ZSB0aGUgY2hhcHRlciBhbmQgdmVyc2Ugc28gdGhlIHdob2xlIGJvb2sgaXMgZmV0Y2hlZFxuICAgICAgICBkZWxldGUgYm9va1JlZi52ZXJzZVxuICAgICAgfVxuXG4gICAgICBpZiAocmVzb3VyY2VMaW5rICE9PSBmZXRjaFBhcmFtcz8ucmVzb3VyY2VMaW5rKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUgLSBmb3IgJHtyZXNvdXJjZV8/LnByb2plY3RJZH0gcmVzb3VyY2VMaW5rIGlzIG5vdyAke3Jlc291cmNlTGlua30gYW5kIHJlc291cmNlTGlua189JHtyZXNvdXJjZUxpbmtffWApXG4gICAgICB9IGVsc2UgaWYgKGJvb2tSZWYgIT09IGZldGNoUGFyYW1zPy5yZWZlcmVuY2UpIHtcbiAgICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZSAtIGJvb2sgY2hhbmdlZCB0byAke3Jlc291cmNlXz8ucHJvamVjdElkfSByZXNvdXJjZUxpbmsgaXMgbm93ICR7cmVzb3VyY2VMaW5rfWApXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5ld0ZldGNoUGFyYW1zID0ge1xuICAgICAgICBjb25maWcsXG4gICAgICAgIHJlZmVyZW5jZTogYm9va1JlZixcbiAgICAgICAgcmVzb3VyY2VMaW5rLFxuICAgICAgfVxuXG4gICAgICBpZiAoIWlzRXF1YWwobmV3RmV0Y2hQYXJhbXMsIGZldGNoUGFyYW1zKSkge1xuICAgICAgICBzZXRTdGF0ZSh7XG4gICAgICAgICAgZmV0Y2hQYXJhbXM6IG5ld0ZldGNoUGFyYW1zLFxuICAgICAgICAgIGZldGNoZWQ6IGZhbHNlLFxuICAgICAgICAgIGluaXRpYWxpemVkOiB0cnVlLFxuICAgICAgICB9KVxuXG4gICAgICAgIGZldGNoQm9vayhuZXdGZXRjaFBhcmFtcylcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtcbiAgICByZWFkeUZvckZldGNoLFxuICAgIG93bmVyLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgYm9va0lkLFxuICAgIGJyYW5jaCxcbiAgICByZWYsXG4gIF0pXG5cbiAgLyoqXG4gICAqIGRvIGEgZmV0Y2ggb2YgbWFuaWZlc3QgYW5kIGJvb2sgb2YgdGhlIGJpYmxlIHNwZWNpZmllZCBpbiBmZXRjaFBhcmFtc1xuICAgKiBAcGFyYW0ge29iamVjdH0gZmV0Y2hQYXJhbXNcbiAgICogQHBhcmFtIHtzdHJpbmd9IGlnbm9yZVNoYSAtIG9wdGlvbmFsIHByZXZpb3VzIHNoYSAtIGlnbm9yZSByZXNwb25zZXMgdGhhdCBjYW1lIGJhY2sgZm9yIHRoaXMgcHJldmlvdXMgYm9vayBjb21taXRcbiAgICovXG4gIGFzeW5jIGZ1bmN0aW9uIGZldGNoQm9vayhmZXRjaFBhcmFtcywgaWdub3JlU2hhID0gbnVsbCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBmZXRjaExpbmsgPSBgJHtmZXRjaFBhcmFtcz8ucmVzb3VyY2VMaW5rfS8ke2ZldGNoUGFyYW1zPy5yZWZlcmVuY2U/LnByb2plY3RJZH1gXG5cbiAgICAgIGlmIChpZ25vcmVTaGEpIHtcbiAgICAgICAgY29uc3QgZmV0Y2hlZFNoYU1hdGNoZXNJZ25vcmVTaGEgPSBpZ25vcmVTaGEgPT09IHJlc291cmNlU3RhdGU/LnNoYSAvLyB3ZSB3aWxsIHJlbG9hZCBpZiBpZ25vcmVTaGEgZ2l2ZW4gYW5kIGl0IG1hdGNoZXMgY3VycmVudCBzaGFcbiAgICAgICAgaWYgKChmZXRjaExpbmsgPT09IHJlc291cmNlU3RhdGU/LnJlc291cmNlPy5yZXNvdXJjZUxpbmspICYmICFmZXRjaGVkU2hhTWF0Y2hlc0lnbm9yZVNoYSkgeyAvLyBzZWUgaWYgd2UgYWxyZWFkeSBmZXRjaGVkIHRoaXNcbiAgICAgICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlLmZldGNoQm9vaygpIC0gQWxyZWFkeSBmZXRjaGluZyByZXNvdXJjZUxpbmsgJHtyZXNvdXJjZVN0YXRlPy5yZXNvdXJjZT8ucmVzb3VyY2VMaW5rfSBhbmQgaWdub3JlU2hhPSR7aWdub3JlU2hhfWAsIGZldGNoUGFyYW1zKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IF9mZXRjaENvdW50ID0gZmV0Y2hDb3VudCArIDFcbiAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUuZmV0Y2hCb29rKCkgLSBGRVRDSElORyBiaWJsZSAke3Jlc291cmNlXz8ucHJvamVjdElkfSByZXNvdXJjZUxpbmsgaXMgbm93ICR7ZmV0Y2hQYXJhbXM/LnJlc291cmNlTGlua30gYW5kIGlnbm9yZVNoYT0ke2lnbm9yZVNoYX1gLCBmZXRjaFBhcmFtcylcbiAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgZmV0Y2hDb3VudDogX2ZldGNoQ291bnQsXG4gICAgICAgIGZldGNoZWQ6IGZhbHNlLFxuICAgICAgICBpZ25vcmVTaGEsXG4gICAgICAgIHJlc291cmNlU3RhdGU6IHsgbG9hZGluZ1Jlc291cmNlOiB0cnVlIH0sXG4gICAgICB9KVxuXG4gICAgICAvLyBmZXRjaCBtYW5pZmVzdCBkYXRhXG4gICAgICBhd2FpdCBkZWxheSgxMDApXG4gICAgICBjb25zdCBfcmVzb3VyY2UgPSBhd2FpdCBjb3JlLnJlc291cmNlRnJvbVJlc291cmNlTGluayhmZXRjaFBhcmFtcylcblxuICAgICAgaWYgKCFfcmVzb3VyY2U/Lm1hbmlmZXN0IHx8ICFfcmVzb3VyY2U/LnByb2plY3Q/LmZpbGUpIHtcbiAgICAgICAgY29uc3QgZXJyb3JNc2cgPSBfcmVzb3VyY2U/Lm1hbmlmZXN0ID8gJ3BhcnNpbmcgcmVzb3VyY2UgbWFuaWZlc3QnIDogJ2xvYWRpbmcgcmVzb3VyY2UgbWFuaWZlc3QnXG4gICAgICAgIGNvbnNvbGUud2FybihgdXNlU2NyaXB0dXJlLmZldGNoQm9vaygpIC0gZXJyb3IgJHtlcnJvck1zZ31gLCBmZXRjaFBhcmFtcyApXG4gICAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgICByZXNvdXJjZVN0YXRlOiB7XG4gICAgICAgICAgICBsb2FkaW5nUmVzb3VyY2U6IGZhbHNlLFxuICAgICAgICAgICAgcmVzb3VyY2U6IF9yZXNvdXJjZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZS5mZXRjaEJvb2soKSAtIExPQURFRCBiaWJsZSBtYW5pZmVzdCwgZmV0Y2hpbmcgYm9vayAke3Jlc291cmNlXz8ucHJvamVjdElkfSByZXNvdXJjZUxpbmsgaXMgbm93ICR7ZmV0Y2hQYXJhbXM/LnJlc291cmNlTGlua30gYW5kIHJlc291cmNlTGlua189JHtmZXRjaFBhcmFtcz8ucmVzb3VyY2VMaW5rX31gLCBmZXRjaFBhcmFtcylcbiAgICAgIGF3YWl0IGRlbGF5KDEwMClcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgX3Jlc291cmNlPy5wcm9qZWN0Py5maWxlKClcbiAgICAgIC8vIHBhcnNlIGJvb2sgdXNmbVxuICAgICAgY29uc3QgYmlibGVVc2ZtID0gcmVzcG9uc2UgJiYgY29yZS5nZXRSZXNwb25zZURhdGEocmVzcG9uc2UpXG4gICAgICBhd2FpdCBkZWxheSgxMDApXG4gICAgICBjb25zdCBib29rT2JqZWN0cyA9IGJpYmxlVXNmbSAmJiB1c2ZtanMudG9KU09OKGJpYmxlVXNmbSkgLy8gY29udmVydCB0byBiaWJsZSBvYmplY3RzXG5cbiAgICAgIGlmICghYm9va09iamVjdHMpIHtcbiAgICAgICAgY29uc3QgZXJyb3JNc2cgPSBiaWJsZVVzZm0gPyAnZmV0Y2hpbmcgYm9vayBvZiB0aGUgYmlibGUnIDogJ3BhcnNpbmcgYm9vayBvZiB0aGUgYmlibGUnXG4gICAgICAgIGNvbnNvbGUud2FybihgdXNlU2NyaXB0dXJlLmZldGNoQm9vaygpIC0gZXJyb3IgJHtlcnJvck1zZ31gLCBmZXRjaFBhcmFtcyApXG4gICAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgICByZXNvdXJjZVN0YXRlOiB7XG4gICAgICAgICAgICBsb2FkaW5nUmVzb3VyY2U6IGZhbHNlLFxuICAgICAgICAgICAgcmVzb3VyY2U6IF9yZXNvdXJjZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBuYW1lLCBzaGEsIHVybCB9ID0gcmVzcG9uc2U/LmRhdGEgfHwge31cblxuICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZS5mZXRjaEJvb2soKSAtIExPQURFRCBiaWJsZSBib29rICR7cmVzb3VyY2VfPy5wcm9qZWN0SWR9IHJlc291cmNlTGluayBpcyBub3cgJHtmZXRjaFBhcmFtcz8ucmVzb3VyY2VMaW5rfSBhbmQgcmVzb3VyY2VMaW5rXz0ke2ZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmtffWAsIGZldGNoUGFyYW1zKVxuICAgICAgc2V0U3RhdGUoXG4gICAgICAgIHtcbiAgICAgICAgICByZXNvdXJjZVN0YXRlOiB7XG4gICAgICAgICAgICBsb2FkaW5nUmVzb3VyY2U6IGZhbHNlLFxuICAgICAgICAgICAgZmV0Y2hlZFJlc291cmNlczoge1xuICAgICAgICAgICAgICAuLi5fcmVzb3VyY2UsXG4gICAgICAgICAgICAgIGJpYmxlVXNmbSxcbiAgICAgICAgICAgICAgYm9va09iamVjdHMsXG4gICAgICAgICAgICAgIGZldGNoQ291bnQ6IF9mZXRjaENvdW50LFxuICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICByZWZlcmVuY2U6IGZldGNoUGFyYW1zPy5yZWZlcmVuY2UsXG4gICAgICAgICAgICAgIHNoYSxcbiAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYHVzZVNjcmlwdHVyZS5mZXRjaEJvb2soKSAtIGhhcmQgZXJyb3IgbG9hZGluZyByZXNvdXJjZWAsIGZldGNoUGFyYW1zLCBlIClcbiAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgcmVzb3VyY2VTdGF0ZToge1xuICAgICAgICAgIGxvYWRpbmdSZXNvdXJjZTogZmFsc2UsXG4gICAgICAgICAgcmVzb3VyY2U6IG51bGwsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZSAtIGZvciAke3Jlc291cmNlXz8ucHJvamVjdElkfSByZWFkeUZvckZldGNoIGlzIG5vdyAke3JlYWR5Rm9yRmV0Y2h9YClcbiAgfSwgW3JlYWR5Rm9yRmV0Y2hdKVxuXG4gIC8qKlxuICAgKiBtYWtlIHN1cmUgbGFzdCBmZXRjaCByZXNwb25zZSBpcyBmb3IgY3VycmVudCBib29rL2JyYW5jaFxuICAgKi9cbiAgZnVuY3Rpb24gdmFsaWRhdGVSZXNwb25zZSgpIHtcbiAgICBsZXQgaXNTYW1lQm9vayA9IGZhbHNlXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGV4cGVjdGVkQm9va0lkID0gYm9va0lkIHx8ICd6enonXG4gICAgY29uc3QgZmV0Y2hlZEJvb2sgPSBnZXRCb29rTmFtZUZyb21Vc2ZtRmlsZU5hbWUoZmV0Y2hlZFJlc291cmNlcz8ubmFtZSlcbiAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlLnZhbGlkYXRlUmVzcG9uc2UoKSAtIEN1cnJlbnQgYm9va0lkIGlzICR7Ym9va0lkfSBhbmQgc2VlaW5nICR7ZmV0Y2hlZEJvb2t9IGluIFVTRk1gKVxuICAgIGlzU2FtZUJvb2sgPSBmZXRjaGVkQm9vaz8udG9Mb3dlckNhc2UoKT8uaW5jbHVkZXMoYm9va0lkKVxuXG4gICAgY29uc3Qgc2hhID0gZmV0Y2hlZFJlc291cmNlcz8uc2hhIHx8IG51bGxcbiAgICBjb25zdCB1cmwgPSBmZXRjaGVkUmVzb3VyY2VzPy51cmwgfHwgbnVsbFxuXG4gICAgaWYgKGlzU2FtZUJvb2spIHsgLy8gYWxzbyBtYWtlIHN1cmUgaXQgaXMgdGhlIHNhbWUgYnJhbmNoXG4gICAgICBjb25zdCBmZXRjaGVkQnJhbmNoID0gZ2V0QnJhbmNoTmFtZSh1cmwpXG4gICAgICBjb25zdCBmZXRjaGluZ0JyYW5jaCA9IGdldEJyYW5jaE5hbWUoZmV0Y2hQYXJhbXM/LnJlc291cmNlTGluaylcblxuICAgICAgaWYgKGZldGNoZWRCcmFuY2ggIT09IGZldGNoaW5nQnJhbmNoKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUudmFsaWRhdGVSZXNwb25zZSgpIGludmFsaWQgYnJhbmNoLCBleHBlY3RlZCBicmFuY2ggaXMgJHtmZXRjaGluZ0JyYW5jaH0sIGJ1dCBmZXRjaGVkQnJhbmNoIGlzICR7ZmV0Y2hlZEJyYW5jaH1gLCB7IHNoYSwgdXJsIH0pXG4gICAgICAgIGlzU2FtZUJvb2sgPSBmYWxzZVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlLnZhbGlkYXRlUmVzcG9uc2UoKSAtICBpbnZhbGlkIGJvb2ssIGV4cGVjdGVkQm9va0lkIGlzICR7ZXhwZWN0ZWRCb29rSWR9LCBidXQgcmVjZWl2ZWQgYm9vayBuYW1lICR7ZmV0Y2hlZEJvb2t9YCwgeyBzaGEsIHVybCB9KVxuICAgIH1cblxuICAgIGlmIChpZ25vcmVTaGEgPT09IHNoYSkge1xuICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZS52YWxpZGF0ZVJlc3BvbnNlKCkgLSB0aGUgc2hhIGlzIHRoZSBzYW1lIGFzIHRoZSBpZ25vcmUgc2hhICR7c2hhfWAsIHsgc2hhLCB1cmwgfSlcbiAgICAgIGlzU2FtZUJvb2sgPSBmYWxzZVxuICAgIH1cblxuICAgIGlmIChpc1NhbWVCb29rKSB7XG4gICAgICBjb25zdCBiaWJsZVVzZm1fID0gZmV0Y2hlZFJlc291cmNlcz8uYmlibGVVc2ZtXG4gICAgICBjb25zdCBib29rT2JqZWN0cyA9IGZldGNoZWRSZXNvdXJjZXM/LmJvb2tPYmplY3RzXG4gICAgICBjb25zdCB2ZXJzZXNGb3JSZWYgPSBmZXRjaFZlcnNlc0ZvclJlZihib29rT2JqZWN0cylcblxuICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZS52YWxpZGF0ZVJlc3BvbnNlKCkgLSBjb3JyZWN0IGJvb2ssIGV4cGVjdGVkQm9va0lkIGlzICR7ZXhwZWN0ZWRCb29rSWR9YCwgeyBzaGEsIHVybCB9KVxuICAgICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICAgIGJpYmxlVXNmbTogYmlibGVVc2ZtXyxcbiAgICAgICAgYm9va09iamVjdHMsXG4gICAgICAgIGZldGNoZWQ6IHRydWUsXG4gICAgICAgIGZldGNoZWRCb29rOiBleHBlY3RlZEJvb2tJZCxcbiAgICAgICAgaWdub3JlU2hhOiBudWxsLFxuICAgICAgICByZXNvdXJjZVN0YXRlOiB7XG4gICAgICAgICAgYm9va09iamVjdHMsXG4gICAgICAgICAgYmlibGVVc2ZtOiBiaWJsZVVzZm1fLFxuICAgICAgICAgIGxvYWRpbmdSZXNvdXJjZTogZmFsc2UsXG4gICAgICAgICAgbG9hZGluZ0NvbnRlbnQ6IGZhbHNlLFxuICAgICAgICAgIHJlc291cmNlOiBmZXRjaGVkUmVzb3VyY2VzLFxuICAgICAgICAgIHNoYSxcbiAgICAgICAgICB1cmwsXG4gICAgICAgIH0sXG4gICAgICAgIHZlcnNlc0ZvclJlZixcbiAgICAgIH1cblxuICAgICAgc2V0U3RhdGUobmV3U3RhdGUpXG4gICAgfVxuICB9XG5cbiAgdXNlRGVlcENvbXBhcmVFZmZlY3QoKCkgPT4geyAvLyB2YWxpZGF0ZSByZXNwb25zZSB0byBtYWtlIHN1cmUgZnJvbSBsYXRlc3QgcmVxdWVzdFxuICAgIGlmIChyZWFkeUZvckZldGNoICYmIGZldGNoZWRSZXNvdXJjZXMpIHtcbiAgICAgIGlmICghZmV0Y2hlZCAmJiBmZXRjaGVkUmVzb3VyY2VzPy5mZXRjaENvdW50ID09PSBmZXRjaENvdW50KSB7XG4gICAgICAgIGRlbGF5KDUwMCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgdmFsaWRhdGVSZXNwb25zZSgpXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9LCBbeyByZWFkeUZvckZldGNoLCBmZXRjaGVkUmVzb3VyY2VzIH1dKVxuXG4gIGNvbnN0IHJlc291cmNlID0gcmVzb3VyY2VTdGF0ZT8ucmVzb3VyY2VcbiAgY29uc3QgeyB0aXRsZSwgdmVyc2lvbiB9ID0gcGFyc2VSZXNvdXJjZU1hbmlmZXN0KHJlc291cmNlKVxuICBjb25zdCBsb2FkaW5nID0gcmVzb3VyY2VTdGF0ZT8ubG9hZGluZ1Jlc291cmNlIHx8IHJlc291cmNlU3RhdGU/LmxvYWRpbmdDb250ZW50IHx8ICFyZWFkeUZvckZldGNoXG4gIGNvbnN0IGNvbnRlbnROb3RGb3VuZEVycm9yID0gIXJlc291cmNlU3RhdGU/LmJpYmxlVXNmbVxuICBjb25zdCBzY3JpcHR1cmVOb3RMb2FkZWRFcnJvciA9ICFyZXNvdXJjZVN0YXRlPy5ib29rT2JqZWN0c1xuICBjb25zdCBtYW5pZmVzdE5vdEZvdW5kRXJyb3IgPSAhcmVzb3VyY2U/Lm1hbmlmZXN0XG4gIGNvbnN0IGludmFsaWRNYW5pZmVzdEVycm9yID0gIXRpdGxlIHx8ICF2ZXJzaW9uIHx8ICFsYW5ndWFnZUlkXG4gIGNvbnN0IGVycm9yID0gcmVhZHlGb3JGZXRjaCAmJiBpbml0aWFsaXplZCAmJiAhbG9hZGluZyAmJlxuICAgIChjb250ZW50Tm90Rm91bmRFcnJvciB8fCBzY3JpcHR1cmVOb3RMb2FkZWRFcnJvciB8fCBtYW5pZmVzdE5vdEZvdW5kRXJyb3IgfHwgaW52YWxpZE1hbmlmZXN0RXJyb3IpXG4gIGNvbnN0IHJlc291cmNlU3RhdHVzID0ge1xuICAgIFtMT0FESU5HX1NUQVRFXTogbG9hZGluZyxcbiAgICBbQ09OVEVOVF9OT1RfRk9VTkRfRVJST1JdOiBjb250ZW50Tm90Rm91bmRFcnJvcixcbiAgICBbU0NSSVBUVVJFX05PVF9MT0FERURfRVJST1JdOiBzY3JpcHR1cmVOb3RMb2FkZWRFcnJvcixcbiAgICBbTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUl06IG1hbmlmZXN0Tm90Rm91bmRFcnJvcixcbiAgICBbSU5WQUxJRF9NQU5JRkVTVF9FUlJPUl06IGludmFsaWRNYW5pZmVzdEVycm9yLFxuICAgIFtFUlJPUl9TVEFURV06IGVycm9yLFxuICAgIFtJTklUSUFMSVpFRF9TVEFURV06IGluaXRpYWxpemVkLFxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXJlYWR5Rm9yRmV0Y2gpIHtcbiAgICAgIGlmIChpbml0aWFsaXplZCkge1xuICAgICAgICBzZXRTdGF0ZSh7IGludGlhbGl6ZWQ6IGZhbHNlIH0pXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghaW5pdGlhbGl6ZWQpIHtcbiAgICAgIGlmIChsb2FkaW5nKSB7IC8vIG9uY2UgZmlyc3QgbG9hZCBoYXMgYmVndW4sIHdlIGFyZSBpbml0aWFsaXplZFxuICAgICAgICBzZXRTdGF0ZSh7IGludGlhbGl6ZWQ6IHRydWUgfSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtsb2FkaW5nLCByZWFkeUZvckZldGNoXSlcblxuICAvKipcbiAgICogZ2V0IHZlcnNlcyBmb3IgcmVmXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWZTdHJcbiAgICogQHBhcmFtIHtvYmplY3R9IGNvbnRlbnRfXG4gICAqL1xuICBmdW5jdGlvbiBfZ2V0VmVyc2VzRm9yUmVmKHJlZlN0ciwgY29udGVudF8gPSBib29rT2JqZWN0cyk6IFZlcnNlUmVmZXJlbmNlc1R5cGUge1xuICAgIGlmIChjb250ZW50Xykge1xuICAgICAgcmV0dXJuIGdldFZlcnNlc0ZvclJlZlN0cihyZWZTdHIsIGNvbnRlbnRfLCBsYW5ndWFnZUlkKVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIHVwZGF0ZSB2ZXJzZSBkYXRhIGZvciBjdXJyZW50IGJvb2tcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNoYXB0ZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZlcnNlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSB2ZXJzZURhdGFcbiAgICovXG4gIGZ1bmN0aW9uIHVwZGF0ZVZlcnNlKGNoYXB0ZXIsIHZlcnNlLCB2ZXJzZURhdGEpIHtcbiAgICBpZiAoYm9va09iamVjdHMpIHtcbiAgICAgIGNvbnN0IGJvb2tPYmplY3RzXyA9IHsgLi4uYm9va09iamVjdHMgfSAvLyBzaGFsbG93IGNvcHlcblxuICAgICAgaWYgKGJvb2tPYmplY3RzXz8uY2hhcHRlcnMpIHtcbiAgICAgICAgYm9va09iamVjdHNfLmNoYXB0ZXJzID0geyAuLi5ib29rT2JqZWN0c18uY2hhcHRlcnMgfSAvLyBzaGFsbG93IGNvcHkgY2hhcHRlcnNcblxuICAgICAgICBpZiAoYm9va09iamVjdHNfLmNoYXB0ZXJzW2NoYXB0ZXJdKSB7XG4gICAgICAgICAgYm9va09iamVjdHNfLmNoYXB0ZXJzW2NoYXB0ZXJdID0geyAuLi5ib29rT2JqZWN0c18uY2hhcHRlcnNbY2hhcHRlcl0gfSAvLyBzaGFsbG93IGNvcHkgdmVyc2VzXG4gICAgICAgICAgYm9va09iamVjdHNfLmNoYXB0ZXJzW2NoYXB0ZXJdW3ZlcnNlXSA9IHZlcnNlRGF0YVxuICAgICAgICAgIHNldFN0YXRlKHsgYm9va09iamVjdHM6IGJvb2tPYmplY3RzXyB9KVxuICAgICAgICAgIHJldHVybiBib29rT2JqZWN0c19cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIGdldCB0aGUgdmVyc2VzIGZvciBjdXJyZW50IHJlZmVyZW5jZSBvciByZWZlcmVuY2UgcmFuZ2VcbiAgICogQHBhcmFtIHtCb29rT2JqZWN0c1R5cGV9IF9ib29rT2JqZWN0c1xuICAgKi9cbiAgZnVuY3Rpb24gZmV0Y2hWZXJzZXNGb3JSZWYoX2Jvb2tPYmplY3RzOiBCb29rT2JqZWN0c1R5cGUgPSBib29rT2JqZWN0cyk6IFZlcnNlT2JqZWN0c1R5cGUge1xuICAgIGxldCBuZXdWZXJzZXNGb3JSZWYgPSBbXVxuXG4gICAgaWYgKF9ib29rT2JqZWN0cykge1xuICAgICAgbmV3VmVyc2VzRm9yUmVmID0gZ2V0VmVyc2VzRm9yUmVmKHJlZmVyZW5jZSwgX2Jvb2tPYmplY3RzLCBsYW5ndWFnZUlkKVxuICAgICAgaWYgKHJlZmVyZW5jZT8udmVyc2UgPT09ICdmcm9udCcpIHsgLy8gc3BlY2lhbCBoYW5kbGluZyBmb3IgZnJvbnQgbWF0dGVyXG4gICAgICAgIGNvbnN0IHZlcnNlRGF0YSA9IG5ld1ZlcnNlc0ZvclJlZj8uWzBdPy52ZXJzZURhdGFcbiAgICAgICAgY29uc3QgaW5pdGlhbFZlcnNlT2JqZWN0cyA9IHZlcnNlRGF0YT8udmVyc2VPYmplY3RzXG4gICAgICAgIGlmIChpbml0aWFsVmVyc2VPYmplY3RzICYmICF2ZXJzZU9iamVjdHNIYXZlV29yZHMoaW5pdGlhbFZlcnNlT2JqZWN0cykpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHZvIG9mIGluaXRpYWxWZXJzZU9iamVjdHMpIHtcbiAgICAgICAgICAgIGlmICh2b1sndGFnJ10gPT09ICdkJykgeyAvLyBjaGVjayBmb3IgZGVzY3JpcHRpdmUgdGl0bGVcbiAgICAgICAgICAgICAgLy8gcmVwYXJzZSBzbyBkZXNjcmlwdGl2ZSB0aXRsZSB0ZXh0IGlzIGJyb2tlbiBpbnRvIGFsaWduLWFibGUgd29yZHNcbiAgICAgICAgICAgICAgbGV0IHZlcnNlVGV4dCA9IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMuZ2V0VXNmbUZvclZlcnNlQ29udGVudCh7IHZlcnNlT2JqZWN0czogaW5pdGlhbFZlcnNlT2JqZWN0cyB9KVxuICAgICAgICAgICAgICBjb25zdCB7IHRhcmdldFZlcnNlT2JqZWN0cyB9ID0gQWxpZ25tZW50SGVscGVycy51cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZShpbml0aWFsVmVyc2VPYmplY3RzLCB2ZXJzZVRleHQpXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRhcmdldFZlcnNlT2JqZWN0cylcbiAgICAgICAgICAgICAgdmVyc2VEYXRhLnZlcnNlT2JqZWN0cyA9IHRhcmdldFZlcnNlT2JqZWN0cyAvLyByZXBsYWNlIHZlcnNlT2JqZWN0cyB3aXRoIGFsaWduLWFibGUgY29udGVudFxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG5ld1ZlcnNlc0ZvclJlZlxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICAvKipcbiAgICogZm9yY2UgcmVsb2FkIG9mIHJlc291cmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfHVuZGVmaW5lZH0gaWdub3JlU2hhIC0gb3B0aW9uYWwgc2hhIHRvIGlnbm9yZVxuICAgKiBAcGFyYW0ge3N0cmluZ3x1bmRlZmluZWR9IHJlZiAtIG9wdGlvbmFsIHJlZmVyZW5jZSB0byBmZXRjaFxuICAgKi9cbiAgZnVuY3Rpb24gcmVsb2FkUmVzb3VyY2UoaWdub3JlU2hhID0gbnVsbCwgcmVmID0gbnVsbCkge1xuICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUucmVsb2FkUmVzb3VyY2UoKSBpZ25vcmVTaGE6ICR7aWdub3JlU2hhfWAgKVxuICAgIGNvbnN0IF9mZXRjaFBhcmFtcyA9IHsgLi4uZmV0Y2hQYXJhbXMgfVxuXG4gICAgaWYgKHJlZiAmJiBmZXRjaFBhcmFtcz8ucmVzb3VyY2VMaW5rKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG93bmVyLFxuICAgICAgICBsYW5ndWFnZUlkLFxuICAgICAgICByZXNvdXJjZUlkLFxuICAgICAgICByZWY6IF9yZWYsXG4gICAgICB9ID0gcGFyc2VSZXNvdXJjZUxpbmsoZmV0Y2hQYXJhbXMucmVzb3VyY2VMaW5rKVxuXG4gICAgICBpZiAocmVmICE9PSBfcmVmKSB7IC8vIGlmIHJlZiBjaGFuZ2VkLCB1cGRhdGUgcmVzb3VyY2VsaW5rXG4gICAgICAgIGNvbnN0IF9yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoe1xuICAgICAgICAgIG93bmVyLFxuICAgICAgICAgIGxhbmd1YWdlSWQsXG4gICAgICAgICAgcmVzb3VyY2VJZCxcbiAgICAgICAgICByZWYsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUucmVsb2FkUmVzb3VyY2UoKSBvbGQgcmVmIGlzIGRpZmZlcmVudCAke19yZWZ9LCBzd2l0Y2hpbmcgdG8gbG9hZCByZWY6ICR7cmVmfSwgbmV3IHJlc291cmNlTGluazogJHtfcmVzb3VyY2VMaW5rfWAgKVxuICAgICAgICBfZmV0Y2hQYXJhbXMucmVzb3VyY2VMaW5rID0gX3Jlc291cmNlTGlua1xuICAgICAgfVxuICAgIH1cbiAgICBmZXRjaEJvb2soX2ZldGNoUGFyYW1zLCBpZ25vcmVTaGEpXG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IGN1cnJlbnRCb29rUmVmID0gZmV0Y2hQYXJhbXM/LnJlZmVyZW5jZT8ucHJvamVjdElkXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY3VycmVudEJvb2tSZWYpIHtcbiAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUgZmV0Y2hlZCBib29rIGNoYW5nZWQgdG8gJHtjdXJyZW50Qm9va1JlZn0sICR7cmVzb3VyY2VMaW5rX31gLCBmZXRjaFBhcmFtcyApXG4gICAgICBzZXRTdGF0ZSh7IGJvb2tPYmplY3RzOiBudWxsLCBiaWJsZVVzZm06IG51bGwgfSlcbiAgICB9XG4gICAgLy8gQHRzLWlnbm9yZVxuICB9LCBbY3VycmVudEJvb2tSZWZdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZSBib29rIHJlZiBjaGFuZ2VkIHRvICR7Ym9va0lkfSwgJHtyZXNvdXJjZUxpbmtffWApXG4gICAgLy8gQHRzLWlnbm9yZVxuICB9LCBbYm9va0lkXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGV4cGVjdGVkQm9va0lkID0gYm9va0lkIHx8ICcnXG4gICAgY29uc3QgZmV0Y2hlZEJvb2tTYW1lID0gZmV0Y2hlZEJvb2sgJiYgKGZldGNoZWRCb29rID09PSBleHBlY3RlZEJvb2tJZClcbiAgICBsZXQgX3ZlcnNlc0ZvclJlZiA9IFtdXG5cbiAgICBpZiAoIWZldGNoZWRCb29rU2FtZSkge1xuICAgICAgLy8gaWYgKGV4cGVjdGVkQm9va0lkICYmIGZldGNoZWRCb29rKSB7XG4gICAgICAvLyAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUgZXhwZWN0ZWQgYm9vayAke2V4cGVjdGVkQm9va0lkfSBidXQgZmV0Y2hlZCBib29rIHdhcyAke2ZldGNoZWRCb29rfSAtIGNsZWFyaW5nYClcbiAgICAgIC8vIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgX2Jvb2tPYmplY3RzID0gZmV0Y2hlZEJvb2tTYW1lID8gYm9va09iamVjdHMgOiBudWxsXG4gICAgICBfdmVyc2VzRm9yUmVmID0gZmV0Y2hWZXJzZXNGb3JSZWYoX2Jvb2tPYmplY3RzKVxuICAgICAgLy8gY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZSBfYm9va09iamVjdHMgaXMgJHshIV9ib29rT2JqZWN0c30gYW5kIGJvb2tzIGFyZSB0aGUgc2FtZSAke2ZldGNoZWRCb29rfWAsIHsgY29udGVudCwgZmV0Y2hQYXJhbXMgfSlcbiAgICB9XG5cbiAgICBpZiAoIWlzRXF1YWwoX3ZlcnNlc0ZvclJlZiwgdmVyc2VzRm9yUmVmKSkge1xuICAgICAgc2V0U3RhdGUoeyB2ZXJzZXNGb3JSZWY6IF92ZXJzZXNGb3JSZWYgfSlcbiAgICB9XG4gIH0sIFtyZWZlcmVuY2VdKVxuXG4gIHJldHVybiB7XG4gICAgYmlibGVVc2ZtLFxuICAgIGJvb2tPYmplY3RzLFxuICAgIGdldFZlcnNlc0ZvclJlZjogX2dldFZlcnNlc0ZvclJlZixcbiAgICByZWZlcmVuY2U6IGZldGNoUGFyYW1zPy5yZWZlcmVuY2UsXG4gICAgcmVsb2FkUmVzb3VyY2UsXG4gICAgcmVzb3VyY2VMaW5rOiBmZXRjaFBhcmFtcz8ucmVzb3VyY2VMaW5rLFxuICAgIHJlc291cmNlU3RhdGUsIC8vIHN0YXRlIGluZm9ybWF0aW9uIGZvciBsYXRlc3QgZmV0Y2hlZCByZXNvdXJjZVxuICAgIHJlc291cmNlU3RhdHVzLCAvLyBzdGF0dXMgZmxhZ3MgZm9yIGZldGNoZWQgcmVzb3VyY2VcbiAgICB0aXRsZSxcbiAgICB1cGRhdGVWZXJzZSxcbiAgICB2ZXJzaW9uLFxuICAgIHZlcnNlc0ZvclJlZixcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOytDQUNBLHFKQUFBQSxtQkFBQSxZQUFBQSxvQkFBQSxXQUFBQyxDQUFBLFNBQUFDLENBQUEsRUFBQUQsQ0FBQSxPQUFBRSxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsU0FBQSxFQUFBQyxDQUFBLEdBQUFILENBQUEsQ0FBQUksY0FBQSxFQUFBQyxDQUFBLEdBQUFKLE1BQUEsQ0FBQUssY0FBQSxjQUFBUCxDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxJQUFBRCxDQUFBLENBQUFELENBQUEsSUFBQUUsQ0FBQSxDQUFBTyxLQUFBLEtBQUFDLENBQUEsd0JBQUFDLE1BQUEsR0FBQUEsTUFBQSxPQUFBQyxDQUFBLEdBQUFGLENBQUEsQ0FBQUcsUUFBQSxrQkFBQUMsQ0FBQSxHQUFBSixDQUFBLENBQUFLLGFBQUEsdUJBQUFDLENBQUEsR0FBQU4sQ0FBQSxDQUFBTyxXQUFBLDhCQUFBQyxPQUFBakIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUMsTUFBQSxDQUFBSyxjQUFBLENBQUFQLENBQUEsRUFBQUQsQ0FBQSxJQUFBUyxLQUFBLEVBQUFQLENBQUEsRUFBQWlCLFVBQUEsTUFBQUMsWUFBQSxNQUFBQyxRQUFBLFNBQUFwQixDQUFBLENBQUFELENBQUEsV0FBQWtCLE1BQUEsbUJBQUFqQixDQUFBLElBQUFpQixNQUFBLFlBQUFBLE9BQUFqQixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxXQUFBRCxDQUFBLENBQUFELENBQUEsSUFBQUUsQ0FBQSxnQkFBQW9CLEtBQUFyQixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxFQUFBRyxDQUFBLFFBQUFLLENBQUEsR0FBQVYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFNBQUEsWUFB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
@@ -582,4 +582,4 @@ export function useScriptureAlignmentEdit(_ref) {
582
582
  }
583
583
  };
584
584
  }
585
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJpbmZvIiwiZXJyb3IiLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIkYiLCJfZSIsIm5vcm1hbENvbXBsZXRpb24iLCJkaWRFcnIiLCJzdGVwIiwiX2UyIiwib3duS2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIm9iaiIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwicmVzIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfbm9uSXRlcmFibGVSZXN0IiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsImZyb20iLCJ0ZXN0IiwibGVuIiwiYXJyMiIsIlJlYWN0IiwiQWxpZ25tZW50SGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJ1c2ZtSGVscGVycyIsImlzRXF1YWwiLCJCb29rT2JqZWN0c1R5cGUiLCJTY3JpcHR1cmVDb25maWciLCJTY3JpcHR1cmVSZWZlcmVuY2UiLCJTZXJ2ZXJDb25maWciLCJWZXJzZU9iamVjdHNUeXBlIiwiZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyIsInZlcnNlT2JqZWN0c0hhdmVXb3JkcyIsIk9SSUdJTkFMX1NPVVJDRSIsImdldFZlcnNlc0ZvclJlZiIsImlzVXNmbUFsaWduZWQiLCJ0YXJnZXRWZXJzZVVTRk0iLCJvcmlnaW5hbFZlcnNlT2JqZWN0cyIsIl9vcmlnaW5hbFZlcnNlT2JqZWN0cyIsIl9BbGlnbm1lbnRIZWxwZXJzJGV4dCIsImV4dHJhY3RBbGlnbm1lbnRzRnJvbVRhcmdldFZlcnNlIiwiYWxpZ25tZW50cyIsIndvcmRCYW5rIiwiYXJlQWxnbm1lbnRzQ29tcGxldGUiLCJnZXRDdXJyZW50VmVyc2VVc2ZtIiwidXBkYXRlZFZlcnNlT2JqZWN0cyIsImluaXRpYWxWZXJzZU9iamVjdHMiLCJ2ZXJzZVRleHRDaGFuZ2VkIiwibmV3VmVyc2VUZXh0IiwiY3VycmVudFZlcnNlT2JqZWN0c18iLCJfQWxpZ25tZW50SGVscGVycyR1cGQiLCJ1cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZSIsInRhcmdldFZlcnNlVGV4dCIsImNvbnZlcnRWZXJzZURhdGFUb1VTRk0iLCJhbGxTcGFjZXMiLCJ0ZXh0IiwiaGFzVGV4dENoYW5nZWRTaWduaWZpY2FudGx5IiwiaW5pdGlhbFZlcnNlVGV4dCIsImNoYW5nZWQiLCJsZW5ndGhEaWZmZXJlbmNlIiwiZmlyc3RQYXJ0T2ZJbml0aWFsIiwic3Vic3RyaW5nIiwibGFzdENoYXJzIiwicG9zIiwibGFzdEluZGV4T2YiLCJsYXN0VXNmbVRhZyIsImVuZHNXaXRoUXVvdGUiLCJ1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0IiwiX3JlZiIsImN1cnJlbnRJbmRleCIsImVuYWJsZUVkaXQiLCJlbmFibGVBbGlnbm1lbnQiLCJodHRwQ29uZmlnIiwiaXNOZXdUZXN0YW1lbnQiLCJvcmlnaW5hbExhbmd1YWdlT3duZXIiLCJvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzIiwib3JpZ2luYWxSZXBvVXJsIiwicmVmZXJlbmNlIiwic2NyaXB0dXJlQ29uZmlnIiwic2NyaXB0dXJlU2V0dGluZ3MiLCJzZXRTYXZlZENoYW5nZXMiLCJzb3VyY2VMYW5ndWFnZSIsInN0YXJ0RWRpdEJyYW5jaCIsInRhcmdldExhbmd1YWdlIiwidGl0bGUiLCJ3b3JraW5nUmVzb3VyY2VCcmFuY2giLCJfUmVhY3QkdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsImFsaWduZWQiLCJhbGlnbmVyRGF0YSIsImVkaXRpbmciLCJuZXdBbGlnbm1lbnRzIiwiX1JlYWN0JHVzZVN0YXRlMiIsInN0YXRlIiwic2V0U3RhdGVfIiwiX3N0YXRlIiwiY2hhcHRlciIsInZlcnNlIiwicHJvamVjdElkIiwiYmFzaWNSZWZlcmVuY2UiLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiY2xlYXJDaGFuZ2VzIiwiY29uc29sZSIsImxvZyIsImNvbmNhdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJjbGVhclN0YXRlIiwib3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5nc18iLCJyZXNvdXJjZUlkIiwiYm9va0lkIiwib3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5ncyIsInJlc291cmNlTGluayIsInVzZU1lbW8iLCJ2ZXJzZU9iamVjdHMiLCJ2ZXJzZXMiLCJsYW5ndWFnZUlkIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJfdmVyc2VSZWZlcmVuY2UkdmVyc2UiLCJ2ZXJzZVJlZmVyZW5jZSIsIm9yaWdWZXJzZU9iamVjdHMiLCJ2ZXJzZURhdGEiLCJ1c2VFZmZlY3QiLCJub3RFbXB0eSIsImFsaWduZWRfIiwicmVzdWx0cyIsImdldENoYW5nZXMiLCJfbmV3U3RhdGUiLCJ1cGRhdGVkVmVyc2VPYmplY3RzXyIsInVwZGF0ZVZlcnNlV2l0aE5ld0FsaWdubWVudHMiLCJfQWxpZ25tZW50SGVscGVycyR1cGQyIiwidGFyZ2V0VmVyc2VPYmplY3RzIiwiX3NjcmlwdHVyZUNvbmZpZyR2ZXJzIiwicmVmIiwidmVyc2VzRm9yUmVmIiwiaGFuZGxlQWxpZ25tZW50Q2xpY2siLCJfaGFuZGxlQWxpZ25tZW50Q2xpY2siLCJfY2FsbGVlIiwiX2FsaWduZXJEYXRhIiwib3JpZ2luYWxWZXJzZVVzZm0iLCJfQWxpZ25tZW50SGVscGVycyRwYXIiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwicGFyc2VVc2ZtVG9Xb3JkQWxpZ25lckRhdGEiLCJ0YXJnZXRXb3JkcyIsInZlcnNlQWxpZ25tZW50cyIsImVycm9yTWVzc2FnZSIsIl9uZXdBbGlnbm1lbnRzIiwidmVyc2VVc2ZtIiwiYWRkQWxpZ25tZW50c1RvVmVyc2VVU0ZNIiwiYWxpZ25lZFZlcnNlT2JqZWN0cyIsInVzZm1WZXJzZVRvSnNvbiIsInNhdmVBbGlnbm1lbnQiLCJjYWxsU2V0U2F2ZWRTdGF0ZSIsImNhbmNlbEFsaWdubWVudCIsInNldEVkaXRpbmciLCJfeCIsIl9zZXRFZGl0aW5nIiwiX2NhbGxlZTIiLCJlZGl0aW5nXyIsIl9uZXdWZXJzZVRleHQiLCJfdXBkYXRlZFZlcnNlT2JqZWN0cyIsIl92ZXJzZVRleHRDaGFuZ2VkIiwidmVyc2VUZXh0IiwiX0FsaWdubWVudEhlbHBlcnMkdXBkNCIsIl9hbGlnbm1lbnRzQ2hhbmdlZCIsIl9hcmdzMiIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsImdldFVzZm1Gb3JWZXJzZUNvbnRlbnQiLCJjdXJyZW50VmVyc2VPYmplY3RzIiwic2V0VmVyc2VDaGFuZ2VkIiwiX2luaXRpYWxWZXJzZVRleHQiLCJfQWxpZ25tZW50SGVscGVycyR1cGQzIiwidW5zYXZlZENoYW5nZXMiLCJ1bnNhdmVkQ2hhbmdlc18iLCJvbkFsaWdubWVudHNDaGFuZ2UiLCJhbGlnbm1lbnRDb21wbGV0ZSIsImFjdGlvbnMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBBbGlnbm1lbnRIZWxwZXJzLFxuICBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLFxuICB1c2ZtSGVscGVycyxcbn0gZnJvbSAnd29yZC1hbGlnbmVyLXJjbCdcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICdAcmVhY3QtaG9va3ovZGVlcC1lcXVhbCdcbmltcG9ydCB7XG4gIEJvb2tPYmplY3RzVHlwZSxcbiAgU2NyaXB0dXJlQ29uZmlnLFxuICBTY3JpcHR1cmVSZWZlcmVuY2UsXG4gIFNlcnZlckNvbmZpZyxcbiAgVmVyc2VPYmplY3RzVHlwZSxcbn0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBnZXRTY3JpcHR1cmVSZXNvdXJjZVNldHRpbmdzLCB2ZXJzZU9iamVjdHNIYXZlV29yZHMgfSBmcm9tICcuLi91dGlscy9TY3JpcHR1cmVTZXR0aW5ncydcbmltcG9ydCB7IE9SSUdJTkFMX1NPVVJDRSB9IGZyb20gJy4uL3V0aWxzJ1xuaW1wb3J0IHsgZ2V0VmVyc2VzRm9yUmVmIH0gZnJvbSAnLi91c2VTY3JpcHR1cmUnXG5cbmludGVyZmFjZSBTdGFydEVkaXQge1xuICAoKTogUHJvbWlzZTxzdHJpbmc+O1xufVxuXG50eXBlIExhbmd1YWdlVHlwZSA9IHtcbiAgbGFuZ3VhZ2VJZDogc3RyaW5nLCAvLyBzaG9ydCBsYW5ndWFnZSBjb2RlIHN1Y2ggYXMgXCJlblwiXG4gIGRpcmVjdGlvbjogc3RyaW5nLCAvLyBsYW5ndWFnZSBkaXJlY3Rpb24gXCJsdHJcIiBvciBcInJ0bFwiXG59O1xuXG5pbnRlcmZhY2UgQWxpZ25lckRhdGFUeXBlIHtcbiAgICB3b3JkQmFuaz86IE9iamVjdFtdLCAvLyBsaXN0IG9mIHdvcmRiYW5rIHdvcmQgKHRhcmdldCBsYW5ndWFnZSB3b3JkcykgaW4gZm9ybWF0IG5lZWRlZCBieSB3b3JkLWFsaWduZXItcmNsXG4gICAgYWxpZ25tZW50cz86IE9iamVjdFtdLCAvLyBsaXN0IG9mIHdvcmQgYWxpZ25tZW50cyBpbiBmb3JtYXQgbmVlZGVkIGJ5IHdvcmQtYWxpZ25lci1yY2xcbiAgICBlcnJvck1lc3NhZ2U/OiBzdHJpbmcsIC8vIGlmIHByZXNlbnQgdGhlbiB3ZSBkb24ndCBoYXZlIG5lY2Vzc2FyeSBkYXRhIHRvIGRvIGFsaWdubWVudFxufVxuXG5pbnRlcmZhY2UgQWxpZ25lclJlc3VsdHNEYXRhVHlwZSB7XG4gICAgdGFyZ2V0V29yZHM/OiBPYmplY3RbXSwgLy8gbGlzdCBvZiB0YXJnZXQgbGFuZ3VhZ2Ugd29yZHMgaW4gZm9ybWF0IHVzZWQgaW4gd29yZC1hbGlnbmVyLXJjbFxuICAgIHZlcnNlQWxpZ25tZW50cz86IE9iamVjdFtdLCAvLyBsaXN0IG9mIHdvcmQgYWxpZ25tZW50cyBpbiBmb3JtYXQgdXNlZCBieSB3b3JkLWFsaWduZXItcmNsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzIHtcbiAgLy8gaW5kZXggdG8gdXNlIGZvciBib29rIChlLmcuIGAwMWAgZm9yIGBHRU5gKVxuICBib29rSW5kZXg6IHN0cmluZyxcbiAgLy8gY3VycmVudCB2ZXJzZSBzZWxlY3RlZCBmcm9tIGluaXRpYWxWZXJzZU9iamVjdHNbXVxuICBjdXJyZW50SW5kZXg6IG51bWJlcixcbiAgLy8gcmVmZXJlbmNlIGZvciB2ZXJzZSBzZWxlY3RlZCBmb3IgYWxpZ25tZW50XG4gIGN1cnJlbnRWZXJzZVJlZjogU2NyaXB0dXJlUmVmZXJlbmNlLFxuICAvLyBpZiB0cnVlIHRoZW4gZWRpdGluZyBpcyBhbGxvd2VkXG4gIGVuYWJsZUVkaXQ6IGJvb2xlYW4sXG4gIC8vIGlmIHRydWUgdGhlbiBhbGlnbm1lbnQgaXMgYWxsb3dlZFxuICBlbmFibGVBbGlnbm1lbnQ6IGJvb2xlYW4sXG4gIC8vIGNvbmZpZ3VyYXRpb24gdG8gdXNlIGZvciBodHRwIGNvbW11bmljYXRpb25cbiAgaHR0cENvbmZpZzogU2VydmVyQ29uZmlnLFxuICAvLyBhcnJheSBvZiB0aGUgaW5pdGlhbCB2ZXJzZU9iamVjdHMgZm9yIGN1cnJlbnQgcmVmZXJlbmNlXG4gIGluaXRpYWxWZXJzZU9iamVjdHM6IFZlcnNlT2JqZWN0c1R5cGUsXG4gIC8vIGluaXRpYWwgdGV4dCBmb3IgdmVyc2VcbiAgaW5pdGlhbFZlcnNlVGV4dDogc3RyaW5nLFxuICAvLyBmbGFnIHRoYXQgd2UgYXJlIHdvcmtpbmcgb24gTlQgYm9va1xuICBpc05ld1Rlc3RhbWVudDogYm9vbGVhbixcbiAgLy8gdXNlciBuYW1lIG9mIGxvZ2dlZCBpbiB1c2VyXG4gIGxvZ2dlZEluVXNlcjogc3RyaW5nLFxuICAvLyBvd25lciB0byB1c2Ugd2hlbiBmZXRjaGluZyBvcmlnaW5hbCBsYW5ndWFnZSByZXNvdXJjZXNcbiAgb3JpZ2luYWxMYW5ndWFnZU93bmVyOiBzdHJpbmcsXG4gIC8vIHVybCBmb3IgdGhlIG9yaWdpbmFsIGxhbmd1YWdlIHJlcG9cbiAgb3JpZ2luYWxSZXBvVXJsOiBzdHJpbmcsXG4gIC8vIG9yaWdpbmFsIHNjcmlwdHVyZSBib29rT2JqZWN0cyBmb3IgY3VycmVudCBib29rXG4gIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHM6IEJvb2tPYmplY3RzVHlwZSxcbiAgLyoqIGN1cnJlbnQgcmVmZXJlbmNlICoqL1xuICByZWZlcmVuY2U6IFNjcmlwdHVyZVJlZmVyZW5jZTtcbiAgLy8gZGV0YWlscyBhYm91dCB0aGUgY3VycmVudCBzY3JpcHR1cmUgbG9hZGVkXG4gIHNjcmlwdHVyZUNvbmZpZzogU2NyaXB0dXJlQ29uZmlnLFxuICAvLyBzZXR0aW5ncyB0byBiZSB1c2VkIGZvciBzY3JpcHR1cmVcbiAgc2NyaXB0dXJlU2V0dGluZ3M6IHsgfSxcbiAgLy8gY2FsbGJhY2sgdG8gc2F2ZSBjdXJyZW50IHZlcnNlIGVkaXQgYW5kIGFsaWdubWVudCBjaGFuZ2VzXG4gIHNldFNhdmVkQ2hhbmdlczogRnVuY3Rpb24sXG4gIC8vIHNvdXJjZSBsYW5ndWFnZSBjb2RlIHN1Y2ggYXMgYGhib2BcbiAgc291cmNlTGFuZ3VhZ2U6IHN0cmluZyxcbiAgLy8gY2FsbGJhY2sgdG8gY3JlYXRlIGEgdXNlciBicmFuY2ggZm9yIHNhdmluZyBlZGl0IGRhdGFcbiAgc3RhcnRFZGl0QnJhbmNoOiBTdGFydEVkaXQsXG4gIC8vIGN1cnJlbnQgdGFyZ2V0IGxhbmd1YWdlXG4gIHRhcmdldExhbmd1YWdlOiBMYW5ndWFnZVR5cGUsXG4gIC8vIHRpdGxlIHRvIHNob3cgaW4gYWxpZ25tZW50XG4gIHRpdGxlOiBzdHJpbmcsXG4gICAvLyBicmFuY2ggbmFtZSBjdXJyZW50bHkgYmVpbmcgdXNlZCAoZS5nLiBgbWFzdGVyYCBvciB1c2VyIGJyYW5jaClcbiAgd29ya2luZ1Jlc291cmNlQnJhbmNoOiBzdHJpbmcsXG59XG5cbi8qKlxuICogZGV0ZXJtaW5lcyBpZiBhbGlnbm1lbnQgaXMgY29tcGxldGUgYmFzZWQgb24gdGFyZ2V0IFVTRk0gYW5kIG9yaWdpbmFsIGxhbmd1YWdlIHZlcnNlIG9iamVjdHNcbiAqIEBwYXJhbSB7c3RyaW5nfSB0YXJnZXRWZXJzZVVTRk1cbiAqIEBwYXJhbSB7VmVyc2VPYmplY3RzVHlwZX0gb3JpZ2luYWxWZXJzZU9iamVjdHNcbiAqL1xuZnVuY3Rpb24gaXNVc2ZtQWxpZ25lZCh0YXJnZXRWZXJzZVVTRk0sIG9yaWdpbmFsVmVyc2VPYmplY3RzKSB7XG4gIG9yaWdpbmFsVmVyc2VPYmplY3RzID0gb3JpZ2luYWxWZXJzZU9iamVjdHM/Lmxlbmd0aCA/IG9yaWdpbmFsVmVyc2VPYmplY3RzIDogbnVsbCAvLyBtYWtlIHN1cmUgbm90IHBhc3NpbmcgZW1wdHkgQXJyYXlcbiAgY29uc3QgeyBhbGlnbm1lbnRzLCB3b3JkQmFuayB9ID0gQWxpZ25tZW50SGVscGVycy5leHRyYWN0QWxpZ25tZW50c0Zyb21UYXJnZXRWZXJzZSh0YXJnZXRWZXJzZVVTRk0sIG9yaWdpbmFsVmVyc2VPYmplY3RzKVxuICByZXR1cm4gQWxpZ25tZW50SGVscGVycy5hcmVBbGdubWVudHNDb21wbGV0ZSh3b3JkQmFuaywgYWxpZ25tZW50cylcbn1cblxuLyoqXG4gKiBnZXQgdGhlIHVwZGF0ZWQgVVNGTSBmb3IgdGFyZ2V0IHZlcnNlIGZyb20gdGhlIHVwZGF0ZWQgdmVyc2Ugb2JqZWN0cyBhbmQgbGF0ZXN0IHRleHRcbiAqIEBwYXJhbSB7VmVyc2VPYmplY3RzVHlwZX0gdXBkYXRlZFZlcnNlT2JqZWN0c1xuICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSBpbml0aWFsVmVyc2VPYmplY3RzXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHZlcnNlVGV4dENoYW5nZWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBuZXdWZXJzZVRleHRcbiAqL1xuZnVuY3Rpb24gZ2V0Q3VycmVudFZlcnNlVXNmbSh1cGRhdGVkVmVyc2VPYmplY3RzLCBpbml0aWFsVmVyc2VPYmplY3RzLCB2ZXJzZVRleHRDaGFuZ2VkOiBib29sZWFuLCBuZXdWZXJzZVRleHQpIHtcbiAgbGV0IHRhcmdldFZlcnNlVVNGTSA9IG51bGxcbiAgY29uc3QgY3VycmVudFZlcnNlT2JqZWN0c18gPSB1cGRhdGVkVmVyc2VPYmplY3RzIHx8IGluaXRpYWxWZXJzZU9iamVjdHNcblxuICBpZiAodmVyc2VUZXh0Q2hhbmdlZCAmJiBuZXdWZXJzZVRleHQpIHtcbiAgICBjb25zdCB7IHRhcmdldFZlcnNlVGV4dCB9ID0gQWxpZ25tZW50SGVscGVycy51cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZShjdXJyZW50VmVyc2VPYmplY3RzXywgbmV3VmVyc2VUZXh0KVxuICAgIHRhcmdldFZlcnNlVVNGTSA9IHRhcmdldFZlcnNlVGV4dFxuICB9IGVsc2Uge1xuICAgIHRhcmdldFZlcnNlVVNGTSA9IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMuY29udmVydFZlcnNlRGF0YVRvVVNGTShjdXJyZW50VmVyc2VPYmplY3RzXylcbiAgfVxuICByZXR1cm4gdGFyZ2V0VmVyc2VVU0ZNXG59XG5cbi8qKlxuICogcmV0dXJuIHRydWUgaWYgb25seSBzcGFjZXMgaW4gY29udGVudFxuICogQHBhcmFtIHtzdHJpbmd9IHRleHRcbiAqL1xuZnVuY3Rpb24gYWxsU3BhY2VzKHRleHQpIHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHRleHRbaV0gIT09ICcgJykge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlXG59XG5cbi8qKlxuICogbWFrZSBzdXJlIHRoZXJlIGlzIGEgc2lnbmlmaWNhbnQgY2hhbmdlIHRvIHRoZSB0ZXh0XG4gKiBAcGFyYW0ge3N0cmluZ30gbmV3VmVyc2VUZXh0XG4gKiBAcGFyYW0ge3N0cmluZ30gaW5pdGlhbFZlcnNlVGV4dFxuICovXG5mdW5jdGlvbiBoYXNUZXh0Q2hhbmdlZFNpZ25pZmljYW50bHkobmV3VmVyc2VUZXh0LCBpbml0aWFsVmVyc2VUZXh0KSB7XG4gIGxldCBjaGFuZ2VkID0gbmV3VmVyc2VUZXh0ICE9PSBpbml0aWFsVmVyc2VUZXh0XG5cbiAgaWYgKGNoYW5nZWQgJiYgbmV3VmVyc2VUZXh0KSB7IC8vIG1ha2Ugc3VyZSBpdCdzIHNpZ25pZmljYW50XG4gICAgY29uc3QgbGVuZ3RoRGlmZmVyZW5jZSA9IG5ld1ZlcnNlVGV4dC5sZW5ndGggLSBpbml0aWFsVmVyc2VUZXh0Py5sZW5ndGhcbiAgICBjb25zdCBmaXJzdFBhcnRPZkluaXRpYWwgPSBuZXdWZXJzZVRleHQuc3Vic3RyaW5nKDAsIGluaXRpYWxWZXJzZVRleHQubGVuZ3RoKVxuXG4gICAgaWYgKChsZW5ndGhEaWZmZXJlbmNlID4gMCkgJiYgKGluaXRpYWxWZXJzZVRleHQgPT09IGZpcnN0UGFydE9mSW5pdGlhbCkpIHsgLy8gaWYgaW5pdGlhbCBwYXJ0cyBtYXRjaFxuICAgICAgLy8gYWRkIGV4ZW1wdGlvbiBpZiB0aGUgdXNmbSBlbmRzIHdpdGggYSBxdW90ZSB0YWdcbiAgICAgIGNvbnN0IGxhc3RDaGFycyA9IG5ld1ZlcnNlVGV4dC5zdWJzdHJpbmcobmV3VmVyc2VUZXh0Lmxlbmd0aCAtIGxlbmd0aERpZmZlcmVuY2UpXG4gICAgICBjb25zdCBwb3MgPSBuZXdWZXJzZVRleHQubGFzdEluZGV4T2YoJ1xcXFwnKVxuICAgICAgY29uc3QgbGFzdFVzZm1UYWcgPSBuZXdWZXJzZVRleHRbcG9zICsgMV1cbiAgICAgIGNvbnN0IGVuZHNXaXRoUXVvdGUgPSAocG9zID4gMCkgJiYgKGxhc3RVc2ZtVGFnID09PSAncScpXG5cbiAgICAgIGlmIChlbmRzV2l0aFF1b3RlICYmIGFsbFNwYWNlcyhsYXN0Q2hhcnMpKSB7XG4gICAgICAgIGNoYW5nZWQgPSBmYWxzZVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gY2hhbmdlZFxufVxuXG4vLyBtYW5hZ2UgdmVyc2UgZWRpdCBhbmQgYWxpZ25tZW50IHN0YXRlc1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQoe1xuICBjdXJyZW50SW5kZXgsXG4gIGVuYWJsZUVkaXQsXG4gIGVuYWJsZUFsaWdubWVudCxcbiAgaHR0cENvbmZpZyxcbiAgaW5pdGlhbFZlcnNlT2JqZWN0cyxcbiAgaW5pdGlhbFZlcnNlVGV4dCxcbiAgaXNOZXdUZXN0YW1lbnQsXG4gIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyxcbiAgb3JpZ2luYWxSZXBvVXJsLFxuICByZWZlcmVuY2UsXG4gIHNjcmlwdHVyZUNvbmZpZyxcbiAgc2NyaXB0dXJlU2V0dGluZ3MsXG4gIHNldFNhdmVkQ2hhbmdlcyxcbiAgc291cmNlTGFuZ3VhZ2UsXG4gIHN0YXJ0RWRpdEJyYW5jaCxcbiAgdGFyZ2V0TGFuZ3VhZ2UsXG4gIHRpdGxlLFxuICB3b3JraW5nUmVzb3VyY2VCcmFuY2gsXG59IDogU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzKSB7XG4gIHR5cGUgU3RhdGVUeXBlcyA9IHtcbiAgICBhbGlnbmVkOiBib29sZWFuLFxuICAgIGFsaWduZXJEYXRhOiBBbGlnbmVyRGF0YVR5cGUsXG4gICAgZWRpdGluZzogYm9vbGVhbixcbiAgICBuZXdBbGlnbm1lbnRzOiBBbGlnbmVyUmVzdWx0c0RhdGFUeXBlLFxuICAgIG5ld1ZlcnNlVGV4dDogc3RyaW5nLFxuICAgIHVwZGF0ZWRWZXJzZU9iamVjdHM6IFZlcnNlT2JqZWN0c1R5cGUsXG4gICAgdmVyc2VUZXh0Q2hhbmdlZDogYm9vbGVhbixcbiAgfVxuXG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVfXSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICBhbGlnbmVkOiBmYWxzZSxcbiAgICBhbGlnbmVyRGF0YTogbnVsbCxcbiAgICBlZGl0aW5nOiBmYWxzZSxcbiAgICBuZXdBbGlnbm1lbnRzOiBudWxsLFxuICAgIG5ld1ZlcnNlVGV4dDogbnVsbCxcbiAgICB1cGRhdGVkVmVyc2VPYmplY3RzOiBudWxsLFxuICAgIHZlcnNlVGV4dENoYW5nZWQ6IGZhbHNlLFxuICB9KVxuXG4gIGNvbnN0IF9zdGF0ZTogU3RhdGVUeXBlcyA9IHN0YXRlIC8vIFRyaWNreTogd29yay1hcm91bmQgZm9yIGJ1ZyB0aGF0IHN0YW5kYXJkIHR5cGVzY3JpcHQgdHlwZSBjYXN0aW5nIGRvZXMgbm90IHdvcmsgaW4gLnRzeCBmaWxlc1xuICBjb25zdCB7XG4gICAgYWxpZ25lZCxcbiAgICBhbGlnbmVyRGF0YSxcbiAgICBlZGl0aW5nLFxuICAgIG5ld0FsaWdubWVudHMsXG4gICAgbmV3VmVyc2VUZXh0LFxuICAgIHVwZGF0ZWRWZXJzZU9iamVjdHMsXG4gICAgdmVyc2VUZXh0Q2hhbmdlZCxcbiAgfSA9IF9zdGF0ZVxuICBjb25zdCBjaGFwdGVyID0gcmVmZXJlbmNlPy5jaGFwdGVyXG4gIGNvbnN0IHZlcnNlID0gcmVmZXJlbmNlPy52ZXJzZVxuICBjb25zdCBwcm9qZWN0SWQgPSByZWZlcmVuY2U/LnByb2plY3RJZFxuICBjb25zdCBiYXNpY1JlZmVyZW5jZSA9IHsgLy8gb25seSBoYXMgdGhlIHRocmVlIGJhc2ljIGZpZWxkc1xuICAgIGNoYXB0ZXIsXG4gICAgdmVyc2UsXG4gICAgcHJvamVjdElkLFxuICB9XG5cbiAgZnVuY3Rpb24gc2V0U3RhdGUobmV3U3RhdGUpIHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7IC4uLnByZXZTdGF0ZSwgLi4ubmV3U3RhdGUgfSkpXG4gIH1cblxuICBmdW5jdGlvbiBjbGVhckNoYW5nZXMoKSB7XG4gICAgY29uc29sZS5sb2coYGNsZWFyQ2hhbmdlcygpIC0gJHtKU09OLnN0cmluZ2lmeShiYXNpY1JlZmVyZW5jZSl9YClcbiAgICBjb25zdCBjbGVhclN0YXRlID0ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBhbGlnbmVyRGF0YTogbnVsbCxcbiAgICAgIGVkaXRpbmc6IGZhbHNlLFxuICAgICAgbmV3QWxpZ25tZW50czogbnVsbCxcbiAgICAgIG5ld1ZlcnNlVGV4dDogbnVsbCxcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHM6IG51bGwsXG4gICAgICB2ZXJzZVRleHRDaGFuZ2VkOiBmYWxzZSxcbiAgICB9XG5cbiAgICBpZiAoIWlzRXF1YWwoc3RhdGUsIGNsZWFyU3RhdGUpKSB7XG4gICAgICBjb25zb2xlLmxvZyhgY2xlYXJDaGFuZ2VzKCkgLSByZWZlcmVuY2UgY2hhbmdlZCwgcmVzZXQgZWRpdC9hbGlnbm1lbnQgc3RhdGUgdmFyaWFibGVzYClcbiAgICAgIHNldFN0YXRlKGNsZWFyU3RhdGUpXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgb3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5nc18gPSB7XG4gICAgLi4uc2NyaXB0dXJlU2V0dGluZ3MsXG4gICAgcmVzb3VyY2VJZDogT1JJR0lOQUxfU09VUkNFLFxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBodHRwQ29uZmlnID0gaHR0cENvbmZpZyB8fCB7fVxuICBjb25zdCBib29rSWQgPSBwcm9qZWN0SWRcbiAgY29uc3Qgb3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5ncyA9IGdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MoXG4gICAgYm9va0lkLCBvcmlnaW5hbFNjcmlwdHVyZVNldHRpbmdzXywgaXNOZXdUZXN0YW1lbnQsIG9yaWdpbmFsUmVwb1VybCxcbiAgKVxuXG4gIGlmICghZW5hYmxlQWxpZ25tZW50KSB7IC8vIGlmIG5vdCBlbmFibGVkLCB0aGVuIHdlIGRvbid0IGZldGNoIHJlc291cmNlXG4gICAgb3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSBudWxsXG4gIH1cblxuICBjb25zdCBvcmlnaW5hbFZlcnNlT2JqZWN0cyA9IFJlYWN0LnVzZU1lbW8oKCkgPT4geyAvLyBnZXQgdGhlIG9yaWdpbmFsIGxhbmd1YWdlIHZlcnNlT2JqZWN0c1xuICAgIGNvbnN0IHZlcnNlT2JqZWN0cyA9IFtdXG5cbiAgICBpZiAob3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cykge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgY29uc3QgdmVyc2VzID0gZ2V0VmVyc2VzRm9yUmVmKGJhc2ljUmVmZXJlbmNlLCBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzLCBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzPy5sYW5ndWFnZUlkKVxuXG4gICAgICBpZiAodmVyc2VzPy5sZW5ndGgpIHtcbiAgICAgICAgZm9yIChjb25zdCB2ZXJzZVJlZmVyZW5jZSBvZiB2ZXJzZXMpIHtcbiAgICAgICAgICBjb25zdCBvcmlnVmVyc2VPYmplY3RzID0gdmVyc2VSZWZlcmVuY2U/LnZlcnNlRGF0YT8udmVyc2VPYmplY3RzXG5cbiAgICAgICAgICBpZiAob3JpZ1ZlcnNlT2JqZWN0cykge1xuICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkodmVyc2VPYmplY3RzLCBvcmlnVmVyc2VPYmplY3RzKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmVyc2VPYmplY3RzXG4gIH0sIFtvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzLCBjaGFwdGVyLCB2ZXJzZSwgcHJvamVjdElkXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyB1cGRhdGUgYWxpZ25tZW50IHN0YXR1cyB3aGVuIGFsaWduZXIgaXMgaGlkZGVuXG4gICAgY29uc3Qgbm90RW1wdHkgPSAhIWluaXRpYWxWZXJzZU9iamVjdHNcbiAgICBsZXQgYWxpZ25lZF8gPSBmYWxzZVxuXG4gICAgaWYgKCFhbGlnbmVyRGF0YSkgeyAvLyBza2lwIGlmIGFsaWduZXIgaXMgYmVpbmcgc2hvd25cbiAgICAgIGlmIChub3RFbXB0eSkgeyAvLyBza2lwIGlmIGVtcHR5XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWZXJzZU9iamVjdHNfID0gdXBkYXRlZFZlcnNlT2JqZWN0cyB8fCBpbml0aWFsVmVyc2VPYmplY3RzXG5cbiAgICAgICAgaWYgKCFlbmFibGVBbGlnbm1lbnQpIHtcbiAgICAgICAgICBhbGlnbmVkXyA9IHRydWVcbiAgICAgICAgfSBlbHNlIGlmIChuZXdWZXJzZVRleHQgJiYgKG5ld1ZlcnNlVGV4dCAhPT0gaW5pdGlhbFZlcnNlVGV4dCkpIHtcbiAgICAgICAgICBjb25zdCByZXN1bHRzID0gQWxpZ25tZW50SGVscGVycy51cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZShjdXJyZW50VmVyc2VPYmplY3RzXywgbmV3VmVyc2VUZXh0KVxuICAgICAgICAgIGFsaWduZWRfID0gaXNVc2ZtQWxpZ25lZChyZXN1bHRzPy50YXJnZXRWZXJzZVRleHQsIG9yaWdpbmFsVmVyc2VPYmplY3RzKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHRhcmdldFZlcnNlVVNGTSA9IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMuY29udmVydFZlcnNlRGF0YVRvVVNGTShjdXJyZW50VmVyc2VPYmplY3RzXylcbiAgICAgICAgICBhbGlnbmVkXyA9IGlzVXNmbUFsaWduZWQodGFyZ2V0VmVyc2VVU0ZNLCBvcmlnaW5hbFZlcnNlT2JqZWN0cylcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoYWxpZ25lZCAhPT0gYWxpZ25lZF8pIHtcbiAgICAgICAgc2V0U3RhdGUoeyBhbGlnbmVkOiBhbGlnbmVkXyB9KVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2luaXRpYWxWZXJzZU9iamVjdHMsIGFsaWduZXJEYXRhLCBuZXdWZXJzZVRleHQsIGluaXRpYWxWZXJzZVRleHQsIGVuYWJsZUFsaWdubWVudCwgb3JpZ2luYWxWZXJzZU9iamVjdHNdKVxuXG4gIC8qKlxuICAgKiBnZXQgY2hhbmdlcyBmb3Igc2F2aW5nXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBuZXdTdGF0ZSAtIG9wdGlvbmFsbHkgcGFzcyBpbiBuZXcgc3RhdGUgKHRvIG92ZXJyaWRlIHN0YXRlKVxuICAgKi9cbiAgZnVuY3Rpb24gZ2V0Q2hhbmdlcyhuZXdTdGF0ZSA9IHt9KSB7XG4gICAgY29uc29sZS5sb2coYGdldENoYW5nZXMgLSBzdGFydGVkICR7Y3VycmVudEluZGV4fSAtIHBhc3NlZCBzdGF0ZWAsIG5ld1N0YXRlKVxuICAgIGNvbnN0IF9uZXdTdGF0ZSA9IHtcbiAgICAgIHN0YXRlLFxuICAgICAgLi4ubmV3U3RhdGUsXG4gICAgfVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBuZXdBbGlnbm1lbnRzLFxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgbmV3VmVyc2VUZXh0LFxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0cyxcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHZlcnNlVGV4dENoYW5nZWQsXG4gICAgfSA9IF9uZXdTdGF0ZVxuICAgIGxldCB1cGRhdGVkVmVyc2VPYmplY3RzXyA9IHVwZGF0ZWRWZXJzZU9iamVjdHNcblxuICAgIGlmIChuZXdBbGlnbm1lbnRzKSB7IC8vIGlmIHVuc2F2ZWQgYWxpZ25tZW50IGNoYW5nZXMsIGFwcGx5IHRoZW1cbiAgICAgIGNvbnNvbGUubG9nKGBnZXRDaGFuZ2VzIC0gYXBwbHlpbmcgdW5zYXZlZCBhbGlnbm1lbnRzfWApXG4gICAgICB1cGRhdGVkVmVyc2VPYmplY3RzXyA9IHVwZGF0ZVZlcnNlV2l0aE5ld0FsaWdubWVudHMoKVxuICAgIH1cblxuICAgIGlmICh2ZXJzZVRleHRDaGFuZ2VkICYmIG5ld1ZlcnNlVGV4dCkge1xuICAgICAgY29uc29sZS5sb2coYGdldENoYW5nZXMgLSBhcHBseWluZyBuZXcgdGV4dDpgLCBuZXdWZXJzZVRleHQpXG4gICAgICBjb25zdCBjdXJyZW50VmVyc2VPYmplY3RzXyA9IHVwZGF0ZWRWZXJzZU9iamVjdHNfIHx8IGluaXRpYWxWZXJzZU9iamVjdHNcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHNfICYmIGNvbnNvbGUubG9nKGBnZXRDaGFuZ2VzIC0gYXBwbHlpbmcgdXBkYXRlZCBhbGlnbm1lbnRzYClcbiAgICAgIGNvbnN0IHsgdGFyZ2V0VmVyc2VPYmplY3RzIH0gPSBBbGlnbm1lbnRIZWxwZXJzLnVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlKGN1cnJlbnRWZXJzZU9iamVjdHNfLCBuZXdWZXJzZVRleHQpXG4gICAgICB1cGRhdGVkVmVyc2VPYmplY3RzXyA9IHRhcmdldFZlcnNlT2JqZWN0c1xuICAgIH0gZWxzZSB7IC8vIG9ubHkgYWxpZ25tZW50IGNoYW5nZXMgdG8gdXBsb2FkXG4gICAgICB1cGRhdGVkVmVyc2VPYmplY3RzXyAmJiBjb25zb2xlLmxvZyhgZ2V0Q2hhbmdlcyAtIGFwcGx5aW5nIHVwZGF0ZWQgYWxpZ25tZW50c2AsIHsgbmV3VmVyc2VUZXh0LCB1cGRhdGVkVmVyc2VPYmplY3RzXyB9KVxuICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0c18gPSB1cGRhdGVkVmVyc2VPYmplY3RzXyB8fCBpbml0aWFsVmVyc2VPYmplY3RzXG4gICAgfVxuXG4gICAgaWYgKHVwZGF0ZWRWZXJzZU9iamVjdHNfKSB7XG4gICAgICBjb25zdCByZWYgPSBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZj8uW2N1cnJlbnRJbmRleF1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5ld1ZlcnNlVGV4dCxcbiAgICAgICAgcmVmLFxuICAgICAgICB1cGRhdGVkVmVyc2VPYmplY3RzOiB1cGRhdGVkVmVyc2VPYmplY3RzXyxcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge31cbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayBmb3Igd2hlbiB1c2VyIGNsaWNrZWQgb24gYWxpZ25tZW50IGJ1dHRvbiAtIHdpbGwgc2hvdyBpZiBub3QgYWxyZWFkeSBzaG93blxuICAgKi9cbiAgYXN5bmMgZnVuY3Rpb24gaGFuZGxlQWxpZ25tZW50Q2xpY2soKSB7XG4gICAgaWYgKGVuYWJsZUFsaWdubWVudCkge1xuICAgICAgbGV0IF9hbGlnbmVyRGF0YTogQWxpZ25lckRhdGFUeXBlID0gbnVsbFxuICAgICAgYXdhaXQgc3RhcnRFZGl0QnJhbmNoKClcblxuICAgICAgaWYgKCFhbGlnbmVyRGF0YSkgeyAvLyBpZiB3b3JkIGFsaWduZXIgbm90IHNob3duXG4gICAgICAgIGNvbnNvbGUubG9nKGBoYW5kbGVBbGlnbm1lbnRDbGljayAtIHRvZ2dsZSBPTiBhbGlnbm1lbnRgKVxuICAgICAgICBjb25zdCB0YXJnZXRWZXJzZVVTRk0gPSBnZXRDdXJyZW50VmVyc2VVc2ZtKHVwZGF0ZWRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHMsIHZlcnNlVGV4dENoYW5nZWQsIG5ld1ZlcnNlVGV4dClcbiAgICAgICAgbGV0IG9yaWdpbmFsVmVyc2VVc2ZtID0gbnVsbFxuXG4gICAgICAgIGlmIChvcmlnaW5hbFZlcnNlT2JqZWN0cykge1xuICAgICAgICAgIG9yaWdpbmFsVmVyc2VVc2ZtID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5jb252ZXJ0VmVyc2VEYXRhVG9VU0ZNKG9yaWdpbmFsVmVyc2VPYmplY3RzKVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHRhcmdldFdvcmRzOiB3b3JkQmFuayxcbiAgICAgICAgICB2ZXJzZUFsaWdubWVudHM6IGFsaWdubWVudHMsXG4gICAgICAgIH0gPSBBbGlnbm1lbnRIZWxwZXJzLnBhcnNlVXNmbVRvV29yZEFsaWduZXJEYXRhKHRhcmdldFZlcnNlVVNGTSwgb3JpZ2luYWxWZXJzZVVzZm0pXG4gICAgICAgIF9hbGlnbmVyRGF0YSA9IHsgd29yZEJhbmssIGFsaWdubWVudHMgfVxuXG4gICAgICAgIGlmICghYWxpZ25tZW50cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgX2FsaWduZXJEYXRhLmVycm9yTWVzc2FnZSA9ICdUaGVyZSBhcmUgbm8gd29yZHMgdG8gYWxpZ24gaW4gdGhlIE9yaWdpbmFsIGxhbmd1YWdlJ1xuICAgICAgICB9IGVsc2UgaWYgKCF3b3JkQmFuaz8ubGVuZ3RoKSB7XG4gICAgICAgICAgX2FsaWduZXJEYXRhLmVycm9yTWVzc2FnZSA9ICdUaGVyZSBhcmUgbm8gd29yZHMgdG8gYWxpZ24gaW4gdGhlIExpdGVyYWwvU2ltcGxpZmllZCBTY3JpcHR1cmUgVGV4dCdcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHsgLy8gd29yZCBhbGlnbmVyIGN1cnJlbnRseSBzaG93blxuICAgICAgICBjb25zb2xlLmxvZyhgaGFuZGxlQWxpZ25tZW50Q2xpY2sgLSBhbGlnbm1lbnQgYWxyZWFkeSBzaG93bmApXG4gICAgICAgIF9hbGlnbmVyRGF0YSA9IGFsaWduZXJEYXRhXG4gICAgICB9XG4gICAgICBzZXRTdGF0ZSh7IGFsaWduZXJEYXRhOiBfYWxpZ25lckRhdGEgfSlcbiAgICAgIGNvbnNvbGUubG9nKF9hbGlnbmVyRGF0YSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogZ2V0IHVwZGF0ZWQgdmVyc2Ugb2JqZWN0cyBhZnRlciBhbGlnbm1lbnRzIGNoYW5nZWRcbiAgICogQHBhcmFtIHtBbGlnbmVyUmVzdWx0c0RhdGFUeXBlfSBfbmV3QWxpZ25tZW50cyAtIHJlc3VsdHMgb2YgYWxpZ25lclxuICAgKi9cbiAgZnVuY3Rpb24gdXBkYXRlVmVyc2VXaXRoTmV3QWxpZ25tZW50cyhfbmV3QWxpZ25tZW50czogQWxpZ25lclJlc3VsdHNEYXRhVHlwZSA9IG5ld0FsaWdubWVudHMpIHtcbiAgICBjb25zdCBjdXJyZW50VmVyc2VPYmplY3RzXyA9IHVwZGF0ZWRWZXJzZU9iamVjdHMgfHwgaW5pdGlhbFZlcnNlT2JqZWN0c1xuICAgIGNvbnN0IHRhcmdldFZlcnNlVGV4dCA9IG5ld1ZlcnNlVGV4dCB8fCBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmNvbnZlcnRWZXJzZURhdGFUb1VTRk0oY3VycmVudFZlcnNlT2JqZWN0c18pXG4gICAgY29uc3QgdmVyc2VVc2ZtID0gQWxpZ25tZW50SGVscGVycy5hZGRBbGlnbm1lbnRzVG9WZXJzZVVTRk0oX25ld0FsaWdubWVudHMudGFyZ2V0V29yZHMsIF9uZXdBbGlnbm1lbnRzLnZlcnNlQWxpZ25tZW50cywgdGFyZ2V0VmVyc2VUZXh0KVxuICAgIGNvbnN0IGFsaWduZWRWZXJzZU9iamVjdHMgPSB1c2ZtSGVscGVycy51c2ZtVmVyc2VUb0pzb24odmVyc2VVc2ZtKVxuICAgIHJldHVybiBhbGlnbmVkVmVyc2VPYmplY3RzXG4gIH1cblxuICAvKipcbiAgICogY2FsbGJhY2sgZm9yIHdoZW4gdXNlciBjbGlja2VkIG9uIGJ1dHRvbiB0byBzYXZlIGN1cnJlbnQgYWxpZ25tZW50cyBpbiB3b3JkIGFsaWduZXIuICBHZW5lcmF0ZXMgbmV3IHZlcnNlIGNvbnRlbnQgYW5kIHNhdmVzIGluIHN0YXRlLiBDbG9zZXMgYWxpZ25lciBkaXNwbGF5XG4gICAqIEBwYXJhbSB7QWxpZ25lclJlc3VsdHNEYXRhVHlwZX0gX25ld0FsaWdubWVudHMgLSByZXN1bHRzIG9mIGFsaWduZXJcbiAgICovXG4gIGZ1bmN0aW9uIHNhdmVBbGlnbm1lbnQoX25ld0FsaWdubWVudHM6IEFsaWduZXJSZXN1bHRzRGF0YVR5cGUgPSBuZXdBbGlnbm1lbnRzKSB7XG4gICAgY29uc29sZS5sb2coYHNhdmVBbGlnbm1lbnQoKSAtIG5ld0FsaWdubWVudHNgLCBfbmV3QWxpZ25tZW50cylcblxuICAgIGlmIChfbmV3QWxpZ25tZW50cykge1xuICAgICAgY29uc3QgYWxpZ25lZFZlcnNlT2JqZWN0cyA9IHVwZGF0ZVZlcnNlV2l0aE5ld0FsaWdubWVudHMoX25ld0FsaWdubWVudHMpXG4gICAgICBjb25zb2xlLmxvZyhgc2F2ZUFsaWdubWVudCgpIC0gYWxpZ25lZFZlcnNlT2JqZWN0c2AsIGFsaWduZWRWZXJzZU9iamVjdHMpXG4gICAgICBjb25zdCBuZXdTdGF0ZSA9IHtcbiAgICAgICAgYWxpZ25lckRhdGE6IG51bGwsXG4gICAgICAgIGVkaXRpbmc6IGZhbHNlLFxuICAgICAgICBuZXdBbGlnbm1lbnRzOiBudWxsLFxuICAgICAgICB1cGRhdGVkVmVyc2VPYmplY3RzOiBhbGlnbmVkVmVyc2VPYmplY3RzLFxuICAgICAgfVxuICAgICAgc2V0U3RhdGUobmV3U3RhdGUpXG4gICAgICBjYWxsU2V0U2F2ZWRTdGF0ZSh0cnVlLCBuZXdTdGF0ZSApXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKGBzYXZlQWxpZ25tZW50KCkgLSBubyBhbGlnbm1lbnQgY2hhbmdlc2ApXG4gICAgICBzZXRTdGF0ZSh7XG4gICAgICAgIGFsaWduZXJEYXRhOiBudWxsLFxuICAgICAgICBlZGl0aW5nOiBmYWxzZSxcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGNhbGxiYWNrIGZvciB3aGVuIHVzZXIgY2xpY2tlZCBvbiBidXR0b24gdG8gY2FuY2VsIHdvcmsgaW4gd29yZCBhbGlnbmVyLiAgQ2FsY3VsYXRlcyBhbmQgZGlzcGxheXMgY3VycmVudCBhbGlnbm1lbnQgdmFsaWQgc3RhdGUuIENsb3NlcyBhbGlnbmVyIGRpc3BsYXlcbiAgICovXG4gIGZ1bmN0aW9uIGNhbmNlbEFsaWdubWVudCgpIHtcbiAgICBjb25zb2xlLmxvZyhgY2FuY2VsQWxpZ25tZW50KClgKVxuICAgIGNvbnN0IHRhcmdldFZlcnNlVVNGTSA9IGdldEN1cnJlbnRWZXJzZVVzZm0odXBkYXRlZFZlcnNlT2JqZWN0cywgaW5pdGlhbFZlcnNlT2JqZWN0cywgdmVyc2VUZXh0Q2hhbmdlZCwgbmV3VmVyc2VUZXh0KVxuICAgIGNvbnN0IGFsaWduZWQgPSBpc1VzZm1BbGlnbmVkKHRhcmdldFZlcnNlVVNGTSwgb3JpZ2luYWxWZXJzZU9iamVjdHMpXG4gICAgc2V0U3RhdGUoeyBhbGlnbmVyRGF0YTogbnVsbCwgYWxpZ25lZCB9KVxuICB9XG5cbiAgLyoqXG4gICAqIGNhbGxiYWNrIGZvciBidXR0b24gdG8gc2V0IGVkaXRpbmcgc3RhdGVcbiAgICogQHBhcmFtIHtib29sZWFufSBlZGl0aW5nXyAtIGlmIHRydWUsIGVkaXRvciBpcyBzaG93biwgb3RoZXJ3aXNlIGVkaXRvciBpcyBoaWRkZW5cbiAgICogQHBhcmFtIHtzdHJpbmd9IF9uZXdWZXJzZVRleHQgLSBvcHRpb25hbCB2ZXJzZSB0ZXh0XG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVxdWlyZS1hd2FpdFxuICBhc3luYyBmdW5jdGlvbiBzZXRFZGl0aW5nKGVkaXRpbmdfOiBib29sZWFuLCBfbmV3VmVyc2VUZXh0OiBzdHJpbmcgPSBuZXdWZXJzZVRleHQpIHtcbiAgICBpZiAoZW5hYmxlRWRpdCkge1xuICAgICAgaWYgKGVkaXRpbmdfICE9PSBlZGl0aW5nKSB7XG4gICAgICAgIF9uZXdWZXJzZVRleHQgPSBfbmV3VmVyc2VUZXh0IHx8IGluaXRpYWxWZXJzZVRleHRcbiAgICAgICAgbGV0IF91cGRhdGVkVmVyc2VPYmplY3RzID0gdXBkYXRlZFZlcnNlT2JqZWN0c1xuICAgICAgICBjb25zdCB2ZXJzZVRleHRDaGFuZ2VkID0gX25ld1ZlcnNlVGV4dCAhPT0gaW5pdGlhbFZlcnNlVGV4dFxuICAgICAgICBjb25zdCBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICBlZGl0aW5nOiBlZGl0aW5nXyxcbiAgICAgICAgICBuZXdWZXJzZVRleHQ6IF9uZXdWZXJzZVRleHQsXG4gICAgICAgICAgdmVyc2VUZXh0Q2hhbmdlZCxcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdmVyc2VUZXh0Q2hhbmdlZCkge1xuICAgICAgICAgIC8vIGZhbGxiYWNrIHRvIG1ha2Ugc3VyZSB0ZXh0IGZyb20gdmVyc2VPYmplY3RzIG1hdGNoZXMgY3VycmVudCB0ZXh0XG4gICAgICAgICAgY29uc3QgdmVyc2VUZXh0ID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5nZXRVc2ZtRm9yVmVyc2VDb250ZW50KHsgdmVyc2VPYmplY3RzOiBjdXJyZW50VmVyc2VPYmplY3RzIH0gKVxuXG4gICAgICAgICAgaWYgKGhhc1RleHRDaGFuZ2VkU2lnbmlmaWNhbnRseSh2ZXJzZVRleHQsIF9uZXdWZXJzZVRleHQpKSB7XG4gICAgICAgICAgICAvLyBhcHBseSBhbGlnbm1lbnQgdG8gY3VycmVudCB0ZXh0XG4gICAgICAgICAgICBjb25zdCB7IHRhcmdldFZlcnNlT2JqZWN0cyB9ID0gQWxpZ25tZW50SGVscGVycy51cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZShjdXJyZW50VmVyc2VPYmplY3RzLCBfbmV3VmVyc2VUZXh0KVxuICAgICAgICAgICAgX3VwZGF0ZWRWZXJzZU9iamVjdHMgPSB0YXJnZXRWZXJzZU9iamVjdHMgLy8gdXBkYXRlIHZlcnNlT2JqZWN0cyB0byBtYXRjaCBjdXJyZW50IHRleHRcbiAgICAgICAgICAgIG5ld1N0YXRlWyd1cGRhdGVkVmVyc2VPYmplY3RzJ10gPSBfdXBkYXRlZFZlcnNlT2JqZWN0c1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNldFN0YXRlKG5ld1N0YXRlKVxuICAgICAgICBjb25zdCBfYWxpZ25tZW50c0NoYW5nZWQgPSAoX3VwZGF0ZWRWZXJzZU9iamVjdHMgJiYgIWlzRXF1YWwoaW5pdGlhbFZlcnNlT2JqZWN0cywgX3VwZGF0ZWRWZXJzZU9iamVjdHMpKVxuICAgICAgICBjYWxsU2V0U2F2ZWRTdGF0ZSh2ZXJzZVRleHRDaGFuZ2VkIHx8IF9hbGlnbm1lbnRzQ2hhbmdlZCwgbmV3U3RhdGUgKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayBmcm9tIHRoZSBlZGl0IG9uQ2hhbmdlIGV2ZW50IHRvIHVwZGF0ZSBlZGl0IHN0YXRlIHZhcmlhYmxlc1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGNoYW5nZWQgLSB0cnVlIGlmIHRoZSBuZXdWZXJzZVRleHQgaXMgZGlmZmVyZW50IHRoYW4gdGhlIGluaXRpYWxWZXJzZVRleHRcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5ld1ZlcnNlVGV4dCAtIGN1cnJlbnQgY2hhbmdlZCB2ZXJzZSB0ZXh0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBfaW5pdGlhbFZlcnNlVGV4dCAtIGluaXRpYWwgdmVyc2UgdGV4dFxuICAgKi9cbiAgZnVuY3Rpb24gc2V0VmVyc2VDaGFuZ2VkKGNoYW5nZWQ6IGJvb2xlYW4sIG5ld1ZlcnNlVGV4dDogc3RyaW5nLCBfaW5pdGlhbFZlcnNlVGV4dDogc3RyaW5nKSB7XG4gICAgY29uc3QgeyB0YXJnZXRWZXJzZVRleHQgfSA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UoY3VycmVudFZlcnNlT2JqZWN0cywgbmV3VmVyc2VUZXh0KVxuICAgIGNvbnN0IGFsaWduZWQgPSBpc1VzZm1BbGlnbmVkKHRhcmdldFZlcnNlVGV4dCwgb3JpZ2luYWxWZXJzZU9iamVjdHMpXG4gICAgY29uc3QgdmVyc2VUZXh0Q2hhbmdlZCA9IG5ld1ZlcnNlVGV4dCAhPT0gaW5pdGlhbFZlcnNlVGV4dFxuXG4gICAgc2V0U3RhdGUoe1xuICAgICAgdmVyc2VUZXh0Q2hhbmdlZCxcbiAgICAgIG5ld1ZlcnNlVGV4dCxcbiAgICAgIGFsaWduZWQsXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IGN1cnJlbnRWZXJzZU9iamVjdHMgPSBSZWFjdC51c2VNZW1vKCAoKSA9PiB7IC8vIGlmIHZlcnNlIGhhcyBiZWVuIGVkaXRlZCBvciBhbGlnbm1lbnQgY2hhbmdlZCwgdGhlbiBnZW5lcmF0ZSBuZXcgdmVyc2VPYmplY3RzIHRvIGRpc3BsYXkgaW4gU2NyaXB0dXJlUGFuZVxuICAgIGlmIChpbml0aWFsVmVyc2VPYmplY3RzKSB7XG4gICAgICBjb25zdCB0YXJnZXRWZXJzZVVTRk0gPSBnZXRDdXJyZW50VmVyc2VVc2ZtKHVwZGF0ZWRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHMsIHZlcnNlVGV4dENoYW5nZWQsIG5ld1ZlcnNlVGV4dClcbiAgICAgIGNvbnN0IGN1cnJlbnRWZXJzZU9iamVjdHNfID0gdXNmbUhlbHBlcnMudXNmbVZlcnNlVG9Kc29uKHRhcmdldFZlcnNlVVNGTSlcbiAgICAgIHJldHVybiBjdXJyZW50VmVyc2VPYmplY3RzX1xuICAgIH1cbiAgICByZXR1cm4gaW5pdGlhbFZlcnNlT2JqZWN0c1xuICB9LCBbdXBkYXRlZFZlcnNlT2JqZWN0cywgaW5pdGlhbFZlcnNlT2JqZWN0cywgdmVyc2VUZXh0Q2hhbmdlZCwgbmV3VmVyc2VUZXh0XSlcblxuICBjb25zdCB1bnNhdmVkQ2hhbmdlczpib29sZWFuID0gUmVhY3QudXNlTWVtbyggKCkgPT4geyAvLyBpZiB2ZXJzZSBoYXMgYmVlbiBlZGl0ZWQgb3IgYWxpZ25tZW50IGNoYW5nZWQsIHRoZW4gaW5kaWNhdGUgd2UgaGF2ZSB1bnNhdmVkIGNoYW5nZXNcbiAgICBjb25zdCBjaGFuZ2VkID0gdmVyc2VUZXh0Q2hhbmdlZCB8fCAodXBkYXRlZFZlcnNlT2JqZWN0cyAmJiAhaXNFcXVhbChpbml0aWFsVmVyc2VPYmplY3RzLCB1cGRhdGVkVmVyc2VPYmplY3RzKSlcbiAgICByZXR1cm4gY2hhbmdlZFxuICB9LCBbdXBkYXRlZFZlcnNlT2JqZWN0cywgaW5pdGlhbFZlcnNlT2JqZWN0cywgdmVyc2VUZXh0Q2hhbmdlZF0pXG5cbiAgLyoqXG4gICAqIGNhbGxiYWNrIHRvIHNjcmlwdHVyZSBjYXJkIHRvIHVwZGF0ZWQgd2l0aCBsYXRlc3Qgc3RhdGUgZm9yIHNhdmluZ1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHVuc2F2ZWRDaGFuZ2VzX1xuICAgKiBAcGFyYW0ge29iamVjdH0gbmV3U3RhdGVcbiAgICovXG4gIGZ1bmN0aW9uIGNhbGxTZXRTYXZlZFN0YXRlKHVuc2F2ZWRDaGFuZ2VzXzogYm9vbGVhbiwgbmV3U3RhdGU6IHt9ID0geyB9ICkge1xuICAgIGNvbnN0IF9uZXdTdGF0ZSA9IHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgLi4ubmV3U3RhdGUsXG4gICAgfVxuXG4gICAgLy8gY29uc29sZS5sb2coYGNhbGxTZXRTYXZlZFN0YXRlIC0gbmV3IHN0YXRlYCwgX25ld1N0YXRlKVxuICAgIHNldFNhdmVkQ2hhbmdlcyAmJiBzZXRTYXZlZENoYW5nZXMoY3VycmVudEluZGV4LCAhdW5zYXZlZENoYW5nZXNfLCB7XG4gICAgICBnZXRDaGFuZ2VzLFxuICAgICAgY2xlYXJDaGFuZ2VzLFxuICAgICAgc3RhdGU6IF9uZXdTdGF0ZSxcbiAgICB9KVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gc2V0IHNhdmVkIGNoYW5nZXMgd2hlbmV2ZXIgdXNlciBlZGl0cyB2ZXJzZSB0ZXh0IG9yIGFsaWdubWVudHMgb3IgaWYgYWxpZ25tZW50cyBhcmUgb3BlblxuICAgIGNvbnN0IHVuc2F2ZWRDaGFuZ2VzXyA9IHVuc2F2ZWRDaGFuZ2VzIHx8ICEhYWxpZ25lckRhdGFcbiAgICBjYWxsU2V0U2F2ZWRTdGF0ZSh1bnNhdmVkQ2hhbmdlc18pXG4gIH0sIFt1bnNhdmVkQ2hhbmdlcywgYWxpZ25lckRhdGFdKVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayBmb3Igd2hlbiBhbGlnbm1lbnRzIGFyZSBiZWluZyBjaGFuZ2VkXG4gICAqIEBwYXJhbSB7QWxpZ25lclJlc3VsdHNEYXRhVHlwZX0gcmVzdWx0c1xuICAgKiBAcmV0dXJuIHtib29sZWFufSB0cnVlIGlmIGFsaWdubWVudCBpcyBjb21wbGV0ZVxuICAgKi9cbiAgZnVuY3Rpb24gb25BbGlnbm1lbnRzQ2hhbmdlKHJlc3VsdHM6IEFsaWduZXJSZXN1bHRzRGF0YVR5cGUpIHtcbiAgICBjb25zb2xlLmxvZyhgb25BbGlnbm1lbnRzQ2hhbmdlKCkgLSBhbGlnbm1lbnQgY2hhbmdlZCwgcmVzdWx0c2AsIHJlc3VsdHMpIC8vIG1lcmdlIGFsaWdubWVudHMgaW50byB0YXJnZXQgdmVyc2UgYW5kIGNvbnZlcnQgdG8gVVNGTVxuICAgIGNvbnN0IHsgdGFyZ2V0V29yZHMsIHZlcnNlQWxpZ25tZW50cyB9ID0gcmVzdWx0c1xuICAgIGNvbnN0IGFsaWdubWVudENvbXBsZXRlID0gQWxpZ25tZW50SGVscGVycy5hcmVBbGdubWVudHNDb21wbGV0ZSh0YXJnZXRXb3JkcywgdmVyc2VBbGlnbm1lbnRzKVxuICAgIGNvbnNvbGUubG9nKGBBbGlnbm1lbnRzIGFyZSAke2FsaWdubWVudENvbXBsZXRlID8gJ0NPTVBMRVRFIScgOiAnaW5jb21wbGV0ZSd9YClcbiAgICBzZXRTdGF0ZSh7IG5ld0FsaWdubWVudHM6IHJlc3VsdHMsIGFsaWduZWQ6IGFsaWdubWVudENvbXBsZXRlIH0pXG4gICAgcmV0dXJuIGFsaWdubWVudENvbXBsZXRlXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGFjdGlvbnM6IHtcbiAgICAgIGNhbmNlbEFsaWdubWVudCxcbiAgICAgIGNsZWFyQ2hhbmdlcyxcbiAgICAgIGdldENoYW5nZXMsXG4gICAgICBoYW5kbGVBbGlnbm1lbnRDbGljayxcbiAgICAgIG9uQWxpZ25tZW50c0NoYW5nZSxcbiAgICAgIHNhdmVBbGlnbm1lbnQsXG4gICAgICBzZXRFZGl0aW5nLFxuICAgICAgc2V0VmVyc2VDaGFuZ2VkLFxuICAgIH0sXG4gICAgc3RhdGU6IHtcbiAgICAgIGFsaWduZWQsXG4gICAgICBhbGlnbmVyRGF0YSxcbiAgICAgIGN1cnJlbnRWZXJzZU9iamVjdHMsXG4gICAgICBlZGl0aW5nLFxuICAgICAgZW5hYmxlRWRpdCxcbiAgICAgIGVuYWJsZUFsaWdubWVudCxcbiAgICAgIGluaXRpYWxWZXJzZVRleHQsXG4gICAgICBpbml0aWFsVmVyc2VPYmplY3RzLFxuICAgICAgbmV3VmVyc2VUZXh0LFxuICAgICAgcmVmZXJlbmNlOiBiYXNpY1JlZmVyZW5jZSxcbiAgICAgIHNvdXJjZUxhbmd1YWdlLFxuICAgICAgdGFyZ2V0TGFuZ3VhZ2UsXG4gICAgICB0aXRsZSxcbiAgICAgIHVuc2F2ZWRDaGFuZ2VzLFxuICAgICAgdmVyc2VUZXh0Q2hhbmdlZCxcbiAgICB9LFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7K0NBQ0EscUpBQUFBLG1CQUFBLFlBQUFBLG9CQUFBLFdBQUFDLENBQUEsU0FBQUMsQ0FBQSxFQUFBRCxDQUFBLE9BQUFFLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxTQUFBLEVBQUFDLENBQUEsR0FBQUgsQ0FBQSxDQUFBSSxjQUFBLEVBQUFDLENBQUEsR0FBQUosTUFBQSxDQUFBSyxjQUFBLGNBQUFQLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLElBQUFELENBQUEsQ0FBQUQsQ0FBQSxJQUFBRSxDQUFBLENBQUFPLEtBQUEsS0FBQUMsQ0FBQSx3QkFBQUMsTUFBQSxHQUFBQSxNQUFBLE9BQUFDLENBQUEsR0FBQUYsQ0FBQSxDQUFBRyxRQUFBLGtCQUFBQyxDQUFBLEdBQUFKLENBQUEsQ0FBQUssYUFBQSx1QkFBQUMsQ0FBQSxHQUFBTixDQUFBLENBQUFPLFdBQUEsOEJBQUFDLE9BQUFqQixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxXQUFBQyxNQUFBLENBQUFLLGNBQUEsQ0FBQVAsQ0FBQSxFQUFBRCxDQUFBLElBQUFTLEtBQUEsRUFBQVAsQ0FBQSxFQUFBaUIsVUFBQSxNQUFBQyxZQUFBLE1BQUFDLFFBQUEsU0FBQXBCLENBQUEsQ0FBQUQsQ0FBQSxXQUFBa0IsTUFBQSxtQkFBQWpCLENBQUEsSUFBQWlCLE1BQUEsWUFBQUEsT0FBQWpCLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLFdBQUFE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
585
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJpbmZvIiwiZXJyb3IiLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIkYiLCJfZSIsIm5vcm1hbENvbXBsZXRpb24iLCJkaWRFcnIiLCJzdGVwIiwiX2UyIiwib3duS2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIm9iaiIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwicmVzIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfbm9uSXRlcmFibGVSZXN0IiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsImZyb20iLCJ0ZXN0IiwibGVuIiwiYXJyMiIsIlJlYWN0IiwiQWxpZ25tZW50SGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJ1c2ZtSGVscGVycyIsImlzRXF1YWwiLCJCb29rT2JqZWN0c1R5cGUiLCJTY3JpcHR1cmVDb25maWciLCJTY3JpcHR1cmVSZWZlcmVuY2UiLCJTZXJ2ZXJDb25maWciLCJWZXJzZU9iamVjdHNUeXBlIiwiZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyIsInZlcnNlT2JqZWN0c0hhdmVXb3JkcyIsIk9SSUdJTkFMX1NPVVJDRSIsImdldFZlcnNlc0ZvclJlZiIsImlzVXNmbUFsaWduZWQiLCJ0YXJnZXRWZXJzZVVTRk0iLCJvcmlnaW5hbFZlcnNlT2JqZWN0cyIsIl9vcmlnaW5hbFZlcnNlT2JqZWN0cyIsIl9BbGlnbm1lbnRIZWxwZXJzJGV4dCIsImV4dHJhY3RBbGlnbm1lbnRzRnJvbVRhcmdldFZlcnNlIiwiYWxpZ25tZW50cyIsIndvcmRCYW5rIiwiYXJlQWxnbm1lbnRzQ29tcGxldGUiLCJnZXRDdXJyZW50VmVyc2VVc2ZtIiwidXBkYXRlZFZlcnNlT2JqZWN0cyIsImluaXRpYWxWZXJzZU9iamVjdHMiLCJ2ZXJzZVRleHRDaGFuZ2VkIiwibmV3VmVyc2VUZXh0IiwiY3VycmVudFZlcnNlT2JqZWN0c18iLCJfQWxpZ25tZW50SGVscGVycyR1cGQiLCJ1cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZSIsInRhcmdldFZlcnNlVGV4dCIsImNvbnZlcnRWZXJzZURhdGFUb1VTRk0iLCJhbGxTcGFjZXMiLCJ0ZXh0IiwiaGFzVGV4dENoYW5nZWRTaWduaWZpY2FudGx5IiwiaW5pdGlhbFZlcnNlVGV4dCIsImNoYW5nZWQiLCJsZW5ndGhEaWZmZXJlbmNlIiwiZmlyc3RQYXJ0T2ZJbml0aWFsIiwic3Vic3RyaW5nIiwibGFzdENoYXJzIiwicG9zIiwibGFzdEluZGV4T2YiLCJsYXN0VXNmbVRhZyIsImVuZHNXaXRoUXVvdGUiLCJ1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0IiwiX3JlZiIsImN1cnJlbnRJbmRleCIsImVuYWJsZUVkaXQiLCJlbmFibGVBbGlnbm1lbnQiLCJodHRwQ29uZmlnIiwiaXNOZXdUZXN0YW1lbnQiLCJvcmlnaW5hbExhbmd1YWdlT3duZXIiLCJvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzIiwib3JpZ2luYWxSZXBvVXJsIiwicmVmZXJlbmNlIiwic2NyaXB0dXJlQ29uZmlnIiwic2NyaXB0dXJlU2V0dGluZ3MiLCJzZXRTYXZlZENoYW5nZXMiLCJzb3VyY2VMYW5ndWFnZSIsInN0YXJ0RWRpdEJyYW5jaCIsInRhcmdldExhbmd1YWdlIiwidGl0bGUiLCJ3b3JraW5nUmVzb3VyY2VCcmFuY2giLCJfUmVhY3QkdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsImFsaWduZWQiLCJhbGlnbmVyRGF0YSIsImVkaXRpbmciLCJuZXdBbGlnbm1lbnRzIiwiX1JlYWN0JHVzZVN0YXRlMiIsInN0YXRlIiwic2V0U3RhdGVfIiwiX3N0YXRlIiwiY2hhcHRlciIsInZlcnNlIiwicHJvamVjdElkIiwiYmFzaWNSZWZlcmVuY2UiLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiY2xlYXJDaGFuZ2VzIiwiY29uc29sZSIsImxvZyIsImNvbmNhdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJjbGVhclN0YXRlIiwib3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5nc18iLCJyZXNvdXJjZUlkIiwiYm9va0lkIiwib3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5ncyIsInJlc291cmNlTGluayIsInVzZU1lbW8iLCJ2ZXJzZU9iamVjdHMiLCJ2ZXJzZXMiLCJsYW5ndWFnZUlkIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJfdmVyc2VSZWZlcmVuY2UkdmVyc2UiLCJ2ZXJzZVJlZmVyZW5jZSIsIm9yaWdWZXJzZU9iamVjdHMiLCJ2ZXJzZURhdGEiLCJ1c2VFZmZlY3QiLCJub3RFbXB0eSIsImFsaWduZWRfIiwicmVzdWx0cyIsImdldENoYW5nZXMiLCJfbmV3U3RhdGUiLCJ1cGRhdGVkVmVyc2VPYmplY3RzXyIsInVwZGF0ZVZlcnNlV2l0aE5ld0FsaWdubWVudHMiLCJfQWxpZ25tZW50SGVscGVycyR1cGQyIiwidGFyZ2V0VmVyc2VPYmplY3RzIiwiX3NjcmlwdHVyZUNvbmZpZyR2ZXJzIiwicmVmIiwidmVyc2VzRm9yUmVmIiwiaGFuZGxlQWxpZ25tZW50Q2xpY2siLCJfaGFuZGxlQWxpZ25tZW50Q2xpY2siLCJfY2FsbGVlIiwiX2FsaWduZXJEYXRhIiwib3JpZ2luYWxWZXJzZVVzZm0iLCJfQWxpZ25tZW50SGVscGVycyRwYXIiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwicGFyc2VVc2ZtVG9Xb3JkQWxpZ25lckRhdGEiLCJ0YXJnZXRXb3JkcyIsInZlcnNlQWxpZ25tZW50cyIsImVycm9yTWVzc2FnZSIsIl9uZXdBbGlnbm1lbnRzIiwidmVyc2VVc2ZtIiwiYWRkQWxpZ25tZW50c1RvVmVyc2VVU0ZNIiwiYWxpZ25lZFZlcnNlT2JqZWN0cyIsInVzZm1WZXJzZVRvSnNvbiIsInNhdmVBbGlnbm1lbnQiLCJjYWxsU2V0U2F2ZWRTdGF0ZSIsImNhbmNlbEFsaWdubWVudCIsInNldEVkaXRpbmciLCJfeCIsIl9zZXRFZGl0aW5nIiwiX2NhbGxlZTIiLCJlZGl0aW5nXyIsIl9uZXdWZXJzZVRleHQiLCJfdXBkYXRlZFZlcnNlT2JqZWN0cyIsIl92ZXJzZVRleHRDaGFuZ2VkIiwidmVyc2VUZXh0IiwiX0FsaWdubWVudEhlbHBlcnMkdXBkNCIsIl9hbGlnbm1lbnRzQ2hhbmdlZCIsIl9hcmdzMiIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsImdldFVzZm1Gb3JWZXJzZUNvbnRlbnQiLCJjdXJyZW50VmVyc2VPYmplY3RzIiwic2V0VmVyc2VDaGFuZ2VkIiwiX2luaXRpYWxWZXJzZVRleHQiLCJfQWxpZ25tZW50SGVscGVycyR1cGQzIiwidW5zYXZlZENoYW5nZXMiLCJ1bnNhdmVkQ2hhbmdlc18iLCJvbkFsaWdubWVudHNDaGFuZ2UiLCJhbGlnbm1lbnRDb21wbGV0ZSIsImFjdGlvbnMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBBbGlnbm1lbnRIZWxwZXJzLFxuICBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLFxuICB1c2ZtSGVscGVycyxcbn0gZnJvbSAnd29yZC1hbGlnbmVyLXJjbCdcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICdAcmVhY3QtaG9va3ovZGVlcC1lcXVhbCdcbmltcG9ydCB7XG4gIEJvb2tPYmplY3RzVHlwZSxcbiAgU2NyaXB0dXJlQ29uZmlnLFxuICBTY3JpcHR1cmVSZWZlcmVuY2UsXG4gIFNlcnZlckNvbmZpZyxcbiAgVmVyc2VPYmplY3RzVHlwZSxcbn0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBnZXRTY3JpcHR1cmVSZXNvdXJjZVNldHRpbmdzLCB2ZXJzZU9iamVjdHNIYXZlV29yZHMgfSBmcm9tICcuLi91dGlscy9TY3JpcHR1cmVTZXR0aW5ncydcbmltcG9ydCB7IE9SSUdJTkFMX1NPVVJDRSB9IGZyb20gJy4uL3V0aWxzJ1xuaW1wb3J0IHsgZ2V0VmVyc2VzRm9yUmVmIH0gZnJvbSAnLi91c2VTY3JpcHR1cmUnXG5cbmludGVyZmFjZSBTdGFydEVkaXQge1xuICAoKTogUHJvbWlzZTxzdHJpbmc+O1xufVxuXG50eXBlIExhbmd1YWdlVHlwZSA9IHtcbiAgbGFuZ3VhZ2VJZDogc3RyaW5nLCAvLyBzaG9ydCBsYW5ndWFnZSBjb2RlIHN1Y2ggYXMgXCJlblwiXG4gIGRpcmVjdGlvbjogc3RyaW5nLCAvLyBsYW5ndWFnZSBkaXJlY3Rpb24gXCJsdHJcIiBvciBcInJ0bFwiXG59O1xuXG5pbnRlcmZhY2UgQWxpZ25lckRhdGFUeXBlIHtcbiAgICB3b3JkQmFuaz86IE9iamVjdFtdLCAvLyBsaXN0IG9mIHdvcmRiYW5rIHdvcmQgKHRhcmdldCBsYW5ndWFnZSB3b3JkcykgaW4gZm9ybWF0IG5lZWRlZCBieSB3b3JkLWFsaWduZXItcmNsXG4gICAgYWxpZ25tZW50cz86IE9iamVjdFtdLCAvLyBsaXN0IG9mIHdvcmQgYWxpZ25tZW50cyBpbiBmb3JtYXQgbmVlZGVkIGJ5IHdvcmQtYWxpZ25lci1yY2xcbiAgICBlcnJvck1lc3NhZ2U/OiBzdHJpbmcsIC8vIGlmIHByZXNlbnQgdGhlbiB3ZSBkb24ndCBoYXZlIG5lY2Vzc2FyeSBkYXRhIHRvIGRvIGFsaWdubWVudFxufVxuXG5pbnRlcmZhY2UgQWxpZ25lclJlc3VsdHNEYXRhVHlwZSB7XG4gICAgdGFyZ2V0V29yZHM/OiBPYmplY3RbXSwgLy8gbGlzdCBvZiB0YXJnZXQgbGFuZ3VhZ2Ugd29yZHMgaW4gZm9ybWF0IHVzZWQgaW4gd29yZC1hbGlnbmVyLXJjbFxuICAgIHZlcnNlQWxpZ25tZW50cz86IE9iamVjdFtdLCAvLyBsaXN0IG9mIHdvcmQgYWxpZ25tZW50cyBpbiBmb3JtYXQgdXNlZCBieSB3b3JkLWFsaWduZXItcmNsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzIHtcbiAgLy8gaW5kZXggdG8gdXNlIGZvciBib29rIChlLmcuIGAwMWAgZm9yIGBHRU5gKVxuICBib29rSW5kZXg6IHN0cmluZyxcbiAgLy8gY3VycmVudCB2ZXJzZSBzZWxlY3RlZCBmcm9tIGluaXRpYWxWZXJzZU9iamVjdHNbXVxuICBjdXJyZW50SW5kZXg6IG51bWJlcixcbiAgLy8gcmVmZXJlbmNlIGZvciB2ZXJzZSBzZWxlY3RlZCBmb3IgYWxpZ25tZW50XG4gIGN1cnJlbnRWZXJzZVJlZjogU2NyaXB0dXJlUmVmZXJlbmNlLFxuICAvLyBpZiB0cnVlIHRoZW4gZWRpdGluZyBpcyBhbGxvd2VkXG4gIGVuYWJsZUVkaXQ6IGJvb2xlYW4sXG4gIC8vIGlmIHRydWUgdGhlbiBhbGlnbm1lbnQgaXMgYWxsb3dlZFxuICBlbmFibGVBbGlnbm1lbnQ6IGJvb2xlYW4sXG4gIC8vIGNvbmZpZ3VyYXRpb24gdG8gdXNlIGZvciBodHRwIGNvbW11bmljYXRpb25cbiAgaHR0cENvbmZpZzogU2VydmVyQ29uZmlnLFxuICAvLyBhcnJheSBvZiB0aGUgaW5pdGlhbCB2ZXJzZU9iamVjdHMgZm9yIGN1cnJlbnQgcmVmZXJlbmNlXG4gIGluaXRpYWxWZXJzZU9iamVjdHM6IFZlcnNlT2JqZWN0c1R5cGUsXG4gIC8vIGluaXRpYWwgdGV4dCBmb3IgdmVyc2VcbiAgaW5pdGlhbFZlcnNlVGV4dDogc3RyaW5nLFxuICAvLyBmbGFnIHRoYXQgd2UgYXJlIHdvcmtpbmcgb24gTlQgYm9va1xuICBpc05ld1Rlc3RhbWVudDogYm9vbGVhbixcbiAgLy8gdXNlciBuYW1lIG9mIGxvZ2dlZCBpbiB1c2VyXG4gIGxvZ2dlZEluVXNlcjogc3RyaW5nLFxuICAvLyBvd25lciB0byB1c2Ugd2hlbiBmZXRjaGluZyBvcmlnaW5hbCBsYW5ndWFnZSByZXNvdXJjZXNcbiAgb3JpZ2luYWxMYW5ndWFnZU93bmVyOiBzdHJpbmcsXG4gIC8vIHVybCBmb3IgdGhlIG9yaWdpbmFsIGxhbmd1YWdlIHJlcG9cbiAgb3JpZ2luYWxSZXBvVXJsOiBzdHJpbmcsXG4gIC8vIG9yaWdpbmFsIHNjcmlwdHVyZSBib29rT2JqZWN0cyBmb3IgY3VycmVudCBib29rXG4gIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHM6IEJvb2tPYmplY3RzVHlwZSxcbiAgLyoqIGN1cnJlbnQgcmVmZXJlbmNlICoqL1xuICByZWZlcmVuY2U6IFNjcmlwdHVyZVJlZmVyZW5jZTtcbiAgLy8gZGV0YWlscyBhYm91dCB0aGUgY3VycmVudCBzY3JpcHR1cmUgbG9hZGVkXG4gIHNjcmlwdHVyZUNvbmZpZzogU2NyaXB0dXJlQ29uZmlnLFxuICAvLyBzZXR0aW5ncyB0byBiZSB1c2VkIGZvciBzY3JpcHR1cmVcbiAgc2NyaXB0dXJlU2V0dGluZ3M6IHsgfSxcbiAgLy8gY2FsbGJhY2sgdG8gc2F2ZSBjdXJyZW50IHZlcnNlIGVkaXQgYW5kIGFsaWdubWVudCBjaGFuZ2VzXG4gIHNldFNhdmVkQ2hhbmdlczogRnVuY3Rpb24sXG4gIC8vIHNvdXJjZSBsYW5ndWFnZSBjb2RlIHN1Y2ggYXMgYGhib2BcbiAgc291cmNlTGFuZ3VhZ2U6IHN0cmluZyxcbiAgLy8gY2FsbGJhY2sgdG8gY3JlYXRlIGEgdXNlciBicmFuY2ggZm9yIHNhdmluZyBlZGl0IGRhdGFcbiAgc3RhcnRFZGl0QnJhbmNoOiBTdGFydEVkaXQsXG4gIC8vIGN1cnJlbnQgdGFyZ2V0IGxhbmd1YWdlXG4gIHRhcmdldExhbmd1YWdlOiBMYW5ndWFnZVR5cGUsXG4gIC8vIHRpdGxlIHRvIHNob3cgaW4gYWxpZ25tZW50XG4gIHRpdGxlOiBzdHJpbmcsXG4gICAvLyBicmFuY2ggbmFtZSBjdXJyZW50bHkgYmVpbmcgdXNlZCAoZS5nLiBgbWFzdGVyYCBvciB1c2VyIGJyYW5jaClcbiAgd29ya2luZ1Jlc291cmNlQnJhbmNoOiBzdHJpbmcsXG59XG5cbi8qKlxuICogZGV0ZXJtaW5lcyBpZiBhbGlnbm1lbnQgaXMgY29tcGxldGUgYmFzZWQgb24gdGFyZ2V0IFVTRk0gYW5kIG9yaWdpbmFsIGxhbmd1YWdlIHZlcnNlIG9iamVjdHNcbiAqIEBwYXJhbSB7c3RyaW5nfSB0YXJnZXRWZXJzZVVTRk1cbiAqIEBwYXJhbSB7VmVyc2VPYmplY3RzVHlwZX0gb3JpZ2luYWxWZXJzZU9iamVjdHNcbiAqL1xuZnVuY3Rpb24gaXNVc2ZtQWxpZ25lZCh0YXJnZXRWZXJzZVVTRk06c3RyaW5nLCBvcmlnaW5hbFZlcnNlT2JqZWN0czpWZXJzZU9iamVjdHNUeXBlKTpib29sZWFuIHtcbiAgb3JpZ2luYWxWZXJzZU9iamVjdHMgPSBvcmlnaW5hbFZlcnNlT2JqZWN0cz8ubGVuZ3RoID8gb3JpZ2luYWxWZXJzZU9iamVjdHMgOiBudWxsIC8vIG1ha2Ugc3VyZSBub3QgcGFzc2luZyBlbXB0eSBBcnJheVxuICBjb25zdCB7IGFsaWdubWVudHMsIHdvcmRCYW5rIH0gPSBBbGlnbm1lbnRIZWxwZXJzLmV4dHJhY3RBbGlnbm1lbnRzRnJvbVRhcmdldFZlcnNlKHRhcmdldFZlcnNlVVNGTSwgb3JpZ2luYWxWZXJzZU9iamVjdHMpXG4gIHJldHVybiBBbGlnbm1lbnRIZWxwZXJzLmFyZUFsZ25tZW50c0NvbXBsZXRlKHdvcmRCYW5rLCBhbGlnbm1lbnRzKVxufVxuXG4vKipcbiAqIGdldCB0aGUgdXBkYXRlZCBVU0ZNIGZvciB0YXJnZXQgdmVyc2UgZnJvbSB0aGUgdXBkYXRlZCB2ZXJzZSBvYmplY3RzIGFuZCBsYXRlc3QgdGV4dFxuICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSB1cGRhdGVkVmVyc2VPYmplY3RzXG4gKiBAcGFyYW0ge1ZlcnNlT2JqZWN0c1R5cGV9IGluaXRpYWxWZXJzZU9iamVjdHNcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gdmVyc2VUZXh0Q2hhbmdlZFxuICogQHBhcmFtIHtzdHJpbmd9IG5ld1ZlcnNlVGV4dFxuICovXG5mdW5jdGlvbiBnZXRDdXJyZW50VmVyc2VVc2ZtKHVwZGF0ZWRWZXJzZU9iamVjdHM6VmVyc2VPYmplY3RzVHlwZSwgaW5pdGlhbFZlcnNlT2JqZWN0czpWZXJzZU9iamVjdHNUeXBlLCB2ZXJzZVRleHRDaGFuZ2VkOiBib29sZWFuLCBuZXdWZXJzZVRleHQ6c3RyaW5nKTpzdHJpbmcge1xuICBsZXQgdGFyZ2V0VmVyc2VVU0ZNID0gbnVsbFxuICBjb25zdCBjdXJyZW50VmVyc2VPYmplY3RzXyA9IHVwZGF0ZWRWZXJzZU9iamVjdHMgfHwgaW5pdGlhbFZlcnNlT2JqZWN0c1xuXG4gIGlmICh2ZXJzZVRleHRDaGFuZ2VkICYmIG5ld1ZlcnNlVGV4dCkge1xuICAgIGNvbnN0IHsgdGFyZ2V0VmVyc2VUZXh0IH0gPSBBbGlnbm1lbnRIZWxwZXJzLnVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlKGN1cnJlbnRWZXJzZU9iamVjdHNfLCBuZXdWZXJzZVRleHQpXG4gICAgdGFyZ2V0VmVyc2VVU0ZNID0gdGFyZ2V0VmVyc2VUZXh0XG4gIH0gZWxzZSB7XG4gICAgdGFyZ2V0VmVyc2VVU0ZNID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5jb252ZXJ0VmVyc2VEYXRhVG9VU0ZNKGN1cnJlbnRWZXJzZU9iamVjdHNfKVxuICB9XG4gIHJldHVybiB0YXJnZXRWZXJzZVVTRk1cbn1cblxuLyoqXG4gKiByZXR1cm4gdHJ1ZSBpZiBvbmx5IHNwYWNlcyBpbiBjb250ZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gdGV4dFxuICovXG5mdW5jdGlvbiBhbGxTcGFjZXModGV4dDpzdHJpbmcpOmJvb2xlYW4ge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAodGV4dFtpXSAhPT0gJyAnKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWVcbn1cblxuLyoqXG4gKiBtYWtlIHN1cmUgdGhlcmUgaXMgYSBzaWduaWZpY2FudCBjaGFuZ2UgdG8gdGhlIHRleHRcbiAqIEBwYXJhbSB7c3RyaW5nfSBuZXdWZXJzZVRleHRcbiAqIEBwYXJhbSB7c3RyaW5nfSBpbml0aWFsVmVyc2VUZXh0XG4gKi9cbmZ1bmN0aW9uIGhhc1RleHRDaGFuZ2VkU2lnbmlmaWNhbnRseShuZXdWZXJzZVRleHQ6c3RyaW5nLCBpbml0aWFsVmVyc2VUZXh0OnN0cmluZyk6Ym9vbGVhbiB7XG4gIGxldCBjaGFuZ2VkID0gbmV3VmVyc2VUZXh0ICE9PSBpbml0aWFsVmVyc2VUZXh0XG5cbiAgaWYgKGNoYW5nZWQgJiYgbmV3VmVyc2VUZXh0KSB7IC8vIG1ha2Ugc3VyZSBpdCdzIHNpZ25pZmljYW50XG4gICAgY29uc3QgbGVuZ3RoRGlmZmVyZW5jZSA9IG5ld1ZlcnNlVGV4dC5sZW5ndGggLSBpbml0aWFsVmVyc2VUZXh0Py5sZW5ndGhcbiAgICBjb25zdCBmaXJzdFBhcnRPZkluaXRpYWwgPSBuZXdWZXJzZVRleHQuc3Vic3RyaW5nKDAsIGluaXRpYWxWZXJzZVRleHQubGVuZ3RoKVxuXG4gICAgaWYgKChsZW5ndGhEaWZmZXJlbmNlID4gMCkgJiYgKGluaXRpYWxWZXJzZVRleHQgPT09IGZpcnN0UGFydE9mSW5pdGlhbCkpIHsgLy8gaWYgaW5pdGlhbCBwYXJ0cyBtYXRjaFxuICAgICAgLy8gYWRkIGV4ZW1wdGlvbiBpZiB0aGUgdXNmbSBlbmRzIHdpdGggYSBxdW90ZSB0YWdcbiAgICAgIGNvbnN0IGxhc3RDaGFycyA9IG5ld1ZlcnNlVGV4dC5zdWJzdHJpbmcobmV3VmVyc2VUZXh0Lmxlbmd0aCAtIGxlbmd0aERpZmZlcmVuY2UpXG4gICAgICBjb25zdCBwb3MgPSBuZXdWZXJzZVRleHQubGFzdEluZGV4T2YoJ1xcXFwnKVxuICAgICAgY29uc3QgbGFzdFVzZm1UYWcgPSBuZXdWZXJzZVRleHRbcG9zICsgMV1cbiAgICAgIGNvbnN0IGVuZHNXaXRoUXVvdGUgPSAocG9zID4gMCkgJiYgKGxhc3RVc2ZtVGFnID09PSAncScpXG5cbiAgICAgIGlmIChlbmRzV2l0aFF1b3RlICYmIGFsbFNwYWNlcyhsYXN0Q2hhcnMpKSB7XG4gICAgICAgIGNoYW5nZWQgPSBmYWxzZVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gY2hhbmdlZFxufVxuXG4vLyBtYW5hZ2UgdmVyc2UgZWRpdCBhbmQgYWxpZ25tZW50IHN0YXRlc1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQoe1xuICBjdXJyZW50SW5kZXgsXG4gIGVuYWJsZUVkaXQsXG4gIGVuYWJsZUFsaWdubWVudCxcbiAgaHR0cENvbmZpZyxcbiAgaW5pdGlhbFZlcnNlT2JqZWN0cyxcbiAgaW5pdGlhbFZlcnNlVGV4dCxcbiAgaXNOZXdUZXN0YW1lbnQsXG4gIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyxcbiAgb3JpZ2luYWxSZXBvVXJsLFxuICByZWZlcmVuY2UsXG4gIHNjcmlwdHVyZUNvbmZpZyxcbiAgc2NyaXB0dXJlU2V0dGluZ3MsXG4gIHNldFNhdmVkQ2hhbmdlcyxcbiAgc291cmNlTGFuZ3VhZ2UsXG4gIHN0YXJ0RWRpdEJyYW5jaCxcbiAgdGFyZ2V0TGFuZ3VhZ2UsXG4gIHRpdGxlLFxuICB3b3JraW5nUmVzb3VyY2VCcmFuY2gsXG59IDogU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzKSB7XG4gIHR5cGUgU3RhdGVUeXBlcyA9IHtcbiAgICBhbGlnbmVkOiBib29sZWFuLFxuICAgIGFsaWduZXJEYXRhOiBBbGlnbmVyRGF0YVR5cGUsXG4gICAgZWRpdGluZzogYm9vbGVhbixcbiAgICBuZXdBbGlnbm1lbnRzOiBBbGlnbmVyUmVzdWx0c0RhdGFUeXBlLFxuICAgIG5ld1ZlcnNlVGV4dDogc3RyaW5nLFxuICAgIHVwZGF0ZWRWZXJzZU9iamVjdHM6IFZlcnNlT2JqZWN0c1R5cGUsXG4gICAgdmVyc2VUZXh0Q2hhbmdlZDogYm9vbGVhbixcbiAgfVxuXG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVfXSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICBhbGlnbmVkOiBmYWxzZSxcbiAgICBhbGlnbmVyRGF0YTogbnVsbCxcbiAgICBlZGl0aW5nOiBmYWxzZSxcbiAgICBuZXdBbGlnbm1lbnRzOiBudWxsLFxuICAgIG5ld1ZlcnNlVGV4dDogbnVsbCxcbiAgICB1cGRhdGVkVmVyc2VPYmplY3RzOiBudWxsLFxuICAgIHZlcnNlVGV4dENoYW5nZWQ6IGZhbHNlLFxuICB9KVxuXG4gIGNvbnN0IF9zdGF0ZTogU3RhdGVUeXBlcyA9IHN0YXRlIC8vIFRyaWNreTogd29yay1hcm91bmQgZm9yIGJ1ZyB0aGF0IHN0YW5kYXJkIHR5cGVzY3JpcHQgdHlwZSBjYXN0aW5nIGRvZXMgbm90IHdvcmsgaW4gLnRzeCBmaWxlc1xuICBjb25zdCB7XG4gICAgYWxpZ25lZCxcbiAgICBhbGlnbmVyRGF0YSxcbiAgICBlZGl0aW5nLFxuICAgIG5ld0FsaWdubWVudHMsXG4gICAgbmV3VmVyc2VUZXh0LFxuICAgIHVwZGF0ZWRWZXJzZU9iamVjdHMsXG4gICAgdmVyc2VUZXh0Q2hhbmdlZCxcbiAgfSA9IF9zdGF0ZVxuICBjb25zdCBjaGFwdGVyID0gcmVmZXJlbmNlPy5jaGFwdGVyXG4gIGNvbnN0IHZlcnNlID0gcmVmZXJlbmNlPy52ZXJzZVxuICBjb25zdCBwcm9qZWN0SWQgPSByZWZlcmVuY2U/LnByb2plY3RJZFxuICBjb25zdCBiYXNpY1JlZmVyZW5jZSA9IHsgLy8gb25seSBoYXMgdGhlIHRocmVlIGJhc2ljIGZpZWxkc1xuICAgIGNoYXB0ZXIsXG4gICAgdmVyc2UsXG4gICAgcHJvamVjdElkLFxuICB9XG5cbiAgZnVuY3Rpb24gc2V0U3RhdGUobmV3U3RhdGUpIHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7IC4uLnByZXZTdGF0ZSwgLi4ubmV3U3RhdGUgfSkpXG4gIH1cblxuICBmdW5jdGlvbiBjbGVhckNoYW5nZXMoKSB7XG4gICAgY29uc29sZS5sb2coYGNsZWFyQ2hhbmdlcygpIC0gJHtKU09OLnN0cmluZ2lmeShiYXNpY1JlZmVyZW5jZSl9YClcbiAgICBjb25zdCBjbGVhclN0YXRlID0ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBhbGlnbmVyRGF0YTogbnVsbCxcbiAgICAgIGVkaXRpbmc6IGZhbHNlLFxuICAgICAgbmV3QWxpZ25tZW50czogbnVsbCxcbiAgICAgIG5ld1ZlcnNlVGV4dDogbnVsbCxcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHM6IG51bGwsXG4gICAgICB2ZXJzZVRleHRDaGFuZ2VkOiBmYWxzZSxcbiAgICB9XG5cbiAgICBpZiAoIWlzRXF1YWwoc3RhdGUsIGNsZWFyU3RhdGUpKSB7XG4gICAgICBjb25zb2xlLmxvZyhgY2xlYXJDaGFuZ2VzKCkgLSByZWZlcmVuY2UgY2hhbmdlZCwgcmVzZXQgZWRpdC9hbGlnbm1lbnQgc3RhdGUgdmFyaWFibGVzYClcbiAgICAgIHNldFN0YXRlKGNsZWFyU3RhdGUpXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgb3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5nc18gPSB7XG4gICAgLi4uc2NyaXB0dXJlU2V0dGluZ3MsXG4gICAgcmVzb3VyY2VJZDogT1JJR0lOQUxfU09VUkNFLFxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBodHRwQ29uZmlnID0gaHR0cENvbmZpZyB8fCB7fVxuICBjb25zdCBib29rSWQgPSBwcm9qZWN0SWRcbiAgY29uc3Qgb3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5ncyA9IGdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MoXG4gICAgYm9va0lkLCBvcmlnaW5hbFNjcmlwdHVyZVNldHRpbmdzXywgaXNOZXdUZXN0YW1lbnQsIG9yaWdpbmFsUmVwb1VybCxcbiAgKVxuXG4gIGlmICghZW5hYmxlQWxpZ25tZW50KSB7IC8vIGlmIG5vdCBlbmFibGVkLCB0aGVuIHdlIGRvbid0IGZldGNoIHJlc291cmNlXG4gICAgb3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSBudWxsXG4gIH1cblxuICBjb25zdCBvcmlnaW5hbFZlcnNlT2JqZWN0cyA9IFJlYWN0LnVzZU1lbW8oKCkgPT4geyAvLyBnZXQgdGhlIG9yaWdpbmFsIGxhbmd1YWdlIHZlcnNlT2JqZWN0c1xuICAgIGNvbnN0IHZlcnNlT2JqZWN0cyA9IFtdXG5cbiAgICBpZiAob3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cykge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgY29uc3QgdmVyc2VzID0gZ2V0VmVyc2VzRm9yUmVmKGJhc2ljUmVmZXJlbmNlLCBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzLCBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzPy5sYW5ndWFnZUlkKVxuXG4gICAgICBpZiAodmVyc2VzPy5sZW5ndGgpIHtcbiAgICAgICAgZm9yIChjb25zdCB2ZXJzZVJlZmVyZW5jZSBvZiB2ZXJzZXMpIHtcbiAgICAgICAgICBjb25zdCBvcmlnVmVyc2VPYmplY3RzID0gdmVyc2VSZWZlcmVuY2U/LnZlcnNlRGF0YT8udmVyc2VPYmplY3RzXG5cbiAgICAgICAgICBpZiAob3JpZ1ZlcnNlT2JqZWN0cykge1xuICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkodmVyc2VPYmplY3RzLCBvcmlnVmVyc2VPYmplY3RzKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmVyc2VPYmplY3RzXG4gIH0sIFtvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzLCBjaGFwdGVyLCB2ZXJzZSwgcHJvamVjdElkXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyB1cGRhdGUgYWxpZ25tZW50IHN0YXR1cyB3aGVuIGFsaWduZXIgaXMgaGlkZGVuXG4gICAgY29uc3Qgbm90RW1wdHkgPSAhIWluaXRpYWxWZXJzZU9iamVjdHNcbiAgICBsZXQgYWxpZ25lZF8gPSBmYWxzZVxuXG4gICAgaWYgKCFhbGlnbmVyRGF0YSkgeyAvLyBza2lwIGlmIGFsaWduZXIgaXMgYmVpbmcgc2hvd25cbiAgICAgIGlmIChub3RFbXB0eSkgeyAvLyBza2lwIGlmIGVtcHR5XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWZXJzZU9iamVjdHNfID0gdXBkYXRlZFZlcnNlT2JqZWN0cyB8fCBpbml0aWFsVmVyc2VPYmplY3RzXG5cbiAgICAgICAgaWYgKCFlbmFibGVBbGlnbm1lbnQpIHtcbiAgICAgICAgICBhbGlnbmVkXyA9IHRydWVcbiAgICAgICAgfSBlbHNlIGlmIChuZXdWZXJzZVRleHQgJiYgKG5ld1ZlcnNlVGV4dCAhPT0gaW5pdGlhbFZlcnNlVGV4dCkpIHtcbiAgICAgICAgICBjb25zdCByZXN1bHRzID0gQWxpZ25tZW50SGVscGVycy51cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZShjdXJyZW50VmVyc2VPYmplY3RzXywgbmV3VmVyc2VUZXh0KVxuICAgICAgICAgIGFsaWduZWRfID0gaXNVc2ZtQWxpZ25lZChyZXN1bHRzPy50YXJnZXRWZXJzZVRleHQsIG9yaWdpbmFsVmVyc2VPYmplY3RzKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHRhcmdldFZlcnNlVVNGTSA9IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMuY29udmVydFZlcnNlRGF0YVRvVVNGTShjdXJyZW50VmVyc2VPYmplY3RzXylcbiAgICAgICAgICBhbGlnbmVkXyA9IGlzVXNmbUFsaWduZWQodGFyZ2V0VmVyc2VVU0ZNLCBvcmlnaW5hbFZlcnNlT2JqZWN0cylcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoYWxpZ25lZCAhPT0gYWxpZ25lZF8pIHtcbiAgICAgICAgc2V0U3RhdGUoeyBhbGlnbmVkOiBhbGlnbmVkXyB9KVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2luaXRpYWxWZXJzZU9iamVjdHMsIGFsaWduZXJEYXRhLCBuZXdWZXJzZVRleHQsIGluaXRpYWxWZXJzZVRleHQsIGVuYWJsZUFsaWdubWVudCwgb3JpZ2luYWxWZXJzZU9iamVjdHNdKVxuXG4gIC8qKlxuICAgKiBnZXQgY2hhbmdlcyBmb3Igc2F2aW5nXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBuZXdTdGF0ZSAtIG9wdGlvbmFsbHkgcGFzcyBpbiBuZXcgc3RhdGUgKHRvIG92ZXJyaWRlIHN0YXRlKVxuICAgKi9cbiAgZnVuY3Rpb24gZ2V0Q2hhbmdlcyhuZXdTdGF0ZSA9IHt9KSB7XG4gICAgY29uc29sZS5sb2coYGdldENoYW5nZXMgLSBzdGFydGVkICR7Y3VycmVudEluZGV4fSAtIHBhc3NlZCBzdGF0ZWAsIG5ld1N0YXRlKVxuICAgIGNvbnN0IF9uZXdTdGF0ZSA9IHtcbiAgICAgIHN0YXRlLFxuICAgICAgLi4ubmV3U3RhdGUsXG4gICAgfVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBuZXdBbGlnbm1lbnRzLFxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgbmV3VmVyc2VUZXh0LFxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0cyxcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHZlcnNlVGV4dENoYW5nZWQsXG4gICAgfSA9IF9uZXdTdGF0ZVxuICAgIGxldCB1cGRhdGVkVmVyc2VPYmplY3RzXyA9IHVwZGF0ZWRWZXJzZU9iamVjdHNcblxuICAgIGlmIChuZXdBbGlnbm1lbnRzKSB7IC8vIGlmIHVuc2F2ZWQgYWxpZ25tZW50IGNoYW5nZXMsIGFwcGx5IHRoZW1cbiAgICAgIGNvbnNvbGUubG9nKGBnZXRDaGFuZ2VzIC0gYXBwbHlpbmcgdW5zYXZlZCBhbGlnbm1lbnRzfWApXG4gICAgICB1cGRhdGVkVmVyc2VPYmplY3RzXyA9IHVwZGF0ZVZlcnNlV2l0aE5ld0FsaWdubWVudHMoKVxuICAgIH1cblxuICAgIGlmICh2ZXJzZVRleHRDaGFuZ2VkICYmIG5ld1ZlcnNlVGV4dCkge1xuICAgICAgY29uc29sZS5sb2coYGdldENoYW5nZXMgLSBhcHBseWluZyBuZXcgdGV4dDpgLCBuZXdWZXJzZVRleHQpXG4gICAgICBjb25zdCBjdXJyZW50VmVyc2VPYmplY3RzXyA9IHVwZGF0ZWRWZXJzZU9iamVjdHNfIHx8IGluaXRpYWxWZXJzZU9iamVjdHNcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHNfICYmIGNvbnNvbGUubG9nKGBnZXRDaGFuZ2VzIC0gYXBwbHlpbmcgdXBkYXRlZCBhbGlnbm1lbnRzYClcbiAgICAgIGNvbnN0IHsgdGFyZ2V0VmVyc2VPYmplY3RzIH0gPSBBbGlnbm1lbnRIZWxwZXJzLnVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlKGN1cnJlbnRWZXJzZU9iamVjdHNfLCBuZXdWZXJzZVRleHQpXG4gICAgICB1cGRhdGVkVmVyc2VPYmplY3RzXyA9IHRhcmdldFZlcnNlT2JqZWN0c1xuICAgIH0gZWxzZSB7IC8vIG9ubHkgYWxpZ25tZW50IGNoYW5nZXMgdG8gdXBsb2FkXG4gICAgICB1cGRhdGVkVmVyc2VPYmplY3RzXyAmJiBjb25zb2xlLmxvZyhgZ2V0Q2hhbmdlcyAtIGFwcGx5aW5nIHVwZGF0ZWQgYWxpZ25tZW50c2AsIHsgbmV3VmVyc2VUZXh0LCB1cGRhdGVkVmVyc2VPYmplY3RzXyB9KVxuICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0c18gPSB1cGRhdGVkVmVyc2VPYmplY3RzXyB8fCBpbml0aWFsVmVyc2VPYmplY3RzXG4gICAgfVxuXG4gICAgaWYgKHVwZGF0ZWRWZXJzZU9iamVjdHNfKSB7XG4gICAgICBjb25zdCByZWYgPSBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZj8uW2N1cnJlbnRJbmRleF1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5ld1ZlcnNlVGV4dCxcbiAgICAgICAgcmVmLFxuICAgICAgICB1cGRhdGVkVmVyc2VPYmplY3RzOiB1cGRhdGVkVmVyc2VPYmplY3RzXyxcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge31cbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayBmb3Igd2hlbiB1c2VyIGNsaWNrZWQgb24gYWxpZ25tZW50IGJ1dHRvbiAtIHdpbGwgc2hvdyBpZiBub3QgYWxyZWFkeSBzaG93blxuICAgKi9cbiAgYXN5bmMgZnVuY3Rpb24gaGFuZGxlQWxpZ25tZW50Q2xpY2soKSB7XG4gICAgaWYgKGVuYWJsZUFsaWdubWVudCkge1xuICAgICAgbGV0IF9hbGlnbmVyRGF0YTogQWxpZ25lckRhdGFUeXBlID0gbnVsbFxuICAgICAgYXdhaXQgc3RhcnRFZGl0QnJhbmNoKClcblxuICAgICAgaWYgKCFhbGlnbmVyRGF0YSkgeyAvLyBpZiB3b3JkIGFsaWduZXIgbm90IHNob3duXG4gICAgICAgIGNvbnNvbGUubG9nKGBoYW5kbGVBbGlnbm1lbnRDbGljayAtIHRvZ2dsZSBPTiBhbGlnbm1lbnRgKVxuICAgICAgICBjb25zdCB0YXJnZXRWZXJzZVVTRk0gPSBnZXRDdXJyZW50VmVyc2VVc2ZtKHVwZGF0ZWRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHMsIHZlcnNlVGV4dENoYW5nZWQsIG5ld1ZlcnNlVGV4dClcbiAgICAgICAgbGV0IG9yaWdpbmFsVmVyc2VVc2ZtID0gbnVsbFxuXG4gICAgICAgIGlmIChvcmlnaW5hbFZlcnNlT2JqZWN0cykge1xuICAgICAgICAgIG9yaWdpbmFsVmVyc2VVc2ZtID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5jb252ZXJ0VmVyc2VEYXRhVG9VU0ZNKG9yaWdpbmFsVmVyc2VPYmplY3RzKVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHRhcmdldFdvcmRzOiB3b3JkQmFuayxcbiAgICAgICAgICB2ZXJzZUFsaWdubWVudHM6IGFsaWdubWVudHMsXG4gICAgICAgIH0gPSBBbGlnbm1lbnRIZWxwZXJzLnBhcnNlVXNmbVRvV29yZEFsaWduZXJEYXRhKHRhcmdldFZlcnNlVVNGTSwgb3JpZ2luYWxWZXJzZVVzZm0pXG4gICAgICAgIF9hbGlnbmVyRGF0YSA9IHsgd29yZEJhbmssIGFsaWdubWVudHMgfVxuXG4gICAgICAgIGlmICghYWxpZ25tZW50cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgX2FsaWduZXJEYXRhLmVycm9yTWVzc2FnZSA9ICdUaGVyZSBhcmUgbm8gd29yZHMgdG8gYWxpZ24gaW4gdGhlIE9yaWdpbmFsIGxhbmd1YWdlJ1xuICAgICAgICB9IGVsc2UgaWYgKCF3b3JkQmFuaz8ubGVuZ3RoKSB7XG4gICAgICAgICAgX2FsaWduZXJEYXRhLmVycm9yTWVzc2FnZSA9ICdUaGVyZSBhcmUgbm8gd29yZHMgdG8gYWxpZ24gaW4gdGhlIExpdGVyYWwvU2ltcGxpZmllZCBTY3JpcHR1cmUgVGV4dCdcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHsgLy8gd29yZCBhbGlnbmVyIGN1cnJlbnRseSBzaG93blxuICAgICAgICBjb25zb2xlLmxvZyhgaGFuZGxlQWxpZ25tZW50Q2xpY2sgLSBhbGlnbm1lbnQgYWxyZWFkeSBzaG93bmApXG4gICAgICAgIF9hbGlnbmVyRGF0YSA9IGFsaWduZXJEYXRhXG4gICAgICB9XG4gICAgICBzZXRTdGF0ZSh7IGFsaWduZXJEYXRhOiBfYWxpZ25lckRhdGEgfSlcbiAgICAgIGNvbnNvbGUubG9nKF9hbGlnbmVyRGF0YSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogZ2V0IHVwZGF0ZWQgdmVyc2Ugb2JqZWN0cyBhZnRlciBhbGlnbm1lbnRzIGNoYW5nZWRcbiAgICogQHBhcmFtIHtBbGlnbmVyUmVzdWx0c0RhdGFUeXBlfSBfbmV3QWxpZ25tZW50cyAtIHJlc3VsdHMgb2YgYWxpZ25lclxuICAgKi9cbiAgZnVuY3Rpb24gdXBkYXRlVmVyc2VXaXRoTmV3QWxpZ25tZW50cyhfbmV3QWxpZ25tZW50czogQWxpZ25lclJlc3VsdHNEYXRhVHlwZSA9IG5ld0FsaWdubWVudHMpOlZlcnNlT2JqZWN0c1R5cGUge1xuICAgIGNvbnN0IGN1cnJlbnRWZXJzZU9iamVjdHNfID0gdXBkYXRlZFZlcnNlT2JqZWN0cyB8fCBpbml0aWFsVmVyc2VPYmplY3RzXG4gICAgY29uc3QgdGFyZ2V0VmVyc2VUZXh0ID0gbmV3VmVyc2VUZXh0IHx8IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMuY29udmVydFZlcnNlRGF0YVRvVVNGTShjdXJyZW50VmVyc2VPYmplY3RzXylcbiAgICBjb25zdCB2ZXJzZVVzZm0gPSBBbGlnbm1lbnRIZWxwZXJzLmFkZEFsaWdubWVudHNUb1ZlcnNlVVNGTShfbmV3QWxpZ25tZW50cy50YXJnZXRXb3JkcywgX25ld0FsaWdubWVudHMudmVyc2VBbGlnbm1lbnRzLCB0YXJnZXRWZXJzZVRleHQpXG4gICAgY29uc3QgYWxpZ25lZFZlcnNlT2JqZWN0cyA9IHVzZm1IZWxwZXJzLnVzZm1WZXJzZVRvSnNvbih2ZXJzZVVzZm0pXG4gICAgcmV0dXJuIGFsaWduZWRWZXJzZU9iamVjdHNcbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayBmb3Igd2hlbiB1c2VyIGNsaWNrZWQgb24gYnV0dG9uIHRvIHNhdmUgY3VycmVudCBhbGlnbm1lbnRzIGluIHdvcmQgYWxpZ25lci4gIEdlbmVyYXRlcyBuZXcgdmVyc2UgY29udGVudCBhbmQgc2F2ZXMgaW4gc3RhdGUuIENsb3NlcyBhbGlnbmVyIGRpc3BsYXlcbiAgICogQHBhcmFtIHtBbGlnbmVyUmVzdWx0c0RhdGFUeXBlfSBfbmV3QWxpZ25tZW50cyAtIHJlc3VsdHMgb2YgYWxpZ25lclxuICAgKi9cbiAgZnVuY3Rpb24gc2F2ZUFsaWdubWVudChfbmV3QWxpZ25tZW50czogQWxpZ25lclJlc3VsdHNEYXRhVHlwZSA9IG5ld0FsaWdubWVudHMpIHtcbiAgICBjb25zb2xlLmxvZyhgc2F2ZUFsaWdubWVudCgpIC0gbmV3QWxpZ25tZW50c2AsIF9uZXdBbGlnbm1lbnRzKVxuXG4gICAgaWYgKF9uZXdBbGlnbm1lbnRzKSB7XG4gICAgICBjb25zdCBhbGlnbmVkVmVyc2VPYmplY3RzID0gdXBkYXRlVmVyc2VXaXRoTmV3QWxpZ25tZW50cyhfbmV3QWxpZ25tZW50cylcbiAgICAgIGNvbnNvbGUubG9nKGBzYXZlQWxpZ25tZW50KCkgLSBhbGlnbmVkVmVyc2VPYmplY3RzYCwgYWxpZ25lZFZlcnNlT2JqZWN0cylcbiAgICAgIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgICAgICBhbGlnbmVyRGF0YTogbnVsbCxcbiAgICAgICAgZWRpdGluZzogZmFsc2UsXG4gICAgICAgIG5ld0FsaWdubWVudHM6IG51bGwsXG4gICAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHM6IGFsaWduZWRWZXJzZU9iamVjdHMsXG4gICAgICB9XG4gICAgICBzZXRTdGF0ZShuZXdTdGF0ZSlcbiAgICAgIGNhbGxTZXRTYXZlZFN0YXRlKHRydWUsIG5ld1N0YXRlIClcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coYHNhdmVBbGlnbm1lbnQoKSAtIG5vIGFsaWdubWVudCBjaGFuZ2VzYClcbiAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgYWxpZ25lckRhdGE6IG51bGwsXG4gICAgICAgIGVkaXRpbmc6IGZhbHNlLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogY2FsbGJhY2sgZm9yIHdoZW4gdXNlciBjbGlja2VkIG9uIGJ1dHRvbiB0byBjYW5jZWwgd29yayBpbiB3b3JkIGFsaWduZXIuICBDYWxjdWxhdGVzIGFuZCBkaXNwbGF5cyBjdXJyZW50IGFsaWdubWVudCB2YWxpZCBzdGF0ZS4gQ2xvc2VzIGFsaWduZXIgZGlzcGxheVxuICAgKi9cbiAgZnVuY3Rpb24gY2FuY2VsQWxpZ25tZW50KCkge1xuICAgIGNvbnNvbGUubG9nKGBjYW5jZWxBbGlnbm1lbnQoKWApXG4gICAgY29uc3QgdGFyZ2V0VmVyc2VVU0ZNID0gZ2V0Q3VycmVudFZlcnNlVXNmbSh1cGRhdGVkVmVyc2VPYmplY3RzLCBpbml0aWFsVmVyc2VPYmplY3RzLCB2ZXJzZVRleHRDaGFuZ2VkLCBuZXdWZXJzZVRleHQpXG4gICAgY29uc3QgYWxpZ25lZCA9IGlzVXNmbUFsaWduZWQodGFyZ2V0VmVyc2VVU0ZNLCBvcmlnaW5hbFZlcnNlT2JqZWN0cylcbiAgICBzZXRTdGF0ZSh7IGFsaWduZXJEYXRhOiBudWxsLCBhbGlnbmVkIH0pXG4gIH1cblxuICAvKipcbiAgICogY2FsbGJhY2sgZm9yIGJ1dHRvbiB0byBzZXQgZWRpdGluZyBzdGF0ZVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGVkaXRpbmdfIC0gaWYgdHJ1ZSwgZWRpdG9yIGlzIHNob3duLCBvdGhlcndpc2UgZWRpdG9yIGlzIGhpZGRlblxuICAgKiBAcGFyYW0ge3N0cmluZ30gX25ld1ZlcnNlVGV4dCAtIG9wdGlvbmFsIHZlcnNlIHRleHRcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZXF1aXJlLWF3YWl0XG4gIGFzeW5jIGZ1bmN0aW9uIHNldEVkaXRpbmcoZWRpdGluZ186IGJvb2xlYW4sIF9uZXdWZXJzZVRleHQ6IHN0cmluZyA9IG5ld1ZlcnNlVGV4dCkge1xuICAgIGlmIChlbmFibGVFZGl0KSB7XG4gICAgICBpZiAoZWRpdGluZ18gIT09IGVkaXRpbmcpIHtcbiAgICAgICAgX25ld1ZlcnNlVGV4dCA9IF9uZXdWZXJzZVRleHQgfHwgaW5pdGlhbFZlcnNlVGV4dFxuICAgICAgICBsZXQgX3VwZGF0ZWRWZXJzZU9iamVjdHMgPSB1cGRhdGVkVmVyc2VPYmplY3RzXG4gICAgICAgIGNvbnN0IHZlcnNlVGV4dENoYW5nZWQgPSBfbmV3VmVyc2VUZXh0ICE9PSBpbml0aWFsVmVyc2VUZXh0XG4gICAgICAgIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgICAgICAgIGVkaXRpbmc6IGVkaXRpbmdfLFxuICAgICAgICAgIG5ld1ZlcnNlVGV4dDogX25ld1ZlcnNlVGV4dCxcbiAgICAgICAgICB2ZXJzZVRleHRDaGFuZ2VkLFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF2ZXJzZVRleHRDaGFuZ2VkKSB7XG4gICAgICAgICAgLy8gZmFsbGJhY2sgdG8gbWFrZSBzdXJlIHRleHQgZnJvbSB2ZXJzZU9iamVjdHMgbWF0Y2hlcyBjdXJyZW50IHRleHRcbiAgICAgICAgICBjb25zdCB2ZXJzZVRleHQgPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmdldFVzZm1Gb3JWZXJzZUNvbnRlbnQoeyB2ZXJzZU9iamVjdHM6IGN1cnJlbnRWZXJzZU9iamVjdHMgfSApXG5cbiAgICAgICAgICBpZiAoaGFzVGV4dENoYW5nZWRTaWduaWZpY2FudGx5KHZlcnNlVGV4dCwgX25ld1ZlcnNlVGV4dCkpIHtcbiAgICAgICAgICAgIC8vIGFwcGx5IGFsaWdubWVudCB0byBjdXJyZW50IHRleHRcbiAgICAgICAgICAgIGNvbnN0IHsgdGFyZ2V0VmVyc2VPYmplY3RzIH0gPSBBbGlnbm1lbnRIZWxwZXJzLnVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlKGN1cnJlbnRWZXJzZU9iamVjdHMsIF9uZXdWZXJzZVRleHQpXG4gICAgICAgICAgICBfdXBkYXRlZFZlcnNlT2JqZWN0cyA9IHRhcmdldFZlcnNlT2JqZWN0cyAvLyB1cGRhdGUgdmVyc2VPYmplY3RzIHRvIG1hdGNoIGN1cnJlbnQgdGV4dFxuICAgICAgICAgICAgbmV3U3RhdGVbJ3VwZGF0ZWRWZXJzZU9iamVjdHMnXSA9IF91cGRhdGVkVmVyc2VPYmplY3RzXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0U3RhdGUobmV3U3RhdGUpXG4gICAgICAgIGNvbnN0IF9hbGlnbm1lbnRzQ2hhbmdlZCA9IChfdXBkYXRlZFZlcnNlT2JqZWN0cyAmJiAhaXNFcXVhbChpbml0aWFsVmVyc2VPYmplY3RzLCBfdXBkYXRlZFZlcnNlT2JqZWN0cykpXG4gICAgICAgIGNhbGxTZXRTYXZlZFN0YXRlKHZlcnNlVGV4dENoYW5nZWQgfHwgX2FsaWdubWVudHNDaGFuZ2VkLCBuZXdTdGF0ZSApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGNhbGxiYWNrIGZyb20gdGhlIGVkaXQgb25DaGFuZ2UgZXZlbnQgdG8gdXBkYXRlIGVkaXQgc3RhdGUgdmFyaWFibGVzXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gY2hhbmdlZCAtIHRydWUgaWYgdGhlIG5ld1ZlcnNlVGV4dCBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgaW5pdGlhbFZlcnNlVGV4dFxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmV3VmVyc2VUZXh0IC0gY3VycmVudCBjaGFuZ2VkIHZlcnNlIHRleHRcbiAgICogQHBhcmFtIHtzdHJpbmd9IF9pbml0aWFsVmVyc2VUZXh0IC0gaW5pdGlhbCB2ZXJzZSB0ZXh0XG4gICAqL1xuICBmdW5jdGlvbiBzZXRWZXJzZUNoYW5nZWQoY2hhbmdlZDogYm9vbGVhbiwgbmV3VmVyc2VUZXh0OiBzdHJpbmcsIF9pbml0aWFsVmVyc2VUZXh0OiBzdHJpbmcpIHtcbiAgICBjb25zdCB7IHRhcmdldFZlcnNlVGV4dCB9ID0gQWxpZ25tZW50SGVscGVycy51cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZShjdXJyZW50VmVyc2VPYmplY3RzLCBuZXdWZXJzZVRleHQpXG4gICAgY29uc3QgYWxpZ25lZCA9IGlzVXNmbUFsaWduZWQodGFyZ2V0VmVyc2VUZXh0LCBvcmlnaW5hbFZlcnNlT2JqZWN0cylcbiAgICBjb25zdCB2ZXJzZVRleHRDaGFuZ2VkID0gbmV3VmVyc2VUZXh0ICE9PSBpbml0aWFsVmVyc2VUZXh0XG5cbiAgICBzZXRTdGF0ZSh7XG4gICAgICB2ZXJzZVRleHRDaGFuZ2VkLFxuICAgICAgbmV3VmVyc2VUZXh0LFxuICAgICAgYWxpZ25lZCxcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgY3VycmVudFZlcnNlT2JqZWN0cyA9IFJlYWN0LnVzZU1lbW8oICgpID0+IHsgLy8gaWYgdmVyc2UgaGFzIGJlZW4gZWRpdGVkIG9yIGFsaWdubWVudCBjaGFuZ2VkLCB0aGVuIGdlbmVyYXRlIG5ldyB2ZXJzZU9iamVjdHMgdG8gZGlzcGxheSBpbiBTY3JpcHR1cmVQYW5lXG4gICAgaWYgKGluaXRpYWxWZXJzZU9iamVjdHMpIHtcbiAgICAgIGNvbnN0IHRhcmdldFZlcnNlVVNGTSA9IGdldEN1cnJlbnRWZXJzZVVzZm0odXBkYXRlZFZlcnNlT2JqZWN0cywgaW5pdGlhbFZlcnNlT2JqZWN0cywgdmVyc2VUZXh0Q2hhbmdlZCwgbmV3VmVyc2VUZXh0KVxuICAgICAgY29uc3QgY3VycmVudFZlcnNlT2JqZWN0c18gPSB1c2ZtSGVscGVycy51c2ZtVmVyc2VUb0pzb24odGFyZ2V0VmVyc2VVU0ZNKVxuICAgICAgcmV0dXJuIGN1cnJlbnRWZXJzZU9iamVjdHNfXG4gICAgfVxuICAgIHJldHVybiBpbml0aWFsVmVyc2VPYmplY3RzXG4gIH0sIFt1cGRhdGVkVmVyc2VPYmplY3RzLCBpbml0aWFsVmVyc2VPYmplY3RzLCB2ZXJzZVRleHRDaGFuZ2VkLCBuZXdWZXJzZVRleHRdKVxuXG4gIGNvbnN0IHVuc2F2ZWRDaGFuZ2VzOmJvb2xlYW4gPSBSZWFjdC51c2VNZW1vKCAoKSA9PiB7IC8vIGlmIHZlcnNlIGhhcyBiZWVuIGVkaXRlZCBvciBhbGlnbm1lbnQgY2hhbmdlZCwgdGhlbiBpbmRpY2F0ZSB3ZSBoYXZlIHVuc2F2ZWQgY2hhbmdlc1xuICAgIGNvbnN0IGNoYW5nZWQgPSB2ZXJzZVRleHRDaGFuZ2VkIHx8ICh1cGRhdGVkVmVyc2VPYmplY3RzICYmICFpc0VxdWFsKGluaXRpYWxWZXJzZU9iamVjdHMsIHVwZGF0ZWRWZXJzZU9iamVjdHMpKVxuICAgIHJldHVybiBjaGFuZ2VkXG4gIH0sIFt1cGRhdGVkVmVyc2VPYmplY3RzLCBpbml0aWFsVmVyc2VPYmplY3RzLCB2ZXJzZVRleHRDaGFuZ2VkXSlcblxuICAvKipcbiAgICogY2FsbGJhY2sgdG8gc2NyaXB0dXJlIGNhcmQgdG8gdXBkYXRlZCB3aXRoIGxhdGVzdCBzdGF0ZSBmb3Igc2F2aW5nXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gdW5zYXZlZENoYW5nZXNfXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBuZXdTdGF0ZVxuICAgKi9cbiAgZnVuY3Rpb24gY2FsbFNldFNhdmVkU3RhdGUodW5zYXZlZENoYW5nZXNfOiBib29sZWFuLCBuZXdTdGF0ZToge30gPSB7IH0gKSB7XG4gICAgY29uc3QgX25ld1N0YXRlID0ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICAuLi5uZXdTdGF0ZSxcbiAgICB9XG5cbiAgICAvLyBjb25zb2xlLmxvZyhgY2FsbFNldFNhdmVkU3RhdGUgLSBuZXcgc3RhdGVgLCBfbmV3U3RhdGUpXG4gICAgc2V0U2F2ZWRDaGFuZ2VzICYmIHNldFNhdmVkQ2hhbmdlcyhjdXJyZW50SW5kZXgsICF1bnNhdmVkQ2hhbmdlc18sIHtcbiAgICAgIGdldENoYW5nZXMsXG4gICAgICBjbGVhckNoYW5nZXMsXG4gICAgICBzdGF0ZTogX25ld1N0YXRlLFxuICAgIH0pXG4gIH1cblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyBzZXQgc2F2ZWQgY2hhbmdlcyB3aGVuZXZlciB1c2VyIGVkaXRzIHZlcnNlIHRleHQgb3IgYWxpZ25tZW50cyBvciBpZiBhbGlnbm1lbnRzIGFyZSBvcGVuXG4gICAgY29uc3QgdW5zYXZlZENoYW5nZXNfID0gdW5zYXZlZENoYW5nZXMgfHwgISFhbGlnbmVyRGF0YVxuICAgIGNhbGxTZXRTYXZlZFN0YXRlKHVuc2F2ZWRDaGFuZ2VzXylcbiAgfSwgW3Vuc2F2ZWRDaGFuZ2VzLCBhbGlnbmVyRGF0YV0pXG5cbiAgLyoqXG4gICAqIGNhbGxiYWNrIGZvciB3aGVuIGFsaWdubWVudHMgYXJlIGJlaW5nIGNoYW5nZWRcbiAgICogQHBhcmFtIHtBbGlnbmVyUmVzdWx0c0RhdGFUeXBlfSByZXN1bHRzXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IHRydWUgaWYgYWxpZ25tZW50IGlzIGNvbXBsZXRlXG4gICAqL1xuICBmdW5jdGlvbiBvbkFsaWdubWVudHNDaGFuZ2UocmVzdWx0czogQWxpZ25lclJlc3VsdHNEYXRhVHlwZSk6Ym9vbGVhbiB7XG4gICAgY29uc29sZS5sb2coYG9uQWxpZ25tZW50c0NoYW5nZSgpIC0gYWxpZ25tZW50IGNoYW5nZWQsIHJlc3VsdHNgLCByZXN1bHRzKSAvLyBtZXJnZSBhbGlnbm1lbnRzIGludG8gdGFyZ2V0IHZlcnNlIGFuZCBjb252ZXJ0IHRvIFVTRk1cbiAgICBjb25zdCB7IHRhcmdldFdvcmRzLCB2ZXJzZUFsaWdubWVudHMgfSA9IHJlc3VsdHNcbiAgICBjb25zdCBhbGlnbm1lbnRDb21wbGV0ZSA9IEFsaWdubWVudEhlbHBlcnMuYXJlQWxnbm1lbnRzQ29tcGxldGUodGFyZ2V0V29yZHMsIHZlcnNlQWxpZ25tZW50cylcbiAgICBjb25zb2xlLmxvZyhgQWxpZ25tZW50cyBhcmUgJHthbGlnbm1lbnRDb21wbGV0ZSA/ICdDT01QTEVURSEnIDogJ2luY29tcGxldGUnfWApXG4gICAgc2V0U3RhdGUoeyBuZXdBbGlnbm1lbnRzOiByZXN1bHRzLCBhbGlnbmVkOiBhbGlnbm1lbnRDb21wbGV0ZSB9KVxuICAgIHJldHVybiBhbGlnbm1lbnRDb21wbGV0ZVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhY3Rpb25zOiB7XG4gICAgICBjYW5jZWxBbGlnbm1lbnQsXG4gICAgICBjbGVhckNoYW5nZXMsXG4gICAgICBnZXRDaGFuZ2VzLFxuICAgICAgaGFuZGxlQWxpZ25tZW50Q2xpY2ssXG4gICAgICBvbkFsaWdubWVudHNDaGFuZ2UsXG4gICAgICBzYXZlQWxpZ25tZW50LFxuICAgICAgc2V0RWRpdGluZyxcbiAgICAgIHNldFZlcnNlQ2hhbmdlZCxcbiAgICB9LFxuICAgIHN0YXRlOiB7XG4gICAgICBhbGlnbmVkLFxuICAgICAgYWxpZ25lckRhdGEsXG4gICAgICBjdXJyZW50VmVyc2VPYmplY3RzLFxuICAgICAgZWRpdGluZyxcbiAgICAgIGVuYWJsZUVkaXQsXG4gICAgICBlbmFibGVBbGlnbm1lbnQsXG4gICAgICBpbml0aWFsVmVyc2VUZXh0LFxuICAgICAgaW5pdGlhbFZlcnNlT2JqZWN0cyxcbiAgICAgIG5ld1ZlcnNlVGV4dCxcbiAgICAgIHJlZmVyZW5jZTogYmFzaWNSZWZlcmVuY2UsXG4gICAgICBzb3VyY2VMYW5ndWFnZSxcbiAgICAgIHRhcmdldExhbmd1YWdlLFxuICAgICAgdGl0bGUsXG4gICAgICB1bnNhdmVkQ2hhbmdlcyxcbiAgICAgIHZlcnNlVGV4dENoYW5nZWQsXG4gICAgfSxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOytDQUNBLHFKQUFBQSxtQkFBQSxZQUFBQSxvQkFBQSxXQUFBQyxDQUFBLFNBQUFDLENBQUEsRUFBQUQsQ0FBQSxPQUFBRSxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsU0FBQSxFQUFBQyxDQUFBLEdBQUFILENBQUEsQ0FBQUksY0FBQSxFQUFBQyxDQUFBLEdBQUFKLE1BQUEsQ0FBQUssY0FBQSxjQUFBUCxDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxJQUFBRCxDQUFBLENBQUFELENBQUEsSUFBQUUsQ0FBQSxDQUFBTyxLQUFBLEtBQUFDLENBQUEsd0JBQUFDLE1BQUEsR0FBQUEsTUFBQSxPQUFBQyxDQUFBLEdBQUFGLENBQUEsQ0FBQUcsUUFBQSxrQkFBQUMsQ0FBQSxHQUFBSixDQUFBLENBQUFLLGFBQUEsdUJBQUFDLENBQUEsR0FBQU4sQ0FBQSxDQUFBTyxXQUFBLDhCQUFBQyxPQUFBakIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUMsTUFBQSxDQUFBSyxjQUFBLENBQUFQLENBQUEsRUFBQUQsQ0FBQSxJQUFBUyxLQUFBLEVBQUFQLENB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
@@ -51,6 +51,7 @@ import "core-js/modules/es.object.get-own-property-descriptors.js";
51
51
  import "core-js/modules/es.object.define-properties.js";
52
52
  import { CONTENT_NOT_FOUND_ERROR, INVALID_MANIFEST_ERROR, LOADING_STATE, MANIFEST_NOT_LOADED_ERROR, SCRIPTURE_NOT_LOADED_ERROR } from 'translation-helps-rcl';
53
53
  import { BOOK_NOT_FOUND_ERROR_MSG, LOADING_RESOURCE, MANIFEST_INVALID_ERROR_MSG, MANIFEST_NOT_FOUND_ERROR_MSG, NT_ORIG_LANG, NT_ORIG_LANG_BIBLE, ORIGINAL_SOURCE, OT_ORIG_LANG, OT_ORIG_LANG_BIBLE, SCRIPTURE_NOT_FOUND_ERROR_MSG, TARGET_LITERAL, TARGET_SIMPLIFIED } from './common';
54
+ import { VerseObjectsType } from '../types';
54
55
  export var DISABLE_WORD_POPOVER = true; // disable word popover for every scripture pane but original languages
55
56
 
56
57
  export function getResourceLink(scripture) {
@@ -437,7 +438,7 @@ export function getBibleIdFromUsfmContentID(bibleUsfm) {
437
438
 
438
439
  /**
439
440
  * determines if there are any words in verseObjects
440
- * @param {object[]} verseObjects - array of verseObjects to search for words
441
+ * @param {VerseObjectsType} verseObjects - array of verseObjects to search for words
441
442
  * @return {boolean} true if word is found
442
443
  */
443
444
  export function verseObjectsHaveWords(verseObjects) {
@@ -447,10 +448,10 @@ export function verseObjectsHaveWords(verseObjects) {
447
448
  try {
448
449
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
449
450
  var vo = _step2.value;
450
- if (vo['type'] === 'word') {
451
+ if (vo.type === 'word') {
451
452
  return true;
452
- } else if (vo['children']) {
453
- var foundWords = verseObjectsHaveWords(vo['children']);
453
+ } else if (vo.children) {
454
+ var foundWords = verseObjectsHaveWords(vo.children);
454
455
  if (foundWords) {
455
456
  return true;
456
457
  }
@@ -464,4 +465,4 @@ export function verseObjectsHaveWords(verseObjects) {
464
465
  }
465
466
  return false;
466
467
  }
467
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDT05URU5UX05PVF9GT1VORF9FUlJPUiIsIklOVkFMSURfTUFOSUZFU1RfRVJST1IiLCJMT0FESU5HX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsIlNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SIiwiQk9PS19OT1RfRk9VTkRfRVJST1JfTVNHIiwiTE9BRElOR19SRVNPVVJDRSIsIk1BTklGRVNUX0lOVkFMSURfRVJST1JfTVNHIiwiTUFOSUZFU1RfTk9UX0ZPVU5EX0VSUk9SX01TRyIsIk5UX09SSUdfTEFORyIsIk5UX09SSUdfTEFOR19CSUJMRSIsIk9SSUdJTkFMX1NPVVJDRSIsIk9UX09SSUdfTEFORyIsIk9UX09SSUdfTEFOR19CSUJMRSIsIlNDUklQVFVSRV9OT1RfRk9VTkRfRVJST1JfTVNHIiwiVEFSR0VUX0xJVEVSQUwiLCJUQVJHRVRfU0lNUExJRklFRCIsIkRJU0FCTEVfV09SRF9QT1BPVkVSIiwiZ2V0UmVzb3VyY2VMaW5rIiwic2NyaXB0dXJlIiwicmVmIiwiYnJhbmNoIiwiY29uY2F0Iiwib3duZXIiLCJsYW5ndWFnZUlkIiwicmVzb3VyY2VJZCIsInBhcnNlUmVzb3VyY2VMaW5rIiwicmVzb3VyY2VMaW5rIiwiX3Jlc291cmNlTGluayRzcGxpdCIsInNwbGl0IiwiX3Jlc291cmNlTGluayRzcGxpdDIiLCJfc2xpY2VkVG9BcnJheSIsImdldFNjcmlwdHVyZU9iamVjdCIsIl9yZWYiLCJ0aXRsZSIsInNlcnZlciIsImRpc2FibGVXb3JkUG9wb3ZlciIsIm9yaWdpbmFsTGFuZ3VhZ2VPd25lciIsImdldFZlcnNlRGF0YUZyb21TY3JpcENvbmZpZyIsInNjcmlwdHVyZUNvbmZpZyIsInZlcnNlTnVtIiwiX3NjcmlwdHVyZUNvbmZpZyR2ZXJzIiwidmVyc2VzRm9yUmVmIiwiZmluZCIsInZlcnNlUmVmIiwidmVyc2UiLCJpc09yaWdpbmFsQmlibGUiLCJpc09yaWciLCJjbGVhbnVwQWNjb3VudFNldHRpbmdzIiwic2NyaXB0dXJlU2V0dGluZ3MiLCJjdXJyZW50T3duZXIiLCJjdXJyZW50TGFuZ3VhZ2VJZCIsInNwbGl0VXJsIiwib3JpZ2luYWxSZXBvVXJsIiwidXJsIiwiVVJMIiwib3JpZ2luIiwicGF0aG5hbWUiLCJzZWFyY2giLCJnZXRTY3JpcHR1cmVSZXNvdXJjZVNldHRpbmdzIiwiYm9va0lkIiwic2NyaXB0dXJlU2V0dGluZ3NfIiwiaXNOZXdUZXN0YW1lbnQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJfb2JqZWN0U3ByZWFkIiwiX3NwbGl0VXJsIiwiZ2V0U2NyaXB0dXJlVmVyc2lvblNldHRpbmdzIiwiX3JlZjIiLCJsYWJlbCIsInNldFNjcmlwdHVyZSIsInNjcmlwdHVyZVZlcnNpb25IaXN0IiwiaGlzdG9yeSIsImdldExhdGVzdCIsImluZGV4IiwiZmluZEl0ZW1JbmRleEJ5S2V5Iiwic2NyaXB0dXJlU2VsZWN0b3JDb25maWciLCJvcHRpb25zIiwiY3VycmVudCIsImFsbG93VXNlcklucHV0Iiwib25DaGFuZ2UiLCJ2YWxpZGF0aW9uQ0IiLCJpdGVtIiwibmV3SXRlbSIsImFkZEl0ZW1Ub0hpc3RvcnkiLCJnZXRJdGVtQnlUaXRsZSIsImRlbGV0ZUl0ZW0iLCJkZWxldGVJbmRleCIsInJlbW92ZUl0ZW1CeUluZGV4IiwiZ2V0UmVwb1VybCIsImlzTlQiLCJyZXBvVXJsIiwiX3Jlc291cmNlTGluayRzcGxpdDMiLCJfcmVzb3VyY2VMaW5rJHNwbGl0NCIsImUiLCJnZXRFcnJvck1lc3NhZ2VGb3JSZXNvdXJjZUxpbmsiLCJlcnJvckNvZGUiLCJlcnJvck1zZyIsInZhbGlkYXRlRGNzVXJsIiwidmFsaWRSZXBvUGF0aCIsInZhbGlkVXJsIiwicGFydHMiLCJfcGFydHMiLCJwcm90b2NvbCIsImhvc3QiLCJ1c2VyIiwicmVwbyIsImhvc3RQYXJ0cyIsIl9pdGVyYXRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX3N0ZXAiLCJzIiwibiIsImRvbmUiLCJwYXJ0IiwidmFsdWUiLCJlcnIiLCJmIiwiX3JlcG8kc3BsaXQiLCJfcmVwbyRzcGxpdDIiLCJwcm9qZWN0SWQiLCJfdW51c2VkIiwiY29uc29sZSIsImxvZyIsImdldFJlc291cmNlRXJyb3JNZXNzYWdlIiwicmVzb3VyY2VTdGF0dXMiLCJtZXNzYWdlIiwiZ2V0UmVzb3VyY2VNZXNzYWdlIiwiZ2V0UmVzb3VyY2VMaW5rU3BlY2lmaWMiLCJmaXhPY2N1cnJlbmNlIiwib2NjdXJyZW5jZSIsInBhcnNlSW50IiwiY2xlYW51cFZlcnNlT2JqZWN0cyIsInZlcnNlT2JqZWN0cyIsInZlcnNlT2JqZWN0c18iLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJpIiwibCIsInZvIiwidHlwZSIsIm9jY3VycmVuY2VzIiwid29yZCIsImNoaWxkcmVuIiwibmV3Vm8iLCJnZXRCb29rTmFtZUZyb21Vc2ZtRmlsZU5hbWUiLCJmaWxlbmFtZSIsIl9maWxlbmFtZSRtYXRjaCIsInJlZ2V4IiwiYm9va05hbWUiLCJtYXRjaCIsImdldEJpYmxlSWRGcm9tVXNmbUNvbnRlbnRJRCIsImJpYmxlVXNmbSIsImlkSGVhZGVyIiwicG9zSWQiLCJpbmRleE9mIiwiaWRTdGFydCIsImhlYWRlcklkIiwic3Vic3RyaW5nIiwidHJpbSIsImhlYWRlckJvb2tJRCIsIl9oZWFkZXJCb29rSUQiLCJ2ZXJzZU9iamVjdHNIYXZlV29yZHMiLCJfaXRlcmF0b3IyIiwiX3N0ZXAyIiwiZm91bmRXb3JkcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9TY3JpcHR1cmVTZXR0aW5ncy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDT05URU5UX05PVF9GT1VORF9FUlJPUixcbiAgSU5WQUxJRF9NQU5JRkVTVF9FUlJPUixcbiAgTE9BRElOR19TVEFURSxcbiAgTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUixcbiAgU0NSSVBUVVJFX05PVF9MT0FERURfRVJST1IsXG59IGZyb20gJ3RyYW5zbGF0aW9uLWhlbHBzLXJjbCdcbmltcG9ydCB7XG4gIEJPT0tfTk9UX0ZPVU5EX0VSUk9SX01TRyxcbiAgTE9BRElOR19SRVNPVVJDRSxcbiAgTUFOSUZFU1RfSU5WQUxJRF9FUlJPUl9NU0csXG4gIE1BTklGRVNUX05PVF9GT1VORF9FUlJPUl9NU0csXG4gIE5UX09SSUdfTEFORyxcbiAgTlRfT1JJR19MQU5HX0JJQkxFLFxuICBPUklHSU5BTF9TT1VSQ0UsXG4gIE9UX09SSUdfTEFORyxcbiAgT1RfT1JJR19MQU5HX0JJQkxFLFxuICBTQ1JJUFRVUkVfTk9UX0ZPVU5EX0VSUk9SX01TRyxcbiAgVEFSR0VUX0xJVEVSQUwsXG4gIFRBUkdFVF9TSU1QTElGSUVELFxufSBmcm9tICcuL2NvbW1vbidcblxuZXhwb3J0IGNvbnN0IERJU0FCTEVfV09SRF9QT1BPVkVSID0gdHJ1ZSAvLyBkaXNhYmxlIHdvcmQgcG9wb3ZlciBmb3IgZXZlcnkgc2NyaXB0dXJlIHBhbmUgYnV0IG9yaWdpbmFsIGxhbmd1YWdlc1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZSkge1xuICBjb25zdCByZWYgPSBzY3JpcHR1cmUucmVmIHx8IHNjcmlwdHVyZS5icmFuY2hcbiAgcmV0dXJuIGAke3NjcmlwdHVyZS5vd25lcn0vJHtzY3JpcHR1cmUubGFuZ3VhZ2VJZH0vJHtzY3JpcHR1cmUucmVzb3VyY2VJZH0vJHtyZWZ9YFxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VSZXNvdXJjZUxpbmsocmVzb3VyY2VMaW5rKSB7XG4gIGNvbnN0IFtvd25lciwgbGFuZ3VhZ2VJZCwgcmVzb3VyY2VJZCwgcmVmXSA9IHJlc291cmNlTGluay5zcGxpdCgnLycpXG4gIHJldHVybiB7XG4gICAgb3duZXIsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICByZXNvdXJjZUlkLFxuICAgIHJlZixcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NyaXB0dXJlT2JqZWN0KHtcbiAgdGl0bGUsXG4gIHNlcnZlcixcbiAgb3duZXIsXG4gIHJlZixcbiAgbGFuZ3VhZ2VJZCxcbiAgcmVzb3VyY2VJZCxcbiAgcmVzb3VyY2VMaW5rLFxuICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbn0pIHtcbiAgY29uc3Qgc2NyaXB0dXJlID0ge1xuICAgIHRpdGxlLFxuICAgIHNlcnZlcixcbiAgICBvd25lcixcbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gICAgcmVmLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgcmVzb3VyY2VJZCxcbiAgICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gICAgcmVzb3VyY2VMaW5rLFxuICB9XG5cbiAgaWYgKCFyZXNvdXJjZUxpbmspIHtcbiAgICBzY3JpcHR1cmUucmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHtcbiAgICAgIG93bmVyLFxuICAgICAgcmVmLFxuICAgICAgbGFuZ3VhZ2VJZCxcbiAgICAgIHJlc291cmNlSWQsXG4gICAgfSlcbiAgfVxuICByZXR1cm4gc2NyaXB0dXJlXG59XG5cbi8qKlxuICogcmV0dXJuIHZlcnNlIGRhdGEgZ2l2ZW4gYSBzY3JpcHR1cmUgY29uZmlnIGFuZCB2ZXJzZSBudW1iZXJcbiAqIEBwYXJhbSBzY3JpcHR1cmVDb25maWdcbiAqIEBwYXJhbSB2ZXJzZU51bVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVyc2VEYXRhRnJvbVNjcmlwQ29uZmlnKHNjcmlwdHVyZUNvbmZpZywgdmVyc2VOdW0pIHtcbiAgcmV0dXJuIHNjcmlwdHVyZUNvbmZpZz8udmVyc2VzRm9yUmVmPy5maW5kKFxuICAgIHZlcnNlUmVmID0+IHZlcnNlUmVmLnZlcnNlID09PSB2ZXJzZU51bVxuICApXG59XG5cbi8qKlxuICogcmV0dXJuIHRydWUgaWYgcmVzb3VyY2UgaXMgYW4gb3JpZ2luYWwgbGFuZ3VhZ2UgYmlibGVcbiAqIEBwYXJhbSByZXNvdXJjZUlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc09yaWdpbmFsQmlibGUocmVzb3VyY2VJZCkge1xuICBjb25zdCBpc09yaWcgPSAoKHJlc291cmNlSWQgPT09IE5UX09SSUdfTEFOR19CSUJMRSkgfHwgKHJlc291cmNlSWQgPT09IE9UX09SSUdfTEFOR19CSUJMRSkgfHwgKHJlc291cmNlSWQgPT09IE9SSUdJTkFMX1NPVVJDRSkpXG4gIHJldHVybiBpc09yaWdcbn1cblxuLyoqXG4gKiBtYWtlIHN1cmUgc2NyaXB0dXJlU2V0dGluZ3MgYXJlIHVwIHRvIGRhdGUgd2l0aCBjdXJyZW50IG93bmVyIGFuZCBsYW5ndWFnZVxuICogQHBhcmFtIHtvYmplY3R9IHNjcmlwdHVyZVNldHRpbmdzXG4gKiBAcGFyYW0ge3N0cmluZ30gY3VycmVudE93bmVyIC0gb3B0aW9uYWwgb3Zlci1yaWRlIGZvciB0cmFuc2llbnQgY2FzZSB3aGVyZSBvd25lciBpbiBzY3JpcHR1cmUgc2V0dGluZ3MgaGF2ZSBub3QgeWV0IHVwZGF0ZWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50TGFuZ3VhZ2VJZCAtIG9wdGlvbmFsIG92ZXItcmlkZSBmb3IgdHJhbnNpZW50IGNhc2Ugd2hlcmUgbGFuZ3VhZ2UgaW4gc2NyaXB0dXJlIHNldHRpbmdzIGhhdmUgbm90IHlldCB1cGRhdGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbnVwQWNjb3VudFNldHRpbmdzKHNjcmlwdHVyZVNldHRpbmdzOiBhbnksIGN1cnJlbnRPd25lcjogYW55LCBjdXJyZW50TGFuZ3VhZ2VJZDogYW55KSB7XG4gIGlmIChjdXJyZW50T3duZXIgJiYgKGN1cnJlbnRPd25lciAhPT0gc2NyaXB0dXJlU2V0dGluZ3Mub3duZXIpKSB7IC8vIGlmIG93bmVyIGNoYW5nZWQsIHVwZGF0ZSBzY3JpcHR1cmVTZXR0aW5nc1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLm93bmVyID0gY3VycmVudE93bmVyXG4gIH1cblxuICBpZiAoY3VycmVudExhbmd1YWdlSWQgJiYgKGN1cnJlbnRMYW5ndWFnZUlkICE9PSBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkKSkgeyAvLyBpZiBsYW5ndWFnZSBjaGFuZ2VkLCB1cGRhdGUgc2NyaXB0dXJlU2V0dGluZ3NcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkID0gY3VycmVudExhbmd1YWdlSWRcbiAgfVxufVxuXG4vKipcbiAqIHNlcGFyYXRlIFVSTCBpbnRvIHNlcnZlciBhbmQgcmVzb3VyY2UgbGlua1xuICogQHBhcmFtIHtzdHJpbmd9IG9yaWdpbmFsUmVwb1VybFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3BsaXRVcmwob3JpZ2luYWxSZXBvVXJsKSB7XG4gIGlmIChvcmlnaW5hbFJlcG9VcmwpIHtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKG9yaWdpbmFsUmVwb1VybClcbiAgICBjb25zdCBzZXJ2ZXIgPSB1cmwub3JpZ2luXG4gICAgY29uc3QgcmVzb3VyY2VMaW5rID0gdXJsLnBhdGhuYW1lICsgKHVybC5zZWFyY2ggfHwgJycpXG4gICAgcmV0dXJuIHsgc2VydmVyLCByZXNvdXJjZUxpbmsgfVxuICB9XG4gIHJldHVybiB7fVxufVxuXG4vKipcbiAqIGdldCB0aGUgc2NyaXB0dXJlIHNldHRpbmdzIG5lZWRlZCBmb3IgZmV0Y2ggLSBmb3IgT3JpZ0xhbmcsIFVMVCwgR0xUIHdpbGwgcmVwbGFjZSBvd25lciBhbmQgbGFuZ3VhZ2VJZCB3aXRoIGNvcnJlY3QgdmFsdWVzXG4gKiBAcGFyYW0ge3N0cmluZ30gYm9va0lkXG4gKiBAcGFyYW0ge29iamVjdH0gc2NyaXB0dXJlU2V0dGluZ3NfXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzTmV3VGVzdGFtZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gb3JpZ2luYWxSZXBvVXJsIC0gb3B0aW9uYWwgcGF0aCB0byByZXBvIGZvciBvcmlnaW5hbCBsYW5ndWFnZVxuICogQHBhcmFtIHtzdHJpbmd9IGN1cnJlbnRMYW5ndWFnZUlkIC0gb3B0aW9uYWwgb3Zlci1yaWRlIGZvciB0cmFuc2llbnQgY2FzZSB3aGVyZSBsYW5ndWFnZSBpbiBzY3JpcHR1cmUgc2V0dGluZ3MgaGF2ZSBub3QgeWV0IHVwZGF0ZWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50T3duZXIgLSBvcHRpb25hbCBvdmVyLXJpZGUgZm9yIHRyYW5zaWVudCBjYXNlIHdoZXJlIG93bmVyIGluIHNjcmlwdHVyZSBzZXR0aW5ncyBoYXZlIG5vdCB5ZXQgdXBkYXRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyhcbiAgYm9va0lkLCBzY3JpcHR1cmVTZXR0aW5nc18sIGlzTmV3VGVzdGFtZW50LFxuICBvcmlnaW5hbFJlcG9Vcmw9bnVsbCxcbiAgY3VycmVudExhbmd1YWdlSWQ9bnVsbCxcbiAgY3VycmVudE93bmVyPW51bGwsXG4pIHtcbiAgY29uc3Qgc2NyaXB0dXJlU2V0dGluZ3MgPSB7IC4uLnNjcmlwdHVyZVNldHRpbmdzXyB9XG4gIHNjcmlwdHVyZVNldHRpbmdzLmRpc2FibGVXb3JkUG9wb3ZlciA9IERJU0FCTEVfV09SRF9QT1BPVkVSXG4gIGNvbnN0IHJlc291cmNlSWQgPSBzY3JpcHR1cmVTZXR0aW5nc18ucmVzb3VyY2VJZFxuXG4gIGlmIChyZXNvdXJjZUlkID09PSBPUklHSU5BTF9TT1VSQ0UpIHtcbiAgICAvLyBzZWxlY3Qgb3JpZ2luYWwgbGFuZ3VhZ2UgQmlibGUgYmFzZWQgb24gd2hpY2ggdGVzdGFtZW50IHRoZSBib29rIGJlbG9uZ3NcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkID0gaXNOZXdUZXN0YW1lbnQgPyBOVF9PUklHX0xBTkcgOiBPVF9PUklHX0xBTkdcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUlkID0gaXNOZXdUZXN0YW1lbnRcbiAgICAgID8gTlRfT1JJR19MQU5HX0JJQkxFXG4gICAgICA6IE9UX09SSUdfTEFOR19CSUJMRVxuXG4gICAgaWYgKHNjcmlwdHVyZVNldHRpbmdzLm9yaWdpbmFsTGFuZ3VhZ2VPd25lcikge1xuICAgICAgc2NyaXB0dXJlU2V0dGluZ3Mub3duZXIgPSBzY3JpcHR1cmVTZXR0aW5ncy5vcmlnaW5hbExhbmd1YWdlT3duZXJcbiAgICB9XG5cbiAgICBpZiAob3JpZ2luYWxSZXBvVXJsKSB7IC8vIHVzZSB0aGlzIHVybCBpZiBkZWZpbmVkXG4gICAgICBjb25zdCB7IHNlcnZlciwgcmVzb3VyY2VMaW5rIH0gPSBzcGxpdFVybChvcmlnaW5hbFJlcG9VcmwpXG4gICAgICBzY3JpcHR1cmVTZXR0aW5ncy5zZXJ2ZXIgPSBzZXJ2ZXJcbiAgICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IHJlc291cmNlTGlua1xuICAgIH0gZWxzZSB7IC8vIGZhbGwgYmFjayB0byBhcHAgZGVmYXVsdHNcbiAgICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayhzY3JpcHR1cmVTZXR0aW5ncylcbiAgICB9XG4gICAgc2NyaXB0dXJlU2V0dGluZ3MuZGlzYWJsZVdvcmRQb3BvdmVyID0gZmFsc2VcbiAgfSBlbHNlIGlmIChyZXNvdXJjZUlkID09PSBUQVJHRVRfTElURVJBTCkge1xuICAgIGNsZWFudXBBY2NvdW50U2V0dGluZ3Moc2NyaXB0dXJlU2V0dGluZ3MsIGN1cnJlbnRPd25lciwgY3VycmVudExhbmd1YWdlSWQpXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VJZCA9IHNjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQgPT09ICdlbicgPyAndWx0JyA6ICdnbHQnXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZVNldHRpbmdzKVxuICB9IGVsc2UgaWYgKHJlc291cmNlSWQgPT09IFRBUkdFVF9TSU1QTElGSUVEKSB7XG4gICAgY2xlYW51cEFjY291bnRTZXR0aW5ncyhzY3JpcHR1cmVTZXR0aW5ncywgY3VycmVudE93bmVyLCBjdXJyZW50TGFuZ3VhZ2VJZClcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUlkID0gc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCA9PT0gJ2VuJyA/ICd1c3QnIDogJ2dzdCdcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlU2V0dGluZ3MpXG4gIH1cbiAgcmV0dXJuIHNjcmlwdHVyZVNldHRpbmdzXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY3JpcHR1cmVWZXJzaW9uU2V0dGluZ3Moe1xuICBsYWJlbCxcbiAgcmVzb3VyY2VMaW5rLFxuICBzZXRTY3JpcHR1cmUsXG4gIHNjcmlwdHVyZVZlcnNpb25IaXN0LFxufSkge1xuICBjb25zdCBoaXN0b3J5ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZ2V0TGF0ZXN0KClcbiAgbGV0IGluZGV4ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZmluZEl0ZW1JbmRleEJ5S2V5KGhpc3RvcnksICdyZXNvdXJjZUxpbmsnLCByZXNvdXJjZUxpbmspXG5cbiAgY29uc3Qgc2NyaXB0dXJlU2VsZWN0b3JDb25maWcgPSB7XG4gICAgbGFiZWwsIC8vIGxhYmVsIGZvciBjb21ib2JveFxuICAgIG9wdGlvbnM6IGhpc3RvcnksXG4gICAgY3VycmVudDogaW5kZXgsXG4gICAgYWxsb3dVc2VySW5wdXQ6IHRydWUsXG4gICAgb25DaGFuZ2U6ICh0aXRsZSwgaW5kZXgsIHZhbGlkYXRpb25DQj1udWxsKSA9PiB7XG4gICAgICBsZXQgaXRlbVxuXG4gICAgICBpZiAoKGluZGV4IDwgMCkgJiYgdGl0bGUpIHtcbiAgICAgICAgY29uc3QgbmV3SXRlbSA9IHtcbiAgICAgICAgICB1cmw6IHRpdGxlLFxuICAgICAgICAgIHRpdGxlLFxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGV4ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuYWRkSXRlbVRvSGlzdG9yeShuZXdJdGVtKVxuXG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgaXRlbSA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmdldExhdGVzdCgpW2luZGV4XVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpdGVtID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZ2V0SXRlbUJ5VGl0bGUodGl0bGUpXG4gICAgICB9XG5cbiAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgIHNldFNjcmlwdHVyZShpdGVtLCB2YWxpZGF0aW9uQ0IpXG4gICAgICB9XG4gICAgfSxcbiAgICBkZWxldGVJdGVtOiB0aXRsZSA9PiB7XG4gICAgICBjb25zdCBoaXN0b3J5ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZ2V0TGF0ZXN0KClcbiAgICAgIGNvbnN0IGRlbGV0ZUluZGV4ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZmluZEl0ZW1JbmRleEJ5S2V5KGhpc3RvcnksICd0aXRsZScsIHRpdGxlKVxuICAgICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QucmVtb3ZlSXRlbUJ5SW5kZXgoZGVsZXRlSW5kZXgpXG4gICAgfSxcbiAgfVxuXG4gIHJldHVybiBzY3JpcHR1cmVTZWxlY3RvckNvbmZpZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVwb1VybChyZXNvdXJjZUxpbms6IHN0cmluZywgc2VydmVyOiBzdHJpbmcsIGlzTlQ6IGJvb2xlYW4pOiBzdHJpbmcge1xuICBsZXQgcmVwb1VybFxuXG4gIHRyeSB7XG4gICAgbGV0IFtvd25lciwgbGFuZ3VhZ2VJZCwgcmVzb3VyY2VJZF0gPSByZXNvdXJjZUxpbmsuc3BsaXQoJy8nKVxuXG4gICAgc3dpdGNoIChyZXNvdXJjZUlkKSB7XG4gICAgY2FzZSBPUklHSU5BTF9TT1VSQ0U6XG4gICAgICBsYW5ndWFnZUlkID0gaXNOVCA/IE5UX09SSUdfTEFORyA6IE9UX09SSUdfTEFOR1xuICAgICAgcmVzb3VyY2VJZCA9IGlzTlRcbiAgICAgICAgPyBOVF9PUklHX0xBTkdfQklCTEVcbiAgICAgICAgOiBPVF9PUklHX0xBTkdfQklCTEVcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlIFRBUkdFVF9MSVRFUkFMOlxuICAgICAgcmVzb3VyY2VJZCA9IChsYW5ndWFnZUlkID09PSAnZW4nKSA/ICd1bHQnIDogJ2dsdCdcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlIFRBUkdFVF9TSU1QTElGSUVEOlxuICAgICAgcmVzb3VyY2VJZCA9IChsYW5ndWFnZUlkID09PSAnZW4nKSA/ICd1c3QnIDogJ2dzdCdcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIHJlcG9VcmwgPSBgJHtvd25lcn0vJHtsYW5ndWFnZUlkfV8ke3Jlc291cmNlSWR9YFxuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gcmVzb3VyY2VMaW5rIHdhcyBpbnZhbGlkXG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIHJldHVybiBgJHtzZXJ2ZXIgfHwgJyd9LyR7cmVwb1VybH1gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFcnJvck1lc3NhZ2VGb3JSZXNvdXJjZUxpbmsoXG4gIHJlc291cmNlTGluazogc3RyaW5nLFxuICBzZXJ2ZXI6IHN0cmluZyxcbiAgZXJyb3JDb2RlOiBzdHJpbmcsXG4gIGlzTlQ6IGJvb2xlYW4pOiBzdHJpbmdcbntcbiAgY29uc3QgcmVwb1VybCA9IGdldFJlcG9VcmwocmVzb3VyY2VMaW5rLCBzZXJ2ZXIsIGlzTlQpXG4gIGNvbnN0IGVycm9yTXNnID0gZXJyb3JDb2RlICsgcmVwb1VybFxuICByZXR1cm4gZXJyb3JNc2dcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlRGNzVXJsKHVybCkge1xuICBsZXQgdmFsaWRSZXBvUGF0aCA9IGZhbHNlXG4gIGxldCB2YWxpZFVybCA9IGZhbHNlXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJ0cyA9IHVybC5zcGxpdCgnLycpXG4gICAgY29uc3QgW3Byb3RvY29sLCAsIGhvc3QsIHVzZXIsIHJlcG9dID0gcGFydHNcbiAgICB2YWxpZFVybCA9IChwcm90b2NvbCA9PT0gJ2h0dHBzOicpXG4gICAgY29uc3QgaG9zdFBhcnRzID0gaG9zdCA/IGhvc3Quc3BsaXQoJy4nKSA6IFtdXG5cbiAgICBpZiAoaG9zdFBhcnRzLmxlbmd0aCA+PSAyKSB7XG4gICAgICBmb3IgKGxldCBwYXJ0IG9mIGhvc3RQYXJ0cykge1xuICAgICAgICBpZiAoIXBhcnQpIHtcbiAgICAgICAgICB2YWxpZFVybCA9IGZhbHNlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YWxpZFVybCA9IGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKCBwcm90b2NvbCAmJiBob3N0ICYmIHVzZXIgJiYgcmVwbyApIHtcbiAgICAgIGNvbnN0IFtsYW5ndWFnZUlkLCBwcm9qZWN0SWRdID0gcmVwby5zcGxpdCgnXycpXG4gICAgICB2YWxpZFJlcG9QYXRoID0gbGFuZ3VhZ2VJZCAmJiBwcm9qZWN0SWRcbiAgICB9XG4gIH0gY2F0Y2gge1xuICAgIGNvbnNvbGUubG9nKCdJbnZhbGlkIERDUyBVUkw6ICcgKyB1cmwpXG4gIH1cbiAgcmV0dXJuIHsgdmFsaWRVcmwsIHZhbGlkUmVwb1BhdGggfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VFcnJvck1lc3NhZ2UocmVzb3VyY2VTdGF0dXM6IG9iamVjdCkge1xuICBsZXQgbWVzc2FnZSA9ICcnXG5cbiAgaWYgKHJlc291cmNlU3RhdHVzW01BTklGRVNUX05PVF9MT0FERURfRVJST1JdKSB7XG4gICAgbWVzc2FnZSA9IE1BTklGRVNUX05PVF9GT1VORF9FUlJPUl9NU0dcbiAgfSBlbHNlIGlmIChyZXNvdXJjZVN0YXR1c1tJTlZBTElEX01BTklGRVNUX0VSUk9SXSkge1xuICAgIG1lc3NhZ2UgPSBNQU5JRkVTVF9JTlZBTElEX0VSUk9SX01TR1xuICB9IGVsc2UgaWYgKHJlc291cmNlU3RhdHVzW0NPTlRFTlRfTk9UX0ZPVU5EX0VSUk9SXSkge1xuICAgIG1lc3NhZ2UgPSBCT09LX05PVF9GT1VORF9FUlJPUl9NU0dcbiAgfSBlbHNlIGlmIChyZXNvdXJjZVN0YXR1c1tTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUl0pIHtcbiAgICBtZXNzYWdlID0gU0NSSVBUVVJFX05PVF9GT1VORF9FUlJPUl9NU0dcbiAgfVxuICByZXR1cm4gbWVzc2FnZVxufVxuXG4vKipcbiAqIGRlY29kZSByZXNvdXJjZSBzdGF0dXMgaW50byBzdHJpbmcuICBDdXJyZW50bHkgb25seSBFbmdsaXNoXG4gKiBAcGFyYW0gcmVzb3VyY2VTdGF0dXMgLSBvYmplY3QgdGhhdCBjb250YWlucyBzdGF0ZSBhbmQgZXJyb3JzIHRoYXQgYXJlIGRldGVjdGVkXG4gKiBAcGFyYW0gc2VydmVyIC0gY29udGFpbnMgdGhlIHNlcnZlciBiZWluZyB1c2VkXG4gKiBAcGFyYW0gcmVzb3VyY2VMaW5rIC0gcGF0aCB0byByZXBvIG9uIHNlcnZlclxuICogQHBhcmFtIGlzTlQgLSB0cnVlIGlmIE5UIGJvb2tcbiAqIEByZXR1cm4gZW1wdHkgc3RyaW5nIGlmIG5vIGVycm9yLCBlbHNlIHJldHVybnMgdXNlciBlcnJvciBtZXNzYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZU1lc3NhZ2UocmVzb3VyY2VTdGF0dXM6IG9iamVjdCwgc2VydmVyOiBzdHJpbmcsIHJlc291cmNlTGluazogc3RyaW5nLCBpc05UOiBib29sZWFuKSB7XG4gIGxldCBtZXNzYWdlID0gJydcblxuICBpZiAocmVzb3VyY2VTdGF0dXNbTE9BRElOR19TVEFURV0pIHtcbiAgICBtZXNzYWdlID0gTE9BRElOR19SRVNPVVJDRVxuICB9IGVsc2Uge1xuICAgIG1lc3NhZ2UgPSBnZXRSZXNvdXJjZUVycm9yTWVzc2FnZShyZXNvdXJjZVN0YXR1cylcblxuICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICBtZXNzYWdlID0gZ2V0RXJyb3JNZXNzYWdlRm9yUmVzb3VyY2VMaW5rKHJlc291cmNlTGluaywgc2VydmVyLCBtZXNzYWdlLCBpc05UKVxuICAgIH1cbiAgfVxuICByZXR1cm4gbWVzc2FnZVxufVxuXG4vKipcbiAqIGdlbmVyYXRlIHJlc291cmNlIHN0cmluZ1xuICogQHBhcmFtIG93bmVyXG4gKiBAcGFyYW0gbGFuZ3VhZ2VJZFxuICogQHBhcmFtIHByb2plY3RJZFxuICogQHBhcmFtIHJlZlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VMaW5rU3BlY2lmaWMob3duZXI6IHN0cmluZywgbGFuZ3VhZ2VJZDogc3RyaW5nLCBwcm9qZWN0SWQ6IHN0cmluZywgcmVmOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGBhcGkvdjEvcmVwb3MvJHtvd25lcn0vJHtsYW5ndWFnZUlkfV8ke3Byb2plY3RJZH0vY29udGVudHM/cmVmPSR7cmVmfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpeE9jY3VycmVuY2Uob2NjdXJyZW5jZSkge1xuICBpZiAodHlwZW9mIG9jY3VycmVuY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHBhcnNlSW50KG9jY3VycmVuY2UpXG4gIH1cbiAgcmV0dXJuIG9jY3VycmVuY2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFudXBWZXJzZU9iamVjdHModmVyc2VPYmplY3RzKSB7XG4gIGlmICh2ZXJzZU9iamVjdHM/Lmxlbmd0aCkge1xuICAgIGNvbnN0IHZlcnNlT2JqZWN0c18gPSBbLi4udmVyc2VPYmplY3RzXVxuXG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB2ZXJzZU9iamVjdHNfLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgY29uc3Qgdm8gPSB2ZXJzZU9iamVjdHNfW2ldXG5cbiAgICAgIGlmICh2by50eXBlID09PSAnd29yZCcgJiYgKHZvLm9jY3VycmVuY2UgfHwgdm8ub2NjdXJyZW5jZXMpKSB7XG4gICAgICAgIGNvbnN0IHdvcmQgPSB7IC4uLnZvIH1cblxuICAgICAgICBpZiAodm8ub2NjdXJyZW5jZSkge1xuICAgICAgICAgIHdvcmQub2NjdXJyZW5jZSA9IGZpeE9jY3VycmVuY2Uodm8ub2NjdXJyZW5jZSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2by5vY2N1cnJlbmNlcykge1xuICAgICAgICAgIHdvcmQub2NjdXJyZW5jZXMgPSBmaXhPY2N1cnJlbmNlKHZvLm9jY3VycmVuY2VzKVxuICAgICAgICB9XG4gICAgICAgIHZlcnNlT2JqZWN0c19baV0gPSB3b3JkXG4gICAgICB9IGVsc2UgaWYgKHZvLmNoaWxkcmVuKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gY2xlYW51cFZlcnNlT2JqZWN0cyh2by5jaGlsZHJlbilcbiAgICAgICAgY29uc3QgbmV3Vm8gPSB7XG4gICAgICAgICAgLi4udm8sXG4gICAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIH1cbiAgICAgICAgdmVyc2VPYmplY3RzX1tpXSA9IG5ld1ZvXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2ZXJzZU9iamVjdHNfXG4gIH1cbiAgcmV0dXJuIFtdXG59XG5cbi8qKlxuICogdGFrZSB0aGUgZmlsZW5hbWUgb2YgdGhlIGJvb2sgKGUuZy4gXCI1Ny1USVQudXNmbVwiKSBhbmQgcGFyc2Ugb3V0IHRoZSBib29rSWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlbmFtZVxuICogQHJldHVybiB7c3RyaW5nfSBib29rSWQgaWYgZm91bmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJvb2tOYW1lRnJvbVVzZm1GaWxlTmFtZShmaWxlbmFtZSkge1xuICBjb25zdCByZWdleCA9IC9eKC4qPylcXC51c2ZtL1xuICBjb25zdCBib29rTmFtZSA9IGZpbGVuYW1lPy5tYXRjaChyZWdleCk/LlsxXVxuICByZXR1cm4gYm9va05hbWVcbn1cblxuLyoqXG4gKiBwYXJzZSB0aGUgVVNGTSB0byBmaW5kIGJvb2tJRCBpbiBoZWFkZXJcbiAqIEBwYXJhbSB7c3RyaW5nfSBiaWJsZVVzZm1cbiAqIEByZXR1cm4ge3N0cmluZ30gYm9va0lkIGlmIGZvdW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRCaWJsZUlkRnJvbVVzZm1Db250ZW50SUQoYmlibGVVc2ZtKSB7XG4gIGNvbnN0IGlkSGVhZGVyID0gJ1xcXFxpZCAnXG4gIGNvbnN0IHBvc0lkID0gYmlibGVVc2ZtPy5pbmRleE9mKGlkSGVhZGVyKVxuXG4gIGlmIChwb3NJZCA+PSAwKSB7XG4gICAgY29uc3QgaWRTdGFydCA9IHBvc0lkICsgaWRIZWFkZXIubGVuZ3RoXG4gICAgbGV0IGhlYWRlcklkID0gYmlibGVVc2ZtPy5zdWJzdHJpbmcoIGlkU3RhcnQsIGlkU3RhcnQgKyAxMDApLnRyaW0oKVxuICAgIGxldCBoZWFkZXJCb29rSUQgPSBudWxsXG5cbiAgICBpZiAoaGVhZGVySWQ/Lmxlbmd0aCA+IDEpIHtcbiAgICAgIGhlYWRlckJvb2tJRCA9IGhlYWRlcklkPy5zcGxpdCgnICcpXG4gICAgICBoZWFkZXJCb29rSUQgPSBoZWFkZXJCb29rSUQ/LlswXS50cmltKClcbiAgICB9XG4gICAgcmV0dXJuIGhlYWRlckJvb2tJRFxuICB9XG4gIHJldHVybiBudWxsXG59XG5cbi8qKlxuICogZGV0ZXJtaW5lcyBpZiB0aGVyZSBhcmUgYW55IHdvcmRzIGluIHZlcnNlT2JqZWN0c1xuICogQHBhcmFtIHtvYmplY3RbXX0gdmVyc2VPYmplY3RzIC0gYXJyYXkgb2YgdmVyc2VPYmplY3RzIHRvIHNlYXJjaCBmb3Igd29yZHNcbiAqIEByZXR1cm4ge2Jvb2xlYW59IHRydWUgaWYgd29yZCBpcyBmb3VuZFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyc2VPYmplY3RzSGF2ZVdvcmRzKHZlcnNlT2JqZWN0czpvYmplY3RbXSkge1xuICBpZiAodmVyc2VPYmplY3RzPy5sZW5ndGgpIHtcbiAgICBmb3IgKGNvbnN0IHZvIG9mIHZlcnNlT2JqZWN0cykge1xuICAgICAgaWYgKHZvWyd0eXBlJ10gPT09ICd3b3JkJykge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfSBlbHNlIGlmICh2b1snY2hpbGRyZW4nXSkge1xuICAgICAgICBjb25zdCBmb3VuZFdvcmRzID0gdmVyc2VPYmplY3RzSGF2ZVdvcmRzKHZvWydjaGlsZHJlbiddKVxuXG4gICAgICAgIGlmIChmb3VuZFdvcmRzKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfVxu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
468
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDT05URU5UX05PVF9GT1VORF9FUlJPUiIsIklOVkFMSURfTUFOSUZFU1RfRVJST1IiLCJMT0FESU5HX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsIlNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SIiwiQk9PS19OT1RfRk9VTkRfRVJST1JfTVNHIiwiTE9BRElOR19SRVNPVVJDRSIsIk1BTklGRVNUX0lOVkFMSURfRVJST1JfTVNHIiwiTUFOSUZFU1RfTk9UX0ZPVU5EX0VSUk9SX01TRyIsIk5UX09SSUdfTEFORyIsIk5UX09SSUdfTEFOR19CSUJMRSIsIk9SSUdJTkFMX1NPVVJDRSIsIk9UX09SSUdfTEFORyIsIk9UX09SSUdfTEFOR19CSUJMRSIsIlNDUklQVFVSRV9OT1RfRk9VTkRfRVJST1JfTVNHIiwiVEFSR0VUX0xJVEVSQUwiLCJUQVJHRVRfU0lNUExJRklFRCIsIlZlcnNlT2JqZWN0c1R5cGUiLCJESVNBQkxFX1dPUkRfUE9QT1ZFUiIsImdldFJlc291cmNlTGluayIsInNjcmlwdHVyZSIsInJlZiIsImJyYW5jaCIsImNvbmNhdCIsIm93bmVyIiwibGFuZ3VhZ2VJZCIsInJlc291cmNlSWQiLCJwYXJzZVJlc291cmNlTGluayIsInJlc291cmNlTGluayIsIl9yZXNvdXJjZUxpbmskc3BsaXQiLCJzcGxpdCIsIl9yZXNvdXJjZUxpbmskc3BsaXQyIiwiX3NsaWNlZFRvQXJyYXkiLCJnZXRTY3JpcHR1cmVPYmplY3QiLCJfcmVmIiwidGl0bGUiLCJzZXJ2ZXIiLCJkaXNhYmxlV29yZFBvcG92ZXIiLCJvcmlnaW5hbExhbmd1YWdlT3duZXIiLCJnZXRWZXJzZURhdGFGcm9tU2NyaXBDb25maWciLCJzY3JpcHR1cmVDb25maWciLCJ2ZXJzZU51bSIsIl9zY3JpcHR1cmVDb25maWckdmVycyIsInZlcnNlc0ZvclJlZiIsImZpbmQiLCJ2ZXJzZVJlZiIsInZlcnNlIiwiaXNPcmlnaW5hbEJpYmxlIiwiaXNPcmlnIiwiY2xlYW51cEFjY291bnRTZXR0aW5ncyIsInNjcmlwdHVyZVNldHRpbmdzIiwiY3VycmVudE93bmVyIiwiY3VycmVudExhbmd1YWdlSWQiLCJzcGxpdFVybCIsIm9yaWdpbmFsUmVwb1VybCIsInVybCIsIlVSTCIsIm9yaWdpbiIsInBhdGhuYW1lIiwic2VhcmNoIiwiZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyIsImJvb2tJZCIsInNjcmlwdHVyZVNldHRpbmdzXyIsImlzTmV3VGVzdGFtZW50IiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiX29iamVjdFNwcmVhZCIsIl9zcGxpdFVybCIsImdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyIsIl9yZWYyIiwibGFiZWwiLCJzZXRTY3JpcHR1cmUiLCJzY3JpcHR1cmVWZXJzaW9uSGlzdCIsImhpc3RvcnkiLCJnZXRMYXRlc3QiLCJpbmRleCIsImZpbmRJdGVtSW5kZXhCeUtleSIsInNjcmlwdHVyZVNlbGVjdG9yQ29uZmlnIiwib3B0aW9ucyIsImN1cnJlbnQiLCJhbGxvd1VzZXJJbnB1dCIsIm9uQ2hhbmdlIiwidmFsaWRhdGlvbkNCIiwiaXRlbSIsIm5ld0l0ZW0iLCJhZGRJdGVtVG9IaXN0b3J5IiwiZ2V0SXRlbUJ5VGl0bGUiLCJkZWxldGVJdGVtIiwiZGVsZXRlSW5kZXgiLCJyZW1vdmVJdGVtQnlJbmRleCIsImdldFJlcG9VcmwiLCJpc05UIiwicmVwb1VybCIsIl9yZXNvdXJjZUxpbmskc3BsaXQzIiwiX3Jlc291cmNlTGluayRzcGxpdDQiLCJlIiwiZ2V0RXJyb3JNZXNzYWdlRm9yUmVzb3VyY2VMaW5rIiwiZXJyb3JDb2RlIiwiZXJyb3JNc2ciLCJ2YWxpZGF0ZURjc1VybCIsInZhbGlkUmVwb1BhdGgiLCJ2YWxpZFVybCIsInBhcnRzIiwiX3BhcnRzIiwicHJvdG9jb2wiLCJob3N0IiwidXNlciIsInJlcG8iLCJob3N0UGFydHMiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9zdGVwIiwicyIsIm4iLCJkb25lIiwicGFydCIsInZhbHVlIiwiZXJyIiwiZiIsIl9yZXBvJHNwbGl0IiwiX3JlcG8kc3BsaXQyIiwicHJvamVjdElkIiwiX3VudXNlZCIsImNvbnNvbGUiLCJsb2ciLCJnZXRSZXNvdXJjZUVycm9yTWVzc2FnZSIsInJlc291cmNlU3RhdHVzIiwibWVzc2FnZSIsImdldFJlc291cmNlTWVzc2FnZSIsImdldFJlc291cmNlTGlua1NwZWNpZmljIiwiZml4T2NjdXJyZW5jZSIsIm9jY3VycmVuY2UiLCJwYXJzZUludCIsImNsZWFudXBWZXJzZU9iamVjdHMiLCJ2ZXJzZU9iamVjdHMiLCJ2ZXJzZU9iamVjdHNfIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiaSIsImwiLCJ2byIsInR5cGUiLCJvY2N1cnJlbmNlcyIsIndvcmQiLCJjaGlsZHJlbiIsIm5ld1ZvIiwiZ2V0Qm9va05hbWVGcm9tVXNmbUZpbGVOYW1lIiwiZmlsZW5hbWUiLCJfZmlsZW5hbWUkbWF0Y2giLCJyZWdleCIsImJvb2tOYW1lIiwibWF0Y2giLCJnZXRCaWJsZUlkRnJvbVVzZm1Db250ZW50SUQiLCJiaWJsZVVzZm0iLCJpZEhlYWRlciIsInBvc0lkIiwiaW5kZXhPZiIsImlkU3RhcnQiLCJoZWFkZXJJZCIsInN1YnN0cmluZyIsInRyaW0iLCJoZWFkZXJCb29rSUQiLCJfaGVhZGVyQm9va0lEIiwidmVyc2VPYmplY3RzSGF2ZVdvcmRzIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsImZvdW5kV29yZHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvU2NyaXB0dXJlU2V0dGluZ3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ09OVEVOVF9OT1RfRk9VTkRfRVJST1IsXG4gIElOVkFMSURfTUFOSUZFU1RfRVJST1IsXG4gIExPQURJTkdfU1RBVEUsXG4gIE1BTklGRVNUX05PVF9MT0FERURfRVJST1IsXG4gIFNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SLFxufSBmcm9tICd0cmFuc2xhdGlvbi1oZWxwcy1yY2wnXG5pbXBvcnQge1xuICBCT09LX05PVF9GT1VORF9FUlJPUl9NU0csXG4gIExPQURJTkdfUkVTT1VSQ0UsXG4gIE1BTklGRVNUX0lOVkFMSURfRVJST1JfTVNHLFxuICBNQU5JRkVTVF9OT1RfRk9VTkRfRVJST1JfTVNHLFxuICBOVF9PUklHX0xBTkcsXG4gIE5UX09SSUdfTEFOR19CSUJMRSxcbiAgT1JJR0lOQUxfU09VUkNFLFxuICBPVF9PUklHX0xBTkcsXG4gIE9UX09SSUdfTEFOR19CSUJMRSxcbiAgU0NSSVBUVVJFX05PVF9GT1VORF9FUlJPUl9NU0csXG4gIFRBUkdFVF9MSVRFUkFMLFxuICBUQVJHRVRfU0lNUExJRklFRCxcbn0gZnJvbSAnLi9jb21tb24nXG5pbXBvcnQge1ZlcnNlT2JqZWN0c1R5cGV9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IERJU0FCTEVfV09SRF9QT1BPVkVSID0gdHJ1ZSAvLyBkaXNhYmxlIHdvcmQgcG9wb3ZlciBmb3IgZXZlcnkgc2NyaXB0dXJlIHBhbmUgYnV0IG9yaWdpbmFsIGxhbmd1YWdlc1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZSkge1xuICBjb25zdCByZWYgPSBzY3JpcHR1cmUucmVmIHx8IHNjcmlwdHVyZS5icmFuY2hcbiAgcmV0dXJuIGAke3NjcmlwdHVyZS5vd25lcn0vJHtzY3JpcHR1cmUubGFuZ3VhZ2VJZH0vJHtzY3JpcHR1cmUucmVzb3VyY2VJZH0vJHtyZWZ9YFxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VSZXNvdXJjZUxpbmsocmVzb3VyY2VMaW5rKSB7XG4gIGNvbnN0IFtvd25lciwgbGFuZ3VhZ2VJZCwgcmVzb3VyY2VJZCwgcmVmXSA9IHJlc291cmNlTGluay5zcGxpdCgnLycpXG4gIHJldHVybiB7XG4gICAgb3duZXIsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICByZXNvdXJjZUlkLFxuICAgIHJlZixcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NyaXB0dXJlT2JqZWN0KHtcbiAgdGl0bGUsXG4gIHNlcnZlcixcbiAgb3duZXIsXG4gIHJlZixcbiAgbGFuZ3VhZ2VJZCxcbiAgcmVzb3VyY2VJZCxcbiAgcmVzb3VyY2VMaW5rLFxuICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbn0pIHtcbiAgY29uc3Qgc2NyaXB0dXJlID0ge1xuICAgIHRpdGxlLFxuICAgIHNlcnZlcixcbiAgICBvd25lcixcbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gICAgcmVmLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgcmVzb3VyY2VJZCxcbiAgICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gICAgcmVzb3VyY2VMaW5rLFxuICB9XG5cbiAgaWYgKCFyZXNvdXJjZUxpbmspIHtcbiAgICBzY3JpcHR1cmUucmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHtcbiAgICAgIG93bmVyLFxuICAgICAgcmVmLFxuICAgICAgbGFuZ3VhZ2VJZCxcbiAgICAgIHJlc291cmNlSWQsXG4gICAgfSlcbiAgfVxuICByZXR1cm4gc2NyaXB0dXJlXG59XG5cbi8qKlxuICogcmV0dXJuIHZlcnNlIGRhdGEgZ2l2ZW4gYSBzY3JpcHR1cmUgY29uZmlnIGFuZCB2ZXJzZSBudW1iZXJcbiAqIEBwYXJhbSBzY3JpcHR1cmVDb25maWdcbiAqIEBwYXJhbSB2ZXJzZU51bVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVyc2VEYXRhRnJvbVNjcmlwQ29uZmlnKHNjcmlwdHVyZUNvbmZpZywgdmVyc2VOdW0pIHtcbiAgcmV0dXJuIHNjcmlwdHVyZUNvbmZpZz8udmVyc2VzRm9yUmVmPy5maW5kKFxuICAgIHZlcnNlUmVmID0+IHZlcnNlUmVmLnZlcnNlID09PSB2ZXJzZU51bVxuICApXG59XG5cbi8qKlxuICogcmV0dXJuIHRydWUgaWYgcmVzb3VyY2UgaXMgYW4gb3JpZ2luYWwgbGFuZ3VhZ2UgYmlibGVcbiAqIEBwYXJhbSByZXNvdXJjZUlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc09yaWdpbmFsQmlibGUocmVzb3VyY2VJZCkge1xuICBjb25zdCBpc09yaWcgPSAoKHJlc291cmNlSWQgPT09IE5UX09SSUdfTEFOR19CSUJMRSkgfHwgKHJlc291cmNlSWQgPT09IE9UX09SSUdfTEFOR19CSUJMRSkgfHwgKHJlc291cmNlSWQgPT09IE9SSUdJTkFMX1NPVVJDRSkpXG4gIHJldHVybiBpc09yaWdcbn1cblxuLyoqXG4gKiBtYWtlIHN1cmUgc2NyaXB0dXJlU2V0dGluZ3MgYXJlIHVwIHRvIGRhdGUgd2l0aCBjdXJyZW50IG93bmVyIGFuZCBsYW5ndWFnZVxuICogQHBhcmFtIHtvYmplY3R9IHNjcmlwdHVyZVNldHRpbmdzXG4gKiBAcGFyYW0ge3N0cmluZ30gY3VycmVudE93bmVyIC0gb3B0aW9uYWwgb3Zlci1yaWRlIGZvciB0cmFuc2llbnQgY2FzZSB3aGVyZSBvd25lciBpbiBzY3JpcHR1cmUgc2V0dGluZ3MgaGF2ZSBub3QgeWV0IHVwZGF0ZWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50TGFuZ3VhZ2VJZCAtIG9wdGlvbmFsIG92ZXItcmlkZSBmb3IgdHJhbnNpZW50IGNhc2Ugd2hlcmUgbGFuZ3VhZ2UgaW4gc2NyaXB0dXJlIHNldHRpbmdzIGhhdmUgbm90IHlldCB1cGRhdGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbnVwQWNjb3VudFNldHRpbmdzKHNjcmlwdHVyZVNldHRpbmdzOiBhbnksIGN1cnJlbnRPd25lcjogYW55LCBjdXJyZW50TGFuZ3VhZ2VJZDogYW55KSB7XG4gIGlmIChjdXJyZW50T3duZXIgJiYgKGN1cnJlbnRPd25lciAhPT0gc2NyaXB0dXJlU2V0dGluZ3Mub3duZXIpKSB7IC8vIGlmIG93bmVyIGNoYW5nZWQsIHVwZGF0ZSBzY3JpcHR1cmVTZXR0aW5nc1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLm93bmVyID0gY3VycmVudE93bmVyXG4gIH1cblxuICBpZiAoY3VycmVudExhbmd1YWdlSWQgJiYgKGN1cnJlbnRMYW5ndWFnZUlkICE9PSBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkKSkgeyAvLyBpZiBsYW5ndWFnZSBjaGFuZ2VkLCB1cGRhdGUgc2NyaXB0dXJlU2V0dGluZ3NcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkID0gY3VycmVudExhbmd1YWdlSWRcbiAgfVxufVxuXG4vKipcbiAqIHNlcGFyYXRlIFVSTCBpbnRvIHNlcnZlciBhbmQgcmVzb3VyY2UgbGlua1xuICogQHBhcmFtIHtzdHJpbmd9IG9yaWdpbmFsUmVwb1VybFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3BsaXRVcmwob3JpZ2luYWxSZXBvVXJsKSB7XG4gIGlmIChvcmlnaW5hbFJlcG9VcmwpIHtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKG9yaWdpbmFsUmVwb1VybClcbiAgICBjb25zdCBzZXJ2ZXIgPSB1cmwub3JpZ2luXG4gICAgY29uc3QgcmVzb3VyY2VMaW5rID0gdXJsLnBhdGhuYW1lICsgKHVybC5zZWFyY2ggfHwgJycpXG4gICAgcmV0dXJuIHsgc2VydmVyLCByZXNvdXJjZUxpbmsgfVxuICB9XG4gIHJldHVybiB7fVxufVxuXG4vKipcbiAqIGdldCB0aGUgc2NyaXB0dXJlIHNldHRpbmdzIG5lZWRlZCBmb3IgZmV0Y2ggLSBmb3IgT3JpZ0xhbmcsIFVMVCwgR0xUIHdpbGwgcmVwbGFjZSBvd25lciBhbmQgbGFuZ3VhZ2VJZCB3aXRoIGNvcnJlY3QgdmFsdWVzXG4gKiBAcGFyYW0ge3N0cmluZ30gYm9va0lkXG4gKiBAcGFyYW0ge29iamVjdH0gc2NyaXB0dXJlU2V0dGluZ3NfXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzTmV3VGVzdGFtZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gb3JpZ2luYWxSZXBvVXJsIC0gb3B0aW9uYWwgcGF0aCB0byByZXBvIGZvciBvcmlnaW5hbCBsYW5ndWFnZVxuICogQHBhcmFtIHtzdHJpbmd9IGN1cnJlbnRMYW5ndWFnZUlkIC0gb3B0aW9uYWwgb3Zlci1yaWRlIGZvciB0cmFuc2llbnQgY2FzZSB3aGVyZSBsYW5ndWFnZSBpbiBzY3JpcHR1cmUgc2V0dGluZ3MgaGF2ZSBub3QgeWV0IHVwZGF0ZWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50T3duZXIgLSBvcHRpb25hbCBvdmVyLXJpZGUgZm9yIHRyYW5zaWVudCBjYXNlIHdoZXJlIG93bmVyIGluIHNjcmlwdHVyZSBzZXR0aW5ncyBoYXZlIG5vdCB5ZXQgdXBkYXRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyhcbiAgYm9va0lkLCBzY3JpcHR1cmVTZXR0aW5nc18sIGlzTmV3VGVzdGFtZW50LFxuICBvcmlnaW5hbFJlcG9Vcmw9bnVsbCxcbiAgY3VycmVudExhbmd1YWdlSWQ9bnVsbCxcbiAgY3VycmVudE93bmVyPW51bGwsXG4pIHtcbiAgY29uc3Qgc2NyaXB0dXJlU2V0dGluZ3MgPSB7IC4uLnNjcmlwdHVyZVNldHRpbmdzXyB9XG4gIHNjcmlwdHVyZVNldHRpbmdzLmRpc2FibGVXb3JkUG9wb3ZlciA9IERJU0FCTEVfV09SRF9QT1BPVkVSXG4gIGNvbnN0IHJlc291cmNlSWQgPSBzY3JpcHR1cmVTZXR0aW5nc18ucmVzb3VyY2VJZFxuXG4gIGlmIChyZXNvdXJjZUlkID09PSBPUklHSU5BTF9TT1VSQ0UpIHtcbiAgICAvLyBzZWxlY3Qgb3JpZ2luYWwgbGFuZ3VhZ2UgQmlibGUgYmFzZWQgb24gd2hpY2ggdGVzdGFtZW50IHRoZSBib29rIGJlbG9uZ3NcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkID0gaXNOZXdUZXN0YW1lbnQgPyBOVF9PUklHX0xBTkcgOiBPVF9PUklHX0xBTkdcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUlkID0gaXNOZXdUZXN0YW1lbnRcbiAgICAgID8gTlRfT1JJR19MQU5HX0JJQkxFXG4gICAgICA6IE9UX09SSUdfTEFOR19CSUJMRVxuXG4gICAgaWYgKHNjcmlwdHVyZVNldHRpbmdzLm9yaWdpbmFsTGFuZ3VhZ2VPd25lcikge1xuICAgICAgc2NyaXB0dXJlU2V0dGluZ3Mub3duZXIgPSBzY3JpcHR1cmVTZXR0aW5ncy5vcmlnaW5hbExhbmd1YWdlT3duZXJcbiAgICB9XG5cbiAgICBpZiAob3JpZ2luYWxSZXBvVXJsKSB7IC8vIHVzZSB0aGlzIHVybCBpZiBkZWZpbmVkXG4gICAgICBjb25zdCB7IHNlcnZlciwgcmVzb3VyY2VMaW5rIH0gPSBzcGxpdFVybChvcmlnaW5hbFJlcG9VcmwpXG4gICAgICBzY3JpcHR1cmVTZXR0aW5ncy5zZXJ2ZXIgPSBzZXJ2ZXJcbiAgICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IHJlc291cmNlTGlua1xuICAgIH0gZWxzZSB7IC8vIGZhbGwgYmFjayB0byBhcHAgZGVmYXVsdHNcbiAgICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayhzY3JpcHR1cmVTZXR0aW5ncylcbiAgICB9XG4gICAgc2NyaXB0dXJlU2V0dGluZ3MuZGlzYWJsZVdvcmRQb3BvdmVyID0gZmFsc2VcbiAgfSBlbHNlIGlmIChyZXNvdXJjZUlkID09PSBUQVJHRVRfTElURVJBTCkge1xuICAgIGNsZWFudXBBY2NvdW50U2V0dGluZ3Moc2NyaXB0dXJlU2V0dGluZ3MsIGN1cnJlbnRPd25lciwgY3VycmVudExhbmd1YWdlSWQpXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VJZCA9IHNjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQgPT09ICdlbicgPyAndWx0JyA6ICdnbHQnXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZVNldHRpbmdzKVxuICB9IGVsc2UgaWYgKHJlc291cmNlSWQgPT09IFRBUkdFVF9TSU1QTElGSUVEKSB7XG4gICAgY2xlYW51cEFjY291bnRTZXR0aW5ncyhzY3JpcHR1cmVTZXR0aW5ncywgY3VycmVudE93bmVyLCBjdXJyZW50TGFuZ3VhZ2VJZClcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUlkID0gc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCA9PT0gJ2VuJyA/ICd1c3QnIDogJ2dzdCdcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlU2V0dGluZ3MpXG4gIH1cbiAgcmV0dXJuIHNjcmlwdHVyZVNldHRpbmdzXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY3JpcHR1cmVWZXJzaW9uU2V0dGluZ3Moe1xuICBsYWJlbCxcbiAgcmVzb3VyY2VMaW5rLFxuICBzZXRTY3JpcHR1cmUsXG4gIHNjcmlwdHVyZVZlcnNpb25IaXN0LFxufSkge1xuICBjb25zdCBoaXN0b3J5ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZ2V0TGF0ZXN0KClcbiAgbGV0IGluZGV4ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZmluZEl0ZW1JbmRleEJ5S2V5KGhpc3RvcnksICdyZXNvdXJjZUxpbmsnLCByZXNvdXJjZUxpbmspXG5cbiAgY29uc3Qgc2NyaXB0dXJlU2VsZWN0b3JDb25maWcgPSB7XG4gICAgbGFiZWwsIC8vIGxhYmVsIGZvciBjb21ib2JveFxuICAgIG9wdGlvbnM6IGhpc3RvcnksXG4gICAgY3VycmVudDogaW5kZXgsXG4gICAgYWxsb3dVc2VySW5wdXQ6IHRydWUsXG4gICAgb25DaGFuZ2U6ICh0aXRsZSwgaW5kZXgsIHZhbGlkYXRpb25DQj1udWxsKSA9PiB7XG4gICAgICBsZXQgaXRlbVxuXG4gICAgICBpZiAoKGluZGV4IDwgMCkgJiYgdGl0bGUpIHtcbiAgICAgICAgY29uc3QgbmV3SXRlbSA9IHtcbiAgICAgICAgICB1cmw6IHRpdGxlLFxuICAgICAgICAgIHRpdGxlLFxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGV4ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuYWRkSXRlbVRvSGlzdG9yeShuZXdJdGVtKVxuXG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgaXRlbSA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmdldExhdGVzdCgpW2luZGV4XVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpdGVtID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZ2V0SXRlbUJ5VGl0bGUodGl0bGUpXG4gICAgICB9XG5cbiAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgIHNldFNjcmlwdHVyZShpdGVtLCB2YWxpZGF0aW9uQ0IpXG4gICAgICB9XG4gICAgfSxcbiAgICBkZWxldGVJdGVtOiB0aXRsZSA9PiB7XG4gICAgICBjb25zdCBoaXN0b3J5ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZ2V0TGF0ZXN0KClcbiAgICAgIGNvbnN0IGRlbGV0ZUluZGV4ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZmluZEl0ZW1JbmRleEJ5S2V5KGhpc3RvcnksICd0aXRsZScsIHRpdGxlKVxuICAgICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QucmVtb3ZlSXRlbUJ5SW5kZXgoZGVsZXRlSW5kZXgpXG4gICAgfSxcbiAgfVxuXG4gIHJldHVybiBzY3JpcHR1cmVTZWxlY3RvckNvbmZpZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVwb1VybChyZXNvdXJjZUxpbms6IHN0cmluZywgc2VydmVyOiBzdHJpbmcsIGlzTlQ6IGJvb2xlYW4pOiBzdHJpbmcge1xuICBsZXQgcmVwb1VybFxuXG4gIHRyeSB7XG4gICAgbGV0IFtvd25lciwgbGFuZ3VhZ2VJZCwgcmVzb3VyY2VJZF0gPSByZXNvdXJjZUxpbmsuc3BsaXQoJy8nKVxuXG4gICAgc3dpdGNoIChyZXNvdXJjZUlkKSB7XG4gICAgY2FzZSBPUklHSU5BTF9TT1VSQ0U6XG4gICAgICBsYW5ndWFnZUlkID0gaXNOVCA/IE5UX09SSUdfTEFORyA6IE9UX09SSUdfTEFOR1xuICAgICAgcmVzb3VyY2VJZCA9IGlzTlRcbiAgICAgICAgPyBOVF9PUklHX0xBTkdfQklCTEVcbiAgICAgICAgOiBPVF9PUklHX0xBTkdfQklCTEVcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlIFRBUkdFVF9MSVRFUkFMOlxuICAgICAgcmVzb3VyY2VJZCA9IChsYW5ndWFnZUlkID09PSAnZW4nKSA/ICd1bHQnIDogJ2dsdCdcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlIFRBUkdFVF9TSU1QTElGSUVEOlxuICAgICAgcmVzb3VyY2VJZCA9IChsYW5ndWFnZUlkID09PSAnZW4nKSA/ICd1c3QnIDogJ2dzdCdcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIHJlcG9VcmwgPSBgJHtvd25lcn0vJHtsYW5ndWFnZUlkfV8ke3Jlc291cmNlSWR9YFxuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gcmVzb3VyY2VMaW5rIHdhcyBpbnZhbGlkXG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIHJldHVybiBgJHtzZXJ2ZXIgfHwgJyd9LyR7cmVwb1VybH1gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFcnJvck1lc3NhZ2VGb3JSZXNvdXJjZUxpbmsoXG4gIHJlc291cmNlTGluazogc3RyaW5nLFxuICBzZXJ2ZXI6IHN0cmluZyxcbiAgZXJyb3JDb2RlOiBzdHJpbmcsXG4gIGlzTlQ6IGJvb2xlYW4pOiBzdHJpbmdcbntcbiAgY29uc3QgcmVwb1VybCA9IGdldFJlcG9VcmwocmVzb3VyY2VMaW5rLCBzZXJ2ZXIsIGlzTlQpXG4gIGNvbnN0IGVycm9yTXNnID0gZXJyb3JDb2RlICsgcmVwb1VybFxuICByZXR1cm4gZXJyb3JNc2dcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlRGNzVXJsKHVybCkge1xuICBsZXQgdmFsaWRSZXBvUGF0aCA9IGZhbHNlXG4gIGxldCB2YWxpZFVybCA9IGZhbHNlXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJ0cyA9IHVybC5zcGxpdCgnLycpXG4gICAgY29uc3QgW3Byb3RvY29sLCAsIGhvc3QsIHVzZXIsIHJlcG9dID0gcGFydHNcbiAgICB2YWxpZFVybCA9IChwcm90b2NvbCA9PT0gJ2h0dHBzOicpXG4gICAgY29uc3QgaG9zdFBhcnRzID0gaG9zdCA/IGhvc3Quc3BsaXQoJy4nKSA6IFtdXG5cbiAgICBpZiAoaG9zdFBhcnRzLmxlbmd0aCA+PSAyKSB7XG4gICAgICBmb3IgKGxldCBwYXJ0IG9mIGhvc3RQYXJ0cykge1xuICAgICAgICBpZiAoIXBhcnQpIHtcbiAgICAgICAgICB2YWxpZFVybCA9IGZhbHNlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YWxpZFVybCA9IGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKCBwcm90b2NvbCAmJiBob3N0ICYmIHVzZXIgJiYgcmVwbyApIHtcbiAgICAgIGNvbnN0IFtsYW5ndWFnZUlkLCBwcm9qZWN0SWRdID0gcmVwby5zcGxpdCgnXycpXG4gICAgICB2YWxpZFJlcG9QYXRoID0gbGFuZ3VhZ2VJZCAmJiBwcm9qZWN0SWRcbiAgICB9XG4gIH0gY2F0Y2gge1xuICAgIGNvbnNvbGUubG9nKCdJbnZhbGlkIERDUyBVUkw6ICcgKyB1cmwpXG4gIH1cbiAgcmV0dXJuIHsgdmFsaWRVcmwsIHZhbGlkUmVwb1BhdGggfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VFcnJvck1lc3NhZ2UocmVzb3VyY2VTdGF0dXM6IG9iamVjdCkge1xuICBsZXQgbWVzc2FnZSA9ICcnXG5cbiAgaWYgKHJlc291cmNlU3RhdHVzW01BTklGRVNUX05PVF9MT0FERURfRVJST1JdKSB7XG4gICAgbWVzc2FnZSA9IE1BTklGRVNUX05PVF9GT1VORF9FUlJPUl9NU0dcbiAgfSBlbHNlIGlmIChyZXNvdXJjZVN0YXR1c1tJTlZBTElEX01BTklGRVNUX0VSUk9SXSkge1xuICAgIG1lc3NhZ2UgPSBNQU5JRkVTVF9JTlZBTElEX0VSUk9SX01TR1xuICB9IGVsc2UgaWYgKHJlc291cmNlU3RhdHVzW0NPTlRFTlRfTk9UX0ZPVU5EX0VSUk9SXSkge1xuICAgIG1lc3NhZ2UgPSBCT09LX05PVF9GT1VORF9FUlJPUl9NU0dcbiAgfSBlbHNlIGlmIChyZXNvdXJjZVN0YXR1c1tTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUl0pIHtcbiAgICBtZXNzYWdlID0gU0NSSVBUVVJFX05PVF9GT1VORF9FUlJPUl9NU0dcbiAgfVxuICByZXR1cm4gbWVzc2FnZVxufVxuXG4vKipcbiAqIGRlY29kZSByZXNvdXJjZSBzdGF0dXMgaW50byBzdHJpbmcuICBDdXJyZW50bHkgb25seSBFbmdsaXNoXG4gKiBAcGFyYW0gcmVzb3VyY2VTdGF0dXMgLSBvYmplY3QgdGhhdCBjb250YWlucyBzdGF0ZSBhbmQgZXJyb3JzIHRoYXQgYXJlIGRldGVjdGVkXG4gKiBAcGFyYW0gc2VydmVyIC0gY29udGFpbnMgdGhlIHNlcnZlciBiZWluZyB1c2VkXG4gKiBAcGFyYW0gcmVzb3VyY2VMaW5rIC0gcGF0aCB0byByZXBvIG9uIHNlcnZlclxuICogQHBhcmFtIGlzTlQgLSB0cnVlIGlmIE5UIGJvb2tcbiAqIEByZXR1cm4gZW1wdHkgc3RyaW5nIGlmIG5vIGVycm9yLCBlbHNlIHJldHVybnMgdXNlciBlcnJvciBtZXNzYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZU1lc3NhZ2UocmVzb3VyY2VTdGF0dXM6IG9iamVjdCwgc2VydmVyOiBzdHJpbmcsIHJlc291cmNlTGluazogc3RyaW5nLCBpc05UOiBib29sZWFuKSB7XG4gIGxldCBtZXNzYWdlID0gJydcblxuICBpZiAocmVzb3VyY2VTdGF0dXNbTE9BRElOR19TVEFURV0pIHtcbiAgICBtZXNzYWdlID0gTE9BRElOR19SRVNPVVJDRVxuICB9IGVsc2Uge1xuICAgIG1lc3NhZ2UgPSBnZXRSZXNvdXJjZUVycm9yTWVzc2FnZShyZXNvdXJjZVN0YXR1cylcblxuICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICBtZXNzYWdlID0gZ2V0RXJyb3JNZXNzYWdlRm9yUmVzb3VyY2VMaW5rKHJlc291cmNlTGluaywgc2VydmVyLCBtZXNzYWdlLCBpc05UKVxuICAgIH1cbiAgfVxuICByZXR1cm4gbWVzc2FnZVxufVxuXG4vKipcbiAqIGdlbmVyYXRlIHJlc291cmNlIHN0cmluZ1xuICogQHBhcmFtIG93bmVyXG4gKiBAcGFyYW0gbGFuZ3VhZ2VJZFxuICogQHBhcmFtIHByb2plY3RJZFxuICogQHBhcmFtIHJlZlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VMaW5rU3BlY2lmaWMob3duZXI6IHN0cmluZywgbGFuZ3VhZ2VJZDogc3RyaW5nLCBwcm9qZWN0SWQ6IHN0cmluZywgcmVmOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGBhcGkvdjEvcmVwb3MvJHtvd25lcn0vJHtsYW5ndWFnZUlkfV8ke3Byb2plY3RJZH0vY29udGVudHM/cmVmPSR7cmVmfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpeE9jY3VycmVuY2Uob2NjdXJyZW5jZSkge1xuICBpZiAodHlwZW9mIG9jY3VycmVuY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHBhcnNlSW50KG9jY3VycmVuY2UpXG4gIH1cbiAgcmV0dXJuIG9jY3VycmVuY2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFudXBWZXJzZU9iamVjdHModmVyc2VPYmplY3RzKSB7XG4gIGlmICh2ZXJzZU9iamVjdHM/Lmxlbmd0aCkge1xuICAgIGNvbnN0IHZlcnNlT2JqZWN0c18gPSBbLi4udmVyc2VPYmplY3RzXVxuXG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB2ZXJzZU9iamVjdHNfLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgY29uc3Qgdm8gPSB2ZXJzZU9iamVjdHNfW2ldXG5cbiAgICAgIGlmICh2by50eXBlID09PSAnd29yZCcgJiYgKHZvLm9jY3VycmVuY2UgfHwgdm8ub2NjdXJyZW5jZXMpKSB7XG4gICAgICAgIGNvbnN0IHdvcmQgPSB7IC4uLnZvIH1cblxuICAgICAgICBpZiAodm8ub2NjdXJyZW5jZSkge1xuICAgICAgICAgIHdvcmQub2NjdXJyZW5jZSA9IGZpeE9jY3VycmVuY2Uodm8ub2NjdXJyZW5jZSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2by5vY2N1cnJlbmNlcykge1xuICAgICAgICAgIHdvcmQub2NjdXJyZW5jZXMgPSBmaXhPY2N1cnJlbmNlKHZvLm9jY3VycmVuY2VzKVxuICAgICAgICB9XG4gICAgICAgIHZlcnNlT2JqZWN0c19baV0gPSB3b3JkXG4gICAgICB9IGVsc2UgaWYgKHZvLmNoaWxkcmVuKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gY2xlYW51cFZlcnNlT2JqZWN0cyh2by5jaGlsZHJlbilcbiAgICAgICAgY29uc3QgbmV3Vm8gPSB7XG4gICAgICAgICAgLi4udm8sXG4gICAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIH1cbiAgICAgICAgdmVyc2VPYmplY3RzX1tpXSA9IG5ld1ZvXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2ZXJzZU9iamVjdHNfXG4gIH1cbiAgcmV0dXJuIFtdXG59XG5cbi8qKlxuICogdGFrZSB0aGUgZmlsZW5hbWUgb2YgdGhlIGJvb2sgKGUuZy4gXCI1Ny1USVQudXNmbVwiKSBhbmQgcGFyc2Ugb3V0IHRoZSBib29rSWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlbmFtZVxuICogQHJldHVybiB7c3RyaW5nfSBib29rSWQgaWYgZm91bmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJvb2tOYW1lRnJvbVVzZm1GaWxlTmFtZShmaWxlbmFtZSkge1xuICBjb25zdCByZWdleCA9IC9eKC4qPylcXC51c2ZtL1xuICBjb25zdCBib29rTmFtZSA9IGZpbGVuYW1lPy5tYXRjaChyZWdleCk/LlsxXVxuICByZXR1cm4gYm9va05hbWVcbn1cblxuLyoqXG4gKiBwYXJzZSB0aGUgVVNGTSB0byBmaW5kIGJvb2tJRCBpbiBoZWFkZXJcbiAqIEBwYXJhbSB7c3RyaW5nfSBiaWJsZVVzZm1cbiAqIEByZXR1cm4ge3N0cmluZ30gYm9va0lkIGlmIGZvdW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRCaWJsZUlkRnJvbVVzZm1Db250ZW50SUQoYmlibGVVc2ZtKSB7XG4gIGNvbnN0IGlkSGVhZGVyID0gJ1xcXFxpZCAnXG4gIGNvbnN0IHBvc0lkID0gYmlibGVVc2ZtPy5pbmRleE9mKGlkSGVhZGVyKVxuXG4gIGlmIChwb3NJZCA+PSAwKSB7XG4gICAgY29uc3QgaWRTdGFydCA9IHBvc0lkICsgaWRIZWFkZXIubGVuZ3RoXG4gICAgbGV0IGhlYWRlcklkID0gYmlibGVVc2ZtPy5zdWJzdHJpbmcoIGlkU3RhcnQsIGlkU3RhcnQgKyAxMDApLnRyaW0oKVxuICAgIGxldCBoZWFkZXJCb29rSUQgPSBudWxsXG5cbiAgICBpZiAoaGVhZGVySWQ/Lmxlbmd0aCA+IDEpIHtcbiAgICAgIGhlYWRlckJvb2tJRCA9IGhlYWRlcklkPy5zcGxpdCgnICcpXG4gICAgICBoZWFkZXJCb29rSUQgPSBoZWFkZXJCb29rSUQ/LlswXS50cmltKClcbiAgICB9XG4gICAgcmV0dXJuIGhlYWRlckJvb2tJRFxuICB9XG4gIHJldHVybiBudWxsXG59XG5cbi8qKlxuICogZGV0ZXJtaW5lcyBpZiB0aGVyZSBhcmUgYW55IHdvcmRzIGluIHZlcnNlT2JqZWN0c1xuICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSB2ZXJzZU9iamVjdHMgLSBhcnJheSBvZiB2ZXJzZU9iamVjdHMgdG8gc2VhcmNoIGZvciB3b3Jkc1xuICogQHJldHVybiB7Ym9vbGVhbn0gdHJ1ZSBpZiB3b3JkIGlzIGZvdW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJzZU9iamVjdHNIYXZlV29yZHModmVyc2VPYmplY3RzOiBWZXJzZU9iamVjdHNUeXBlKSB7XG4gIGlmICh2ZXJzZU9iamVjdHM/Lmxlbmd0aCkge1xuICAgIGZvciAoY29uc3Qgdm8gb2YgdmVyc2VPYmplY3RzKSB7XG4gICAgICBpZiAodm8udHlwZSA9PT0gJ3dvcmQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9IGVsc2UgaWYgKHZvLmNoaWxkcmVuKSB7XG4gICAgICAgIGNvbnN0IGZvdW5kV29yZHMgPSB2ZXJzZU9iamVjdHNIYXZlV29yZHModm8uY2hpbGRyZW4pXG5cbiAgICAgICAgaWYgKGZvdW5kV29yZHMpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxTQUNFQSx1QkFBdUIsRUFDdkJDLHNCQUFzQixFQUN0QkMsYUFBYSxFQUNiQyx5QkFBeUIsRUFDekJDLDBCQUEwQixRQUNyQix1QkFBdUI7QUFDOUIsU0FDRUMsd0JBQXdCLEVBQ3hCQyxnQkFBZ0IsRUFDaEJDLDBCQUEwQixFQUMxQkMsNEJBQTRCLEVBQzVCQyxZQUFZLEVBQ1pDLGtCQUFrQixFQUNsQkMsZUFBZSxFQUNmQyxZQUFZLEVBQ1pDLGtCQUFrQixFQUNsQkMsNkJBQTZCLEVBQzdCQyxjQUFjLEVBQ2RDLGlCQUFpQixRQUNaLFVBQVU7QUFDakIsU0FBUUMsZ0JBQWdCLFFBQU8sVUFBVTtBQUV6QyxPQUFPLElBQU1DLG9CQUFvQixHQUFHLElBQUksRUFBQzs7QUFFekMsT0FBTyxTQUFTQyxlQUFlQSxDQUFDQyxTQUFTLEVBQUU7RUFDekMsSUFBTUMsR0FBRyxHQUFHRCxTQUFTLENBQUNDLEdBQUcsSUFBSUQsU0FBUyxDQUFDRSxNQUFNO0VBQzdDLFVBQUFDLE1BQUEsQ0FBVUgsU0FBUyxDQUFDSSxLQUFLLE9BQUFELE1BQUEsQ0FBSUgsU0FBUyxDQUFDSyxVQUFVLE9BQUFGLE1BQUEsQ0FBSUgsU0FBUyxDQUFDTSxVQUFVLE9BQUFILE1BQUEsQ0FBSUYsR0FBRztBQUNsRjtBQUVBLE9BQU8sU0FBU00saUJBQWlCQSxDQUFDQyxZQUFZLEVBQUU7RUFDOUMsSUFBQUMsbUJBQUEsR0FBNkNELFlBQVksQ0FBQ0UsS0FBSyxDQUFDLEdBQUcsQ0FBQztJQUFBQyxvQkFBQSxHQUFBQyxjQUFBLENBQUFILG1CQUFBO0lBQTdETCxLQUFLLEdBQUFPLG9CQUFBO0lBQUVOLFVBQVUs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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "single-scripture-rcl",
3
3
  "description": "A React Component Library for Rendering a Single Scripture Resource.",
4
- "version": "3.4.13-beta.54",
4
+ "version": "3.4.13",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/unfoldingWord/single-scripture-rcl.git"