@secrecy/lib 0.1.436 → 0.1.440
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/BaseClient.js +4 -24
- package/lib/cache.d.ts +2 -2
- package/lib/cache.js +1 -1
- package/lib/client/convert/folder.d.ts +5 -4
- package/lib/client/convert/folder.js +158 -108
- package/lib/client/convert/vFile.js +2 -1
- package/lib/client/index.d.ts +4 -4
- package/lib/client/index.js +5 -5
- package/lib/client/types/Folder.d.ts +16 -16
- package/lib/client/types/Folder.js +5 -2
- package/lib/client/types/index.d.ts +1 -1
- package/lib/client/types/index.js +1 -1
- package/lib/client/types/queries.d.ts +2 -290
- package/lib/client/types/queries.js +5 -5
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/worker/__mock__/sodium.worker.d.ts +19 -0
- package/lib/worker/__mock__/sodium.worker.js +57 -0
- package/lib/zeus/index.js +2 -2
- package/package.json +1 -1
package/lib/BaseClient.js
CHANGED
|
@@ -320,7 +320,8 @@ export var BaseClient = /*#__PURE__*/function () {
|
|
|
320
320
|
_context5.next = 2;
|
|
321
321
|
return getUser({
|
|
322
322
|
client: this.client,
|
|
323
|
-
userId: params.userId
|
|
323
|
+
userId: params.userId,
|
|
324
|
+
withPublicKey: params.withPublicKey
|
|
324
325
|
});
|
|
325
326
|
|
|
326
327
|
case 2:
|
|
@@ -367,32 +368,11 @@ export var BaseClient = /*#__PURE__*/function () {
|
|
|
367
368
|
firstname: true,
|
|
368
369
|
lastname: true,
|
|
369
370
|
lang: true,
|
|
370
|
-
publicKey: true,
|
|
371
371
|
email: true,
|
|
372
372
|
phone: true,
|
|
373
373
|
role: true,
|
|
374
|
-
createdAt: true,
|
|
375
|
-
updatedAt: true,
|
|
376
374
|
deletedAt: true,
|
|
377
|
-
lastLogin: true
|
|
378
|
-
lastActivity: true,
|
|
379
|
-
userAgent: true,
|
|
380
|
-
ip: true,
|
|
381
|
-
city: true,
|
|
382
|
-
country: true,
|
|
383
|
-
appSessions: {
|
|
384
|
-
id: true,
|
|
385
|
-
lastActivity: true,
|
|
386
|
-
userAgent: true,
|
|
387
|
-
ip: true,
|
|
388
|
-
city: true,
|
|
389
|
-
country: true,
|
|
390
|
-
userApp: {
|
|
391
|
-
app: {
|
|
392
|
-
name: true
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
}
|
|
375
|
+
lastLogin: true
|
|
396
376
|
}]
|
|
397
377
|
});
|
|
398
378
|
|
|
@@ -1349,4 +1329,4 @@ BaseClient.getBaseUrl = function (env, graphcdn) {
|
|
|
1349
1329
|
BaseClient._getBaseClient = function (env, session) {
|
|
1350
1330
|
return createThunder(BaseClient.getBaseUrl(env), session);
|
|
1351
1331
|
};
|
|
1352
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9CYXNlQ2xpZW50LnRzIl0sIm5hbWVzIjpbInNlcmlhbGl6ZSIsInVzZXJzQ2FjaGUiLCJnZXRTdG9yYWdlIiwiU2VsZWN0b3JzIiwiY3JlYXRlVGh1bmRlciIsImludGVybmFsVG9QYXltZW50SW5mb3MiLCJwIiwiY3VycmVudFN1YnNjcmlwdGlvbiIsInN0YXRlIiwiY29sbGVjdGlvbk1ldGhvZCIsImFjdGl2YXRlZEF0IiwiRGF0ZSIsImNyZWF0ZWRBdCIsInVwZGF0ZWRBdCIsInRyaWFsRW5kc0F0IiwidHJpYWxTdGFydGVkQXQiLCJwYXVzZWRBdCIsImN1cnJlbnRQZXJpb2RFbmRzQXQiLCJjdXJyZW50UGVyaW9kU3RhcnRlZEF0IiwiY2FuY2VsZWRBdCIsImV4cGlyZXNBdCIsImludm9pY2VzIiwibWFwIiwiaSIsImRhdGUiLCJkdWUiLCJzdGF0dXMiLCJwbGFuc0NvZGVzIiwiaXNWYWxpZFBsYW4iLCJwbGFuQ29kZSIsImluY2x1ZGVzIiwiZ2V0VXNlclNlbGVjdG9yIiwidXNlcklkIiwid2l0aFB1YmxpY0tleSIsInF1ZXJ5IiwidXNlciIsImlkIiwiZmlyc3RuYW1lIiwibGFzdG5hbWUiLCJsYW5nIiwicHVibGljS2V5IiwidW5kZWZpbmVkIiwiZW1haWwiLCJwaG9uZSIsInJvbGUiLCJkZWxldGVkQXQiLCJsYXN0TG9naW4iLCJnZXRVc2VyIiwicGFyYW1zIiwic2VsZWN0b3IiLCJjbGllbnQiLCJCYXNlQ2xpZW50Iiwic2Vzc2lvbiIsImVudiIsInNlc3Npb25JZCIsIl9nZXRCYXNlQ2xpZW50Iiwic2Vzc2lvbnMiLCJsYXN0QWN0aXZpdHkiLCJ1c2VyQWdlbnQiLCJpcCIsImNpdHkiLCJjb3VudHJ5IiwiYXBwU2Vzc2lvbnMiLCJ1c2VyQXBwIiwiYXBwIiwibmFtZSIsImRhdGEiLCJzIiwiYSIsImxvZ291dCIsImxvY2FsIiwiand0IiwiY2xlYXIiLCJ1c2VyQXBwS2V5cyIsInVzZXJBcHBTZXNzaW9uIiwibXV0YXRpb24iLCJtZSIsInNldCIsInVwZGF0ZVByb2ZpbGUiLCJFcnJvciIsInBsYW5zIiwia2luZCIsImNvZGVzIiwibGltaXRzIiwiZG93bmxvYWRCYW5kd2lkdGgiLCJkb3dubG9hZENvdW50IiwiaGFyZEZpbGVDb3VudCIsImhhcmRGaWxlU2l6ZSIsInBlckZpbGVTaXplIiwidXBsb2FkQmFuZHdpZHRoIiwidXBsb2FkQ291bnQiLCJyZWNlaXZlZE1haWxzIiwiY291bnQiLCJmaWxlQ291bnQiLCJmaWxlU2l6ZSIsImhhcmRDb3VudCIsInNlbnRNYWlscyIsInBheSIsImlucHV0IiwiYXV0b1JlbmV3IiwiY2FuY2VsUGF5bWVudCIsInBheW1lbnRJbmZvcyIsImhvc3RlZFVybCIsImF1dG9yZW5ldyIsInBsYW4iLCJ0b3RhbCIsInBkZiIsImN1cnJlbmN5IiwiY2xvdWQiLCJzaXplIiwibWF4U2l6ZSIsIm1heENvdW50IiwibWFpbCIsInJlY2VpdmVkIiwibWF4RmlsZUNvdW50IiwibWF4RmlsZVNpemUiLCJzZW50IiwiQmlnSW50IiwiZ29kRmF0aGVyQW5kQ2hpbGRyZW4iLCJnb2RDaGlsZHJlbiIsImdvZEZhdGhlciIsInVwZGF0ZUFwcERCQ29uZmlnIiwiYXBwQ29kZSIsImNvbmZpZyIsImRiQ29uZmlnIiwiSlNPTiIsInN0cmluZ2lmeSIsImdldEFwcERCQ29uZmlnIiwiZ2V0RkFRIiwiZmFxIiwiYW5zd2VyIiwib3JkZXIiLCJxdWVzdGlvbiIsImdldEJsb2ciLCJibG9nIiwiYmxvZ0lkIiwiYXV0aG9yIiwiYm9keSIsImltYWdlIiwiaW1hZ2VBbHQiLCJzdW1tYXJ5IiwidGl0bGUiLCJiIiwicmVwb3J0VXNlciIsInJlcG9ydGVkVXNlcklkIiwiY3VzdG9tTWVzc2FnZSIsInNlbmRSZXBvcnQiLCJyZXBvcnRlZFVzZXIiLCJkZWxldGVVc2VyIiwiZGJHZXQiLCJmaWVsZCIsInJlcyIsImRiU2V0IiwidmFsdWUiLCJ0b1N0cmluZyIsImRiU2VhcmNoIiwic2VhcmNoIiwiZGVsZXRlRm9sZGVyIiwibW92ZUZvbGRlcnMiLCJmb2xkZXJzSWQiLCJwYXJlbnRGb2xkZXJJZCIsIm1vdmVGaWxlcyIsImZpbGVzSWQiLCJmb2xkZXJTaXplIiwiZm9sZGVySWQiLCJzaXplQmVmb3JlIiwiZ2V0QmFzZVVybCIsImdyYXBoY2RuIiwicHJvY2VzcyIsIk5PREVfRU5WIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUVBLFNBQVNBLFNBQVQsUUFBMEIsTUFBMUI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLFlBQTNCO0FBR0EsU0FBU0MsVUFBVCxRQUEyQixxQkFBM0I7QUFRQSxTQUFTQyxTQUFULFFBQTBCLGlCQUExQjtBQUNBLFNBQVNDLGFBQVQsUUFBOEIsa0JBQTlCOztBQXlLQSxTQUFTQyxzQkFBVCxDQUFnQ0MsQ0FBaEMsRUFBdUU7QUFDckUseUNBQ0tBLENBREw7QUFFRUMsSUFBQUEsbUJBQW1CLGtDQUNkRCxDQUFDLENBQUNDLG1CQURZO0FBRWpCQyxNQUFBQSxLQUFLLEVBQUVGLENBQUMsQ0FBQ0MsbUJBQUYsQ0FBc0JDLEtBRlo7QUFHakJDLE1BQUFBLGdCQUFnQixFQUFFSCxDQUFDLENBQUNDLG1CQUFGLENBQ2ZFLGdCQUpjO0FBS2pCQyxNQUFBQSxXQUFXLEVBQUVKLENBQUMsQ0FBQ0MsbUJBQUYsQ0FBc0JHLFdBQXRCLEdBQ1QsSUFBSUMsSUFBSixDQUFTTCxDQUFDLENBQUNDLG1CQUFGLENBQXNCRyxXQUEvQixDQURTLEdBRVQsSUFQYTtBQVFqQkUsTUFBQUEsU0FBUyxFQUFFTixDQUFDLENBQUNDLG1CQUFGLENBQXNCSyxTQUF0QixHQUNQLElBQUlELElBQUosQ0FBU0wsQ0FBQyxDQUFDQyxtQkFBRixDQUFzQkssU0FBL0IsQ0FETyxHQUVQLElBVmE7QUFXakJDLE1BQUFBLFNBQVMsRUFBRVAsQ0FBQyxDQUFDQyxtQkFBRixDQUFzQk0sU0FBdEIsR0FDUCxJQUFJRixJQUFKLENBQVNMLENBQUMsQ0FBQ0MsbUJBQUYsQ0FBc0JNLFNBQS9CLENBRE8sR0FFUCxJQWJhO0FBY2pCQyxNQUFBQSxXQUFXLEVBQUVSLENB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QVosS0FBeUIsTUFBN0IsRUFBcUM7QUFDbkMsV0FBTywrQkFBUDtBQUNEOztBQUVELFVBQVFwSCxHQUFSO0FBQ0UsU0FBSyxNQUFMO0FBQ0UsYUFBT2tILFFBQVEsR0FDWCw4QkFEVyxHQUVYLHNFQUZKOztBQUdGLFNBQUssU0FBTDtBQUNFLGFBQU8seUVBQVA7O0FBQ0YsU0FBSyxLQUFMO0FBQ0E7QUFDRSxhQUFPLHFFQUFQO0FBVEo7QUFXRCxDOztBQXBCVXBILFUsQ0FzQmFJLGMsR0FBaUIsVUFDdkNGLEdBRHVDLEVBRXZDRCxPQUZ1QztBQUFBLFNBSXZDaEQsYUFBYSxDQUFDK0MsVUFBVSxDQUFDbUgsVUFBWCxDQUFzQmpILEdBQXRCLENBQUQsRUFBNkJELE9BQTdCLENBSjBCO0FBQUEsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRG93bmxvYWRQcm9ncmVzcyBhcyBETFByb2dyZXNzIH0gZnJvbSBcImt5XCI7XG5pbXBvcnQgdHlwZSB7IERvY3VtZW50IH0gZnJvbSBcImJzb25cIjtcbmltcG9ydCB7IHNlcmlhbGl6ZSB9IGZyb20gXCJic29uXCI7XG5pbXBvcnQgeyB1c2Vyc0NhY2hlIH0gZnJvbSBcIi4vY2FjaGUuanNcIjtcbmltcG9ydCB0eXBlIHsgVXNlclNlc3Npb24gfSBmcm9tIFwiLi9jbGllbnQvdHlwZXMvaW5kZXguanNcIjtcbmltcG9ydCB0eXBlIHsgU2VjcmVjeUVudiB9IGZyb20gXCIuL2NsaWVudC9oZWxwZXJzLmpzXCI7XG5pbXBvcnQgeyBnZXRTdG9yYWdlIH0gZnJvbSBcIi4vY2xpZW50L3N0b3JhZ2UuanNcIjtcbmltcG9ydCB0eXBlIHtcbiAgTGFuZyxcbiAgUGF5SW5wdXRUeXBlLFxuICBQbGFuS2luZCxcbiAgVGh1bmRlcixcbiAgVXNlclJvbGVcbn0gZnJvbSBcIi4vemV1cy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgU2VsZWN0b3JzIH0gZnJvbSBcIi4vemV1cy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgY3JlYXRlVGh1bmRlciB9IGZyb20gXCIuL1pldXNUaHVuZGVyLmpzXCI7XG5cbmV4cG9ydCB0eXBlIERvd25sb2FkUHJvZ3Jlc3MgPSBETFByb2dyZXNzO1xuXG5leHBvcnQgdHlwZSBQYXlJbnB1dCA9IHtcbiAgdHlwZTogUGF5SW5wdXRUeXBlO1xuICB0b2tlbjogc3RyaW5nO1xuICBmaXJzdE5hbWU6IHN0cmluZztcbiAgbGFzdE5hbWU6IHN0cmluZztcbiAgc3RyZWV0OiBzdHJpbmc7XG4gIHBvc3RhbENvZGU6IHN0cmluZztcbiAgY2l0eTogc3RyaW5nO1xuICBjb3VudHJ5OiBzdHJpbmc7XG4gIG1vbnRoOiBzdHJpbmc7XG4gIHllYXI6IHN0cmluZztcbiAgY3Z2OiBzdHJpbmc7XG4gIG51bWJlcjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgTWFpbExpbWl0cyA9IHtcbiAgY291bnQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGZpbGVDb3VudD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgZmlsZVNpemU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGhhcmRDb3VudD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgaGFyZEZpbGVDb3VudD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgaGFyZEZpbGVTaXplPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwZXJGaWxlU2l6ZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCB0eXBlIExpbWl0cyA9IHtcbiAgZG93bmxvYWRCYW5kd2lkdGg/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGRvd25sb2FkQ291bnQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGhhcmRGaWxlQ291bnQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGhhcmRGaWxlU2l6ZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcGVyRmlsZVNpemU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHJlY2VpdmVkTWFpbHM6IE1haWxMaW1pdHM7XG4gIHNlbnRNYWlsczogTWFpbExpbWl0cztcbiAgdXBsb2FkQmFuZHdpZHRoPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB1cGxvYWRDb3VudD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCB0eXBlIEdvZFVzZXIgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIGZpcnN0bmFtZTogc3RyaW5nO1xuICBsYXN0bmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBwaG9uZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgR29kRmF0aGVyQW5kQ2hpbGRyZW4gPSB7XG4gIGdvZEZhdGhlcjogR29kVXNlciB8IG51bGw7XG4gIGdvZENoaWxkcmVuOiBHb2RVc2VyW107XG59O1xuXG5leHBvcnQgdHlwZSBQbGFuID0ge1xuICBjb2Rlczogc3RyaW5nW107XG4gIGtpbmQ6IFBsYW5LaW5kO1xuICBsaW1pdHM6IExpbWl0cztcbn07XG5cbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvblN0YXRlID1cbiAgfCBcImFjdGl2ZVwiXG4gIHwgXCJjYW5jZWxlZFwiXG4gIHwgXCJwYXVzZWRcIlxuICB8IFwiZXhwaXJlZFwiXG4gIHwgXCJmdXR1cmVcIlxuICB8IFwiaW5fdHJpYWxcIlxuICB8IFwibGl2ZVwiXG4gIHwgXCJwYXN0X2R1ZVwiO1xuXG5leHBvcnQgdHlwZSBTdWJzY3JpcHRpb25Db2xsZWN0aW9uTWV0aG9kID0gXCJhdXRvbWF0aWNcIiB8IFwibWFudWFsXCI7XG5cbnR5cGUgSW50ZXJuYWxTdWJzY3JpcHRpb24gPSB7XG4gIGF1dG9yZW5ldzogYm9vbGVhbjtcbiAgYWN0aXZhdGVkQXQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjdXJyZW50UGVyaW9kRW5kc0F0Pzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgY3VycmVudFBlcmlvZFN0YXJ0ZWRBdD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGNhbmNlbGVkQXQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjcmVhdGVkQXQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBleHBpcmVzQXQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBwYXVzZWRBdD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHRyaWFsRW5kc0F0Pzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgdHJpYWxTdGFydGVkQXQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB1cGRhdGVkQXQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjb2xsZWN0aW9uTWV0aG9kOiBzdHJpbmc7XG4gIHN0YXRlOiBzdHJpbmc7XG4gIHBsYW4/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBwbGFuQ29kZT86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHRvdGFsPzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZDtcbn07XG5cbnR5cGUgUmVjdXJseUludm9pY2VTdGF0dXMgPVxuICB8IFwicGVuZGluZ1wiXG4gIHwgXCJwYWlkXCJcbiAgfCBcImZhaWxlZFwiXG4gIHwgXCJwYXN0X2R1ZVwiXG4gIHwgXCJvcGVuXCJcbiAgfCBcImNsb3NlZFwiXG4gIHwgXCJ2b2lkZWRcIlxuICB8IFwicHJvY2Vzc2luZ1wiO1xuXG50eXBlIEludGVybmFsUmVjdXJseUludm9pY2VzID0ge1xuICBwZGY6IHN0cmluZztcbiAgZGF0ZTogc3RyaW5nO1xuICBkdWU6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIHRvdGFsOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgY3VycmVuY3k6IHN0cmluZztcbn07XG5cbnR5cGUgSW50ZXJuYWxQYXltZW50SW5mb3MgPSB7XG4gIGhvc3RlZFVybDogc3RyaW5nO1xuICBjdXJyZW50U3Vic2NyaXB0aW9uOiBJbnRlcm5hbFN1YnNjcmlwdGlvbjtcbiAgaW52b2ljZXM6IEludGVybmFsUmVjdXJseUludm9pY2VzW107XG59O1xuXG5leHBvcnQgdHlwZSBTdWJzY3JpcHRpb24gPSB7XG4gIGF1dG9yZW5ldzogYm9vbGVhbjtcbiAgYWN0aXZhdGVkQXQ/OiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgY3VycmVudFBlcmlvZEVuZHNBdD86IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjdXJyZW50UGVyaW9kU3RhcnRlZEF0PzogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGNhbmNlbGVkQXQ/OiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgY3JlYXRlZEF0PzogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGV4cGlyZXNBdD86IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBwYXVzZWRBdD86IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB0cmlhbEVuZHNBdD86IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB0cmlhbFN0YXJ0ZWRBdD86IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB1cGRhdGVkQXQ/OiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgY29sbGVjdGlvbk1ldGhvZDogU3Vic2NyaXB0aW9uQ29sbGVjdGlvbk1ldGhvZDtcbiAgc3RhdGU6IFN1YnNjcmlwdGlvblN0YXRlO1xuICBwbGFuPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcGxhbkNvZGU/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB0b3RhbD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgdHlwZSBSZWN1cmx5SW52b2ljZXMgPSB7XG4gIHBkZjogc3RyaW5nO1xuICBkYXRlOiBEYXRlO1xuICBkdWU6IERhdGU7XG4gIHN0YXR1czogUmVjdXJseUludm9pY2VTdGF0dXM7XG4gIHRvdGFsOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgY3VycmVuY3k6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFBheW1lbnRJbmZvcyA9IHtcbiAgaG9zdGVkVXJsOiBzdHJpbmc7XG4gIGN1cnJlbnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgaW52b2ljZXM6IFJlY3VybHlJbnZvaWNlc1tdO1xufTtcblxuZXhwb3J0IHR5cGUgU2VuZFJlcG9ydCA9IHtcbiAgaWQ6IHN0cmluZztcbiAgdXNlcjoge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgZmlyc3RuYW1lOiBzdHJpbmc7XG4gICAgbGFzdG5hbWU6IHN0cmluZztcbiAgICBlbWFpbDogc3RyaW5nO1xuICB9O1xuICByZXBvcnRlZFVzZXI6IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGZpcnN0bmFtZTogc3RyaW5nO1xuICAgIGxhc3RuYW1lOiBzdHJpbmc7XG4gICAgZW1haWw6IHN0cmluZztcbiAgfTtcbiAgY3VzdG9tTWVzc2FnZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn07XG5cbmZ1bmN0aW9uIGludGVybmFsVG9QYXltZW50SW5mb3MocDogSW50ZXJuYWxQYXltZW50SW5mb3MpOiBQYXltZW50SW5mb3Mge1xuICByZXR1cm4ge1xuICAgIC4uLnAsXG4gICAgY3VycmVudFN1YnNjcmlwdGlvbjoge1xuICAgICAgLi4ucC5jdXJyZW50U3Vic2NyaXB0aW9uLFxuICAgICAgc3RhdGU6IHAuY3VycmVudFN1YnNjcmlwdGlvbi5zdGF0ZSBhcyBTdWJzY3JpcHRpb25TdGF0ZSxcbiAgICAgIGNvbGxlY3Rpb25NZXRob2Q6IHAuY3VycmVudFN1YnNjcmlwdGlvblxuICAgICAgICAuY29sbGVjdGlvbk1ldGhvZCBhcyBTdWJzY3JpcHRpb25Db2xsZWN0aW9uTWV0aG9kLFxuICAgICAgYWN0aXZhdGVkQXQ6IHAuY3VycmVudFN1YnNjcmlwdGlvbi5hY3RpdmF0ZWRBdFxuICAgICAgICA/IG5ldyBEYXRlKHAuY3VycmVudFN1YnNjcmlwdGlvbi5hY3RpdmF0ZWRBdClcbiAgICAgICAgOiBudWxsLFxuICAgICAgY3JlYXRlZEF0OiBwLmN1cnJlbnRTdWJzY3JpcHRpb24uY3JlYXRlZEF0XG4gICAgICAgID8gbmV3IERhdGUocC5jdXJyZW50U3Vic2NyaXB0aW9uLmNyZWF0ZWRBdClcbiAgICAgICAgOiBudWxsLFxuICAgICAgdXBkYXRlZEF0OiBwLmN1cnJlbnRTdWJzY3JpcHRpb24udXBkYXRlZEF0XG4gICAgICAgID8gbmV3IERhdGUocC5jdXJyZW50U3Vic2NyaXB0aW9uLnVwZGF0ZWRBdClcbiAgICAgICAgOiBudWxsLFxuICAgICAgdHJpYWxFbmRzQXQ6IHAuY3VycmVudFN1YnNjcmlwdGlvbi50cmlhbEVuZHNBdFxuICAgICAgICA/IG5ldyBEYXRlKHAuY3VycmVudFN1YnNjcmlwdGlvbi50cmlhbEVuZHNBdClcbiAgICAgICAgOiBudWxsLFxuICAgICAgdHJpYWxTdGFydGVkQXQ6IHAuY3VycmVudFN1YnNjcmlwdGlvbi50cmlhbFN0YXJ0ZWRBdFxuICAgICAgICA/IG5ldyBEYXRlKHAuY3VycmVudFN1YnNjcmlwdGlvbi50cmlhbFN0YXJ0ZWRBdClcbiAgICAgICAgOiBudWxsLFxuICAgICAgcGF1c2VkQXQ6IHAuY3VycmVudFN1YnNjcmlwdGlvbi5wYXVzZWRBdFxuICAgICAgICA/IG5ldyBEYXRlKHAuY3VycmVudFN1YnNjcmlwdGlvbi5wYXVzZWRBdClcbiAgICAgICAgOiBudWxsLFxuICAgICAgY3VycmVudFBlcmlvZEVuZHNBdDogcC5jdXJyZW50U3Vic2NyaXB0aW9uLmN1cnJlbnRQZXJpb2RFbmRzQXRcbiAgICAgICAgPyBuZXcgRGF0ZShwLmN1cnJlbnRTdWJzY3JpcHRpb24uY3VycmVudFBlcmlvZEVuZHNBdClcbiAgICAgICAgOiBudWxsLFxuICAgICAgY3VycmVudFBlcmlvZFN0YXJ0ZWRBdDogcC5jdXJyZW50U3Vic2NyaXB0aW9uLmN1cnJlbnRQZXJpb2RTdGFydGVkQXRcbiAgICAgICAgPyBuZXcgRGF0ZShwLmN1cnJlbnRTdWJzY3JpcHRpb24uY3VycmVudFBlcmlvZFN0YXJ0ZWRBdClcbiAgICAgICAgOiBudWxsLFxuICAgICAgY2FuY2VsZWRBdDogcC5jdXJyZW50U3Vic2NyaXB0aW9uLmNhbmNlbGVkQXRcbiAgICAgICAgPyBuZXcgRGF0ZShwLmN1cnJlbnRTdWJzY3JpcHRpb24uY2FuY2VsZWRBdClcbiAgICAgICAgOiBudWxsLFxuICAgICAgZXhwaXJlc0F0OiBwLmN1cnJlbnRTdWJzY3JpcHRpb24uZXhwaXJlc0F0XG4gICAgICAgID8gbmV3IERhdGUocC5jdXJyZW50U3Vic2NyaXB0aW9uLmV4cGlyZXNBdClcbiAgICAgICAgOiBudWxsXG4gICAgfSxcbiAgICBpbnZvaWNlczogcC5pbnZvaWNlcy5tYXAoaSA9PiAoe1xuICAgICAgLi4uaSxcbiAgICAgIGRhdGU6IG5ldyBEYXRlKGkuZGF0ZSksXG4gICAgICBkdWU6IG5ldyBEYXRlKGkuZHVlKSxcbiAgICAgIHN0YXR1czogaS5zdGF0dXMgYXMgUmVjdXJseUludm9pY2VTdGF0dXNcbiAgICB9KSlcbiAgfTtcbn1cblxuY29uc3QgcGxhbnNDb2RlcyA9IFtcbiAgXCJiYXNpY19tb250aFwiLFxuICBcImFkdmFuY2VkX21vbnRoXCIsXG4gIFwicHJvX21vbnRoXCIsXG4gIFwiYmFzaWNfeWVhclwiLFxuICBcImFkdmFuY2VkX3llYXJcIixcbiAgXCJwcm9feWVhclwiXG5dIGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBTZWNyZWN5UGxhbnNDb2RlcyA9IHR5cGVvZiBwbGFuc0NvZGVzW251bWJlcl07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkUGxhbihwbGFuQ29kZTogc3RyaW5nKTogcGxhbkNvZGUgaXMgU2VjcmVjeVBsYW5zQ29kZXMge1xuICByZXR1cm4gcGxhbnNDb2Rlcy5pbmNsdWRlcyhwbGFuQ29kZSBhcyBTZWNyZWN5UGxhbnNDb2Rlcyk7XG59XG5cbmV4cG9ydCB0eXBlIFVzZXJEYXRhPFxuICBUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuPiA9IHtcbiAgaXNTdXBlcnVzZXI6IGJvb2xlYW47XG4gIGlzU2VhcmNoYWJsZTogYm9vbGVhbjtcbn0gJiBUO1xuXG5leHBvcnQgdHlwZSBGb2xkZXJTaXplID0geyBzaXplOiBiaWdpbnQ7IHNpemVCZWZvcmU6IGJpZ2ludCB9O1xuXG5jb25zdCBnZXRVc2VyU2VsZWN0b3IgPSAoXG4gIHVzZXJJZDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgd2l0aFB1YmxpY0tleTogYm9vbGVhbiB8IHVuZGVmaW5lZFxuKSA9PiB7XG4gIGNvbnN0IHsgdXNlciB9ID0gU2VsZWN0b3JzLnF1ZXJ5KHtcbiAgICB1c2VyOiBbXG4gICAgICB7IHVzZXJJZCB9LFxuICAgICAge1xuICAgICAgICBpZDogdHJ1ZSxcbiAgICAgICAgZmlyc3RuYW1lOiB0cnVlLFxuICAgICAgICBsYXN0bmFtZTogdHJ1ZSxcbiAgICAgICAgbGFuZzogdHJ1ZSxcbiAgICAgICAgcHVibGljS2V5OiB3aXRoUHVibGljS2V5ID8gdHJ1ZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgZW1haWw6IHRydWUsXG4gICAgICAgIHBob25lOiB0cnVlLFxuICAgICAgICByb2xlOiB0cnVlLFxuICAgICAgICBkZWxldGVkQXQ6IHRydWUsXG4gICAgICAgIGxhc3RMb2dpbjogdHJ1ZVxuICAgICAgfVxuICAgIF1cbiAgfSk7XG4gIHJldHVybiB1c2VyO1xufTtcblxuZXhwb3J0IHR5cGUgQXBwREJDb25maWdGaWVsZCA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBcInN0cmluZ1wiIHwgXCJudW1iZXJcIiB8IFwiYm9vbGVhblwiIHwgXCJvYmplY3RcIjtcbiAgaXNBcnJheT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIGlzTnVsbGFibGU/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBpc0VkaXRhYmxlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgaXNLZXk/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBkZWZhdWx0PzogdW5rbm93bjtcbn07XG5cbmV4cG9ydCB0eXBlIEFwcERCQ29uZmlnID0ge1xuICBmaWVsZHM6IEFwcERCQ29uZmlnRmllbGRbXTtcbn07XG5cbmV4cG9ydCB0eXBlIEZhcUl0ZW0gPSB7XG4gIG9yZGVyOiBudW1iZXI7XG4gIHF1ZXN0aW9uOiBzdHJpbmc7XG4gIGFuc3dlcjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQmxvZ0l0ZW0gPSB7XG4gIGlkOiBzdHJpbmc7XG4gIGJsb2dJZDogc3RyaW5nO1xuICBvcmRlcjogbnVtYmVyO1xuICBhdXRob3I6IHN0cmluZztcbiAgYm9keTogc3RyaW5nO1xuICBkYXRlOiBEYXRlO1xuICBpbWFnZTogc3RyaW5nO1xuICBpbWFnZUFsdDogc3RyaW5nO1xuICBzdW1tYXJ5OiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBVc2VyQmFzZSA9IHtcbiAgZW1haWw6IHN0cmluZztcbiAgcGhvbmU6IHN0cmluZztcbiAgbGFzdG5hbWU6IHN0cmluZztcbiAgcm9sZTogVXNlclJvbGU7XG4gIGZpcnN0bmFtZTogc3RyaW5nO1xuICBpZDogc3RyaW5nO1xuICBkZWxldGVkQXQ6IERhdGUgfCBudWxsO1xuICBsYXN0TG9naW46IERhdGU7XG4gIGxhbmc6IExhbmc7XG59O1xuXG50eXBlIFdpdGhQdWJsaWNLZXkgPSB7IHdpdGhQdWJsaWNLZXk/OiBib29sZWFuIH07XG5cbmV4cG9ydCB0eXBlIFVzZXI8VCBleHRlbmRzIFdpdGhQdWJsaWNLZXkgPSBXaXRoUHVibGljS2V5PiA9IFQgZXh0ZW5kcyB7XG4gIHdpdGhQdWJsaWNLZXk6IHRydWU7XG59XG4gID8gVXNlckJhc2UgJiB7IHB1YmxpY0tleTogc3RyaW5nIH1cbiAgOiBVc2VyQmFzZTtcblxudHlwZSBDbGFzc0dldFVzZXJQYXJhbXMgPSBXaXRoUHVibGljS2V5ICYge1xuICB1c2VySWQ/OiBzdHJpbmc7XG59O1xudHlwZSBHZXRVc2VyUGFyYW1zID0gQ2xhc3NHZXRVc2VyUGFyYW1zICYge1xuICBjbGllbnQ6IFJldHVyblR5cGU8dHlwZW9mIFRodW5kZXI+O1xufTtcblxudHlwZSBTdGF0aWNHZXRVc2VyUGFyYW1zID0gQ2xhc3NHZXRVc2VyUGFyYW1zICYge1xuICBlbnY6IFNlY3JlY3lFbnY7XG59O1xuXG5hc3luYyBmdW5jdGlvbiBnZXRVc2VyPFUgZXh0ZW5kcyBXaXRoUHVibGljS2V5PihcbiAgcGFyYW1zOiBHZXRVc2VyUGFyYW1zXG4pOiBQcm9taXNlPFVzZXI8VT4gfCBudWxsPiB7XG4gIGNvbnN0IHNlbGVjdG9yID0gZ2V0VXNlclNlbGVjdG9yKHBhcmFtcy51c2VySWQsIHBhcmFtcy53aXRoUHVibGljS2V5KTtcbiAgY29uc3QgeyB1c2VyIH0gPSBhd2FpdCBwYXJhbXMuY2xpZW50LnF1ZXJ5KHtcbiAgICB1c2VyOiBzZWxlY3RvclxuICB9KTtcblxuICBpZiAoIXVzZXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4udXNlcixcbiAgICBsYXN0TG9naW46IG5ldyBEYXRlKHVzZXIubGFzdExvZ2luKSxcbiAgICBkZWxldGVkQXQ6IHVzZXIuZGVsZXRlZEF0ID8gbmV3IERhdGUodXNlci5kZWxldGVkQXQpIDogbnVsbFxuICB9O1xufVxuXG5leHBvcnQgdHlwZSBDbG91ZExpbWl0cyA9IHtcbiAgY291bnQ6IGJpZ2ludDtcbiAgbWF4Q291bnQ6IGJpZ2ludCB8IG51bGw7XG4gIHNpemU6IGJpZ2ludDtcbiAgbWF4U2l6ZTogYmlnaW50IHwgbnVsbDtcbn07XG5cbmV4cG9ydCB0eXBlIE1haWxMaW1pdHNWYWx1ZXMgPSB7XG4gIGNvdW50OiBiaWdpbnQ7XG4gIG1heENvdW50OiBiaWdpbnQgfCBudWxsO1xuICBmaWxlU2l6ZTogYmlnaW50O1xuICBtYXhGaWxlU2l6ZTogYmlnaW50IHwgbnVsbDtcbiAgZmlsZUNvdW50OiBiaWdpbnQ7XG4gIG1heEZpbGVDb3VudDogYmlnaW50IHwgbnVsbDtcbn07XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5TGltaXRzID0ge1xuICBjbG91ZDogQ2xvdWRMaW1pdHM7XG4gIG1haWw6IHtcbiAgICBzZW50OiBNYWlsTGltaXRzVmFsdWVzO1xuICAgIHJlY2VpdmVkOiBNYWlsTGltaXRzVmFsdWVzO1xuICB9O1xufTtcblxuZXhwb3J0IGNsYXNzIEJhc2VDbGllbnQge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGdldEJhc2VVcmwgPSAoXG4gICAgZW52OiBTZWNyZWN5RW52ID0gXCJwcm9kXCIsXG4gICAgZ3JhcGhjZG4gPSB0cnVlXG4gICk6IHN0cmluZyA9PiB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInRlc3RcIikge1xuICAgICAgcmV0dXJuIFwiaHR0cDovL2xvY2FsaG9zdDo0MDAwL2dyYXBocWxcIjtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGVudikge1xuICAgICAgY2FzZSBcInByb2RcIjpcbiAgICAgICAgcmV0dXJuIGdyYXBoY2RuXG4gICAgICAgICAgPyBcImh0dHBzOi8vc2VjcmVjeS5ncmFwaGNkbi5hcHBcIlxuICAgICAgICAgIDogXCJodHRwczovL2FwaW5zbHdkazBuZnQtYXBpcHJvZC5mdW5jdGlvbnMuZm5jLmZyLXBhci5zY3cuY2xvdWQvZ3JhcGhxbFwiO1xuICAgICAgY2FzZSBcInN0YWdpbmdcIjpcbiAgICAgICAgcmV0dXJuIFwiaHR0cHM6Ly9hcGluc2x3ZGswbmZ0LWFwaXN0YWdpbmcuZnVuY3Rpb25zLmZuYy5mci1wYXIuc2N3LmNsb3VkL2dyYXBocWxcIjtcbiAgICAgIGNhc2UgXCJkZXZcIjpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBcImh0dHBzOi8vYXBpbnNsd2RrMG5mdC1hcGlkZXYuZnVuY3Rpb25zLmZuYy5mci1wYXIuc2N3LmNsb3VkL2dyYXBocWxcIjtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX2dldEJhc2VDbGllbnQgPSAoXG4gICAgZW52OiBTZWNyZWN5RW52LFxuICAgIHNlc3Npb24/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkXG4gICk6IFJldHVyblR5cGU8dHlwZW9mIFRodW5kZXI+ID0+XG4gICAgY3JlYXRlVGh1bmRlcihCYXNlQ2xpZW50LmdldEJhc2VVcmwoZW52KSwgc2Vzc2lvbik7XG5cbiAgcHJvdGVjdGVkIGNsaWVudDogUmV0dXJuVHlwZTx0eXBlb2YgVGh1bmRlcj47XG5cbiAgcHVibGljIHNlc3Npb25JZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNlc3Npb246IHN0cmluZywgZW52OiBTZWNyZWN5RW52KSB7XG4gICAgdGhpcy5zZXNzaW9uSWQgPSBzZXNzaW9uO1xuICAgIHRoaXMuY2xpZW50ID0gQmFzZUNsaWVudC5fZ2V0QmFzZUNsaWVudChlbnYsIHNlc3Npb24pO1xuICB9XG5cbiAgYXN5bmMgc2Vzc2lvbnMoKTogUHJvbWlzZTxVc2VyU2Vzc2lvbltdPiB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY2xpZW50LnF1ZXJ5KHtcbiAgICAgIHVzZXI6IFtcbiAgICAgICAge30sXG4gICAgICAgIHtcbiAgICAgICAgICBzZXNzaW9uczoge1xuICAgICAgICAgICAgaWQ6IHRydWUsXG4gICAgICAgICAgICBsYXN0QWN0aXZpdHk6IHRydWUsXG4gICAgICAgICAgICB1c2VyQWdlbnQ6IHRydWUsXG4gICAgICAgICAgICBpcDogdHJ1ZSxcbiAgICAgICAgICAgIGNpdHk6IHRydWUsXG4gICAgICAgICAgICBjb3VudHJ5OiB0cnVlLFxuICAgICAgICAgICAgYXBwU2Vzc2lvbnM6IHtcbiAgICAgICAgICAgICAgaWQ6IHRydWUsXG4gICAgICAgICAgICAgIGxhc3RBY3Rpdml0eTogdHJ1ZSxcbiAgICAgICAgICAgICAgdXNlckFnZW50OiB0cnVlLFxuICAgICAgICAgICAgICBpcDogdHJ1ZSxcbiAgICAgICAgICAgICAgY2l0eTogdHJ1ZSxcbiAgICAgICAgICAgICAgY291bnRyeTogdHJ1ZSxcbiAgICAgICAgICAgICAgdXNlckFwcDoge1xuICAgICAgICAgICAgICAgIGFwcDoge1xuICAgICAgICAgICAgICAgICAgbmFtZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgY29uc3Qgc2Vzc2lvbnM6IFVzZXJTZXNzaW9uW10gPVxuICAgICAgZGF0YS51c2VyPy5zZXNzaW9ucy5tYXAocyA9PiAoe1xuICAgICAgICBpZDogcy5pZCxcbiAgICAgICAgaXA6IHMuaXAsXG4gICAgICAgIGNpdHk6IHMuY2l0eSxcbiAgICAgICAgY291bnRyeTogcy5jb3VudHJ5LFxuICAgICAgICBsYXN0QWN0aXZpdHk6IHMubGFzdEFjdGl2aXR5ID8gbmV3IERhdGUocy5sYXN0QWN0aXZpdHkpIDogdW5kZWZpbmVkLFxuICAgICAgICB1c2VyQWdlbnQ6IHMudXNlckFnZW50LFxuICAgICAgICBhcHBTZXNzaW9uczogcy5hcHBTZXNzaW9ucy5tYXAoYSA9PiAoe1xuICAgICAgICAgIGlkOiBhLmlkLFxuICAgICAgICAgIGlwOiBhLmlwLFxuICAgICAgICAgIGNpdHk6IGEuY2l0eSxcbiAgICAgICAgICBjb3VudHJ5OiBhLmNvdW50cnksXG4gICAgICAgICAgbGFzdEFjdGl2aXR5OiBhLmxhc3RBY3Rpdml0eSA/IG5ldyBEYXRlKGEubGFzdEFjdGl2aXR5KSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICB1c2VyQWdlbnQ6IGEudXNlckFnZW50LFxuICAgICAgICAgIGFwcDogYS51c2VyQXBwPy5hcHAubmFtZSA/PyBcIlwiXG4gICAgICAgIH0pKVxuICAgICAgfSkpID8/IFtdO1xuXG4gICAgcmV0dXJuIHNlc3Npb25zO1xuICB9XG5cbiAgYXN5bmMgbG9nb3V0KHNlc3Npb25JZD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXNlc3Npb25JZCkge1xuICAgICAgY29uc3QgbG9jYWwgPSBnZXRTdG9yYWdlKGZhbHNlKTtcbiAgICAgIGNvbnN0IHNlc3Npb24gPSBnZXRTdG9yYWdlKHRydWUpO1xuICAgICAgbG9jYWwuand0LmNsZWFyKCk7XG4gICAgICBsb2NhbC51c2VyQXBwS2V5cy5jbGVhcigpO1xuICAgICAgbG9jYWwudXNlckFwcFNlc3Npb24uY2xlYXIoKTtcbiAgICAgIHNlc3Npb24uand0LmNsZWFyKCk7XG4gICAgICBzZXNzaW9uLnVzZXJBcHBLZXlzLmNsZWFyKCk7XG4gICAgICBzZXNzaW9uLnVzZXJBcHBTZXNzaW9uLmNsZWFyKCk7XG4gICAgICB1c2Vyc0NhY2hlLmNsZWFyKCk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmNsaWVudC5tdXRhdGlvbih7XG4gICAgICAgIGxvZ291dDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNlc3Npb25JZFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdHJ1ZVxuICAgICAgICBdXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbWU8VCBleHRlbmRzIFdpdGhQdWJsaWNLZXkgPSBXaXRoUHVibGljS2V5PihcbiAgICBwYXJhbXM/OiBUXG4gICk6IFByb21pc2U8VXNlcjxUPiB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy51c2VyKHBhcmFtcyB8fCAoeyB3aXRoUHVibGljS2V5OiB0cnVlIH0gYXMgVCkpO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIHVzZXI8VCBleHRlbmRzIFN0YXRpY0dldFVzZXJQYXJhbXM+KFxuICAgIHBhcmFtczogVCxcbiAgICBzZXNzaW9uSWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkXG4gICk6IFByb21pc2U8VXNlcjxUPiB8IG51bGw+IHtcbiAgICBjb25zdCB1c2VyID0gYXdhaXQgZ2V0VXNlcjxUPih7XG4gICAgICBjbGllbnQ6IHRoaXMuX2dldEJhc2VDbGllbnQocGFyYW1zLmVudiwgc2Vzc2lvbklkKSxcbiAgICAgIHVzZXJJZDogcGFyYW1zLnVzZXJJZFxuICAgIH0pO1xuXG4gICAgaWYgKHVzZXIpIHtcbiAgICAgIHVzZXJzQ2FjaGUuc2V0KHVzZXIuaWQsIHVzZXIpO1xuICAgIH1cblxuICAgIHJldHVybiB1c2VyO1xuICB9XG5cbiAgYXN5bmMgdXNlcjxUIGV4dGVuZHMgQ2xhc3NHZXRVc2VyUGFyYW1zPihwYXJhbXM6IFQpOiBQcm9taXNlPFVzZXI8VD4gfCBudWxsPiB7XG4gICAgY29uc3QgdXNlciA9IGF3YWl0IGdldFVzZXI8VD4oe1xuICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgIHVzZXJJZDogcGFyYW1zLnVzZXJJZFxuICAgIH0pO1xuXG4gICAgaWYgKHVzZXIpIHtcbiAgICAgIHVzZXJzQ2FjaGUuc2V0KHVzZXIuaWQsIHVzZXIpO1xuICAgIH1cblxuICAgIHJldHVybiB1c2VyO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlUHJvZmlsZSh7XG4gICAgZmlyc3RuYW1lLFxuICAgIGxhc3RuYW1lLFxuICAgIGxhbmdcbiAgfToge1xuICAgIGZpcnN0bmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgICBsYXN0bmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgICBsYW5nOiBMYW5nIHwgbnVsbDtcbiAgfSk6IFByb21pc2U8VXNlcj4ge1xuICAgIGNvbnN0IHsgdXBkYXRlUHJvZmlsZSB9ID0gYXdhaXQgdGhpcy5jbGllbnQubXV0YXRpb24oe1xuICAgICAgdXBkYXRlUHJvZmlsZTogW1xuICAgICAgICB7XG4gICAgICAgICAgZmlyc3RuYW1lLFxuICAgICAgICAgIGxhc3RuYW1lLFxuICAgICAgICAgIGxhbmdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiB0cnVlLFxuICAgICAgICAgIGZpcnN0bmFtZTogdHJ1ZSxcbiAgICAgICAgICBsYXN0bmFtZTogdHJ1ZSxcbiAgICAgICAgICBsYW5nOiB0cnVlLFxuICAgICAgICAgIHB1YmxpY0tleTogdHJ1ZSxcbiAgICAgICAgICBlbWFpbDogdHJ1ZSxcbiAgICAgICAgICBwaG9uZTogdHJ1ZSxcbiAgICAgICAgICByb2xlOiB0cnVlLFxuICAgICAgICAgIGNyZWF0ZWRBdDogdHJ1ZSxcbiAgICAgICAgICB1cGRhdGVkQXQ6IHRydWUsXG4gICAgICAgICAgZGVsZXRlZEF0OiB0cnVlLFxuICAgICAgICAgIGxhc3RMb2dpbjogdHJ1ZSxcbiAgICAgICAgICBsYXN0QWN0aXZpdHk6IHRydWUsXG4gICAgICAgICAgdXNlckFnZW50OiB0cnVlLFxuICAgICAgICAgIGlwOiB0cnVlLFxuICAgICAgICAgIGNpdHk6IHRydWUsXG4gICAgICAgICAgY291bnRyeTogdHJ1ZSxcbiAgICAgICAgICBhcHBTZXNzaW9uczoge1xuICAgICAgICAgICAgaWQ6IHRydWUsXG4gICAgICAgICAgICBsYXN0QWN0aXZpdHk6IHRydWUsXG4gICAgICAgICAgICB1c2VyQWdlbnQ6IHRydWUsXG4gICAgICAgICAgICBpcDogdHJ1ZSxcbiAgICAgICAgICAgIGNpdHk6IHRydWUsXG4gICAgICAgICAgICBjb3VudHJ5OiB0cnVlLFxuICAgICAgICAgICAgdXNlckFwcDoge1xuICAgICAgICAgICAgICBhcHA6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiB0cnVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIGlmICghdXBkYXRlUHJvZmlsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiU2hvdWxkIG5vdCBoYXBwZW5cIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnVwZGF0ZVByb2ZpbGUsXG4gICAgICBsYXN0TG9naW46IG5ldyBEYXRlKHVwZGF0ZVByb2ZpbGUubGFzdExvZ2luKSxcbiAgICAgIGRlbGV0ZWRBdDogdXBkYXRlUHJvZmlsZS5kZWxldGVkQXRcbiAgICAgICAgPyBuZXcgRGF0ZSh1cGRhdGVQcm9maWxlLmRlbGV0ZWRBdClcbiAgICAgICAgOiBudWxsXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBwbGFucyhcbiAgICBlbnY6IFNlY3JlY3lFbnYsXG4gICAgc2Vzc2lvbklkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZFxuICApOiBQcm9taXNlPFBsYW5bXT4ge1xuICAgIGNvbnN0IHsgcGxhbnMgfSA9IGF3YWl0IEJhc2VDbGllbnQuX2dldEJhc2VDbGllbnQoZW52LCBzZXNzaW9uSWQpLnF1ZXJ5KHtcbiAgICAgIHBsYW5zOiB7XG4gICAgICAgIGtpbmQ6IHRydWUsXG4gICAgICAgIGNvZGVzOiB0cnVlLFxuICAgICAgICBsaW1pdHM6IHtcbiAgICAgICAgICBkb3dubG9hZEJhbmR3aWR0aDogdHJ1ZSxcbiAgICAgICAgICBkb3dubG9hZENvdW50OiB0cnVlLFxuICAgICAgICAgIGhhcmRGaWxlQ291bnQ6IHRydWUsXG4gICAgICAgICAgaGFyZEZpbGVTaXplOiB0cnVlLFxuICAgICAgICAgIHBlckZpbGVTaXplOiB0cnVlLFxuICAgICAgICAgIHVwbG9hZEJhbmR3aWR0aDogdHJ1ZSxcbiAgICAgICAgICB1cGxvYWRDb3VudDogdHJ1ZSxcbiAgICAgICAgICByZWNlaXZlZE1haWxzOiB7XG4gICAgICAgICAgICBjb3VudDogdHJ1ZSxcbiAgICAgICAgICAgIGZpbGVDb3VudDogdHJ1ZSxcbiAgICAgICAgICAgIGZpbGVTaXplOiB0cnVlLFxuICAgICAgICAgICAgaGFyZENvdW50OiB0cnVlLFxuICAgICAgICAgICAgaGFyZEZpbGVDb3VudDogdHJ1ZSxcbiAgICAgICAgICAgIGhhcmRGaWxlU2l6ZTogdHJ1ZSxcbiAgICAgICAgICAgIHBlckZpbGVTaXplOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZW50TWFpbHM6IHtcbiAgICAgICAgICAgIGNvdW50OiB0cnVlLFxuICAgICAgICAgICAgZmlsZUNvdW50OiB0cnVlLFxuICAgICAgICAgICAgZmlsZVNpemU6IHRydWUsXG4gICAgICAgICAgICBoYXJkQ291bnQ6IHRydWUsXG4gICAgICAgICAgICBoYXJkRmlsZUNvdW50OiB0cnVlLFxuICAgICAgICAgICAgaGFyZEZpbGVTaXplOiB0cnVlLFxuICAgICAgICAgICAgcGVyRmlsZVNpemU6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBwbGFucztcbiAgfVxuXG4gIGFzeW5jIHBheShcbiAgICBwbGFuQ29kZTogU2VjcmVjeVBsYW5zQ29kZXMsXG4gICAgaW5wdXQ6IFBheUlucHV0LFxuICAgIGF1dG9SZW5ldz86IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkXG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgcGF5IH0gPSBhd2FpdCB0aGlzLmNsaWVudC5tdXRhdGlvbih7XG4gICAgICBwYXk6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlucHV0LFxuICAgICAgICAgIHBsYW5Db2RlLFxuICAgICAgICAgIGF1dG9SZW5ld1xuICAgICAgICB9LFxuICAgICAgICB0cnVlXG4gICAgICBdXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcGF5ID8/IGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgY2FuY2VsUGF5bWVudCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IGNhbmNlbFBheW1lbnQgfSA9IGF3YWl0IHRoaXMuY2xpZW50Lm11dGF0aW9uKHtcbiAgICAgIGNhbmNlbFBheW1lbnQ6IHRydWVcbiAgICB9KTtcblxuICAgIHJldHVybiBjYW5jZWxQYXltZW50ID8/IGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgcGF5bWVudEluZm9zKCk6IFByb21pc2U8UGF5bWVudEluZm9zIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgcGF5bWVudEluZm9zIH0gPSBhd2FpdCB0aGlzLmNsaWVudC5xdWVyeSh7XG4gICAgICBwYXltZW50SW5mb3M6IHtcbiAgICAgICAgaG9zdGVkVXJsOiB0cnVlLFxuICAgICAgICBjdXJyZW50U3Vic2NyaXB0aW9uOiB7XG4gICAgICAgICAgYXV0b3JlbmV3OiB0cnVlLFxuICAgICAgICAgIGFjdGl2YXRlZEF0OiB0cnVlLFxuICAgICAgICAgIGN1cnJlbnRQZXJpb2RFbmRzQXQ6IHRydWUsXG4gICAgICAgICAgY3VycmVudFBlcmlvZFN0YXJ0ZWRBdDogdHJ1ZSxcbiAgICAgICAgICBjYW5jZWxlZEF0OiB0cnVlLFxuICAgICAgICAgIGNyZWF0ZWRBdDogdHJ1ZSxcbiAgICAgICAgICBleHBpcmVzQXQ6IHRydWUsXG4gICAgICAgICAgcGF1c2VkQXQ6IHRydWUsXG4gICAgICAgICAgdHJpYWxFbmRzQXQ6IHRydWUsXG4gICAgICAgICAgdHJpYWxTdGFydGVkQXQ6IHRydWUsXG4gICAgICAgICAgdXBkYXRlZEF0OiB0cnVlLFxuICAgICAgICAgIHN0YXRlOiB0cnVlLFxuICAgICAgICAgIGNvbGxlY3Rpb25NZXRob2Q6IHRydWUsXG4gICAgICAgICAgcGxhbjogdHJ1ZSxcbiAgICAgICAgICBwbGFuQ29kZTogdHJ1ZSxcblxuICAgICAgICAgIHRvdGFsOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIGludm9pY2VzOiB7XG4gICAgICAgICAgcGRmOiB0cnVlLFxuICAgICAgICAgIGRhdGU6IHRydWUsXG4gICAgICAgICAgZHVlOiB0cnVlLFxuICAgICAgICAgIHN0YXR1czogdHJ1ZSxcbiAgICAgICAgICB0b3RhbDogdHJ1ZSxcbiAgICAgICAgICBuYW1lOiB0cnVlLFxuICAgICAgICAgIGN1cnJlbmN5OiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghcGF5bWVudEluZm9zKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gaW50ZXJuYWxUb1BheW1lbnRJbmZvcyhwYXltZW50SW5mb3MpO1xuICB9XG5cbiAgYXN5bmMgbGltaXRzKCk6IFByb21pc2U8UXVlcnlMaW1pdHMgfCBudWxsPiB7XG4gICAgY29uc3QgeyBsaW1pdHMgfSA9IGF3YWl0IHRoaXMuY2xpZW50LnF1ZXJ5KHtcbiAgICAgIGxpbWl0czoge1xuICAgICAgICBjbG91ZDoge1xuICAgICAgICAgIHNpemU6IHRydWUsXG4gICAgICAgICAgbWF4U2l6ZTogdHJ1ZSxcbiAgICAgICAgICBjb3VudDogdHJ1ZSxcbiAgICAgICAgICBtYXhDb3VudDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBtYWlsOiB7XG4gICAgICAgICAgcmVjZWl2ZWQ6IHtcbiAgICAgICAgICAgIGNvdW50OiB0cnVlLFxuICAgICAgICAgICAgbWF4Q291bnQ6IHRydWUsXG4gICAgICAgICAgICBmaWxlQ291bnQ6IHRydWUsXG4gICAgICAgICAgICBtYXhGaWxlQ291bnQ6IHRydWUsXG4gICAgICAgICAgICBmaWxlU2l6ZTogdHJ1ZSxcbiAgICAgICAgICAgIG1heEZpbGVTaXplOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZW50OiB7XG4gICAgICAgICAgICBjb3VudDogdHJ1ZSxcbiAgICAgICAgICAgIG1heENvdW50OiB0cnVlLFxuICAgICAgICAgICAgZmlsZUNvdW50OiB0cnVlLFxuICAgICAgICAgICAgbWF4RmlsZUNvdW50OiB0cnVlLFxuICAgICAgICAgICAgZmlsZVNpemU6IHRydWUsXG4gICAgICAgICAgICBtYXhGaWxlU2l6ZTogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFsaW1pdHMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHsgY2xvdWQsIG1haWwgfSA9IGxpbWl0cztcblxuICAgIHJldHVybiB7XG4gICAgICBjbG91ZDoge1xuICAgICAgICBjb3VudDogQmlnSW50KGNsb3VkLmNvdW50KSxcbiAgICAgICAgc2l6ZTogQmlnSW50KGNsb3VkLnNpemUpLFxuICAgICAgICBtYXhDb3VudDogY2xvdWQubWF4Q291bnQgPyBCaWdJbnQoY2xvdWQubWF4Q291bnQpIDogbnVsbCxcbiAgICAgICAgbWF4U2l6ZTogY2xvdWQubWF4U2l6ZSA/IEJpZ0ludChjbG91ZC5tYXhTaXplKSA6IG51bGxcbiAgICAgIH0sXG4gICAgICBtYWlsOiB7XG4gICAgICAgIHJlY2VpdmVkOiB7XG4gICAgICAgICAgY291bnQ6IEJpZ0ludChtYWlsLnJlY2VpdmVkLmNvdW50KSxcbiAgICAgICAgICBtYXhDb3VudDogbWFpbC5yZWNlaXZlZC5tYXhDb3VudFxuICAgICAgICAgICAgPyBCaWdJbnQobWFpbC5yZWNlaXZlZC5tYXhDb3VudClcbiAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICBmaWxlQ291bnQ6IEJpZ0ludChtYWlsLnJlY2VpdmVkLmZpbGVDb3VudCksXG4gICAgICAgICAgbWF4RmlsZUNvdW50OiBtYWlsLnJlY2VpdmVkLm1heEZpbGVDb3VudFxuICAgICAgICAgICAgPyBCaWdJbnQobWFpbC5yZWNlaXZlZC5tYXhGaWxlQ291bnQpXG4gICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgZmlsZVNpemU6IEJpZ0ludChtYWlsLnJlY2VpdmVkLmZpbGVTaXplKSxcbiAgICAgICAgICBtYXhGaWxlU2l6ZTogbWFpbC5yZWNlaXZlZC5tYXhGaWxlU2l6ZVxuICAgICAgICAgICAgPyBCaWdJbnQobWFpbC5yZWNlaXZlZC5tYXhGaWxlU2l6ZSlcbiAgICAgICAgICAgIDogbnVsbFxuICAgICAgICB9LFxuICAgICAgICBzZW50OiB7XG4gICAgICAgICAgY291bnQ6IEJpZ0ludChtYWlsLnNlbnQuY291bnQpLFxuICAgICAgICAgIG1heENvdW50OiBtYWlsLnNlbnQubWF4Q291bnQgPyBCaWdJbnQobWFpbC5zZW50Lm1heENvdW50KSA6IG51bGwsXG4gICAgICAgICAgZmlsZUNvdW50OiBCaWdJbnQobWFpbC5zZW50LmZpbGVDb3VudCksXG4gICAgICAgICAgbWF4RmlsZUNvdW50OiBtYWlsLnNlbnQubWF4RmlsZUNvdW50XG4gICAgICAgICAgICA/IEJpZ0ludChtYWlsLnNlbnQubWF4RmlsZUNvdW50KVxuICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIGZpbGVTaXplOiBCaWdJbnQobWFpbC5zZW50LmZpbGVTaXplKSxcbiAgICAgICAgICBtYXhGaWxlU2l6ZTogbWFpbC5zZW50Lm1heEZpbGVTaXplXG4gICAgICAgICAgICA/IEJpZ0ludChtYWlsLnNlbnQubWF4RmlsZVNpemUpXG4gICAgICAgICAgICA6IG51bGxcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBhc3luYyBnb2RGYXRoZXJBbmRDaGlsZHJlbigpOiBQcm9taXNlPEdvZEZhdGhlckFuZENoaWxkcmVuIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgdXNlciB9ID0gYXdhaXQgdGhpcy5jbGllbnQucXVlcnkoe1xuICAgICAgdXNlcjogW1xuICAgICAgICB7fSxcbiAgICAgICAge1xuICAgICAgICAgIGdvZENoaWxkcmVuOiB7XG4gICAgICAgICAgICBpZDogdHJ1ZSxcbiAgICAgICAgICAgIGZpcnN0bmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIGxhc3RuYW1lOiB0cnVlLFxuICAgICAgICAgICAgZW1haWw6IHRydWUsXG4gICAgICAgICAgICBwaG9uZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZ29kRmF0aGVyOiB7XG4gICAgICAgICAgICBpZDogdHJ1ZSxcbiAgICAgICAgICAgIGZpcnN0bmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIGxhc3RuYW1lOiB0cnVlLFxuICAgICAgICAgICAgZW1haWw6IHRydWUsXG4gICAgICAgICAgICBwaG9uZTogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgaWYgKCF1c2VyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4udXNlcixcbiAgICAgIGdvZEZhdGhlcjogdXNlci5nb2RGYXRoZXIgPz8gbnVsbFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgdXBkYXRlQXBwREJDb25maWcoe1xuICAgIGFwcENvZGUsXG4gICAgY29uZmlnLFxuICAgIGVudixcbiAgICBzZXNzaW9uSWRcbiAgfToge1xuICAgIGFwcENvZGU6IHN0cmluZztcbiAgICBjb25maWc6IEFwcERCQ29uZmlnO1xuICAgIGVudjogU2VjcmVjeUVudjtcbiAgICBzZXNzaW9uSWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB9KTogUHJvbWlzZTxBcHBEQkNvbmZpZz4ge1xuICAgIGNvbnN0IHsgZGJDb25maWcgfSA9IGF3YWl0IEJhc2VDbGllbnQuX2dldEJhc2VDbGllbnQoXG4gICAgICBlbnYsXG4gICAgICBzZXNzaW9uSWRcbiAgICApLm11dGF0aW9uKHtcbiAgICAgIGRiQ29uZmlnOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhcHBDb2RlLFxuICAgICAgICAgIGNvbmZpZzogSlNPTi5zdHJpbmdpZnkoY29uZmlnKVxuICAgICAgICB9LFxuICAgICAgICB0cnVlXG4gICAgICBdXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGJDb25maWc7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZ2V0QXBwREJDb25maWcoXG4gICAgYXBwQ29kZTogc3RyaW5nLFxuICAgIGVudjogU2VjcmVjeUVudixcbiAgICBzZXNzaW9uSWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkXG4gICk6IFByb21pc2U8QXBwREJDb25maWc+IHtcbiAgICBjb25zdCB7IGRiQ29uZmlnIH0gPSBhd2FpdCBCYXNlQ2xpZW50Ll9nZXRCYXNlQ2xpZW50KGVudiwgc2Vzc2lvbklkKS5xdWVyeSh7XG4gICAgICBkYkNvbmZpZzogW1xuICAgICAgICB7XG4gICAgICAgICAgYXBwQ29kZVxuICAgICAgICB9LFxuICAgICAgICB0cnVlXG4gICAgICBdXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGJDb25maWc7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZ2V0RkFRKHtcbiAgICBsYW5nLFxuICAgIGVudixcbiAgICBzZXNzaW9uSWRcbiAgfToge1xuICAgIGxhbmc/OiBMYW5nO1xuICAgIGVudjogU2VjcmVjeUVudjtcbiAgICBzZXNzaW9uSWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB9KTogUHJvbWlzZTxGYXFJdGVtW10+IHtcbiAgICBjb25zdCB7IGZhcSB9ID0gYXdhaXQgQmFzZUNsaWVudC5fZ2V0QmFzZUNsaWVudChlbnYsIHNlc3Npb25JZCkucXVlcnkoe1xuICAgICAgZmFxOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYW5nXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBhbnN3ZXI6IHRydWUsXG4gICAgICAgICAgb3JkZXI6IHRydWUsXG4gICAgICAgICAgcXVlc3Rpb246IHRydWVcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZhcTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBnZXRCbG9nKHtcbiAgICBlbnYsXG4gICAgbGFuZyxcbiAgICBzZXNzaW9uSWRcbiAgfToge1xuICAgIGVudjogU2VjcmVjeUVudjtcbiAgICBsYW5nPzogTGFuZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgc2Vzc2lvbklkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfSk6IFByb21pc2U8QmxvZ0l0ZW1bXT4ge1xuICAgIGNvbnN0IHsgYmxvZyB9ID0gYXdhaXQgQmFzZUNsaWVudC5fZ2V0QmFzZUNsaWVudChlbnYsIHNlc3Npb25JZCkucXVlcnkoe1xuICAgICAgYmxvZzogW1xuICAgICAgICB7XG4gICAgICAgICAgbGFuZ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6IHRydWUsXG4gICAgICAgICAgYmxvZ0lkOiB0cnVlLFxuICAgICAgICAgIGF1dGhvcjogdHJ1ZSxcbiAgICAgICAgICBib2R5OiB0cnVlLFxuICAgICAgICAgIGRhdGU6IHRydWUsXG4gICAgICAgICAgaW1hZ2U6IHRydWUsXG4gICAgICAgICAgaW1hZ2VBbHQ6IHRydWUsXG4gICAgICAgICAgc3VtbWFyeTogdHJ1ZSxcbiAgICAgICAgICB0aXRsZTogdHJ1ZSxcbiAgICAgICAgICBvcmRlcjogdHJ1ZVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYmxvZy5tYXAoYiA9PiAoeyAuLi5iLCBkYXRlOiBuZXcgRGF0ZShiLmRhdGUpIH0pKTtcbiAgfVxuXG4gIGFzeW5jIHJlcG9ydFVzZXIoXG4gICAgcmVwb3J0ZWRVc2VySWQ6IHN0cmluZyxcbiAgICBjdXN0b21NZXNzYWdlPzogc3RyaW5nXG4gICk6IFByb21pc2U8U2VuZFJlcG9ydCB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHsgc2VuZFJlcG9ydCB9ID0gYXdhaXQgdGhpcy5jbGllbnQubXV0YXRpb24oe1xuICAgICAgc2VuZFJlcG9ydDogW1xuICAgICAgICB7XG4gICAgICAgICAgcmVwb3J0ZWRVc2VySWQsXG4gICAgICAgICAgY3VzdG9tTWVzc2FnZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6IHRydWUsXG4gICAgICAgICAgY3VzdG9tTWVzc2FnZTogdHJ1ZSxcbiAgICAgICAgICB1c2VyOiB7XG4gICAgICAgICAgICBpZDogdHJ1ZSxcbiAgICAgICAgICAgIGZpcnN0bmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIGxhc3RuYW1lOiB0cnVlLFxuICAgICAgICAgICAgZW1haWw6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcG9ydGVkVXNlcjoge1xuICAgICAgICAgICAgaWQ6IHRydWUsXG4gICAgICAgICAgICBmaXJzdG5hbWU6IHRydWUsXG4gICAgICAgICAgICBsYXN0bmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIGVtYWlsOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2VuZFJlcG9ydDtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBkZWxldGVVc2VyKHtcbiAgICBzZXNzaW9uSWQsXG4gICAgdXNlcklkLFxuICAgIGVudlxuICB9OiB7XG4gICAgc2Vzc2lvbklkOiBzdHJpbmc7XG4gICAgdXNlcklkPzogc3RyaW5nO1xuICAgIGVudjogU2VjcmVjeUVudjtcbiAgfSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgZGVsZXRlVXNlciB9ID0gYXdhaXQgQmFzZUNsaWVudC5fZ2V0QmFzZUNsaWVudChcbiAgICAgIGVudixcbiAgICAgIHNlc3Npb25JZFxuICAgICkubXV0YXRpb24oe1xuICAgICAgZGVsZXRlVXNlcjogW1xuICAgICAgICB7XG4gICAgICAgICAgdXNlcklkXG4gICAgICAgIH0sXG4gICAgICAgIHRydWVcbiAgICAgIF1cbiAgICB9KTtcblxuICAgIHJldHVybiBkZWxldGVVc2VyID8/IGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgZGJHZXQ8VT4oe1xuICAgIGZpZWxkLFxuICAgIHVzZXJJZFxuICB9OiB7XG4gICAgZmllbGQ6IHN0cmluZztcbiAgICB1c2VySWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB9KTogUHJvbWlzZTxVPiB7XG4gICAgY29uc3QgeyBkYkdldCB9ID0gYXdhaXQgdGhpcy5jbGllbnQucXVlcnkoe1xuICAgICAgZGJHZXQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIHVzZXJJZFxuICAgICAgICB9LFxuICAgICAgICB0cnVlXG4gICAgICBdXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGJHZXQucmVzO1xuICB9XG5cbiAgYXN5bmMgZGJTZXQ8VCBleHRlbmRzIFVzZXJEYXRhLCBVIGV4dGVuZHMgRG9jdW1lbnQ+KHtcbiAgICB2YWx1ZSxcbiAgICB1c2VySWRcbiAgfToge1xuICAgIHZhbHVlOiBVO1xuICAgIHVzZXJJZD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIH0pOiBQcm9taXNlPFQ+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGB2YWx1ZSBzaG91bGQgYmUgYW4gb2JqZWN0IGluY2x1ZGluZyBmaWVsZHMgeW91IHdhbnQgdG8gdXBkYXRlLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBkYlNldCB9ID0gYXdhaXQgdGhpcy5jbGllbnQubXV0YXRpb24oe1xuICAgICAgZGJTZXQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIHVzZXJJZCxcbiAgICAgICAgICB2YWx1ZTogc2VyaWFsaXplKHZhbHVlKS50b1N0cmluZyhcImJhc2U2NFwiKVxuICAgICAgICB9LFxuICAgICAgICB0cnVlXG4gICAgICBdXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGJTZXQucmVzO1xuICB9XG5cbiAgYXN5bmMgZGJTZWFyY2g8VD4oe1xuICAgIHNlYXJjaCxcbiAgICBmaWVsZFxuICB9OiB7XG4gICAgZmllbGQ6IHN0cmluZztcbiAgICBzZWFyY2g6IHN0cmluZztcbiAgfSk6IFByb21pc2U8VFtdPiB7XG4gICAgY29uc3QgeyBkYlNlYXJjaCB9ID0gYXdhaXQgdGhpcy5jbGllbnQucXVlcnkoe1xuICAgICAgZGJTZWFyY2g6IFtcbiAgICAgICAge1xuICAgICAgICAgIHNlYXJjaCxcbiAgICAgICAgICBmaWVsZFxuICAgICAgICB9LFxuICAgICAgICB0cnVlXG4gICAgICBdXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGJTZWFyY2g7XG4gIH1cblxuICBhc3luYyBkZWxldGVGb2xkZXIoeyBpZCB9OiB7IGlkOiBzdHJpbmcgfSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgZGVsZXRlRm9sZGVyIH0gPSBhd2FpdCB0aGlzLmNsaWVudC5tdXRhdGlvbih7XG4gICAgICBkZWxldGVGb2xkZXI6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkXG4gICAgICAgIH0sXG4gICAgICAgIHRydWVcbiAgICAgIF1cbiAgICB9KTtcblxuICAgIHJldHVybiBkZWxldGVGb2xkZXIgPz8gZmFsc2U7XG4gIH1cblxuICBhc3luYyBtb3ZlRm9sZGVycyh7XG4gICAgZm9sZGVyc0lkLFxuICAgIHBhcmVudEZvbGRlcklkXG4gIH06IHtcbiAgICBmb2xkZXJzSWQ6IHN0cmluZ1tdO1xuICAgIHBhcmVudEZvbGRlcklkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgbW92ZUZvbGRlcnMgfSA9IGF3YWl0IHRoaXMuY2xpZW50Lm11dGF0aW9uKHtcbiAgICAgIG1vdmVGb2xkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBmb2xkZXJzSWQsXG4gICAgICAgICAgcGFyZW50Rm9sZGVySWRcbiAgICAgICAgfSxcbiAgICAgICAgdHJ1ZVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1vdmVGb2xkZXJzID8/IGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgbW92ZUZpbGVzKHtcbiAgICBmaWxlc0lkLFxuICAgIHBhcmVudEZvbGRlcklkXG4gIH06IHtcbiAgICBmaWxlc0lkOiBzdHJpbmdbXTtcbiAgICBwYXJlbnRGb2xkZXJJZD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIH0pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IG1vdmVGaWxlcyB9ID0gYXdhaXQgdGhpcy5jbGllbnQubXV0YXRpb24oe1xuICAgICAgbW92ZUZpbGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBmaWxlc0lkLFxuICAgICAgICAgIHBhcmVudEZvbGRlcklkXG4gICAgICAgIH0sXG4gICAgICAgIHRydWVcbiAgICAgIF1cbiAgICB9KTtcblxuICAgIHJldHVybiBtb3ZlRmlsZXMgPz8gZmFsc2U7XG4gIH1cblxuICBhc3luYyBmb2xkZXJTaXplKHtcbiAgICBmb2xkZXJJZFxuICB9OiB7XG4gICAgZm9sZGVySWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB9KTogUHJvbWlzZTxGb2xkZXJTaXplIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgZm9sZGVyU2l6ZSB9ID0gYXdhaXQgdGhpcy5jbGllbnQucXVlcnkoe1xuICAgICAgZm9sZGVyU2l6ZTogW1xuICAgICAgICB7XG4gICAgICAgICAgZm9sZGVySWRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNpemU6IHRydWUsXG4gICAgICAgICAgc2l6ZUJlZm9yZTogdHJ1ZVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBpZiAoIWZvbGRlclNpemUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzaXplOiBCaWdJbnQoZm9sZGVyU2l6ZS5zaXplKSxcbiAgICAgIHNpemVCZWZvcmU6IEJpZ0ludChmb2xkZXJTaXplLnNpemVCZWZvcmUpXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
1332
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9CYXNlQ2xpZW50LnRzIl0sIm5hbWVzIjpbInNlcmlhbGl6ZSIsInVzZXJzQ2FjaGUiLCJnZXRTdG9yYWdlIiwiU2VsZWN0b3JzIiwiY3JlYXRlVGh1bmRlciIsImludGVybmFsVG9QYXltZW50SW5mb3MiLCJwIiwiY3VycmVudFN1YnNjcmlwdGlvbiIsInN0YXRlIiwiY29sbGVjdGlvbk1ldGhvZCIsImFjdGl2YXRlZEF0IiwiRGF0ZSIsImNyZWF0ZWRBdCIsInVwZGF0ZWRBdCIsInRyaWFsRW5kc0F0IiwidHJpYWxTdGFydGVkQXQiLCJwYXVzZWRBdCIsImN1cnJlbnRQZXJpb2RFbmRzQXQiLCJjdXJyZW50UGVyaW9kU3RhcnRlZEF0IiwiY2FuY2VsZWRBdCIsImV4cGlyZXNBdCIsImludm9pY2VzIiwibWFwIiwiaSIsImRhdGUiLCJkdWUiLCJzdGF0dXMiLCJwbGFuc0NvZGVzIiwiaXNWYWxpZFBsYW4iLCJwbGFuQ29kZSIsImluY2x1ZGVzIiwiZ2V0VXNlclNlbGVjdG9yIiwidXNlcklkIiwid2l0aFB1YmxpY0tleSIsInF1ZXJ5IiwidXNlciIsImlkIiwiZmlyc3RuYW1lIiwibGFzdG5hbWUiLCJsYW5nIiwicHVibGljS2V5IiwidW5kZWZpbmVkIiwiZW1haWwiLCJwaG9uZSIsInJvbGUiLCJkZWxldGVkQXQiLCJsYXN0TG9naW4iLCJnZXRVc2VyIiwicGFyYW1zIiwic2VsZWN0b3IiLCJjbGllbnQiLCJCYXNlQ2xpZW50Iiwic2Vzc2lvbiIsImVudiIsInNlc3Npb25JZCIsIl9nZXRCYXNlQ2xpZW50Iiwic2Vzc2lvbnMiLCJsYXN0QWN0aXZpdHkiLCJ1c2VyQWdlbnQiLCJpcCIsImNpdHkiLCJjb3VudHJ5IiwiYXBwU2Vzc2lvbnMiLCJ1c2VyQXBwIiwiYXBwIiwibmFtZSIsImRhdGEiLCJzIiwiYSIsImxvZ291dCIsImxvY2FsIiwiand0IiwiY2xlYXIiLCJ1c2VyQXBwS2V5cyIsInVzZXJBcHBTZXNzaW9uIiwibXV0YXRpb24iLCJtZSIsInNldCIsInVwZGF0ZVByb2ZpbGUiLCJFcnJvciIsInBsYW5zIiwia2luZCIsImNvZGVzIiwibGltaXRzIiwiZG93bmxvYWRCYW5kd2lkdGgiLCJkb3dubG9hZENvdW50IiwiaGFyZEZpbGVDb3VudCIsImhhcmRGaWxlU2l6ZSIsInBlckZpbGVTaXplIiwidXBsb2FkQmFuZHdpZHRoIiwidXBsb2FkQ291bnQiLCJyZWNlaXZlZE1haWxzIiwiY291bnQiLCJmaWxlQ291bnQiLCJmaWxlU2l6ZSIsImhhcmRDb3VudCIsInNlbnRNYWlscyIsInBheSIsImlucHV0IiwiYXV0b1JlbmV3IiwiY2FuY2VsUGF5bWVudCIsInBheW1lbnRJbmZvcyIsImhvc3RlZFVybCIsImF1dG9yZW5ldyIsInBsYW4iLCJ0b3RhbCIsInBkZiIsImN1cnJlbmN5IiwiY2xvdWQiLCJzaXplIiwibWF4U2l6ZSIsIm1heENvdW50IiwibWFpbCIsInJlY2VpdmVkIiwibWF4RmlsZUNvdW50IiwibWF4RmlsZVNpemUiLCJzZW50IiwiQmlnSW50IiwiZ29kRmF0aGVyQW5kQ2hpbGRyZW4iLCJnb2RDaGlsZHJlbiIsImdvZEZhdGhlciIsInVwZGF0ZUFwcERCQ29uZmlnIiwiYXBwQ29kZSIsImNvbmZpZyIsImRiQ29uZmlnIiwiSlNPTiIsInN0cmluZ2lmeSIsImdldEFwcERCQ29uZmlnIiwiZ2V0RkFRIiwiZmFxIiwiYW5zd2VyIiwib3JkZXIiLCJxdWVzdGlvbiIsImdldEJsb2ciLCJibG9nIiwiYmxvZ0lkIiwiYXV0aG9yIiwiYm9keSIsImltYWdlIiwiaW1hZ2VBbHQiLCJzdW1tYXJ5IiwidGl0bGUiLCJiIiwicmVwb3J0VXNlciIsInJlcG9ydGVkVXNlcklkIiwiY3VzdG9tTWVzc2FnZSIsInNlbmRSZXBvcnQiLCJyZXBvcnRlZFVzZXIiLCJkZWxldGVVc2VyIiwiZGJHZXQiLCJmaWVsZCIsInJlcyIsImRiU2V0IiwidmFsdWUiLCJ0b1N0cmluZyIsImRiU2VhcmNoIiwic2VhcmNoIiwiZGVsZXRlRm9sZGVyIiwibW92ZUZvbGRlcnMiLCJmb2xkZXJzSWQiLCJwYXJlbnRGb2xkZXJJZCIsIm1vdmVGaWxlcyIsImZpbGVzSWQiLCJmb2xkZXJTaXplIiwiZm9sZGVySWQiLCJzaXplQmVmb3JlIiwiZ2V0QmFzZVVybCIsImdyYXBoY2RuIiwicHJvY2VzcyIsIk5PREVfRU5WIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUVBLFNBQVNBLFNBQVQsUUFBMEIsTUFBMUI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLFlBQTNCO0FBR0EsU0FBU0MsVUFBVCxRQUEyQixxQkFBM0I7QUFRQSxTQUFTQyxTQUFULFFBQTBCLGlCQUExQjtBQUNBLFNBQVNDLGFBQVQsUUFBOEIsa0JBQTlCOztBQXlLQSxTQUFTQyxzQkFBVCxDQUFnQ0MsQ0FBaEMsRUFBdUU7QUFDckUseUNBQ0tBLENBREw7QUFFRUMsSUFBQUEsbUJBQW1CLGtDQUNkRCxDQUFDLENBQUNDLG1CQURZO0FBRWpCQyxNQUFBQSxLQUFLLEVBQUVGLENBQUMsQ0FBQ0MsbUJBQUYsQ0FBc0JDLEtBRlo7QUFHakJDLE1BQUFBLGdCQUFnQixFQUFFSCxDQUFDLENBQUNDLG1CQUFGLENBQ2ZFLGdCQUpjO0FBS2pCQyxNQUFBQSxXQUFXLEVBQUVKLENBQUMsQ0FBQ0MsbUJBQUYsQ0FBc0JHLFdBQXRCLEdBQ1QsSUFBSUMsSUFBSixDQUFTTCxDQUFDLENBQUNDLG1CQUFGLENBQXNCRyxXQUEvQixDQURTLEdBRVQsSUFQYTtBQVFqQkUsTUFBQUEsU0FBUyxFQUFFTixDQUFDLENBQUNDLG1CQUFGLENBQXNCSyxTQUF0QixHQUNQLElBQUlELElBQUosQ0FBU0wsQ0FBQyxDQUFDQyxtQkFBRixDQUFzQkssU0FBL0IsQ0FETyxHQUVQLElBVmE7QUFXakJDLE1BQUFBLFNBQVMsRUFBRVAsQ0FBQyxDQUFDQyxtQkFBRixDQUFzQk0sU0FBdEIsR0FDUCxJQUFJRixJQUFKLENBQVNMLENBQUMsQ0FBQ0MsbUJBQUYsQ0FBc0JNLFNBQS9CLENBRE8sR0FFUCxJQWJhO0FBY2pCQyxNQUFBQSxXQUFXLEVBQUVSLENB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QlcsSUFsQlg7O0FBQUE7QUFBQSxpREFxQlM7QUFDTHRELGdCQUFBQSxJQUFJLEVBQUVRLE1BQU0sQ0FBQzhDLFVBQVUsQ0FBQ3RELElBQVosQ0FEUDtBQUVMd0QsZ0JBQUFBLFVBQVUsRUFBRWhELE1BQU0sQ0FBQzhDLFVBQVUsQ0FBQ0UsVUFBWjtBQUZiLGVBckJUOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEtBL3FCRjs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTs7QUFBQTtBQUFBOztBQUFhbEgsVSxDQUNZbUgsVSxHQUFhLFVBQ2xDakgsR0FEa0MsRUFFbENrSCxRQUZrQyxFQUd2QjtBQUFBLE1BRlhsSCxHQUVXO0FBRlhBLElBQUFBLEdBRVcsR0FGTyxNQUVQO0FBQUE7O0FBQUEsTUFEWGtILFFBQ1c7QUFEWEEsSUFBQUEsUUFDVyxHQURBLElBQ0E7QUFBQTs7QUFDWCxNQUFJQyxPQUFPLENBQUNuSCxHQUFSLENBQVlvSCxRQUFaLEtBQXlCLE1BQTdCLEVBQXFDO0FBQ25DLFdBQU8sK0JBQVA7QUFDRDs7QUFFRCxVQUFRcEgsR0FBUjtBQUNFLFNBQUssTUFBTDtBQUNFLGFBQU9rSCxRQUFRLEdBQ1gsOEJBRFcsR0FFWCxzRUFGSjs7QUFHRixTQUFLLFNBQUw7QUFDRSxhQUFPLHlFQUFQOztBQUNGLFNBQUssS0FBTDtBQUNBO0FBQ0UsYUFBTyxxRUFBUDtBQVRKO0FBV0QsQzs7QUFwQlVwSCxVLENBc0JhSSxjLEdBQWlCLFVBQ3ZDRixHQUR1QyxFQUV2Q0QsT0FGdUM7QUFBQSxTQUl2Q2hELGFBQWEsQ0FBQytDLFVBQVUsQ0FBQ21ILFVBQVgsQ0FBc0JqSCxHQUF0QixDQUFELEVBQTZCRCxPQUE3QixDQUowQjtBQUFBLEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERvd25sb2FkUHJvZ3Jlc3MgYXMgRExQcm9ncmVzcyB9IGZyb20gXCJreVwiO1xuaW1wb3J0IHR5cGUgeyBEb2N1bWVudCB9IGZyb20gXCJic29uXCI7XG5pbXBvcnQgeyBzZXJpYWxpemUgfSBmcm9tIFwiYnNvblwiO1xuaW1wb3J0IHsgdXNlcnNDYWNoZSB9IGZyb20gXCIuL2NhY2hlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFVzZXJTZXNzaW9uIH0gZnJvbSBcIi4vY2xpZW50L3R5cGVzL2luZGV4LmpzXCI7XG5pbXBvcnQgdHlwZSB7IFNlY3JlY3lFbnYgfSBmcm9tIFwiLi9jbGllbnQvaGVscGVycy5qc1wiO1xuaW1wb3J0IHsgZ2V0U3RvcmFnZSB9IGZyb20gXCIuL2NsaWVudC9zdG9yYWdlLmpzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIExhbmcsXG4gIFBheUlucHV0VHlwZSxcbiAgUGxhbktpbmQsXG4gIFRodW5kZXIsXG4gIFVzZXJSb2xlXG59IGZyb20gXCIuL3pldXMvaW5kZXguanNcIjtcbmltcG9ydCB7IFNlbGVjdG9ycyB9IGZyb20gXCIuL3pldXMvaW5kZXguanNcIjtcbmltcG9ydCB7IGNyZWF0ZVRodW5kZXIgfSBmcm9tIFwiLi9aZXVzVGh1bmRlci5qc1wiO1xuXG5leHBvcnQgdHlwZSBEb3dubG9hZFByb2dyZXNzID0gRExQcm9ncmVzcztcblxuZXhwb3J0IHR5cGUgUGF5SW5wdXQgPSB7XG4gIHR5cGU6IFBheUlucHV0VHlwZTtcbiAgdG9rZW46IHN0cmluZztcbiAgZmlyc3ROYW1lOiBzdHJpbmc7XG4gIGxhc3ROYW1lOiBzdHJpbmc7XG4gIHN0cmVldDogc3RyaW5nO1xuICBwb3N0YWxDb2RlOiBzdHJpbmc7XG4gIGNpdHk6IHN0cmluZztcbiAgY291bnRyeTogc3RyaW5nO1xuICBtb250aDogc3RyaW5nO1xuICB5ZWFyOiBzdHJpbmc7XG4gIGN2djogc3RyaW5nO1xuICBudW1iZXI6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIE1haWxMaW1pdHMgPSB7XG4gIGNvdW50Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBmaWxlQ291bnQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGZpbGVTaXplPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBoYXJkQ291bnQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGhhcmRGaWxlQ291bnQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGhhcmRGaWxlU2l6ZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcGVyRmlsZVNpemU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgdHlwZSBMaW1pdHMgPSB7XG4gIGRvd25sb2FkQmFuZHdpZHRoPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBkb3dubG9hZENvdW50Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBoYXJkRmlsZUNvdW50Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBoYXJkRmlsZVNpemU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHBlckZpbGVTaXplPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICByZWNlaXZlZE1haWxzOiBNYWlsTGltaXRzO1xuICBzZW50TWFpbHM6IE1haWxMaW1pdHM7XG4gIHVwbG9hZEJhbmR3aWR0aD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgdXBsb2FkQ291bnQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgdHlwZSBHb2RVc2VyID0ge1xuICBpZDogc3RyaW5nO1xuICBmaXJzdG5hbWU6IHN0cmluZztcbiAgbGFzdG5hbWU6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgcGhvbmU6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEdvZEZhdGhlckFuZENoaWxkcmVuID0ge1xuICBnb2RGYXRoZXI6IEdvZFVzZXIgfCBudWxsO1xuICBnb2RDaGlsZHJlbjogR29kVXNlcltdO1xufTtcblxuZXhwb3J0IHR5cGUgUGxhbiA9IHtcbiAgY29kZXM6IHN0cmluZ1tdO1xuICBraW5kOiBQbGFuS2luZDtcbiAgbGltaXRzOiBMaW1pdHM7XG59O1xuXG5leHBvcnQgdHlwZSBTdWJzY3JpcHRpb25TdGF0ZSA9XG4gIHwgXCJhY3RpdmVcIlxuICB8IFwiY2FuY2VsZWRcIlxuICB8IFwicGF1c2VkXCJcbiAgfCBcImV4cGlyZWRcIlxuICB8IFwiZnV0dXJlXCJcbiAgfCBcImluX3RyaWFsXCJcbiAgfCBcImxpdmVcIlxuICB8IFwicGFzdF9kdWVcIjtcblxuZXhwb3J0IHR5cGUgU3Vic2NyaXB0aW9uQ29sbGVjdGlvbk1ldGhvZCA9IFwiYXV0b21hdGljXCIgfCBcIm1hbnVhbFwiO1xuXG50eXBlIEludGVybmFsU3Vic2NyaXB0aW9uID0ge1xuICBhdXRvcmVuZXc6IGJvb2xlYW47XG4gIGFjdGl2YXRlZEF0Pzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgY3VycmVudFBlcmlvZEVuZHNBdD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGN1cnJlbnRQZXJpb2RTdGFydGVkQXQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjYW5jZWxlZEF0Pzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgY3JlYXRlZEF0Pzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgZXhwaXJlc0F0Pzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcGF1c2VkQXQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB0cmlhbEVuZHNBdD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHRyaWFsU3RhcnRlZEF0Pzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgdXBkYXRlZEF0Pzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgY29sbGVjdGlvbk1ldGhvZDogc3RyaW5nO1xuICBzdGF0ZTogc3RyaW5nO1xuICBwbGFuPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcGxhbkNvZGU/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB0b3RhbD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQ7XG59O1xuXG50eXBlIFJlY3VybHlJbnZvaWNlU3RhdHVzID1cbiAgfCBcInBlbmRpbmdcIlxuICB8IFwicGFpZFwiXG4gIHwgXCJmYWlsZWRcIlxuICB8IFwicGFzdF9kdWVcIlxuICB8IFwib3BlblwiXG4gIHwgXCJjbG9zZWRcIlxuICB8IFwidm9pZGVkXCJcbiAgfCBcInByb2Nlc3NpbmdcIjtcblxudHlwZSBJbnRlcm5hbFJlY3VybHlJbnZvaWNlcyA9IHtcbiAgcGRmOiBzdHJpbmc7XG4gIGRhdGU6IHN0cmluZztcbiAgZHVlOiBzdHJpbmc7XG4gIHN0YXR1czogc3RyaW5nO1xuICB0b3RhbDogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIGN1cnJlbmN5OiBzdHJpbmc7XG59O1xuXG50eXBlIEludGVybmFsUGF5bWVudEluZm9zID0ge1xuICBob3N0ZWRVcmw6IHN0cmluZztcbiAgY3VycmVudFN1YnNjcmlwdGlvbjogSW50ZXJuYWxTdWJzY3JpcHRpb247XG4gIGludm9pY2VzOiBJbnRlcm5hbFJlY3VybHlJbnZvaWNlc1tdO1xufTtcblxuZXhwb3J0IHR5cGUgU3Vic2NyaXB0aW9uID0ge1xuICBhdXRvcmVuZXc6IGJvb2xlYW47XG4gIGFjdGl2YXRlZEF0PzogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGN1cnJlbnRQZXJpb2RFbmRzQXQ/OiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgY3VycmVudFBlcmlvZFN0YXJ0ZWRBdD86IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjYW5jZWxlZEF0PzogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGNyZWF0ZWRBdD86IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBleHBpcmVzQXQ/OiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcGF1c2VkQXQ/OiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgdHJpYWxFbmRzQXQ/OiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgdHJpYWxTdGFydGVkQXQ/OiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgdXBkYXRlZEF0PzogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGNvbGxlY3Rpb25NZXRob2Q6IFN1YnNjcmlwdGlvbkNvbGxlY3Rpb25NZXRob2Q7XG4gIHN0YXRlOiBTdWJzY3JpcHRpb25TdGF0ZTtcbiAgcGxhbj86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHBsYW5Db2RlPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgdG90YWw/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IHR5cGUgUmVjdXJseUludm9pY2VzID0ge1xuICBwZGY6IHN0cmluZztcbiAgZGF0ZTogRGF0ZTtcbiAgZHVlOiBEYXRlO1xuICBzdGF0dXM6IFJlY3VybHlJbnZvaWNlU3RhdHVzO1xuICB0b3RhbDogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIGN1cnJlbmN5OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBQYXltZW50SW5mb3MgPSB7XG4gIGhvc3RlZFVybDogc3RyaW5nO1xuICBjdXJyZW50U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIGludm9pY2VzOiBSZWN1cmx5SW52b2ljZXNbXTtcbn07XG5cbmV4cG9ydCB0eXBlIFNlbmRSZXBvcnQgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHVzZXI6IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGZpcnN0bmFtZTogc3RyaW5nO1xuICAgIGxhc3RuYW1lOiBzdHJpbmc7XG4gICAgZW1haWw6IHN0cmluZztcbiAgfTtcbiAgcmVwb3J0ZWRVc2VyOiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBmaXJzdG5hbWU6IHN0cmluZztcbiAgICBsYXN0bmFtZTogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gIH07XG4gIGN1c3RvbU1lc3NhZ2U/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59O1xuXG5mdW5jdGlvbiBpbnRlcm5hbFRvUGF5bWVudEluZm9zKHA6IEludGVybmFsUGF5bWVudEluZm9zKTogUGF5bWVudEluZm9zIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5wLFxuICAgIGN1cnJlbnRTdWJzY3JpcHRpb246IHtcbiAgICAgIC4uLnAuY3VycmVudFN1YnNjcmlwdGlvbixcbiAgICAgIHN0YXRlOiBwLmN1cnJlbnRTdWJzY3JpcHRpb24uc3RhdGUgYXMgU3Vic2NyaXB0aW9uU3RhdGUsXG4gICAgICBjb2xsZWN0aW9uTWV0aG9kOiBwLmN1cnJlbnRTdWJzY3JpcHRpb25cbiAgICAgICAgLmNvbGxlY3Rpb25NZXRob2QgYXMgU3Vic2NyaXB0aW9uQ29sbGVjdGlvbk1ldGhvZCxcbiAgICAgIGFjdGl2YXRlZEF0OiBwLmN1cnJlbnRTdWJzY3JpcHRpb24uYWN0aXZhdGVkQXRcbiAgICAgICAgPyBuZXcgRGF0ZShwLmN1cnJlbnRTdWJzY3JpcHRpb24uYWN0aXZhdGVkQXQpXG4gICAgICAgIDogbnVsbCxcbiAgICAgIGNyZWF0ZWRBdDogcC5jdXJyZW50U3Vic2NyaXB0aW9uLmNyZWF0ZWRBdFxuICAgICAgICA/IG5ldyBEYXRlKHAuY3VycmVudFN1YnNjcmlwdGlvbi5jcmVhdGVkQXQpXG4gICAgICAgIDogbnVsbCxcbiAgICAgIHVwZGF0ZWRBdDogcC5jdXJyZW50U3Vic2NyaXB0aW9uLnVwZGF0ZWRBdFxuICAgICAgICA/IG5ldyBEYXRlKHAuY3VycmVudFN1YnNjcmlwdGlvbi51cGRhdGVkQXQpXG4gICAgICAgIDogbnVsbCxcbiAgICAgIHRyaWFsRW5kc0F0OiBwLmN1cnJlbnRTdWJzY3JpcHRpb24udHJpYWxFbmRzQXRcbiAgICAgICAgPyBuZXcgRGF0ZShwLmN1cnJlbnRTdWJzY3JpcHRpb24udHJpYWxFbmRzQXQpXG4gICAgICAgIDogbnVsbCxcbiAgICAgIHRyaWFsU3RhcnRlZEF0OiBwLmN1cnJlbnRTdWJzY3JpcHRpb24udHJpYWxTdGFydGVkQXRcbiAgICAgICAgPyBuZXcgRGF0ZShwLmN1cnJlbnRTdWJzY3JpcHRpb24udHJpYWxTdGFydGVkQXQpXG4gICAgICAgIDogbnVsbCxcbiAgICAgIHBhdXNlZEF0OiBwLmN1cnJlbnRTdWJzY3JpcHRpb24ucGF1c2VkQXRcbiAgICAgICAgPyBuZXcgRGF0ZShwLmN1cnJlbnRTdWJzY3JpcHRpb24ucGF1c2VkQXQpXG4gICAgICAgIDogbnVsbCxcbiAgICAgIGN1cnJlbnRQZXJpb2RFbmRzQXQ6IHAuY3VycmVudFN1YnNjcmlwdGlvbi5jdXJyZW50UGVyaW9kRW5kc0F0XG4gICAgICAgID8gbmV3IERhdGUocC5jdXJyZW50U3Vic2NyaXB0aW9uLmN1cnJlbnRQZXJpb2RFbmRzQXQpXG4gICAgICAgIDogbnVsbCxcbiAgICAgIGN1cnJlbnRQZXJpb2RTdGFydGVkQXQ6IHAuY3VycmVudFN1YnNjcmlwdGlvbi5jdXJyZW50UGVyaW9kU3RhcnRlZEF0XG4gICAgICAgID8gbmV3IERhdGUocC5jdXJyZW50U3Vic2NyaXB0aW9uLmN1cnJlbnRQZXJpb2RTdGFydGVkQXQpXG4gICAgICAgIDogbnVsbCxcbiAgICAgIGNhbmNlbGVkQXQ6IHAuY3VycmVudFN1YnNjcmlwdGlvbi5jYW5jZWxlZEF0XG4gICAgICAgID8gbmV3IERhdGUocC5jdXJyZW50U3Vic2NyaXB0aW9uLmNhbmNlbGVkQXQpXG4gICAgICAgIDogbnVsbCxcbiAgICAgIGV4cGlyZXNBdDogcC5jdXJyZW50U3Vic2NyaXB0aW9uLmV4cGlyZXNBdFxuICAgICAgICA/IG5ldyBEYXRlKHAuY3VycmVudFN1YnNjcmlwdGlvbi5leHBpcmVzQXQpXG4gICAgICAgIDogbnVsbFxuICAgIH0sXG4gICAgaW52b2ljZXM6IHAuaW52b2ljZXMubWFwKGkgPT4gKHtcbiAgICAgIC4uLmksXG4gICAgICBkYXRlOiBuZXcgRGF0ZShpLmRhdGUpLFxuICAgICAgZHVlOiBuZXcgRGF0ZShpLmR1ZSksXG4gICAgICBzdGF0dXM6IGkuc3RhdHVzIGFzIFJlY3VybHlJbnZvaWNlU3RhdHVzXG4gICAgfSkpXG4gIH07XG59XG5cbmNvbnN0IHBsYW5zQ29kZXMgPSBbXG4gIFwiYmFzaWNfbW9udGhcIixcbiAgXCJhZHZhbmNlZF9tb250aFwiLFxuICBcInByb19tb250aFwiLFxuICBcImJhc2ljX3llYXJcIixcbiAgXCJhZHZhbmNlZF95ZWFyXCIsXG4gIFwicHJvX3llYXJcIlxuXSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgU2VjcmVjeVBsYW5zQ29kZXMgPSB0eXBlb2YgcGxhbnNDb2Rlc1tudW1iZXJdO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFBsYW4ocGxhbkNvZGU6IHN0cmluZyk6IHBsYW5Db2RlIGlzIFNlY3JlY3lQbGFuc0NvZGVzIHtcbiAgcmV0dXJuIHBsYW5zQ29kZXMuaW5jbHVkZXMocGxhbkNvZGUgYXMgU2VjcmVjeVBsYW5zQ29kZXMpO1xufVxuXG5leHBvcnQgdHlwZSBVc2VyRGF0YTxcbiAgVCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbj4gPSB7XG4gIGlzU3VwZXJ1c2VyOiBib29sZWFuO1xuICBpc1NlYXJjaGFibGU6IGJvb2xlYW47XG59ICYgVDtcblxuZXhwb3J0IHR5cGUgRm9sZGVyU2l6ZSA9IHsgc2l6ZTogYmlnaW50OyBzaXplQmVmb3JlOiBiaWdpbnQgfTtcblxuY29uc3QgZ2V0VXNlclNlbGVjdG9yID0gKFxuICB1c2VySWQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsXG4gIHdpdGhQdWJsaWNLZXk6IGJvb2xlYW4gfCB1bmRlZmluZWRcbikgPT4ge1xuICBjb25zdCB7IHVzZXIgfSA9IFNlbGVjdG9ycy5xdWVyeSh7XG4gICAgdXNlcjogW1xuICAgICAgeyB1c2VySWQgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6IHRydWUsXG4gICAgICAgIGZpcnN0bmFtZTogdHJ1ZSxcbiAgICAgICAgbGFzdG5hbWU6IHRydWUsXG4gICAgICAgIGxhbmc6IHRydWUsXG4gICAgICAgIHB1YmxpY0tleTogd2l0aFB1YmxpY0tleSA/IHRydWUgOiB1bmRlZmluZWQsXG4gICAgICAgIGVtYWlsOiB0cnVlLFxuICAgICAgICBwaG9uZTogdHJ1ZSxcbiAgICAgICAgcm9sZTogdHJ1ZSxcbiAgICAgICAgZGVsZXRlZEF0OiB0cnVlLFxuICAgICAgICBsYXN0TG9naW46IHRydWVcbiAgICAgIH1cbiAgICBdXG4gIH0pO1xuICByZXR1cm4gdXNlcjtcbn07XG5cbmV4cG9ydCB0eXBlIEFwcERCQ29uZmlnRmllbGQgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogXCJzdHJpbmdcIiB8IFwibnVtYmVyXCIgfCBcImJvb2xlYW5cIiB8IFwib2JqZWN0XCI7XG4gIGlzQXJyYXk/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBpc051bGxhYmxlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgaXNFZGl0YWJsZT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIGlzS2V5PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgZGVmYXVsdD86IHVua25vd247XG59O1xuXG5leHBvcnQgdHlwZSBBcHBEQkNvbmZpZyA9IHtcbiAgZmllbGRzOiBBcHBEQkNvbmZpZ0ZpZWxkW107XG59O1xuXG5leHBvcnQgdHlwZSBGYXFJdGVtID0ge1xuICBvcmRlcjogbnVtYmVyO1xuICBxdWVzdGlvbjogc3RyaW5nO1xuICBhbnN3ZXI6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEJsb2dJdGVtID0ge1xuICBpZDogc3RyaW5nO1xuICBibG9nSWQ6IHN0cmluZztcbiAgb3JkZXI6IG51bWJlcjtcbiAgYXV0aG9yOiBzdHJpbmc7XG4gIGJvZHk6IHN0cmluZztcbiAgZGF0ZTogRGF0ZTtcbiAgaW1hZ2U6IHN0cmluZztcbiAgaW1hZ2VBbHQ6IHN0cmluZztcbiAgc3VtbWFyeTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVXNlckJhc2UgPSB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHBob25lOiBzdHJpbmc7XG4gIGxhc3RuYW1lOiBzdHJpbmc7XG4gIHJvbGU6IFVzZXJSb2xlO1xuICBmaXJzdG5hbWU6IHN0cmluZztcbiAgaWQ6IHN0cmluZztcbiAgZGVsZXRlZEF0OiBEYXRlIHwgbnVsbDtcbiAgbGFzdExvZ2luOiBEYXRlO1xuICBsYW5nOiBMYW5nO1xufTtcblxudHlwZSBXaXRoUHVibGljS2V5ID0geyB3aXRoUHVibGljS2V5PzogYm9vbGVhbiB9O1xuXG5leHBvcnQgdHlwZSBVc2VyPFQgZXh0ZW5kcyBXaXRoUHVibGljS2V5ID0gV2l0aFB1YmxpY0tleT4gPSBUIGV4dGVuZHMge1xuICB3aXRoUHVibGljS2V5OiB0cnVlO1xufVxuICA/IFVzZXJCYXNlICYgeyBwdWJsaWNLZXk6IHN0cmluZyB9XG4gIDogVXNlckJhc2U7XG5cbnR5cGUgQ2xhc3NHZXRVc2VyUGFyYW1zID0gV2l0aFB1YmxpY0tleSAmIHtcbiAgdXNlcklkPzogc3RyaW5nO1xufTtcbnR5cGUgR2V0VXNlclBhcmFtcyA9IENsYXNzR2V0VXNlclBhcmFtcyAmIHtcbiAgY2xpZW50OiBSZXR1cm5UeXBlPHR5cGVvZiBUaHVuZGVyPjtcbn07XG5cbnR5cGUgU3RhdGljR2V0VXNlclBhcmFtcyA9IENsYXNzR2V0VXNlclBhcmFtcyAmIHtcbiAgZW52OiBTZWNyZWN5RW52O1xufTtcblxuYXN5bmMgZnVuY3Rpb24gZ2V0VXNlcjxVIGV4dGVuZHMgV2l0aFB1YmxpY0tleT4oXG4gIHBhcmFtczogR2V0VXNlclBhcmFtc1xuKTogUHJvbWlzZTxVc2VyPFU+IHwgbnVsbD4ge1xuICBjb25zdCBzZWxlY3RvciA9IGdldFVzZXJTZWxlY3RvcihwYXJhbXMudXNlcklkLCBwYXJhbXMud2l0aFB1YmxpY0tleSk7XG4gIGNvbnN0IHsgdXNlciB9ID0gYXdhaXQgcGFyYW1zLmNsaWVudC5xdWVyeSh7XG4gICAgdXNlcjogc2VsZWN0b3JcbiAgfSk7XG5cbiAgaWYgKCF1c2VyKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLnVzZXIsXG4gICAgbGFzdExvZ2luOiBuZXcgRGF0ZSh1c2VyLmxhc3RMb2dpbiksXG4gICAgZGVsZXRlZEF0OiB1c2VyLmRlbGV0ZWRBdCA/IG5ldyBEYXRlKHVzZXIuZGVsZXRlZEF0KSA6IG51bGxcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgQ2xvdWRMaW1pdHMgPSB7XG4gIGNvdW50OiBiaWdpbnQ7XG4gIG1heENvdW50OiBiaWdpbnQgfCBudWxsO1xuICBzaXplOiBiaWdpbnQ7XG4gIG1heFNpemU6IGJpZ2ludCB8IG51bGw7XG59O1xuXG5leHBvcnQgdHlwZSBNYWlsTGltaXRzVmFsdWVzID0ge1xuICBjb3VudDogYmlnaW50O1xuICBtYXhDb3VudDogYmlnaW50IHwgbnVsbDtcbiAgZmlsZVNpemU6IGJpZ2ludDtcbiAgbWF4RmlsZVNpemU6IGJpZ2ludCB8IG51bGw7XG4gIGZpbGVDb3VudDogYmlnaW50O1xuICBtYXhGaWxlQ291bnQ6IGJpZ2ludCB8IG51bGw7XG59O1xuXG5leHBvcnQgdHlwZSBRdWVyeUxpbWl0cyA9IHtcbiAgY2xvdWQ6IENsb3VkTGltaXRzO1xuICBtYWlsOiB7XG4gICAgc2VudDogTWFpbExpbWl0c1ZhbHVlcztcbiAgICByZWNlaXZlZDogTWFpbExpbWl0c1ZhbHVlcztcbiAgfTtcbn07XG5cbmV4cG9ydCBjbGFzcyBCYXNlQ2xpZW50IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBnZXRCYXNlVXJsID0gKFxuICAgIGVudjogU2VjcmVjeUVudiA9IFwicHJvZFwiLFxuICAgIGdyYXBoY2RuID0gdHJ1ZVxuICApOiBzdHJpbmcgPT4ge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJ0ZXN0XCIpIHtcbiAgICAgIHJldHVybiBcImh0dHA6Ly9sb2NhbGhvc3Q6NDAwMC9ncmFwaHFsXCI7XG4gICAgfVxuXG4gICAgc3dpdGNoIChlbnYpIHtcbiAgICAgIGNhc2UgXCJwcm9kXCI6XG4gICAgICAgIHJldHVybiBncmFwaGNkblxuICAgICAgICAgID8gXCJodHRwczovL3NlY3JlY3kuZ3JhcGhjZG4uYXBwXCJcbiAgICAgICAgICA6IFwiaHR0cHM6Ly9hcGluc2x3ZGswbmZ0LWFwaXByb2QuZnVuY3Rpb25zLmZuYy5mci1wYXIuc2N3LmNsb3VkL2dyYXBocWxcIjtcbiAgICAgIGNhc2UgXCJzdGFnaW5nXCI6XG4gICAgICAgIHJldHVybiBcImh0dHBzOi8vYXBpbnNsd2RrMG5mdC1hcGlzdGFnaW5nLmZ1bmN0aW9ucy5mbmMuZnItcGFyLnNjdy5jbG91ZC9ncmFwaHFsXCI7XG4gICAgICBjYXNlIFwiZGV2XCI6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gXCJodHRwczovL2FwaW5zbHdkazBuZnQtYXBpZGV2LmZ1bmN0aW9ucy5mbmMuZnItcGFyLnNjdy5jbG91ZC9ncmFwaHFsXCI7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9nZXRCYXNlQ2xpZW50ID0gKFxuICAgIGVudjogU2VjcmVjeUVudixcbiAgICBzZXNzaW9uPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZFxuICApOiBSZXR1cm5UeXBlPHR5cGVvZiBUaHVuZGVyPiA9PlxuICAgIGNyZWF0ZVRodW5kZXIoQmFzZUNsaWVudC5nZXRCYXNlVXJsKGVudiksIHNlc3Npb24pO1xuXG4gIHByb3RlY3RlZCBjbGllbnQ6IFJldHVyblR5cGU8dHlwZW9mIFRodW5kZXI+O1xuXG4gIHB1YmxpYyBzZXNzaW9uSWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzZXNzaW9uOiBzdHJpbmcsIGVudjogU2VjcmVjeUVudikge1xuICAgIHRoaXMuc2Vzc2lvbklkID0gc2Vzc2lvbjtcbiAgICB0aGlzLmNsaWVudCA9IEJhc2VDbGllbnQuX2dldEJhc2VDbGllbnQoZW52LCBzZXNzaW9uKTtcbiAgfVxuXG4gIGFzeW5jIHNlc3Npb25zKCk6IFByb21pc2U8VXNlclNlc3Npb25bXT4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmNsaWVudC5xdWVyeSh7XG4gICAgICB1c2VyOiBbXG4gICAgICAgIHt9LFxuICAgICAgICB7XG4gICAgICAgICAgc2Vzc2lvbnM6IHtcbiAgICAgICAgICAgIGlkOiB0cnVlLFxuICAgICAgICAgICAgbGFzdEFjdGl2aXR5OiB0cnVlLFxuICAgICAgICAgICAgdXNlckFnZW50OiB0cnVlLFxuICAgICAgICAgICAgaXA6IHRydWUsXG4gICAgICAgICAgICBjaXR5OiB0cnVlLFxuICAgICAgICAgICAgY291bnRyeTogdHJ1ZSxcbiAgICAgICAgICAgIGFwcFNlc3Npb25zOiB7XG4gICAgICAgICAgICAgIGlkOiB0cnVlLFxuICAgICAgICAgICAgICBsYXN0QWN0aXZpdHk6IHRydWUsXG4gICAgICAgICAgICAgIHVzZXJBZ2VudDogdHJ1ZSxcbiAgICAgICAgICAgICAgaXA6IHRydWUsXG4gICAgICAgICAgICAgIGNpdHk6IHRydWUsXG4gICAgICAgICAgICAgIGNvdW50cnk6IHRydWUsXG4gICAgICAgICAgICAgIHVzZXJBcHA6IHtcbiAgICAgICAgICAgICAgICBhcHA6IHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIGNvbnN0IHNlc3Npb25zOiBVc2VyU2Vzc2lvbltdID1cbiAgICAgIGRhdGEudXNlcj8uc2Vzc2lvbnMubWFwKHMgPT4gKHtcbiAgICAgICAgaWQ6IHMuaWQsXG4gICAgICAgIGlwOiBzLmlwLFxuICAgICAgICBjaXR5OiBzLmNpdHksXG4gICAgICAgIGNvdW50cnk6IHMuY291bnRyeSxcbiAgICAgICAgbGFzdEFjdGl2aXR5OiBzLmxhc3RBY3Rpdml0eSA/IG5ldyBEYXRlKHMubGFzdEFjdGl2aXR5KSA6IHVuZGVmaW5lZCxcbiAgICAgICAgdXNlckFnZW50OiBzLnVzZXJBZ2VudCxcbiAgICAgICAgYXBwU2Vzc2lvbnM6IHMuYXBwU2Vzc2lvbnMubWFwKGEgPT4gKHtcbiAgICAgICAgICBpZDogYS5pZCxcbiAgICAgICAgICBpcDogYS5pcCxcbiAgICAgICAgICBjaXR5OiBhLmNpdHksXG4gICAgICAgICAgY291bnRyeTogYS5jb3VudHJ5LFxuICAgICAgICAgIGxhc3RBY3Rpdml0eTogYS5sYXN0QWN0aXZpdHkgPyBuZXcgRGF0ZShhLmxhc3RBY3Rpdml0eSkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgdXNlckFnZW50OiBhLnVzZXJBZ2VudCxcbiAgICAgICAgICBhcHA6IGEudXNlckFwcD8uYXBwLm5hbWUgPz8gXCJcIlxuICAgICAgICB9KSlcbiAgICAgIH0pKSA/PyBbXTtcblxuICAgIHJldHVybiBzZXNzaW9ucztcbiAgfVxuXG4gIGFzeW5jIGxvZ291dChzZXNzaW9uSWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCFzZXNzaW9uSWQpIHtcbiAgICAgIGNvbnN0IGxvY2FsID0gZ2V0U3RvcmFnZShmYWxzZSk7XG4gICAgICBjb25zdCBzZXNzaW9uID0gZ2V0U3RvcmFnZSh0cnVlKTtcbiAgICAgIGxvY2FsLmp3dC5jbGVhcigpO1xuICAgICAgbG9jYWwudXNlckFwcEtleXMuY2xlYXIoKTtcbiAgICAgIGxvY2FsLnVzZXJBcHBTZXNzaW9uLmNsZWFyKCk7XG4gICAgICBzZXNzaW9uLmp3dC5jbGVhcigpO1xuICAgICAgc2Vzc2lvbi51c2VyQXBwS2V5cy5jbGVhcigpO1xuICAgICAgc2Vzc2lvbi51c2VyQXBwU2Vzc2lvbi5jbGVhcigpO1xuICAgICAgdXNlcnNDYWNoZS5jbGVhcigpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5jbGllbnQubXV0YXRpb24oe1xuICAgICAgICBsb2dvdXQ6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzZXNzaW9uSWRcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRydWVcbiAgICAgICAgXVxuICAgICAgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvL1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG1lPFQgZXh0ZW5kcyBXaXRoUHVibGljS2V5ID0gV2l0aFB1YmxpY0tleT4oXG4gICAgcGFyYW1zPzogVFxuICApOiBQcm9taXNlPFVzZXI8VD4gfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMudXNlcihwYXJhbXMgfHwgKHsgd2l0aFB1YmxpY0tleTogdHJ1ZSB9IGFzIFQpKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyB1c2VyPFQgZXh0ZW5kcyBTdGF0aWNHZXRVc2VyUGFyYW1zPihcbiAgICBwYXJhbXM6IFQsXG4gICAgc2Vzc2lvbklkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZFxuICApOiBQcm9taXNlPFVzZXI8VD4gfCBudWxsPiB7XG4gICAgY29uc3QgdXNlciA9IGF3YWl0IGdldFVzZXI8VD4oe1xuICAgICAgY2xpZW50OiB0aGlzLl9nZXRCYXNlQ2xpZW50KHBhcmFtcy5lbnYsIHNlc3Npb25JZCksXG4gICAgICB1c2VySWQ6IHBhcmFtcy51c2VySWRcbiAgICB9KTtcblxuICAgIGlmICh1c2VyKSB7XG4gICAgICB1c2Vyc0NhY2hlLnNldCh1c2VyLmlkLCB1c2VyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdXNlcjtcbiAgfVxuXG4gIGFzeW5jIHVzZXI8VCBleHRlbmRzIENsYXNzR2V0VXNlclBhcmFtcz4ocGFyYW1zOiBUKTogUHJvbWlzZTxVc2VyPFQ+IHwgbnVsbD4ge1xuICAgIGNvbnN0IHVzZXIgPSBhd2FpdCBnZXRVc2VyPFQ+KHtcbiAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICB1c2VySWQ6IHBhcmFtcy51c2VySWQsXG4gICAgICB3aXRoUHVibGljS2V5OiBwYXJhbXMud2l0aFB1YmxpY0tleVxuICAgIH0pO1xuXG4gICAgaWYgKHVzZXIpIHtcbiAgICAgIHVzZXJzQ2FjaGUuc2V0KHVzZXIuaWQsIHVzZXIpO1xuICAgIH1cblxuICAgIHJldHVybiB1c2VyO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlUHJvZmlsZSh7XG4gICAgZmlyc3RuYW1lLFxuICAgIGxhc3RuYW1lLFxuICAgIGxhbmdcbiAgfToge1xuICAgIGZpcnN0bmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgICBsYXN0bmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgICBsYW5nOiBMYW5nIHwgbnVsbDtcbiAgfSk6IFByb21pc2U8VXNlcj4ge1xuICAgIGNvbnN0IHsgdXBkYXRlUHJvZmlsZSB9ID0gYXdhaXQgdGhpcy5jbGllbnQubXV0YXRpb24oe1xuICAgICAgdXBkYXRlUHJvZmlsZTogW1xuICAgICAgICB7XG4gICAgICAgICAgZmlyc3RuYW1lLFxuICAgICAgICAgIGxhc3RuYW1lLFxuICAgICAgICAgIGxhbmdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiB0cnVlLFxuICAgICAgICAgIGZpcnN0bmFtZTogdHJ1ZSxcbiAgICAgICAgICBsYXN0bmFtZTogdHJ1ZSxcbiAgICAgICAgICBsYW5nOiB0cnVlLFxuICAgICAgICAgIGVtYWlsOiB0cnVlLFxuICAgICAgICAgIHBob25lOiB0cnVlLFxuICAgICAgICAgIHJvbGU6IHRydWUsXG4gICAgICAgICAgZGVsZXRlZEF0OiB0cnVlLFxuICAgICAgICAgIGxhc3RMb2dpbjogdHJ1ZVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBpZiAoIXVwZGF0ZVByb2ZpbGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlNob3VsZCBub3QgaGFwcGVuXCIpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi51cGRhdGVQcm9maWxlLFxuICAgICAgbGFzdExvZ2luOiBuZXcgRGF0ZSh1cGRhdGVQcm9maWxlLmxhc3RMb2dpbiksXG4gICAgICBkZWxldGVkQXQ6IHVwZGF0ZVByb2ZpbGUuZGVsZXRlZEF0XG4gICAgICAgID8gbmV3IERhdGUodXBkYXRlUHJvZmlsZS5kZWxldGVkQXQpXG4gICAgICAgIDogbnVsbFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgcGxhbnMoXG4gICAgZW52OiBTZWNyZWN5RW52LFxuICAgIHNlc3Npb25JZD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWRcbiAgKTogUHJvbWlzZTxQbGFuW10+IHtcbiAgICBjb25zdCB7IHBsYW5zIH0gPSBhd2FpdCBCYXNlQ2xpZW50Ll9nZXRCYXNlQ2xpZW50KGVudiwgc2Vzc2lvbklkKS5xdWVyeSh7XG4gICAgICBwbGFuczoge1xuICAgICAgICBraW5kOiB0cnVlLFxuICAgICAgICBjb2RlczogdHJ1ZSxcbiAgICAgICAgbGltaXRzOiB7XG4gICAgICAgICAgZG93bmxvYWRCYW5kd2lkdGg6IHRydWUsXG4gICAgICAgICAgZG93bmxvYWRDb3VudDogdHJ1ZSxcbiAgICAgICAgICBoYXJkRmlsZUNvdW50OiB0cnVlLFxuICAgICAgICAgIGhhcmRGaWxlU2l6ZTogdHJ1ZSxcbiAgICAgICAgICBwZXJGaWxlU2l6ZTogdHJ1ZSxcbiAgICAgICAgICB1cGxvYWRCYW5kd2lkdGg6IHRydWUsXG4gICAgICAgICAgdXBsb2FkQ291bnQ6IHRydWUsXG4gICAgICAgICAgcmVjZWl2ZWRNYWlsczoge1xuICAgICAgICAgICAgY291bnQ6IHRydWUsXG4gICAgICAgICAgICBmaWxlQ291bnQ6IHRydWUsXG4gICAgICAgICAgICBmaWxlU2l6ZTogdHJ1ZSxcbiAgICAgICAgICAgIGhhcmRDb3VudDogdHJ1ZSxcbiAgICAgICAgICAgIGhhcmRGaWxlQ291bnQ6IHRydWUsXG4gICAgICAgICAgICBoYXJkRmlsZVNpemU6IHRydWUsXG4gICAgICAgICAgICBwZXJGaWxlU2l6ZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2VudE1haWxzOiB7XG4gICAgICAgICAgICBjb3VudDogdHJ1ZSxcbiAgICAgICAgICAgIGZpbGVDb3VudDogdHJ1ZSxcbiAgICAgICAgICAgIGZpbGVTaXplOiB0cnVlLFxuICAgICAgICAgICAgaGFyZENvdW50OiB0cnVlLFxuICAgICAgICAgICAgaGFyZEZpbGVDb3VudDogdHJ1ZSxcbiAgICAgICAgICAgIGhhcmRGaWxlU2l6ZTogdHJ1ZSxcbiAgICAgICAgICAgIHBlckZpbGVTaXplOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcGxhbnM7XG4gIH1cblxuICBhc3luYyBwYXkoXG4gICAgcGxhbkNvZGU6IFNlY3JlY3lQbGFuc0NvZGVzLFxuICAgIGlucHV0OiBQYXlJbnB1dCxcbiAgICBhdXRvUmVuZXc/OiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZFxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IHBheSB9ID0gYXdhaXQgdGhpcy5jbGllbnQubXV0YXRpb24oe1xuICAgICAgcGF5OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICBwbGFuQ29kZSxcbiAgICAgICAgICBhdXRvUmVuZXdcbiAgICAgICAgfSxcbiAgICAgICAgdHJ1ZVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHBheSA/PyBmYWxzZTtcbiAgfVxuXG4gIGFzeW5jIGNhbmNlbFBheW1lbnQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgeyBjYW5jZWxQYXltZW50IH0gPSBhd2FpdCB0aGlzLmNsaWVudC5tdXRhdGlvbih7XG4gICAgICBjYW5jZWxQYXltZW50OiB0cnVlXG4gICAgfSk7XG5cbiAgICByZXR1cm4gY2FuY2VsUGF5bWVudCA/PyBmYWxzZTtcbiAgfVxuXG4gIGFzeW5jIHBheW1lbnRJbmZvcygpOiBQcm9taXNlPFBheW1lbnRJbmZvcyB8IG51bGw+IHtcbiAgICBjb25zdCB7IHBheW1lbnRJbmZvcyB9ID0gYXdhaXQgdGhpcy5jbGllbnQucXVlcnkoe1xuICAgICAgcGF5bWVudEluZm9zOiB7XG4gICAgICAgIGhvc3RlZFVybDogdHJ1ZSxcbiAgICAgICAgY3VycmVudFN1YnNjcmlwdGlvbjoge1xuICAgICAgICAgIGF1dG9yZW5ldzogdHJ1ZSxcbiAgICAgICAgICBhY3RpdmF0ZWRBdDogdHJ1ZSxcbiAgICAgICAgICBjdXJyZW50UGVyaW9kRW5kc0F0OiB0cnVlLFxuICAgICAgICAgIGN1cnJlbnRQZXJpb2RTdGFydGVkQXQ6IHRydWUsXG4gICAgICAgICAgY2FuY2VsZWRBdDogdHJ1ZSxcbiAgICAgICAgICBjcmVhdGVkQXQ6IHRydWUsXG4gICAgICAgICAgZXhwaXJlc0F0OiB0cnVlLFxuICAgICAgICAgIHBhdXNlZEF0OiB0cnVlLFxuICAgICAgICAgIHRyaWFsRW5kc0F0OiB0cnVlLFxuICAgICAgICAgIHRyaWFsU3RhcnRlZEF0OiB0cnVlLFxuICAgICAgICAgIHVwZGF0ZWRBdDogdHJ1ZSxcbiAgICAgICAgICBzdGF0ZTogdHJ1ZSxcbiAgICAgICAgICBjb2xsZWN0aW9uTWV0aG9kOiB0cnVlLFxuICAgICAgICAgIHBsYW46IHRydWUsXG4gICAgICAgICAgcGxhbkNvZGU6IHRydWUsXG5cbiAgICAgICAgICB0b3RhbDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBpbnZvaWNlczoge1xuICAgICAgICAgIHBkZjogdHJ1ZSxcbiAgICAgICAgICBkYXRlOiB0cnVlLFxuICAgICAgICAgIGR1ZTogdHJ1ZSxcbiAgICAgICAgICBzdGF0dXM6IHRydWUsXG4gICAgICAgICAgdG90YWw6IHRydWUsXG4gICAgICAgICAgbmFtZTogdHJ1ZSxcbiAgICAgICAgICBjdXJyZW5jeTogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoIXBheW1lbnRJbmZvcykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGludGVybmFsVG9QYXltZW50SW5mb3MocGF5bWVudEluZm9zKTtcbiAgfVxuXG4gIGFzeW5jIGxpbWl0cygpOiBQcm9taXNlPFF1ZXJ5TGltaXRzIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgbGltaXRzIH0gPSBhd2FpdCB0aGlzLmNsaWVudC5xdWVyeSh7XG4gICAgICBsaW1pdHM6IHtcbiAgICAgICAgY2xvdWQ6IHtcbiAgICAgICAgICBzaXplOiB0cnVlLFxuICAgICAgICAgIG1heFNpemU6IHRydWUsXG4gICAgICAgICAgY291bnQ6IHRydWUsXG4gICAgICAgICAgbWF4Q291bnQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgbWFpbDoge1xuICAgICAgICAgIHJlY2VpdmVkOiB7XG4gICAgICAgICAgICBjb3VudDogdHJ1ZSxcbiAgICAgICAgICAgIG1heENvdW50OiB0cnVlLFxuICAgICAgICAgICAgZmlsZUNvdW50OiB0cnVlLFxuICAgICAgICAgICAgbWF4RmlsZUNvdW50OiB0cnVlLFxuICAgICAgICAgICAgZmlsZVNpemU6IHRydWUsXG4gICAgICAgICAgICBtYXhGaWxlU2l6ZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2VudDoge1xuICAgICAgICAgICAgY291bnQ6IHRydWUsXG4gICAgICAgICAgICBtYXhDb3VudDogdHJ1ZSxcbiAgICAgICAgICAgIGZpbGVDb3VudDogdHJ1ZSxcbiAgICAgICAgICAgIG1heEZpbGVDb3VudDogdHJ1ZSxcbiAgICAgICAgICAgIGZpbGVTaXplOiB0cnVlLFxuICAgICAgICAgICAgbWF4RmlsZVNpemU6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghbGltaXRzKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCB7IGNsb3VkLCBtYWlsIH0gPSBsaW1pdHM7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY2xvdWQ6IHtcbiAgICAgICAgY291bnQ6IEJpZ0ludChjbG91ZC5jb3VudCksXG4gICAgICAgIHNpemU6IEJpZ0ludChjbG91ZC5zaXplKSxcbiAgICAgICAgbWF4Q291bnQ6IGNsb3VkLm1heENvdW50ID8gQmlnSW50KGNsb3VkLm1heENvdW50KSA6IG51bGwsXG4gICAgICAgIG1heFNpemU6IGNsb3VkLm1heFNpemUgPyBCaWdJbnQoY2xvdWQubWF4U2l6ZSkgOiBudWxsXG4gICAgICB9LFxuICAgICAgbWFpbDoge1xuICAgICAgICByZWNlaXZlZDoge1xuICAgICAgICAgIGNvdW50OiBCaWdJbnQobWFpbC5yZWNlaXZlZC5jb3VudCksXG4gICAgICAgICAgbWF4Q291bnQ6IG1haWwucmVjZWl2ZWQubWF4Q291bnRcbiAgICAgICAgICAgID8gQmlnSW50KG1haWwucmVjZWl2ZWQubWF4Q291bnQpXG4gICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgZmlsZUNvdW50OiBCaWdJbnQobWFpbC5yZWNlaXZlZC5maWxlQ291bnQpLFxuICAgICAgICAgIG1heEZpbGVDb3VudDogbWFpbC5yZWNlaXZlZC5tYXhGaWxlQ291bnRcbiAgICAgICAgICAgID8gQmlnSW50KG1haWwucmVjZWl2ZWQubWF4RmlsZUNvdW50KVxuICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIGZpbGVTaXplOiBCaWdJbnQobWFpbC5yZWNlaXZlZC5maWxlU2l6ZSksXG4gICAgICAgICAgbWF4RmlsZVNpemU6IG1haWwucmVjZWl2ZWQubWF4RmlsZVNpemVcbiAgICAgICAgICAgID8gQmlnSW50KG1haWwucmVjZWl2ZWQubWF4RmlsZVNpemUpXG4gICAgICAgICAgICA6IG51bGxcbiAgICAgICAgfSxcbiAgICAgICAgc2VudDoge1xuICAgICAgICAgIGNvdW50OiBCaWdJbnQobWFpbC5zZW50LmNvdW50KSxcbiAgICAgICAgICBtYXhDb3VudDogbWFpbC5zZW50Lm1heENvdW50ID8gQmlnSW50KG1haWwuc2VudC5tYXhDb3VudCkgOiBudWxsLFxuICAgICAgICAgIGZpbGVDb3VudDogQmlnSW50KG1haWwuc2VudC5maWxlQ291bnQpLFxuICAgICAgICAgIG1heEZpbGVDb3VudDogbWFpbC5zZW50Lm1heEZpbGVDb3VudFxuICAgICAgICAgICAgPyBCaWdJbnQobWFpbC5zZW50Lm1heEZpbGVDb3VudClcbiAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICBmaWxlU2l6ZTogQmlnSW50KG1haWwuc2VudC5maWxlU2l6ZSksXG4gICAgICAgICAgbWF4RmlsZVNpemU6IG1haWwuc2VudC5tYXhGaWxlU2l6ZVxuICAgICAgICAgICAgPyBCaWdJbnQobWFpbC5zZW50Lm1heEZpbGVTaXplKVxuICAgICAgICAgICAgOiBudWxsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZ29kRmF0aGVyQW5kQ2hpbGRyZW4oKTogUHJvbWlzZTxHb2RGYXRoZXJBbmRDaGlsZHJlbiB8IG51bGw+IHtcbiAgICBjb25zdCB7IHVzZXIgfSA9IGF3YWl0IHRoaXMuY2xpZW50LnF1ZXJ5KHtcbiAgICAgIHVzZXI6IFtcbiAgICAgICAge30sXG4gICAgICAgIHtcbiAgICAgICAgICBnb2RDaGlsZHJlbjoge1xuICAgICAgICAgICAgaWQ6IHRydWUsXG4gICAgICAgICAgICBmaXJzdG5hbWU6IHRydWUsXG4gICAgICAgICAgICBsYXN0bmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIGVtYWlsOiB0cnVlLFxuICAgICAgICAgICAgcGhvbmU6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIGdvZEZhdGhlcjoge1xuICAgICAgICAgICAgaWQ6IHRydWUsXG4gICAgICAgICAgICBmaXJzdG5hbWU6IHRydWUsXG4gICAgICAgICAgICBsYXN0bmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIGVtYWlsOiB0cnVlLFxuICAgICAgICAgICAgcGhvbmU6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIGlmICghdXNlcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnVzZXIsXG4gICAgICBnb2RGYXRoZXI6IHVzZXIuZ29kRmF0aGVyID8/IG51bGxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIHVwZGF0ZUFwcERCQ29uZmlnKHtcbiAgICBhcHBDb2RlLFxuICAgIGNvbmZpZyxcbiAgICBlbnYsXG4gICAgc2Vzc2lvbklkXG4gIH06IHtcbiAgICBhcHBDb2RlOiBzdHJpbmc7XG4gICAgY29uZmlnOiBBcHBEQkNvbmZpZztcbiAgICBlbnY6IFNlY3JlY3lFbnY7XG4gICAgc2Vzc2lvbklkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfSk6IFByb21pc2U8QXBwREJDb25maWc+IHtcbiAgICBjb25zdCB7IGRiQ29uZmlnIH0gPSBhd2FpdCBCYXNlQ2xpZW50Ll9nZXRCYXNlQ2xpZW50KFxuICAgICAgZW52LFxuICAgICAgc2Vzc2lvbklkXG4gICAgKS5tdXRhdGlvbih7XG4gICAgICBkYkNvbmZpZzogW1xuICAgICAgICB7XG4gICAgICAgICAgYXBwQ29kZSxcbiAgICAgICAgICBjb25maWc6IEpTT04uc3RyaW5naWZ5KGNvbmZpZylcbiAgICAgICAgfSxcbiAgICAgICAgdHJ1ZVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRiQ29uZmlnO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGdldEFwcERCQ29uZmlnKFxuICAgIGFwcENvZGU6IHN0cmluZyxcbiAgICBlbnY6IFNlY3JlY3lFbnYsXG4gICAgc2Vzc2lvbklkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZFxuICApOiBQcm9taXNlPEFwcERCQ29uZmlnPiB7XG4gICAgY29uc3QgeyBkYkNvbmZpZyB9ID0gYXdhaXQgQmFzZUNsaWVudC5fZ2V0QmFzZUNsaWVudChlbnYsIHNlc3Npb25JZCkucXVlcnkoe1xuICAgICAgZGJDb25maWc6IFtcbiAgICAgICAge1xuICAgICAgICAgIGFwcENvZGVcbiAgICAgICAgfSxcbiAgICAgICAgdHJ1ZVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRiQ29uZmlnO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGdldEZBUSh7XG4gICAgbGFuZyxcbiAgICBlbnYsXG4gICAgc2Vzc2lvbklkXG4gIH06IHtcbiAgICBsYW5nPzogTGFuZztcbiAgICBlbnY6IFNlY3JlY3lFbnY7XG4gICAgc2Vzc2lvbklkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfSk6IFByb21pc2U8RmFxSXRlbVtdPiB7XG4gICAgY29uc3QgeyBmYXEgfSA9IGF3YWl0IEJhc2VDbGllbnQuX2dldEJhc2VDbGllbnQoZW52LCBzZXNzaW9uSWQpLnF1ZXJ5KHtcbiAgICAgIGZhcTogW1xuICAgICAgICB7XG4gICAgICAgICAgbGFuZ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYW5zd2VyOiB0cnVlLFxuICAgICAgICAgIG9yZGVyOiB0cnVlLFxuICAgICAgICAgIHF1ZXN0aW9uOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIHJldHVybiBmYXE7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZ2V0QmxvZyh7XG4gICAgZW52LFxuICAgIGxhbmcsXG4gICAgc2Vzc2lvbklkXG4gIH06IHtcbiAgICBlbnY6IFNlY3JlY3lFbnY7XG4gICAgbGFuZz86IExhbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIHNlc3Npb25JZD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIH0pOiBQcm9taXNlPEJsb2dJdGVtW10+IHtcbiAgICBjb25zdCB7IGJsb2cgfSA9IGF3YWl0IEJhc2VDbGllbnQuX2dldEJhc2VDbGllbnQoZW52LCBzZXNzaW9uSWQpLnF1ZXJ5KHtcbiAgICAgIGJsb2c6IFtcbiAgICAgICAge1xuICAgICAgICAgIGxhbmdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiB0cnVlLFxuICAgICAgICAgIGJsb2dJZDogdHJ1ZSxcbiAgICAgICAgICBhdXRob3I6IHRydWUsXG4gICAgICAgICAgYm9keTogdHJ1ZSxcbiAgICAgICAgICBkYXRlOiB0cnVlLFxuICAgICAgICAgIGltYWdlOiB0cnVlLFxuICAgICAgICAgIGltYWdlQWx0OiB0cnVlLFxuICAgICAgICAgIHN1bW1hcnk6IHRydWUsXG4gICAgICAgICAgdGl0bGU6IHRydWUsXG4gICAgICAgICAgb3JkZXI6IHRydWVcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGJsb2cubWFwKGIgPT4gKHsgLi4uYiwgZGF0ZTogbmV3IERhdGUoYi5kYXRlKSB9KSk7XG4gIH1cblxuICBhc3luYyByZXBvcnRVc2VyKFxuICAgIHJlcG9ydGVkVXNlcklkOiBzdHJpbmcsXG4gICAgY3VzdG9tTWVzc2FnZT86IHN0cmluZ1xuICApOiBQcm9taXNlPFNlbmRSZXBvcnQgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCB7IHNlbmRSZXBvcnQgfSA9IGF3YWl0IHRoaXMuY2xpZW50Lm11dGF0aW9uKHtcbiAgICAgIHNlbmRSZXBvcnQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJlcG9ydGVkVXNlcklkLFxuICAgICAgICAgIGN1c3RvbU1lc3NhZ2VcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiB0cnVlLFxuICAgICAgICAgIGN1c3RvbU1lc3NhZ2U6IHRydWUsXG4gICAgICAgICAgdXNlcjoge1xuICAgICAgICAgICAgaWQ6IHRydWUsXG4gICAgICAgICAgICBmaXJzdG5hbWU6IHRydWUsXG4gICAgICAgICAgICBsYXN0bmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIGVtYWlsOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXBvcnRlZFVzZXI6IHtcbiAgICAgICAgICAgIGlkOiB0cnVlLFxuICAgICAgICAgICAgZmlyc3RuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbGFzdG5hbWU6IHRydWUsXG4gICAgICAgICAgICBlbWFpbDogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNlbmRSZXBvcnQ7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZGVsZXRlVXNlcih7XG4gICAgc2Vzc2lvbklkLFxuICAgIHVzZXJJZCxcbiAgICBlbnZcbiAgfToge1xuICAgIHNlc3Npb25JZDogc3RyaW5nO1xuICAgIHVzZXJJZD86IHN0cmluZztcbiAgICBlbnY6IFNlY3JlY3lFbnY7XG4gIH0pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IGRlbGV0ZVVzZXIgfSA9IGF3YWl0IEJhc2VDbGllbnQuX2dldEJhc2VDbGllbnQoXG4gICAgICBlbnYsXG4gICAgICBzZXNzaW9uSWRcbiAgICApLm11dGF0aW9uKHtcbiAgICAgIGRlbGV0ZVVzZXI6IFtcbiAgICAgICAge1xuICAgICAgICAgIHVzZXJJZFxuICAgICAgICB9LFxuICAgICAgICB0cnVlXG4gICAgICBdXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGVsZXRlVXNlciA/PyBmYWxzZTtcbiAgfVxuXG4gIGFzeW5jIGRiR2V0PFU+KHtcbiAgICBmaWVsZCxcbiAgICB1c2VySWRcbiAgfToge1xuICAgIGZpZWxkOiBzdHJpbmc7XG4gICAgdXNlcklkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfSk6IFByb21pc2U8VT4ge1xuICAgIGNvbnN0IHsgZGJHZXQgfSA9IGF3YWl0IHRoaXMuY2xpZW50LnF1ZXJ5KHtcbiAgICAgIGRiR2V0OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICB1c2VySWRcbiAgICAgICAgfSxcbiAgICAgICAgdHJ1ZVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRiR2V0LnJlcztcbiAgfVxuXG4gIGFzeW5jIGRiU2V0PFQgZXh0ZW5kcyBVc2VyRGF0YSwgVSBleHRlbmRzIERvY3VtZW50Pih7XG4gICAgdmFsdWUsXG4gICAgdXNlcklkXG4gIH06IHtcbiAgICB2YWx1ZTogVTtcbiAgICB1c2VySWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB9KTogUHJvbWlzZTxUPiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJvYmplY3RcIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgdmFsdWUgc2hvdWxkIGJlIGFuIG9iamVjdCBpbmNsdWRpbmcgZmllbGRzIHlvdSB3YW50IHRvIHVwZGF0ZS5gXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHsgZGJTZXQgfSA9IGF3YWl0IHRoaXMuY2xpZW50Lm11dGF0aW9uKHtcbiAgICAgIGRiU2V0OiBbXG4gICAgICAgIHtcbiAgICAgICAgICB1c2VySWQsXG4gICAgICAgICAgdmFsdWU6IHNlcmlhbGl6ZSh2YWx1ZSkudG9TdHJpbmcoXCJiYXNlNjRcIilcbiAgICAgICAgfSxcbiAgICAgICAgdHJ1ZVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRiU2V0LnJlcztcbiAgfVxuXG4gIGFzeW5jIGRiU2VhcmNoPFQ+KHtcbiAgICBzZWFyY2gsXG4gICAgZmllbGRcbiAgfToge1xuICAgIGZpZWxkOiBzdHJpbmc7XG4gICAgc2VhcmNoOiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPFRbXT4ge1xuICAgIGNvbnN0IHsgZGJTZWFyY2ggfSA9IGF3YWl0IHRoaXMuY2xpZW50LnF1ZXJ5KHtcbiAgICAgIGRiU2VhcmNoOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBzZWFyY2gsXG4gICAgICAgICAgZmllbGRcbiAgICAgICAgfSxcbiAgICAgICAgdHJ1ZVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRiU2VhcmNoO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlRm9sZGVyKHsgaWQgfTogeyBpZDogc3RyaW5nIH0pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IGRlbGV0ZUZvbGRlciB9ID0gYXdhaXQgdGhpcy5jbGllbnQubXV0YXRpb24oe1xuICAgICAgZGVsZXRlRm9sZGVyOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZFxuICAgICAgICB9LFxuICAgICAgICB0cnVlXG4gICAgICBdXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGVsZXRlRm9sZGVyID8/IGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgbW92ZUZvbGRlcnMoe1xuICAgIGZvbGRlcnNJZCxcbiAgICBwYXJlbnRGb2xkZXJJZFxuICB9OiB7XG4gICAgZm9sZGVyc0lkOiBzdHJpbmdbXTtcbiAgICBwYXJlbnRGb2xkZXJJZD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIH0pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IG1vdmVGb2xkZXJzIH0gPSBhd2FpdCB0aGlzLmNsaWVudC5tdXRhdGlvbih7XG4gICAgICBtb3ZlRm9sZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgZm9sZGVyc0lkLFxuICAgICAgICAgIHBhcmVudEZvbGRlcklkXG4gICAgICAgIH0sXG4gICAgICAgIHRydWVcbiAgICAgIF1cbiAgICB9KTtcblxuICAgIHJldHVybiBtb3ZlRm9sZGVycyA/PyBmYWxzZTtcbiAgfVxuXG4gIGFzeW5jIG1vdmVGaWxlcyh7XG4gICAgZmlsZXNJZCxcbiAgICBwYXJlbnRGb2xkZXJJZFxuICB9OiB7XG4gICAgZmlsZXNJZDogc3RyaW5nW107XG4gICAgcGFyZW50Rm9sZGVySWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB9KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgeyBtb3ZlRmlsZXMgfSA9IGF3YWl0IHRoaXMuY2xpZW50Lm11dGF0aW9uKHtcbiAgICAgIG1vdmVGaWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgZmlsZXNJZCxcbiAgICAgICAgICBwYXJlbnRGb2xkZXJJZFxuICAgICAgICB9LFxuICAgICAgICB0cnVlXG4gICAgICBdXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbW92ZUZpbGVzID8/IGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgZm9sZGVyU2l6ZSh7XG4gICAgZm9sZGVySWRcbiAgfToge1xuICAgIGZvbGRlcklkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfSk6IFByb21pc2U8Rm9sZGVyU2l6ZSB8IG51bGw+IHtcbiAgICBjb25zdCB7IGZvbGRlclNpemUgfSA9IGF3YWl0IHRoaXMuY2xpZW50LnF1ZXJ5KHtcbiAgICAgIGZvbGRlclNpemU6IFtcbiAgICAgICAge1xuICAgICAgICAgIGZvbGRlcklkXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzaXplOiB0cnVlLFxuICAgICAgICAgIHNpemVCZWZvcmU6IHRydWVcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgaWYgKCFmb2xkZXJTaXplKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2l6ZTogQmlnSW50KGZvbGRlclNpemUuc2l6ZSksXG4gICAgICBzaXplQmVmb3JlOiBCaWdJbnQoZm9sZGVyU2l6ZS5zaXplQmVmb3JlKVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
package/lib/cache.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { InternalVFile, InternalFolder, InternalVFileWithFolder, InternalFile } from "./client/types/index.js";
|
|
1
|
+
import type { InternalVFile, InternalFolder, InternalVFileWithFolder, InternalFile, InternalFolderFull } from "./client/types/index.js";
|
|
2
2
|
export declare const vFilesCache: Map<string, InternalVFile | InternalVFileWithFolder>;
|
|
3
3
|
export declare const filesCache: Map<string, InternalFile>;
|
|
4
|
-
export declare const foldersCache: Map<string, InternalFolder>;
|
|
4
|
+
export declare const foldersCache: Map<string, InternalFolder | InternalFolderFull>;
|
|
5
5
|
export declare const usersCache: Map<string, import("./BaseClient.js").UserBase | (import("./BaseClient.js").UserBase & {
|
|
6
6
|
publicKey: string;
|
|
7
7
|
})>;
|
package/lib/cache.js
CHANGED
|
@@ -2,4 +2,4 @@ export var vFilesCache = new Map();
|
|
|
2
2
|
export var filesCache = new Map();
|
|
3
3
|
export var foldersCache = new Map();
|
|
4
4
|
export var usersCache = new Map();
|
|
5
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jYWNoZS50cyJdLCJuYW1lcyI6WyJ2RmlsZXNDYWNoZSIsIk1hcCIsImZpbGVzQ2FjaGUiLCJmb2xkZXJzQ2FjaGUiLCJ1c2Vyc0NhY2hlIl0sIm1hcHBpbmdzIjoiQUFTQSxPQUFPLElBQU1BLFdBQVcsR0FBRyxJQUFJQyxHQUFKLEVBQXBCO0FBS1AsT0FBTyxJQUFNQyxVQUFVLEdBQUcsSUFBSUQsR0FBSixFQUFuQjtBQUVQLE9BQU8sSUFBTUUsWUFBWSxHQUFHLElBQUlGLEdBQUosRUFBckI7QUFLUCxPQUFPLElBQU1HLFVBQVUsR0FBRyxJQUFJSCxHQUFKLEVBQW5CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBVc2VyIH0gZnJvbSBcIi4vaW5kZXguanNcIjtcbmltcG9ydCB0eXBlIHtcbiAgSW50ZXJuYWxWRmlsZSxcbiAgSW50ZXJuYWxGb2xkZXIsXG4gIEludGVybmFsVkZpbGVXaXRoRm9sZGVyLFxuICBJbnRlcm5hbEZpbGUsXG4gIEludGVybmFsRm9sZGVyRnVsbFxufSBmcm9tIFwiLi9jbGllbnQvdHlwZXMvaW5kZXguanNcIjtcblxuZXhwb3J0IGNvbnN0IHZGaWxlc0NhY2hlID0gbmV3IE1hcDxcbiAgc3RyaW5nLFxuICBJbnRlcm5hbFZGaWxlIHwgSW50ZXJuYWxWRmlsZVdpdGhGb2xkZXJcbj4oKTtcblxuZXhwb3J0IGNvbnN0IGZpbGVzQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgSW50ZXJuYWxGaWxlPigpO1xuXG5leHBvcnQgY29uc3QgZm9sZGVyc0NhY2hlID0gbmV3IE1hcDxcbiAgc3RyaW5nLFxuICBJbnRlcm5hbEZvbGRlciB8IEludGVybmFsRm9sZGVyRnVsbFxuPigpO1xuXG5leHBvcnQgY29uc3QgdXNlcnNDYWNoZSA9IG5ldyBNYXA8XG4gIHN0cmluZyxcbiAgVXNlciB8IFVzZXI8eyB3aXRoUHVibGljS2V5OiB0cnVlIH0+XG4+KCk7XG4iXX0=
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { KeyPair } from "../../crypto/index.js";
|
|
2
|
-
import type { GQLFolder, InternalFolder, Folder,
|
|
2
|
+
import type { GQLFolder, InternalFolder, Folder, GQLFolderFull, InternalFolderFull, FolderFull } from "../types/index.js";
|
|
3
3
|
export declare function gqlFolderToInternal(gql: GQLFolder, keyPair: KeyPair): Promise<InternalFolder>;
|
|
4
|
-
export declare function
|
|
4
|
+
export declare function gqlFolderFullToInternal(gql: GQLFolderFull, keyPair: KeyPair): Promise<InternalFolderFull>;
|
|
5
|
+
export declare function gqlFolderFullToInternalFolderFull(gql: GQLFolderFull, keyPair: KeyPair): Promise<InternalFolderFull>;
|
|
5
6
|
export declare function internalFolderToFolder(internal: InternalFolder): Folder;
|
|
6
|
-
export declare function
|
|
7
|
-
export declare function
|
|
7
|
+
export declare function internalFolderFullToFolderFull(internal: InternalFolderFull): FolderFull;
|
|
8
|
+
export declare function gqlFolderToExternalFolderFull(gql: GQLFolderFull, keyPair: KeyPair): Promise<FolderFull>;
|
|
8
9
|
export declare function gqlFolderToExternal(gql: GQLFolder, keyPair: KeyPair): Promise<Folder>;
|