verdaccio 6.1.2 → 6.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -93,7 +93,7 @@ function publish(router, auth, storage, config) {
93
93
  }
94
94
  *
95
95
  */
96
- router.put(_middleware.PUBLISH_API_ENDPOINTS.add_package, can('publish'), (0, _middleware.media)(_mime.default.getType('json')), _middleware.expectJson, publishPackage(storage, config, auth));
96
+ router.put('/:package/:_rev?/:revision?', can('publish'), (0, _middleware.media)(_mime.default.getType('json')), _middleware.expectJson, publishPackage(storage, config, auth));
97
97
 
98
98
  /**
99
99
  * Un-publishing an entire package.
@@ -103,13 +103,13 @@ function publish(router, auth, storage, config) {
103
103
  * npm http fetch GET 304 http://localhost:4873/@scope%2ftest1?write=true 1076ms (from cache)
104
104
  npm http fetch DELETE 201 http://localhost:4873/@scope%2ftest1/-rev/18-d8ebe3020bd4ac9c 22ms
105
105
  */
106
- router.delete(_middleware.PUBLISH_API_ENDPOINTS.publish_package, can('unpublish'), unPublishPackage(storage));
106
+ router.delete('/:package/-rev/*', can('unpublish'), unPublishPackage(storage));
107
107
 
108
108
  // removing a tarball
109
- router.delete(_middleware.PUBLISH_API_ENDPOINTS.remove_tarball, can('unpublish'), can('publish'), removeTarball(storage));
109
+ router.delete('/:package/-/:filename/-rev/:revision', can('unpublish'), can('publish'), removeTarball(storage));
110
110
 
111
111
  // uploading package tarball
112
- router.put(_middleware.PUBLISH_API_ENDPOINTS.remove_tarball, can('publish'), (0, _middleware.media)(_constants.HEADERS.OCTET_STREAM), uploadPackageTarball(storage));
112
+ router.put('/:package/-/:filename/*', can('publish'), (0, _middleware.media)(_constants.HEADERS.OCTET_STREAM), uploadPackageTarball(storage));
113
113
 
114
114
  // only used for development
115
115
  if (config._debug) {
@@ -358,4 +358,4 @@ function uploadPackageTarball(storage) {
358
358
  });
359
359
  };
360
360
  }
361
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVidWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2Rhc2giLCJfbWltZSIsIl9wYXRoIiwiX2NvcmUiLCJfbWlkZGxld2FyZSIsIl9jb25zdGFudHMiLCJfbG9nZ2VyIiwiX25vdGlmeSIsIl9zdG9yYWdlVXRpbHMiLCJfdXRpbHMiLCJfc3RhciIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIm93bktleXMiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsImNhbGwiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJkZWJ1ZyIsImJ1aWxkRGVidWciLCJwdWJsaXNoIiwicm91dGVyIiwiYXV0aCIsInN0b3JhZ2UiLCJjb25maWciLCJjYW4iLCJhbGxvdyIsImJlZm9yZUFsbCIsInBhcmFtcyIsIm1lc3NhZ2UiLCJsb2dnZXIiLCJ0cmFjZSIsImFmdGVyQWxsIiwicHV0IiwiUFVCTElTSF9BUElfRU5EUE9JTlRTIiwiYWRkX3BhY2thZ2UiLCJtZWRpYSIsIm1pbWUiLCJnZXRUeXBlIiwiZXhwZWN0SnNvbiIsInB1Ymxpc2hQYWNrYWdlIiwiZGVsZXRlIiwicHVibGlzaF9wYWNrYWdlIiwidW5QdWJsaXNoUGFja2FnZSIsInJlbW92ZV90YXJiYWxsIiwicmVtb3ZlVGFyYmFsbCIsIkhFQURFUlMiLCJPQ1RFVF9TVFJFQU0iLCJ1cGxvYWRQYWNrYWdlVGFyYmFsbCIsImFkZFZlcnNpb24iLCJzdGFyQXBpIiwic3RhciIsInJlcSIsInJlcyIsIm5leHQiLCJwYWNrYWdlTmFtZSIsInBhY2thZ2UiLCJjcmVhdGVUYXJiYWxsIiwiZmlsZW5hbWUiLCJkYXRhIiwiY2IiLCJzdHJlYW0iLCJhZGRUYXJiYWxsIiwib24iLCJlcnIiLCJlbmQiLCJCdWZmZXIiLCJmcm9tIiwiZG9uZSIsImNyZWF0ZVZlcnNpb24iLCJ2ZXJzaW9uIiwibWV0YWRhdGEiLCJhZGRUYWdzIiwidGFncyIsIm1lcmdlVGFncyIsImFmdGVyQ2hhbmdlIiwiZXJyb3IiLCJva01lc3NhZ2UiLCJtZXRhZGF0YUNvcHkiLCJfYXR0YWNobWVudHMiLCJ2ZXJzaW9ucyIsIl8iLCJpc05pbCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGF0dXMiLCJIVFRQX1NUQVRVUyIsIkNSRUFURUQiLCJvayIsInN1Y2Nlc3MiLCJpc0ludmFsaWRCb2R5Rm9ybWF0IiwiaXNPYmplY3QiLCJoYXNEaWZmT25lS2V5IiwiaW5mbyIsIkVycm9yQ29kZSIsImdldEJhZFJlcXVlc3QiLCJBUElfRVJST1IiLCJVTlNVUE9SVEVEX1JFR0lTVFJZX0NBTEwiLCJDT05GTElDVCIsImZpcnN0QXR0YWNobWVudEtleSIsIlBhdGgiLCJiYXNlbmFtZSIsInZlcnNpb25Ub1B1Ymxpc2giLCJ2ZXJzaW9uTWV0YWRhdGFUb1B1Ymxpc2giLCJyZWFkbWUiLCJESVNUX1RBR1MiLCJub3RpZnkiLCJyZW1vdGVfdXNlciIsIm5hbWUiLCJpc1B1Ymxpc2hhYmxlUGFja2FnZSIsImJvZHkiLCJ1c2VycyIsInZhbGlkYXRpb25VdGlscyIsIm5vcm1hbGl6ZU1ldGFkYXRhIiwiX3JldiIsImlzUmVsYXRlZFRvRGVwcmVjYXRpb24iLCJpc0VtcHR5IiwicmVtb3RlIiwiYWxsb3dfdW5wdWJsaXNoIiwiY2hhbmdlUGFja2FnZSIsInJldmlzaW9uIiwiQVBJX01FU1NBR0UiLCJQS0dfQ0hBTkdFRCIsImFkZFBhY2thZ2UiLCJQS0dfQ1JFQVRFRCIsImdldEJhZERhdGEiLCJCQURfUEFDS0FHRV9EQVRBIiwicmVtb3ZlUGFja2FnZSIsIlBLR19SRU1PVkVEIiwiVEFSQkFMTF9SRU1PVkVEIiwidGFnIiwiUEtHX1BVQkxJU0hFRCIsInBpcGUiLCJjb21wbGV0ZSIsImFib3J0IiwibG9jYWxzIiwicmVwb3J0X2Vycm9yIiwiVEFSQkFMTF9VUExPQURFRCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvZW5kcG9pbnQvYXBpL3B1Ymxpc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJ1aWxkRGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IG1pbWUgZnJvbSAnbWltZSc7XG5pbXBvcnQgUGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHsgdmFsaWRhdGlvblV0aWxzIH0gZnJvbSAnQHZlcmRhY2Npby9jb3JlJztcbmltcG9ydCB7IFBVQkxJU0hfQVBJX0VORFBPSU5UUywgYWxsb3csIGV4cGVjdEpzb24sIG1lZGlhIH0gZnJvbSAnQHZlcmRhY2Npby9taWRkbGV3YXJlJztcbmltcG9ydCB7IENhbGxiYWNrLCBDb25maWcsIE1lcmdlVGFncywgUGFja2FnZSwgVmVyc2lvbiB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuXG5pbXBvcnQgQXV0aCBmcm9tICcuLi8uLi8uLi9saWIvYXV0aCc7XG5pbXBvcnQgeyBBUElfRVJST1IsIEFQSV9NRVNTQUdFLCBESVNUX1RBR1MsIEhFQURFUlMsIEhUVFBfU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi8uLi8uLi9saWIvbG9nZ2VyJztcbmltcG9ydCB7IG5vdGlmeSB9IGZyb20gJy4uLy4uLy4uL2xpYi9ub3RpZnknO1xuaW1wb3J0IFN0b3JhZ2UgZnJvbSAnLi4vLi4vLi4vbGliL3N0b3JhZ2UnO1xuaW1wb3J0IHsgaXNQdWJsaXNoYWJsZVBhY2thZ2UgfSBmcm9tICcuLi8uLi8uLi9saWIvc3RvcmFnZS11dGlscyc7XG5pbXBvcnQgeyBFcnJvckNvZGUsIGhhc0RpZmZPbmVLZXksIGlzT2JqZWN0LCBpc1JlbGF0ZWRUb0RlcHJlY2F0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbGliL3V0aWxzJztcbmltcG9ydCB7ICROZXh0RnVuY3Rpb25WZXIsICRSZXF1ZXN0RXh0ZW5kLCAkUmVzcG9uc2VFeHRlbmQgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQgc3RhciBmcm9tICcuL3N0YXInO1xuXG5jb25zdCBkZWJ1ZyA9IGJ1aWxkRGVidWcoJ3ZlcmRhY2NpbzpwdWJsaXNoJyk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHB1Ymxpc2goXG4gIHJvdXRlcjogUm91dGVyLFxuICBhdXRoOiBBdXRoLFxuICBzdG9yYWdlOiBTdG9yYWdlLFxuICBjb25maWc6IENvbmZpZ1xuKTogdm9pZCB7XG4gIGNvbnN0IGNhbiA9IGFsbG93KGF1dGgsIHtcbiAgICBiZWZvcmVBbGw6IChwYXJhbXMsIG1lc3NhZ2UpID0+IGxvZ2dlci50cmFjZShwYXJhbXMsIG1lc3NhZ2UpLFxuICAgIGFmdGVyQWxsOiAocGFyYW1zLCBtZXNzYWdlKSA9PiBsb2dnZXIudHJhY2UocGFyYW1zLCBtZXNzYWdlKSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggYSBwYWNrYWdlIC8gdXBkYXRlIHBhY2thZ2UgLyB1bi9zdGFydCBhIHBhY2thZ2VcbiAgICpcbiAgICogVGhlcmUgYXJlIG11bHRpcGxlcyBzY2VuYXJpb3MgaGVyZSB0byBiZSBjb25zaWRlcmVkOlxuICAgKlxuICAgKiAxLiBQdWJsaXNoIHNjZW5hcmlvXG4gICAqXG4gICAqIFB1Ymxpc2ggYSBwYWNrYWdlIGNvbnNpc3Qgb2YgYXQgbGVhc3QgMSBzdGVwIChQVVQpIHdpdGggYSBtZXRhZGF0YSBwYXlsb2FkLlxuICAgKiBXaGVuIGEgcGFja2FnZSBpcyBwdWJsaXNoZWQsIGFuIF9hdHRhY2htZW50IHByb3BlcnR5IGlzIHByZXNlbnQgdGhhdCBjb250YWlucyB0aGUgZGF0YVxuICAgKiBvZiB0aGUgdGFyYmFsbC5cbiAgICpcbiAgICogRXhhbXBsZSBmbG93IG9mIHB1Ymxpc2guXG4gICAqXG4gICAqICBucG0gaHR0cCBmZXRjaCBQVVQgMjAxIGh0dHA6Ly9sb2NhbGhvc3Q6NDg3My9Ac2NvcGUlMmZ0ZXN0MSA5NjI3bXNcbiAgICAgIG5wbSBpbmZvIGxpZmVjeWNsZSBAc2NvcGUvdGVzdDFAMS4wLjF+cHVibGlzaDogQHNjb3BlL3Rlc3QxQDEuMC4xXG4gICAgICBucG0gaW5mbyBsaWZlY3ljbGUgQHNjb3BlL3Rlc3QxQDEuMC4xfnBvc3RwdWJsaXNoOiBAc2NvcGUvdGVzdDFAMS4wLjFcbiAgICAgICsgQHNjb3BlL3Rlc3QxQDEuMC4xXG4gICAgICBucG0gdmVyYiBleGl0IFsgMCwgdHJ1ZSBdXG4gICAqXG4gICAqXG4gICAqIDIuIFVucHVibGlzaCBzY2VuYXJpb1xuICAgKlxuICAgKiBVbnB1Ymxpc2ggY29uc2lzdCBpbiAzIHN0ZXBzLlxuICAgKiAgMS4gVHJ5IHRvIGZldGNoICBtZXRhZGF0YSAtPiBpZiBpdCBmYWlscywgcmV0dXJuIDQwNFxuICAgKiAgMi4gQ29tcHV0ZSBtZXRhZGF0YSBsb2NhbGx5IChjbGllbnQgc2lkZSkgYW5kIHNlbmQgYSBtdXRhdGUgcGF5bG9hZCBleGNsdWRpbmcgdGhlIHZlcnNpb24gdG8gYmUgdW5wdWJsaXNoZWRcbiAgICogICAgZWc6IGlmIG1ldGFkYXRhIHJlZmxlY3RzIDEuMC4xLCAxLjAuMiBhbmQgMS4wLjMsIHRoZSBjb21wdXRlZCBtZXRhZGF0YSB3b24ndCBpbmNsdWRlIDEuMC4zLlxuICAgKiAgMy4gT25jZSB0aGUgc2Vjb25kIHN0ZXAgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGZpbmlzaGVkLCBkZWxldGUgdGhlIHRhcmJhbGwuXG4gICAqXG4gICAqICBBbGwgdGhlc2Ugc3RlcHMgYXJlIGNvbnNlY3V0aXZlIGFuZCByZXF1aXJlZCwgdGhlcmUgaXMgbm8gdHJhbnNhY2lvbnMgaGVyZSwgaWYgc3RlcCAzIGZhaWxzLCBtZXRhZGF0YSBtaWdodFxuICAgKiAgZ2V0IGNvcnJ1cHRlZC5cbiAgICpcbiAgICogIE5vdGUgdGhlIHVucHVibGlzaCBjYWxsIHdpbGwgc3VmZml4IGluIHRoZSB1cmwgYSAvLXJldi8xNC01ZDUwMGNmY2U5MmY5MGZkIHJldmlzaW9uIG51bWJlciwgdGhpcyBub3RcbiAgICogIHVzZWQgaW50ZXJuYWxseS5cbiAgICpcbiAgICpcbiAgICogRXhhbXBsZSBmbG93IG9mIHVucHVibGlzaC5cbiAgICpcbiAgICogbnBtIGh0dHAgZmV0Y2ggR0VUIDIwMCBodHRwOi8vbG9jYWxob3N0OjQ4NzMvQHNjb3BlJTJmdGVzdDE/d3JpdGU9dHJ1ZSAxNjgwbXNcbiAgICAgbnBtIGh0dHAgZmV0Y2ggUFVUIDIwMSBodHRwOi8vbG9jYWxob3N0OjQ4NzMvQHNjb3BlJTJmdGVzdDEvLXJldi8xNC01ZDUwMGNmY2U5MmY5MGZkIDk1NjYwNm1zIGF0dGVtcHQgIzJcbiAgICAgbnBtIGh0dHAgZmV0Y2ggR0VUIDIwMCBodHRwOi8vbG9jYWxob3N0OjQ4NzMvQHNjb3BlJTJmdGVzdDE/d3JpdGU9dHJ1ZSAxNjAxbXNcbiAgICAgbnBtIGh0dHAgZmV0Y2ggREVMRVRFIDIwMSBodHRwOi8vbG9jYWxob3N0OjQ4NzMvQHNjb3BlJTJmdGVzdDEvLS90ZXN0MS0xLjAuMy50Z3ovLXJldi8xNi1lMTFjOGRiMjgyYjJkOTkyIDE5bXNcbiAgICpcbiAgICogMy4gU3RhciBhIHBhY2thZ2VcbiAgICpcbiAgICogUGVybWlzc2lvbnM6IHN0YXJ0IGEgcGFja2FnZSBkZXBlbmRzIG9mIHRoZSBwdWJsaXNoIGFuZCB1bnB1Ymxpc2ggcGVybWlzc2lvbnMsIHRoZXJlIGlzIG5vIHNwZWNpZmljIGZsYWcgZm9yIHN0YXIgb3IgdW4gc3RhcnQuXG4gICAqIFRoZSBVUkwgZm9yIHN0YXIgaXMgc2ltaWxhciB0byB0aGUgdW5wdWJsaXNoIChjaGFuZ2UgcGFja2FnZSBmb3JtYXQpXG4gICAqXG4gICAqIG5wbSBoYXMgbm8gZW5wb2ludCBmb3Igc3RhciBhIHBhY2thZ2UsIHJhdGhlciBtdXRhdGUgdGhlIG1ldGFkYXRhIGFuZCBhY3RzIGFzLCB0aGUgZGlmZmVyZW5jZSBpcyB0aGVcbiAgICogdXNlcnMgcHJvcGVydHkgd2hpY2ggaXMgcGFydCBvZiB0aGUgcGF5bG9hZCBhbmQgdGhlIGJvZHkgb25seSBpbmNsdWRlc1xuICAgKlxuICAgKiB7XG5cdFx0ICBcIl9pZFwiOiBwa2dOYW1lLFxuXHQgIFx0XCJfcmV2XCI6IFwiMy1iMGNkYWVmYzliZGI3N2M4XCIsXG5cdFx0ICBcInVzZXJzXCI6IHtcblx0XHQgICAgW3VzZXJuYW1lXTogYm9vbGVhbiB2YWx1ZSAodHJ1ZSwgZmFsc2UpXG5cdFx0ICB9XG5cdH1cbiAgICpcbiAgICovXG4gIHJvdXRlci5wdXQoXG4gICAgUFVCTElTSF9BUElfRU5EUE9JTlRTLmFkZF9wYWNrYWdlLFxuICAgIGNhbigncHVibGlzaCcpLFxuICAgIG1lZGlhKG1pbWUuZ2V0VHlwZSgnanNvbicpKSxcbiAgICBleHBlY3RKc29uLFxuICAgIHB1Ymxpc2hQYWNrYWdlKHN0b3JhZ2UsIGNvbmZpZywgYXV0aClcbiAgKTtcblxuICAvKipcbiAgICogVW4tcHVibGlzaGluZyBhbiBlbnRpcmUgcGFja2FnZS5cbiAgICpcbiAgICogVGhpcyBzY2VuYXJpbyBoYXBwZW5zIHdoZW4gdGhlIGZpcnN0IGNhbGwgZGV0ZWN0IHRoZXJlIGlzIG9ubHkgb25lIHZlcnNpb24gcmVtYWluaW5nXG4gICAqIGluIHRoZSBtZXRhZGF0YSwgdGhlbiB0aGUgY2xpZW50IGRlY2lkZXMgdG8gREVMRVRFIHRoZSByZXNvdXJjZVxuICAgKiBucG0gaHR0cCBmZXRjaCBHRVQgMzA0IGh0dHA6Ly9sb2NhbGhvc3Q6NDg3My9Ac2NvcGUlMmZ0ZXN0MT93cml0ZT10cnVlIDEwNzZtcyAoZnJvbSBjYWNoZSlcbiAgICAgbnBtIGh0dHAgZmV0Y2ggREVMRVRFIDIwMSBodHRwOi8vbG9jYWxob3N0OjQ4NzMvQHNjb3BlJTJmdGVzdDEvLXJldi8xOC1kOGViZTMwMjBiZDRhYzljIDIybXNcbiAgICovXG4gIHJvdXRlci5kZWxldGUoUFVCTElTSF9BUElfRU5EUE9JTlRTLnB1Ymxpc2hfcGFja2FnZSwgY2FuKCd1bnB1Ymxpc2gnKSwgdW5QdWJsaXNoUGFja2FnZShzdG9yYWdlKSk7XG5cbiAgLy8gcmVtb3ZpbmcgYSB0YXJiYWxsXG4gIHJvdXRlci5kZWxldGUoXG4gICAgUFVCTElTSF9BUElfRU5EUE9JTlRTLnJlbW92ZV90YXJiYWxsLFxuICAgIGNhbigndW5wdWJsaXNoJyksXG4gICAgY2FuKCdwdWJsaXNoJyksXG4gICAgcmVtb3ZlVGFyYmFsbChzdG9yYWdlKVxuICApO1xuXG4gIC8vIHVwbG9hZGluZyBwYWNrYWdlIHRhcmJhbGxcbiAgcm91dGVyLnB1dChcbiAgICBQVUJMSVNIX0FQSV9FTkRQT0lOVFMucmVtb3ZlX3RhcmJhbGwsXG4gICAgY2FuKCdwdWJsaXNoJyksXG4gICAgbWVkaWEoSEVBREVSUy5PQ1RFVF9TVFJFQU0pLFxuICAgIHVwbG9hZFBhY2thZ2VUYXJiYWxsKHN0b3JhZ2UpXG4gICk7XG5cbiAgLy8gb25seSB1c2VkIGZvciBkZXZlbG9wbWVudFxuICBpZiAoY29uZmlnLl9kZWJ1Zykge1xuICAgIC8vIGFkZGluZyBhIHZlcnNpb25cbiAgICByb3V0ZXIucHV0KFxuICAgICAgJy86cGFja2FnZS86dmVyc2lvbi8tdGFnLzp0YWcnLFxuICAgICAgY2FuKCdwdWJsaXNoJyksXG4gICAgICBtZWRpYShtaW1lLmdldFR5cGUoJ2pzb24nKSksXG4gICAgICBleHBlY3RKc29uLFxuICAgICAgYWRkVmVyc2lvbihzdG9yYWdlKVxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBQdWJsaXNoIGEgcGFja2FnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHVibGlzaFBhY2thZ2Uoc3RvcmFnZTogU3RvcmFnZSwgY29uZmlnOiBDb25maWcsIGF1dGg6IEF1dGgpOiBhbnkge1xuICBjb25zdCBzdGFyQXBpID0gc3RhcihzdG9yYWdlKTtcbiAgcmV0dXJuIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgIGNvbnN0IHBhY2thZ2VOYW1lID0gcmVxLnBhcmFtcy5wYWNrYWdlO1xuICAgIGRlYnVnKCdwdWJsaXNoaW5nIG9yIHVwZGF0aW5nIGEgbmV3IHZlcnNpb24gZm9yICVvJywgcGFja2FnZU5hbWUpO1xuICAgIC8qKlxuICAgICAqIFdyaXRlIHRhcmJhbGwgb2Ygc3RyZWFtIGRhdGEgZnJvbSBwYWNrYWdlIGNsaWVudHMuXG4gICAgICovXG4gICAgY29uc3QgY3JlYXRlVGFyYmFsbCA9IGZ1bmN0aW9uIChmaWxlbmFtZTogc3RyaW5nLCBkYXRhLCBjYjogQ2FsbGJhY2spOiB2b2lkIHtcbiAgICAgIGNvbnN0IHN0cmVhbSA9IHN0b3JhZ2UuYWRkVGFyYmFsbChwYWNrYWdlTmFtZSwgZmlsZW5hbWUpO1xuICAgICAgc3RyZWFtLm9uKCdlcnJvcicsIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgY2IoZXJyKTtcbiAgICAgIH0pO1xuICAgICAgc3RyZWFtLm9uKCdzdWNjZXNzJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBjYigpO1xuICAgICAgfSk7XG4gICAgICAvLyB0aGlzIGlzIGR1bWIgYW5kIG1lbW9yeS1jb25zdW1pbmcsIGJ1dCB3aGF0IGNob2ljZXMgZG8gd2UgaGF2ZT9cbiAgICAgIC8vIGZsb3c6IHdlIG5lZWQgZmlyc3QgcmVmYWN0b3IgdGhpcyBmaWxlIGJlZm9yZSBkZWNpZGVzIHdoaWNoIHR5cGUgdXNlIGhlcmVcbiAgICAgIHN0cmVhbS5lbmQoQnVmZmVyLmZyb20oZGF0YS5kYXRhLCAnYmFzZTY0JykpO1xuICAgICAgc3RyZWFtLmRvbmUoKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQWRkIG5ldyBwYWNrYWdlIHZlcnNpb24gaW4gc3RvcmFnZVxuICAgICAqL1xuICAgIGNvbnN0IGNyZWF0ZVZlcnNpb24gPSBmdW5jdGlvbiAodmVyc2lvbjogc3RyaW5nLCBtZXRhZGF0YTogVmVyc2lvbiwgY2I6IENhbGxiYWNrKTogdm9pZCB7XG4gICAgICBzdG9yYWdlLmFkZFZlcnNpb24ocGFja2FnZU5hbWUsIHZlcnNpb24sIG1ldGFkYXRhLCBudWxsLCBjYik7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEFkZCBuZXcgdGFncyBpbiBzdG9yYWdlXG4gICAgICovXG4gICAgY29uc3QgYWRkVGFncyA9IGZ1bmN0aW9uICh0YWdzOiBNZXJnZVRhZ3MsIGNiOiBDYWxsYmFjayk6IHZvaWQge1xuICAgICAgc3RvcmFnZS5tZXJnZVRhZ3MocGFja2FnZU5hbWUsIHRhZ3MsIGNiKTtcbiAgICB9O1xuXG4gICAgY29uc3QgYWZ0ZXJDaGFuZ2UgPSBmdW5jdGlvbiAoZXJyb3IsIG9rTWVzc2FnZSwgbWV0YWRhdGEpOiB2b2lkIHtcbiAgICAgIGNvbnN0IG1ldGFkYXRhQ29weTogUGFja2FnZSA9IHsgLi4ubWV0YWRhdGEgfTtcblxuICAgICAgY29uc3QgeyBfYXR0YWNobWVudHMsIHZlcnNpb25zIH0gPSBtZXRhZGF0YUNvcHk7XG5cbiAgICAgIC8vIGBucG0gc3RhcmAgd291bGRuJ3QgaGF2ZSBhdHRhY2htZW50c1xuICAgICAgLy8gYW5kIGBucG0gZGVwcmVjYXRlYCB3b3VsZCBoYXZlIGF0dGFjaG1lbnRzIGFzIGEgZW1wdHkgb2JqZWN0LCBpLmUge31cbiAgICAgIGlmIChfLmlzTmlsKF9hdHRhY2htZW50cykgfHwgSlNPTi5zdHJpbmdpZnkoX2F0dGFjaG1lbnRzKSA9PT0gJ3t9Jykge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gbmV4dChlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5DUkVBVEVEKTtcbiAgICAgICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAgIG9rOiBva01lc3NhZ2UsXG4gICAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIG5wbS1yZWdpc3RyeS1jbGllbnQgMC4zKyBlbWJlZHMgdGFyYmFsbCBpbnRvIHRoZSBqc29uIHVwbG9hZFxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2lzYWFjcy9ucG0tcmVnaXN0cnktY2xpZW50L2NvbW1pdC9lOWZiZWI4YjY3ZjI0OTM5NGY3MzVjNzRlZjExZmU0NzIwZDQ2Y2EwXG4gICAgICAvLyBpc3N1ZSBodHRwczovL2dpdGh1Yi5jb20vcmxpZHdrYS9zaW5vcGlhL2lzc3Vlcy8zMSwgZGVhbGluZyB3aXRoIGl0IGhlcmU6XG4gICAgICBjb25zdCBpc0ludmFsaWRCb2R5Rm9ybWF0ID1cbiAgICAgICAgaXNPYmplY3QoX2F0dGFjaG1lbnRzKSA9PT0gZmFsc2UgfHxcbiAgICAgICAgaGFzRGlmZk9uZUtleShfYXR0YWNobWVudHMpIHx8XG4gICAgICAgIGlzT2JqZWN0KHZlcnNpb25zKSA9PT0gZmFsc2UgfHxcbiAgICAgICAgaGFzRGlmZk9uZUtleSh2ZXJzaW9ucyk7XG5cbiAgICAgIGlmIChpc0ludmFsaWRCb2R5Rm9ybWF0KSB7XG4gICAgICAgIC8vIG5wbSBpcyBkb2luZyBzb21ldGhpbmcgc3RyYW5nZSBhZ2FpblxuICAgICAgICAvLyBpZiB0aGlzIGhhcHBlbnMgaW4gbm9ybWFsIGNpcmN1bXN0YW5jZXMsIHJlcG9ydCBpdCBhcyBhIGJ1Z1xuICAgICAgICBsb2dnZXIuaW5mbyh7IHBhY2thZ2VOYW1lIH0sIGB3cm9uZyBwYWNrYWdlIGZvcm1hdCBvbiBwdWJsaXNoIGEgcGFja2FnZSBAe3BhY2thZ2VOYW1lfWApO1xuICAgICAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0QmFkUmVxdWVzdChBUElfRVJST1IuVU5TVVBPUlRFRF9SRUdJU1RSWV9DQUxMKSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChlcnJvciAmJiBlcnJvci5zdGF0dXMgIT09IEhUVFBfU1RBVFVTLkNPTkZMSUNUKSB7XG4gICAgICAgIHJldHVybiBuZXh0KGVycm9yKTtcbiAgICAgIH1cblxuICAgICAgLy8gYXQgdGhpcyBwb2ludCBkb2N1bWVudCBpcyBlaXRoZXIgY3JlYXRlZCBvciBleGlzdGVkIGJlZm9yZVxuICAgICAgY29uc3QgW2ZpcnN0QXR0YWNobWVudEtleV0gPSBPYmplY3Qua2V5cyhfYXR0YWNobWVudHMpO1xuXG4gICAgICBjcmVhdGVUYXJiYWxsKFxuICAgICAgICBQYXRoLmJhc2VuYW1lKGZpcnN0QXR0YWNobWVudEtleSksXG4gICAgICAgIF9hdHRhY2htZW50c1tmaXJzdEF0dGFjaG1lbnRLZXldLFxuICAgICAgICBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXh0KGVycm9yKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB2ZXJzaW9uVG9QdWJsaXNoID0gT2JqZWN0LmtleXModmVyc2lvbnMpWzBdO1xuICAgICAgICAgIGNvbnN0IHZlcnNpb25NZXRhZGF0YVRvUHVibGlzaCA9IHZlcnNpb25zW3ZlcnNpb25Ub1B1Ymxpc2hdO1xuXG4gICAgICAgICAgdmVyc2lvbk1ldGFkYXRhVG9QdWJsaXNoLnJlYWRtZSA9XG4gICAgICAgICAgICBfLmlzTmlsKHZlcnNpb25NZXRhZGF0YVRvUHVibGlzaC5yZWFkbWUpID09PSBmYWxzZVxuICAgICAgICAgICAgICA/IFN0cmluZyh2ZXJzaW9uTWV0YWRhdGFUb1B1Ymxpc2gucmVhZG1lKVxuICAgICAgICAgICAgICA6ICcnO1xuXG4gICAgICAgICAgY3JlYXRlVmVyc2lvbih2ZXJzaW9uVG9QdWJsaXNoLCB2ZXJzaW9uTWV0YWRhdGFUb1B1Ymxpc2gsIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgIHJldHVybiBuZXh0KGVycm9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYWRkVGFncyhtZXRhZGF0YUNvcHlbRElTVF9UQUdTXSwgYXN5bmMgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXh0KGVycm9yKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgbm90aWZ5KFxuICAgICAgICAgICAgICAgICAgbWV0YWRhdGFDb3B5LFxuICAgICAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgICAgICAgcmVxLnJlbW90ZV91c2VyLFxuICAgICAgICAgICAgICAgICAgYCR7bWV0YWRhdGFDb3B5Lm5hbWV9QCR7dmVyc2lvblRvUHVibGlzaH1gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoeyBlcnJvciB9LCAnbm90aWZ5IGJhdGNoIHNlcnZpY2UgaGFzIGZhaWxlZDogQHtlcnJvcn0nKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuQ1JFQVRFRCk7XG4gICAgICAgICAgICAgIHJldHVybiBuZXh0KHsgb2s6IG9rTWVzc2FnZSwgc3VjY2VzczogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH07XG5cbiAgICBpZiAoaXNQdWJsaXNoYWJsZVBhY2thZ2UocmVxLmJvZHkpID09PSBmYWxzZSAmJiBpc09iamVjdChyZXEuYm9keS51c2VycykpIHtcbiAgICAgIHJldHVybiBzdGFyQXBpKHJlcSwgcmVzLCBuZXh0KTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgbWV0YWRhdGEgPSB2YWxpZGF0aW9uVXRpbHMubm9ybWFsaXplTWV0YWRhdGEocmVxLmJvZHksIHBhY2thZ2VOYW1lKTtcbiAgICAgIC8vIGNoZWNrIF9hdHRhY2htZW50cyB0byBkaXN0aW5ndWlzaCBwdWJsaXNoIGFuZCBkZXByZWNhdGVcbiAgICAgIGlmIChcbiAgICAgICAgcmVxLnBhcmFtcy5fcmV2IHx8XG4gICAgICAgIChpc1JlbGF0ZWRUb0RlcHJlY2F0aW9uKHJlcS5ib2R5KSAmJiBfLmlzRW1wdHkocmVxLmJvZHkuX2F0dGFjaG1lbnRzKSlcbiAgICAgICkge1xuICAgICAgICBkZWJ1ZygndXBkYXRpbmcgYSBuZXcgdmVyc2lvbiBmb3IgJW8nLCBwYWNrYWdlTmFtZSk7XG4gICAgICAgIC8vIHdlIGNoZWNrIHVucHVibGlzaCBwZXJtaXNzaW9ucywgYW4gdXBkYXRlIGlzIGJhc2ljYWxseSByZW1vdmUgdmVyc2lvbnNcbiAgICAgICAgY29uc3QgcmVtb3RlID0gcmVxLnJlbW90ZV91c2VyO1xuICAgICAgICBhdXRoLmFsbG93X3VucHVibGlzaCh7IHBhY2thZ2VOYW1lIH0sIHJlbW90ZSwgKGVycm9yKSA9PiB7XG4gICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoeyBwYWNrYWdlTmFtZSB9LCBgbm90IGFsbG93ZWQgdG8gdW5wdWJsaXNoIGEgdmVyc2lvbiBmb3IgQHtwYWNrYWdlTmFtZX1gKTtcbiAgICAgICAgICAgIHJldHVybiBuZXh0KGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc3RvcmFnZS5jaGFuZ2VQYWNrYWdlKHBhY2thZ2VOYW1lLCBtZXRhZGF0YSwgcmVxLnBhcmFtcy5yZXZpc2lvbiwgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICBhZnRlckNoYW5nZShlcnJvciwgQVBJX01FU1NBR0UuUEtHX0NIQU5HRUQsIG1ldGFkYXRhKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWJ1ZygnYWRkaW5nIGEgbmV3IHZlcnNpb24gZm9yICVvJywgcGFja2FnZU5hbWUpO1xuICAgICAgICBzdG9yYWdlLmFkZFBhY2thZ2UocGFja2FnZU5hbWUsIG1ldGFkYXRhLCBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICBhZnRlckNoYW5nZShlcnJvciwgQVBJX01FU1NBR0UuUEtHX0NSRUFURUQsIG1ldGFkYXRhKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5lcnJvcih7IHBhY2thZ2VOYW1lIH0sICdlcnJvciBvbiBwdWJsaXNoLCBiYWQgcGFja2FnZSBkYXRhIGZvciBAe3BhY2thZ2VOYW1lfScpO1xuICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldEJhZERhdGEoQVBJX0VSUk9SLkJBRF9QQUNLQUdFX0RBVEEpKTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogdW4tcHVibGlzaCBhIHBhY2thZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVuUHVibGlzaFBhY2thZ2Uoc3RvcmFnZTogU3RvcmFnZSkge1xuICByZXR1cm4gZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgY29uc3QgcGFja2FnZU5hbWUgPSByZXEucGFyYW1zLnBhY2thZ2U7XG4gICAgZGVidWcoJ3VucHVibGlzaGluZyAlbycsIHBhY2thZ2VOYW1lKTtcbiAgICBzdG9yYWdlLnJlbW92ZVBhY2thZ2UocGFja2FnZU5hbWUsIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcbiAgICAgIH1cbiAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuQ1JFQVRFRCk7XG4gICAgICByZXR1cm4gbmV4dCh7IG9rOiBBUElfTUVTU0FHRS5QS0dfUkVNT1ZFRCB9KTtcbiAgICB9KTtcbiAgfTtcbn1cblxuLyoqXG4gKiBEZWxldGUgdGFyYmFsbFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlVGFyYmFsbChzdG9yYWdlOiBTdG9yYWdlKSB7XG4gIHJldHVybiBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICBjb25zdCBwYWNrYWdlTmFtZSA9IHJlcS5wYXJhbXMucGFja2FnZTtcbiAgICBjb25zdCB7IGZpbGVuYW1lLCByZXZpc2lvbiB9ID0gcmVxLnBhcmFtcztcbiAgICBkZWJ1ZygncmVtb3ZpbmcgYSB0YXJiYWxsIGZvciAlby0lby0lbycsIHBhY2thZ2VOYW1lLCBmaWxlbmFtZSwgcmV2aXNpb24pO1xuICAgIHN0b3JhZ2UucmVtb3ZlVGFyYmFsbChwYWNrYWdlTmFtZSwgZmlsZW5hbWUsIHJldmlzaW9uLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHJldHVybiBuZXh0KGVycik7XG4gICAgICB9XG4gICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLkNSRUFURUQpO1xuICAgICAgZGVidWcoJ3N1Y2Nlc3MgcmVtb3ZlIHRhcmJhbGwgZm9yICVvLSVvLSVvJywgcGFja2FnZU5hbWUsIGZpbGVuYW1lLCByZXZpc2lvbik7XG4gICAgICByZXR1cm4gbmV4dCh7IG9rOiBBUElfTUVTU0FHRS5UQVJCQUxMX1JFTU9WRUQgfSk7XG4gICAgfSk7XG4gIH07XG59XG4vKipcbiAqIEFkZHMgYSBuZXcgdmVyc2lvblxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkVmVyc2lvbihzdG9yYWdlOiBTdG9yYWdlKSB7XG4gIHJldHVybiBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICBjb25zdCB7IHZlcnNpb24sIHRhZyB9ID0gcmVxLnBhcmFtcztcbiAgICBjb25zdCBwYWNrYWdlTmFtZSA9IHJlcS5wYXJhbXMucGFja2FnZTtcblxuICAgIHN0b3JhZ2UuYWRkVmVyc2lvbihwYWNrYWdlTmFtZSwgdmVyc2lvbiwgcmVxLmJvZHksIHRhZywgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyb3IpO1xuICAgICAgfVxuXG4gICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLkNSRUFURUQpO1xuICAgICAgcmV0dXJuIG5leHQoe1xuICAgICAgICBvazogQVBJX01FU1NBR0UuUEtHX1BVQkxJU0hFRCxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xufVxuXG4vKipcbiAqIHVwbG9hZFBhY2thZ2VUYXJiYWxsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1cGxvYWRQYWNrYWdlVGFyYmFsbChzdG9yYWdlOiBTdG9yYWdlKSB7XG4gIHJldHVybiBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICBjb25zdCBwYWNrYWdlTmFtZSA9IHJlcS5wYXJhbXMucGFja2FnZTtcbiAgICBjb25zdCBzdHJlYW0gPSBzdG9yYWdlLmFkZFRhcmJhbGwocGFja2FnZU5hbWUsIHJlcS5wYXJhbXMuZmlsZW5hbWUpO1xuICAgIHJlcS5waXBlKHN0cmVhbSk7XG5cbiAgICAvLyBjaGVja2luZyBpZiBlbmQgZXZlbnQgY2FtZSBiZWZvcmUgY2xvc2luZ1xuICAgIGxldCBjb21wbGV0ZSA9IGZhbHNlO1xuICAgIHJlcS5vbignZW5kJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29tcGxldGUgPSB0cnVlO1xuICAgICAgc3RyZWFtLmRvbmUoKTtcbiAgICB9KTtcblxuICAgIHJlcS5vbignY2xvc2UnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoIWNvbXBsZXRlKSB7XG4gICAgICAgIHN0cmVhbS5hYm9ydCgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgc3RyZWFtLm9uKCdlcnJvcicsIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgIHJldHVybiByZXMubG9jYWxzLnJlcG9ydF9lcnJvcihlcnIpO1xuICAgIH0pO1xuXG4gICAgc3RyZWFtLm9uKCdzdWNjZXNzJywgZnVuY3Rpb24gKCkge1xuICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5DUkVBVEVEKTtcbiAgICAgIHJldHVybiBuZXh0KHtcbiAgICAgICAgb2s6IEFQSV9NRVNTQUdFLlRBUkJBTExfVVBMT0FERUQsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxPQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxLQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBSSxLQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxXQUFBLEdBQUFMLE9BQUE7QUFJQSxJQUFBTSxVQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxPQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxPQUFBLEdBQUFSLE9BQUE7QUFFQSxJQUFBUyxhQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxNQUFBLEdBQUFWLE9BQUE7QUFFQSxJQUFBVyxLQUFBLEdBQUFaLHNCQUFBLENBQUFDLE9BQUE7QUFBMEIsU0FBQUQsdUJBQUFhLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBRyxRQUFBSCxDQUFBLEVBQUFJLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEs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
361
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVidWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2Rhc2giLCJfbWltZSIsIl9wYXRoIiwiX2NvcmUiLCJfbWlkZGxld2FyZSIsIl9jb25zdGFudHMiLCJfbG9nZ2VyIiwiX25vdGlmeSIsIl9zdG9yYWdlVXRpbHMiLCJfdXRpbHMiLCJfc3RhciIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIm93bktleXMiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsImNhbGwiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJkZWJ1ZyIsImJ1aWxkRGVidWciLCJwdWJsaXNoIiwicm91dGVyIiwiYXV0aCIsInN0b3JhZ2UiLCJjb25maWciLCJjYW4iLCJhbGxvdyIsImJlZm9yZUFsbCIsInBhcmFtcyIsIm1lc3NhZ2UiLCJsb2dnZXIiLCJ0cmFjZSIsImFmdGVyQWxsIiwicHV0IiwibWVkaWEiLCJtaW1lIiwiZ2V0VHlwZSIsImV4cGVjdEpzb24iLCJwdWJsaXNoUGFja2FnZSIsImRlbGV0ZSIsInVuUHVibGlzaFBhY2thZ2UiLCJyZW1vdmVUYXJiYWxsIiwiSEVBREVSUyIsIk9DVEVUX1NUUkVBTSIsInVwbG9hZFBhY2thZ2VUYXJiYWxsIiwiYWRkVmVyc2lvbiIsInN0YXJBcGkiLCJzdGFyIiwicmVxIiwicmVzIiwibmV4dCIsInBhY2thZ2VOYW1lIiwicGFja2FnZSIsImNyZWF0ZVRhcmJhbGwiLCJmaWxlbmFtZSIsImRhdGEiLCJjYiIsInN0cmVhbSIsImFkZFRhcmJhbGwiLCJvbiIsImVyciIsImVuZCIsIkJ1ZmZlciIsImZyb20iLCJkb25lIiwiY3JlYXRlVmVyc2lvbiIsInZlcnNpb24iLCJtZXRhZGF0YSIsImFkZFRhZ3MiLCJ0YWdzIiwibWVyZ2VUYWdzIiwiYWZ0ZXJDaGFuZ2UiLCJlcnJvciIsIm9rTWVzc2FnZSIsIm1ldGFkYXRhQ29weSIsIl9hdHRhY2htZW50cyIsInZlcnNpb25zIiwiXyIsImlzTmlsIiwiSlNPTiIsInN0cmluZ2lmeSIsInN0YXR1cyIsIkhUVFBfU1RBVFVTIiwiQ1JFQVRFRCIsIm9rIiwic3VjY2VzcyIsImlzSW52YWxpZEJvZHlGb3JtYXQiLCJpc09iamVjdCIsImhhc0RpZmZPbmVLZXkiLCJpbmZvIiwiRXJyb3JDb2RlIiwiZ2V0QmFkUmVxdWVzdCIsIkFQSV9FUlJPUiIsIlVOU1VQT1JURURfUkVHSVNUUllfQ0FMTCIsIkNPTkZMSUNUIiwiZmlyc3RBdHRhY2htZW50S2V5IiwiUGF0aCIsImJhc2VuYW1lIiwidmVyc2lvblRvUHVibGlzaCIsInZlcnNpb25NZXRhZGF0YVRvUHVibGlzaCIsInJlYWRtZSIsIkRJU1RfVEFHUyIsIm5vdGlmeSIsInJlbW90ZV91c2VyIiwibmFtZSIsImlzUHVibGlzaGFibGVQYWNrYWdlIiwiYm9keSIsInVzZXJzIiwidmFsaWRhdGlvblV0aWxzIiwibm9ybWFsaXplTWV0YWRhdGEiLCJfcmV2IiwiaXNSZWxhdGVkVG9EZXByZWNhdGlvbiIsImlzRW1wdHkiLCJyZW1vdGUiLCJhbGxvd191bnB1Ymxpc2giLCJjaGFuZ2VQYWNrYWdlIiwicmV2aXNpb24iLCJBUElfTUVTU0FHRSIsIlBLR19DSEFOR0VEIiwiYWRkUGFja2FnZSIsIlBLR19DUkVBVEVEIiwiZ2V0QmFkRGF0YSIsIkJBRF9QQUNLQUdFX0RBVEEiLCJyZW1vdmVQYWNrYWdlIiwiUEtHX1JFTU9WRUQiLCJUQVJCQUxMX1JFTU9WRUQiLCJ0YWciLCJQS0dfUFVCTElTSEVEIiwicGlwZSIsImNvbXBsZXRlIiwiYWJvcnQiLCJsb2NhbHMiLCJyZXBvcnRfZXJyb3IiLCJUQVJCQUxMX1VQTE9BREVEIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwaS9lbmRwb2ludC9hcGkvcHVibGlzaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYnVpbGREZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbWltZSBmcm9tICdtaW1lJztcbmltcG9ydCBQYXRoIGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQgeyB2YWxpZGF0aW9uVXRpbHMgfSBmcm9tICdAdmVyZGFjY2lvL2NvcmUnO1xuaW1wb3J0IHsgYWxsb3csIGV4cGVjdEpzb24sIG1lZGlhIH0gZnJvbSAnQHZlcmRhY2Npby9taWRkbGV3YXJlJztcbmltcG9ydCB7IENhbGxiYWNrLCBDb25maWcsIE1lcmdlVGFncywgUGFja2FnZSwgVmVyc2lvbiB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuXG5pbXBvcnQgQXV0aCBmcm9tICcuLi8uLi8uLi9saWIvYXV0aCc7XG5pbXBvcnQgeyBBUElfRVJST1IsIEFQSV9NRVNTQUdFLCBESVNUX1RBR1MsIEhFQURFUlMsIEhUVFBfU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi8uLi8uLi9saWIvbG9nZ2VyJztcbmltcG9ydCB7IG5vdGlmeSB9IGZyb20gJy4uLy4uLy4uL2xpYi9ub3RpZnknO1xuaW1wb3J0IFN0b3JhZ2UgZnJvbSAnLi4vLi4vLi4vbGliL3N0b3JhZ2UnO1xuaW1wb3J0IHsgaXNQdWJsaXNoYWJsZVBhY2thZ2UgfSBmcm9tICcuLi8uLi8uLi9saWIvc3RvcmFnZS11dGlscyc7XG5pbXBvcnQgeyBFcnJvckNvZGUsIGhhc0RpZmZPbmVLZXksIGlzT2JqZWN0LCBpc1JlbGF0ZWRUb0RlcHJlY2F0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbGliL3V0aWxzJztcbmltcG9ydCB7ICROZXh0RnVuY3Rpb25WZXIsICRSZXF1ZXN0RXh0ZW5kLCAkUmVzcG9uc2VFeHRlbmQgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQgc3RhciBmcm9tICcuL3N0YXInO1xuXG5jb25zdCBkZWJ1ZyA9IGJ1aWxkRGVidWcoJ3ZlcmRhY2NpbzpwdWJsaXNoJyk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHB1Ymxpc2goXG4gIHJvdXRlcjogUm91dGVyLFxuICBhdXRoOiBBdXRoLFxuICBzdG9yYWdlOiBTdG9yYWdlLFxuICBjb25maWc6IENvbmZpZ1xuKTogdm9pZCB7XG4gIGNvbnN0IGNhbiA9IGFsbG93KGF1dGgsIHtcbiAgICBiZWZvcmVBbGw6IChwYXJhbXMsIG1lc3NhZ2UpID0+IGxvZ2dlci50cmFjZShwYXJhbXMsIG1lc3NhZ2UpLFxuICAgIGFmdGVyQWxsOiAocGFyYW1zLCBtZXNzYWdlKSA9PiBsb2dnZXIudHJhY2UocGFyYW1zLCBtZXNzYWdlKSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggYSBwYWNrYWdlIC8gdXBkYXRlIHBhY2thZ2UgLyB1bi9zdGFydCBhIHBhY2thZ2VcbiAgICpcbiAgICogVGhlcmUgYXJlIG11bHRpcGxlcyBzY2VuYXJpb3MgaGVyZSB0byBiZSBjb25zaWRlcmVkOlxuICAgKlxuICAgKiAxLiBQdWJsaXNoIHNjZW5hcmlvXG4gICAqXG4gICAqIFB1Ymxpc2ggYSBwYWNrYWdlIGNvbnNpc3Qgb2YgYXQgbGVhc3QgMSBzdGVwIChQVVQpIHdpdGggYSBtZXRhZGF0YSBwYXlsb2FkLlxuICAgKiBXaGVuIGEgcGFja2FnZSBpcyBwdWJsaXNoZWQsIGFuIF9hdHRhY2htZW50IHByb3BlcnR5IGlzIHByZXNlbnQgdGhhdCBjb250YWlucyB0aGUgZGF0YVxuICAgKiBvZiB0aGUgdGFyYmFsbC5cbiAgICpcbiAgICogRXhhbXBsZSBmbG93IG9mIHB1Ymxpc2guXG4gICAqXG4gICAqICBucG0gaHR0cCBmZXRjaCBQVVQgMjAxIGh0dHA6Ly9sb2NhbGhvc3Q6NDg3My9Ac2NvcGUlMmZ0ZXN0MSA5NjI3bXNcbiAgICAgIG5wbSBpbmZvIGxpZmVjeWNsZSBAc2NvcGUvdGVzdDFAMS4wLjF+cHVibGlzaDogQHNjb3BlL3Rlc3QxQDEuMC4xXG4gICAgICBucG0gaW5mbyBsaWZlY3ljbGUgQHNjb3BlL3Rlc3QxQDEuMC4xfnBvc3RwdWJsaXNoOiBAc2NvcGUvdGVzdDFAMS4wLjFcbiAgICAgICsgQHNjb3BlL3Rlc3QxQDEuMC4xXG4gICAgICBucG0gdmVyYiBleGl0IFsgMCwgdHJ1ZSBdXG4gICAqXG4gICAqXG4gICAqIDIuIFVucHVibGlzaCBzY2VuYXJpb1xuICAgKlxuICAgKiBVbnB1Ymxpc2ggY29uc2lzdCBpbiAzIHN0ZXBzLlxuICAgKiAgMS4gVHJ5IHRvIGZldGNoICBtZXRhZGF0YSAtPiBpZiBpdCBmYWlscywgcmV0dXJuIDQwNFxuICAgKiAgMi4gQ29tcHV0ZSBtZXRhZGF0YSBsb2NhbGx5IChjbGllbnQgc2lkZSkgYW5kIHNlbmQgYSBtdXRhdGUgcGF5bG9hZCBleGNsdWRpbmcgdGhlIHZlcnNpb24gdG8gYmUgdW5wdWJsaXNoZWRcbiAgICogICAgZWc6IGlmIG1ldGFkYXRhIHJlZmxlY3RzIDEuMC4xLCAxLjAuMiBhbmQgMS4wLjMsIHRoZSBjb21wdXRlZCBtZXRhZGF0YSB3b24ndCBpbmNsdWRlIDEuMC4zLlxuICAgKiAgMy4gT25jZSB0aGUgc2Vjb25kIHN0ZXAgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGZpbmlzaGVkLCBkZWxldGUgdGhlIHRhcmJhbGwuXG4gICAqXG4gICAqICBBbGwgdGhlc2Ugc3RlcHMgYXJlIGNvbnNlY3V0aXZlIGFuZCByZXF1aXJlZCwgdGhlcmUgaXMgbm8gdHJhbnNhY2lvbnMgaGVyZSwgaWYgc3RlcCAzIGZhaWxzLCBtZXRhZGF0YSBtaWdodFxuICAgKiAgZ2V0IGNvcnJ1cHRlZC5cbiAgICpcbiAgICogIE5vdGUgdGhlIHVucHVibGlzaCBjYWxsIHdpbGwgc3VmZml4IGluIHRoZSB1cmwgYSAvLXJldi8xNC01ZDUwMGNmY2U5MmY5MGZkIHJldmlzaW9uIG51bWJlciwgdGhpcyBub3RcbiAgICogIHVzZWQgaW50ZXJuYWxseS5cbiAgICpcbiAgICpcbiAgICogRXhhbXBsZSBmbG93IG9mIHVucHVibGlzaC5cbiAgICpcbiAgICogbnBtIGh0dHAgZmV0Y2ggR0VUIDIwMCBodHRwOi8vbG9jYWxob3N0OjQ4NzMvQHNjb3BlJTJmdGVzdDE/d3JpdGU9dHJ1ZSAxNjgwbXNcbiAgICAgbnBtIGh0dHAgZmV0Y2ggUFVUIDIwMSBodHRwOi8vbG9jYWxob3N0OjQ4NzMvQHNjb3BlJTJmdGVzdDEvLXJldi8xNC01ZDUwMGNmY2U5MmY5MGZkIDk1NjYwNm1zIGF0dGVtcHQgIzJcbiAgICAgbnBtIGh0dHAgZmV0Y2ggR0VUIDIwMCBodHRwOi8vbG9jYWxob3N0OjQ4NzMvQHNjb3BlJTJmdGVzdDE/d3JpdGU9dHJ1ZSAxNjAxbXNcbiAgICAgbnBtIGh0dHAgZmV0Y2ggREVMRVRFIDIwMSBodHRwOi8vbG9jYWxob3N0OjQ4NzMvQHNjb3BlJTJmdGVzdDEvLS90ZXN0MS0xLjAuMy50Z3ovLXJldi8xNi1lMTFjOGRiMjgyYjJkOTkyIDE5bXNcbiAgICpcbiAgICogMy4gU3RhciBhIHBhY2thZ2VcbiAgICpcbiAgICogUGVybWlzc2lvbnM6IHN0YXJ0IGEgcGFja2FnZSBkZXBlbmRzIG9mIHRoZSBwdWJsaXNoIGFuZCB1bnB1Ymxpc2ggcGVybWlzc2lvbnMsIHRoZXJlIGlzIG5vIHNwZWNpZmljIGZsYWcgZm9yIHN0YXIgb3IgdW4gc3RhcnQuXG4gICAqIFRoZSBVUkwgZm9yIHN0YXIgaXMgc2ltaWxhciB0byB0aGUgdW5wdWJsaXNoIChjaGFuZ2UgcGFja2FnZSBmb3JtYXQpXG4gICAqXG4gICAqIG5wbSBoYXMgbm8gZW5wb2ludCBmb3Igc3RhciBhIHBhY2thZ2UsIHJhdGhlciBtdXRhdGUgdGhlIG1ldGFkYXRhIGFuZCBhY3RzIGFzLCB0aGUgZGlmZmVyZW5jZSBpcyB0aGVcbiAgICogdXNlcnMgcHJvcGVydHkgd2hpY2ggaXMgcGFydCBvZiB0aGUgcGF5bG9hZCBhbmQgdGhlIGJvZHkgb25seSBpbmNsdWRlc1xuICAgKlxuICAgKiB7XG5cdFx0ICBcIl9pZFwiOiBwa2dOYW1lLFxuXHQgIFx0XCJfcmV2XCI6IFwiMy1iMGNkYWVmYzliZGI3N2M4XCIsXG5cdFx0ICBcInVzZXJzXCI6IHtcblx0XHQgICAgW3VzZXJuYW1lXTogYm9vbGVhbiB2YWx1ZSAodHJ1ZSwgZmFsc2UpXG5cdFx0ICB9XG5cdH1cbiAgICpcbiAgICovXG4gIHJvdXRlci5wdXQoXG4gICAgJy86cGFja2FnZS86X3Jldj8vOnJldmlzaW9uPycsXG4gICAgY2FuKCdwdWJsaXNoJyksXG4gICAgbWVkaWEobWltZS5nZXRUeXBlKCdqc29uJykpLFxuICAgIGV4cGVjdEpzb24sXG4gICAgcHVibGlzaFBhY2thZ2Uoc3RvcmFnZSwgY29uZmlnLCBhdXRoKVxuICApO1xuXG4gIC8qKlxuICAgKiBVbi1wdWJsaXNoaW5nIGFuIGVudGlyZSBwYWNrYWdlLlxuICAgKlxuICAgKiBUaGlzIHNjZW5hcmlvIGhhcHBlbnMgd2hlbiB0aGUgZmlyc3QgY2FsbCBkZXRlY3QgdGhlcmUgaXMgb25seSBvbmUgdmVyc2lvbiByZW1haW5pbmdcbiAgICogaW4gdGhlIG1ldGFkYXRhLCB0aGVuIHRoZSBjbGllbnQgZGVjaWRlcyB0byBERUxFVEUgdGhlIHJlc291cmNlXG4gICAqIG5wbSBodHRwIGZldGNoIEdFVCAzMDQgaHR0cDovL2xvY2FsaG9zdDo0ODczL0BzY29wZSUyZnRlc3QxP3dyaXRlPXRydWUgMTA3Nm1zIChmcm9tIGNhY2hlKVxuICAgICBucG0gaHR0cCBmZXRjaCBERUxFVEUgMjAxIGh0dHA6Ly9sb2NhbGhvc3Q6NDg3My9Ac2NvcGUlMmZ0ZXN0MS8tcmV2LzE4LWQ4ZWJlMzAyMGJkNGFjOWMgMjJtc1xuICAgKi9cbiAgcm91dGVyLmRlbGV0ZSgnLzpwYWNrYWdlLy1yZXYvKicsIGNhbigndW5wdWJsaXNoJyksIHVuUHVibGlzaFBhY2thZ2Uoc3RvcmFnZSkpO1xuXG4gIC8vIHJlbW92aW5nIGEgdGFyYmFsbFxuICByb3V0ZXIuZGVsZXRlKFxuICAgICcvOnBhY2thZ2UvLS86ZmlsZW5hbWUvLXJldi86cmV2aXNpb24nLFxuICAgIGNhbigndW5wdWJsaXNoJyksXG4gICAgY2FuKCdwdWJsaXNoJyksXG4gICAgcmVtb3ZlVGFyYmFsbChzdG9yYWdlKVxuICApO1xuXG4gIC8vIHVwbG9hZGluZyBwYWNrYWdlIHRhcmJhbGxcbiAgcm91dGVyLnB1dChcbiAgICAnLzpwYWNrYWdlLy0vOmZpbGVuYW1lLyonLFxuICAgIGNhbigncHVibGlzaCcpLFxuICAgIG1lZGlhKEhFQURFUlMuT0NURVRfU1RSRUFNKSxcbiAgICB1cGxvYWRQYWNrYWdlVGFyYmFsbChzdG9yYWdlKVxuICApO1xuXG4gIC8vIG9ubHkgdXNlZCBmb3IgZGV2ZWxvcG1lbnRcbiAgaWYgKGNvbmZpZy5fZGVidWcpIHtcbiAgICAvLyBhZGRpbmcgYSB2ZXJzaW9uXG4gICAgcm91dGVyLnB1dChcbiAgICAgICcvOnBhY2thZ2UvOnZlcnNpb24vLXRhZy86dGFnJyxcbiAgICAgIGNhbigncHVibGlzaCcpLFxuICAgICAgbWVkaWEobWltZS5nZXRUeXBlKCdqc29uJykpLFxuICAgICAgZXhwZWN0SnNvbixcbiAgICAgIGFkZFZlcnNpb24oc3RvcmFnZSlcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogUHVibGlzaCBhIHBhY2thZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHB1Ymxpc2hQYWNrYWdlKHN0b3JhZ2U6IFN0b3JhZ2UsIGNvbmZpZzogQ29uZmlnLCBhdXRoOiBBdXRoKTogYW55IHtcbiAgY29uc3Qgc3RhckFwaSA9IHN0YXIoc3RvcmFnZSk7XG4gIHJldHVybiBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICBjb25zdCBwYWNrYWdlTmFtZSA9IHJlcS5wYXJhbXMucGFja2FnZTtcbiAgICBkZWJ1ZygncHVibGlzaGluZyBvciB1cGRhdGluZyBhIG5ldyB2ZXJzaW9uIGZvciAlbycsIHBhY2thZ2VOYW1lKTtcbiAgICAvKipcbiAgICAgKiBXcml0ZSB0YXJiYWxsIG9mIHN0cmVhbSBkYXRhIGZyb20gcGFja2FnZSBjbGllbnRzLlxuICAgICAqL1xuICAgIGNvbnN0IGNyZWF0ZVRhcmJhbGwgPSBmdW5jdGlvbiAoZmlsZW5hbWU6IHN0cmluZywgZGF0YSwgY2I6IENhbGxiYWNrKTogdm9pZCB7XG4gICAgICBjb25zdCBzdHJlYW0gPSBzdG9yYWdlLmFkZFRhcmJhbGwocGFja2FnZU5hbWUsIGZpbGVuYW1lKTtcbiAgICAgIHN0cmVhbS5vbignZXJyb3InLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgIGNiKGVycik7XG4gICAgICB9KTtcbiAgICAgIHN0cmVhbS5vbignc3VjY2VzcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY2IoKTtcbiAgICAgIH0pO1xuICAgICAgLy8gdGhpcyBpcyBkdW1iIGFuZCBtZW1vcnktY29uc3VtaW5nLCBidXQgd2hhdCBjaG9pY2VzIGRvIHdlIGhhdmU/XG4gICAgICAvLyBmbG93OiB3ZSBuZWVkIGZpcnN0IHJlZmFjdG9yIHRoaXMgZmlsZSBiZWZvcmUgZGVjaWRlcyB3aGljaCB0eXBlIHVzZSBoZXJlXG4gICAgICBzdHJlYW0uZW5kKEJ1ZmZlci5mcm9tKGRhdGEuZGF0YSwgJ2Jhc2U2NCcpKTtcbiAgICAgIHN0cmVhbS5kb25lKCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEFkZCBuZXcgcGFja2FnZSB2ZXJzaW9uIGluIHN0b3JhZ2VcbiAgICAgKi9cbiAgICBjb25zdCBjcmVhdGVWZXJzaW9uID0gZnVuY3Rpb24gKHZlcnNpb246IHN0cmluZywgbWV0YWRhdGE6IFZlcnNpb24sIGNiOiBDYWxsYmFjayk6IHZvaWQge1xuICAgICAgc3RvcmFnZS5hZGRWZXJzaW9uKHBhY2thZ2VOYW1lLCB2ZXJzaW9uLCBtZXRhZGF0YSwgbnVsbCwgY2IpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBBZGQgbmV3IHRhZ3MgaW4gc3RvcmFnZVxuICAgICAqL1xuICAgIGNvbnN0IGFkZFRhZ3MgPSBmdW5jdGlvbiAodGFnczogTWVyZ2VUYWdzLCBjYjogQ2FsbGJhY2spOiB2b2lkIHtcbiAgICAgIHN0b3JhZ2UubWVyZ2VUYWdzKHBhY2thZ2VOYW1lLCB0YWdzLCBjYik7XG4gICAgfTtcblxuICAgIGNvbnN0IGFmdGVyQ2hhbmdlID0gZnVuY3Rpb24gKGVycm9yLCBva01lc3NhZ2UsIG1ldGFkYXRhKTogdm9pZCB7XG4gICAgICBjb25zdCBtZXRhZGF0YUNvcHk6IFBhY2thZ2UgPSB7IC4uLm1ldGFkYXRhIH07XG5cbiAgICAgIGNvbnN0IHsgX2F0dGFjaG1lbnRzLCB2ZXJzaW9ucyB9ID0gbWV0YWRhdGFDb3B5O1xuXG4gICAgICAvLyBgbnBtIHN0YXJgIHdvdWxkbid0IGhhdmUgYXR0YWNobWVudHNcbiAgICAgIC8vIGFuZCBgbnBtIGRlcHJlY2F0ZWAgd291bGQgaGF2ZSBhdHRhY2htZW50cyBhcyBhIGVtcHR5IG9iamVjdCwgaS5lIHt9XG4gICAgICBpZiAoXy5pc05pbChfYXR0YWNobWVudHMpIHx8IEpTT04uc3RyaW5naWZ5KF9hdHRhY2htZW50cykgPT09ICd7fScpIHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIG5leHQoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuQ1JFQVRFRCk7XG4gICAgICAgIHJldHVybiBuZXh0KHtcbiAgICAgICAgICBvazogb2tNZXNzYWdlLFxuICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICAvLyBucG0tcmVnaXN0cnktY2xpZW50IDAuMysgZW1iZWRzIHRhcmJhbGwgaW50byB0aGUganNvbiB1cGxvYWRcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9pc2FhY3MvbnBtLXJlZ2lzdHJ5LWNsaWVudC9jb21taXQvZTlmYmViOGI2N2YyNDkzOTRmNzM1Yzc0ZWYxMWZlNDcyMGQ0NmNhMFxuICAgICAgLy8gaXNzdWUgaHR0cHM6Ly9naXRodWIuY29tL3JsaWR3a2Evc2lub3BpYS9pc3N1ZXMvMzEsIGRlYWxpbmcgd2l0aCBpdCBoZXJlOlxuICAgICAgY29uc3QgaXNJbnZhbGlkQm9keUZvcm1hdCA9XG4gICAgICAgIGlzT2JqZWN0KF9hdHRhY2htZW50cykgPT09IGZhbHNlIHx8XG4gICAgICAgIGhhc0RpZmZPbmVLZXkoX2F0dGFjaG1lbnRzKSB8fFxuICAgICAgICBpc09iamVjdCh2ZXJzaW9ucykgPT09IGZhbHNlIHx8XG4gICAgICAgIGhhc0RpZmZPbmVLZXkodmVyc2lvbnMpO1xuXG4gICAgICBpZiAoaXNJbnZhbGlkQm9keUZvcm1hdCkge1xuICAgICAgICAvLyBucG0gaXMgZG9pbmcgc29tZXRoaW5nIHN0cmFuZ2UgYWdhaW5cbiAgICAgICAgLy8gaWYgdGhpcyBoYXBwZW5zIGluIG5vcm1hbCBjaXJjdW1zdGFuY2VzLCByZXBvcnQgaXQgYXMgYSBidWdcbiAgICAgICAgbG9nZ2VyLmluZm8oeyBwYWNrYWdlTmFtZSB9LCBgd3JvbmcgcGFja2FnZSBmb3JtYXQgb24gcHVibGlzaCBhIHBhY2thZ2UgQHtwYWNrYWdlTmFtZX1gKTtcbiAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldEJhZFJlcXVlc3QoQVBJX0VSUk9SLlVOU1VQT1JURURfUkVHSVNUUllfQ0FMTCkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZXJyb3IgJiYgZXJyb3Iuc3RhdHVzICE9PSBIVFRQX1NUQVRVUy5DT05GTElDVCkge1xuICAgICAgICByZXR1cm4gbmV4dChlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIC8vIGF0IHRoaXMgcG9pbnQgZG9jdW1lbnQgaXMgZWl0aGVyIGNyZWF0ZWQgb3IgZXhpc3RlZCBiZWZvcmVcbiAgICAgIGNvbnN0IFtmaXJzdEF0dGFjaG1lbnRLZXldID0gT2JqZWN0LmtleXMoX2F0dGFjaG1lbnRzKTtcblxuICAgICAgY3JlYXRlVGFyYmFsbChcbiAgICAgICAgUGF0aC5iYXNlbmFtZShmaXJzdEF0dGFjaG1lbnRLZXkpLFxuICAgICAgICBfYXR0YWNobWVudHNbZmlyc3RBdHRhY2htZW50S2V5XSxcbiAgICAgICAgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV4dChlcnJvcik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgdmVyc2lvblRvUHVibGlzaCA9IE9iamVjdC5rZXlzKHZlcnNpb25zKVswXTtcbiAgICAgICAgICBjb25zdCB2ZXJzaW9uTWV0YWRhdGFUb1B1Ymxpc2ggPSB2ZXJzaW9uc1t2ZXJzaW9uVG9QdWJsaXNoXTtcblxuICAgICAgICAgIHZlcnNpb25NZXRhZGF0YVRvUHVibGlzaC5yZWFkbWUgPVxuICAgICAgICAgICAgXy5pc05pbCh2ZXJzaW9uTWV0YWRhdGFUb1B1Ymxpc2gucmVhZG1lKSA9PT0gZmFsc2VcbiAgICAgICAgICAgICAgPyBTdHJpbmcodmVyc2lvbk1ldGFkYXRhVG9QdWJsaXNoLnJlYWRtZSlcbiAgICAgICAgICAgICAgOiAnJztcblxuICAgICAgICAgIGNyZWF0ZVZlcnNpb24odmVyc2lvblRvUHVibGlzaCwgdmVyc2lvbk1ldGFkYXRhVG9QdWJsaXNoLCBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICByZXR1cm4gbmV4dChlcnJvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGFkZFRhZ3MobWV0YWRhdGFDb3B5W0RJU1RfVEFHU10sIGFzeW5jIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV4dChlcnJvcik7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGF3YWl0IG5vdGlmeShcbiAgICAgICAgICAgICAgICAgIG1ldGFkYXRhQ29weSxcbiAgICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICAgIHJlcS5yZW1vdGVfdXNlcixcbiAgICAgICAgICAgICAgICAgIGAke21ldGFkYXRhQ29weS5uYW1lfUAke3ZlcnNpb25Ub1B1Ymxpc2h9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKHsgZXJyb3IgfSwgJ25vdGlmeSBiYXRjaCBzZXJ2aWNlIGhhcyBmYWlsZWQ6IEB7ZXJyb3J9Jyk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLkNSRUFURUQpO1xuICAgICAgICAgICAgICByZXR1cm4gbmV4dCh7IG9rOiBva01lc3NhZ2UsIHN1Y2Nlc3M6IHRydWUgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgaWYgKGlzUHVibGlzaGFibGVQYWNrYWdlKHJlcS5ib2R5KSA9PT0gZmFsc2UgJiYgaXNPYmplY3QocmVxLmJvZHkudXNlcnMpKSB7XG4gICAgICByZXR1cm4gc3RhckFwaShyZXEsIHJlcywgbmV4dCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1ldGFkYXRhID0gdmFsaWRhdGlvblV0aWxzLm5vcm1hbGl6ZU1ldGFkYXRhKHJlcS5ib2R5LCBwYWNrYWdlTmFtZSk7XG4gICAgICAvLyBjaGVjayBfYXR0YWNobWVudHMgdG8gZGlzdGluZ3Vpc2ggcHVibGlzaCBhbmQgZGVwcmVjYXRlXG4gICAgICBpZiAoXG4gICAgICAgIHJlcS5wYXJhbXMuX3JldiB8fFxuICAgICAgICAoaXNSZWxhdGVkVG9EZXByZWNhdGlvbihyZXEuYm9keSkgJiYgXy5pc0VtcHR5KHJlcS5ib2R5Ll9hdHRhY2htZW50cykpXG4gICAgICApIHtcbiAgICAgICAgZGVidWcoJ3VwZGF0aW5nIGEgbmV3IHZlcnNpb24gZm9yICVvJywgcGFja2FnZU5hbWUpO1xuICAgICAgICAvLyB3ZSBjaGVjayB1bnB1Ymxpc2ggcGVybWlzc2lvbnMsIGFuIHVwZGF0ZSBpcyBiYXNpY2FsbHkgcmVtb3ZlIHZlcnNpb25zXG4gICAgICAgIGNvbnN0IHJlbW90ZSA9IHJlcS5yZW1vdGVfdXNlcjtcbiAgICAgICAgYXV0aC5hbGxvd191bnB1Ymxpc2goeyBwYWNrYWdlTmFtZSB9LCByZW1vdGUsIChlcnJvcikgPT4ge1xuICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKHsgcGFja2FnZU5hbWUgfSwgYG5vdCBhbGxvd2VkIHRvIHVucHVibGlzaCBhIHZlcnNpb24gZm9yIEB7cGFja2FnZU5hbWV9YCk7XG4gICAgICAgICAgICByZXR1cm4gbmV4dChlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHN0b3JhZ2UuY2hhbmdlUGFja2FnZShwYWNrYWdlTmFtZSwgbWV0YWRhdGEsIHJlcS5wYXJhbXMucmV2aXNpb24sIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgYWZ0ZXJDaGFuZ2UoZXJyb3IsIEFQSV9NRVNTQUdFLlBLR19DSEFOR0VELCBtZXRhZGF0YSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVidWcoJ2FkZGluZyBhIG5ldyB2ZXJzaW9uIGZvciAlbycsIHBhY2thZ2VOYW1lKTtcbiAgICAgICAgc3RvcmFnZS5hZGRQYWNrYWdlKHBhY2thZ2VOYW1lLCBtZXRhZGF0YSwgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgYWZ0ZXJDaGFuZ2UoZXJyb3IsIEFQSV9NRVNTQUdFLlBLR19DUkVBVEVELCBtZXRhZGF0YSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoeyBwYWNrYWdlTmFtZSB9LCAnZXJyb3Igb24gcHVibGlzaCwgYmFkIHBhY2thZ2UgZGF0YSBmb3IgQHtwYWNrYWdlTmFtZX0nKTtcbiAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRCYWREYXRhKEFQSV9FUlJPUi5CQURfUEFDS0FHRV9EQVRBKSk7XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIHVuLXB1Ymxpc2ggYSBwYWNrYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1blB1Ymxpc2hQYWNrYWdlKHN0b3JhZ2U6IFN0b3JhZ2UpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgIGNvbnN0IHBhY2thZ2VOYW1lID0gcmVxLnBhcmFtcy5wYWNrYWdlO1xuICAgIGRlYnVnKCd1bnB1Ymxpc2hpbmcgJW8nLCBwYWNrYWdlTmFtZSk7XG4gICAgc3RvcmFnZS5yZW1vdmVQYWNrYWdlKHBhY2thZ2VOYW1lLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHJldHVybiBuZXh0KGVycik7XG4gICAgICB9XG4gICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLkNSRUFURUQpO1xuICAgICAgcmV0dXJuIG5leHQoeyBvazogQVBJX01FU1NBR0UuUEtHX1JFTU9WRUQgfSk7XG4gICAgfSk7XG4gIH07XG59XG5cbi8qKlxuICogRGVsZXRlIHRhcmJhbGxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVRhcmJhbGwoc3RvcmFnZTogU3RvcmFnZSkge1xuICByZXR1cm4gZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgY29uc3QgcGFja2FnZU5hbWUgPSByZXEucGFyYW1zLnBhY2thZ2U7XG4gICAgY29uc3QgeyBmaWxlbmFtZSwgcmV2aXNpb24gfSA9IHJlcS5wYXJhbXM7XG4gICAgZGVidWcoJ3JlbW92aW5nIGEgdGFyYmFsbCBmb3IgJW8tJW8tJW8nLCBwYWNrYWdlTmFtZSwgZmlsZW5hbWUsIHJldmlzaW9uKTtcbiAgICBzdG9yYWdlLnJlbW92ZVRhcmJhbGwocGFja2FnZU5hbWUsIGZpbGVuYW1lLCByZXZpc2lvbiwgZnVuY3Rpb24gKGVycikge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xuICAgICAgfVxuICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5DUkVBVEVEKTtcbiAgICAgIGRlYnVnKCdzdWNjZXNzIHJlbW92ZSB0YXJiYWxsIGZvciAlby0lby0lbycsIHBhY2thZ2VOYW1lLCBmaWxlbmFtZSwgcmV2aXNpb24pO1xuICAgICAgcmV0dXJuIG5leHQoeyBvazogQVBJX01FU1NBR0UuVEFSQkFMTF9SRU1PVkVEIH0pO1xuICAgIH0pO1xuICB9O1xufVxuLyoqXG4gKiBBZGRzIGEgbmV3IHZlcnNpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFZlcnNpb24oc3RvcmFnZTogU3RvcmFnZSkge1xuICByZXR1cm4gZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgY29uc3QgeyB2ZXJzaW9uLCB0YWcgfSA9IHJlcS5wYXJhbXM7XG4gICAgY29uc3QgcGFja2FnZU5hbWUgPSByZXEucGFyYW1zLnBhY2thZ2U7XG5cbiAgICBzdG9yYWdlLmFkZFZlcnNpb24ocGFja2FnZU5hbWUsIHZlcnNpb24sIHJlcS5ib2R5LCB0YWcsIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIHJldHVybiBuZXh0KGVycm9yKTtcbiAgICAgIH1cblxuICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5DUkVBVEVEKTtcbiAgICAgIHJldHVybiBuZXh0KHtcbiAgICAgICAgb2s6IEFQSV9NRVNTQUdFLlBLR19QVUJMSVNIRUQsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfTtcbn1cblxuLyoqXG4gKiB1cGxvYWRQYWNrYWdlVGFyYmFsbFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXBsb2FkUGFja2FnZVRhcmJhbGwoc3RvcmFnZTogU3RvcmFnZSkge1xuICByZXR1cm4gZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgY29uc3QgcGFja2FnZU5hbWUgPSByZXEucGFyYW1zLnBhY2thZ2U7XG4gICAgY29uc3Qgc3RyZWFtID0gc3RvcmFnZS5hZGRUYXJiYWxsKHBhY2thZ2VOYW1lLCByZXEucGFyYW1zLmZpbGVuYW1lKTtcbiAgICByZXEucGlwZShzdHJlYW0pO1xuXG4gICAgLy8gY2hlY2tpbmcgaWYgZW5kIGV2ZW50IGNhbWUgYmVmb3JlIGNsb3NpbmdcbiAgICBsZXQgY29tcGxldGUgPSBmYWxzZTtcbiAgICByZXEub24oJ2VuZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbXBsZXRlID0gdHJ1ZTtcbiAgICAgIHN0cmVhbS5kb25lKCk7XG4gICAgfSk7XG5cbiAgICByZXEub24oJ2Nsb3NlJywgZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKCFjb21wbGV0ZSkge1xuICAgICAgICBzdHJlYW0uYWJvcnQoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHN0cmVhbS5vbignZXJyb3InLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICByZXR1cm4gcmVzLmxvY2Fscy5yZXBvcnRfZXJyb3IoZXJyKTtcbiAgICB9KTtcblxuICAgIHN0cmVhbS5vbignc3VjY2VzcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuQ1JFQVRFRCk7XG4gICAgICByZXR1cm4gbmV4dCh7XG4gICAgICAgIG9rOiBBUElfTUVTU0FHRS5UQVJCQUxMX1VQTE9BREVELFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsT0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsS0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUksS0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBTCxPQUFBO0FBSUEsSUFBQU0sVUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sT0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsT0FBQSxHQUFBUixPQUFBO0FBRUEsSUFBQVMsYUFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsTUFBQSxHQUFBVixPQUFBO0FBRUEsSUFBQVcsS0FBQSxHQUFBWixzQkFBQSxDQUFBQyxPQUFBO0FBQTBCLFNBQUFELHVCQUFBYSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBQUEsU0FBQUcsUUFBQUgsQ0FBQSxFQUFBSSxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFQLENBQUEsT0FBQU0sTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQVIsQ0FBQSxHQUFBSSxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFO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
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _express = require("express");
8
8
  var _lodash = _interopRequireDefault(require("lodash"));
9
+ var _config = require("@verdaccio/config");
9
10
  var _middleware = require("@verdaccio/middleware");
10
11
  var _tarball = require("@verdaccio/tarball");
11
12
  var _utils = require("@verdaccio/utils");
@@ -33,9 +34,13 @@ function addPackageWebApi(storage, auth, config) {
33
34
  });
34
35
  const checkAllow = (name, remoteUser) => new Promise((resolve, reject) => {
35
36
  try {
37
+ var _config$web;
38
+ const isLoginEnabled = (config === null || config === void 0 ? void 0 : (_config$web = config.web) === null || _config$web === void 0 ? void 0 : _config$web.login) === true;
39
+ const anonymousRemoteUser = (0, _config.createAnonymousRemoteUser)();
40
+ const remoteUserAccess = !isLoginEnabled ? anonymousRemoteUser : remoteUser;
36
41
  auth.allow_access({
37
42
  packageName: name
38
- }, remoteUser, (err, allowed) => {
43
+ }, remoteUserAccess, (err, allowed) => {
39
44
  if (err) {
40
45
  resolve(false);
41
46
  }
@@ -166,4 +171,4 @@ function addPackageWebApi(storage, auth, config) {
166
171
  return pkgRouter;
167
172
  }
168
173
  var _default = exports.default = addPackageWebApi;
169
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXhwcmVzcyIsInJlcXVpcmUiLCJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9taWRkbGV3YXJlIiwiX3RhcmJhbGwiLCJfdXRpbHMiLCJfY29uc3RhbnRzIiwiX2xvZ2dlciIsIl91dGlsczIiLCJfdXRpbHMzIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwib3duS2V5cyIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsImdldE9yZGVyIiwib3JkZXIiLCJhZGRQYWNrYWdlV2ViQXBpIiwic3RvcmFnZSIsImF1dGgiLCJjb25maWciLCJwa2dSb3V0ZXIiLCJSb3V0ZXIiLCJjYW4iLCJhbGxvdyIsImJlZm9yZUFsbCIsInBhcmFtcyIsIm1lc3NhZ2UiLCJsb2dnZXIiLCJkZWJ1ZyIsImFmdGVyQWxsIiwiY2hlY2tBbGxvdyIsIm5hbWUiLCJyZW1vdGVVc2VyIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJhbGxvd19hY2Nlc3MiLCJwYWNrYWdlTmFtZSIsImVyciIsImFsbG93ZWQiLCJnZXQiLCJ3cmFwUGF0aCIsIldlYlVybHMiLCJwYWNrYWdlc19hbGwiLCJyZXEiLCJyZXMiLCJuZXh0IiwiZ2V0TG9jYWxEYXRhYmFzZSIsInBhY2thZ2VzIiwicHJvY2Vzc1BhY2thZ2VzIiwicGVybWlzc2lvbnMiLCJwYWNrZ2VzQ29weSIsInNsaWNlIiwicGtnIiwicGtnQ29weSIsImF1dGhvciIsImZvcm1hdEF1dGhvciIsImlzQWxsb3dlZCIsInJlbW90ZV91c2VyIiwid2ViIiwiYXZhdGFyIiwiZ2VuZXJhdGVHcmF2YXRhclVybCIsImVtYWlsIiwiZ3JhdmF0YXIiLCJfIiwiaXNOaWwiLCJkaXN0IiwiaXNOdWxsIiwidGFyYmFsbCIsImdldExvY2FsUmVnaXN0cnlUYXJiYWxsVXJpIiwicHJvdG9jb2wiLCJoZWFkZXJzIiwiaG9zdCIsImhvc3RuYW1lIiwidXJsX3ByZWZpeCIsImVycm9yIiwic29ydF9wYWNrYWdlcyIsInNvcnRCeU5hbWUiLCJFcnJvckNvZGUiLCJnZXRJbnRlcm5hbEVycm9yIiwicmVhZG1lX3BhY2thZ2Vfc2NvcGVkX3ZlcnNpb24iLCJyZWFkbWVfcGFja2FnZV92ZXJzaW9uIiwicmF3U2NvcGUiLCJzY29wZSIsImFkZFNjb3BlIiwicGFja2FnZSIsImdldFBhY2thZ2UiLCJ1cGxpbmtzTG9vayIsImNhbGxiYWNrIiwiaW5mbyIsInNldCIsIkhFQURFUl9UWVBFIiwiQ09OVEVOVF9UWVBFIiwiSEVBREVSUyIsIlRFWFRfUExBSU4iLCJwYXJzZVJlYWRtZSIsInJlYWRtZSIsInNpZGViYXJfc2NvcHBlZF9wYWNrYWdlIiwic2lkZWJhcl9wYWNrYWdlIiwia2VlcFVwTGlua0RhdGEiLCJ2IiwicXVlcnkiLCJzaWRlQmFySW5mbyIsImNsb25lIiwidmVyc2lvbnMiLCJjb252ZXJ0RGlzdFJlbW90ZVRvTG9jYWxUYXJiYWxsVXJscyIsImlzVmVyc2lvblZhbGlkIiwibGF0ZXN0IiwiX3NpZGVCYXJJbmZvIiwiRElTVF9UQUdTIiwic3RhdHVzIiwiSFRUUF9TVEFUVVMiLCJOT1RfRk9VTkQiLCJlbmQiLCJkZWxldGVQcm9wZXJ0aWVzIiwiYWRkR3JhdmF0YXJTdXBwb3J0IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwaS93ZWIvYXBpL3BhY2thZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgeyBXZWJVcmxzLCBhbGxvdyB9IGZyb20gJ0B2ZXJkYWNjaW8vbWlkZGxld2FyZSc7XG5pbXBvcnQge1xuICBjb252ZXJ0RGlzdFJlbW90ZVRvTG9jYWxUYXJiYWxsVXJscyxcbiAgZ2V0TG9jYWxSZWdpc3RyeVRhcmJhbGxVcmksXG59IGZyb20gJ0B2ZXJkYWNjaW8vdGFyYmFsbCc7XG5pbXBvcnQgeyBDb25maWcsIE1hbmlmZXN0IH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5pbXBvcnQgeyBhZGRHcmF2YXRhclN1cHBvcnQsIGZvcm1hdEF1dGhvciwgZ2VuZXJhdGVHcmF2YXRhclVybCB9IGZyb20gJ0B2ZXJkYWNjaW8vdXRpbHMnO1xuXG5pbXBvcnQgQXV0aCBmcm9tICcuLi8uLi8uLi9saWIvYXV0aCc7XG5pbXBvcnQgeyBESVNUX1RBR1MsIEhFQURFUlMsIEhFQURFUl9UWVBFLCBIVFRQX1NUQVRVUyB9IGZyb20gJy4uLy4uLy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgU3RvcmFnZSBmcm9tICcuLi8uLi8uLi9saWIvc3RvcmFnZSc7XG5pbXBvcnQge1xuICBFcnJvckNvZGUsXG4gIGFkZFNjb3BlLFxuICBkZWxldGVQcm9wZXJ0aWVzLFxuICBpc1ZlcnNpb25WYWxpZCxcbiAgcGFyc2VSZWFkbWUsXG4gIHNvcnRCeU5hbWUsXG59IGZyb20gJy4uLy4uLy4uL2xpYi91dGlscyc7XG5pbXBvcnQgeyAkTmV4dEZ1bmN0aW9uVmVyLCAkUmVxdWVzdEV4dGVuZCwgJFJlc3BvbnNlRXh0ZW5kLCAkU2lkZWJhclBhY2thZ2UgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQgeyB3cmFwUGF0aCB9IGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBnZXRPcmRlciA9IChvcmRlciA9ICdhc2MnKSA9PiB7XG4gIHJldHVybiBvcmRlciA9PT0gJ2FzYyc7XG59O1xuXG5leHBvcnQgdHlwZSBQYWNrY2FnZUV4dCA9IE1hbmlmZXN0ICYgeyBhdXRob3I6IGFueTsgZGlzdD86IHsgdGFyYmFsbDogc3RyaW5nIH0gfTtcblxuZnVuY3Rpb24gYWRkUGFja2FnZVdlYkFwaShzdG9yYWdlOiBTdG9yYWdlLCBhdXRoOiBBdXRoLCBjb25maWc6IENvbmZpZyk6IFJvdXRlciB7XG4gIC8qIGVzbGludCBuZXctY2FwOm9mZiAqL1xuICBjb25zdCBwa2dSb3V0ZXIgPSBSb3V0ZXIoKTtcbiAgY29uc3QgY2FuID0gYWxsb3coYXV0aCwge1xuICAgIGJlZm9yZUFsbDogKHBhcmFtcywgbWVzc2FnZSkgPT4ge1xuICAgICAgbG9nZ2VyLmRlYnVnKHBhcmFtcywgbWVzc2FnZSk7XG4gICAgfSxcbiAgICBhZnRlckFsbDogKHBhcmFtcywgbWVzc2FnZSkgPT4gbG9nZ2VyLmRlYnVnKHBhcmFtcywgbWVzc2FnZSksXG4gIH0pO1xuXG4gIGNvbnN0IGNoZWNrQWxsb3cgPSAobmFtZSwgcmVtb3RlVXNlcik6IFByb21pc2U8Ym9vbGVhbj4gPT5cbiAgICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KTogdm9pZCA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBhdXRoLmFsbG93X2FjY2Vzcyh7IHBhY2thZ2VOYW1lOiBuYW1lIH0sIHJlbW90ZVVzZXIsIChlcnIsIGFsbG93ZWQpOiB2b2lkID0+IHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzb2x2ZShhbGxvd2VkIGFzIGJvb2xlYW4pO1xuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAvLyBHZXQgbGlzdCBvZiBhbGwgdmlzaWJsZSBwYWNrYWdlXG4gIHBrZ1JvdXRlci5nZXQoXG4gICAgd3JhcFBhdGgoV2ViVXJscy5wYWNrYWdlc19hbGwpLFxuICAgIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgICAgc3RvcmFnZS5nZXRMb2NhbERhdGFiYXNlKGFzeW5jIGZ1bmN0aW9uIChlcnIsIHBhY2thZ2VzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cblxuICAgICAgICBhc3luYyBmdW5jdGlvbiBwcm9jZXNzUGFja2FnZXMocGFja2FnZXM6IFBhY2tjYWdlRXh0W10gPSBbXSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgICAgY29uc3QgcGVybWlzc2lvbnM6IFBhY2tjYWdlRXh0W10gPSBbXTtcbiAgICAgICAgICBjb25zdCBwYWNrZ2VzQ29weSA9IHBhY2thZ2VzLnNsaWNlKCk7XG4gICAgICAgICAgZm9yIChjb25zdCBwa2cgb2YgcGFja2dlc0NvcHkpIHtcbiAgICAgICAgICAgIGNvbnN0IHBrZ0NvcHkgPSB7IC4uLnBrZyB9O1xuICAgICAgICAgICAgcGtnQ29weS5hdXRob3IgPSBmb3JtYXRBdXRob3IocGtnLmF1dGhvcik7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCBpc0FsbG93ZWQgPSBhd2FpdCBjaGVja0FsbG93KHBrZy5uYW1lLCByZXEucmVtb3RlX3VzZXIpO1xuICAgICAgICAgICAgICBpZiAoaXNBbGxvd2VkKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbmZpZy53ZWIpIHtcbiAgICAgICAgICAgICAgICAgIHBrZ0NvcHkuYXV0aG9yLmF2YXRhciA9IGdlbmVyYXRlR3JhdmF0YXJVcmwoXG4gICAgICAgICAgICAgICAgICAgIHBrZ0NvcHkuYXV0aG9yLmVtYWlsLFxuICAgICAgICAgICAgICAgICAgICBjb25maWcud2ViLmdyYXZhdGFyXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIV8uaXNOaWwocGtnQ29weS5kaXN0KSAmJiAhXy5pc051bGwocGtnQ29weS5kaXN0LnRhcmJhbGwpKSB7XG4gICAgICAgICAgICAgICAgICBwa2dDb3B5LmRpc3QudGFyYmFsbCA9IGdldExvY2FsUmVnaXN0cnlUYXJiYWxsVXJpKFxuICAgICAgICAgICAgICAgICAgICBwa2dDb3B5LmRpc3QudGFyYmFsbCxcbiAgICAgICAgICAgICAgICAgICAgcGtnLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHsgcHJvdG9jb2w6IHJlcS5wcm90b2NvbCwgaGVhZGVyczogcmVxLmhlYWRlcnMgYXMgYW55LCBob3N0OiByZXEuaG9zdG5hbWUgfSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnLnVybF9wcmVmaXhcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBlcm1pc3Npb25zLnB1c2gocGtnQ29weSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICAgICAgeyBuYW1lOiBwa2cubmFtZSwgZXJyb3I6IGVyciB9LFxuICAgICAgICAgICAgICAgICdwZXJtaXNzaW9uIHByb2Nlc3MgZm9yIEB7bmFtZX0gaGFzIGZhaWxlZDogQHtlcnJvcn0nXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gcGVybWlzc2lvbnM7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IHdlYiB9ID0gY29uZmlnO1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGNvbnN0IG9yZGVyOiBib29sZWFuID0gY29uZmlnLndlYiA/IGdldE9yZGVyKHdlYi5zb3J0X3BhY2thZ2VzKSA6IHRydWU7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBuZXh0KHNvcnRCeU5hbWUoYXdhaXQgcHJvY2Vzc1BhY2thZ2VzKHBhY2thZ2VzKSwgb3JkZXIpKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBuZXh0KEVycm9yQ29kZS5nZXRJbnRlcm5hbEVycm9yKCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICk7XG5cbiAgLy8gR2V0IHBhY2thZ2UgcmVhZG1lXG4gIHBrZ1JvdXRlci5nZXQoXG4gICAgW3dyYXBQYXRoKFdlYlVybHMucmVhZG1lX3BhY2thZ2Vfc2NvcGVkX3ZlcnNpb24pLCB3cmFwUGF0aChXZWJVcmxzLnJlYWRtZV9wYWNrYWdlX3ZlcnNpb24pXSxcbiAgICBjYW4oJ2FjY2VzcycpLFxuICAgIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgICAgY29uc3QgcmF3U2NvcGUgPSByZXEucGFyYW1zLnNjb3BlOyAvLyBNYXkgaW5jbHVkZSAnQCdcbiAgICAgIGNvbnN0IHNjb3BlID0gcmF3U2NvcGUgPyByYXdTY29wZS5zbGljZSgxKSA6IG51bGw7IC8vIFJlbW92ZSAnQCcgaWYgcHJlc2VudFxuICAgICAgY29uc3QgcGFja2FnZU5hbWUgPSBzY29wZSA/IGFkZFNjb3BlKHNjb3BlLCByZXEucGFyYW1zLnBhY2thZ2UpIDogcmVxLnBhcmFtcy5wYWNrYWdlO1xuXG4gICAgICBzdG9yYWdlLmdldFBhY2thZ2Uoe1xuICAgICAgICBuYW1lOiBwYWNrYWdlTmFtZSxcbiAgICAgICAgdXBsaW5rc0xvb2s6IHRydWUsXG4gICAgICAgIHJlcSxcbiAgICAgICAgY2FsbGJhY2s6IGZ1bmN0aW9uIChlcnIsIGluZm8pOiB2b2lkIHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJlcy5zZXQoSEVBREVSX1RZUEUuQ09OVEVOVF9UWVBFLCBIRUFERVJTLlRFWFRfUExBSU4pO1xuICAgICAgICAgIG5leHQocGFyc2VSZWFkbWUoaW5mby5uYW1lLCBpbmZvLnJlYWRtZSkpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICApO1xuXG4gIHBrZ1JvdXRlci5nZXQoXG4gICAgW3dyYXBQYXRoKFdlYlVybHMuc2lkZWJhcl9zY29wcGVkX3BhY2thZ2UpLCB3cmFwUGF0aChXZWJVcmxzLnNpZGViYXJfcGFja2FnZSldLFxuICAgIGNhbignYWNjZXNzJyksXG4gICAgZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgICBjb25zdCByYXdTY29wZSA9IHJlcS5wYXJhbXMuc2NvcGU7IC8vIE1heSBpbmNsdWRlICdAJ1xuICAgICAgY29uc3Qgc2NvcGUgPSByYXdTY29wZSA/IHJhd1Njb3BlLnNsaWNlKDEpIDogbnVsbDsgLy8gUmVtb3ZlICdAJyBpZiBwcmVzZW50XG4gICAgICBjb25zdCBwYWNrYWdlTmFtZTogc3RyaW5nID0gc2NvcGUgPyBhZGRTY29wZShzY29wZSwgcmVxLnBhcmFtcy5wYWNrYWdlKSA6IHJlcS5wYXJhbXMucGFja2FnZTtcblxuICAgICAgc3RvcmFnZS5nZXRQYWNrYWdlKHtcbiAgICAgICAgbmFtZTogcGFja2FnZU5hbWUsXG4gICAgICAgIHVwbGlua3NMb29rOiB0cnVlLFxuICAgICAgICBrZWVwVXBMaW5rRGF0YTogdHJ1ZSxcbiAgICAgICAgcmVxLFxuICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24gKGVycjogRXJyb3IsIGluZm86ICRTaWRlYmFyUGFja2FnZSk6IHZvaWQge1xuICAgICAgICAgIGlmIChfLmlzTmlsKGVycikpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgdiB9ID0gcmVxLnF1ZXJ5O1xuICAgICAgICAgICAgbGV0IHNpZGVCYXJJbmZvOiBhbnkgPSBfLmNsb25lKGluZm8pO1xuICAgICAgICAgICAgc2lkZUJhckluZm8udmVyc2lvbnMgPSBjb252ZXJ0RGlzdFJlbW90ZVRvTG9jYWxUYXJiYWxsVXJscyhcbiAgICAgICAgICAgICAgaW5mbyxcbiAgICAgICAgICAgICAgeyBwcm90b2NvbDogcmVxLnByb3RvY29sLCBoZWFkZXJzOiByZXEuaGVhZGVycyBhcyBhbnksIGhvc3Q6IHJlcS5ob3N0bmFtZSB9LFxuICAgICAgICAgICAgICBjb25maWcudXJsX3ByZWZpeFxuICAgICAgICAgICAgKS52ZXJzaW9ucztcbiAgICAgICAgICAgIGlmIChpc1ZlcnNpb25WYWxpZChpbmZvLCB2KSkge1xuICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgIHNpZGVCYXJJbmZvLmxhdGVzdCA9IHNpZGVCYXJJbmZvLnZlcnNpb25zW3ZdO1xuICAgICAgICAgICAgICBzaWRlQmFySW5mby5sYXRlc3QuYXV0aG9yID0gZm9ybWF0QXV0aG9yKHNpZGVCYXJJbmZvLmxhdGVzdC5hdXRob3IpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgc2lkZUJhckluZm8ubGF0ZXN0ID0gc2lkZUJhckluZm8udmVyc2lvbnNbaW5mb1tESVNUX1RBR1NdLmxhdGVzdF07XG4gICAgICAgICAgICAgIGlmIChzaWRlQmFySW5mbz8ubGF0ZXN0KSB7XG4gICAgICAgICAgICAgICAgc2lkZUJhckluZm8ubGF0ZXN0LmF1dGhvciA9IGZvcm1hdEF1dGhvcihzaWRlQmFySW5mby5sYXRlc3QuYXV0aG9yKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLk5PVF9GT1VORCk7XG4gICAgICAgICAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2lkZUJhckluZm8gPSBkZWxldGVQcm9wZXJ0aWVzKFsncmVhZG1lJywgJ19hdHRhY2htZW50cycsICdfcmV2JywgJ25hbWUnXSwgc2lkZUJhckluZm8pO1xuICAgICAgICAgICAgaWYgKGNvbmZpZy53ZWIpIHtcbiAgICAgICAgICAgICAgc2lkZUJhckluZm8gPSBhZGRHcmF2YXRhclN1cHBvcnQoc2lkZUJhckluZm8sIGNvbmZpZy53ZWIuZ3JhdmF0YXIpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgc2lkZUJhckluZm8gPSBhZGRHcmF2YXRhclN1cHBvcnQoc2lkZUJhckluZm8pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV4dChzaWRlQmFySW5mbyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuTk9UX0ZPVU5EKTtcbiAgICAgICAgICAgIHJlcy5lbmQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gICk7XG5cbiAgcmV0dXJuIHBrZ1JvdXRlcjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYWRkUGFja2FnZVdlYkFwaTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsV0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBSixPQUFBO0FBS0EsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FBR0EsSUFBQU0sVUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sT0FBQSxHQUFBUCxPQUFBO0FB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
174
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXhwcmVzcyIsInJlcXVpcmUiLCJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jb25maWciLCJfbWlkZGxld2FyZSIsIl90YXJiYWxsIiwiX3V0aWxzIiwiX2NvbnN0YW50cyIsIl9sb2dnZXIiLCJfdXRpbHMyIiwiX3V0aWxzMyIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIm93bktleXMiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsImNhbGwiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJnZXRPcmRlciIsIm9yZGVyIiwiYWRkUGFja2FnZVdlYkFwaSIsInN0b3JhZ2UiLCJhdXRoIiwiY29uZmlnIiwicGtnUm91dGVyIiwiUm91dGVyIiwiY2FuIiwiYWxsb3ciLCJiZWZvcmVBbGwiLCJwYXJhbXMiLCJtZXNzYWdlIiwibG9nZ2VyIiwiZGVidWciLCJhZnRlckFsbCIsImNoZWNrQWxsb3ciLCJuYW1lIiwicmVtb3RlVXNlciIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiX2NvbmZpZyR3ZWIiLCJpc0xvZ2luRW5hYmxlZCIsIndlYiIsImxvZ2luIiwiYW5vbnltb3VzUmVtb3RlVXNlciIsImNyZWF0ZUFub255bW91c1JlbW90ZVVzZXIiLCJyZW1vdGVVc2VyQWNjZXNzIiwiYWxsb3dfYWNjZXNzIiwicGFja2FnZU5hbWUiLCJlcnIiLCJhbGxvd2VkIiwiZ2V0Iiwid3JhcFBhdGgiLCJXZWJVcmxzIiwicGFja2FnZXNfYWxsIiwicmVxIiwicmVzIiwibmV4dCIsImdldExvY2FsRGF0YWJhc2UiLCJwYWNrYWdlcyIsInByb2Nlc3NQYWNrYWdlcyIsInBlcm1pc3Npb25zIiwicGFja2dlc0NvcHkiLCJzbGljZSIsInBrZyIsInBrZ0NvcHkiLCJhdXRob3IiLCJmb3JtYXRBdXRob3IiLCJpc0FsbG93ZWQiLCJyZW1vdGVfdXNlciIsImF2YXRhciIsImdlbmVyYXRlR3JhdmF0YXJVcmwiLCJlbWFpbCIsImdyYXZhdGFyIiwiXyIsImlzTmlsIiwiZGlzdCIsImlzTnVsbCIsInRhcmJhbGwiLCJnZXRMb2NhbFJlZ2lzdHJ5VGFyYmFsbFVyaSIsInByb3RvY29sIiwiaGVhZGVycyIsImhvc3QiLCJob3N0bmFtZSIsInVybF9wcmVmaXgiLCJlcnJvciIsInNvcnRfcGFja2FnZXMiLCJzb3J0QnlOYW1lIiwiRXJyb3JDb2RlIiwiZ2V0SW50ZXJuYWxFcnJvciIsInJlYWRtZV9wYWNrYWdlX3Njb3BlZF92ZXJzaW9uIiwicmVhZG1lX3BhY2thZ2VfdmVyc2lvbiIsInJhd1Njb3BlIiwic2NvcGUiLCJhZGRTY29wZSIsInBhY2thZ2UiLCJnZXRQYWNrYWdlIiwidXBsaW5rc0xvb2siLCJjYWxsYmFjayIsImluZm8iLCJzZXQiLCJIRUFERVJfVFlQRSIsIkNPTlRFTlRfVFlQRSIsIkhFQURFUlMiLCJURVhUX1BMQUlOIiwicGFyc2VSZWFkbWUiLCJyZWFkbWUiLCJzaWRlYmFyX3Njb3BwZWRfcGFja2FnZSIsInNpZGViYXJfcGFja2FnZSIsImtlZXBVcExpbmtEYXRhIiwidiIsInF1ZXJ5Iiwic2lkZUJhckluZm8iLCJjbG9uZSIsInZlcnNpb25zIiwiY29udmVydERpc3RSZW1vdGVUb0xvY2FsVGFyYmFsbFVybHMiLCJpc1ZlcnNpb25WYWxpZCIsImxhdGVzdCIsIl9zaWRlQmFySW5mbyIsIkRJU1RfVEFHUyIsInN0YXR1cyIsIkhUVFBfU1RBVFVTIiwiTk9UX0ZPVU5EIiwiZW5kIiwiZGVsZXRlUHJvcGVydGllcyIsImFkZEdyYXZhdGFyU3VwcG9ydCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvd2ViL2FwaS9wYWNrYWdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlciB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgY3JlYXRlQW5vbnltb3VzUmVtb3RlVXNlciB9IGZyb20gJ0B2ZXJkYWNjaW8vY29uZmlnJztcbmltcG9ydCB7IFdlYlVybHMsIGFsbG93IH0gZnJvbSAnQHZlcmRhY2Npby9taWRkbGV3YXJlJztcbmltcG9ydCB7XG4gIGNvbnZlcnREaXN0UmVtb3RlVG9Mb2NhbFRhcmJhbGxVcmxzLFxuICBnZXRMb2NhbFJlZ2lzdHJ5VGFyYmFsbFVyaSxcbn0gZnJvbSAnQHZlcmRhY2Npby90YXJiYWxsJztcbmltcG9ydCB7IENvbmZpZywgTWFuaWZlc3QsIFJlbW90ZVVzZXIgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcbmltcG9ydCB7IGFkZEdyYXZhdGFyU3VwcG9ydCwgZm9ybWF0QXV0aG9yLCBnZW5lcmF0ZUdyYXZhdGFyVXJsIH0gZnJvbSAnQHZlcmRhY2Npby91dGlscyc7XG5cbmltcG9ydCBBdXRoIGZyb20gJy4uLy4uLy4uL2xpYi9hdXRoJztcbmltcG9ydCB7IERJU1RfVEFHUywgSEVBREVSUywgSEVBREVSX1RZUEUsIEhUVFBfU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi8uLi8uLi9saWIvbG9nZ2VyJztcbmltcG9ydCBTdG9yYWdlIGZyb20gJy4uLy4uLy4uL2xpYi9zdG9yYWdlJztcbmltcG9ydCB7XG4gIEVycm9yQ29kZSxcbiAgYWRkU2NvcGUsXG4gIGRlbGV0ZVByb3BlcnRpZXMsXG4gIGlzVmVyc2lvblZhbGlkLFxuICBwYXJzZVJlYWRtZSxcbiAgc29ydEJ5TmFtZSxcbn0gZnJvbSAnLi4vLi4vLi4vbGliL3V0aWxzJztcbmltcG9ydCB7ICROZXh0RnVuY3Rpb25WZXIsICRSZXF1ZXN0RXh0ZW5kLCAkUmVzcG9uc2VFeHRlbmQsICRTaWRlYmFyUGFja2FnZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IHdyYXBQYXRoIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IGdldE9yZGVyID0gKG9yZGVyID0gJ2FzYycpID0+IHtcbiAgcmV0dXJuIG9yZGVyID09PSAnYXNjJztcbn07XG5cbmV4cG9ydCB0eXBlIFBhY2tjYWdlRXh0ID0gTWFuaWZlc3QgJiB7IGF1dGhvcjogYW55OyBkaXN0PzogeyB0YXJiYWxsOiBzdHJpbmcgfSB9O1xuXG5mdW5jdGlvbiBhZGRQYWNrYWdlV2ViQXBpKHN0b3JhZ2U6IFN0b3JhZ2UsIGF1dGg6IEF1dGgsIGNvbmZpZzogQ29uZmlnKTogUm91dGVyIHtcbiAgLyogZXNsaW50IG5ldy1jYXA6b2ZmICovXG4gIGNvbnN0IHBrZ1JvdXRlciA9IFJvdXRlcigpO1xuICBjb25zdCBjYW4gPSBhbGxvdyhhdXRoLCB7XG4gICAgYmVmb3JlQWxsOiAocGFyYW1zLCBtZXNzYWdlKSA9PiB7XG4gICAgICBsb2dnZXIuZGVidWcocGFyYW1zLCBtZXNzYWdlKTtcbiAgICB9LFxuICAgIGFmdGVyQWxsOiAocGFyYW1zLCBtZXNzYWdlKSA9PiBsb2dnZXIuZGVidWcocGFyYW1zLCBtZXNzYWdlKSxcbiAgfSk7XG5cbiAgY29uc3QgY2hlY2tBbGxvdyA9IChuYW1lLCByZW1vdGVVc2VyKTogUHJvbWlzZTxib29sZWFuPiA9PlxuICAgIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpOiB2b2lkID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGlzTG9naW5FbmFibGVkID0gY29uZmlnPy53ZWI/LmxvZ2luID09PSB0cnVlO1xuICAgICAgICBjb25zdCBhbm9ueW1vdXNSZW1vdGVVc2VyOiBSZW1vdGVVc2VyID0gY3JlYXRlQW5vbnltb3VzUmVtb3RlVXNlcigpO1xuICAgICAgICBjb25zdCByZW1vdGVVc2VyQWNjZXNzID0gIWlzTG9naW5FbmFibGVkID8gYW5vbnltb3VzUmVtb3RlVXNlciA6IHJlbW90ZVVzZXI7XG4gICAgICAgIGF1dGguYWxsb3dfYWNjZXNzKHsgcGFja2FnZU5hbWU6IG5hbWUgfSwgcmVtb3RlVXNlckFjY2VzcywgKGVyciwgYWxsb3dlZCk6IHZvaWQgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXNvbHZlKGFsbG93ZWQgYXMgYm9vbGVhbik7XG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIC8vIEdldCBsaXN0IG9mIGFsbCB2aXNpYmxlIHBhY2thZ2VcbiAgcGtnUm91dGVyLmdldChcbiAgICB3cmFwUGF0aChXZWJVcmxzLnBhY2thZ2VzX2FsbCksXG4gICAgZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgICBzdG9yYWdlLmdldExvY2FsRGF0YWJhc2UoYXN5bmMgZnVuY3Rpb24gKGVyciwgcGFja2FnZXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuXG4gICAgICAgIGFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NQYWNrYWdlcyhwYWNrYWdlczogUGFja2NhZ2VFeHRbXSA9IFtdKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgICBjb25zdCBwZXJtaXNzaW9uczogUGFja2NhZ2VFeHRbXSA9IFtdO1xuICAgICAgICAgIGNvbnN0IHBhY2tnZXNDb3B5ID0gcGFja2FnZXMuc2xpY2UoKTtcbiAgICAgICAgICBmb3IgKGNvbnN0IHBrZyBvZiBwYWNrZ2VzQ29weSkge1xuICAgICAgICAgICAgY29uc3QgcGtnQ29weSA9IHsgLi4ucGtnIH07XG4gICAgICAgICAgICBwa2dDb3B5LmF1dGhvciA9IGZvcm1hdEF1dGhvcihwa2cuYXV0aG9yKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IGlzQWxsb3dlZCA9IGF3YWl0IGNoZWNrQWxsb3cocGtnLm5hbWUsIHJlcS5yZW1vdGVfdXNlcik7XG4gICAgICAgICAgICAgIGlmIChpc0FsbG93ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoY29uZmlnLndlYikge1xuICAgICAgICAgICAgICAgICAgcGtnQ29weS5hdXRob3IuYXZhdGFyID0gZ2VuZXJhdGVHcmF2YXRhclVybChcbiAgICAgICAgICAgICAgICAgICAgcGtnQ29weS5hdXRob3IuZW1haWwsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZy53ZWIuZ3JhdmF0YXJcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghXy5pc05pbChwa2dDb3B5LmRpc3QpICYmICFfLmlzTnVsbChwa2dDb3B5LmRpc3QudGFyYmFsbCkpIHtcbiAgICAgICAgICAgICAgICAgIHBrZ0NvcHkuZGlzdC50YXJiYWxsID0gZ2V0TG9jYWxSZWdpc3RyeVRhcmJhbGxVcmkoXG4gICAgICAgICAgICAgICAgICAgIHBrZ0NvcHkuZGlzdC50YXJiYWxsLFxuICAgICAgICAgICAgICAgICAgICBwa2cubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgeyBwcm90b2NvbDogcmVxLnByb3RvY29sLCBoZWFkZXJzOiByZXEuaGVhZGVycyBhcyBhbnksIGhvc3Q6IHJlcS5ob3N0bmFtZSB9LFxuICAgICAgICAgICAgICAgICAgICBjb25maWcudXJsX3ByZWZpeFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGVybWlzc2lvbnMucHVzaChwa2dDb3B5KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcbiAgICAgICAgICAgICAgICB7IG5hbWU6IHBrZy5uYW1lLCBlcnJvcjogZXJyIH0sXG4gICAgICAgICAgICAgICAgJ3Blcm1pc3Npb24gcHJvY2VzcyBmb3IgQHtuYW1lfSBoYXMgZmFpbGVkOiBAe2Vycm9yfSdcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBwZXJtaXNzaW9ucztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgd2ViIH0gPSBjb25maWc7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgY29uc3Qgb3JkZXI6IGJvb2xlYW4gPSBjb25maWcud2ViID8gZ2V0T3JkZXIod2ViLnNvcnRfcGFja2FnZXMpIDogdHJ1ZTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIG5leHQoc29ydEJ5TmFtZShhd2FpdCBwcm9jZXNzUGFja2FnZXMocGFja2FnZXMpLCBvcmRlcikpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIG5leHQoRXJyb3JDb2RlLmdldEludGVybmFsRXJyb3IoKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgKTtcblxuICAvLyBHZXQgcGFja2FnZSByZWFkbWVcbiAgcGtnUm91dGVyLmdldChcbiAgICBbd3JhcFBhdGgoV2ViVXJscy5yZWFkbWVfcGFja2FnZV9zY29wZWRfdmVyc2lvbiksIHdyYXBQYXRoKFdlYlVybHMucmVhZG1lX3BhY2thZ2VfdmVyc2lvbildLFxuICAgIGNhbignYWNjZXNzJyksXG4gICAgZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgICBjb25zdCByYXdTY29wZSA9IHJlcS5wYXJhbXMuc2NvcGU7IC8vIE1heSBpbmNsdWRlICdAJ1xuICAgICAgY29uc3Qgc2NvcGUgPSByYXdTY29wZSA/IHJhd1Njb3BlLnNsaWNlKDEpIDogbnVsbDsgLy8gUmVtb3ZlICdAJyBpZiBwcmVzZW50XG4gICAgICBjb25zdCBwYWNrYWdlTmFtZSA9IHNjb3BlID8gYWRkU2NvcGUoc2NvcGUsIHJlcS5wYXJhbXMucGFja2FnZSkgOiByZXEucGFyYW1zLnBhY2thZ2U7XG5cbiAgICAgIHN0b3JhZ2UuZ2V0UGFja2FnZSh7XG4gICAgICAgIG5hbWU6IHBhY2thZ2VOYW1lLFxuICAgICAgICB1cGxpbmtzTG9vazogdHJ1ZSxcbiAgICAgICAgcmVxLFxuICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24gKGVyciwgaW5mbyk6IHZvaWQge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXh0KGVycik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmVzLnNldChIRUFERVJfVFlQRS5DT05URU5UX1RZUEUsIEhFQURFUlMuVEVYVF9QTEFJTik7XG4gICAgICAgICAgbmV4dChwYXJzZVJlYWRtZShpbmZvLm5hbWUsIGluZm8ucmVhZG1lKSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gICk7XG5cbiAgcGtnUm91dGVyLmdldChcbiAgICBbd3JhcFBhdGgoV2ViVXJscy5zaWRlYmFyX3Njb3BwZWRfcGFja2FnZSksIHdyYXBQYXRoKFdlYlVybHMuc2lkZWJhcl9wYWNrYWdlKV0sXG4gICAgY2FuKCdhY2Nlc3MnKSxcbiAgICBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICAgIGNvbnN0IHJhd1Njb3BlID0gcmVxLnBhcmFtcy5zY29wZTsgLy8gTWF5IGluY2x1ZGUgJ0AnXG4gICAgICBjb25zdCBzY29wZSA9IHJhd1Njb3BlID8gcmF3U2NvcGUuc2xpY2UoMSkgOiBudWxsOyAvLyBSZW1vdmUgJ0AnIGlmIHByZXNlbnRcbiAgICAgIGNvbnN0IHBhY2thZ2VOYW1lOiBzdHJpbmcgPSBzY29wZSA/IGFkZFNjb3BlKHNjb3BlLCByZXEucGFyYW1zLnBhY2thZ2UpIDogcmVxLnBhcmFtcy5wYWNrYWdlO1xuXG4gICAgICBzdG9yYWdlLmdldFBhY2thZ2Uoe1xuICAgICAgICBuYW1lOiBwYWNrYWdlTmFtZSxcbiAgICAgICAgdXBsaW5rc0xvb2s6IHRydWUsXG4gICAgICAgIGtlZXBVcExpbmtEYXRhOiB0cnVlLFxuICAgICAgICByZXEsXG4gICAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbiAoZXJyOiBFcnJvciwgaW5mbzogJFNpZGViYXJQYWNrYWdlKTogdm9pZCB7XG4gICAgICAgICAgaWYgKF8uaXNOaWwoZXJyKSkge1xuICAgICAgICAgICAgY29uc3QgeyB2IH0gPSByZXEucXVlcnk7XG4gICAgICAgICAgICBsZXQgc2lkZUJhckluZm86IGFueSA9IF8uY2xvbmUoaW5mbyk7XG4gICAgICAgICAgICBzaWRlQmFySW5mby52ZXJzaW9ucyA9IGNvbnZlcnREaXN0UmVtb3RlVG9Mb2NhbFRhcmJhbGxVcmxzKFxuICAgICAgICAgICAgICBpbmZvLFxuICAgICAgICAgICAgICB7IHByb3RvY29sOiByZXEucHJvdG9jb2wsIGhlYWRlcnM6IHJlcS5oZWFkZXJzIGFzIGFueSwgaG9zdDogcmVxLmhvc3RuYW1lIH0sXG4gICAgICAgICAgICAgIGNvbmZpZy51cmxfcHJlZml4XG4gICAgICAgICAgICApLnZlcnNpb25zO1xuICAgICAgICAgICAgaWYgKGlzVmVyc2lvblZhbGlkKGluZm8sIHYpKSB7XG4gICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgc2lkZUJhckluZm8ubGF0ZXN0ID0gc2lkZUJhckluZm8udmVyc2lvbnNbdl07XG4gICAgICAgICAgICAgIHNpZGVCYXJJbmZvLmxhdGVzdC5hdXRob3IgPSBmb3JtYXRBdXRob3Ioc2lkZUJhckluZm8ubGF0ZXN0LmF1dGhvcik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzaWRlQmFySW5mby5sYXRlc3QgPSBzaWRlQmFySW5mby52ZXJzaW9uc1tpbmZvW0RJU1RfVEFHU10ubGF0ZXN0XTtcbiAgICAgICAgICAgICAgaWYgKHNpZGVCYXJJbmZvPy5sYXRlc3QpIHtcbiAgICAgICAgICAgICAgICBzaWRlQmFySW5mby5sYXRlc3QuYXV0aG9yID0gZm9ybWF0QXV0aG9yKHNpZGVCYXJJbmZvLmxhdGVzdC5hdXRob3IpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuTk9UX0ZPVU5EKTtcbiAgICAgICAgICAgICAgICByZXMuZW5kKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzaWRlQmFySW5mbyA9IGRlbGV0ZVByb3BlcnRpZXMoWydyZWFkbWUnLCAnX2F0dGFjaG1lbnRzJywgJ19yZXYnLCAnbmFtZSddLCBzaWRlQmFySW5mbyk7XG4gICAgICAgICAgICBpZiAoY29uZmlnLndlYikge1xuICAgICAgICAgICAgICBzaWRlQmFySW5mbyA9IGFkZEdyYXZhdGFyU3VwcG9ydChzaWRlQmFySW5mbywgY29uZmlnLndlYi5ncmF2YXRhcik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzaWRlQmFySW5mbyA9IGFkZEdyYXZhdGFyU3VwcG9ydChzaWRlQmFySW5mbyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuZXh0KHNpZGVCYXJJbmZvKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5OT1RfRk9VTkQpO1xuICAgICAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgKTtcblxuICByZXR1cm4gcGtnUm91dGVyO1xufVxuXG5leHBvcnQgZGVmYXVsdCBhZGRQYWNrYWdlV2ViQXBpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxPQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxRQUFBLEdBQUFMLE9BQUE7QUFLQSxJQUFBTSxNQUFBLEdBQUFOLE9BQUE7QUFHQSxJQUFBTyxVQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxPQUFBLEdBQUFSLE9BQUE7QUFFQSxJQUFBUyxPQUFBLEdBQUFULE9BQUE7QUFTQSxJQUFBVSxPQUFBLEdBQUFWLE9BQUE7QUFBbUMsU0FBQUUsdUJBQUFTLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBRyxRQUFBSCxDQUFBLEVBQUFJLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQVAsQ0FBQSxPQUFBTSxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBUixDQUFBLEdBQUFJLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFYLENBQUEsRUFBQUksQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUks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
@@ -14,8 +14,7 @@ var _loaders = require("@verdaccio/loaders");
14
14
  var _logger = require("@verdaccio/logger");
15
15
  var _middleware = require("@verdaccio/middleware");
16
16
  var _api = _interopRequireDefault(require("./api"));
17
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
19
18
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
19
  const debug = (0, _debug.default)('verdaccio:web');
21
20
  const PLUGIN_UI_PREFIX = exports.PLUGIN_UI_PREFIX = 'verdaccio-theme';
@@ -77,4 +76,4 @@ var _default = async (config, auth, storage, logger) => {
77
76
  return router;
78
77
  };
79
78
  exports.default = _default;
80
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVidWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9leHByZXNzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfbG9kYXNoIiwiX2NvcmUiLCJfbG9hZGVycyIsIl9sb2dnZXIiLCJfbWlkZGxld2FyZSIsIl9hcGkiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJkZWJ1ZyIsImJ1aWxkRGVidWciLCJQTFVHSU5fVUlfUFJFRklYIiwiZXhwb3J0cyIsIkRFRkFVTFRfUExVR0lOX1VJX1RIRU1FIiwibG9hZFRoZW1lIiwiY29uZmlnIiwiXyIsImlzTmlsIiwidGhlbWUiLCJfY29uZmlnJHNlcnZlclNldHRpbmciLCJfY29uZmlnJHNlcnZlclNldHRpbmcyIiwicGx1Z2luIiwiYXN5bmNMb2FkUGx1Z2luIiwibG9nZ2VyIiwic3RhdGljUGF0aCIsIm1hbmlmZXN0IiwibWFuaWZlc3RGaWxlcyIsInNlcnZlclNldHRpbmdzIiwicGx1Z2luUHJlZml4IiwiUExVR0lOX0NBVEVHT1JZIiwiVEhFTUUiLCJsZW5ndGgiLCJ3YXJuIiwiaGVhZCIsImxvY2FsV2ViRW5kcG9pbnRzQXBpIiwiYXV0aCIsInN0b3JhZ2UiLCJyb3V0ZSIsIlJvdXRlciIsInBhcmFtIiwidmFsaWRhdGVQYWNrYWdlIiwidmFsaWRhdGVOYW1lIiwidXNlIiwiZXhwcmVzcyIsInVybGVuY29kZWQiLCJleHRlbmRlZCIsInNldFNlY3VyaXR5V2ViSGVhZGVycyIsImFwaUpXVG1pZGRsZXdhcmUiLCJ3ZWJFbmRwb2ludHNBcGkiLCJfZGVmYXVsdCIsInBsdWdpbk9wdGlvbnMiLCJ3ZWIiLCJpbmZvIiwibmFtZSIsInBsdWdpbkNhdGVnb3J5Iiwicm91dGVyIiwicmVuZGVyV2ViTWlkZGxld2FyZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvd2ViL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBleHByZXNzLCB7IFJvdXRlciB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgUExVR0lOX0NBVEVHT1JZIH0gZnJvbSAnQHZlcmRhY2Npby9jb3JlJztcbmltcG9ydCB7IGFzeW5jTG9hZFBsdWdpbiB9IGZyb20gJ0B2ZXJkYWNjaW8vbG9hZGVycyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICdAdmVyZGFjY2lvL2xvZ2dlcic7XG5pbXBvcnQge1xuICByZW5kZXJXZWJNaWRkbGV3YXJlLFxuICBzZXRTZWN1cml0eVdlYkhlYWRlcnMsXG4gIHZhbGlkYXRlTmFtZSxcbiAgdmFsaWRhdGVQYWNrYWdlLFxufSBmcm9tICdAdmVyZGFjY2lvL21pZGRsZXdhcmUnO1xuXG5pbXBvcnQgd2ViRW5kcG9pbnRzQXBpIGZyb20gJy4vYXBpJztcblxuY29uc3QgZGVidWcgPSBidWlsZERlYnVnKCd2ZXJkYWNjaW86d2ViJyk7XG5leHBvcnQgY29uc3QgUExVR0lOX1VJX1BSRUZJWCA9ICd2ZXJkYWNjaW8tdGhlbWUnO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUExVR0lOX1VJX1RIRU1FID0gJ0B2ZXJkYWNjaW8vdWktdGhlbWUnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZFRoZW1lKGNvbmZpZzogYW55KSB7XG4gIGlmIChfLmlzTmlsKGNvbmZpZy50aGVtZSkgPT09IGZhbHNlKSB7XG4gICAgY29uc3QgcGx1Z2luID0gYXdhaXQgYXN5bmNMb2FkUGx1Z2luKFxuICAgICAgY29uZmlnLnRoZW1lLFxuICAgICAgeyBjb25maWcsIGxvZ2dlciB9LFxuICAgICAgLy8gVE9ETzogYWRkIHR5cGVzIHsgc3RhdGljUGF0aDogc3RyaW5nOyBtYW5pZmVzdDogdW5rbm93bjsgbWFuaWZlc3RGaWxlczogdW5rbm93biB9XG4gICAgICBmdW5jdGlvbiAocGx1Z2luOiBhbnkpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICAgLSBgc3RhdGljUGF0aGA6IGlzIHRoZSBzYW1lIGRhdGEgcmV0dXJuZWQgaW4gVmVyZGFjY2lvIDUuXG4gICAgICAgICAgICAgICAgIC0gYG1hbmlmZXN0YDogQSB3ZWJwYWNrIG1hbmlmZXN0IG9iamVjdC5cbiAgICAgICAgICAgICAgICAgLSBgbWFuaWZlc3RGaWxlc2A6IEEgb2JqZWN0IHdpdGggb25lIHByb3BlcnR5IGBqc2AgYW5kIHRoZSBhcnJheSAob3JkZXIgbWF0dGVycykgb2YgdGhlIG1hbmlmZXN0IGlkIHRvIGJlIGxvYWRlZCBpbiB0aGUgdGVtcGxhdGUgZHluYW1pY2FsbHkuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgIHJldHVybiBwbHVnaW4uc3RhdGljUGF0aCAmJiBwbHVnaW4ubWFuaWZlc3QgJiYgcGx1Z2luLm1hbmlmZXN0RmlsZXM7XG4gICAgICB9LFxuICAgICAgdHJ1ZSxcbiAgICAgIGNvbmZpZz8uc2VydmVyU2V0dGluZ3M/LnBsdWdpblByZWZpeCA/PyBQTFVHSU5fVUlfUFJFRklYLFxuICAgICAgUExVR0lOX0NBVEVHT1JZLlRIRU1FXG4gICAgKTtcbiAgICBpZiAocGx1Z2luLmxlbmd0aCA+IDEpIHtcbiAgICAgIGxvZ2dlci53YXJuKCdtdWx0aXBsZSB1aSB0aGVtZXMgYXJlIG5vdCBzdXBwb3J0ZWQ7IG9ubHkgdGhlIGZpcnN0IHBsdWdpbiBpcyB1c2VkJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIF8uaGVhZChwbHVnaW4pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbFdlYkVuZHBvaW50c0FwaShhdXRoLCBzdG9yYWdlLCBjb25maWcpOiBSb3V0ZXIge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbmV3LWNhcFxuICBjb25zdCByb3V0ZSA9IFJvdXRlcigpO1xuICAvLyB2YWxpZGF0ZSBhbGwgb2YgdGhlc2UgcGFyYW1zIGFzIGEgcGFja2FnZSBuYW1lXG4gIC8vIHRoaXMgbWlnaHQgYmUgdG9vIGhhcnNoLCBzbyBhc2sgaWYgaXQgY2F1c2VzIHRyb3VibGU9XG4gIHJvdXRlLnBhcmFtKCdwYWNrYWdlJywgdmFsaWRhdGVQYWNrYWdlKTtcbiAgcm91dGUucGFyYW0oJ2ZpbGVuYW1lJywgdmFsaWRhdGVOYW1lKTtcbiAgcm91dGUucGFyYW0oJ3ZlcnNpb24nLCB2YWxpZGF0ZU5hbWUpO1xuICByb3V0ZS51c2UoZXhwcmVzcy51cmxlbmNvZGVkKHsgZXh0ZW5kZWQ6IGZhbHNlIH0pKTtcbiAgcm91dGUudXNlKHNldFNlY3VyaXR5V2ViSGVhZGVycyk7XG4gIHJvdXRlLnVzZShhdXRoLmFwaUpXVG1pZGRsZXdhcmUoKSk7XG4gIHJvdXRlLnVzZSh3ZWJFbmRwb2ludHNBcGkoYXV0aCwgc3RvcmFnZSwgY29uZmlnKSk7XG5cbiAgcmV0dXJuIHJvdXRlO1xufVxuXG5leHBvcnQgZGVmYXVsdCBhc3luYyAoY29uZmlnLCBhdXRoLCBzdG9yYWdlLCBsb2dnZXIpID0+IHtcbiAgbGV0IHBsdWdpbk9wdGlvbnMgPSBhd2FpdCBsb2FkVGhlbWUoY29uZmlnKTtcbiAgaWYgKCFwbHVnaW5PcHRpb25zKSB7XG4gICAgcGx1Z2luT3B0aW9ucyA9IHJlcXVpcmUoREVGQVVMVF9QTFVHSU5fVUlfVEhFTUUpKGNvbmZpZy53ZWIpO1xuICAgIGxvZ2dlci5pbmZvKFxuICAgICAgeyBuYW1lOiBERUZBVUxUX1BMVUdJTl9VSV9USEVNRSwgcGx1Z2luQ2F0ZWdvcnk6IFBMVUdJTl9DQVRFR09SWS5USEVNRSB9LFxuICAgICAgJ3BsdWdpbiBAe25hbWV9IHN1Y2Nlc3NmdWxseSBsb2FkZWQgKEB7cGx1Z2luQ2F0ZWdvcnl9KSdcbiAgICApO1xuICB9XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuZXctY2FwXG4gIGNvbnN0IHJvdXRlciA9IFJvdXRlcigpO1xuICAvLyBAdHMtaWdub3JlXG4gIHJvdXRlci51c2UoJy8nLCByZW5kZXJXZWJNaWRkbGV3YXJlKGNvbmZpZywgYXV0aC5hcGlKV1RtaWRkbGV3YXJlKCksIHBsdWdpbk9wdGlvbnMpKTtcbiAgLy8gd2ViIGVuZHBvaW50cywgc2VhcmNoLCBwYWNrYWdlcywgZXRjXG4gIHJvdXRlci51c2UobG9jYWxXZWJFbmRwb2ludHNBcGkoYXV0aCwgc3RvcmFnZSwgY29uZmlnKSk7XG4gIHJldHVybiByb3V0ZXI7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFJLEtBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFFBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE9BQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFdBQUEsR0FBQVAsT0FBQTtBQU9BLElBQUFRLElBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUFvQyxTQUFBUyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBUix3QkFBQVEsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFdBQUFLLE9BQUEsRUFBQUwsQ0FBQSxR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
79
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVidWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9leHByZXNzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfbG9kYXNoIiwiX2NvcmUiLCJfbG9hZGVycyIsIl9sb2dnZXIiLCJfbWlkZGxld2FyZSIsIl9hcGkiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJkZWJ1ZyIsImJ1aWxkRGVidWciLCJQTFVHSU5fVUlfUFJFRklYIiwiZXhwb3J0cyIsIkRFRkFVTFRfUExVR0lOX1VJX1RIRU1FIiwibG9hZFRoZW1lIiwiY29uZmlnIiwiXyIsImlzTmlsIiwidGhlbWUiLCJfY29uZmlnJHNlcnZlclNldHRpbmciLCJfY29uZmlnJHNlcnZlclNldHRpbmcyIiwicGx1Z2luIiwiYXN5bmNMb2FkUGx1Z2luIiwibG9nZ2VyIiwic3RhdGljUGF0aCIsIm1hbmlmZXN0IiwibWFuaWZlc3RGaWxlcyIsInNlcnZlclNldHRpbmdzIiwicGx1Z2luUHJlZml4IiwiUExVR0lOX0NBVEVHT1JZIiwiVEhFTUUiLCJsZW5ndGgiLCJ3YXJuIiwiaGVhZCIsImxvY2FsV2ViRW5kcG9pbnRzQXBpIiwiYXV0aCIsInN0b3JhZ2UiLCJyb3V0ZSIsIlJvdXRlciIsInBhcmFtIiwidmFsaWRhdGVQYWNrYWdlIiwidmFsaWRhdGVOYW1lIiwidXNlIiwiZXhwcmVzcyIsInVybGVuY29kZWQiLCJleHRlbmRlZCIsInNldFNlY3VyaXR5V2ViSGVhZGVycyIsImFwaUpXVG1pZGRsZXdhcmUiLCJ3ZWJFbmRwb2ludHNBcGkiLCJfZGVmYXVsdCIsInBsdWdpbk9wdGlvbnMiLCJ3ZWIiLCJpbmZvIiwibmFtZSIsInBsdWdpbkNhdGVnb3J5Iiwicm91dGVyIiwicmVuZGVyV2ViTWlkZGxld2FyZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvd2ViL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBleHByZXNzLCB7IFJvdXRlciB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgUExVR0lOX0NBVEVHT1JZIH0gZnJvbSAnQHZlcmRhY2Npby9jb3JlJztcbmltcG9ydCB7IGFzeW5jTG9hZFBsdWdpbiB9IGZyb20gJ0B2ZXJkYWNjaW8vbG9hZGVycyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICdAdmVyZGFjY2lvL2xvZ2dlcic7XG5pbXBvcnQge1xuICByZW5kZXJXZWJNaWRkbGV3YXJlLFxuICBzZXRTZWN1cml0eVdlYkhlYWRlcnMsXG4gIHZhbGlkYXRlTmFtZSxcbiAgdmFsaWRhdGVQYWNrYWdlLFxufSBmcm9tICdAdmVyZGFjY2lvL21pZGRsZXdhcmUnO1xuXG5pbXBvcnQgd2ViRW5kcG9pbnRzQXBpIGZyb20gJy4vYXBpJztcblxuY29uc3QgZGVidWcgPSBidWlsZERlYnVnKCd2ZXJkYWNjaW86d2ViJyk7XG5leHBvcnQgY29uc3QgUExVR0lOX1VJX1BSRUZJWCA9ICd2ZXJkYWNjaW8tdGhlbWUnO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUExVR0lOX1VJX1RIRU1FID0gJ0B2ZXJkYWNjaW8vdWktdGhlbWUnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZFRoZW1lKGNvbmZpZzogYW55KSB7XG4gIGlmIChfLmlzTmlsKGNvbmZpZy50aGVtZSkgPT09IGZhbHNlKSB7XG4gICAgY29uc3QgcGx1Z2luID0gYXdhaXQgYXN5bmNMb2FkUGx1Z2luKFxuICAgICAgY29uZmlnLnRoZW1lLFxuICAgICAgeyBjb25maWcsIGxvZ2dlciB9LFxuICAgICAgLy8gVE9ETzogYWRkIHR5cGVzIHsgc3RhdGljUGF0aDogc3RyaW5nOyBtYW5pZmVzdDogdW5rbm93bjsgbWFuaWZlc3RGaWxlczogdW5rbm93biB9XG4gICAgICBmdW5jdGlvbiAocGx1Z2luOiBhbnkpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICAgLSBgc3RhdGljUGF0aGA6IGlzIHRoZSBzYW1lIGRhdGEgcmV0dXJuZWQgaW4gVmVyZGFjY2lvIDUuXG4gICAgICAgICAgICAgICAgIC0gYG1hbmlmZXN0YDogQSB3ZWJwYWNrIG1hbmlmZXN0IG9iamVjdC5cbiAgICAgICAgICAgICAgICAgLSBgbWFuaWZlc3RGaWxlc2A6IEEgb2JqZWN0IHdpdGggb25lIHByb3BlcnR5IGBqc2AgYW5kIHRoZSBhcnJheSAob3JkZXIgbWF0dGVycykgb2YgdGhlIG1hbmlmZXN0IGlkIHRvIGJlIGxvYWRlZCBpbiB0aGUgdGVtcGxhdGUgZHluYW1pY2FsbHkuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgIHJldHVybiBwbHVnaW4uc3RhdGljUGF0aCAmJiBwbHVnaW4ubWFuaWZlc3QgJiYgcGx1Z2luLm1hbmlmZXN0RmlsZXM7XG4gICAgICB9LFxuICAgICAgdHJ1ZSxcbiAgICAgIGNvbmZpZz8uc2VydmVyU2V0dGluZ3M/LnBsdWdpblByZWZpeCA/PyBQTFVHSU5fVUlfUFJFRklYLFxuICAgICAgUExVR0lOX0NBVEVHT1JZLlRIRU1FXG4gICAgKTtcbiAgICBpZiAocGx1Z2luLmxlbmd0aCA+IDEpIHtcbiAgICAgIGxvZ2dlci53YXJuKCdtdWx0aXBsZSB1aSB0aGVtZXMgYXJlIG5vdCBzdXBwb3J0ZWQ7IG9ubHkgdGhlIGZpcnN0IHBsdWdpbiBpcyB1c2VkJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIF8uaGVhZChwbHVnaW4pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbFdlYkVuZHBvaW50c0FwaShhdXRoLCBzdG9yYWdlLCBjb25maWcpOiBSb3V0ZXIge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbmV3LWNhcFxuICBjb25zdCByb3V0ZSA9IFJvdXRlcigpO1xuICAvLyB2YWxpZGF0ZSBhbGwgb2YgdGhlc2UgcGFyYW1zIGFzIGEgcGFja2FnZSBuYW1lXG4gIC8vIHRoaXMgbWlnaHQgYmUgdG9vIGhhcnNoLCBzbyBhc2sgaWYgaXQgY2F1c2VzIHRyb3VibGU9XG4gIHJvdXRlLnBhcmFtKCdwYWNrYWdlJywgdmFsaWRhdGVQYWNrYWdlKTtcbiAgcm91dGUucGFyYW0oJ2ZpbGVuYW1lJywgdmFsaWRhdGVOYW1lKTtcbiAgcm91dGUucGFyYW0oJ3ZlcnNpb24nLCB2YWxpZGF0ZU5hbWUpO1xuICByb3V0ZS51c2UoZXhwcmVzcy51cmxlbmNvZGVkKHsgZXh0ZW5kZWQ6IGZhbHNlIH0pKTtcbiAgcm91dGUudXNlKHNldFNlY3VyaXR5V2ViSGVhZGVycyk7XG4gIHJvdXRlLnVzZShhdXRoLmFwaUpXVG1pZGRsZXdhcmUoKSk7XG4gIHJvdXRlLnVzZSh3ZWJFbmRwb2ludHNBcGkoYXV0aCwgc3RvcmFnZSwgY29uZmlnKSk7XG5cbiAgcmV0dXJuIHJvdXRlO1xufVxuXG5leHBvcnQgZGVmYXVsdCBhc3luYyAoY29uZmlnLCBhdXRoLCBzdG9yYWdlLCBsb2dnZXIpID0+IHtcbiAgbGV0IHBsdWdpbk9wdGlvbnMgPSBhd2FpdCBsb2FkVGhlbWUoY29uZmlnKTtcbiAgaWYgKCFwbHVnaW5PcHRpb25zKSB7XG4gICAgcGx1Z2luT3B0aW9ucyA9IHJlcXVpcmUoREVGQVVMVF9QTFVHSU5fVUlfVEhFTUUpKGNvbmZpZy53ZWIpO1xuICAgIGxvZ2dlci5pbmZvKFxuICAgICAgeyBuYW1lOiBERUZBVUxUX1BMVUdJTl9VSV9USEVNRSwgcGx1Z2luQ2F0ZWdvcnk6IFBMVUdJTl9DQVRFR09SWS5USEVNRSB9LFxuICAgICAgJ3BsdWdpbiBAe25hbWV9IHN1Y2Nlc3NmdWxseSBsb2FkZWQgKEB7cGx1Z2luQ2F0ZWdvcnl9KSdcbiAgICApO1xuICB9XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuZXctY2FwXG4gIGNvbnN0IHJvdXRlciA9IFJvdXRlcigpO1xuICAvLyBAdHMtaWdub3JlXG4gIHJvdXRlci51c2UoJy8nLCByZW5kZXJXZWJNaWRkbGV3YXJlKGNvbmZpZywgYXV0aC5hcGlKV1RtaWRkbGV3YXJlKCksIHBsdWdpbk9wdGlvbnMpKTtcbiAgLy8gd2ViIGVuZHBvaW50cywgc2VhcmNoLCBwYWNrYWdlcywgZXRjXG4gIHJvdXRlci51c2UobG9jYWxXZWJFbmRwb2ludHNBcGkoYXV0aCwgc3RvcmFnZSwgY29uZmlnKSk7XG4gIHJldHVybiByb3V0ZXI7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFJLEtBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFFBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE9BQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFdBQUEsR0FBQVAsT0FBQTtBQU9BLElBQUFRLElBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUFvQyxTQUFBRSx3QkFBQU8sQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQVQsdUJBQUEsWUFBQUEsQ0FBQU8sQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLFFBQUFDLE9BQUEsRUFBQVYsQ0FBQSxpQkFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsUUFBQUcsQ0FBQSxDQUFBSyxHQUFBLENBQUFYLENBQUEsVUFBQU0sQ0FBQSxDQUFBTSxHQUFBLENBQUFaLENBQUEsR0FBQU0sQ0FBQSxDQUFBTyxHQUFBLENBQUFiLENBQUEsRUFBQVEsQ0FBQSxnQkFBQVAsQ0FBQSxJQUFBRCxDQUFBLGdCQUFBQyxDQUFBLE9BQUFhLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZixDQUFBLEVBQUFDLENBQUEsT0FBQU0sQ0FBQSxJQUFBRCxDQUFBLEdBQUFVLE1BQUEsQ0FBQUMsY0FBQSxLQUFBRCxNQUFBLENBQUFFLHdCQUFBLENBQUFsQixDQUFBLEVBQUFDLENBQUEsT0FBQU0sQ0FBQSxDQUFBSyxHQUFBLElBQUFMLENBQUEsQ0FBQU0sR0FBQSxJQUFBUCxDQUFBLENBQUFFLENBQUEsRUFBQVAsQ0FBQSxFQUFBTSxDQUFBLElBQUFDLENBQUEsQ0FBQVAsQ0FBQSxJQUFBRCxDQUFBLENBQUFDLENBQUEsV0FBQU8sQ0FBQSxLQUFBUixDQUFBLEVBQUFDLENBQUE7QUFBQSxTQUFBWCx1QkFBQVUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxHQUFBTCxDQUFBLEtBQUFVLE9BQUEsRUFBQVYsQ0FBQTtBQUVwQyxNQUFNbUIsS0FBSyxHQUFHLElBQUFDLGNBQVUsRUFBQyxlQUFlLENBQUM7QUFDbEMsTUFBTUMsZ0JBQWdCLEdBQUFDLE9BQUEsQ0FBQUQsZ0JBQUEsR0FBRyxpQkFBaUI7QUFDMUMsTUFBTUUsdUJBQXVCLEdBQUFELE9BQUEsQ0FBQUMsdUJBQUEsR0FBRyxxQkFBcUI7QUFFckQsZUFBZUMsU0FBU0EsQ0FBQ0MsTUFBVyxFQUFFO0VBQzNDLElBQUlDLGVBQUMsQ0FBQ0MsS0FBSyxDQUFDRixNQUFNLENBQUNHLEtBQUssQ0FBQyxLQUFLLEtBQUssRUFBRTtJQUFBLElBQUFDLHFCQUFBLEVBQUFDLHNCQUFBO0lBQ25DLE1BQU1DLE1BQU0sR0FBRyxNQUFNLElBQUFDLHdCQUFlLEVBQ2xDUCxNQUFNLENBQUNHLEtBQUssRUFDWjtNQUFFSCxNQUFNO01BQUVRLE1BQU0sRUFBTkE7SUFBTyxDQUFDO0lBQ2xCO0lBQ0EsVUFBVUYsTUFBVyxFQUFFO01BQ3JCO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtNQUNRLE9BQU9BLE1BQU0sQ0FBQ0csVUFBVSxJQUFJSCxNQUFNLENBQUNJLFFBQVEsSUFBSUosTUFBTSxDQUFDSyxhQUFhO0lBQ3JFLENBQUMsRUFDRCxJQUFJLEdBQUFQLHFCQUFBLEdBQ0pKLE1BQU0sYUFBTkEsTUFBTSx3QkFBQUssc0JBQUEsR0FBTkwsTUFBTSxDQUFFWSxjQUFjLGNBQUFQLHNCQUFBLHVCQUF0QkEsc0JBQUEsQ0FBd0JRLFlBQVksY0FBQVQscUJBQUEsY0FBQUEscUJBQUEsR0FBSVIsZ0JBQWdCLEVBQ3hEa0IscUJBQWUsQ0FBQ0MsS0FDbEIsQ0FBQztJQUNELElBQUlULE1BQU0sQ0FBQ1UsTUFBTSxHQUFHLENBQUMsRUFBRTtNQUNyQlIsY0FBTSxDQUFDUyxJQUFJLENBQUMscUVBQXFFLENBQUM7SUFDcEY7SUFFQSxPQUFPaEIsZUFBQyxDQUFDaUIsSUFBSSxDQUFDWixNQUFNLENBQUM7RUFDdkI7QUFDRjtBQUVPLFNBQVNhLG9CQUFvQkEsQ0FBQ0MsSUFBSSxFQUFFQyxPQUFPLEVBQUVyQixNQUFNLEVBQVU7RUFDbEU7RUFDQSxNQUFNc0IsS0FBSyxHQUFHLElBQUFDLGVBQU0sRUFBQyxDQUFDO0VBQ3RCO0VBQ0E7RUFDQUQsS0FBSyxDQUFDRSxLQUFLLENBQUMsU0FBUyxFQUFFQywyQkFBZSxDQUFDO0VBQ3ZDSCxLQUFLLENBQUNFLEtBQUssQ0FBQyxVQUFVLEVBQUVFLHdCQUFZLENBQUM7RUFDckNKLEtBQUssQ0FBQ0UsS0FBSyxDQUFDLFNBQVMsRUFBRUUsd0JBQVksQ0FBQztFQUNwQ0osS0FBSyxDQUFDSyxHQUFHLENBQUNDLGdCQUFPLENBQUNDLFVBQVUsQ0FBQztJQUFFQyxRQUFRLEVBQUU7RUFBTSxDQUFDLENBQUMsQ0FBQztFQUNsRFIsS0FBSyxDQUFDSyxHQUFHLENBQUNJLGlDQUFxQixDQUFDO0VBQ2hDVCxLQUFLLENBQUNLLEdBQUcsQ0FBQ1AsSUFBSSxDQUFDWSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7RUFDbENWLEtBQUssQ0FBQ0ssR0FBRyxDQUFDLElBQUFNLFlBQWUsRUFBQ2IsSUFBSSxFQUFFQyxPQUFPLEVBQUVyQixNQUFNLENBQUMsQ0FBQztFQUVqRCxPQUFPc0IsS0FBSztBQUNkO0FBQUMsSUFBQVksUUFBQSxHQUVjLE1BQUFBLENBQU9sQyxNQUFNLEVBQUVvQixJQUFJLEVBQUVDLE9BQU8sRUFBRWIsTUFBTSxLQUFLO0VBQ3RELElBQUkyQixhQUFhLEdBQUcsTUFBTXBDLFNBQVMsQ0FBQ0MsTUFBTSxDQUFDO0VBQzNDLElBQUksQ0FBQ21DLGFBQWEsRUFBRTtJQUNsQkEsYUFBYSxHQUFHckUsT0FBTyxDQUFDZ0MsdUJBQXVCLENBQUMsQ0FBQ0UsTUFBTSxDQUFDb0MsR0FBRyxDQUFDO0lBQzVENUIsTUFBTSxDQUFDNkIsSUFBSSxDQUNUO01BQUVDLElBQUksRUFBRXhDLHVCQUF1QjtNQUFFeUMsY0FBYyxFQUFFekIscUJBQWUsQ0FBQ0M7SUFBTSxDQUFDLEVBQ3hFLHdEQUNGLENBQUM7RUFDSDtFQUNBO0VBQ0EsTUFBTXlCLE1BQU0sR0FBRyxJQUFBakIsZUFBTSxFQUFDLENBQUM7RUFDdkI7RUFDQWlCLE1BQU0sQ0FBQ2IsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFBYywrQkFBbUIsRUFBQ3pDLE1BQU0sRUFBRW9CLElBQUksQ0FBQ1ksZ0JBQWdCLENBQUMsQ0FBQyxFQUFFRyxhQUFhLENBQUMsQ0FBQztFQUNwRjtFQUNBSyxNQUFNLENBQUNiLEdBQUcsQ0FBQ1Isb0JBQW9CLENBQUNDLElBQUksRUFBRUMsT0FBTyxFQUFFckIsTUFBTSxDQUFDLENBQUM7RUFDdkQsT0FBT3dDLE1BQU07QUFDZixDQUFDO0FBQUEzQyxPQUFBLENBQUFaLE9BQUEsR0FBQWlELFFBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -18,8 +18,7 @@ var _utils = require("./cli/utils");
18
18
  var _configPath = _interopRequireDefault(require("./config-path"));
19
19
  var _constants2 = require("./constants");
20
20
  var _utils2 = require("./utils");
21
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
22
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
23
22
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
24
23
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25
24
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -149,4 +148,4 @@ function unlinkAddressPath(addr) {
149
148
  _fs.default.unlinkSync(addr.path);
150
149
  }
151
150
  }
152
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGVidWciLCJfZnMiLCJfaHR0cCIsIl9odHRwcyIsIl9sb2Rhc2giLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9wYXRoIiwiX2luZGV4IiwiX3V0aWxzIiwiX2NvbmZpZ1BhdGgiLCJfY29uc3RhbnRzMiIsIl91dGlsczIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiZGVidWciLCJidWlsZERlYnVnIiwibG9nZ2VyIiwiZGlzcGxheUV4cGVyaW1lbnRzSW5mb0JveCIsImZsYWdzIiwiZXhwZXJpbWVudExpc3QiLCJ3YXJuIiwiZXhwZXJpbWVudCIsImluZm8iLCJydW5TZXJ2ZXIiLCJjb25maWciLCJjb25maWd1cmF0aW9uUGFyc2VkIiwidW5kZWZpbmVkIiwiY29uZmlnUGF0aExvY2F0aW9uIiwiZmluZENvbmZpZ0ZpbGUiLCJwYXJzZUNvbmZpZ0ZpbGUiLCJzZWxmX3BhdGgiLCJwYXRoIiwicmVzb2x2ZSIsIl8iLCJpc09iamVjdCIsIkVycm9yIiwiQVBJX0VSUk9SIiwiQ09ORklHX0JBRF9GT1JNQVQiLCJhZGRyZXNzZXMiLCJnZXRMaXN0TGlzdGVuQWRkcmVzc2VzIiwibGlzdGVuIiwicHJvY2VzcyIsImVtaXRXYXJuaW5nIiwiYXBwIiwiZW5kUG9pbnRBUEkiLCJjcmVhdGVTZXJ2ZXJGYWN0b3J5IiwiYWRkciIsInNlcnZlckZhY3RvcnkiLCJwcm90byIsImh0dHBzT3B0aW9ucyIsInNlY3VyZU9wdGlvbnMiLCJjb25zdGFudHMiLCJTU0xfT1BfTk9fU1NMdjIiLCJTU0xfT1BfTk9fU1NMdjMiLCJrZXlDZXJ0Q29uZmlnIiwiaHR0cHMiLCJwZnhDb25maWciLCJrZXkiLCJjZXJ0IiwicGZ4IiwicGFzc3BocmFzZSIsImFzc2lnbiIsImZzIiwicmVhZEZpbGVTeW5jIiwiY2EiLCJjcmVhdGVTZXJ2ZXIiLCJlcnIiLCJtZXNzYWdlIiwiaHR0cCIsInNlcnZlciIsImtlZXBBbGl2ZVRpbWVvdXQiLCJ1bmxpbmtBZGRyZXNzUGF0aCIsImV4aXN0c1N5bmMiLCJ1bmxpbmtTeW5jIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9ydW4tc2VydmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb25zdGFudHMgZnJvbSAnY29uc3RhbnRzJztcbmltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgaHR0cCBmcm9tICdodHRwJztcbmltcG9ydCBodHRwcyBmcm9tICdodHRwcyc7XG5pbXBvcnQgXywgeyBhc3NpZ24gfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7IENvbmZpZywgSHR0cHNDb25mS2V5Q2VydCwgSHR0cHNDb25mUGZ4IH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5cbmltcG9ydCBlbmRQb2ludEFQSSBmcm9tICcuLi9hcGkvaW5kZXgnO1xuaW1wb3J0IHsgZ2V0TGlzdExpc3RlbkFkZHJlc3NlcyB9IGZyb20gJy4vY2xpL3V0aWxzJztcbmltcG9ydCBmaW5kQ29uZmlnRmlsZSBmcm9tICcuL2NvbmZpZy1wYXRoJztcbmltcG9ydCB7IEFQSV9FUlJPUiB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IHBhcnNlQ29uZmlnRmlsZSB9IGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBkZWJ1ZyA9IGJ1aWxkRGVidWcoJ3ZlcmRhY2NpbycpO1xuXG5jb25zdCBsb2dnZXIgPSByZXF1aXJlKCcuL2xvZ2dlcicpO1xuXG5leHBvcnQgZnVuY3Rpb24gZGlzcGxheUV4cGVyaW1lbnRzSW5mb0JveChmbGFncykge1xuICBpZiAoIWZsYWdzKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZXhwZXJpbWVudExpc3QgPSBPYmplY3Qua2V5cyhmbGFncyk7XG4gIGlmIChleHBlcmltZW50TGlzdC5sZW5ndGggPj0gMSkge1xuICAgIGxvZ2dlci53YXJuKFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgIGBleHBlcmltZW50cyBhcmUgZW5hYmxlZCwgaXQgaXMgcmVjb21tZW5kZWQgZG8gbm90IHVzZSBleHBlcmltZW50cyBpbiBwcm9kdWN0aW9uIGNvbW1lbnQgb3V0IHRoaXMgc2VjdGlvbiB0byBkaXNhYmxlIGl0YFxuICAgICk7XG4gICAgZXhwZXJpbWVudExpc3QuZm9yRWFjaCgoZXhwZXJpbWVudCkgPT4ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgIGxvZ2dlci5pbmZvKFxuICAgICAgICBgc3VwcG9ydCBmb3IgZXhwZXJpbWVudCBbJHtleHBlcmltZW50fV0gJHtcbiAgICAgICAgICBmbGFnc1tleHBlcmltZW50XSA/ICdpcyBlbmFibGVkJyA6ICcgaXMgZGlzYWJsZWQnXG4gICAgICAgIH1gXG4gICAgICApO1xuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogRXhwb3NlcyBhIHNlcnZlciBmYWN0b3J5IHRvIGJlIGluc3RhbnRpYXRlZCBwcm9ncmFtbWF0aWNhbGx5LlxuICpcbiAgICBjb25zdCBhcHAgPSBhd2FpdCBydW5TZXJ2ZXIoKTsgLy8gZGVmYXVsdCBjb25maWd1cmF0aW9uXG4gICAgY29uc3QgYXBwID0gYXdhaXQgcnVuU2VydmVyKCcuL2NvbmZpZy9jb25maWcueWFtbCcpO1xuICAgIGNvbnN0IGFwcCA9IGF3YWl0IHJ1blNlcnZlcih7IGNvbmZpZ3VyYXRpb24gfSk7XG4gICAgYXBwLmxpc3Rlbig0MDAwLCAoZXZlbnQpID0+IHtcbiAgICAgIC8vIGRvIHNvbWV0aGluZ1xuICAgIH0pO1xuICogQHBhcmFtIGNvbmZpZ1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuU2VydmVyKGNvbmZpZz86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gIGxldCBjb25maWd1cmF0aW9uUGFyc2VkOiBSZXR1cm5UeXBlPGFueT47XG4gIGlmIChjb25maWcgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgY29uZmlnID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IGNvbmZpZ1BhdGhMb2NhdGlvbiA9IGZpbmRDb25maWdGaWxlKGNvbmZpZyk7XG4gICAgY29uZmlndXJhdGlvblBhcnNlZCA9IHBhcnNlQ29uZmlnRmlsZShjb25maWdQYXRoTG9jYXRpb24pO1xuICAgIGlmICghY29uZmlndXJhdGlvblBhcnNlZC5zZWxmX3BhdGgpIHtcbiAgICAgIGNvbmZpZ3VyYXRpb25QYXJzZWQuc2VsZl9wYXRoID0gcGF0aC5yZXNvbHZlKGNvbmZpZ1BhdGhMb2NhdGlvbik7XG4gICAgfVxuICB9IGVsc2UgaWYgKF8uaXNPYmplY3QoY29uZmlnKSkge1xuICAgIGNvbmZpZ3VyYXRpb25QYXJzZWQgPSBjb25maWc7XG4gICAgaWYgKCFjb25maWd1cmF0aW9uUGFyc2VkLnNlbGZfcGF0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzZWxmX3BhdGggaXMgcmVxdWlyZWQsIHBsZWFzZSBwcm92aWRlIGEgdmFsaWQgcm9vdCBwYXRoIGZvciBzdG9yYWdlJyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihBUElfRVJST1IuQ09ORklHX0JBRF9GT1JNQVQpO1xuICB9XG5cbiAgY29uc3QgYWRkcmVzc2VzID0gZ2V0TGlzdExpc3RlbkFkZHJlc3Nlcyh1bmRlZmluZWQsIGNvbmZpZ3VyYXRpb25QYXJzZWQubGlzdGVuKTtcbiAgaWYgKGFkZHJlc3Nlcy5sZW5ndGggPiAxKSB7XG4gICAgcHJvY2Vzcy5lbWl0V2FybmluZyhcbiAgICAgICdZb3UgaGF2ZSBzcGVjaWZpZWQgbXVsdGlwbGUgbGlzdGVuIGFkZHJlc3NlcywgdXNpbmcgdGhpcyBtZXRob2Qgb25seSB0aGUgZmlyc3Qgd2lsbCBiZSB1c2VkJ1xuICAgICk7XG4gIH1cblxuICBjb25zdCBhcHAgPSBhd2FpdCBlbmRQb2ludEFQSShjb25maWd1cmF0aW9uUGFyc2VkKTtcbiAgcmV0dXJuIGNyZWF0ZVNlcnZlckZhY3RvcnkoY29uZmlndXJhdGlvblBhcnNlZCwgYWRkcmVzc2VzWzBdLCBhcHApO1xufVxuXG4vKipcbiAqIFJldHVybiBhIG5hdGl2ZSBIVFRQL0hUVFBTIHNlcnZlciBpbnN0YW5jZVxuICogQHBhcmFtIGNvbmZpZ1xuICogQHBhcmFtIGFkZHJcbiAqIEBwYXJhbSBhcHBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlcnZlckZhY3RvcnkoY29uZmlnOiBDb25maWcsIGFkZHIsIGFwcCkge1xuICBsZXQgc2VydmVyRmFjdG9yeTtcbiAgaWYgKGFkZHIucHJvdG8gPT09ICdodHRwcycpIHtcbiAgICBkZWJ1ZygnaHR0cHMgZW5hYmxlZCcpO1xuICAgIHRyeSB7XG4gICAgICBsZXQgaHR0cHNPcHRpb25zID0ge1xuICAgICAgICAvLyBkaXNhYmxlIGluc2VjdXJlIFNTTHYyIGFuZCBTU0x2M1xuICAgICAgICBzZWN1cmVPcHRpb25zOiBjb25zdGFudHMuU1NMX09QX05PX1NTTHYyIHwgY29uc3RhbnRzLlNTTF9PUF9OT19TU0x2MyxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGtleUNlcnRDb25maWcgPSBjb25maWcuaHR0cHMgYXMgSHR0cHNDb25mS2V5Q2VydDtcbiAgICAgIGNvbnN0IHBmeENvbmZpZyA9IGNvbmZpZy5odHRwcyBhcyBIdHRwc0NvbmZQZng7XG5cbiAgICAgIC8vIGh0dHBzIG11c3QgZWl0aGVyIGhhdmUga2V5IGFuZCBjZXJ0IG9yIGEgcGZ4IGFuZCAob3B0aW9uYWxseSkgYSBwYXNzcGhyYXNlXG4gICAgICBpZiAoISgoa2V5Q2VydENvbmZpZy5rZXkgJiYga2V5Q2VydENvbmZpZy5jZXJ0KSB8fCBwZnhDb25maWcucGZ4KSkge1xuICAgICAgICB0aHJvdyBFcnJvcignYmFkIGZvcm1hdCBodHRwcyBjb25maWd1cmF0aW9uJyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwZnhDb25maWcucGZ4KSB7XG4gICAgICAgIGNvbnN0IHsgcGZ4LCBwYXNzcGhyYXNlIH0gPSBwZnhDb25maWc7XG4gICAgICAgIGh0dHBzT3B0aW9ucyA9IGFzc2lnbihodHRwc09wdGlvbnMsIHtcbiAgICAgICAgICBwZng6IGZzLnJlYWRGaWxlU3luYyhwZngpLFxuICAgICAgICAgIHBhc3NwaHJhc2U6IHBhc3NwaHJhc2UgfHwgJycsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgeyBrZXksIGNlcnQsIGNhIH0gPSBrZXlDZXJ0Q29uZmlnO1xuICAgICAgICBodHRwc09wdGlvbnMgPSBhc3NpZ24oaHR0cHNPcHRpb25zLCB7XG4gICAgICAgICAga2V5OiBmcy5yZWFkRmlsZVN5bmMoa2V5KSxcbiAgICAgICAgICBjZXJ0OiBmcy5yZWFkRmlsZVN5bmMoY2VydCksXG4gICAgICAgICAgLi4uKGNhICYmIHtcbiAgICAgICAgICAgIGNhOiBmcy5yZWFkRmlsZVN5bmMoY2EpLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIC8vIFRPRE86IGVuYWJsZSBodHRwMiBhcyBmZWF0dXJlXG4gICAgICAvLyBpZiAoY29uZmlnLnNlcnZlci5odHRwMikgPC0tIGNoZWNrIGlmIGZvcmNlIGh0dHAyXG4gICAgICBzZXJ2ZXJGYWN0b3J5ID0gaHR0cHMuY3JlYXRlU2VydmVyKGh0dHBzT3B0aW9ucywgYXBwKTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgY3JlYXRlIGh0dHBzIHNlcnZlcjogJHtlcnIubWVzc2FnZX1gKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gaHR0cFxuICAgIGRlYnVnKCdodHRwIGVuYWJsZWQnKTtcbiAgICBzZXJ2ZXJGYWN0b3J5ID0gaHR0cC5jcmVhdGVTZXJ2ZXIoYXBwKTtcbiAgfVxuXG4gIGlmIChcbiAgICBjb25maWcuc2VydmVyICYmXG4gICAgdHlwZW9mIGNvbmZpZy5zZXJ2ZXIua2VlcEFsaXZlVGltZW91dCAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uZmlnLnNlcnZlci5rZWVwQWxpdmVUaW1lb3V0ICE9PSAnbnVsbCdcbiAgKSB7XG4gICAgLy8gbGlicmFyeSBkZWZpbml0aW9uIGZvciBub2RlIGlzIG5vdCB1cCB0byBkYXRlIChkb2Vzbid0IGNvbnRhaW4gcmVjZW50IDguMCBjaGFuZ2VzKVxuICAgIHNlcnZlckZhY3Rvcnkua2VlcEFsaXZlVGltZW91dCA9IGNvbmZpZy5zZXJ2ZXIua2VlcEFsaXZlVGltZW91dCAqIDEwMDA7XG4gIH1cbiAgLy8gRklYRTogSSBjb3VsZCBub3QgZmluZCB0aGUgcmVhc29uIG9mIHRoaXMgY29kZS5cbiAgdW5saW5rQWRkcmVzc1BhdGgoYWRkcik7XG5cbiAgcmV0dXJuIHNlcnZlckZhY3Rvcnk7XG59XG5cbmZ1bmN0aW9uIHVubGlua0FkZHJlc3NQYXRoKGFkZHIpIHtcbiAgaWYgKGFkZHIucGF0aCAmJiBmcy5leGlzdHNTeW5jKGFkZHIucGF0aCkpIHtcbiAgICBmcy51bmxpbmtTeW5jKGFkZHIucGF0aCk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxVQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxHQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxLQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxPQUFBLEdBQUFDLHVCQUFBLENBQUFOLE9BQUE7QUFDQSxJQUFBTyxLQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFJQSxJQUFBUSxNQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxNQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxXQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVyxXQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxPQUFBLEdBQUFaLE9BQUE7QUFBMEMsU0FBQWEseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVIsd0JBQUFRLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxXQUFBSyxPQUFBLEVBQUFMLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFB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
151
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGVidWciLCJfZnMiLCJfaHR0cCIsIl9odHRwcyIsIl9sb2Rhc2giLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9wYXRoIiwiX2luZGV4IiwiX3V0aWxzIiwiX2NvbmZpZ1BhdGgiLCJfY29uc3RhbnRzMiIsIl91dGlsczIiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJkZWJ1ZyIsImJ1aWxkRGVidWciLCJsb2dnZXIiLCJkaXNwbGF5RXhwZXJpbWVudHNJbmZvQm94IiwiZmxhZ3MiLCJleHBlcmltZW50TGlzdCIsIndhcm4iLCJleHBlcmltZW50IiwiaW5mbyIsInJ1blNlcnZlciIsImNvbmZpZyIsImNvbmZpZ3VyYXRpb25QYXJzZWQiLCJ1bmRlZmluZWQiLCJjb25maWdQYXRoTG9jYXRpb24iLCJmaW5kQ29uZmlnRmlsZSIsInBhcnNlQ29uZmlnRmlsZSIsInNlbGZfcGF0aCIsInBhdGgiLCJyZXNvbHZlIiwiXyIsImlzT2JqZWN0IiwiRXJyb3IiLCJBUElfRVJST1IiLCJDT05GSUdfQkFEX0ZPUk1BVCIsImFkZHJlc3NlcyIsImdldExpc3RMaXN0ZW5BZGRyZXNzZXMiLCJsaXN0ZW4iLCJwcm9jZXNzIiwiZW1pdFdhcm5pbmciLCJhcHAiLCJlbmRQb2ludEFQSSIsImNyZWF0ZVNlcnZlckZhY3RvcnkiLCJhZGRyIiwic2VydmVyRmFjdG9yeSIsInByb3RvIiwiaHR0cHNPcHRpb25zIiwic2VjdXJlT3B0aW9ucyIsImNvbnN0YW50cyIsIlNTTF9PUF9OT19TU0x2MiIsIlNTTF9PUF9OT19TU0x2MyIsImtleUNlcnRDb25maWciLCJodHRwcyIsInBmeENvbmZpZyIsImtleSIsImNlcnQiLCJwZngiLCJwYXNzcGhyYXNlIiwiYXNzaWduIiwiZnMiLCJyZWFkRmlsZVN5bmMiLCJjYSIsImNyZWF0ZVNlcnZlciIsImVyciIsIm1lc3NhZ2UiLCJodHRwIiwic2VydmVyIiwia2VlcEFsaXZlVGltZW91dCIsInVubGlua0FkZHJlc3NQYXRoIiwiZXhpc3RzU3luYyIsInVubGlua1N5bmMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3J1bi1zZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbnN0YW50cyBmcm9tICdjb25zdGFudHMnO1xuaW1wb3J0IGJ1aWxkRGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBodHRwIGZyb20gJ2h0dHAnO1xuaW1wb3J0IGh0dHBzIGZyb20gJ2h0dHBzJztcbmltcG9ydCBfLCB7IGFzc2lnbiB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHsgQ29uZmlnLCBIdHRwc0NvbmZLZXlDZXJ0LCBIdHRwc0NvbmZQZnggfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcblxuaW1wb3J0IGVuZFBvaW50QVBJIGZyb20gJy4uL2FwaS9pbmRleCc7XG5pbXBvcnQgeyBnZXRMaXN0TGlzdGVuQWRkcmVzc2VzIH0gZnJvbSAnLi9jbGkvdXRpbHMnO1xuaW1wb3J0IGZpbmRDb25maWdGaWxlIGZyb20gJy4vY29uZmlnLXBhdGgnO1xuaW1wb3J0IHsgQVBJX0VSUk9SIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgcGFyc2VDb25maWdGaWxlIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IGRlYnVnID0gYnVpbGREZWJ1ZygndmVyZGFjY2lvJyk7XG5cbmNvbnN0IGxvZ2dlciA9IHJlcXVpcmUoJy4vbG9nZ2VyJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXNwbGF5RXhwZXJpbWVudHNJbmZvQm94KGZsYWdzKSB7XG4gIGlmICghZmxhZ3MpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBleHBlcmltZW50TGlzdCA9IE9iamVjdC5rZXlzKGZsYWdzKTtcbiAgaWYgKGV4cGVyaW1lbnRMaXN0Lmxlbmd0aCA+PSAxKSB7XG4gICAgbG9nZ2VyLndhcm4oXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgICAgYGV4cGVyaW1lbnRzIGFyZSBlbmFibGVkLCBpdCBpcyByZWNvbW1lbmRlZCBkbyBub3QgdXNlIGV4cGVyaW1lbnRzIGluIHByb2R1Y3Rpb24gY29tbWVudCBvdXQgdGhpcyBzZWN0aW9uIHRvIGRpc2FibGUgaXRgXG4gICAgKTtcbiAgICBleHBlcmltZW50TGlzdC5mb3JFYWNoKChleHBlcmltZW50KSA9PiB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgICAgbG9nZ2VyLmluZm8oXG4gICAgICAgIGBzdXBwb3J0IGZvciBleHBlcmltZW50IFske2V4cGVyaW1lbnR9XSAke1xuICAgICAgICAgIGZsYWdzW2V4cGVyaW1lbnRdID8gJ2lzIGVuYWJsZWQnIDogJyBpcyBkaXNhYmxlZCdcbiAgICAgICAgfWBcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBFeHBvc2VzIGEgc2VydmVyIGZhY3RvcnkgdG8gYmUgaW5zdGFudGlhdGVkIHByb2dyYW1tYXRpY2FsbHkuXG4gKlxuICAgIGNvbnN0IGFwcCA9IGF3YWl0IHJ1blNlcnZlcigpOyAvLyBkZWZhdWx0IGNvbmZpZ3VyYXRpb25cbiAgICBjb25zdCBhcHAgPSBhd2FpdCBydW5TZXJ2ZXIoJy4vY29uZmlnL2NvbmZpZy55YW1sJyk7XG4gICAgY29uc3QgYXBwID0gYXdhaXQgcnVuU2VydmVyKHsgY29uZmlndXJhdGlvbiB9KTtcbiAgICBhcHAubGlzdGVuKDQwMDAsIChldmVudCkgPT4ge1xuICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgfSk7XG4gKiBAcGFyYW0gY29uZmlnXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5TZXJ2ZXIoY29uZmlnPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgbGV0IGNvbmZpZ3VyYXRpb25QYXJzZWQ6IFJldHVyblR5cGU8YW55PjtcbiAgaWYgKGNvbmZpZyA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiBjb25maWcgPT09ICdzdHJpbmcnKSB7XG4gICAgY29uc3QgY29uZmlnUGF0aExvY2F0aW9uID0gZmluZENvbmZpZ0ZpbGUoY29uZmlnKTtcbiAgICBjb25maWd1cmF0aW9uUGFyc2VkID0gcGFyc2VDb25maWdGaWxlKGNvbmZpZ1BhdGhMb2NhdGlvbik7XG4gICAgaWYgKCFjb25maWd1cmF0aW9uUGFyc2VkLnNlbGZfcGF0aCkge1xuICAgICAgY29uZmlndXJhdGlvblBhcnNlZC5zZWxmX3BhdGggPSBwYXRoLnJlc29sdmUoY29uZmlnUGF0aExvY2F0aW9uKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoXy5pc09iamVjdChjb25maWcpKSB7XG4gICAgY29uZmlndXJhdGlvblBhcnNlZCA9IGNvbmZpZztcbiAgICBpZiAoIWNvbmZpZ3VyYXRpb25QYXJzZWQuc2VsZl9wYXRoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NlbGZfcGF0aCBpcyByZXF1aXJlZCwgcGxlYXNlIHByb3ZpZGUgYSB2YWxpZCByb290IHBhdGggZm9yIHN0b3JhZ2UnKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKEFQSV9FUlJPUi5DT05GSUdfQkFEX0ZPUk1BVCk7XG4gIH1cblxuICBjb25zdCBhZGRyZXNzZXMgPSBnZXRMaXN0TGlzdGVuQWRkcmVzc2VzKHVuZGVmaW5lZCwgY29uZmlndXJhdGlvblBhcnNlZC5saXN0ZW4pO1xuICBpZiAoYWRkcmVzc2VzLmxlbmd0aCA+IDEpIHtcbiAgICBwcm9jZXNzLmVtaXRXYXJuaW5nKFxuICAgICAgJ1lvdSBoYXZlIHNwZWNpZmllZCBtdWx0aXBsZSBsaXN0ZW4gYWRkcmVzc2VzLCB1c2luZyB0aGlzIG1ldGhvZCBvbmx5IHRoZSBmaXJzdCB3aWxsIGJlIHVzZWQnXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGFwcCA9IGF3YWl0IGVuZFBvaW50QVBJKGNvbmZpZ3VyYXRpb25QYXJzZWQpO1xuICByZXR1cm4gY3JlYXRlU2VydmVyRmFjdG9yeShjb25maWd1cmF0aW9uUGFyc2VkLCBhZGRyZXNzZXNbMF0sIGFwcCk7XG59XG5cbi8qKlxuICogUmV0dXJuIGEgbmF0aXZlIEhUVFAvSFRUUFMgc2VydmVyIGluc3RhbmNlXG4gKiBAcGFyYW0gY29uZmlnXG4gKiBAcGFyYW0gYWRkclxuICogQHBhcmFtIGFwcFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VydmVyRmFjdG9yeShjb25maWc6IENvbmZpZywgYWRkciwgYXBwKSB7XG4gIGxldCBzZXJ2ZXJGYWN0b3J5O1xuICBpZiAoYWRkci5wcm90byA9PT0gJ2h0dHBzJykge1xuICAgIGRlYnVnKCdodHRwcyBlbmFibGVkJyk7XG4gICAgdHJ5IHtcbiAgICAgIGxldCBodHRwc09wdGlvbnMgPSB7XG4gICAgICAgIC8vIGRpc2FibGUgaW5zZWN1cmUgU1NMdjIgYW5kIFNTTHYzXG4gICAgICAgIHNlY3VyZU9wdGlvbnM6IGNvbnN0YW50cy5TU0xfT1BfTk9fU1NMdjIgfCBjb25zdGFudHMuU1NMX09QX05PX1NTTHYzLFxuICAgICAgfTtcblxuICAgICAgY29uc3Qga2V5Q2VydENvbmZpZyA9IGNvbmZpZy5odHRwcyBhcyBIdHRwc0NvbmZLZXlDZXJ0O1xuICAgICAgY29uc3QgcGZ4Q29uZmlnID0gY29uZmlnLmh0dHBzIGFzIEh0dHBzQ29uZlBmeDtcblxuICAgICAgLy8gaHR0cHMgbXVzdCBlaXRoZXIgaGF2ZSBrZXkgYW5kIGNlcnQgb3IgYSBwZnggYW5kIChvcHRpb25hbGx5KSBhIHBhc3NwaHJhc2VcbiAgICAgIGlmICghKChrZXlDZXJ0Q29uZmlnLmtleSAmJiBrZXlDZXJ0Q29uZmlnLmNlcnQpIHx8IHBmeENvbmZpZy5wZngpKSB7XG4gICAgICAgIHRocm93IEVycm9yKCdiYWQgZm9ybWF0IGh0dHBzIGNvbmZpZ3VyYXRpb24nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHBmeENvbmZpZy5wZngpIHtcbiAgICAgICAgY29uc3QgeyBwZngsIHBhc3NwaHJhc2UgfSA9IHBmeENvbmZpZztcbiAgICAgICAgaHR0cHNPcHRpb25zID0gYXNzaWduKGh0dHBzT3B0aW9ucywge1xuICAgICAgICAgIHBmeDogZnMucmVhZEZpbGVTeW5jKHBmeCksXG4gICAgICAgICAgcGFzc3BocmFzZTogcGFzc3BocmFzZSB8fCAnJyxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB7IGtleSwgY2VydCwgY2EgfSA9IGtleUNlcnRDb25maWc7XG4gICAgICAgIGh0dHBzT3B0aW9ucyA9IGFzc2lnbihodHRwc09wdGlvbnMsIHtcbiAgICAgICAgICBrZXk6IGZzLnJlYWRGaWxlU3luYyhrZXkpLFxuICAgICAgICAgIGNlcnQ6IGZzLnJlYWRGaWxlU3luYyhjZXJ0KSxcbiAgICAgICAgICAuLi4oY2EgJiYge1xuICAgICAgICAgICAgY2E6IGZzLnJlYWRGaWxlU3luYyhjYSksXG4gICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgLy8gVE9ETzogZW5hYmxlIGh0dHAyIGFzIGZlYXR1cmVcbiAgICAgIC8vIGlmIChjb25maWcuc2VydmVyLmh0dHAyKSA8LS0gY2hlY2sgaWYgZm9yY2UgaHR0cDJcbiAgICAgIHNlcnZlckZhY3RvcnkgPSBodHRwcy5jcmVhdGVTZXJ2ZXIoaHR0cHNPcHRpb25zLCBhcHApO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGNhbm5vdCBjcmVhdGUgaHR0cHMgc2VydmVyOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBodHRwXG4gICAgZGVidWcoJ2h0dHAgZW5hYmxlZCcpO1xuICAgIHNlcnZlckZhY3RvcnkgPSBodHRwLmNyZWF0ZVNlcnZlcihhcHApO1xuICB9XG5cbiAgaWYgKFxuICAgIGNvbmZpZy5zZXJ2ZXIgJiZcbiAgICB0eXBlb2YgY29uZmlnLnNlcnZlci5rZWVwQWxpdmVUaW1lb3V0ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25maWcuc2VydmVyLmtlZXBBbGl2ZVRpbWVvdXQgIT09ICdudWxsJ1xuICApIHtcbiAgICAvLyBsaWJyYXJ5IGRlZmluaXRpb24gZm9yIG5vZGUgaXMgbm90IHVwIHRvIGRhdGUgKGRvZXNuJ3QgY29udGFpbiByZWNlbnQgOC4wIGNoYW5nZXMpXG4gICAgc2VydmVyRmFjdG9yeS5rZWVwQWxpdmVUaW1lb3V0ID0gY29uZmlnLnNlcnZlci5rZWVwQWxpdmVUaW1lb3V0ICogMTAwMDtcbiAgfVxuICAvLyBGSVhFOiBJIGNvdWxkIG5vdCBmaW5kIHRoZSByZWFzb24gb2YgdGhpcyBjb2RlLlxuICB1bmxpbmtBZGRyZXNzUGF0aChhZGRyKTtcblxuICByZXR1cm4gc2VydmVyRmFjdG9yeTtcbn1cblxuZnVuY3Rpb24gdW5saW5rQWRkcmVzc1BhdGgoYWRkcikge1xuICBpZiAoYWRkci5wYXRoICYmIGZzLmV4aXN0c1N5bmMoYWRkci5wYXRoKSkge1xuICAgIGZzLnVubGlua1N5bmMoYWRkci5wYXRoKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLEdBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLE9BQUEsR0FBQUMsdUJBQUEsQ0FBQU4sT0FBQTtBQUNBLElBQUFPLEtBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUlBLElBQUFRLE1BQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLE1BQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLFdBQUEsR0FBQVgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFXLFdBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLE9BQUEsR0FBQVosT0FBQTtBQUEwQyxTQUFBTSx3QkFBQU8sQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQVQsdUJBQUEsWUFBQUEsQ0FBQU8sQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLFFBQUFDLE9BQUEsRUFBQVYsQ0FBQSxpQkFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsUUFBQUcsQ0FBQSxDQUFBSyxHQUFBLENBQUFYLENBQUEsVUFB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "verdaccio",
3
- "version": "6.1.2",
3
+ "version": "6.1.3",
4
4
  "description": "A lightweight private npm proxy registry",
5
5
  "author": {
6
6
  "name": "Verdaccio Maintainers",
@@ -20,26 +20,26 @@
20
20
  },
21
21
  "dependencies": {
22
22
  "@cypress/request": "3.0.8",
23
- "@verdaccio/auth": "8.0.0-next-8.15",
24
- "@verdaccio/config": "8.0.0-next-8.15",
25
- "@verdaccio/core": "8.0.0-next-8.15",
26
- "@verdaccio/loaders": "8.0.0-next-8.6",
23
+ "@verdaccio/auth": "8.0.0-next-8.16",
24
+ "@verdaccio/config": "8.0.0-next-8.16",
25
+ "@verdaccio/core": "8.0.0-next-8.16",
26
+ "@verdaccio/loaders": "8.0.0-next-8.7",
27
27
  "@verdaccio/local-storage-legacy": "11.0.2",
28
- "@verdaccio/logger": "8.0.0-next-8.15",
29
- "@verdaccio/middleware": "8.0.0-next-8.15",
28
+ "@verdaccio/logger": "8.0.0-next-8.16",
29
+ "@verdaccio/middleware": "8.0.0-next-8.16",
30
30
  "@verdaccio/search-indexer": "8.0.0-next-8.4",
31
- "@verdaccio/signature": "8.0.0-next-8.7",
31
+ "@verdaccio/signature": "8.0.0-next-8.8",
32
32
  "@verdaccio/streams": "10.2.1",
33
- "@verdaccio/tarball": "13.0.0-next-8.15",
34
- "@verdaccio/ui-theme": "8.0.0-next-8.15",
35
- "@verdaccio/url": "13.0.0-next-8.15",
36
- "@verdaccio/utils": "8.1.0-next-8.15",
33
+ "@verdaccio/tarball": "13.0.0-next-8.16",
34
+ "@verdaccio/ui-theme": "8.0.0-next-8.16",
35
+ "@verdaccio/url": "13.0.0-next-8.16",
36
+ "@verdaccio/utils": "8.1.0-next-8.16",
37
37
  "JSONStream": "1.3.5",
38
38
  "async": "3.2.6",
39
39
  "clipanion": "4.0.0-rc.4",
40
40
  "compression": "1.8.0",
41
41
  "cors": "2.8.5",
42
- "debug": "4.4.0",
42
+ "debug": "4.4.1",
43
43
  "envinfo": "7.14.0",
44
44
  "express": "4.21.2",
45
45
  "handlebars": "4.7.8",
@@ -49,34 +49,34 @@
49
49
  "mkdirp": "1.0.4",
50
50
  "pkginfo": "0.4.1",
51
51
  "semver": "7.6.3",
52
- "verdaccio-audit": "13.0.0-next-8.15",
53
- "verdaccio-htpasswd": "13.0.0-next-8.15"
52
+ "verdaccio-audit": "13.0.0-next-8.16",
53
+ "verdaccio-htpasswd": "13.0.0-next-8.16"
54
54
  },
55
55
  "devDependencies": {
56
- "@babel/cli": "7.26.4",
57
- "@babel/core": "7.26.9",
56
+ "@babel/cli": "7.27.2",
57
+ "@babel/core": "7.27.4",
58
58
  "@babel/eslint-parser": "7.26.8",
59
- "@babel/node": "7.26.0",
59
+ "@babel/node": "7.27.1",
60
60
  "@babel/plugin-proposal-class-properties": "7.18.6",
61
- "@babel/plugin-proposal-decorators": "7.25.9",
61
+ "@babel/plugin-proposal-decorators": "7.27.1",
62
62
  "@babel/plugin-proposal-export-namespace-from": "7.18.9",
63
- "@babel/plugin-proposal-function-sent": "7.25.9",
63
+ "@babel/plugin-proposal-function-sent": "7.27.1",
64
64
  "@babel/plugin-proposal-json-strings": "7.18.6",
65
65
  "@babel/plugin-proposal-nullish-coalescing-operator": "7.18.6",
66
66
  "@babel/plugin-proposal-numeric-separator": "7.18.6",
67
67
  "@babel/plugin-proposal-object-rest-spread": "7.20.7",
68
68
  "@babel/plugin-proposal-optional-chaining": "7.21.0",
69
- "@babel/plugin-proposal-throw-expressions": "7.25.9",
69
+ "@babel/plugin-proposal-throw-expressions": "7.27.1",
70
70
  "@babel/plugin-syntax-dynamic-import": "7.8.3",
71
71
  "@babel/plugin-syntax-import-meta": "7.10.4",
72
- "@babel/plugin-transform-async-to-generator": "7.25.9",
73
- "@babel/plugin-transform-classes": "7.25.9",
74
- "@babel/plugin-transform-runtime": "7.26.9",
72
+ "@babel/plugin-transform-async-to-generator": "7.27.1",
73
+ "@babel/plugin-transform-classes": "7.27.1",
74
+ "@babel/plugin-transform-runtime": "7.27.4",
75
75
  "@babel/polyfill": "^7.12.1",
76
- "@babel/preset-env": "7.26.9",
76
+ "@babel/preset-env": "7.27.2",
77
77
  "@babel/preset-typescript": "7.26.0",
78
- "@babel/register": "7.25.9",
79
- "@babel/runtime": "7.26.9",
78
+ "@babel/register": "7.27.1",
79
+ "@babel/runtime": "7.27.6",
80
80
  "@octokit/rest": "21.1.1",
81
81
  "@trivago/prettier-plugin-sort-imports": "4.3.0",
82
82
  "@types/async": "3.2.24",
@@ -180,5 +180,5 @@
180
180
  "url": "https://opencollective.com/verdaccio",
181
181
  "logo": "https://opencollective.com/verdaccio/logo.txt"
182
182
  },
183
- "packageManager": "yarn@3.8.6"
183
+ "packageManager": "yarn@4.9.2"
184
184
  }