@aerokit/sdk 12.78.0 → 12.80.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/bpm/process.js +4 -1
- package/dist/cjs/bpm/tasks.js +3 -1
- package/dist/cjs/bpm/tracer.js +3 -1
- package/dist/cjs/cms/cmis.js +105 -177
- package/dist/cjs/db/database.js +5 -1
- package/dist/cjs/db/query.js +19 -1
- package/dist/cjs/db/repository.js +2 -1
- package/dist/cjs/db/sql.js +5 -2
- package/dist/cjs/etcd/client.js +4 -1
- package/dist/cjs/http/errors/ForbiddenError.js +9 -9
- package/dist/cjs/http/errors/ValidationError.js +9 -9
- package/dist/cjs/http/request.js +2 -1
- package/dist/cjs/http/response.js +102 -188
- package/dist/cjs/http/rs/resource-http-controller.js +4 -1
- package/dist/cjs/http/rs/resource-mappings.js +6 -3
- package/dist/cjs/http/rs/resource-method.js +10 -1
- package/dist/cjs/http/rs/resource.js +11 -1
- package/dist/cjs/http/upload.js +3 -1
- package/dist/cjs/io/files.js +5 -7
- package/dist/cjs/io/streams.js +5 -1
- package/dist/cjs/io/zip.js +4 -1
- package/dist/cjs/job/scheduler.js +4 -1
- package/dist/cjs/kafka/consumer.js +3 -2
- package/dist/cjs/kafka/producer.js +3 -1
- package/dist/cjs/log/logging.js +2 -1
- package/dist/cjs/mail/client.js +2 -1
- package/dist/cjs/messaging/consumer.js +3 -1
- package/dist/cjs/messaging/producer.js +3 -1
- package/dist/cjs/mongodb/client.js +26 -1
- package/dist/cjs/mongodb/dao.js +3 -1
- package/dist/cjs/net/soap.js +15 -1
- package/dist/cjs/net/websockets.js +5 -1
- package/dist/cjs/platform/engines.js +2 -1
- package/dist/cjs/platform/os.js +7 -9
- package/dist/cjs/platform/problems.js +7 -13
- package/dist/cjs/platform/registry.js +4 -1
- package/dist/cjs/platform/repository.js +4 -1
- package/dist/cjs/platform/workspace.js +8 -1
- package/dist/cjs/redis/client.js +2 -1
- package/dist/cjs/security/oauth.js +2 -1
- package/dist/cjs/template/engines.js +6 -1
- package/dist/dts/db/query.d.ts +10 -0
- package/dist/esm/bpm/process.mjs +4 -1
- package/dist/esm/bpm/tasks.mjs +3 -1
- package/dist/esm/bpm/tracer.mjs +3 -1
- package/dist/esm/cms/cmis.mjs +105 -177
- package/dist/esm/db/database.mjs +5 -1
- package/dist/esm/db/query.mjs +19 -1
- package/dist/esm/db/repository.mjs +2 -1
- package/dist/esm/db/sql.mjs +5 -2
- package/dist/esm/etcd/client.mjs +4 -1
- package/dist/esm/http/errors/ForbiddenError.mjs +9 -9
- package/dist/esm/http/errors/ValidationError.mjs +9 -9
- package/dist/esm/http/request.mjs +2 -1
- package/dist/esm/http/response.mjs +102 -188
- package/dist/esm/http/rs/resource-http-controller.mjs +4 -1
- package/dist/esm/http/rs/resource-mappings.mjs +6 -3
- package/dist/esm/http/rs/resource-method.mjs +10 -1
- package/dist/esm/http/rs/resource.mjs +11 -1
- package/dist/esm/http/upload.mjs +3 -1
- package/dist/esm/io/files.mjs +5 -7
- package/dist/esm/io/streams.mjs +5 -1
- package/dist/esm/io/zip.mjs +4 -1
- package/dist/esm/job/scheduler.mjs +4 -1
- package/dist/esm/kafka/consumer.mjs +3 -2
- package/dist/esm/kafka/producer.mjs +3 -1
- package/dist/esm/log/logging.mjs +2 -1
- package/dist/esm/mail/client.mjs +2 -1
- package/dist/esm/messaging/consumer.mjs +3 -1
- package/dist/esm/messaging/producer.mjs +3 -1
- package/dist/esm/mongodb/client.mjs +26 -1
- package/dist/esm/mongodb/dao.mjs +3 -1
- package/dist/esm/net/soap.mjs +15 -1
- package/dist/esm/net/websockets.mjs +5 -1
- package/dist/esm/platform/engines.mjs +2 -1
- package/dist/esm/platform/os.mjs +7 -9
- package/dist/esm/platform/problems.mjs +7 -13
- package/dist/esm/platform/registry.mjs +4 -1
- package/dist/esm/platform/repository.mjs +4 -1
- package/dist/esm/platform/workspace.mjs +8 -1
- package/dist/esm/redis/client.mjs +2 -1
- package/dist/esm/security/oauth.mjs +2 -1
- package/dist/esm/template/engines.mjs +6 -1
- package/package.json +1 -1
package/dist/cjs/db/sql.js
CHANGED
|
@@ -36,9 +36,11 @@ module.exports = __toCommonJS(sql_exports);
|
|
|
36
36
|
const DatabaseFacade = Java.type("org.eclipse.dirigible.components.api.db.DatabaseFacade");
|
|
37
37
|
const DataTypeEnum = Java.type("org.eclipse.dirigible.database.sql.DataType");
|
|
38
38
|
class AbstractSQLBuilder {
|
|
39
|
+
params = [];
|
|
40
|
+
connection;
|
|
41
|
+
native;
|
|
39
42
|
// The underlying Java SQL Builder object
|
|
40
43
|
constructor(connection) {
|
|
41
|
-
this.params = [];
|
|
42
44
|
this.connection = connection;
|
|
43
45
|
this.native = connection ? DatabaseFacade.getNative(connection.native) : DatabaseFacade.getDefault();
|
|
44
46
|
this.native = this.prepareBuilder(this.native);
|
|
@@ -289,6 +291,7 @@ class DeleteBuilder extends AbstractSQLBuilder {
|
|
|
289
291
|
}
|
|
290
292
|
}
|
|
291
293
|
class NextvalBuilder extends AbstractSQLBuilder {
|
|
294
|
+
name;
|
|
292
295
|
constructor(name, connection) {
|
|
293
296
|
super(connection);
|
|
294
297
|
this.name = name;
|
|
@@ -513,4 +516,4 @@ class DropSequenceBuilder extends AbstractSQLBuilder {
|
|
|
513
516
|
if (typeof module !== "undefined") {
|
|
514
517
|
module.exports = SQLBuilder;
|
|
515
518
|
}
|
|
516
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL3NxbC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgQ29ubmVjdGlvbiB9IGZyb20gXCIuL2RhdGFiYXNlXCI7XG5cbi8vIEFzc3VtZWQgaW1wb3J0cyBmb3IgdGhlIG5hdGl2ZSBKYXZhIEFQSSBjYWxsc1xuY29uc3QgRGF0YWJhc2VGYWNhZGUgPSBKYXZhLnR5cGUoXCJvcmcuZWNsaXBzZS5kaXJpZ2libGUuY29tcG9uZW50cy5hcGkuZGIuRGF0YWJhc2VGYWNhZGVcIik7XG5jb25zdCBEYXRhVHlwZUVudW0gPSBKYXZhLnR5cGUoXCJvcmcuZWNsaXBzZS5kaXJpZ2libGUuZGF0YWJhc2Uuc3FsLkRhdGFUeXBlXCIpO1xuXG4vKipcbiAqIFVuaW9uIHR5cGUgcmVwcmVzZW50aW5nIGFsbCBzdXBwb3J0ZWQgU1FMIGRhdGEgdHlwZXMuXG4gKi9cbmV4cG9ydCB0eXBlIERhdGFUeXBlID1cblx0XCJWQVJDSEFSXCJcblx0fCBcIlRFWFRcIlxuXHR8IFwiQ0hBUlwiXG5cdHwgXCJEQVRFXCJcblx0fCBcIlNFQ09ORERBVEVcIlxuXHR8IFwiVElNRVwiXG5cdHwgXCJEQVRFVElNRVwiXG5cdHwgXCJUSU1FU1RBTVBcIlxuXHR8IFwiSU5URUdFUlwiXG5cdHwgXCJJTlRcIlxuXHR8IFwiVElOWUlOVFwiXG5cdHwgXCJCSUdJTlRcIlxuXHR8IFwiU01BTExJTlRcIlxuXHR8IFwiUkVBTFwiXG5cdHwgXCJET1VCTEVcIlxuXHR8IFwiRE9VQkxFIFBSRUNJU0lPXCJcblx0fCBcIkJPT0xFQU5cIlxuXHR8IFwiQkxPQlwiXG5cdHwgXCJERUNJTUFMXCJcblx0fCBcIkJJVFwiXG5cdHwgXCJOVkFSQ0hBUlwiXG5cdHwgXCJGTE9BVFwiXG5cdHwgXCJCWVRFXCJcblx0fCBcIk5DTE9CXCJcblx0fCBcIkFSUkFZXCJcblx0fCBcIlZBUkJJTkFSWVwiXG5cdHwgXCJCSU5BUlkgVkFSWUlOXCJcblx0fCBcIlNIT1JUVEVYVFwiXG5cdHwgXCJBTFBIQU5VTVwiXG5cdHwgXCJDTE9CXCJcblx0fCBcIlNNQUxMREVDSU1BTFwiXG5cdHwgXCJCSU5BUllcIlxuXHR8IFwiU1RfUE9JTlRcIlxuXHR8IFwiU1RfR0VPTUVUUllcIlxuXHR8IFwiQ0hBUkFDVEVSIFZBUllJTlwiXG5cdHwgXCJCSU5BUlkgTEFSRyBPQkpFQ1RcIlxuXHR8IFwiQ0hBUkFDVEVSIExBUkcgT0JKRUNUXCJcblx0fCBcIkNIQVJBQ1RFUlwiXG5cdHwgXCJOQ0hBUlwiXG5cdHwgXCJOVU1FUklDXCI7XG5cbi8qKlxuICogQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgYWxsIFNRTCBidWlsZGVycy4gSGFuZGxlcyBjb25uZWN0aW9uLCBuYXRpdmUgZmFjYWRlLFxuICogYW5kIHBhcmFtZXRlciBjb2xsZWN0aW9uLlxuICovXG5hYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFNRTEJ1aWxkZXIge1xuXG5cdHB1YmxpYyByZWFkb25seSBwYXJhbXM6IGFueVtdID0gW107XG5cdHByb3RlY3RlZCByZWFkb25seSBjb25uZWN0aW9uPzogQ29ubmVjdGlvbjtcblx0cHJvdGVjdGVkIG5hdGl2ZTogYW55OyAvLyBUaGUgdW5kZXJseWluZyBKYXZhIFNRTCBCdWlsZGVyIG9iamVjdFxuXG5cdGNvbnN0cnVjdG9yKGNvbm5lY3Rpb24/OiBDb25uZWN0aW9uKSB7XG5cdFx0dGhpcy5jb25uZWN0aW9uID0gY29ubmVjdGlvbjtcblx0XHQvLyBJbml0aWFsaXplIHRoZSBuYXRpdmUgYnVpbGRlciBmcm9tIHRoZSBmYWNhZGVcblx0XHR0aGlzLm5hdGl2ZSA9IGNvbm5lY3Rpb24gPyBEYXRhYmFzZUZhY2FkZS5nZXROYXRpdmUoKGNvbm5lY3Rpb24gYXMgYW55KS5uYXRpdmUpIDogRGF0YWJhc2VGYWNhZGUuZ2V0RGVmYXVsdCgpO1xuXHRcdHRoaXMubmF0aXZlID0gdGhpcy5wcmVwYXJlQnVpbGRlcih0aGlzLm5hdGl2ZSk7XG5cdH1cblxuXHQvKipcblx0ICogSG9vayBmb3Igc3ViY2xhc3NlcyB0byBzZXQgdXAgdGhlIG5hdGl2ZSBidWlsZGVyIG9iamVjdCAoZS5nLiwgY2FsbGluZyAuc2VsZWN0KCkpLlxuXHQgKi9cblx0cHJvdGVjdGVkIHByZXBhcmVCdWlsZGVyKGJ1aWxkZXI6IGFueSk6IGFueSB7XG5cdFx0cmV0dXJuIGJ1aWxkZXI7XG5cdH1cblxuXHRwdWJsaWMgcGFyYW1ldGVycygpOiBhbnlbXSB7XG5cdFx0cmV0dXJuIHRoaXMucGFyYW1zO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgcGFyYW1ldGVyKHMpIHRvIHRoZSBpbnRlcm5hbCBsaXN0LiBIYW5kbGVzIHNpbmdsZSB2YWx1ZXMgYW5kIGFycmF5cyBvZiB2YWx1ZXMuXG5cdCAqL1xuXHRwcm90ZWN0ZWQgYWRkUGFyYW1ldGVyKHZhbHVlOiBhbnkgfCBhbnlbXSk6IHZvaWQge1xuXHRcdGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XG5cdFx0XHRyZXR1cm47IC8vIERvIG5vdCBhZGQgdW5kZWZpbmVkL251bGwgdW5sZXNzIGV4cGxpY2l0bHkgYW4gYXJyYXlcblx0XHR9XG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdFx0XHR0aGlzLnBhcmFtcy5wdXNoKC4uLnZhbHVlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5wYXJhbXMucHVzaCh2YWx1ZSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbmQgcmV0dXJucyB0aGUgZmluYWwgU1FMIHN0cmluZy5cblx0ICovXG5cdHB1YmxpYyBidWlsZCgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLm5hdGl2ZS5idWlsZCgpO1xuXHR9XG59XG5cbi8qKlxuICogTWFpbiBlbnRyeSBwb2ludCBmb3IgdGhlIFNRTCBCdWlsZGVyLiBBY3RzIGFzIGEgZmFjdG9yeSBmb3Igc3BlY2lmaWMgYnVpbGRlcnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTUUxCdWlsZGVyIGV4dGVuZHMgQWJzdHJhY3RTUUxCdWlsZGVyIHtcblxuXHQvKipcblx0ICogRmFjdG9yeSBtZXRob2QgdG8gZ2V0IGEgZGlhbGVjdC1zcGVjaWZpYyBTUUxCdWlsZGVyIGluc3RhbmNlLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBnZXREaWFsZWN0KGNvbm5lY3Rpb24/OiBDb25uZWN0aW9uKTogU1FMQnVpbGRlciB7XG5cdFx0cmV0dXJuIG5ldyBTUUxCdWlsZGVyKGNvbm5lY3Rpb24pO1xuXHR9XG5cblx0cHVibGljIHNlbGVjdCgpOiBTZWxlY3RCdWlsZGVyIHtcblx0XHRyZXR1cm4gbmV3IFNlbGVjdEJ1aWxkZXIodGhpcy5jb25uZWN0aW9uKTtcblx0fVxuXG5cdHB1YmxpYyBpbnNlcnQoKTogSW5zZXJ0QnVpbGRlciB7XG5cdFx0cmV0dXJuIG5ldyBJbnNlcnRCdWlsZGVyKHRoaXMuY29ubmVjdGlvbik7XG5cdH1cblxuXHRwdWJsaWMgdXBkYXRlKCk6IFVwZGF0ZUJ1aWxkZXIge1xuXHRcdHJldHVybiBuZXcgVXBkYXRlQnVpbGRlcih0aGlzLmNvbm5lY3Rpb24pO1xuXHR9XG5cblx0cHVibGljIGRlbGV0ZSgpOiBEZWxldGVCdWlsZGVyIHtcblx0XHRyZXR1cm4gbmV3IERlbGV0ZUJ1aWxkZXIodGhpcy5jb25uZWN0aW9uKTtcblx0fVxuXG5cdHB1YmxpYyBuZXh0dmFsKG5hbWU6IHN0cmluZyk6IE5leHR2YWxCdWlsZGVyIHtcblx0XHRyZXR1cm4gbmV3IE5leHR2YWxCdWlsZGVyKG5hbWUsIHRoaXMuY29ubmVjdGlvbik7XG5cdH1cblxuXHRwdWJsaWMgY3JlYXRlKCk6IENyZWF0ZUJ1aWxkZXIge1xuXHRcdHJldHVybiBuZXcgQ3JlYXRlQnVpbGRlcih0aGlzLmNvbm5lY3Rpb24pO1xuXHR9XG5cblx0cHVibGljIGRyb3AoKTogRHJvcEJ1aWxkZXIge1xuXHRcdHJldHVybiBuZXcgRHJvcEJ1aWxkZXIodGhpcy5jb25uZWN0aW9uKTtcblx0fVxufVxuXG4vKipcbiAqIEJ1aWxkZXIgZm9yIFNFTEVDVCBzdGF0ZW1lbnRzLlxuICovXG5leHBvcnQgY2xhc3MgU2VsZWN0QnVpbGRlciBleHRlbmRzIEFic3RyYWN0U1FMQnVpbGRlciB7XG5cblx0cHJvdGVjdGVkIHByZXBhcmVCdWlsZGVyKGJ1aWxkZXI6IGFueSk6IGFueSB7XG5cdFx0cmV0dXJuIGJ1aWxkZXIuc2VsZWN0KCk7XG5cdH1cblxuXHRwdWJsaWMgZGlzdGluY3QoKTogU2VsZWN0QnVpbGRlciB7XG5cdFx0dGhpcy5uYXRpdmUuZGlzdGluY3QoKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBmb3JVcGRhdGUoKTogU2VsZWN0QnVpbGRlciB7XG5cdFx0dGhpcy5uYXRpdmUuZm9yVXBkYXRlKCk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgY29sdW1uKGNvbHVtbjogc3RyaW5nKTogU2VsZWN0QnVpbGRlciB7XG5cdFx0dGhpcy5uYXRpdmUuY29sdW1uKGNvbHVtbik7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgZnJvbSh0YWJsZTogc3RyaW5nLCBhbGlhcz86IHN0cmluZyk6IFNlbGVjdEJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmZyb20odGFibGUsIGFsaWFzKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8vIE5PVEU6IFRoZSBvcmlnaW5hbCBKUyBsb2dpYyBmb3IgcGFyYW1ldGVyIGhhbmRsaW5nIGluIGpvaW5zIGlzIGNvbXBsZXggYW5kIHJlbGllcyBvblxuXHQvLyBhcmd1bWVudCBjb3VudC4gV2UgcmVwbGljYXRlIHRoaXMgYmVoYXZpb3IgYnkgdXNpbmcgdGhlIG9wdGlvbmFsIHBhcmFtZXRlcnMgYXJndW1lbnQuXG5cblx0cHVibGljIGpvaW4odGFibGU6IHN0cmluZywgb246IHN0cmluZywgYWxpYXM/OiBzdHJpbmcsIHBhcmFtZXRlcnM/OiBhbnkgfCBhbnlbXSk6IFNlbGVjdEJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmpvaW4odGFibGUsIG9uLCBhbGlhcyk7XG5cdFx0Ly8gYXJndW1lbnRzWzNdIGlzIHRoZSA0dGggYXJndW1lbnQgKHBhcmFtZXRlcnMgd2hlbiBhbGlhcyBpcyBwcmVzZW50KS5cblx0XHQvLyBhcmd1bWVudHNbMl0gaXMgdGhlIDNyZCBhcmd1bWVudCAocGFyYW1ldGVycyB3aGVuIGFsaWFzIGlzIGFic2VudCkuXG5cdFx0Ly8gV2UgdXNlIGFyZ3VtZW50cyBhcnJheSB0byBtYWludGFpbiBjb21wYXRpYmlsaXR5IHdpdGggdGhlIG9yaWdpbmFsIEpTIGltcGxlbWVudGF0aW9uLlxuXHRcdGlmIChhcmd1bWVudHMubGVuZ3RoID4gMykge1xuXHRcdFx0dGhpcy5hZGRQYXJhbWV0ZXIoYXJndW1lbnRzWzNdKTtcblx0XHR9IGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAyKSB7XG5cdFx0XHQvLyBUaGlzIGJyYW5jaCBpcyBoaWdobHkgZGVwZW5kZW50IG9uIGhvdyB0aGUgb3JpZ2luYWwgY29kZSB3YXMgdXNlZDpcblx0XHRcdC8vIGlmIChhbGlhcyA9PT0gdW5kZWZpbmVkICYmIHBhcmFtZXRlcnMgPT09IGFycmF5KTogcGFyYW1ldGVycyBhcmUgYXQgYXJndW1lbnRzWzJdXG5cdFx0XHR0aGlzLmFkZFBhcmFtZXRlcihhcmd1bWVudHNbMl0pO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBpbm5lckpvaW4odGFibGU6IHN0cmluZywgb246IHN0cmluZywgYWxpYXM/OiBzdHJpbmcsIHBhcmFtZXRlcnM/OiBhbnkgfCBhbnlbXSk6IFNlbGVjdEJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmlubmVySm9pbih0YWJsZSwgb24sIGFsaWFzKTtcblx0XHRpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDMpIHtcblx0XHRcdHRoaXMuYWRkUGFyYW1ldGVyKGFyZ3VtZW50c1szXSk7XG5cdFx0fSBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMikge1xuXHRcdFx0dGhpcy5hZGRQYXJhbWV0ZXIoYXJndW1lbnRzWzJdKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgb3V0ZXJKb2luKHRhYmxlOiBzdHJpbmcsIG9uOiBzdHJpbmcsIGFsaWFzPzogc3RyaW5nLCBwYXJhbWV0ZXJzPzogYW55IHwgYW55W10pOiBTZWxlY3RCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5vdXRlckpvaW4odGFibGUsIG9uLCBhbGlhcyk7XG5cdFx0aWYgKGFyZ3VtZW50cy5sZW5ndGggPiAzKSB7XG5cdFx0XHR0aGlzLmFkZFBhcmFtZXRlcihhcmd1bWVudHNbM10pO1xuXHRcdH0gZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDIpIHtcblx0XHRcdHRoaXMuYWRkUGFyYW1ldGVyKGFyZ3VtZW50c1syXSk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGxlZnRKb2luKHRhYmxlOiBzdHJpbmcsIG9uOiBzdHJpbmcsIGFsaWFzPzogc3RyaW5nLCBwYXJhbWV0ZXJzPzogYW55IHwgYW55W10pOiBTZWxlY3RCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5sZWZ0Sm9pbih0YWJsZSwgb24sIGFsaWFzKTtcblx0XHRpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDMpIHtcblx0XHRcdHRoaXMuYWRkUGFyYW1ldGVyKGFyZ3VtZW50c1szXSk7XG5cdFx0fSBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMikge1xuXHRcdFx0dGhpcy5hZGRQYXJhbWV0ZXIoYXJndW1lbnRzWzJdKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgcmlnaHRKb2luKHRhYmxlOiBzdHJpbmcsIG9uOiBzdHJpbmcsIGFsaWFzPzogc3RyaW5nLCBwYXJhbWV0ZXJzPzogYW55IHwgYW55W10pOiBTZWxlY3RCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5yaWdodEpvaW4odGFibGUsIG9uLCBhbGlhcyk7XG5cdFx0aWYgKGFyZ3VtZW50cy5sZW5ndGggPiAzKSB7XG5cdFx0XHR0aGlzLmFkZFBhcmFtZXRlcihhcmd1bWVudHNbM10pO1xuXHRcdH0gZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDIpIHtcblx0XHRcdHRoaXMuYWRkUGFyYW1ldGVyKGFyZ3VtZW50c1syXSk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGZ1bGxKb2luKHRhYmxlOiBzdHJpbmcsIG9uOiBzdHJpbmcsIGFsaWFzPzogc3RyaW5nLCBwYXJhbWV0ZXJzPzogYW55IHwgYW55W10pOiBTZWxlY3RCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5mdWxsSm9pbih0YWJsZSwgb24sIGFsaWFzKTtcblx0XHRpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDMpIHtcblx0XHRcdHRoaXMuYWRkUGFyYW1ldGVyKGFyZ3VtZW50c1szXSk7XG5cdFx0fSBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMikge1xuXHRcdFx0dGhpcy5hZGRQYXJhbWV0ZXIoYXJndW1lbnRzWzJdKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgV0hFUkUgY29uZGl0aW9uLlxuXHQgKiBAcGFyYW0gY29uZGl0aW9uIFRoZSBTUUwgY29uZGl0aW9uIHN0cmluZyAoZS5nLiwgXCJjb2x1bW4xID0gP1wiKS5cblx0ICogQHBhcmFtIHBhcmFtZXRlcnMgT3B0aW9uYWwgcGFyYW1ldGVycyB0byByZXBsYWNlICc/JyBpbiB0aGUgY29uZGl0aW9uLlxuXHQgKi9cblx0cHVibGljIHdoZXJlKGNvbmRpdGlvbjogc3RyaW5nLCBwYXJhbWV0ZXJzPzogYW55IHwgYW55W10pOiBTZWxlY3RCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS53aGVyZShjb25kaXRpb24pO1xuXHRcdHRoaXMuYWRkUGFyYW1ldGVyKHBhcmFtZXRlcnMpOyAvLyBhcmd1bWVudHNbMV0gaW4gSlNcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBvcmRlcihjb2x1bW46IHN0cmluZywgYXNjOiBib29sZWFuID0gdHJ1ZSk6IFNlbGVjdEJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLm9yZGVyKGNvbHVtbiwgYXNjKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBncm91cChjb2x1bW46IHN0cmluZyk6IFNlbGVjdEJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmdyb3VwKGNvbHVtbik7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgbGltaXQobGltaXQ6IG51bWJlcik6IFNlbGVjdEJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmxpbWl0KGxpbWl0KTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBvZmZzZXQob2Zmc2V0OiBudW1iZXIpOiBTZWxlY3RCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5vZmZzZXQob2Zmc2V0KTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBoYXZpbmcoaGF2aW5nOiBzdHJpbmcpOiBTZWxlY3RCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5oYXZpbmcoaGF2aW5nKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyB1bmlvbihzZWxlY3Q6IHN0cmluZyk6IFNlbGVjdEJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLnVuaW9uKHNlbGVjdCk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cbn1cblxuLyoqXG4gKiBCdWlsZGVyIGZvciBJTlNFUlQgc3RhdGVtZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIEluc2VydEJ1aWxkZXIgZXh0ZW5kcyBBYnN0cmFjdFNRTEJ1aWxkZXIge1xuXG5cdHByb3RlY3RlZCBwcmVwYXJlQnVpbGRlcihidWlsZGVyOiBhbnkpOiBhbnkge1xuXHRcdHJldHVybiBidWlsZGVyLmluc2VydCgpO1xuXHR9XG5cblx0cHVibGljIGludG8odGFibGU6IHN0cmluZyk6IEluc2VydEJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmludG8odGFibGUpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGNvbHVtbihjb2x1bW46IHN0cmluZyk6IEluc2VydEJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmNvbHVtbihjb2x1bW4pO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIHZhbHVlIGZvciB0aGUgbGFzdCBjb2x1bW4gc3BlY2lmaWVkLlxuXHQgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHBsYWNlaG9sZGVyIChlLmcuLCBcIj9cIikgb3IgbGl0ZXJhbC5cblx0ICogQHBhcmFtIHBhcmFtZXRlcnMgT3B0aW9uYWwgcGFyYW1ldGVycyBpZiBhIHBsYWNlaG9sZGVyIHdhcyB1c2VkLlxuXHQgKi9cblx0cHVibGljIHZhbHVlKHZhbHVlOiBzdHJpbmcsIHBhcmFtZXRlcnM/OiBhbnkgfCBhbnlbXSk6IEluc2VydEJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLnZhbHVlKHZhbHVlKTtcblx0XHR0aGlzLmFkZFBhcmFtZXRlcihwYXJhbWV0ZXJzKTsgLy8gYXJndW1lbnRzWzFdIGluIEpTXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgc2VsZWN0KHNlbGVjdDogc3RyaW5nKTogSW5zZXJ0QnVpbGRlciB7XG5cdFx0dGhpcy5uYXRpdmUuc2VsZWN0KHNlbGVjdCk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cbn1cblxuLyoqXG4gKiBCdWlsZGVyIGZvciBVUERBVEUgc3RhdGVtZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFVwZGF0ZUJ1aWxkZXIgZXh0ZW5kcyBBYnN0cmFjdFNRTEJ1aWxkZXIge1xuXG5cdHByb3RlY3RlZCBwcmVwYXJlQnVpbGRlcihidWlsZGVyOiBhbnkpOiBhbnkge1xuXHRcdHJldHVybiBidWlsZGVyLnVwZGF0ZSgpO1xuXHR9XG5cblx0cHVibGljIHRhYmxlKHRhYmxlOiBzdHJpbmcpOiBVcGRhdGVCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS50YWJsZSh0YWJsZSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyBhIGNvbHVtbiB0byBhIHZhbHVlLlxuXHQgKiBAcGFyYW0gY29sdW1uIFRoZSBjb2x1bW4gbmFtZS5cblx0ICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBwbGFjZWhvbGRlciAoZS5nLiwgXCI/XCIpIG9yIGxpdGVyYWwuXG5cdCAqIEBwYXJhbSBwYXJhbWV0ZXJzIE9wdGlvbmFsIHBhcmFtZXRlcnMgaWYgYSBwbGFjZWhvbGRlciB3YXMgdXNlZC5cblx0ICovXG5cdHB1YmxpYyBzZXQoY29sdW1uOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIHBhcmFtZXRlcnM/OiBhbnkgfCBhbnlbXSk6IFVwZGF0ZUJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLnNldChjb2x1bW4sIHZhbHVlKTtcblx0XHR0aGlzLmFkZFBhcmFtZXRlcihwYXJhbWV0ZXJzKTsgLy8gYXJndW1lbnRzWzJdIGluIEpTXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgV0hFUkUgY29uZGl0aW9uIGZvciB0aGUgdXBkYXRlLlxuXHQgKiBAcGFyYW0gY29uZGl0aW9uIFRoZSBTUUwgY29uZGl0aW9uIHN0cmluZyAoZS5nLiwgXCJjb2x1bW4xID0gP1wiKS5cblx0ICogQHBhcmFtIHBhcmFtZXRlcnMgT3B0aW9uYWwgcGFyYW1ldGVycyB0byByZXBsYWNlICc/JyBpbiB0aGUgY29uZGl0aW9uLlxuXHQgKi9cblx0cHVibGljIHdoZXJlKGNvbmRpdGlvbjogc3RyaW5nLCBwYXJhbWV0ZXJzPzogYW55IHwgYW55W10pOiBVcGRhdGVCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS53aGVyZShjb25kaXRpb24pO1xuXHRcdHRoaXMuYWRkUGFyYW1ldGVyKHBhcmFtZXRlcnMpOyAvLyBhcmd1bWVudHNbMV0gaW4gSlNcblx0XHRyZXR1cm4gdGhpcztcblx0fVxufVxuXG4vKipcbiAqIEJ1aWxkZXIgZm9yIERFTEVURSBzdGF0ZW1lbnRzLlxuICovXG5leHBvcnQgY2xhc3MgRGVsZXRlQnVpbGRlciBleHRlbmRzIEFic3RyYWN0U1FMQnVpbGRlciB7XG5cblx0cHJvdGVjdGVkIHByZXBhcmVCdWlsZGVyKGJ1aWxkZXI6IGFueSk6IGFueSB7XG5cdFx0cmV0dXJuIGJ1aWxkZXIuZGVsZXRlKCk7XG5cdH1cblxuXHRwdWJsaWMgZnJvbSh0YWJsZTogc3RyaW5nKTogRGVsZXRlQnVpbGRlciB7XG5cdFx0dGhpcy5uYXRpdmUuZnJvbSh0YWJsZSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgV0hFUkUgY29uZGl0aW9uIGZvciB0aGUgZGVsZXRpb24uXG5cdCAqIEBwYXJhbSBjb25kaXRpb24gVGhlIFNRTCBjb25kaXRpb24gc3RyaW5nIChlLmcuLCBcImNvbHVtbjEgPSA/XCIpLlxuXHQgKiBAcGFyYW0gcGFyYW1ldGVycyBPcHRpb25hbCBwYXJhbWV0ZXJzIHRvIHJlcGxhY2UgJz8nIGluIHRoZSBjb25kaXRpb24uXG5cdCAqL1xuXHRwdWJsaWMgd2hlcmUoY29uZGl0aW9uOiBzdHJpbmcsIHBhcmFtZXRlcnM/OiBhbnkgfCBhbnlbXSk6IERlbGV0ZUJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLndoZXJlKGNvbmRpdGlvbik7XG5cdFx0dGhpcy5hZGRQYXJhbWV0ZXIocGFyYW1ldGVycyk7IC8vIGFyZ3VtZW50c1sxXSBpbiBKU1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG59XG5cbi8qKlxuICogQnVpbGRlciBmb3Igc2VsZWN0aW5nIHRoZSBuZXh0IHZhbHVlIGZyb20gYSBzZXF1ZW5jZS5cbiAqL1xuZXhwb3J0IGNsYXNzIE5leHR2YWxCdWlsZGVyIGV4dGVuZHMgQWJzdHJhY3RTUUxCdWlsZGVyIHtcblxuXHRwcml2YXRlIG5hbWU6IHN0cmluZztcblxuXHRjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIGNvbm5lY3Rpb24/OiBDb25uZWN0aW9uKSB7XG5cdFx0c3VwZXIoY29ubmVjdGlvbik7XG5cdFx0dGhpcy5uYW1lID0gbmFtZTtcblx0fVxuXG5cdHByb3RlY3RlZCBwcmVwYXJlQnVpbGRlcihidWlsZGVyOiBhbnkpOiBhbnkge1xuXHRcdHJldHVybiBidWlsZGVyLm5leHR2YWwodGhpcy5uYW1lKTtcblx0fVxufVxuXG4vKipcbiAqIEJ1aWxkZXIgZm9yIENSRUFURSBzdGF0ZW1lbnRzIChUYWJsZSwgVmlldywgU2VxdWVuY2UpLlxuICovXG5leHBvcnQgY2xhc3MgQ3JlYXRlQnVpbGRlciBleHRlbmRzIEFic3RyYWN0U1FMQnVpbGRlciB7XG5cblx0cHVibGljIHRhYmxlKHRhYmxlOiBzdHJpbmcpOiBDcmVhdGVUYWJsZUJ1aWxkZXIge1xuXHRcdGNvbnNvbGUuZXJyb3IoYFRhYmxlIGluIENyZWF0ZUJ1aWxkZXIgaXM6ICR7dGFibGV9YCk7XG5cdFx0cmV0dXJuIG5ldyBDcmVhdGVUYWJsZUJ1aWxkZXIodGFibGUsIHRoaXMuY29ubmVjdGlvbik7XG5cdH1cblxuXHRwdWJsaWMgdmlldyh2aWV3OiBzdHJpbmcpOiBDcmVhdGVWaWV3QnVpbGRlciB7XG5cdFx0cmV0dXJuIG5ldyBDcmVhdGVWaWV3QnVpbGRlcih2aWV3LCB0aGlzLmNvbm5lY3Rpb24pO1xuXHR9XG5cblx0cHVibGljIHNlcXVlbmNlKHNlcXVlbmNlOiBzdHJpbmcpOiBDcmVhdGVTZXF1ZW5jZUJ1aWxkZXIge1xuXHRcdHJldHVybiBuZXcgQ3JlYXRlU2VxdWVuY2VCdWlsZGVyKHNlcXVlbmNlLCB0aGlzLmNvbm5lY3Rpb24pXG5cdH1cbn1cblxuLyoqXG4gKiBCdWlsZGVyIGZvciBDUkVBVEUgVEFCTEUgc3RhdGVtZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIENyZWF0ZVRhYmxlQnVpbGRlciBleHRlbmRzIEFic3RyYWN0U1FMQnVpbGRlciB7XG5cblx0Ly8gT3ZlcnJpZGVzIGNvbnN0cnVjdG9yIHRvIGltbWVkaWF0ZWx5IHN0YXJ0IHRoZSBuYXRpdmUgdGFibGUgYnVpbGRlclxuXHRjb25zdHJ1Y3Rvcih0YWJsZTogc3RyaW5nLCBjb25uZWN0aW9uPzogQ29ubmVjdGlvbikge1xuXHRcdHN1cGVyKGNvbm5lY3Rpb24pO1xuXHRcdHRoaXMubmF0aXZlID0gdGhpcy5uYXRpdmUuY3JlYXRlKCkudGFibGUodGFibGUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgYSBnZW5lcmljIGNvbHVtbiBkZWZpbml0aW9uLlxuXHQgKiBAcGFyYW0gYXJncyBBZGRpdGlvbmFsIGRpYWxlY3Qtc3BlY2lmaWMgYXJndW1lbnRzIHBhc3NlZCBhcyBhbiBhcnJheSB0byBuYXRpdmUuXG5cdCAqL1xuXHRwdWJsaWMgY29sdW1uKFxuXHRcdG5hbWU6IHN0cmluZywgXG5cdFx0dHlwZTogRGF0YVR5cGUsIFxuXHRcdGlzUHJpbWFyeUtleSA9IGZhbHNlLCBcblx0XHRpc051bGxhYmxlID0gdHJ1ZSwgXG5cdFx0aXNVbmlxdWUgPSBmYWxzZSwgXG5cdFx0aXNJZGVudGl0eSA9IGZhbHNlLCBcblx0XHRpc0Z1enp5SW5kZXhFbmFibGVkID0gZmFsc2UsIFxuXHRcdC4uLmFyZ3M6IHN0cmluZ1tdXG5cdCk6IENyZWF0ZVRhYmxlQnVpbGRlciB7XG5cdFx0Y29uc3QgZGF0YVR5cGUgPSBEYXRhVHlwZUVudW0udmFsdWVPZkJ5TmFtZSh0eXBlKTtcblx0XHR0aGlzLm5hdGl2ZS5jb2x1bW4obmFtZSwgZGF0YVR5cGUsIGlzUHJpbWFyeUtleSwgaXNOdWxsYWJsZSwgaXNVbmlxdWUsIGlzSWRlbnRpdHksIGlzRnV6enlJbmRleEVuYWJsZWQsIEFycmF5LmZyb20oYXJncykpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgYSBWQVJDSEFSIGNvbHVtbi5cblx0ICogQHBhcmFtIGFyZ3MgQWRkaXRpb25hbCBkaWFsZWN0LXNwZWNpZmljIGFyZ3VtZW50cyBwYXNzZWQgYXMgYW4gYXJyYXkgdG8gbmF0aXZlLlxuXHQgKi9cblx0cHVibGljIGNvbHVtblZhcmNoYXIoXG5cdFx0bmFtZTogc3RyaW5nLCBcblx0XHRsZW5ndGg6IG51bWJlciwgXG5cdFx0aXNQcmltYXJ5S2V5ID0gZmFsc2UsIFxuXHRcdGlzTnVsbGFibGUgPSB0cnVlLCBcblx0XHRpc1VuaXF1ZSA9IGZhbHNlLCBcblx0XHRpc0lkZW50aXR5ID0gZmFsc2UsIFxuXHRcdC4uLmFyZ3M6IHN0cmluZ1tdXG5cdCk6IENyZWF0ZVRhYmxlQnVpbGRlciB7XG5cdFx0dGhpcy5uYXRpdmUuY29sdW1uVmFyY2hhcihuYW1lLCBsZW5ndGgsIGlzUHJpbWFyeUtleSwgaXNOdWxsYWJsZSwgaXNVbmlxdWUsIGlzSWRlbnRpdHksIEFycmF5LmZyb20oYXJncykpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgYW4gTlZBUkNIQVIgY29sdW1uLlxuXHQgKiBAcGFyYW0gYXJncyBBZGRpdGlvbmFsIGRpYWxlY3Qtc3BlY2lmaWMgYXJndW1lbnRzIHBhc3NlZCBhcyBhbiBhcnJheSB0byBuYXRpdmUuXG5cdCAqL1xuXHRwdWJsaWMgY29sdW1uTnZhcmNoYXIoXG5cdFx0bmFtZTogc3RyaW5nLCBcblx0XHRsZW5ndGg6IG51bWJlciwgXG5cdFx0aXNQcmltYXJ5S2V5ID0gZmFsc2UsIFxuXHRcdGlzTnVsbGFibGUgPSB0cnVlLCBcblx0XHRpc1VuaXF1ZSA9IGZhbHNlLCBcblx0XHRpc0lkZW50aXR5ID0gZmFsc2UsIFxuXHRcdC4uLmFyZ3M6IHN0cmluZ1tdXG5cdCk6IENyZWF0ZVRhYmxlQnVpbGRlciB7XG5cdFx0dGhpcy5uYXRpdmUuY29sdW1uTnZhcmNoYXIobmFtZSwgbGVuZ3RoLCBpc1ByaW1hcnlLZXksIGlzTnVsbGFibGUsIGlzVW5pcXVlLCBpc0lkZW50aXR5LCBBcnJheS5mcm9tKGFyZ3MpKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGRzIGEgQ0hBUiBjb2x1bW4uXG5cdCAqIEBwYXJhbSBhcmdzIEFkZGl0aW9uYWwgZGlhbGVjdC1zcGVjaWZpYyBhcmd1bWVudHMgcGFzc2VkIGFzIGFuIGFycmF5IHRvIG5hdGl2ZS5cblx0ICovXG5cdHB1YmxpYyBjb2x1bW5DaGFyKFxuXHRcdG5hbWU6IHN0cmluZywgXG5cdFx0bGVuZ3RoOiBudW1iZXIsIFxuXHRcdGlzUHJpbWFyeUtleSA9IGZhbHNlLCBcblx0XHRpc051bGxhYmxlID0gdHJ1ZSwgXG5cdFx0aXNVbmlxdWUgPSBmYWxzZSwgXG5cdFx0aXNJZGVudGl0eSA9IGZhbHNlLCBcblx0XHQuLi5hcmdzOiBzdHJpbmdbXVxuXHQpOiBDcmVhdGVUYWJsZUJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmNvbHVtbkNoYXIobmFtZSwgbGVuZ3RoLCBpc1ByaW1hcnlLZXksIGlzTnVsbGFibGUsIGlzVW5pcXVlLCBpc0lkZW50aXR5LCBBcnJheS5mcm9tKGFyZ3MpKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGRzIGEgREFURSBjb2x1bW4uXG5cdCAqIEBwYXJhbSBhcmdzIEFkZGl0aW9uYWwgZGlhbGVjdC1zcGVjaWZpYyBhcmd1bWVudHMgcGFzc2VkIGFzIGFuIGFycmF5IHRvIG5hdGl2ZS5cblx0ICovXG5cdHB1YmxpYyBjb2x1bW5EYXRlKFxuXHRcdG5hbWU6IHN0cmluZywgXG5cdFx0aXNQcmltYXJ5S2V5ID0gZmFsc2UsIFxuXHRcdGlzTnVsbGFibGUgPSB0cnVlLCBcblx0XHRpc1VuaXF1ZSA9IGZhbHNlLCBcblx0XHQuLi5hcmdzOiBzdHJpbmdbXVxuXHQpOiBDcmVhdGVUYWJsZUJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmNvbHVtbkRhdGUobmFtZSwgaXNQcmltYXJ5S2V5LCBpc051bGxhYmxlLCBpc1VuaXF1ZSwgQXJyYXkuZnJvbShhcmdzKSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogQWRkcyBhIFRJTUUgY29sdW1uLlxuXHQgKiBAcGFyYW0gYXJncyBBZGRpdGlvbmFsIGRpYWxlY3Qtc3BlY2lmaWMgYXJndW1lbnRzIHBhc3NlZCBhcyBhbiBhcnJheSB0byBuYXRpdmUuXG5cdCAqL1xuXHRwdWJsaWMgY29sdW1uVGltZShcblx0XHRuYW1lOiBzdHJpbmcsIFxuXHRcdGlzUHJpbWFyeUtleSA9IGZhbHNlLCBcblx0XHRpc051bGxhYmxlID0gdHJ1ZSwgXG5cdFx0aXNVbmlxdWUgPSBmYWxzZSwgXG5cdFx0Li4uYXJnczogc3RyaW5nW11cblx0KTogQ3JlYXRlVGFibGVCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5jb2x1bW5UaW1lKG5hbWUsIGlzUHJpbWFyeUtleSwgaXNOdWxsYWJsZSwgaXNVbmlxdWUsIEFycmF5LmZyb20oYXJncykpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgYSBUSU1FU1RBTVAgY29sdW1uLlxuXHQgKiBAcGFyYW0gYXJncyBBZGRpdGlvbmFsIGRpYWxlY3Qtc3BlY2lmaWMgYXJndW1lbnRzIHBhc3NlZCBhcyBhbiBhcnJheSB0byBuYXRpdmUuXG5cdCAqL1xuXHRwdWJsaWMgY29sdW1uVGltZXN0YW1wKFxuXHRcdG5hbWU6IHN0cmluZywgXG5cdFx0aXNQcmltYXJ5S2V5ID0gZmFsc2UsIFxuXHRcdGlzTnVsbGFibGUgPSB0cnVlLCBcblx0XHRpc1VuaXF1ZSA9IGZhbHNlLCBcblx0XHQuLi5hcmdzOiBzdHJpbmdbXVxuXHQpOiBDcmVhdGVUYWJsZUJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmNvbHVtblRpbWVzdGFtcChuYW1lLCBpc1ByaW1hcnlLZXksIGlzTnVsbGFibGUsIGlzVW5pcXVlLCBBcnJheS5mcm9tKGFyZ3MpKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGRzIGFuIElOVEVHRVIgY29sdW1uLlxuXHQgKiBAcGFyYW0gYXJncyBBZGRpdGlvbmFsIGRpYWxlY3Qtc3BlY2lmaWMgYXJndW1lbnRzIHBhc3NlZCBhcyBhbiBhcnJheSB0byBuYXRpdmUuXG5cdCAqL1xuXHRwdWJsaWMgY29sdW1uSW50ZWdlcihcblx0XHRuYW1lOiBzdHJpbmcsIFxuXHRcdGlzUHJpbWFyeUtleSA9IGZhbHNlLCBcblx0XHRpc051bGxhYmxlID0gdHJ1ZSwgXG5cdFx0aXNVbmlxdWUgPSBmYWxzZSwgXG5cdFx0aXNJZGVudGl0eSA9IGZhbHNlLCBcblx0XHQuLi5hcmdzOiBzdHJpbmdbXVxuXHQpOiBDcmVhdGVUYWJsZUJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmNvbHVtbkludGVnZXIobmFtZSwgaXNQcmltYXJ5S2V5LCBpc051bGxhYmxlLCBpc1VuaXF1ZSwgaXNJZGVudGl0eSwgQXJyYXkuZnJvbShhcmdzKSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogQWRkcyBhIFRJTllJTlQgY29sdW1uLlxuXHQgKiBAcGFyYW0gYXJncyBBZGRpdGlvbmFsIGRpYWxlY3Qtc3BlY2lmaWMgYXJndW1lbnRzIHBhc3NlZCBhcyBhbiBhcnJheSB0byBuYXRpdmUuXG5cdCAqL1xuXHRwdWJsaWMgY29sdW1uVGlueWludChcblx0XHRuYW1lOiBzdHJpbmcsIFxuXHRcdGlzUHJpbWFyeUtleSA9IGZhbHNlLCBcblx0XHRpc051bGxhYmxlID0gdHJ1ZSwgXG5cdFx0aXNVbmlxdWUgPSBmYWxzZSwgXG5cdFx0Li4uYXJnczogc3RyaW5nW11cblx0KTogQ3JlYXRlVGFibGVCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5jb2x1bW5UaW55aW50KG5hbWUsIGlzUHJpbWFyeUtleSwgaXNOdWxsYWJsZSwgaXNVbmlxdWUsIEFycmF5LmZyb20oYXJncykpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgYSBCSUdJTlQgY29sdW1uLlxuXHQgKiBAcGFyYW0gYXJncyBBZGRpdGlvbmFsIGRpYWxlY3Qtc3BlY2lmaWMgYXJndW1lbnRzIHBhc3NlZCBhcyBhbiBhcnJheSB0byBuYXRpdmUuXG5cdCAqL1xuXHRwdWJsaWMgY29sdW1uQmlnaW50KFxuXHRcdG5hbWU6IHN0cmluZywgXG5cdFx0aXNQcmltYXJ5S2V5ID0gZmFsc2UsIFxuXHRcdGlzTnVsbGFibGUgPSB0cnVlLCBcblx0XHRpc1VuaXF1ZSA9IGZhbHNlLCBcblx0XHRpc0lkZW50aXR5ID0gZmFsc2UsIFxuXHRcdC4uLmFyZ3M6IHN0cmluZ1tdXG5cdCk6IENyZWF0ZVRhYmxlQnVpbGRlciB7XG5cdFx0dGhpcy5uYXRpdmUuY29sdW1uQmlnaW50KG5hbWUsIGlzUHJpbWFyeUtleSwgaXNOdWxsYWJsZSwgaXNVbmlxdWUsIGlzSWRlbnRpdHksIEFycmF5LmZyb20oYXJncykpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgYSBTTUFMTElOVCBjb2x1bW4uXG5cdCAqIEBwYXJhbSBhcmdzIEFkZGl0aW9uYWwgZGlhbGVjdC1zcGVjaWZpYyBhcmd1bWVudHMgcGFzc2VkIGFzIGFuIGFycmF5IHRvIG5hdGl2ZS5cblx0ICovXG5cdHB1YmxpYyBjb2x1bW5TbWFsbGludChcblx0XHRuYW1lOiBzdHJpbmcsIFxuXHRcdGlzUHJpbWFyeUtleSA9IGZhbHNlLCBcblx0XHRpc051bGxhYmxlID0gdHJ1ZSwgXG5cdFx0aXNVbmlxdWUgPSBmYWxzZSwgXG5cdFx0Li4uYXJnczogc3RyaW5nW11cblx0KTogQ3JlYXRlVGFibGVCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5jb2x1bW5TbWFsbGludChuYW1lLCBpc1ByaW1hcnlLZXksIGlzTnVsbGFibGUsIGlzVW5pcXVlLCBBcnJheS5mcm9tKGFyZ3MpKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGRzIGEgUkVBTCBjb2x1bW4uXG5cdCAqIEBwYXJhbSBhcmdzIEFkZGl0aW9uYWwgZGlhbGVjdC1zcGVjaWZpYyBhcmd1bWVudHMgcGFzc2VkIGFzIGFuIGFycmF5IHRvIG5hdGl2ZS5cblx0ICovXG5cdHB1YmxpYyBjb2x1bW5SZWFsKFxuXHRcdG5hbWU6IHN0cmluZywgXG5cdFx0aXNQcmltYXJ5S2V5ID0gZmFsc2UsIFxuXHRcdGlzTnVsbGFibGUgPSB0cnVlLCBcblx0XHRpc1VuaXF1ZSA9IGZhbHNlLCBcblx0XHQuLi5hcmdzOiBzdHJpbmdbXVxuXHQpOiBDcmVhdGVUYWJsZUJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmNvbHVtblJlYWwobmFtZSwgaXNQcmltYXJ5S2V5LCBpc051bGxhYmxlLCBpc1VuaXF1ZSwgQXJyYXkuZnJvbShhcmdzKSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogQWRkcyBhIERPVUJMRSBjb2x1bW4uXG5cdCAqIEBwYXJhbSBhcmdzIEFkZGl0aW9uYWwgZGlhbGVjdC1zcGVjaWZpYyBhcmd1bWVudHMgcGFzc2VkIGFzIGFuIGFycmF5IHRvIG5hdGl2ZS5cblx0ICovXG5cdHB1YmxpYyBjb2x1bW5Eb3VibGUoXG5cdFx0bmFtZTogc3RyaW5nLCBcblx0XHRpc1ByaW1hcnlLZXkgPSBmYWxzZSwgXG5cdFx0aXNOdWxsYWJsZSA9IHRydWUsIFxuXHRcdGlzVW5pcXVlID0gZmFsc2UsIFxuXHRcdC4uLmFyZ3M6IHN0cmluZ1tdXG5cdCk6IENyZWF0ZVRhYmxlQnVpbGRlciB7XG5cdFx0dGhpcy5uYXRpdmUuY29sdW1uRG91YmxlKG5hbWUsIGlzUHJpbWFyeUtleSwgaXNOdWxsYWJsZSwgaXNVbmlxdWUsIEFycmF5LmZyb20oYXJncykpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgYSBCT09MRUFOIGNvbHVtbi5cblx0ICogQHBhcmFtIGFyZ3MgQWRkaXRpb25hbCBkaWFsZWN0LXNwZWNpZmljIGFyZ3VtZW50cyBwYXNzZWQgYXMgYW4gYXJyYXkgdG8gbmF0aXZlLlxuXHQgKi9cblx0cHVibGljIGNvbHVtbkJvb2xlYW4oXG5cdFx0bmFtZTogc3RyaW5nLCBcblx0XHRpc1ByaW1hcnlLZXkgPSBmYWxzZSwgXG5cdFx0aXNOdWxsYWJsZSA9IHRydWUsIFxuXHRcdGlzVW5pcXVlID0gZmFsc2UsIFxuXHRcdC4uLmFyZ3M6IHN0cmluZ1tdXG5cdCk6IENyZWF0ZVRhYmxlQnVpbGRlciB7XG5cdFx0dGhpcy5uYXRpdmUuY29sdW1uQm9vbGVhbihuYW1lLCBpc1ByaW1hcnlLZXksIGlzTnVsbGFibGUsIGlzVW5pcXVlLCBBcnJheS5mcm9tKGFyZ3MpKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGRzIGEgQkxPQiBjb2x1bW4uXG5cdCAqIEBwYXJhbSBhcmdzIEFkZGl0aW9uYWwgZGlhbGVjdC1zcGVjaWZpYyBhcmd1bWVudHMgcGFzc2VkIGFzIGFuIGFycmF5IHRvIG5hdGl2ZS5cblx0ICovXG5cdHB1YmxpYyBjb2x1bW5CbG9iKFxuXHRcdG5hbWU6IHN0cmluZywgXG5cdFx0aXNOdWxsYWJsZSA9IHRydWUsIFxuXHRcdC4uLmFyZ3M6IHN0cmluZ1tdXG5cdCk6IENyZWF0ZVRhYmxlQnVpbGRlciB7XG5cdFx0dGhpcy5uYXRpdmUuY29sdW1uQmxvYihuYW1lLCBpc051bGxhYmxlLCBBcnJheS5mcm9tKGFyZ3MpKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGRzIGEgREVDSU1BTCBjb2x1bW4gd2l0aCBwcmVjaXNpb24gYW5kIHNjYWxlLlxuXHQgKiBAcGFyYW0gYXJncyBBZGRpdGlvbmFsIGRpYWxlY3Qtc3BlY2lmaWMgYXJndW1lbnRzIHBhc3NlZCBhcyBhbiBhcnJheSB0byBuYXRpdmUuXG5cdCAqL1xuXHRwdWJsaWMgY29sdW1uRGVjaW1hbChcblx0XHRuYW1lOiBzdHJpbmcsIFxuXHRcdHByZWNpc2lvbjogbnVtYmVyLCBcblx0XHRzY2FsZTogbnVtYmVyLCBcblx0XHRpc1ByaW1hcnlLZXkgPSBmYWxzZSwgXG5cdFx0aXNOdWxsYWJsZSA9IHRydWUsIFxuXHRcdGlzVW5pcXVlID0gZmFsc2UsIFxuXHRcdGlzSWRlbnRpdHkgPSBmYWxzZSwgXG5cdFx0Li4uYXJnczogc3RyaW5nW11cblx0KTogQ3JlYXRlVGFibGVCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5jb2x1bW5EZWNpbWFsKG5hbWUsIHByZWNpc2lvbiwgc2NhbGUsIGlzUHJpbWFyeUtleSwgaXNOdWxsYWJsZSwgaXNVbmlxdWUsIGlzSWRlbnRpdHksIEFycmF5LmZyb20oYXJncykpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIHByaW1hcnlLZXkoY29sdW1uczogc3RyaW5nW10sIG5hbWU/OiBzdHJpbmcpOiBDcmVhdGVUYWJsZUJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLnByaW1hcnlLZXkobmFtZSwgY29sdW1ucyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgZm9yZWlnbktleShuYW1lOiBzdHJpbmcsIGNvbHVtbnM6IHN0cmluZ1tdLCByZWZlcmVuY2VkVGFibGU6IHN0cmluZywgcmVmZXJlbmNlZENvbHVtbnM6IHN0cmluZ1tdLCByZWZlcmVuY2VkVGFibGVTY2hlbWE/OiBzdHJpbmcpOiBDcmVhdGVUYWJsZUJ1aWxkZXIge1xuXHRcdC8vIE5PVEU6IFRoZSBuYXRpdmUgZnVuY3Rpb24gZXhwZWN0cyB0aGUgc2NoZW1hIGJlZm9yZSB0aGUgcmVmZXJlbmNlZCBjb2x1bW5zXG5cdFx0dGhpcy5uYXRpdmUuZm9yZWlnbktleShuYW1lLCBjb2x1bW5zLCByZWZlcmVuY2VkVGFibGUsIHJlZmVyZW5jZWRUYWJsZVNjaGVtYSwgcmVmZXJlbmNlZENvbHVtbnMpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIHVuaXF1ZShuYW1lOiBzdHJpbmcsIGNvbHVtbnM6IHN0cmluZ1tdKTogQ3JlYXRlVGFibGVCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS51bmlxdWUobmFtZSwgY29sdW1ucyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgY2hlY2sobmFtZTogc3RyaW5nLCBleHByZXNzaW9uOiBzdHJpbmcpOiBDcmVhdGVUYWJsZUJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmNoZWNrKG5hbWUsIGV4cHJlc3Npb24pO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG59XG5cbi8qKlxuICogQnVpbGRlciBmb3IgQ1JFQVRFIFZJRVcgc3RhdGVtZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIENyZWF0ZVZpZXdCdWlsZGVyIGV4dGVuZHMgQWJzdHJhY3RTUUxCdWlsZGVyIHtcblxuXHRjb25zdHJ1Y3Rvcih2aWV3OiBzdHJpbmcsIGNvbm5lY3Rpb24/OiBDb25uZWN0aW9uKSB7XG5cdFx0c3VwZXIoY29ubmVjdGlvbik7XG5cdFx0dGhpcy5uYXRpdmUgPSB0aGlzLm5hdGl2ZS5jcmVhdGUoKS52aWV3KHZpZXcpO1xuXHR9XG5cblx0cHVibGljIGNvbHVtbihjb2x1bW46IHN0cmluZyk6IENyZWF0ZVZpZXdCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5jb2x1bW4oY29sdW1uKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBhc1NlbGVjdChzZWxlY3Q6IHN0cmluZyk6IENyZWF0ZVZpZXdCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5hc1NlbGVjdChzZWxlY3QpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG59XG5cbi8qKlxuICogQnVpbGRlciBmb3IgQ1JFQVRFIFNFUVVFTkNFIHN0YXRlbWVudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBDcmVhdGVTZXF1ZW5jZUJ1aWxkZXIgZXh0ZW5kcyBBYnN0cmFjdFNRTEJ1aWxkZXIge1xuXG5cdGNvbnN0cnVjdG9yKHNlcXVlbmNlOiBzdHJpbmcsIGNvbm5lY3Rpb24/OiBDb25uZWN0aW9uKSB7XG5cdFx0c3VwZXIoY29ubmVjdGlvbik7XG5cdFx0dGhpcy5uYXRpdmUgPSB0aGlzLm5hdGl2ZS5jcmVhdGUoKS5zZXF1ZW5jZShzZXF1ZW5jZSk7XG5cdH1cbn1cblxuLyoqXG4gKiBCdWlsZGVyIGZvciBEUk9QIHN0YXRlbWVudHMgKFRhYmxlLCBWaWV3LCBTZXF1ZW5jZSkuXG4gKi9cbmV4cG9ydCBjbGFzcyBEcm9wQnVpbGRlciBleHRlbmRzIEFic3RyYWN0U1FMQnVpbGRlciB7XG5cblx0cHVibGljIHRhYmxlKHRhYmxlOiBzdHJpbmcpOiBEcm9wVGFibGVCdWlsZGVyIHtcblx0XHRyZXR1cm4gbmV3IERyb3BUYWJsZUJ1aWxkZXIodGFibGUsIHRoaXMuY29ubmVjdGlvbik7XG5cdH1cblxuXHRwdWJsaWMgdmlldyh2aWV3OiBzdHJpbmcpOiBEcm9wVmlld0J1aWxkZXIge1xuXHRcdHJldHVybiBuZXcgRHJvcFZpZXdCdWlsZGVyKHZpZXcsIHRoaXMuY29ubmVjdGlvbik7XG5cdH1cblxuXHRwdWJsaWMgc2VxdWVuY2Uoc2VxdWVuY2U6IHN0cmluZyk6IERyb3BTZXF1ZW5jZUJ1aWxkZXIge1xuXHRcdHJldHVybiBuZXcgRHJvcFNlcXVlbmNlQnVpbGRlcihzZXF1ZW5jZSwgdGhpcy5jb25uZWN0aW9uKTtcblx0fTtcblxufVxuXG4vKipcbiAqIEJ1aWxkZXIgZm9yIERST1AgVEFCTEUgc3RhdGVtZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIERyb3BUYWJsZUJ1aWxkZXIgZXh0ZW5kcyBBYnN0cmFjdFNRTEJ1aWxkZXIge1xuXG5cdGNvbnN0cnVjdG9yKHRhYmxlOiBzdHJpbmcsIGNvbm5lY3Rpb24/OiBDb25uZWN0aW9uKSB7XG5cdFx0c3VwZXIoY29ubmVjdGlvbik7XG5cdFx0dGhpcy5uYXRpdmUgPSB0aGlzLm5hdGl2ZS5kcm9wKCkudGFibGUodGFibGUpO1xuXHR9XG59XG5cbi8qKlxuICogQnVpbGRlciBmb3IgRFJPUCBWSUVXIHN0YXRlbWVudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBEcm9wVmlld0J1aWxkZXIgZXh0ZW5kcyBBYnN0cmFjdFNRTEJ1aWxkZXIge1xuXG5cdGNvbnN0cnVjdG9yKHZpZXc6IHN0cmluZywgY29ubmVjdGlvbj86IENvbm5lY3Rpb24pIHtcblx0XHRzdXBlcihjb25uZWN0aW9uKTtcblx0XHR0aGlzLm5hdGl2ZSA9IHRoaXMubmF0aXZlLmRyb3AoKS52aWV3KHZpZXcpO1xuXHR9XG59XG5cbi8qKlxuICogQnVpbGRlciBmb3IgRFJPUCBTRVFVRU5DRSBzdGF0ZW1lbnRzLlxuICovXG5leHBvcnQgY2xhc3MgRHJvcFNlcXVlbmNlQnVpbGRlciBleHRlbmRzIEFic3RyYWN0U1FMQnVpbGRlciB7XG5cblx0Y29uc3RydWN0b3Ioc2VxdWVuY2U6IHN0cmluZywgY29ubmVjdGlvbj86IENvbm5lY3Rpb24pIHtcblx0XHRzdXBlcihjb25uZWN0aW9uKTtcblx0XHR0aGlzLm5hdGl2ZSA9IHRoaXMubmF0aXZlLmRyb3AoKS5zZXF1ZW5jZShzZXF1ZW5jZSk7XG5cdH1cbn1cblxuLy8gQHRzLWlnbm9yZVxuaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7XG5cdC8vIEB0cy1pZ25vcmVcblx0bW9kdWxlLmV4cG9ydHMgPSBTUUxCdWlsZGVyO1xufSJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0EsTUFBTSxpQkFBaUIsS0FBSyxLQUFLLHdEQUF3RDtBQUN6RixNQUFNLGVBQWUsS0FBSyxLQUFLLDZDQUE2QztBQW1ENUUsTUFBZSxtQkFBbUI7QUFBQTtBQUFBLEVBTWpDLFlBQVksWUFBeUI7QUFKckMsU0FBZ0IsU0FBZ0IsQ0FBQztBQUtoQyxTQUFLLGFBQWE7QUFFbEIsU0FBSyxTQUFTLGFBQWEsZUFBZSxVQUFXLFdBQW1CLE1BQU0sSUFBSSxlQUFlLFdBQVc7QUFDNUcsU0FBSyxTQUFTLEtBQUssZUFBZSxLQUFLLE1BQU07QUFBQSxFQUM5QztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS1UsZUFBZSxTQUFtQjtBQUMzQyxXQUFPO0FBQUEsRUFDUjtBQUFBLEVBRU8sYUFBb0I7QUFDMUIsV0FBTyxLQUFLO0FBQUEsRUFDYjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS1UsYUFBYSxPQUEwQjtBQUNoRCxRQUFJLFVBQVUsVUFBYSxVQUFVLE1BQU07QUFDMUM7QUFBQSxJQUNEO0FBQ0EsUUFBSSxNQUFN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
|
|
519
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL3NxbC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgQ29ubmVjdGlvbiB9IGZyb20gXCIuL2RhdGFiYXNlXCI7XG5cbi8vIEFzc3VtZWQgaW1wb3J0cyBmb3IgdGhlIG5hdGl2ZSBKYXZhIEFQSSBjYWxsc1xuY29uc3QgRGF0YWJhc2VGYWNhZGUgPSBKYXZhLnR5cGUoXCJvcmcuZWNsaXBzZS5kaXJpZ2libGUuY29tcG9uZW50cy5hcGkuZGIuRGF0YWJhc2VGYWNhZGVcIik7XG5jb25zdCBEYXRhVHlwZUVudW0gPSBKYXZhLnR5cGUoXCJvcmcuZWNsaXBzZS5kaXJpZ2libGUuZGF0YWJhc2Uuc3FsLkRhdGFUeXBlXCIpO1xuXG4vKipcbiAqIFVuaW9uIHR5cGUgcmVwcmVzZW50aW5nIGFsbCBzdXBwb3J0ZWQgU1FMIGRhdGEgdHlwZXMuXG4gKi9cbmV4cG9ydCB0eXBlIERhdGFUeXBlID1cblx0XCJWQVJDSEFSXCJcblx0fCBcIlRFWFRcIlxuXHR8IFwiQ0hBUlwiXG5cdHwgXCJEQVRFXCJcblx0fCBcIlNFQ09ORERBVEVcIlxuXHR8IFwiVElNRVwiXG5cdHwgXCJEQVRFVElNRVwiXG5cdHwgXCJUSU1FU1RBTVBcIlxuXHR8IFwiSU5URUdFUlwiXG5cdHwgXCJJTlRcIlxuXHR8IFwiVElOWUlOVFwiXG5cdHwgXCJCSUdJTlRcIlxuXHR8IFwiU01BTExJTlRcIlxuXHR8IFwiUkVBTFwiXG5cdHwgXCJET1VCTEVcIlxuXHR8IFwiRE9VQkxFIFBSRUNJU0lPXCJcblx0fCBcIkJPT0xFQU5cIlxuXHR8IFwiQkxPQlwiXG5cdHwgXCJERUNJTUFMXCJcblx0fCBcIkJJVFwiXG5cdHwgXCJOVkFSQ0hBUlwiXG5cdHwgXCJGTE9BVFwiXG5cdHwgXCJCWVRFXCJcblx0fCBcIk5DTE9CXCJcblx0fCBcIkFSUkFZXCJcblx0fCBcIlZBUkJJTkFSWVwiXG5cdHwgXCJCSU5BUlkgVkFSWUlOXCJcblx0fCBcIlNIT1JUVEVYVFwiXG5cdHwgXCJBTFBIQU5VTVwiXG5cdHwgXCJDTE9CXCJcblx0fCBcIlNNQUxMREVDSU1BTFwiXG5cdHwgXCJCSU5BUllcIlxuXHR8IFwiU1RfUE9JTlRcIlxuXHR8IFwiU1RfR0VPTUVUUllcIlxuXHR8IFwiQ0hBUkFDVEVSIFZBUllJTlwiXG5cdHwgXCJCSU5BUlkgTEFSRyBPQkpFQ1RcIlxuXHR8IFwiQ0hBUkFDVEVSIExBUkcgT0JKRUNUXCJcblx0fCBcIkNIQVJBQ1RFUlwiXG5cdHwgXCJOQ0hBUlwiXG5cdHwgXCJOVU1FUklDXCI7XG5cbi8qKlxuICogQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgYWxsIFNRTCBidWlsZGVycy4gSGFuZGxlcyBjb25uZWN0aW9uLCBuYXRpdmUgZmFjYWRlLFxuICogYW5kIHBhcmFtZXRlciBjb2xsZWN0aW9uLlxuICovXG5hYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFNRTEJ1aWxkZXIge1xuXG5cdHB1YmxpYyByZWFkb25seSBwYXJhbXM6IGFueVtdID0gW107XG5cdHByb3RlY3RlZCByZWFkb25seSBjb25uZWN0aW9uPzogQ29ubmVjdGlvbjtcblx0cHJvdGVjdGVkIG5hdGl2ZTogYW55OyAvLyBUaGUgdW5kZXJseWluZyBKYXZhIFNRTCBCdWlsZGVyIG9iamVjdFxuXG5cdGNvbnN0cnVjdG9yKGNvbm5lY3Rpb24/OiBDb25uZWN0aW9uKSB7XG5cdFx0dGhpcy5jb25uZWN0aW9uID0gY29ubmVjdGlvbjtcblx0XHQvLyBJbml0aWFsaXplIHRoZSBuYXRpdmUgYnVpbGRlciBmcm9tIHRoZSBmYWNhZGVcblx0XHR0aGlzLm5hdGl2ZSA9IGNvbm5lY3Rpb24gPyBEYXRhYmFzZUZhY2FkZS5nZXROYXRpdmUoKGNvbm5lY3Rpb24gYXMgYW55KS5uYXRpdmUpIDogRGF0YWJhc2VGYWNhZGUuZ2V0RGVmYXVsdCgpO1xuXHRcdHRoaXMubmF0aXZlID0gdGhpcy5wcmVwYXJlQnVpbGRlcih0aGlzLm5hdGl2ZSk7XG5cdH1cblxuXHQvKipcblx0ICogSG9vayBmb3Igc3ViY2xhc3NlcyB0byBzZXQgdXAgdGhlIG5hdGl2ZSBidWlsZGVyIG9iamVjdCAoZS5nLiwgY2FsbGluZyAuc2VsZWN0KCkpLlxuXHQgKi9cblx0cHJvdGVjdGVkIHByZXBhcmVCdWlsZGVyKGJ1aWxkZXI6IGFueSk6IGFueSB7XG5cdFx0cmV0dXJuIGJ1aWxkZXI7XG5cdH1cblxuXHRwdWJsaWMgcGFyYW1ldGVycygpOiBhbnlbXSB7XG5cdFx0cmV0dXJuIHRoaXMucGFyYW1zO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgcGFyYW1ldGVyKHMpIHRvIHRoZSBpbnRlcm5hbCBsaXN0LiBIYW5kbGVzIHNpbmdsZSB2YWx1ZXMgYW5kIGFycmF5cyBvZiB2YWx1ZXMuXG5cdCAqL1xuXHRwcm90ZWN0ZWQgYWRkUGFyYW1ldGVyKHZhbHVlOiBhbnkgfCBhbnlbXSk6IHZvaWQge1xuXHRcdGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XG5cdFx0XHRyZXR1cm47IC8vIERvIG5vdCBhZGQgdW5kZWZpbmVkL251bGwgdW5sZXNzIGV4cGxpY2l0bHkgYW4gYXJyYXlcblx0XHR9XG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdFx0XHR0aGlzLnBhcmFtcy5wdXNoKC4uLnZhbHVlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5wYXJhbXMucHVzaCh2YWx1ZSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbmQgcmV0dXJucyB0aGUgZmluYWwgU1FMIHN0cmluZy5cblx0ICovXG5cdHB1YmxpYyBidWlsZCgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLm5hdGl2ZS5idWlsZCgpO1xuXHR9XG59XG5cbi8qKlxuICogTWFpbiBlbnRyeSBwb2ludCBmb3IgdGhlIFNRTCBCdWlsZGVyLiBBY3RzIGFzIGEgZmFjdG9yeSBmb3Igc3BlY2lmaWMgYnVpbGRlcnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTUUxCdWlsZGVyIGV4dGVuZHMgQWJzdHJhY3RTUUxCdWlsZGVyIHtcblxuXHQvKipcblx0ICogRmFjdG9yeSBtZXRob2QgdG8gZ2V0IGEgZGlhbGVjdC1zcGVjaWZpYyBTUUxCdWlsZGVyIGluc3RhbmNlLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBnZXREaWFsZWN0KGNvbm5lY3Rpb24/OiBDb25uZWN0aW9uKTogU1FMQnVpbGRlciB7XG5cdFx0cmV0dXJuIG5ldyBTUUxCdWlsZGVyKGNvbm5lY3Rpb24pO1xuXHR9XG5cblx0cHVibGljIHNlbGVjdCgpOiBTZWxlY3RCdWlsZGVyIHtcblx0XHRyZXR1cm4gbmV3IFNlbGVjdEJ1aWxkZXIodGhpcy5jb25uZWN0aW9uKTtcblx0fVxuXG5cdHB1YmxpYyBpbnNlcnQoKTogSW5zZXJ0QnVpbGRlciB7XG5cdFx0cmV0dXJuIG5ldyBJbnNlcnRCdWlsZGVyKHRoaXMuY29ubmVjdGlvbik7XG5cdH1cblxuXHRwdWJsaWMgdXBkYXRlKCk6IFVwZGF0ZUJ1aWxkZXIge1xuXHRcdHJldHVybiBuZXcgVXBkYXRlQnVpbGRlcih0aGlzLmNvbm5lY3Rpb24pO1xuXHR9XG5cblx0cHVibGljIGRlbGV0ZSgpOiBEZWxldGVCdWlsZGVyIHtcblx0XHRyZXR1cm4gbmV3IERlbGV0ZUJ1aWxkZXIodGhpcy5jb25uZWN0aW9uKTtcblx0fVxuXG5cdHB1YmxpYyBuZXh0dmFsKG5hbWU6IHN0cmluZyk6IE5leHR2YWxCdWlsZGVyIHtcblx0XHRyZXR1cm4gbmV3IE5leHR2YWxCdWlsZGVyKG5hbWUsIHRoaXMuY29ubmVjdGlvbik7XG5cdH1cblxuXHRwdWJsaWMgY3JlYXRlKCk6IENyZWF0ZUJ1aWxkZXIge1xuXHRcdHJldHVybiBuZXcgQ3JlYXRlQnVpbGRlcih0aGlzLmNvbm5lY3Rpb24pO1xuXHR9XG5cblx0cHVibGljIGRyb3AoKTogRHJvcEJ1aWxkZXIge1xuXHRcdHJldHVybiBuZXcgRHJvcEJ1aWxkZXIodGhpcy5jb25uZWN0aW9uKTtcblx0fVxufVxuXG4vKipcbiAqIEJ1aWxkZXIgZm9yIFNFTEVDVCBzdGF0ZW1lbnRzLlxuICovXG5leHBvcnQgY2xhc3MgU2VsZWN0QnVpbGRlciBleHRlbmRzIEFic3RyYWN0U1FMQnVpbGRlciB7XG5cblx0cHJvdGVjdGVkIHByZXBhcmVCdWlsZGVyKGJ1aWxkZXI6IGFueSk6IGFueSB7XG5cdFx0cmV0dXJuIGJ1aWxkZXIuc2VsZWN0KCk7XG5cdH1cblxuXHRwdWJsaWMgZGlzdGluY3QoKTogU2VsZWN0QnVpbGRlciB7XG5cdFx0dGhpcy5uYXRpdmUuZGlzdGluY3QoKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBmb3JVcGRhdGUoKTogU2VsZWN0QnVpbGRlciB7XG5cdFx0dGhpcy5uYXRpdmUuZm9yVXBkYXRlKCk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgY29sdW1uKGNvbHVtbjogc3RyaW5nKTogU2VsZWN0QnVpbGRlciB7XG5cdFx0dGhpcy5uYXRpdmUuY29sdW1uKGNvbHVtbik7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgZnJvbSh0YWJsZTogc3RyaW5nLCBhbGlhcz86IHN0cmluZyk6IFNlbGVjdEJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmZyb20odGFibGUsIGFsaWFzKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8vIE5PVEU6IFRoZSBvcmlnaW5hbCBKUyBsb2dpYyBmb3IgcGFyYW1ldGVyIGhhbmRsaW5nIGluIGpvaW5zIGlzIGNvbXBsZXggYW5kIHJlbGllcyBvblxuXHQvLyBhcmd1bWVudCBjb3VudC4gV2UgcmVwbGljYXRlIHRoaXMgYmVoYXZpb3IgYnkgdXNpbmcgdGhlIG9wdGlvbmFsIHBhcmFtZXRlcnMgYXJndW1lbnQuXG5cblx0cHVibGljIGpvaW4odGFibGU6IHN0cmluZywgb246IHN0cmluZywgYWxpYXM/OiBzdHJpbmcsIHBhcmFtZXRlcnM/OiBhbnkgfCBhbnlbXSk6IFNlbGVjdEJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmpvaW4odGFibGUsIG9uLCBhbGlhcyk7XG5cdFx0Ly8gYXJndW1lbnRzWzNdIGlzIHRoZSA0dGggYXJndW1lbnQgKHBhcmFtZXRlcnMgd2hlbiBhbGlhcyBpcyBwcmVzZW50KS5cblx0XHQvLyBhcmd1bWVudHNbMl0gaXMgdGhlIDNyZCBhcmd1bWVudCAocGFyYW1ldGVycyB3aGVuIGFsaWFzIGlzIGFic2VudCkuXG5cdFx0Ly8gV2UgdXNlIGFyZ3VtZW50cyBhcnJheSB0byBtYWludGFpbiBjb21wYXRpYmlsaXR5IHdpdGggdGhlIG9yaWdpbmFsIEpTIGltcGxlbWVudGF0aW9uLlxuXHRcdGlmIChhcmd1bWVudHMubGVuZ3RoID4gMykge1xuXHRcdFx0dGhpcy5hZGRQYXJhbWV0ZXIoYXJndW1lbnRzWzNdKTtcblx0XHR9IGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAyKSB7XG5cdFx0XHQvLyBUaGlzIGJyYW5jaCBpcyBoaWdobHkgZGVwZW5kZW50IG9uIGhvdyB0aGUgb3JpZ2luYWwgY29kZSB3YXMgdXNlZDpcblx0XHRcdC8vIGlmIChhbGlhcyA9PT0gdW5kZWZpbmVkICYmIHBhcmFtZXRlcnMgPT09IGFycmF5KTogcGFyYW1ldGVycyBhcmUgYXQgYXJndW1lbnRzWzJdXG5cdFx0XHR0aGlzLmFkZFBhcmFtZXRlcihhcmd1bWVudHNbMl0pO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBpbm5lckpvaW4odGFibGU6IHN0cmluZywgb246IHN0cmluZywgYWxpYXM/OiBzdHJpbmcsIHBhcmFtZXRlcnM/OiBhbnkgfCBhbnlbXSk6IFNlbGVjdEJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmlubmVySm9pbih0YWJsZSwgb24sIGFsaWFzKTtcblx0XHRpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDMpIHtcblx0XHRcdHRoaXMuYWRkUGFyYW1ldGVyKGFyZ3VtZW50c1szXSk7XG5cdFx0fSBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMikge1xuXHRcdFx0dGhpcy5hZGRQYXJhbWV0ZXIoYXJndW1lbnRzWzJdKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgb3V0ZXJKb2luKHRhYmxlOiBzdHJpbmcsIG9uOiBzdHJpbmcsIGFsaWFzPzogc3RyaW5nLCBwYXJhbWV0ZXJzPzogYW55IHwgYW55W10pOiBTZWxlY3RCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5vdXRlckpvaW4odGFibGUsIG9uLCBhbGlhcyk7XG5cdFx0aWYgKGFyZ3VtZW50cy5sZW5ndGggPiAzKSB7XG5cdFx0XHR0aGlzLmFkZFBhcmFtZXRlcihhcmd1bWVudHNbM10pO1xuXHRcdH0gZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDIpIHtcblx0XHRcdHRoaXMuYWRkUGFyYW1ldGVyKGFyZ3VtZW50c1syXSk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGxlZnRKb2luKHRhYmxlOiBzdHJpbmcsIG9uOiBzdHJpbmcsIGFsaWFzPzogc3RyaW5nLCBwYXJhbWV0ZXJzPzogYW55IHwgYW55W10pOiBTZWxlY3RCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5sZWZ0Sm9pbih0YWJsZSwgb24sIGFsaWFzKTtcblx0XHRpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDMpIHtcblx0XHRcdHRoaXMuYWRkUGFyYW1ldGVyKGFyZ3VtZW50c1szXSk7XG5cdFx0fSBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMikge1xuXHRcdFx0dGhpcy5hZGRQYXJhbWV0ZXIoYXJndW1lbnRzWzJdKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgcmlnaHRKb2luKHRhYmxlOiBzdHJpbmcsIG9uOiBzdHJpbmcsIGFsaWFzPzogc3RyaW5nLCBwYXJhbWV0ZXJzPzogYW55IHwgYW55W10pOiBTZWxlY3RCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5yaWdodEpvaW4odGFibGUsIG9uLCBhbGlhcyk7XG5cdFx0aWYgKGFyZ3VtZW50cy5sZW5ndGggPiAzKSB7XG5cdFx0XHR0aGlzLmFkZFBhcmFtZXRlcihhcmd1bWVudHNbM10pO1xuXHRcdH0gZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDIpIHtcblx0XHRcdHRoaXMuYWRkUGFyYW1ldGVyKGFyZ3VtZW50c1syXSk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGZ1bGxKb2luKHRhYmxlOiBzdHJpbmcsIG9uOiBzdHJpbmcsIGFsaWFzPzogc3RyaW5nLCBwYXJhbWV0ZXJzPzogYW55IHwgYW55W10pOiBTZWxlY3RCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5mdWxsSm9pbih0YWJsZSwgb24sIGFsaWFzKTtcblx0XHRpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDMpIHtcblx0XHRcdHRoaXMuYWRkUGFyYW1ldGVyKGFyZ3VtZW50c1szXSk7XG5cdFx0fSBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMikge1xuXHRcdFx0dGhpcy5hZGRQYXJhbWV0ZXIoYXJndW1lbnRzWzJdKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgV0hFUkUgY29uZGl0aW9uLlxuXHQgKiBAcGFyYW0gY29uZGl0aW9uIFRoZSBTUUwgY29uZGl0aW9uIHN0cmluZyAoZS5nLiwgXCJjb2x1bW4xID0gP1wiKS5cblx0ICogQHBhcmFtIHBhcmFtZXRlcnMgT3B0aW9uYWwgcGFyYW1ldGVycyB0byByZXBsYWNlICc/JyBpbiB0aGUgY29uZGl0aW9uLlxuXHQgKi9cblx0cHVibGljIHdoZXJlKGNvbmRpdGlvbjogc3RyaW5nLCBwYXJhbWV0ZXJzPzogYW55IHwgYW55W10pOiBTZWxlY3RCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS53aGVyZShjb25kaXRpb24pO1xuXHRcdHRoaXMuYWRkUGFyYW1ldGVyKHBhcmFtZXRlcnMpOyAvLyBhcmd1bWVudHNbMV0gaW4gSlNcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBvcmRlcihjb2x1bW46IHN0cmluZywgYXNjOiBib29sZWFuID0gdHJ1ZSk6IFNlbGVjdEJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLm9yZGVyKGNvbHVtbiwgYXNjKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBncm91cChjb2x1bW46IHN0cmluZyk6IFNlbGVjdEJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmdyb3VwKGNvbHVtbik7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgbGltaXQobGltaXQ6IG51bWJlcik6IFNlbGVjdEJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmxpbWl0KGxpbWl0KTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBvZmZzZXQob2Zmc2V0OiBudW1iZXIpOiBTZWxlY3RCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5vZmZzZXQob2Zmc2V0KTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBoYXZpbmcoaGF2aW5nOiBzdHJpbmcpOiBTZWxlY3RCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5oYXZpbmcoaGF2aW5nKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyB1bmlvbihzZWxlY3Q6IHN0cmluZyk6IFNlbGVjdEJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLnVuaW9uKHNlbGVjdCk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cbn1cblxuLyoqXG4gKiBCdWlsZGVyIGZvciBJTlNFUlQgc3RhdGVtZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIEluc2VydEJ1aWxkZXIgZXh0ZW5kcyBBYnN0cmFjdFNRTEJ1aWxkZXIge1xuXG5cdHByb3RlY3RlZCBwcmVwYXJlQnVpbGRlcihidWlsZGVyOiBhbnkpOiBhbnkge1xuXHRcdHJldHVybiBidWlsZGVyLmluc2VydCgpO1xuXHR9XG5cblx0cHVibGljIGludG8odGFibGU6IHN0cmluZyk6IEluc2VydEJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmludG8odGFibGUpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGNvbHVtbihjb2x1bW46IHN0cmluZyk6IEluc2VydEJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmNvbHVtbihjb2x1bW4pO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIHZhbHVlIGZvciB0aGUgbGFzdCBjb2x1bW4gc3BlY2lmaWVkLlxuXHQgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHBsYWNlaG9sZGVyIChlLmcuLCBcIj9cIikgb3IgbGl0ZXJhbC5cblx0ICogQHBhcmFtIHBhcmFtZXRlcnMgT3B0aW9uYWwgcGFyYW1ldGVycyBpZiBhIHBsYWNlaG9sZGVyIHdhcyB1c2VkLlxuXHQgKi9cblx0cHVibGljIHZhbHVlKHZhbHVlOiBzdHJpbmcsIHBhcmFtZXRlcnM/OiBhbnkgfCBhbnlbXSk6IEluc2VydEJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLnZhbHVlKHZhbHVlKTtcblx0XHR0aGlzLmFkZFBhcmFtZXRlcihwYXJhbWV0ZXJzKTsgLy8gYXJndW1lbnRzWzFdIGluIEpTXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgc2VsZWN0KHNlbGVjdDogc3RyaW5nKTogSW5zZXJ0QnVpbGRlciB7XG5cdFx0dGhpcy5uYXRpdmUuc2VsZWN0KHNlbGVjdCk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cbn1cblxuLyoqXG4gKiBCdWlsZGVyIGZvciBVUERBVEUgc3RhdGVtZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFVwZGF0ZUJ1aWxkZXIgZXh0ZW5kcyBBYnN0cmFjdFNRTEJ1aWxkZXIge1xuXG5cdHByb3RlY3RlZCBwcmVwYXJlQnVpbGRlcihidWlsZGVyOiBhbnkpOiBhbnkge1xuXHRcdHJldHVybiBidWlsZGVyLnVwZGF0ZSgpO1xuXHR9XG5cblx0cHVibGljIHRhYmxlKHRhYmxlOiBzdHJpbmcpOiBVcGRhdGVCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS50YWJsZSh0YWJsZSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyBhIGNvbHVtbiB0byBhIHZhbHVlLlxuXHQgKiBAcGFyYW0gY29sdW1uIFRoZSBjb2x1bW4gbmFtZS5cblx0ICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBwbGFjZWhvbGRlciAoZS5nLiwgXCI/XCIpIG9yIGxpdGVyYWwuXG5cdCAqIEBwYXJhbSBwYXJhbWV0ZXJzIE9wdGlvbmFsIHBhcmFtZXRlcnMgaWYgYSBwbGFjZWhvbGRlciB3YXMgdXNlZC5cblx0ICovXG5cdHB1YmxpYyBzZXQoY29sdW1uOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIHBhcmFtZXRlcnM/OiBhbnkgfCBhbnlbXSk6IFVwZGF0ZUJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLnNldChjb2x1bW4sIHZhbHVlKTtcblx0XHR0aGlzLmFkZFBhcmFtZXRlcihwYXJhbWV0ZXJzKTsgLy8gYXJndW1lbnRzWzJdIGluIEpTXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgV0hFUkUgY29uZGl0aW9uIGZvciB0aGUgdXBkYXRlLlxuXHQgKiBAcGFyYW0gY29uZGl0aW9uIFRoZSBTUUwgY29uZGl0aW9uIHN0cmluZyAoZS5nLiwgXCJjb2x1bW4xID0gP1wiKS5cblx0ICogQHBhcmFtIHBhcmFtZXRlcnMgT3B0aW9uYWwgcGFyYW1ldGVycyB0byByZXBsYWNlICc/JyBpbiB0aGUgY29uZGl0aW9uLlxuXHQgKi9cblx0cHVibGljIHdoZXJlKGNvbmRpdGlvbjogc3RyaW5nLCBwYXJhbWV0ZXJzPzogYW55IHwgYW55W10pOiBVcGRhdGVCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS53aGVyZShjb25kaXRpb24pO1xuXHRcdHRoaXMuYWRkUGFyYW1ldGVyKHBhcmFtZXRlcnMpOyAvLyBhcmd1bWVudHNbMV0gaW4gSlNcblx0XHRyZXR1cm4gdGhpcztcblx0fVxufVxuXG4vKipcbiAqIEJ1aWxkZXIgZm9yIERFTEVURSBzdGF0ZW1lbnRzLlxuICovXG5leHBvcnQgY2xhc3MgRGVsZXRlQnVpbGRlciBleHRlbmRzIEFic3RyYWN0U1FMQnVpbGRlciB7XG5cblx0cHJvdGVjdGVkIHByZXBhcmVCdWlsZGVyKGJ1aWxkZXI6IGFueSk6IGFueSB7XG5cdFx0cmV0dXJuIGJ1aWxkZXIuZGVsZXRlKCk7XG5cdH1cblxuXHRwdWJsaWMgZnJvbSh0YWJsZTogc3RyaW5nKTogRGVsZXRlQnVpbGRlciB7XG5cdFx0dGhpcy5uYXRpdmUuZnJvbSh0YWJsZSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgV0hFUkUgY29uZGl0aW9uIGZvciB0aGUgZGVsZXRpb24uXG5cdCAqIEBwYXJhbSBjb25kaXRpb24gVGhlIFNRTCBjb25kaXRpb24gc3RyaW5nIChlLmcuLCBcImNvbHVtbjEgPSA/XCIpLlxuXHQgKiBAcGFyYW0gcGFyYW1ldGVycyBPcHRpb25hbCBwYXJhbWV0ZXJzIHRvIHJlcGxhY2UgJz8nIGluIHRoZSBjb25kaXRpb24uXG5cdCAqL1xuXHRwdWJsaWMgd2hlcmUoY29uZGl0aW9uOiBzdHJpbmcsIHBhcmFtZXRlcnM/OiBhbnkgfCBhbnlbXSk6IERlbGV0ZUJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLndoZXJlKGNvbmRpdGlvbik7XG5cdFx0dGhpcy5hZGRQYXJhbWV0ZXIocGFyYW1ldGVycyk7IC8vIGFyZ3VtZW50c1sxXSBpbiBKU1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG59XG5cbi8qKlxuICogQnVpbGRlciBmb3Igc2VsZWN0aW5nIHRoZSBuZXh0IHZhbHVlIGZyb20gYSBzZXF1ZW5jZS5cbiAqL1xuZXhwb3J0IGNsYXNzIE5leHR2YWxCdWlsZGVyIGV4dGVuZHMgQWJzdHJhY3RTUUxCdWlsZGVyIHtcblxuXHRwcml2YXRlIG5hbWU6IHN0cmluZztcblxuXHRjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIGNvbm5lY3Rpb24/OiBDb25uZWN0aW9uKSB7XG5cdFx0c3VwZXIoY29ubmVjdGlvbik7XG5cdFx0dGhpcy5uYW1lID0gbmFtZTtcblx0fVxuXG5cdHByb3RlY3RlZCBwcmVwYXJlQnVpbGRlcihidWlsZGVyOiBhbnkpOiBhbnkge1xuXHRcdHJldHVybiBidWlsZGVyLm5leHR2YWwodGhpcy5uYW1lKTtcblx0fVxufVxuXG4vKipcbiAqIEJ1aWxkZXIgZm9yIENSRUFURSBzdGF0ZW1lbnRzIChUYWJsZSwgVmlldywgU2VxdWVuY2UpLlxuICovXG5leHBvcnQgY2xhc3MgQ3JlYXRlQnVpbGRlciBleHRlbmRzIEFic3RyYWN0U1FMQnVpbGRlciB7XG5cblx0cHVibGljIHRhYmxlKHRhYmxlOiBzdHJpbmcpOiBDcmVhdGVUYWJsZUJ1aWxkZXIge1xuXHRcdGNvbnNvbGUuZXJyb3IoYFRhYmxlIGluIENyZWF0ZUJ1aWxkZXIgaXM6ICR7dGFibGV9YCk7XG5cdFx0cmV0dXJuIG5ldyBDcmVhdGVUYWJsZUJ1aWxkZXIodGFibGUsIHRoaXMuY29ubmVjdGlvbik7XG5cdH1cblxuXHRwdWJsaWMgdmlldyh2aWV3OiBzdHJpbmcpOiBDcmVhdGVWaWV3QnVpbGRlciB7XG5cdFx0cmV0dXJuIG5ldyBDcmVhdGVWaWV3QnVpbGRlcih2aWV3LCB0aGlzLmNvbm5lY3Rpb24pO1xuXHR9XG5cblx0cHVibGljIHNlcXVlbmNlKHNlcXVlbmNlOiBzdHJpbmcpOiBDcmVhdGVTZXF1ZW5jZUJ1aWxkZXIge1xuXHRcdHJldHVybiBuZXcgQ3JlYXRlU2VxdWVuY2VCdWlsZGVyKHNlcXVlbmNlLCB0aGlzLmNvbm5lY3Rpb24pXG5cdH1cbn1cblxuLyoqXG4gKiBCdWlsZGVyIGZvciBDUkVBVEUgVEFCTEUgc3RhdGVtZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIENyZWF0ZVRhYmxlQnVpbGRlciBleHRlbmRzIEFic3RyYWN0U1FMQnVpbGRlciB7XG5cblx0Ly8gT3ZlcnJpZGVzIGNvbnN0cnVjdG9yIHRvIGltbWVkaWF0ZWx5IHN0YXJ0IHRoZSBuYXRpdmUgdGFibGUgYnVpbGRlclxuXHRjb25zdHJ1Y3Rvcih0YWJsZTogc3RyaW5nLCBjb25uZWN0aW9uPzogQ29ubmVjdGlvbikge1xuXHRcdHN1cGVyKGNvbm5lY3Rpb24pO1xuXHRcdHRoaXMubmF0aXZlID0gdGhpcy5uYXRpdmUuY3JlYXRlKCkudGFibGUodGFibGUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgYSBnZW5lcmljIGNvbHVtbiBkZWZpbml0aW9uLlxuXHQgKiBAcGFyYW0gYXJncyBBZGRpdGlvbmFsIGRpYWxlY3Qtc3BlY2lmaWMgYXJndW1lbnRzIHBhc3NlZCBhcyBhbiBhcnJheSB0byBuYXRpdmUuXG5cdCAqL1xuXHRwdWJsaWMgY29sdW1uKFxuXHRcdG5hbWU6IHN0cmluZywgXG5cdFx0dHlwZTogRGF0YVR5cGUsIFxuXHRcdGlzUHJpbWFyeUtleSA9IGZhbHNlLCBcblx0XHRpc051bGxhYmxlID0gdHJ1ZSwgXG5cdFx0aXNVbmlxdWUgPSBmYWxzZSwgXG5cdFx0aXNJZGVudGl0eSA9IGZhbHNlLCBcblx0XHRpc0Z1enp5SW5kZXhFbmFibGVkID0gZmFsc2UsIFxuXHRcdC4uLmFyZ3M6IHN0cmluZ1tdXG5cdCk6IENyZWF0ZVRhYmxlQnVpbGRlciB7XG5cdFx0Y29uc3QgZGF0YVR5cGUgPSBEYXRhVHlwZUVudW0udmFsdWVPZkJ5TmFtZSh0eXBlKTtcblx0XHR0aGlzLm5hdGl2ZS5jb2x1bW4obmFtZSwgZGF0YVR5cGUsIGlzUHJpbWFyeUtleSwgaXNOdWxsYWJsZSwgaXNVbmlxdWUsIGlzSWRlbnRpdHksIGlzRnV6enlJbmRleEVuYWJsZWQsIEFycmF5LmZyb20oYXJncykpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgYSBWQVJDSEFSIGNvbHVtbi5cblx0ICogQHBhcmFtIGFyZ3MgQWRkaXRpb25hbCBkaWFsZWN0LXNwZWNpZmljIGFyZ3VtZW50cyBwYXNzZWQgYXMgYW4gYXJyYXkgdG8gbmF0aXZlLlxuXHQgKi9cblx0cHVibGljIGNvbHVtblZhcmNoYXIoXG5cdFx0bmFtZTogc3RyaW5nLCBcblx0XHRsZW5ndGg6IG51bWJlciwgXG5cdFx0aXNQcmltYXJ5S2V5ID0gZmFsc2UsIFxuXHRcdGlzTnVsbGFibGUgPSB0cnVlLCBcblx0XHRpc1VuaXF1ZSA9IGZhbHNlLCBcblx0XHRpc0lkZW50aXR5ID0gZmFsc2UsIFxuXHRcdC4uLmFyZ3M6IHN0cmluZ1tdXG5cdCk6IENyZWF0ZVRhYmxlQnVpbGRlciB7XG5cdFx0dGhpcy5uYXRpdmUuY29sdW1uVmFyY2hhcihuYW1lLCBsZW5ndGgsIGlzUHJpbWFyeUtleSwgaXNOdWxsYWJsZSwgaXNVbmlxdWUsIGlzSWRlbnRpdHksIEFycmF5LmZyb20oYXJncykpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgYW4gTlZBUkNIQVIgY29sdW1uLlxuXHQgKiBAcGFyYW0gYXJncyBBZGRpdGlvbmFsIGRpYWxlY3Qtc3BlY2lmaWMgYXJndW1lbnRzIHBhc3NlZCBhcyBhbiBhcnJheSB0byBuYXRpdmUuXG5cdCAqL1xuXHRwdWJsaWMgY29sdW1uTnZhcmNoYXIoXG5cdFx0bmFtZTogc3RyaW5nLCBcblx0XHRsZW5ndGg6IG51bWJlciwgXG5cdFx0aXNQcmltYXJ5S2V5ID0gZmFsc2UsIFxuXHRcdGlzTnVsbGFibGUgPSB0cnVlLCBcblx0XHRpc1VuaXF1ZSA9IGZhbHNlLCBcblx0XHRpc0lkZW50aXR5ID0gZmFsc2UsIFxuXHRcdC4uLmFyZ3M6IHN0cmluZ1tdXG5cdCk6IENyZWF0ZVRhYmxlQnVpbGRlciB7XG5cdFx0dGhpcy5uYXRpdmUuY29sdW1uTnZhcmNoYXIobmFtZSwgbGVuZ3RoLCBpc1ByaW1hcnlLZXksIGlzTnVsbGFibGUsIGlzVW5pcXVlLCBpc0lkZW50aXR5LCBBcnJheS5mcm9tKGFyZ3MpKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGRzIGEgQ0hBUiBjb2x1bW4uXG5cdCAqIEBwYXJhbSBhcmdzIEFkZGl0aW9uYWwgZGlhbGVjdC1zcGVjaWZpYyBhcmd1bWVudHMgcGFzc2VkIGFzIGFuIGFycmF5IHRvIG5hdGl2ZS5cblx0ICovXG5cdHB1YmxpYyBjb2x1bW5DaGFyKFxuXHRcdG5hbWU6IHN0cmluZywgXG5cdFx0bGVuZ3RoOiBudW1iZXIsIFxuXHRcdGlzUHJpbWFyeUtleSA9IGZhbHNlLCBcblx0XHRpc051bGxhYmxlID0gdHJ1ZSwgXG5cdFx0aXNVbmlxdWUgPSBmYWxzZSwgXG5cdFx0aXNJZGVudGl0eSA9IGZhbHNlLCBcblx0XHQuLi5hcmdzOiBzdHJpbmdbXVxuXHQpOiBDcmVhdGVUYWJsZUJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmNvbHVtbkNoYXIobmFtZSwgbGVuZ3RoLCBpc1ByaW1hcnlLZXksIGlzTnVsbGFibGUsIGlzVW5pcXVlLCBpc0lkZW50aXR5LCBBcnJheS5mcm9tKGFyZ3MpKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGRzIGEgREFURSBjb2x1bW4uXG5cdCAqIEBwYXJhbSBhcmdzIEFkZGl0aW9uYWwgZGlhbGVjdC1zcGVjaWZpYyBhcmd1bWVudHMgcGFzc2VkIGFzIGFuIGFycmF5IHRvIG5hdGl2ZS5cblx0ICovXG5cdHB1YmxpYyBjb2x1bW5EYXRlKFxuXHRcdG5hbWU6IHN0cmluZywgXG5cdFx0aXNQcmltYXJ5S2V5ID0gZmFsc2UsIFxuXHRcdGlzTnVsbGFibGUgPSB0cnVlLCBcblx0XHRpc1VuaXF1ZSA9IGZhbHNlLCBcblx0XHQuLi5hcmdzOiBzdHJpbmdbXVxuXHQpOiBDcmVhdGVUYWJsZUJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmNvbHVtbkRhdGUobmFtZSwgaXNQcmltYXJ5S2V5LCBpc051bGxhYmxlLCBpc1VuaXF1ZSwgQXJyYXkuZnJvbShhcmdzKSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogQWRkcyBhIFRJTUUgY29sdW1uLlxuXHQgKiBAcGFyYW0gYXJncyBBZGRpdGlvbmFsIGRpYWxlY3Qtc3BlY2lmaWMgYXJndW1lbnRzIHBhc3NlZCBhcyBhbiBhcnJheSB0byBuYXRpdmUuXG5cdCAqL1xuXHRwdWJsaWMgY29sdW1uVGltZShcblx0XHRuYW1lOiBzdHJpbmcsIFxuXHRcdGlzUHJpbWFyeUtleSA9IGZhbHNlLCBcblx0XHRpc051bGxhYmxlID0gdHJ1ZSwgXG5cdFx0aXNVbmlxdWUgPSBmYWxzZSwgXG5cdFx0Li4uYXJnczogc3RyaW5nW11cblx0KTogQ3JlYXRlVGFibGVCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5jb2x1bW5UaW1lKG5hbWUsIGlzUHJpbWFyeUtleSwgaXNOdWxsYWJsZSwgaXNVbmlxdWUsIEFycmF5LmZyb20oYXJncykpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgYSBUSU1FU1RBTVAgY29sdW1uLlxuXHQgKiBAcGFyYW0gYXJncyBBZGRpdGlvbmFsIGRpYWxlY3Qtc3BlY2lmaWMgYXJndW1lbnRzIHBhc3NlZCBhcyBhbiBhcnJheSB0byBuYXRpdmUuXG5cdCAqL1xuXHRwdWJsaWMgY29sdW1uVGltZXN0YW1wKFxuXHRcdG5hbWU6IHN0cmluZywgXG5cdFx0aXNQcmltYXJ5S2V5ID0gZmFsc2UsIFxuXHRcdGlzTnVsbGFibGUgPSB0cnVlLCBcblx0XHRpc1VuaXF1ZSA9IGZhbHNlLCBcblx0XHQuLi5hcmdzOiBzdHJpbmdbXVxuXHQpOiBDcmVhdGVUYWJsZUJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmNvbHVtblRpbWVzdGFtcChuYW1lLCBpc1ByaW1hcnlLZXksIGlzTnVsbGFibGUsIGlzVW5pcXVlLCBBcnJheS5mcm9tKGFyZ3MpKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGRzIGFuIElOVEVHRVIgY29sdW1uLlxuXHQgKiBAcGFyYW0gYXJncyBBZGRpdGlvbmFsIGRpYWxlY3Qtc3BlY2lmaWMgYXJndW1lbnRzIHBhc3NlZCBhcyBhbiBhcnJheSB0byBuYXRpdmUuXG5cdCAqL1xuXHRwdWJsaWMgY29sdW1uSW50ZWdlcihcblx0XHRuYW1lOiBzdHJpbmcsIFxuXHRcdGlzUHJpbWFyeUtleSA9IGZhbHNlLCBcblx0XHRpc051bGxhYmxlID0gdHJ1ZSwgXG5cdFx0aXNVbmlxdWUgPSBmYWxzZSwgXG5cdFx0aXNJZGVudGl0eSA9IGZhbHNlLCBcblx0XHQuLi5hcmdzOiBzdHJpbmdbXVxuXHQpOiBDcmVhdGVUYWJsZUJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmNvbHVtbkludGVnZXIobmFtZSwgaXNQcmltYXJ5S2V5LCBpc051bGxhYmxlLCBpc1VuaXF1ZSwgaXNJZGVudGl0eSwgQXJyYXkuZnJvbShhcmdzKSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogQWRkcyBhIFRJTllJTlQgY29sdW1uLlxuXHQgKiBAcGFyYW0gYXJncyBBZGRpdGlvbmFsIGRpYWxlY3Qtc3BlY2lmaWMgYXJndW1lbnRzIHBhc3NlZCBhcyBhbiBhcnJheSB0byBuYXRpdmUuXG5cdCAqL1xuXHRwdWJsaWMgY29sdW1uVGlueWludChcblx0XHRuYW1lOiBzdHJpbmcsIFxuXHRcdGlzUHJpbWFyeUtleSA9IGZhbHNlLCBcblx0XHRpc051bGxhYmxlID0gdHJ1ZSwgXG5cdFx0aXNVbmlxdWUgPSBmYWxzZSwgXG5cdFx0Li4uYXJnczogc3RyaW5nW11cblx0KTogQ3JlYXRlVGFibGVCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5jb2x1bW5UaW55aW50KG5hbWUsIGlzUHJpbWFyeUtleSwgaXNOdWxsYWJsZSwgaXNVbmlxdWUsIEFycmF5LmZyb20oYXJncykpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgYSBCSUdJTlQgY29sdW1uLlxuXHQgKiBAcGFyYW0gYXJncyBBZGRpdGlvbmFsIGRpYWxlY3Qtc3BlY2lmaWMgYXJndW1lbnRzIHBhc3NlZCBhcyBhbiBhcnJheSB0byBuYXRpdmUuXG5cdCAqL1xuXHRwdWJsaWMgY29sdW1uQmlnaW50KFxuXHRcdG5hbWU6IHN0cmluZywgXG5cdFx0aXNQcmltYXJ5S2V5ID0gZmFsc2UsIFxuXHRcdGlzTnVsbGFibGUgPSB0cnVlLCBcblx0XHRpc1VuaXF1ZSA9IGZhbHNlLCBcblx0XHRpc0lkZW50aXR5ID0gZmFsc2UsIFxuXHRcdC4uLmFyZ3M6IHN0cmluZ1tdXG5cdCk6IENyZWF0ZVRhYmxlQnVpbGRlciB7XG5cdFx0dGhpcy5uYXRpdmUuY29sdW1uQmlnaW50KG5hbWUsIGlzUHJpbWFyeUtleSwgaXNOdWxsYWJsZSwgaXNVbmlxdWUsIGlzSWRlbnRpdHksIEFycmF5LmZyb20oYXJncykpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgYSBTTUFMTElOVCBjb2x1bW4uXG5cdCAqIEBwYXJhbSBhcmdzIEFkZGl0aW9uYWwgZGlhbGVjdC1zcGVjaWZpYyBhcmd1bWVudHMgcGFzc2VkIGFzIGFuIGFycmF5IHRvIG5hdGl2ZS5cblx0ICovXG5cdHB1YmxpYyBjb2x1bW5TbWFsbGludChcblx0XHRuYW1lOiBzdHJpbmcsIFxuXHRcdGlzUHJpbWFyeUtleSA9IGZhbHNlLCBcblx0XHRpc051bGxhYmxlID0gdHJ1ZSwgXG5cdFx0aXNVbmlxdWUgPSBmYWxzZSwgXG5cdFx0Li4uYXJnczogc3RyaW5nW11cblx0KTogQ3JlYXRlVGFibGVCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5jb2x1bW5TbWFsbGludChuYW1lLCBpc1ByaW1hcnlLZXksIGlzTnVsbGFibGUsIGlzVW5pcXVlLCBBcnJheS5mcm9tKGFyZ3MpKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGRzIGEgUkVBTCBjb2x1bW4uXG5cdCAqIEBwYXJhbSBhcmdzIEFkZGl0aW9uYWwgZGlhbGVjdC1zcGVjaWZpYyBhcmd1bWVudHMgcGFzc2VkIGFzIGFuIGFycmF5IHRvIG5hdGl2ZS5cblx0ICovXG5cdHB1YmxpYyBjb2x1bW5SZWFsKFxuXHRcdG5hbWU6IHN0cmluZywgXG5cdFx0aXNQcmltYXJ5S2V5ID0gZmFsc2UsIFxuXHRcdGlzTnVsbGFibGUgPSB0cnVlLCBcblx0XHRpc1VuaXF1ZSA9IGZhbHNlLCBcblx0XHQuLi5hcmdzOiBzdHJpbmdbXVxuXHQpOiBDcmVhdGVUYWJsZUJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmNvbHVtblJlYWwobmFtZSwgaXNQcmltYXJ5S2V5LCBpc051bGxhYmxlLCBpc1VuaXF1ZSwgQXJyYXkuZnJvbShhcmdzKSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogQWRkcyBhIERPVUJMRSBjb2x1bW4uXG5cdCAqIEBwYXJhbSBhcmdzIEFkZGl0aW9uYWwgZGlhbGVjdC1zcGVjaWZpYyBhcmd1bWVudHMgcGFzc2VkIGFzIGFuIGFycmF5IHRvIG5hdGl2ZS5cblx0ICovXG5cdHB1YmxpYyBjb2x1bW5Eb3VibGUoXG5cdFx0bmFtZTogc3RyaW5nLCBcblx0XHRpc1ByaW1hcnlLZXkgPSBmYWxzZSwgXG5cdFx0aXNOdWxsYWJsZSA9IHRydWUsIFxuXHRcdGlzVW5pcXVlID0gZmFsc2UsIFxuXHRcdC4uLmFyZ3M6IHN0cmluZ1tdXG5cdCk6IENyZWF0ZVRhYmxlQnVpbGRlciB7XG5cdFx0dGhpcy5uYXRpdmUuY29sdW1uRG91YmxlKG5hbWUsIGlzUHJpbWFyeUtleSwgaXNOdWxsYWJsZSwgaXNVbmlxdWUsIEFycmF5LmZyb20oYXJncykpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgYSBCT09MRUFOIGNvbHVtbi5cblx0ICogQHBhcmFtIGFyZ3MgQWRkaXRpb25hbCBkaWFsZWN0LXNwZWNpZmljIGFyZ3VtZW50cyBwYXNzZWQgYXMgYW4gYXJyYXkgdG8gbmF0aXZlLlxuXHQgKi9cblx0cHVibGljIGNvbHVtbkJvb2xlYW4oXG5cdFx0bmFtZTogc3RyaW5nLCBcblx0XHRpc1ByaW1hcnlLZXkgPSBmYWxzZSwgXG5cdFx0aXNOdWxsYWJsZSA9IHRydWUsIFxuXHRcdGlzVW5pcXVlID0gZmFsc2UsIFxuXHRcdC4uLmFyZ3M6IHN0cmluZ1tdXG5cdCk6IENyZWF0ZVRhYmxlQnVpbGRlciB7XG5cdFx0dGhpcy5uYXRpdmUuY29sdW1uQm9vbGVhbihuYW1lLCBpc1ByaW1hcnlLZXksIGlzTnVsbGFibGUsIGlzVW5pcXVlLCBBcnJheS5mcm9tKGFyZ3MpKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGRzIGEgQkxPQiBjb2x1bW4uXG5cdCAqIEBwYXJhbSBhcmdzIEFkZGl0aW9uYWwgZGlhbGVjdC1zcGVjaWZpYyBhcmd1bWVudHMgcGFzc2VkIGFzIGFuIGFycmF5IHRvIG5hdGl2ZS5cblx0ICovXG5cdHB1YmxpYyBjb2x1bW5CbG9iKFxuXHRcdG5hbWU6IHN0cmluZywgXG5cdFx0aXNOdWxsYWJsZSA9IHRydWUsIFxuXHRcdC4uLmFyZ3M6IHN0cmluZ1tdXG5cdCk6IENyZWF0ZVRhYmxlQnVpbGRlciB7XG5cdFx0dGhpcy5uYXRpdmUuY29sdW1uQmxvYihuYW1lLCBpc051bGxhYmxlLCBBcnJheS5mcm9tKGFyZ3MpKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGRzIGEgREVDSU1BTCBjb2x1bW4gd2l0aCBwcmVjaXNpb24gYW5kIHNjYWxlLlxuXHQgKiBAcGFyYW0gYXJncyBBZGRpdGlvbmFsIGRpYWxlY3Qtc3BlY2lmaWMgYXJndW1lbnRzIHBhc3NlZCBhcyBhbiBhcnJheSB0byBuYXRpdmUuXG5cdCAqL1xuXHRwdWJsaWMgY29sdW1uRGVjaW1hbChcblx0XHRuYW1lOiBzdHJpbmcsIFxuXHRcdHByZWNpc2lvbjogbnVtYmVyLCBcblx0XHRzY2FsZTogbnVtYmVyLCBcblx0XHRpc1ByaW1hcnlLZXkgPSBmYWxzZSwgXG5cdFx0aXNOdWxsYWJsZSA9IHRydWUsIFxuXHRcdGlzVW5pcXVlID0gZmFsc2UsIFxuXHRcdGlzSWRlbnRpdHkgPSBmYWxzZSwgXG5cdFx0Li4uYXJnczogc3RyaW5nW11cblx0KTogQ3JlYXRlVGFibGVCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5jb2x1bW5EZWNpbWFsKG5hbWUsIHByZWNpc2lvbiwgc2NhbGUsIGlzUHJpbWFyeUtleSwgaXNOdWxsYWJsZSwgaXNVbmlxdWUsIGlzSWRlbnRpdHksIEFycmF5LmZyb20oYXJncykpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIHByaW1hcnlLZXkoY29sdW1uczogc3RyaW5nW10sIG5hbWU/OiBzdHJpbmcpOiBDcmVhdGVUYWJsZUJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLnByaW1hcnlLZXkobmFtZSwgY29sdW1ucyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgZm9yZWlnbktleShuYW1lOiBzdHJpbmcsIGNvbHVtbnM6IHN0cmluZ1tdLCByZWZlcmVuY2VkVGFibGU6IHN0cmluZywgcmVmZXJlbmNlZENvbHVtbnM6IHN0cmluZ1tdLCByZWZlcmVuY2VkVGFibGVTY2hlbWE/OiBzdHJpbmcpOiBDcmVhdGVUYWJsZUJ1aWxkZXIge1xuXHRcdC8vIE5PVEU6IFRoZSBuYXRpdmUgZnVuY3Rpb24gZXhwZWN0cyB0aGUgc2NoZW1hIGJlZm9yZSB0aGUgcmVmZXJlbmNlZCBjb2x1bW5zXG5cdFx0dGhpcy5uYXRpdmUuZm9yZWlnbktleShuYW1lLCBjb2x1bW5zLCByZWZlcmVuY2VkVGFibGUsIHJlZmVyZW5jZWRUYWJsZVNjaGVtYSwgcmVmZXJlbmNlZENvbHVtbnMpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIHVuaXF1ZShuYW1lOiBzdHJpbmcsIGNvbHVtbnM6IHN0cmluZ1tdKTogQ3JlYXRlVGFibGVCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS51bmlxdWUobmFtZSwgY29sdW1ucyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgY2hlY2sobmFtZTogc3RyaW5nLCBleHByZXNzaW9uOiBzdHJpbmcpOiBDcmVhdGVUYWJsZUJ1aWxkZXIge1xuXHRcdHRoaXMubmF0aXZlLmNoZWNrKG5hbWUsIGV4cHJlc3Npb24pO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG59XG5cbi8qKlxuICogQnVpbGRlciBmb3IgQ1JFQVRFIFZJRVcgc3RhdGVtZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIENyZWF0ZVZpZXdCdWlsZGVyIGV4dGVuZHMgQWJzdHJhY3RTUUxCdWlsZGVyIHtcblxuXHRjb25zdHJ1Y3Rvcih2aWV3OiBzdHJpbmcsIGNvbm5lY3Rpb24/OiBDb25uZWN0aW9uKSB7XG5cdFx0c3VwZXIoY29ubmVjdGlvbik7XG5cdFx0dGhpcy5uYXRpdmUgPSB0aGlzLm5hdGl2ZS5jcmVhdGUoKS52aWV3KHZpZXcpO1xuXHR9XG5cblx0cHVibGljIGNvbHVtbihjb2x1bW46IHN0cmluZyk6IENyZWF0ZVZpZXdCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5jb2x1bW4oY29sdW1uKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBhc1NlbGVjdChzZWxlY3Q6IHN0cmluZyk6IENyZWF0ZVZpZXdCdWlsZGVyIHtcblx0XHR0aGlzLm5hdGl2ZS5hc1NlbGVjdChzZWxlY3QpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG59XG5cbi8qKlxuICogQnVpbGRlciBmb3IgQ1JFQVRFIFNFUVVFTkNFIHN0YXRlbWVudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBDcmVhdGVTZXF1ZW5jZUJ1aWxkZXIgZXh0ZW5kcyBBYnN0cmFjdFNRTEJ1aWxkZXIge1xuXG5cdGNvbnN0cnVjdG9yKHNlcXVlbmNlOiBzdHJpbmcsIGNvbm5lY3Rpb24/OiBDb25uZWN0aW9uKSB7XG5cdFx0c3VwZXIoY29ubmVjdGlvbik7XG5cdFx0dGhpcy5uYXRpdmUgPSB0aGlzLm5hdGl2ZS5jcmVhdGUoKS5zZXF1ZW5jZShzZXF1ZW5jZSk7XG5cdH1cbn1cblxuLyoqXG4gKiBCdWlsZGVyIGZvciBEUk9QIHN0YXRlbWVudHMgKFRhYmxlLCBWaWV3LCBTZXF1ZW5jZSkuXG4gKi9cbmV4cG9ydCBjbGFzcyBEcm9wQnVpbGRlciBleHRlbmRzIEFic3RyYWN0U1FMQnVpbGRlciB7XG5cblx0cHVibGljIHRhYmxlKHRhYmxlOiBzdHJpbmcpOiBEcm9wVGFibGVCdWlsZGVyIHtcblx0XHRyZXR1cm4gbmV3IERyb3BUYWJsZUJ1aWxkZXIodGFibGUsIHRoaXMuY29ubmVjdGlvbik7XG5cdH1cblxuXHRwdWJsaWMgdmlldyh2aWV3OiBzdHJpbmcpOiBEcm9wVmlld0J1aWxkZXIge1xuXHRcdHJldHVybiBuZXcgRHJvcFZpZXdCdWlsZGVyKHZpZXcsIHRoaXMuY29ubmVjdGlvbik7XG5cdH1cblxuXHRwdWJsaWMgc2VxdWVuY2Uoc2VxdWVuY2U6IHN0cmluZyk6IERyb3BTZXF1ZW5jZUJ1aWxkZXIge1xuXHRcdHJldHVybiBuZXcgRHJvcFNlcXVlbmNlQnVpbGRlcihzZXF1ZW5jZSwgdGhpcy5jb25uZWN0aW9uKTtcblx0fTtcblxufVxuXG4vKipcbiAqIEJ1aWxkZXIgZm9yIERST1AgVEFCTEUgc3RhdGVtZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIERyb3BUYWJsZUJ1aWxkZXIgZXh0ZW5kcyBBYnN0cmFjdFNRTEJ1aWxkZXIge1xuXG5cdGNvbnN0cnVjdG9yKHRhYmxlOiBzdHJpbmcsIGNvbm5lY3Rpb24/OiBDb25uZWN0aW9uKSB7XG5cdFx0c3VwZXIoY29ubmVjdGlvbik7XG5cdFx0dGhpcy5uYXRpdmUgPSB0aGlzLm5hdGl2ZS5kcm9wKCkudGFibGUodGFibGUpO1xuXHR9XG59XG5cbi8qKlxuICogQnVpbGRlciBmb3IgRFJPUCBWSUVXIHN0YXRlbWVudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBEcm9wVmlld0J1aWxkZXIgZXh0ZW5kcyBBYnN0cmFjdFNRTEJ1aWxkZXIge1xuXG5cdGNvbnN0cnVjdG9yKHZpZXc6IHN0cmluZywgY29ubmVjdGlvbj86IENvbm5lY3Rpb24pIHtcblx0XHRzdXBlcihjb25uZWN0aW9uKTtcblx0XHR0aGlzLm5hdGl2ZSA9IHRoaXMubmF0aXZlLmRyb3AoKS52aWV3KHZpZXcpO1xuXHR9XG59XG5cbi8qKlxuICogQnVpbGRlciBmb3IgRFJPUCBTRVFVRU5DRSBzdGF0ZW1lbnRzLlxuICovXG5leHBvcnQgY2xhc3MgRHJvcFNlcXVlbmNlQnVpbGRlciBleHRlbmRzIEFic3RyYWN0U1FMQnVpbGRlciB7XG5cblx0Y29uc3RydWN0b3Ioc2VxdWVuY2U6IHN0cmluZywgY29ubmVjdGlvbj86IENvbm5lY3Rpb24pIHtcblx0XHRzdXBlcihjb25uZWN0aW9uKTtcblx0XHR0aGlzLm5hdGl2ZSA9IHRoaXMubmF0aXZlLmRyb3AoKS5zZXF1ZW5jZShzZXF1ZW5jZSk7XG5cdH1cbn1cblxuLy8gQHRzLWlnbm9yZVxuaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7XG5cdC8vIEB0cy1pZ25vcmVcblx0bW9kdWxlLmV4cG9ydHMgPSBTUUxCdWlsZGVyO1xufSJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0EsTUFBTSxpQkFBaUIsS0FBSyxLQUFLLHdEQUF3RDtBQUN6RixNQUFNLGVBQWUsS0FBSyxLQUFLLDZDQUE2QztBQW1ENUUsTUFBZSxtQkFBbUI7QUFBQSxFQUVqQixTQUFnQixDQUFDO0FBQUEsRUFDZDtBQUFBLEVBQ1Q7QUFBQTtBQUFBLEVBRVYsWUFBWSxZQUF5QjtBQUNwQyxTQUFLLGFBQWE7QUFFbEIsU0FBSyxTQUFTLGFBQWEsZUFBZSxVQUFXLFdBQW1CLE1BQU0sSUFBSSxlQUFlLFdBQVc7QUFDNUcsU0FBSyxTQUFTLEtBQUssZUFBZSxLQUFLLE1BQU07QUFBQSxFQUM5QztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS1UsZUFBZSxTQUFtQjtBQUMzQyxXQUFPO0FBQUEsRUFDUjtBQUFBLEVBRU8sYUFBb0I7QUFDMUIsV0FBTyxLQUFLO0FBQUEsRUFDYjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS1UsYUFBYSxPQUEwQjtBQUNoRCxRQUFJLFVBQVUsVUFBYSxVQUFVLE1BQU07QUFDMUM7QUFBQSxJ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
|
package/dist/cjs/etcd/client.js
CHANGED
|
@@ -56,6 +56,7 @@ function KeyValueObjectByteArray(kvsList) {
|
|
|
56
56
|
return KeyValueObject(kvsList, BytesToArray);
|
|
57
57
|
}
|
|
58
58
|
class Header {
|
|
59
|
+
native;
|
|
59
60
|
constructor(native) {
|
|
60
61
|
this.native = native;
|
|
61
62
|
}
|
|
@@ -77,6 +78,7 @@ class Header {
|
|
|
77
78
|
}
|
|
78
79
|
}
|
|
79
80
|
class GetResponse {
|
|
81
|
+
native;
|
|
80
82
|
constructor(native) {
|
|
81
83
|
this.native = native;
|
|
82
84
|
}
|
|
@@ -99,6 +101,7 @@ class GetResponse {
|
|
|
99
101
|
}
|
|
100
102
|
}
|
|
101
103
|
class Client {
|
|
104
|
+
native;
|
|
102
105
|
constructor() {
|
|
103
106
|
this.native = EtcdFacade.getClient();
|
|
104
107
|
}
|
|
@@ -171,4 +174,4 @@ class Client {
|
|
|
171
174
|
if (typeof module !== "undefined") {
|
|
172
175
|
module.exports = Client;
|
|
173
176
|
}
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2V0Y2QvY2xpZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBFdGNkRmFjYWRlID0gSmF2YS50eXBlKFwib3JnLmVjbGlwc2UuZGlyaWdpYmxlLmNvbXBvbmVudHMuYXBpLmV0Y2QuRXRjZEZhY2FkZVwiKTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFVUSUxJVFkgRlVOQ1RJT05TXG4vLyBUaGVzZSBmdW5jdGlvbnMgaGFuZGxlIHRoZSBjb252ZXJzaW9uIGJldHdlZW4gSmF2YVNjcmlwdC9UeXBlU2NyaXB0IHR5cGVzIChzdHJpbmcsIEludDhBcnJheSlcbi8vIGFuZCB0aGUgbmF0aXZlIEphdmEvRXRjZCB0eXBlcyAoQnl0ZVNlcXVlbmNlLCBuYXRpdmUgYnl0ZSBhcnJheXMpLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIHN0cmluZyB0byBhIG5hdGl2ZSBFdGNkIEJ5dGVTZXF1ZW5jZSBvYmplY3QuXG4gKiBAcGFyYW0gc3RyIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIFRoZSBuYXRpdmUgQnl0ZVNlcXVlbmNlIG9iamVjdCAoSmF2YSB0eXBlKS5cbiAqL1xuZnVuY3Rpb24gU3RyaW5nVG9CeXRlU2VxdWVuY2Uoc3RyOiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiBFdGNkRmFjYWRlLnN0cmluZ1RvQnl0ZVNlcXVlbmNlKHN0cik7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBKYXZhU2NyaXB0IEludDhBcnJheSAoYnl0ZSBhcnJheSkgdG8gYSBuYXRpdmUgRXRjZCBCeXRlU2VxdWVuY2Ugb2JqZWN0LlxuICogQHBhcmFtIGFyciBUaGUgSW50OEFycmF5IHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyBUaGUgbmF0aXZlIEJ5dGVTZXF1ZW5jZSBvYmplY3QgKEphdmEgdHlwZSkuXG4gKi9cbmZ1bmN0aW9uIEJ5dGVBcnJheVRvQnl0ZVNlcXVlbmNlKGFycjogSW50OEFycmF5KTogYW55IHtcbiAgICByZXR1cm4gRXRjZEZhY2FkZS5ieXRlQXJyYXlUb0J5dGVTZXF1ZW5jZShhcnIpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgbmF0aXZlIEV0Y2QgQnl0ZVNlcXVlbmNlIG9iamVjdCBiYWNrIHRvIGEgc3RyaW5nLlxuICogQHBhcmFtIHZhbHVlIFRoZSBuYXRpdmUgQnl0ZVNlcXVlbmNlIG9iamVjdC5cbiAqIEByZXR1cm5zIFRoZSBkZWNvZGVkIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gQnl0ZVNlcXVlbmNlVG9TdHJpbmcodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEV0Y2RGYWNhZGUuYnl0ZVNlcXVlbmNlVG9TdHJpbmcodmFsdWUpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgbmF0aXZlIEphdmEgYXJyYXkgb2YgYnl0ZXMgaW50byBhIEphdmFTY3JpcHQgSW50OEFycmF5LlxuICogQHBhcmFtIHZhbHVlIFRoZSBuYXRpdmUgQnl0ZVNlcXVlbmNlIG9iamVjdCBjb250YWluaW5nIHRoZSBieXRlcy5cbiAqIEByZXR1cm5zIEEgSmF2YVNjcmlwdCBJbnQ4QXJyYXkuXG4gKi9cbmZ1bmN0aW9uIEJ5dGVzVG9BcnJheSh2YWx1ZTogYW55KTogSW50OEFycmF5IHtcbiAgICBjb25zdCBhcnJheSA9IHZhbHVlLmdldEJ5dGVzKCk7IC8vIEdldCB0aGUgbmF0aXZlIGJ5dGUgYXJyYXlcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgSW50OEFycmF5KGFycmF5Lmxlbmd0aCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICAvLyBDb252ZXJzaW9uIGZyb20gSmF2YSBieXRlIHRvIEphdmFTY3JpcHQgSW50OCB2YWx1ZVxuICAgICAgICByZXN1bHRbaV0gPSBwYXJzZUludChhcnJheVtpXSwgMTApOyBcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBIZWxwZXIgdG8gcHJvY2VzcyBhIGxpc3Qgb2YgS2V5LVZhbHVlIChLVikgb2JqZWN0cyBpbnRvIGEgc3RhbmRhcmQgSmF2YVNjcmlwdCBvYmplY3QuXG4gKiBAcGFyYW0ga3ZzTGlzdCBUaGUgbmF0aXZlIGxpc3Qgb2YgS1Ygb2JqZWN0cy5cbiAqIEBwYXJhbSBmdW5jIFRoZSBjb252ZXJzaW9uIGZ1bmN0aW9uIGZvciB0aGUgdmFsdWUgKGUuZy4sIEJ5dGVTZXF1ZW5jZVRvU3RyaW5nIG9yIEJ5dGVzVG9BcnJheSkuXG4gKiBAcmV0dXJucyBBIHN0YW5kYXJkIEphdmFTY3JpcHQgb2JqZWN0IG1hcHBpbmcgc3RyaW5nIGtleXMgdG8gc3BlY2lmaWVkIHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gS2V5VmFsdWVPYmplY3Q8VD4oa3ZzTGlzdDogYW55W10sIGZ1bmM6ICh2YWx1ZTogYW55KSA9PiBUKTogeyBba2V5OiBzdHJpbmddOiBUIH0ge1xuICAgIGNvbnN0IGt2T2JqZWN0OiB7IFtrZXk6IHN0cmluZ106IFQgfSA9IHt9O1xuICAgIGt2c0xpc3QuZm9yRWFjaCgoa3ZzOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3Qga2V5OiBzdHJpbmcgPSBCeXRlU2VxdWVuY2VUb1N0cmluZyhrdnMuZ2V0S2V5KCkpO1xuICAgICAgICBjb25zdCB2YWx1ZTogVCA9IGZ1bmMoa3ZzLmdldFZhbHVlKCkpO1xuICAgICAgICBrdk9iamVjdFtrZXldID0gdmFsdWU7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ga3ZPYmplY3Q7XG59XG5cbi8qKlxuICogUHJvY2Vzc2VzIG5hdGl2ZSBLVlMgbGlzdCB0byBhIEphdmFTY3JpcHQgb2JqZWN0IHdpdGggc3RyaW5nIHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gS2V5VmFsdWVPYmplY3RTdHJpbmcoa3ZzTGlzdDogYW55W10pOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICByZXR1cm4gS2V5VmFsdWVPYmplY3Qoa3ZzTGlzdCwgQnl0ZVNlcXVlbmNlVG9TdHJpbmcpO1xufVxuXG4vKipcbiAqIFByb2Nlc3NlcyBuYXRpdmUgS1ZTIGxpc3QgdG8gYSBKYXZhU2NyaXB0IG9iamVjdCB3aXRoIEludDhBcnJheSB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIEtleVZhbHVlT2JqZWN0Qnl0ZUFycmF5KGt2c0xpc3Q6IGFueVtdKTogeyBba2V5OiBzdHJpbmddOiBJbnQ4QXJyYXkgfSB7XG4gICAgcmV0dXJuIEtleVZhbHVlT2JqZWN0KGt2c0xpc3QsIEJ5dGVzVG9BcnJheSk7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBFVENEIFJFU1BPTlNFIENMQVNTRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgaGVhZGVyIG1ldGFkYXRhIG9mIGFuIEV0Y2QgcmVzcG9uc2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBIZWFkZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbmF0aXZlOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3RvcihuYXRpdmU6IGFueSkge1xuICAgICAgICB0aGlzLm5hdGl2ZSA9IG5hdGl2ZTtcbiAgICB9XG5cbiAgICAvKiogVGhlIHJldmlzaW9uIG9mIHRoZSBrZXktdmFsdWUgc3RvcmUgd2hlbiB0aGUgcmVxdWVzdCB3YXMgcHJvY2Vzc2VkLiAqL1xuICAgIHB1YmxpYyBnZXRSZXZpc2lvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmUuZ2V0UmV2aXNpb24oKTtcbiAgICB9XG5cbiAgICAvKiogVGhlIElEIG9mIHRoZSBjbHVzdGVyIHdoaWNoIHRoZSByZXF1ZXN0IHdhcyBzZW50IHRvLiAqL1xuICAgIHB1YmxpYyBnZXRDbHVzdGVySWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlLmdldENsdXN0ZXJJZCgpO1xuICAgIH1cblxuICAgIC8qKiBUaGUgSUQgb2YgdGhlIG1lbWJlciB3aGljaCB0aGUgcmVxdWVzdCB3YXMgaGFuZGxlZCBieS4gKi9cbiAgICBwdWJsaWMgZ2V0TWVtYmVySWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlLmdldE1lbWJlcklkKCk7XG4gICAgfVxuXG4gICAgLyoqIFRoZSBSYWZ0IHRlcm0uICovXG4gICAgcHVibGljIGdldFJhZnRUZXJtKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZS5nZXRSYWZ0VGVybSgpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSByZXNwb25zZSBvYmplY3QgZm9yIGEgR2V0IG9wZXJhdGlvbiBmcm9tIEV0Y2QuXG4gKi9cbmV4cG9ydCBjbGFzcyBHZXRSZXNwb25zZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBuYXRpdmU6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKG5hdGl2ZTogYW55KSB7XG4gICAgICAgIHRoaXMubmF0aXZlID0gbmF0aXZlO1xuICAgIH1cblxuICAgIC8qKiBSZXRyaWV2ZXMgdGhlIHJlc3BvbnNlIGhlYWRlciBjb250YWluaW5nIGNsdXN0ZXIgbWV0YWRhdGEuICovXG4gICAgcHVibGljIGdldEhlYWRlcigpOiBIZWFkZXIge1xuICAgICAgICBjb25zdCBuYXRpdmVIZWFkZXIgPSB0aGlzLm5hdGl2ZS5nZXRIZWFkZXIoKTtcbiAgICAgICAgcmV0dXJuIG5ldyBIZWFkZXIobmF0aXZlSGVhZGVyKTtcbiAgICB9XG5cbiAgICAvKiogUmV0cmlldmVzIHRoZSBLZXktVmFsdWUgcGFpcnMgd2l0aCB2YWx1ZXMgY29udmVydGVkIHRvIHN0cmluZ3MuICovXG4gICAgcHVibGljIGdldEt2c1N0cmluZygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICAgICAgcmV0dXJuIEtleVZhbHVlT2JqZWN0U3RyaW5nKHRoaXMubmF0aXZlLmdldEt2cygpKTtcbiAgICB9XG5cbiAgICAvKiogUmV0cmlldmVzIHRoZSBLZXktVmFsdWUgcGFpcnMgd2l0aCB2YWx1ZXMgY29udmVydGVkIHRvIEludDhBcnJheSAoYnl0ZSBhcnJheXMpLiAqL1xuICAgIHB1YmxpYyBnZXRLdnNCeXRlQXJyYXkoKTogeyBba2V5OiBzdHJpbmddOiBJbnQ4QXJyYXkgfSB7XG4gICAgICAgIHJldHVybiBLZXlWYWx1ZU9iamVjdEJ5dGVBcnJheSh0aGlzLm5hdGl2ZS5nZXRLdnMoKSk7XG4gICAgfVxuXG4gICAgLyoqIFJldHJpZXZlcyB0aGUgbnVtYmVyIG9mIEtleS1WYWx1ZSBwYWlycyByZXR1cm5lZC4gKi9cbiAgICBwdWJsaWMgZ2V0Q291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlLmdldENvdW50KCk7XG4gICAgfVxufVxuXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBFVENEIENMSUVOVCBGQUNBREVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ2xpZW50IGZhY2FkZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgRXRjZCBrZXktdmFsdWUgc3RvcmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBDbGllbnQge1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBuYXRpdmU6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLm5hdGl2ZSA9IEV0Y2RGYWNhZGUuZ2V0Q2xpZW50KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYSBibG9ja2luZyBHRVQgcmVxdWVzdCBvbiB0aGUgc3BlY2lmaWVkIGtleS5cbiAgICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgdG8gcmV0cmlldmUuXG4gICAgICogQHJldHVybnMgVGhlIHByb2Nlc3NlZCBHZXRSZXNwb25zZSBvYmplY3QuXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXQoa2V5OiBzdHJpbmcpOiBHZXRSZXNwb25zZSB7XG4gICAgICAgIC8vIEV0Y2QgY2xpZW50IHJldHVybnMgYSBDb21wbGV0YWJsZUZ1dHVyZSB3aGljaCBpcyBibG9ja2VkIGhlcmUgdXNpbmcgLmdldCgpXG4gICAgICAgIGNvbnN0IGV0Y2RDb21wbGV0YWJsZUZ1dHVyZSA9IHRoaXMubmF0aXZlLmdldChTdHJpbmdUb0J5dGVTZXF1ZW5jZShrZXkpKTtcbiAgICAgICAgY29uc3QgbmF0aXZlUmVzcG9uc2UgPSBldGNkQ29tcGxldGFibGVGdXR1cmUuZ2V0KCk7XG4gICAgICAgIHJldHVybiBuZXcgR2V0UmVzcG9uc2UobmF0aXZlUmVzcG9uc2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1dHMgKHdyaXRlcykgYSBzdHJpbmcgdmFsdWUgdG8gdGhlIHNwZWNpZmllZCBrZXkuXG4gICAgICogQHBhcmFtIGtleSBUaGUga2V5IHRvIHdyaXRlIHRvLlxuICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgc3RyaW5nIHZhbHVlLlxuICAgICAqL1xuICAgIHB1YmxpYyBwdXRTdHJpbmdWYWx1ZShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hdGl2ZS5wdXQoU3RyaW5nVG9CeXRlU2VxdWVuY2Uoa2V5KSwgU3RyaW5nVG9CeXRlU2VxdWVuY2UodmFsdWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQdXRzICh3cml0ZXMpIGEgYnl0ZSBhcnJheSB2YWx1ZSB0byB0aGUgc3BlY2lmaWVkIGtleS5cbiAgICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgdG8gd3JpdGUgdG8uXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSBJbnQ4QXJyYXkgKGJ5dGUgYXJyYXkpIHZhbHVlLlxuICAgICAqL1xuICAgIHB1YmxpYyBwdXRCeXRlQXJyYXlWYWx1ZShrZXk6IHN0cmluZywgdmFsdWU6IEludDhBcnJheSk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hdGl2ZS5wdXQoU3RyaW5nVG9CeXRlU2VxdWVuY2Uoa2V5KSwgQnl0ZUFycmF5VG9CeXRlU2VxdWVuY2UodmFsdWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIHJlc3BvbnNlIGhlYWRlciBtZXRhZGF0YSBmb3IgYSBrZXkuXG4gICAgICogQHBhcmFtIGtleSBUaGUga2V5IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIFRoZSB7QGxpbmsgSGVhZGVyfSBvYmplY3QuXG4gICAgICovXG4gICAgcHVibGljIGdldEhlYWRlcihrZXk6IHN0cmluZyk6IEhlYWRlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldChrZXkpLmdldEhlYWRlcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyB0aGUgS2V5LVZhbHVlIHBhaXJzIGFzIGEgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCBzdHJpbmcgdmFsdWVzLlxuICAgICAqIEBwYXJhbSBrZXkgVGhlIGtleSAob3Iga2V5IHByZWZpeCkgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMgQW4gb2JqZWN0IG1hcHBpbmcga2V5cyB0byBzdHJpbmcgdmFsdWVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRLdnNTdHJpbmdWYWx1ZShrZXk6IHN0cmluZyk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoa2V5KS5nZXRLdnNTdHJpbmcoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIEtleS1WYWx1ZSBwYWlycyBhcyBhIEphdmFTY3JpcHQgb2JqZWN0IHdpdGggSW50OEFycmF5IHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgKG9yIGtleSBwcmVmaXgpIHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIEFuIG9iamVjdCBtYXBwaW5nIGtleXMgdG8gSW50OEFycmF5IHZhbHVlcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0S3ZzQnl0ZUFycmF5VmFsdWUoa2V5OiBzdHJpbmcpOiB7IFtrZXk6IHN0cmluZ106IEludDhBcnJheSB9IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KGtleSkuZ2V0S3ZzQnl0ZUFycmF5KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBjb3VudCBvZiBLZXktVmFsdWUgcGFpcnMgbWF0Y2hpbmcgdGhlIGtleSAob3Iga2V5IHByZWZpeCkuXG4gICAgICogQHBhcmFtIGtleSBUaGUga2V5IChvciBrZXkgcHJlZml4KSB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyBUaGUgY291bnQgb2YgbWF0Y2hpbmcgZW50cmllcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q291bnQoa2V5OiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoa2V5KS5nZXRDb3VudCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgdGhlIHNwZWNpZmllZCBrZXkuXG4gICAgICogQHBhcmFtIGtleSBUaGUga2V5IHRvIGRlbGV0ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGVsZXRlKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmF0aXZlLmRlbGV0ZShTdHJpbmdUb0J5dGVTZXF1ZW5jZShrZXkpKTtcbiAgICB9XG59XG5cblxuLy8gQHRzLWlnbm9yZVxuaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7XG5cdC8v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
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2V0Y2QvY2xpZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBFdGNkRmFjYWRlID0gSmF2YS50eXBlKFwib3JnLmVjbGlwc2UuZGlyaWdpYmxlLmNvbXBvbmVudHMuYXBpLmV0Y2QuRXRjZEZhY2FkZVwiKTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFVUSUxJVFkgRlVOQ1RJT05TXG4vLyBUaGVzZSBmdW5jdGlvbnMgaGFuZGxlIHRoZSBjb252ZXJzaW9uIGJldHdlZW4gSmF2YVNjcmlwdC9UeXBlU2NyaXB0IHR5cGVzIChzdHJpbmcsIEludDhBcnJheSlcbi8vIGFuZCB0aGUgbmF0aXZlIEphdmEvRXRjZCB0eXBlcyAoQnl0ZVNlcXVlbmNlLCBuYXRpdmUgYnl0ZSBhcnJheXMpLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIHN0cmluZyB0byBhIG5hdGl2ZSBFdGNkIEJ5dGVTZXF1ZW5jZSBvYmplY3QuXG4gKiBAcGFyYW0gc3RyIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIFRoZSBuYXRpdmUgQnl0ZVNlcXVlbmNlIG9iamVjdCAoSmF2YSB0eXBlKS5cbiAqL1xuZnVuY3Rpb24gU3RyaW5nVG9CeXRlU2VxdWVuY2Uoc3RyOiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiBFdGNkRmFjYWRlLnN0cmluZ1RvQnl0ZVNlcXVlbmNlKHN0cik7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBKYXZhU2NyaXB0IEludDhBcnJheSAoYnl0ZSBhcnJheSkgdG8gYSBuYXRpdmUgRXRjZCBCeXRlU2VxdWVuY2Ugb2JqZWN0LlxuICogQHBhcmFtIGFyciBUaGUgSW50OEFycmF5IHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyBUaGUgbmF0aXZlIEJ5dGVTZXF1ZW5jZSBvYmplY3QgKEphdmEgdHlwZSkuXG4gKi9cbmZ1bmN0aW9uIEJ5dGVBcnJheVRvQnl0ZVNlcXVlbmNlKGFycjogSW50OEFycmF5KTogYW55IHtcbiAgICByZXR1cm4gRXRjZEZhY2FkZS5ieXRlQXJyYXlUb0J5dGVTZXF1ZW5jZShhcnIpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgbmF0aXZlIEV0Y2QgQnl0ZVNlcXVlbmNlIG9iamVjdCBiYWNrIHRvIGEgc3RyaW5nLlxuICogQHBhcmFtIHZhbHVlIFRoZSBuYXRpdmUgQnl0ZVNlcXVlbmNlIG9iamVjdC5cbiAqIEByZXR1cm5zIFRoZSBkZWNvZGVkIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gQnl0ZVNlcXVlbmNlVG9TdHJpbmcodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEV0Y2RGYWNhZGUuYnl0ZVNlcXVlbmNlVG9TdHJpbmcodmFsdWUpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgbmF0aXZlIEphdmEgYXJyYXkgb2YgYnl0ZXMgaW50byBhIEphdmFTY3JpcHQgSW50OEFycmF5LlxuICogQHBhcmFtIHZhbHVlIFRoZSBuYXRpdmUgQnl0ZVNlcXVlbmNlIG9iamVjdCBjb250YWluaW5nIHRoZSBieXRlcy5cbiAqIEByZXR1cm5zIEEgSmF2YVNjcmlwdCBJbnQ4QXJyYXkuXG4gKi9cbmZ1bmN0aW9uIEJ5dGVzVG9BcnJheSh2YWx1ZTogYW55KTogSW50OEFycmF5IHtcbiAgICBjb25zdCBhcnJheSA9IHZhbHVlLmdldEJ5dGVzKCk7IC8vIEdldCB0aGUgbmF0aXZlIGJ5dGUgYXJyYXlcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgSW50OEFycmF5KGFycmF5Lmxlbmd0aCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICAvLyBDb252ZXJzaW9uIGZyb20gSmF2YSBieXRlIHRvIEphdmFTY3JpcHQgSW50OCB2YWx1ZVxuICAgICAgICByZXN1bHRbaV0gPSBwYXJzZUludChhcnJheVtpXSwgMTApOyBcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBIZWxwZXIgdG8gcHJvY2VzcyBhIGxpc3Qgb2YgS2V5LVZhbHVlIChLVikgb2JqZWN0cyBpbnRvIGEgc3RhbmRhcmQgSmF2YVNjcmlwdCBvYmplY3QuXG4gKiBAcGFyYW0ga3ZzTGlzdCBUaGUgbmF0aXZlIGxpc3Qgb2YgS1Ygb2JqZWN0cy5cbiAqIEBwYXJhbSBmdW5jIFRoZSBjb252ZXJzaW9uIGZ1bmN0aW9uIGZvciB0aGUgdmFsdWUgKGUuZy4sIEJ5dGVTZXF1ZW5jZVRvU3RyaW5nIG9yIEJ5dGVzVG9BcnJheSkuXG4gKiBAcmV0dXJucyBBIHN0YW5kYXJkIEphdmFTY3JpcHQgb2JqZWN0IG1hcHBpbmcgc3RyaW5nIGtleXMgdG8gc3BlY2lmaWVkIHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gS2V5VmFsdWVPYmplY3Q8VD4oa3ZzTGlzdDogYW55W10sIGZ1bmM6ICh2YWx1ZTogYW55KSA9PiBUKTogeyBba2V5OiBzdHJpbmddOiBUIH0ge1xuICAgIGNvbnN0IGt2T2JqZWN0OiB7IFtrZXk6IHN0cmluZ106IFQgfSA9IHt9O1xuICAgIGt2c0xpc3QuZm9yRWFjaCgoa3ZzOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3Qga2V5OiBzdHJpbmcgPSBCeXRlU2VxdWVuY2VUb1N0cmluZyhrdnMuZ2V0S2V5KCkpO1xuICAgICAgICBjb25zdCB2YWx1ZTogVCA9IGZ1bmMoa3ZzLmdldFZhbHVlKCkpO1xuICAgICAgICBrdk9iamVjdFtrZXldID0gdmFsdWU7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ga3ZPYmplY3Q7XG59XG5cbi8qKlxuICogUHJvY2Vzc2VzIG5hdGl2ZSBLVlMgbGlzdCB0byBhIEphdmFTY3JpcHQgb2JqZWN0IHdpdGggc3RyaW5nIHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gS2V5VmFsdWVPYmplY3RTdHJpbmcoa3ZzTGlzdDogYW55W10pOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICByZXR1cm4gS2V5VmFsdWVPYmplY3Qoa3ZzTGlzdCwgQnl0ZVNlcXVlbmNlVG9TdHJpbmcpO1xufVxuXG4vKipcbiAqIFByb2Nlc3NlcyBuYXRpdmUgS1ZTIGxpc3QgdG8gYSBKYXZhU2NyaXB0IG9iamVjdCB3aXRoIEludDhBcnJheSB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIEtleVZhbHVlT2JqZWN0Qnl0ZUFycmF5KGt2c0xpc3Q6IGFueVtdKTogeyBba2V5OiBzdHJpbmddOiBJbnQ4QXJyYXkgfSB7XG4gICAgcmV0dXJuIEtleVZhbHVlT2JqZWN0KGt2c0xpc3QsIEJ5dGVzVG9BcnJheSk7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBFVENEIFJFU1BPTlNFIENMQVNTRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgaGVhZGVyIG1ldGFkYXRhIG9mIGFuIEV0Y2QgcmVzcG9uc2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBIZWFkZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbmF0aXZlOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3RvcihuYXRpdmU6IGFueSkge1xuICAgICAgICB0aGlzLm5hdGl2ZSA9IG5hdGl2ZTtcbiAgICB9XG5cbiAgICAvKiogVGhlIHJldmlzaW9uIG9mIHRoZSBrZXktdmFsdWUgc3RvcmUgd2hlbiB0aGUgcmVxdWVzdCB3YXMgcHJvY2Vzc2VkLiAqL1xuICAgIHB1YmxpYyBnZXRSZXZpc2lvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmUuZ2V0UmV2aXNpb24oKTtcbiAgICB9XG5cbiAgICAvKiogVGhlIElEIG9mIHRoZSBjbHVzdGVyIHdoaWNoIHRoZSByZXF1ZXN0IHdhcyBzZW50IHRvLiAqL1xuICAgIHB1YmxpYyBnZXRDbHVzdGVySWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlLmdldENsdXN0ZXJJZCgpO1xuICAgIH1cblxuICAgIC8qKiBUaGUgSUQgb2YgdGhlIG1lbWJlciB3aGljaCB0aGUgcmVxdWVzdCB3YXMgaGFuZGxlZCBieS4gKi9cbiAgICBwdWJsaWMgZ2V0TWVtYmVySWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlLmdldE1lbWJlcklkKCk7XG4gICAgfVxuXG4gICAgLyoqIFRoZSBSYWZ0IHRlcm0uICovXG4gICAgcHVibGljIGdldFJhZnRUZXJtKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZS5nZXRSYWZ0VGVybSgpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSByZXNwb25zZSBvYmplY3QgZm9yIGEgR2V0IG9wZXJhdGlvbiBmcm9tIEV0Y2QuXG4gKi9cbmV4cG9ydCBjbGFzcyBHZXRSZXNwb25zZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBuYXRpdmU6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKG5hdGl2ZTogYW55KSB7XG4gICAgICAgIHRoaXMubmF0aXZlID0gbmF0aXZlO1xuICAgIH1cblxuICAgIC8qKiBSZXRyaWV2ZXMgdGhlIHJlc3BvbnNlIGhlYWRlciBjb250YWluaW5nIGNsdXN0ZXIgbWV0YWRhdGEuICovXG4gICAgcHVibGljIGdldEhlYWRlcigpOiBIZWFkZXIge1xuICAgICAgICBjb25zdCBuYXRpdmVIZWFkZXIgPSB0aGlzLm5hdGl2ZS5nZXRIZWFkZXIoKTtcbiAgICAgICAgcmV0dXJuIG5ldyBIZWFkZXIobmF0aXZlSGVhZGVyKTtcbiAgICB9XG5cbiAgICAvKiogUmV0cmlldmVzIHRoZSBLZXktVmFsdWUgcGFpcnMgd2l0aCB2YWx1ZXMgY29udmVydGVkIHRvIHN0cmluZ3MuICovXG4gICAgcHVibGljIGdldEt2c1N0cmluZygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICAgICAgcmV0dXJuIEtleVZhbHVlT2JqZWN0U3RyaW5nKHRoaXMubmF0aXZlLmdldEt2cygpKTtcbiAgICB9XG5cbiAgICAvKiogUmV0cmlldmVzIHRoZSBLZXktVmFsdWUgcGFpcnMgd2l0aCB2YWx1ZXMgY29udmVydGVkIHRvIEludDhBcnJheSAoYnl0ZSBhcnJheXMpLiAqL1xuICAgIHB1YmxpYyBnZXRLdnNCeXRlQXJyYXkoKTogeyBba2V5OiBzdHJpbmddOiBJbnQ4QXJyYXkgfSB7XG4gICAgICAgIHJldHVybiBLZXlWYWx1ZU9iamVjdEJ5dGVBcnJheSh0aGlzLm5hdGl2ZS5nZXRLdnMoKSk7XG4gICAgfVxuXG4gICAgLyoqIFJldHJpZXZlcyB0aGUgbnVtYmVyIG9mIEtleS1WYWx1ZSBwYWlycyByZXR1cm5lZC4gKi9cbiAgICBwdWJsaWMgZ2V0Q291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlLmdldENvdW50KCk7XG4gICAgfVxufVxuXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBFVENEIENMSUVOVCBGQUNBREVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ2xpZW50IGZhY2FkZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgRXRjZCBrZXktdmFsdWUgc3RvcmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBDbGllbnQge1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBuYXRpdmU6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLm5hdGl2ZSA9IEV0Y2RGYWNhZGUuZ2V0Q2xpZW50KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYSBibG9ja2luZyBHRVQgcmVxdWVzdCBvbiB0aGUgc3BlY2lmaWVkIGtleS5cbiAgICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgdG8gcmV0cmlldmUuXG4gICAgICogQHJldHVybnMgVGhlIHByb2Nlc3NlZCBHZXRSZXNwb25zZSBvYmplY3QuXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXQoa2V5OiBzdHJpbmcpOiBHZXRSZXNwb25zZSB7XG4gICAgICAgIC8vIEV0Y2QgY2xpZW50IHJldHVybnMgYSBDb21wbGV0YWJsZUZ1dHVyZSB3aGljaCBpcyBibG9ja2VkIGhlcmUgdXNpbmcgLmdldCgpXG4gICAgICAgIGNvbnN0IGV0Y2RDb21wbGV0YWJsZUZ1dHVyZSA9IHRoaXMubmF0aXZlLmdldChTdHJpbmdUb0J5dGVTZXF1ZW5jZShrZXkpKTtcbiAgICAgICAgY29uc3QgbmF0aXZlUmVzcG9uc2UgPSBldGNkQ29tcGxldGFibGVGdXR1cmUuZ2V0KCk7XG4gICAgICAgIHJldHVybiBuZXcgR2V0UmVzcG9uc2UobmF0aXZlUmVzcG9uc2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1dHMgKHdyaXRlcykgYSBzdHJpbmcgdmFsdWUgdG8gdGhlIHNwZWNpZmllZCBrZXkuXG4gICAgICogQHBhcmFtIGtleSBUaGUga2V5IHRvIHdyaXRlIHRvLlxuICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgc3RyaW5nIHZhbHVlLlxuICAgICAqL1xuICAgIHB1YmxpYyBwdXRTdHJpbmdWYWx1ZShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hdGl2ZS5wdXQoU3RyaW5nVG9CeXRlU2VxdWVuY2Uoa2V5KSwgU3RyaW5nVG9CeXRlU2VxdWVuY2UodmFsdWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQdXRzICh3cml0ZXMpIGEgYnl0ZSBhcnJheSB2YWx1ZSB0byB0aGUgc3BlY2lmaWVkIGtleS5cbiAgICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgdG8gd3JpdGUgdG8uXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSBJbnQ4QXJyYXkgKGJ5dGUgYXJyYXkpIHZhbHVlLlxuICAgICAqL1xuICAgIHB1YmxpYyBwdXRCeXRlQXJyYXlWYWx1ZShrZXk6IHN0cmluZywgdmFsdWU6IEludDhBcnJheSk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hdGl2ZS5wdXQoU3RyaW5nVG9CeXRlU2VxdWVuY2Uoa2V5KSwgQnl0ZUFycmF5VG9CeXRlU2VxdWVuY2UodmFsdWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIHJlc3BvbnNlIGhlYWRlciBtZXRhZGF0YSBmb3IgYSBrZXkuXG4gICAgICogQHBhcmFtIGtleSBUaGUga2V5IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIFRoZSB7QGxpbmsgSGVhZGVyfSBvYmplY3QuXG4gICAgICovXG4gICAgcHVibGljIGdldEhlYWRlcihrZXk6IHN0cmluZyk6IEhlYWRlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldChrZXkpLmdldEhlYWRlcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyB0aGUgS2V5LVZhbHVlIHBhaXJzIGFzIGEgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCBzdHJpbmcgdmFsdWVzLlxuICAgICAqIEBwYXJhbSBrZXkgVGhlIGtleSAob3Iga2V5IHByZWZpeCkgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMgQW4gb2JqZWN0IG1hcHBpbmcga2V5cyB0byBzdHJpbmcgdmFsdWVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRLdnNTdHJpbmdWYWx1ZShrZXk6IHN0cmluZyk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoa2V5KS5nZXRLdnNTdHJpbmcoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIEtleS1WYWx1ZSBwYWlycyBhcyBhIEphdmFTY3JpcHQgb2JqZWN0IHdpdGggSW50OEFycmF5IHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgKG9yIGtleSBwcmVmaXgpIHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIEFuIG9iamVjdCBtYXBwaW5nIGtleXMgdG8gSW50OEFycmF5IHZhbHVlcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0S3ZzQnl0ZUFycmF5VmFsdWUoa2V5OiBzdHJpbmcpOiB7IFtrZXk6IHN0cmluZ106IEludDhBcnJheSB9IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KGtleSkuZ2V0S3ZzQnl0ZUFycmF5KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBjb3VudCBvZiBLZXktVmFsdWUgcGFpcnMgbWF0Y2hpbmcgdGhlIGtleSAob3Iga2V5IHByZWZpeCkuXG4gICAgICogQHBhcmFtIGtleSBUaGUga2V5IChvciBrZXkgcHJlZml4KSB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyBUaGUgY291bnQgb2YgbWF0Y2hpbmcgZW50cmllcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q291bnQoa2V5OiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoa2V5KS5nZXRDb3VudCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgdGhlIHNwZWNpZmllZCBrZXkuXG4gICAgICogQHBhcmFtIGtleSBUaGUga2V5IHRvIGRlbGV0ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGVsZXRlKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmF0aXZlLmRlbGV0ZShTdHJpbmdUb0J5dGVTZXF1ZW5jZShrZXkpKTtcbiAgICB9XG59XG5cblxuLy8gQHRzLWlnbm9yZVxuaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7XG5cdC8v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
|
|
@@ -21,6 +21,14 @@ __export(ForbiddenError_exports, {
|
|
|
21
21
|
});
|
|
22
22
|
module.exports = __toCommonJS(ForbiddenError_exports);
|
|
23
23
|
class ForbiddenError extends Error {
|
|
24
|
+
/**
|
|
25
|
+
* The name of the error, set to "ForbiddenError".
|
|
26
|
+
*/
|
|
27
|
+
name = "ForbiddenError";
|
|
28
|
+
/**
|
|
29
|
+
* Captures the stack trace when the error is instantiated.
|
|
30
|
+
*/
|
|
31
|
+
stack = new Error().stack;
|
|
24
32
|
/**
|
|
25
33
|
* Creates an instance of ForbiddenError.
|
|
26
34
|
*
|
|
@@ -28,14 +36,6 @@ class ForbiddenError extends Error {
|
|
|
28
36
|
*/
|
|
29
37
|
constructor(message = "You don't have permission to access this resource") {
|
|
30
38
|
super(message);
|
|
31
|
-
/**
|
|
32
|
-
* The name of the error, set to "ForbiddenError".
|
|
33
|
-
*/
|
|
34
|
-
this.name = "ForbiddenError";
|
|
35
|
-
/**
|
|
36
|
-
* Captures the stack trace when the error is instantiated.
|
|
37
|
-
*/
|
|
38
|
-
this.stack = new Error().stack;
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2h0dHAvZXJyb3JzL0ZvcmJpZGRlbkVycm9yLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEN1c3RvbSBlcnJvciBjbGFzcyByZXByZXNlbnRpbmcgYSA0MDMgRm9yYmlkZGVuIHN0YXR1cywgaW5kaWNhdGluZ1xuICogdGhhdCB0aGUgdXNlciBkb2VzIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gYWNjZXNzIHRoZSByZXF1ZXN0ZWQgcmVzb3VyY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBGb3JiaWRkZW5FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgZXJyb3IsIHNldCB0byBcIkZvcmJpZGRlbkVycm9yXCIuXG4gICAgICovXG4gICAgcmVhZG9ubHkgbmFtZSA9IFwiRm9yYmlkZGVuRXJyb3JcIjtcbiAgICAvKipcbiAgICAgKiBDYXB0dXJlcyB0aGUgc3RhY2sgdHJhY2Ugd2hlbiB0aGUgZXJyb3IgaXMgaW5zdGFudGlhdGVkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN0YWNrID0gKG5ldyBFcnJvcigpKS5zdGFjaztcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgRm9yYmlkZGVuRXJyb3IuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS4gRGVmYXVsdHMgdG8gXCJZb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGFjY2VzcyB0aGlzIHJlc291cmNlXCIuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gXCJZb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGFjY2VzcyB0aGlzIHJlc291cmNlXCIpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgfVxufSJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlPLE1BQU0sdUJBQXVCLE1BQU07QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUk3QixPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJUCxRQUFTLElBQUksTUFBTSxFQUFHO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTy9CLFlBQVksVUFBa0IscURBQXFEO0FBQy9FLFVBQU0sT0FBTztBQUFBLEVBQ2pCO0FBQ0o7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -21,6 +21,14 @@ __export(ValidationError_exports, {
|
|
|
21
21
|
});
|
|
22
22
|
module.exports = __toCommonJS(ValidationError_exports);
|
|
23
23
|
class ValidationError extends Error {
|
|
24
|
+
/**
|
|
25
|
+
* The name of the error, set to "ValidationError".
|
|
26
|
+
*/
|
|
27
|
+
name = "ValidationError";
|
|
28
|
+
/**
|
|
29
|
+
* Captures the stack trace when the error is instantiated.
|
|
30
|
+
*/
|
|
31
|
+
stack = new Error().stack;
|
|
24
32
|
/**
|
|
25
33
|
* Creates an instance of ValidationError.
|
|
26
34
|
*
|
|
@@ -28,14 +36,6 @@ class ValidationError extends Error {
|
|
|
28
36
|
*/
|
|
29
37
|
constructor(message) {
|
|
30
38
|
super(message);
|
|
31
|
-
/**
|
|
32
|
-
* The name of the error, set to "ValidationError".
|
|
33
|
-
*/
|
|
34
|
-
this.name = "ValidationError";
|
|
35
|
-
/**
|
|
36
|
-
* Captures the stack trace when the error is instantiated.
|
|
37
|
-
*/
|
|
38
|
-
this.stack = new Error().stack;
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2h0dHAvZXJyb3JzL1ZhbGlkYXRpb25FcnJvci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDdXN0b20gZXJyb3IgY2xhc3MgdXNlZCBmb3IgcmVwcmVzZW50aW5nIGZhaWx1cmVzIGR1ZSB0byBpbnZhbGlkIGlucHV0XG4gKiBvciBkYXRhIHRoYXQgdmlvbGF0ZXMgZG9tYWluLXNwZWNpZmljIHZhbGlkYXRpb24gcnVsZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIGVycm9yLCBzZXQgdG8gXCJWYWxpZGF0aW9uRXJyb3JcIi5cbiAgICAgKi9cbiAgICByZWFkb25seSBuYW1lID0gXCJWYWxpZGF0aW9uRXJyb3JcIjtcbiAgICAvKipcbiAgICAgKiBDYXB0dXJlcyB0aGUgc3RhY2sgdHJhY2Ugd2hlbiB0aGUgZXJyb3IgaXMgaW5zdGFudGlhdGVkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN0YWNrID0gKG5ldyBFcnJvcigpKS5zdGFjaztcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgVmFsaWRhdGlvbkVycm9yLlxuICAgICAqXG4gICAgICogQHBhcmFtIG1lc3NhZ2UgVGhlIGRldGFpbGVkIG1lc3NhZ2UgZGVzY3JpYmluZyB0aGUgdmFsaWRhdGlvbiBmYWlsdXJlLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB9XG59Il0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSU8sTUFBTSx3QkFBd0IsTUFBTTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSTlCLE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUlQLFFBQVMsSUFBSSxNQUFNLEVBQUc7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPL0IsWUFBWSxTQUFpQjtBQUN6QixVQUFNLE9BQU87QUFBQSxFQUNqQjtBQUNKOyIsCiAgIm5hbWVzIjogW10KfQo=
|
package/dist/cjs/http/request.js
CHANGED
|
@@ -23,6 +23,7 @@ module.exports = __toCommonJS(request_exports);
|
|
|
23
23
|
var import_streams = require("@aerokit/sdk/io/streams");
|
|
24
24
|
const HttpRequestFacade = Java.type("org.eclipse.dirigible.components.api.http.HttpRequestFacade");
|
|
25
25
|
class Request {
|
|
26
|
+
static TEXT_DATA;
|
|
26
27
|
/**
|
|
27
28
|
* Determines whether the current thread is handling a valid HTTP request.
|
|
28
29
|
*
|
|
@@ -278,4 +279,4 @@ class Request {
|
|
|
278
279
|
if (typeof module !== "undefined") {
|
|
279
280
|
module.exports = Request;
|
|
280
281
|
}
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2h0dHAvcmVxdWVzdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBUaGUgUmVxdWVzdCBBUEkgdW5kZXIgdGhlIEhUVFAgbW9kdWxlIGlzIHJlc3BvbnNpYmxlIGZvclxuICogbWFuYWdpbmcgc3RhbmRhcmQgSFRUUCByZXF1ZXN0IHBhcmFtZXRlcnMsIGhlYWRlcnMsIGNvb2tpZXMsXG4gKiBhbmQgcmVxdWVzdCBtZXRhZGF0YSBwcm92aWRlZCB0byBzZXJ2ZXItc2lkZSBzY3JpcHRpbmcgc2VydmljZXMuXG4gKlxuICovXG5cbmltcG9ydCB7IElucHV0U3RyZWFtLCBTdHJlYW1zIH0gZnJvbSBcIkBhZXJva2l0L3Nkay9pby9zdHJlYW1zXCI7XG5pbXBvcnQgeyBDb29raWUgfSBmcm9tIFwiLi9yZXNwb25zZVwiO1xuXG5jb25zdCBIdHRwUmVxdWVzdEZhY2FkZSA9IEphdmEudHlwZShcIm9yZy5lY2xpcHNlLmRpcmlnaWJsZS5jb21wb25lbnRzLmFwaS5odHRwLkh0dHBSZXF1ZXN0RmFjYWRlXCIpO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIEhUVFAgUmVxdWVzdCBvYmplY3QgYXZhaWxhYmxlIHdpdGhpbiBhIHNlcnZpY2UgZXhlY3V0aW9uXG4gKiBjb250ZXh0LiBJdCBwcm92aWRlcyBhY2Nlc3MgdG8gSFRUUCBtZXRhZGF0YSwgcXVlcnkgcGFyYW1ldGVycywgcmVxdWVzdFxuICogYm9keSBjb250ZW50LCBjb29raWVzLCBhbmQgc2VjdXJpdHkgaW5mb3JtYXRpb24uXG4gKlxuICogQWxsIGZ1bmN0aW9ucyBpbiB0aGlzIGNsYXNzIGFyZSBzdGF0aWM6IG5vIGluc3RhbmNlIG9mIGBSZXF1ZXN0YFxuICogbmVlZHMgdG8gYmUgY3JlYXRlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlcXVlc3Qge1xuXG4gICAgcHJpdmF0ZSBzdGF0aWMgVEVYVF9EQVRBOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGN1cnJlbnQgdGhyZWFkIGlzIGhhbmRsaW5nIGEgdmFsaWQgSFRUUCByZXF1ZXN0LlxuICAgICAqXG4gICAgICogQHJldHVybnMgYHRydWVgIGlmIGNhbGxlZCBpbiBhIHZhbGlkIEhUVFAgcmVxdWVzdCBjb250ZXh0LCBvdGhlcndpc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGlzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5pc1ZhbGlkKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIEhUVFAgbWV0aG9kIChHRVQsIFBPU1QsIFBVVCwgREVMRVRFLCBldGMuKS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldE1ldGhvZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0TWV0aG9kKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIGF1dGhlbnRpY2F0ZWQgcmVtb3RlIHVzZXIgbmFtZSBpZiBhdmFpbGFibGUuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRSZW1vdGVVc2VyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRSZW1vdGVVc2VyKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIHBvcnRpb24gb2YgdGhlIHJlcXVlc3QgcGF0aCBmb2xsb3dpbmcgdGhlIHNlcnZsZXQgcGF0aC4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFBhdGhJbmZvKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRQYXRoSW5mbygpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSB0cmFuc2xhdGVkIGZpbGUgc3lzdGVtIHBhdGggZm9yIHRoZSByZXF1ZXN0LiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UGF0aFRyYW5zbGF0ZWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldFBhdGhUcmFuc2xhdGVkKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgYSBzcGVjaWZpYyBIVFRQIGhlYWRlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lIC0gSGVhZGVyIG5hbWUgdG8gcmV0cmlldmUuXG4gICAgICogQHJldHVybnMgVGhlIGhlYWRlciB2YWx1ZSBvciBgdW5kZWZpbmVkYCBpZiBub3QgZm91bmQuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRIZWFkZXIobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgaGVhZGVyID0gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0SGVhZGVyKG5hbWUpO1xuICAgICAgICByZXR1cm4gaGVhZGVyID8gaGVhZGVyIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSByZW1vdGUgdXNlciBoYXMgdGhlIGdpdmVuIHJvbGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm9sZSAtIFRoZSByb2xlIG5hbWUgdG8gY2hlY2suXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBpc1VzZXJJblJvbGUocm9sZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5pc1VzZXJJblJvbGUocm9sZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIHJlcXVlc3QgYXR0cmlidXRlIHZhbHVlIHByZXZpb3VzbHkgYXNzb2NpYXRlZCB3aXRoIHRoZSByZXF1ZXN0LlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgLSBUaGUgYXR0cmlidXRlIG5hbWUuXG4gICAgICogQHJldHVybnMgQSBzdHJpbmcgdmFsdWUgb3IgYHVuZGVmaW5lZGAuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRBdHRyaWJ1dGUobmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlID0gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0QXR0cmlidXRlKG5hbWUpO1xuICAgICAgICByZXR1cm4gYXR0cmlidXRlID8gYXR0cmlidXRlIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIGlmIGtub3duIChCQVNJQywgQ0xJRU5UX0NFUlQsIGV0Yy4pLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0QXV0aFR5cGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldEF1dGhUeXBlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbGwgY29va2llcyBzZW50IHdpdGggdGhlIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBDb29raWUgb2JqZWN0cy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvb2tpZXMoKTogQ29va2llW10ge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShIdHRwUmVxdWVzdEZhY2FkZS5nZXRDb29raWVzKCkpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIGFsbCBhdmFpbGFibGUgcmVxdWVzdCBhdHRyaWJ1dGUgbmFtZXMuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRBdHRyaWJ1dGVOYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKEh0dHBSZXF1ZXN0RmFjYWRlLmdldEF0dHJpYnV0ZU5hbWVzKCkpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgdXNlZCBpbiB0aGUgcmVxdWVzdCBib2R5LiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0Q2hhcmFjdGVyRW5jb2RpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldENoYXJhY3RlckVuY29kaW5nKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIHNpemUgb2YgdGhlIHJlcXVlc3QgYm9keSBpbiBieXRlcywgaWYga25vd24uICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRDb250ZW50TGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRDb250ZW50TGVuZ3RoKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbGwgdmFsdWVzIG9mIGEgc3BlY2lmaWMgaGVhZGVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgLSBIZWFkZXIgbmFtZSB0byByZXRyaWV2ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEhlYWRlcnMobmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShIdHRwUmVxdWVzdEZhY2FkZS5nZXRIZWFkZXJzKG5hbWUpKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgTUlNRSBjb250ZW50IHR5cGUgb2YgdGhlIHJlcXVlc3QgYm9keS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnRlbnRUeXBlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRDb250ZW50VHlwZSgpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSByYXcgcmVxdWVzdCBib2R5IGFzIGEgYnl0ZSBhcnJheS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEJ5dGVzKCk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSHR0cFJlcXVlc3RGYWNhZGUuZ2V0Qnl0ZXMoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgcmVxdWVzdCBib2R5IGFzIHRleHQuIFRoaXMgaXMgY29tcHV0ZWQgb25jZSBhbmQgY2FjaGVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0VGV4dCgpIHtcbiAgICAgICAgaWYgKCFSZXF1ZXN0LlRFWFRfREFUQSkge1xuICAgICAgICAgICAgUmVxdWVzdC5URVhUX0RBVEEgPSBIdHRwUmVxdWVzdEZhY2FkZS5nZXRUZXh0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFJlcXVlc3QuVEVYVF9EQVRBO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHJlcXVlc3QgYm9keSBwYXJzZWQgYXMgSlNPTiBpZiB2YWxpZC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEEgSlNPTiBvYmplY3Qgb3IgYHVuZGVmaW5lZGAgaWYgcGFyc2luZyBmYWlscy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGpzb24oKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBSZXF1ZXN0LmdldEpTT04oKTtcbiAgICB9XG5cbiAgICAvKiogU2FtZSBhcyBqc29uKCk7IGV4cGxpY2l0IGZvcm0uICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRKU09OKCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCB1bmRlZmluZWQge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoUmVxdWVzdC5nZXRUZXh0KCkpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgYSByZXF1ZXN0IHBhcmFtZXRlciB2YWx1ZS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFBhcmFtZXRlcihuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0UGFyYW1ldGVyKG5hbWUpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIGEgbWFwIG9mIHJlcXVlc3QgcGFyYW1ldGVycyB0byBhcnJheXMgb2YgdmFsdWVzLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UGFyYW1ldGVycygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0ge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShIdHRwUmVxdWVzdEZhY2FkZS5nZXRQYXJhbWV0ZXJzKCkpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBhbGxvY2F0ZWQgcmVxdWVzdCByZXNvdXJjZSBwYXRoLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UmVzb3VyY2VQYXRoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRSZXNvdXJjZVBhdGgoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyBhbGwgaGVhZGVyIG5hbWVzLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0SGVhZGVyTmFtZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShIdHRwUmVxdWVzdEZhY2FkZS5nZXRIZWFkZXJOYW1lcygpKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyBhbGwgcGFyYW1ldGVyIG5hbWVzLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UGFyYW1ldGVyTmFtZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShIdHRwUmVxdWVzdEZhY2FkZS5nZXRQYXJhbWV0ZXJOYW1lcygpKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyBhbGwgdmFsdWVzIGZvciBhIGdpdmVuIHBhcmFtZXRlciBuYW1lLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UGFyYW1ldGVyVmFsdWVzKG5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSHR0cFJlcXVlc3RGYWNhZGUuZ2V0UGFyYW1ldGVyVmFsdWVzKG5hbWUpKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgSFRUUCBwcm90b2NvbCB2ZXJzaW9uLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UHJvdG9jb2woKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldFByb3RvY29sKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIHRyYW5zcG9ydCBzY2hlbWUgKGUuZy4sIGh0dHAsIGh0dHBzKS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFNjaGVtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0U2NoZW1lKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIGNvbnRleHQgcGF0aCBvZiB0aGUgcmVxdWVzdC4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnRleHRQYXRoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRDb250ZXh0UGF0aCgpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBzZXJ2ZXIgaG9zdCBuYW1lLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0U2VydmVyTmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0U2VydmVyTmFtZSgpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBzZXJ2ZXIgcG9ydCBudW1iZXIuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRTZXJ2ZXJQb3J0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRTZXJ2ZXJQb3J0KCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIGZ1bGwgcmF3IHF1ZXJ5IHN0cmluZy4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFF1ZXJ5U3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRRdWVyeVN0cmluZygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhcnNlcyB0aGUgcXVlcnkgc3RyaW5nIGFuZCByZXR1cm5zIGEgbWFwIG9mIHBhcmFtZXRlciBrZXlzIHRvIHZhbHVlcy5cbiAgICAgKiBJZiB0aGUgc2FtZSBrZXkgYXBwZWFycyBtdWx0aXBsZSB0aW1lcywgdmFsdWVzIGFyZSBjb2xsZWN0ZWQgaW50byBhcnJheXMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRRdWVyeVBhcmFtZXRlcnNNYXAoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9IHtcbiAgICAgICAgbGV0IHF1ZXJ5U3RyaW5nID0gUmVxdWVzdC5nZXRRdWVyeVN0cmluZygpO1xuICAgICAgICBpZiAoIXF1ZXJ5U3RyaW5nKVxuICAgICAgICAgICAgcmV0dXJuIHt9XG5cbiAgICAgICAgcXVlcnlTdHJpbmcgPSBkZWNvZGVVUkkocXVlcnlTdHJpbmcpO1xuICAgICAgICBsZXQgcXVlcnlTdHJpbmdTZWdtZW50cyA9IHF1ZXJ5U3RyaW5nLnNwbGl0KCcmJyk7XG5cbiAgICAgICAgbGV0IHF1ZXJ5TWFwOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgICAgIHF1ZXJ5U3RyaW5nU2VnbWVudHMuZm9yRWFjaChmdW5jdGlvbiAoc2VnKSB7XG4gICAgICAgICAgICBzZWcgPSBzZWcucmVwbGFjZSgnYW1wOycsICcnKTtcbiAgICAgICAgICAgIGNvbnN0IGt2ID0gc2VnLnNwbGl0KCc9Jyk7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBrdlswXS50cmltKCk7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGt2WzFdID09PSB1bmRlZmluZWQgPyB0cnVlIDoga3ZbMV0udHJpbSgpO1xuICAgICAgICAgICAgaWYgKHF1ZXJ5TWFwW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShxdWVyeU1hcFtrZXldKSlcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlNYXBba2V5XSA9IFtxdWVyeU1hcFtrZXldXTtcbiAgICAgICAgICAgICAgICBxdWVyeU1hcFtrZXldLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBxdWVyeU1hcFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcXVlcnlNYXA7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIHJlbW90ZSBjbGllbnQgSVAgYWRkcmVzcy4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFJlbW90ZUFkZHJlc3MoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldFJlbW90ZUFkZHJlc3MoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgcmVtb3RlIGNsaWVudCBob3N0IG5hbWUuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRSZW1vdGVIb3N0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRSZW1vdGVIb3N0KCk7XG4gICAgfVxuXG4gICAgLyoqIEFzc2lnbnMgYSBuZXcgYXR0cmlidXRlIHRvIHRoZSByZXF1ZXN0LiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgc2V0QXR0cmlidXRlKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBIdHRwUmVxdWVzdEZhY2FkZS5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBSZW1vdmVzIGFuIGF0dHJpYnV0ZSBmcm9tIHRoZSByZXF1ZXN0LiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcmVtb3ZlQXR0cmlidXRlKG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBIdHRwUmVxdWVzdEZhY2FkZS5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIGNsaWVudCBsb2NhbGUgcHJlZmVyZW5jZXMuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRMb2NhbGUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSHR0cFJlcXVlc3RGYWNhZGUuZ2V0TG9jYWxlKCkpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBmdWxsIHJlcXVlc3QgVVJJLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UmVxdWVzdFVSSSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0UmVxdWVzdFVSSSgpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgcmVxdWVzdCB3YXMgbWFkZSBvdmVyIEhUVFBTLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgaXNTZWN1cmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5pc1NlY3VyZSgpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBmdWxsIHJlcXVlc3QgVVJMIGluY2x1ZGluZyBwcm90b2NvbCBhbmQgaG9zdC4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFJlcXVlc3RVUkwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldFJlcXVlc3RVUkwoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgaW50ZXJuYWwgc2VydmljZSBwYXRoIGZvciByb3V0aW5nLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0U2VydmljZVBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldFNlcnZpY2VQYXRoKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIHJlbW90ZSBjbGllbnQgcG9ydCBudW1iZXIuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRSZW1vdGVQb3J0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRSZW1vdGVQb3J0KCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIGxvY2FsIG5ldHdvcmsgaG9zdCBuYW1lLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0TG9jYWxOYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRMb2NhbE5hbWUoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgbG9jYWwgSVAgYWRkcmVzcy4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldExvY2FsQWRkcmVzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0TG9jYWxBZGRyZXNzKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIHNlcnZlciBsb2NhbCBwb3J0IG51bWJlciBoYW5kbGluZyB0aGUgcmVxdWVzdC4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldExvY2FsUG9ydCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0TG9jYWxQb3J0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgcmVxdWVzdCBib2R5IGFzIGEgYmluYXJ5IGlucHV0IHN0cmVhbS5cbiAgICAgKlxuICAgICAqIFVzZWZ1bCBmb3IgcHJvY2Vzc2luZyBiaW5hcnkgdXBsb2Fkcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldElucHV0U3RyZWFtKCk6IElucHV0U3RyZWFtIHtcbiAgICAgICAgcmV0dXJuIFN0cmVhbXMuY3JlYXRlSW5wdXRTdHJlYW0oSHR0cFJlcXVlc3RGYWNhZGUuZ2V0SW5wdXRTdHJlYW0oKSk7XG4gICAgfVxufVxuXG4vLyBAdHMtaWdub3JlXG5pZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcpIHtcblx0Ly8gQHRzLWlnbm9yZVxuXHRtb2R1bGUuZXhwb3J0cyA9IFJlcXVlc3Q7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7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
|
|
282
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2h0dHAvcmVxdWVzdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBUaGUgUmVxdWVzdCBBUEkgdW5kZXIgdGhlIEhUVFAgbW9kdWxlIGlzIHJlc3BvbnNpYmxlIGZvclxuICogbWFuYWdpbmcgc3RhbmRhcmQgSFRUUCByZXF1ZXN0IHBhcmFtZXRlcnMsIGhlYWRlcnMsIGNvb2tpZXMsXG4gKiBhbmQgcmVxdWVzdCBtZXRhZGF0YSBwcm92aWRlZCB0byBzZXJ2ZXItc2lkZSBzY3JpcHRpbmcgc2VydmljZXMuXG4gKlxuICovXG5cbmltcG9ydCB7IElucHV0U3RyZWFtLCBTdHJlYW1zIH0gZnJvbSBcIkBhZXJva2l0L3Nkay9pby9zdHJlYW1zXCI7XG5pbXBvcnQgeyBDb29raWUgfSBmcm9tIFwiLi9yZXNwb25zZVwiO1xuXG5jb25zdCBIdHRwUmVxdWVzdEZhY2FkZSA9IEphdmEudHlwZShcIm9yZy5lY2xpcHNlLmRpcmlnaWJsZS5jb21wb25lbnRzLmFwaS5odHRwLkh0dHBSZXF1ZXN0RmFjYWRlXCIpO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIEhUVFAgUmVxdWVzdCBvYmplY3QgYXZhaWxhYmxlIHdpdGhpbiBhIHNlcnZpY2UgZXhlY3V0aW9uXG4gKiBjb250ZXh0LiBJdCBwcm92aWRlcyBhY2Nlc3MgdG8gSFRUUCBtZXRhZGF0YSwgcXVlcnkgcGFyYW1ldGVycywgcmVxdWVzdFxuICogYm9keSBjb250ZW50LCBjb29raWVzLCBhbmQgc2VjdXJpdHkgaW5mb3JtYXRpb24uXG4gKlxuICogQWxsIGZ1bmN0aW9ucyBpbiB0aGlzIGNsYXNzIGFyZSBzdGF0aWM6IG5vIGluc3RhbmNlIG9mIGBSZXF1ZXN0YFxuICogbmVlZHMgdG8gYmUgY3JlYXRlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlcXVlc3Qge1xuXG4gICAgcHJpdmF0ZSBzdGF0aWMgVEVYVF9EQVRBOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGN1cnJlbnQgdGhyZWFkIGlzIGhhbmRsaW5nIGEgdmFsaWQgSFRUUCByZXF1ZXN0LlxuICAgICAqXG4gICAgICogQHJldHVybnMgYHRydWVgIGlmIGNhbGxlZCBpbiBhIHZhbGlkIEhUVFAgcmVxdWVzdCBjb250ZXh0LCBvdGhlcndpc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGlzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5pc1ZhbGlkKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIEhUVFAgbWV0aG9kIChHRVQsIFBPU1QsIFBVVCwgREVMRVRFLCBldGMuKS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldE1ldGhvZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0TWV0aG9kKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIGF1dGhlbnRpY2F0ZWQgcmVtb3RlIHVzZXIgbmFtZSBpZiBhdmFpbGFibGUuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRSZW1vdGVVc2VyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRSZW1vdGVVc2VyKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIHBvcnRpb24gb2YgdGhlIHJlcXVlc3QgcGF0aCBmb2xsb3dpbmcgdGhlIHNlcnZsZXQgcGF0aC4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFBhdGhJbmZvKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRQYXRoSW5mbygpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSB0cmFuc2xhdGVkIGZpbGUgc3lzdGVtIHBhdGggZm9yIHRoZSByZXF1ZXN0LiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UGF0aFRyYW5zbGF0ZWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldFBhdGhUcmFuc2xhdGVkKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgYSBzcGVjaWZpYyBIVFRQIGhlYWRlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lIC0gSGVhZGVyIG5hbWUgdG8gcmV0cmlldmUuXG4gICAgICogQHJldHVybnMgVGhlIGhlYWRlciB2YWx1ZSBvciBgdW5kZWZpbmVkYCBpZiBub3QgZm91bmQuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRIZWFkZXIobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgaGVhZGVyID0gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0SGVhZGVyKG5hbWUpO1xuICAgICAgICByZXR1cm4gaGVhZGVyID8gaGVhZGVyIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSByZW1vdGUgdXNlciBoYXMgdGhlIGdpdmVuIHJvbGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm9sZSAtIFRoZSByb2xlIG5hbWUgdG8gY2hlY2suXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBpc1VzZXJJblJvbGUocm9sZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5pc1VzZXJJblJvbGUocm9sZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIHJlcXVlc3QgYXR0cmlidXRlIHZhbHVlIHByZXZpb3VzbHkgYXNzb2NpYXRlZCB3aXRoIHRoZSByZXF1ZXN0LlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgLSBUaGUgYXR0cmlidXRlIG5hbWUuXG4gICAgICogQHJldHVybnMgQSBzdHJpbmcgdmFsdWUgb3IgYHVuZGVmaW5lZGAuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRBdHRyaWJ1dGUobmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlID0gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0QXR0cmlidXRlKG5hbWUpO1xuICAgICAgICByZXR1cm4gYXR0cmlidXRlID8gYXR0cmlidXRlIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIGlmIGtub3duIChCQVNJQywgQ0xJRU5UX0NFUlQsIGV0Yy4pLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0QXV0aFR5cGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldEF1dGhUeXBlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbGwgY29va2llcyBzZW50IHdpdGggdGhlIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBDb29raWUgb2JqZWN0cy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvb2tpZXMoKTogQ29va2llW10ge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShIdHRwUmVxdWVzdEZhY2FkZS5nZXRDb29raWVzKCkpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIGFsbCBhdmFpbGFibGUgcmVxdWVzdCBhdHRyaWJ1dGUgbmFtZXMuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRBdHRyaWJ1dGVOYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKEh0dHBSZXF1ZXN0RmFjYWRlLmdldEF0dHJpYnV0ZU5hbWVzKCkpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgdXNlZCBpbiB0aGUgcmVxdWVzdCBib2R5LiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0Q2hhcmFjdGVyRW5jb2RpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldENoYXJhY3RlckVuY29kaW5nKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIHNpemUgb2YgdGhlIHJlcXVlc3QgYm9keSBpbiBieXRlcywgaWYga25vd24uICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRDb250ZW50TGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRDb250ZW50TGVuZ3RoKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbGwgdmFsdWVzIG9mIGEgc3BlY2lmaWMgaGVhZGVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgLSBIZWFkZXIgbmFtZSB0byByZXRyaWV2ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEhlYWRlcnMobmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShIdHRwUmVxdWVzdEZhY2FkZS5nZXRIZWFkZXJzKG5hbWUpKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgTUlNRSBjb250ZW50IHR5cGUgb2YgdGhlIHJlcXVlc3QgYm9keS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnRlbnRUeXBlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRDb250ZW50VHlwZSgpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSByYXcgcmVxdWVzdCBib2R5IGFzIGEgYnl0ZSBhcnJheS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEJ5dGVzKCk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSHR0cFJlcXVlc3RGYWNhZGUuZ2V0Qnl0ZXMoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgcmVxdWVzdCBib2R5IGFzIHRleHQuIFRoaXMgaXMgY29tcHV0ZWQgb25jZSBhbmQgY2FjaGVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0VGV4dCgpIHtcbiAgICAgICAgaWYgKCFSZXF1ZXN0LlRFWFRfREFUQSkge1xuICAgICAgICAgICAgUmVxdWVzdC5URVhUX0RBVEEgPSBIdHRwUmVxdWVzdEZhY2FkZS5nZXRUZXh0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFJlcXVlc3QuVEVYVF9EQVRBO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHJlcXVlc3QgYm9keSBwYXJzZWQgYXMgSlNPTiBpZiB2YWxpZC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEEgSlNPTiBvYmplY3Qgb3IgYHVuZGVmaW5lZGAgaWYgcGFyc2luZyBmYWlscy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGpzb24oKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBSZXF1ZXN0LmdldEpTT04oKTtcbiAgICB9XG5cbiAgICAvKiogU2FtZSBhcyBqc29uKCk7IGV4cGxpY2l0IGZvcm0uICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRKU09OKCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCB1bmRlZmluZWQge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoUmVxdWVzdC5nZXRUZXh0KCkpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgYSByZXF1ZXN0IHBhcmFtZXRlciB2YWx1ZS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFBhcmFtZXRlcihuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0UGFyYW1ldGVyKG5hbWUpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIGEgbWFwIG9mIHJlcXVlc3QgcGFyYW1ldGVycyB0byBhcnJheXMgb2YgdmFsdWVzLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UGFyYW1ldGVycygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0ge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShIdHRwUmVxdWVzdEZhY2FkZS5nZXRQYXJhbWV0ZXJzKCkpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBhbGxvY2F0ZWQgcmVxdWVzdCByZXNvdXJjZSBwYXRoLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UmVzb3VyY2VQYXRoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRSZXNvdXJjZVBhdGgoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyBhbGwgaGVhZGVyIG5hbWVzLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0SGVhZGVyTmFtZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShIdHRwUmVxdWVzdEZhY2FkZS5nZXRIZWFkZXJOYW1lcygpKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyBhbGwgcGFyYW1ldGVyIG5hbWVzLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UGFyYW1ldGVyTmFtZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShIdHRwUmVxdWVzdEZhY2FkZS5nZXRQYXJhbWV0ZXJOYW1lcygpKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyBhbGwgdmFsdWVzIGZvciBhIGdpdmVuIHBhcmFtZXRlciBuYW1lLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UGFyYW1ldGVyVmFsdWVzKG5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSHR0cFJlcXVlc3RGYWNhZGUuZ2V0UGFyYW1ldGVyVmFsdWVzKG5hbWUpKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgSFRUUCBwcm90b2NvbCB2ZXJzaW9uLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UHJvdG9jb2woKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldFByb3RvY29sKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIHRyYW5zcG9ydCBzY2hlbWUgKGUuZy4sIGh0dHAsIGh0dHBzKS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFNjaGVtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0U2NoZW1lKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIGNvbnRleHQgcGF0aCBvZiB0aGUgcmVxdWVzdC4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnRleHRQYXRoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRDb250ZXh0UGF0aCgpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBzZXJ2ZXIgaG9zdCBuYW1lLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0U2VydmVyTmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0U2VydmVyTmFtZSgpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBzZXJ2ZXIgcG9ydCBudW1iZXIuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRTZXJ2ZXJQb3J0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRTZXJ2ZXJQb3J0KCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIGZ1bGwgcmF3IHF1ZXJ5IHN0cmluZy4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFF1ZXJ5U3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRRdWVyeVN0cmluZygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhcnNlcyB0aGUgcXVlcnkgc3RyaW5nIGFuZCByZXR1cm5zIGEgbWFwIG9mIHBhcmFtZXRlciBrZXlzIHRvIHZhbHVlcy5cbiAgICAgKiBJZiB0aGUgc2FtZSBrZXkgYXBwZWFycyBtdWx0aXBsZSB0aW1lcywgdmFsdWVzIGFyZSBjb2xsZWN0ZWQgaW50byBhcnJheXMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRRdWVyeVBhcmFtZXRlcnNNYXAoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9IHtcbiAgICAgICAgbGV0IHF1ZXJ5U3RyaW5nID0gUmVxdWVzdC5nZXRRdWVyeVN0cmluZygpO1xuICAgICAgICBpZiAoIXF1ZXJ5U3RyaW5nKVxuICAgICAgICAgICAgcmV0dXJuIHt9XG5cbiAgICAgICAgcXVlcnlTdHJpbmcgPSBkZWNvZGVVUkkocXVlcnlTdHJpbmcpO1xuICAgICAgICBsZXQgcXVlcnlTdHJpbmdTZWdtZW50cyA9IHF1ZXJ5U3RyaW5nLnNwbGl0KCcmJyk7XG5cbiAgICAgICAgbGV0IHF1ZXJ5TWFwOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgICAgIHF1ZXJ5U3RyaW5nU2VnbWVudHMuZm9yRWFjaChmdW5jdGlvbiAoc2VnKSB7XG4gICAgICAgICAgICBzZWcgPSBzZWcucmVwbGFjZSgnYW1wOycsICcnKTtcbiAgICAgICAgICAgIGNvbnN0IGt2ID0gc2VnLnNwbGl0KCc9Jyk7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBrdlswXS50cmltKCk7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGt2WzFdID09PSB1bmRlZmluZWQgPyB0cnVlIDoga3ZbMV0udHJpbSgpO1xuICAgICAgICAgICAgaWYgKHF1ZXJ5TWFwW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShxdWVyeU1hcFtrZXldKSlcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlNYXBba2V5XSA9IFtxdWVyeU1hcFtrZXldXTtcbiAgICAgICAgICAgICAgICBxdWVyeU1hcFtrZXldLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBxdWVyeU1hcFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcXVlcnlNYXA7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIHJlbW90ZSBjbGllbnQgSVAgYWRkcmVzcy4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFJlbW90ZUFkZHJlc3MoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldFJlbW90ZUFkZHJlc3MoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgcmVtb3RlIGNsaWVudCBob3N0IG5hbWUuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRSZW1vdGVIb3N0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRSZW1vdGVIb3N0KCk7XG4gICAgfVxuXG4gICAgLyoqIEFzc2lnbnMgYSBuZXcgYXR0cmlidXRlIHRvIHRoZSByZXF1ZXN0LiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgc2V0QXR0cmlidXRlKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBIdHRwUmVxdWVzdEZhY2FkZS5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBSZW1vdmVzIGFuIGF0dHJpYnV0ZSBmcm9tIHRoZSByZXF1ZXN0LiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcmVtb3ZlQXR0cmlidXRlKG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBIdHRwUmVxdWVzdEZhY2FkZS5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIGNsaWVudCBsb2NhbGUgcHJlZmVyZW5jZXMuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRMb2NhbGUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSHR0cFJlcXVlc3RGYWNhZGUuZ2V0TG9jYWxlKCkpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBmdWxsIHJlcXVlc3QgVVJJLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UmVxdWVzdFVSSSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0UmVxdWVzdFVSSSgpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgcmVxdWVzdCB3YXMgbWFkZSBvdmVyIEhUVFBTLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgaXNTZWN1cmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5pc1NlY3VyZSgpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBmdWxsIHJlcXVlc3QgVVJMIGluY2x1ZGluZyBwcm90b2NvbCBhbmQgaG9zdC4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFJlcXVlc3RVUkwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldFJlcXVlc3RVUkwoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgaW50ZXJuYWwgc2VydmljZSBwYXRoIGZvciByb3V0aW5nLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0U2VydmljZVBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldFNlcnZpY2VQYXRoKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIHJlbW90ZSBjbGllbnQgcG9ydCBudW1iZXIuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRSZW1vdGVQb3J0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRSZW1vdGVQb3J0KCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIGxvY2FsIG5ldHdvcmsgaG9zdCBuYW1lLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0TG9jYWxOYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRMb2NhbE5hbWUoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgbG9jYWwgSVAgYWRkcmVzcy4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldExvY2FsQWRkcmVzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0TG9jYWxBZGRyZXNzKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIHNlcnZlciBsb2NhbCBwb3J0IG51bWJlciBoYW5kbGluZyB0aGUgcmVxdWVzdC4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldExvY2FsUG9ydCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0TG9jYWxQb3J0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgcmVxdWVzdCBib2R5IGFzIGEgYmluYXJ5IGlucHV0IHN0cmVhbS5cbiAgICAgKlxuICAgICAqIFVzZWZ1bCBmb3IgcHJvY2Vzc2luZyBiaW5hcnkgdXBsb2Fkcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldElucHV0U3RyZWFtKCk6IElucHV0U3RyZWFtIHtcbiAgICAgICAgcmV0dXJuIFN0cmVhbXMuY3JlYXRlSW5wdXRTdHJlYW0oSHR0cFJlcXVlc3RGYWNhZGUuZ2V0SW5wdXRTdHJlYW0oKSk7XG4gICAgfVxufVxuXG4vLyBAdHMtaWdub3JlXG5pZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcpIHtcblx0Ly8gQHRzLWlnbm9yZVxuXHRtb2R1bGUuZXhwb3J0cyA9IFJlcXVlc3Q7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQSxxQkFBcUM7QUFHckMsTUFBTSxvQkFBb0IsS0FBSyxLQUFLLDZEQUE2RDtBQVUxRixNQUFNLFFBQVE7QUFBQSxFQUVqQixPQUFlO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT2YsT0FBYyxVQUFtQjtBQUM3QixXQUFPLGtCQUFrQixRQUFRO0FBQUEsRUFDckM7QUFBQTtBQUFBLEVBR0EsT0FBYyxZQUFvQjtBQUM5QixXQUFPLGtCQUFrQixVQUFVO0FBQUEsRUFDdkM7QUFBQTtBQUFBLEVBR0EsT0FBYyxnQkFBd0I7QUFDbEMsV0FBTyxrQkFBa0IsY0FBYztBQUFBLEVBQzNDO0FBQUE7QUFBQSxFQUdBLE9BQWMsY0FBc0I7QUFDaEMsV0FBTyxrQkFBa0IsWUFBWTtBQUFBLEVBQ3pDO0FBQUE7QUFBQSxFQUdBLE9BQWMsb0JBQTRCO0FBQ3RDLFdBQU8sa0JBQWtCLGtCQUFrQjtBQUFBLEVBQy9DO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRQSxPQUFjLFVBQVUsTUFBc0I7QUFDMUMsVUFBTSxTQUFTLGtCQUFrQixVQUFVLElBQUk7QUFDL0MsV0FBTyxTQUFTLFNBQVM7QUFBQSxFQUM3QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLE9BQWMsYUFBYSxNQUF1QjtBQUM5QyxXQUFPLGtCQUFrQixhQUFhLElBQUk7QUFBQSxFQUM5QztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUUEsT0FBYyxhQUFhLE1BQWtDO0FBQ3pELFVBQU0sWUFBWSxrQkFBa0IsYUFBYSxJQUFJO0FBQ3JELFdBQU8sWUFBWSxZQUFZO0FBQUEsRUFDbkM7QUFBQTtBQUFBLEVBR0EsT0FBYyxjQUFzQjtBQUNoQyxXQUFPLGtCQUFrQixZQUFZO0FBQUEsRUFDekM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxPQUFjLGFBQXVCO0FBQ2pDLFdBQU8sS0FBSyxNQUFNLGtCQUFrQixXQUFXLENBQUM7QUFBQSxFQUNwRDtBQUFBO0FBQUEsRUFHQSxPQUFjLG9CQUE4QjtBQUN4QyxXQUFPLEtBQUssTUFBTSxrQkFBa0Isa0JBQWtCLENBQUM7QUFBQSxFQUMzRDtBQUFBO0FBQUEsRUFHQSxPQUFjLHVCQUErQjtBQUN6QyxXQUFPLGtCQUFrQixxQkFBcUI7QUFBQSxFQUNsRDtBQUFBO0FBQUEsRUFHQSxPQUFjLG1CQUEyQjtBQUNyQyxXQUFPLGtCQUFrQixpQkFBaUI7QUFBQSxFQUM5QztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLE9BQWMsV0FBVyxNQUF3QjtBQUM3QyxXQUFPLEtBQUssTUFBTSxrQkFBa0IsV0FBVyxJQUFJLENBQUM7QUFBQSxFQUN4RDtBQUFBO0FBQUEsRUFHQSxPQUFjLGlCQUF5QjtBQUNuQyxXQUFPLGtCQUFrQixlQUFlO0FBQUEsRUFDNUM7QUFBQTtBQUFBLEVBR0EsT0FBYyxXQUFrQjtBQUM1QixXQUFPLEtBQUssTUFBTSxrQkFBa0IsU0FBUyxDQUFDO0FBQUEsRUFDbEQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLE9BQWMsVUFBVTtBQUNwQixRQUFJLENBQUMsUUFBUSxXQUFXO0FBQ3BCLGNBQVEsWUFBWSxrQkFBa0IsUUFBUTtBQUFBLElBQ2xEO0FBQ0EsV0FBTyxRQUFRO0FBQUEsRUFDbkI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxPQUFjLE9BQTJDO0FBQ3JELFdBQU8sUUFBUSxRQUFRO0FBQUEsRUFDM0I7QUFBQTtBQUFBLEVBR0EsT0FBYyxVQUE4QztBQUN4RCxRQUFJO0FBQ0EsYUFBTyxLQUFLLE1BQU0sUUFBUSxRQUFRLENBQUM7QUFBQSxJQUN2QyxTQUFTLEdBQUc7QUFDUixhQUFPO0FBQUEsSUFDWDtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBR0EsT0FBYyxhQUFhLE1BQXNCO0FBQzdDLFdBQU8sa0JBQWtCLGFBQWEsSUFBSTtBQUFBLEVBQzlDO0FBQUE7QUFBQSxFQUdBLE9BQWMsZ0JBQTZDO0FBQ3ZELFdBQU8sS0FBSyxNQUFNLGtCQUFrQixjQUFjLENBQUM7QUFBQSxFQUN2RDtBQUFBO0FBQUEsRUFHQSxPQUFjLGtCQUEwQjtBQUNwQyxXQUFPLGtCQUFrQixnQkFBZ0I7QUFBQSxFQUM3QztBQUFBO0FBQUEsRUFHQSxPQUFjLGlCQUEyQjtBQUNyQyxXQUFPLEtBQUssTUFBTSxrQkFBa0IsZUFBZSxDQUFDO0FBQUEsRUFDeEQ7QUFBQTtBQUFBLEVBR0EsT0FBYyxvQkFBOEI7QUFDeEMsV0FBTyxLQUFLLE1BQU0sa0JBQWtCLGtCQUFrQixDQUFDO0FBQUEsRUFDM0Q7QUFBQTtBQUFBLEVBR0EsT0FBYyxtQkFBbUIsTUFBd0I7QUFDckQsV0FBTyxLQUFLLE1BQU0sa0JBQWtCLG1CQUFtQixJQUFJLENBQUM7QUFBQSxFQUNoRTtBQUFBO0FBQUEsRUFHQSxPQUFjLGNBQXNCO0FBQ2hDLFdBQU8sa0JBQWtCLFlBQVk7QUFBQSxFQUN6QztBQUFBO0FBQUEsRUFHQSxPQUFjLFlBQW9CO0FBQzlCLFdBQU8sa0JBQWtCLFVBQVU7QUFBQSxFQUN2QztBQUFBO0FBQUEsRUFHQSxPQUFjLGlCQUF5QjtBQUNuQyxXQUFPLGtCQUFrQixlQUFlO0FBQUEsRUFDNUM7QUFBQTtBQUFBLEVBR0EsT0FBYyxnQkFBd0I7QUFDbEMsV0FBTyxrQkFBa0IsY0FBYztBQUFBLEVBQzNDO0FBQUE7QUFBQSxFQUdBLE9BQWMsZ0JBQXdCO0FBQ2xDLFdBQU8sa0JBQWtCLGNBQWM7QUFBQSxFQUMzQztBQUFBO0FBQUEsRUFHQSxPQUFjLGlCQUF5QjtBQUNuQyxXQUFPLGtCQUFrQixlQUFlO0FBQUEsRUFDNUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTUEsT0FBYyx3QkFBOEQ7QUFDeEUsUUFBSSxjQUFjLFFBQVEsZUFBZTtBQUN6QyxRQUFJLENBQUM7QUFDRCxhQUFPLENBQUM7QUFFWixrQkFBYyxVQUFVLFdBQVc7QUFDbkMsUUFBSSxzQkFBc0IsWUFBWSxNQUFNLEdBQUc7QUFFL0MsUUFBSSxXQUFtQyxDQUFDO0FBQ3hDLHdCQUFvQixRQUFRLFNBQVUsS0FBSztBQUN2QyxZQUFNLElBQUksUUFBUSxRQUFRLEVBQUU7QUFDNUIsWUFBTSxLQUFLLElBQUksTUFBTSxHQUFHO0FBQ3hCLFlBQU0sTUFBTSxHQUFHLENBQUMsRUFBRSxLQUFLO0FBQ3ZCLFlBQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxTQUFZLE9BQU8sR0FBRyxDQUFDLEVBQUUsS0FBSztBQUN0RCxVQUFJLFNBQVMsR0FBRyxNQUFNLFFBQVc7QUFDN0IsWUFBSSxDQUFDLE1BQU0sUUFBUSxTQUFTLEdBQUcsQ0FBQztBQUM1QixtQkFBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQztBQUNsQyxpQkFBUyxHQUFHLEVBQUUsS0FBSyxLQUFLO0FBQUEsTUFDNUIsT0FBTztBQUNILGlCQUFTLEdBQUcsSUFBSTtBQUFBLE1BQ3BCO0FBQUEsSUFDSixDQUFDO0FBQ0QsV0FBTztBQUFBLEVBQ1g7QUFBQTtBQUFBLEVBR0EsT0FBYyxtQkFBMkI7QUFDckMsV0FBTyxrQkFBa0IsaUJBQWlCO0FBQUEsRUFDOUM7QUFBQTtBQUFBLEVBR0EsT0FBYyxnQkFBd0I7QUFDbEMsV0FBTyxrQkFBa0IsY0FBYztBQUFBLEVBQzNDO0FBQUE7QUFBQSxFQUdBLE9BQWMsYUFBYSxNQUFjLE9BQXFCO0FBQzFELHNCQUFrQixhQUFhLE1BQU0sS0FBSztBQUFBLEVBQzlDO0FBQUE7QUFBQSxFQUdBLE9BQWMsZ0JBQWdCLE1BQW9CO0FBQzlDLHNCQUFrQixnQkFBZ0IsSUFBSTtBQUFBLEVBQzFDO0FBQUE7QUFBQSxFQUdBLE9BQWMsWUFBaUI7QUFDM0IsV0FBTyxLQUFLLE1BQU0sa0JBQWtCLFVBQVUsQ0FBQztBQUFBLEVBQ25EO0FBQUE7QUFBQSxFQUdBLE9BQWMsZ0JBQXdCO0FBQ2xDLFdBQU8sa0JBQWtCLGNBQWM7QUFBQSxFQUMzQztBQUFBO0FBQUEsRUFHQSxPQUFjLFdBQW9CO0FBQzlCLFdBQU8sa0JBQWtCLFNBQVM7QUFBQSxFQUN0QztBQUFBO0FBQUEsRUFHQSxPQUFjLGdCQUF3QjtBQUNsQyxXQUFPLGtCQUFrQixjQUFjO0FBQUEsRUFDM0M7QUFBQTtBQUFBLEVBR0EsT0FBYyxpQkFBeUI7QUFDbkMsV0FBTyxrQkFBa0IsZUFBZTtBQUFBLEVBQzVDO0FBQUE7QUFBQSxFQUdBLE9BQWMsZ0JBQXdCO0FBQ2xDLFdBQU8sa0JBQWtCLGNBQWM7QUFBQSxFQUMzQztBQUFBO0FBQUEsRUFHQSxPQUFjLGVBQXVCO0FBQ2pDLFdBQU8sa0JBQWtCLGFBQWE7QUFBQSxFQUMxQztBQUFBO0FBQUEsRUFHQSxPQUFjLGtCQUEwQjtBQUNwQyxXQUFPLGtCQUFrQixnQkFBZ0I7QUFBQSxFQUM3QztBQUFBO0FBQUEsRUFHQSxPQUFjLGVBQXVCO0FBQ2pDLFdBQU8sa0JBQWtCLGFBQWE7QUFBQSxFQUMxQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLE9BQWMsaUJBQThCO0FBQ3hDLFdBQU8sdUJBQVEsa0JBQWtCLGtCQUFrQixlQUFlLENBQUM7QUFBQSxFQUN2RTtBQUNKO0FBR0EsSUFBSSxPQUFPLFdBQVcsYUFBYTtBQUVsQyxTQUFPLFVBQVU7QUFDbEI7IiwKICAibmFtZXMiOiBbXQp9Cg==
|