@ultipa-graph/ultipa-driver 6.0.13 → 6.0.14
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/client.d.ts +32 -15
- package/dist/client.js +40 -31
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -3
- package/dist/services/converters.js +2 -1
- package/dist/services/data-service.js +6 -4
- package/dist/types/bulk_import.d.ts +17 -3
- package/dist/types/bulk_import.js +1 -1
- package/dist/types/convenience.d.ts +18 -2
- package/dist/types/convenience.js +18 -2
- package/dist/types/graph_models.d.ts +27 -2
- package/dist/types/graph_models.js +1 -1
- package/dist/types/typed_value.js +40 -13
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export { GqldbClient, QueryConfig, InsertConfig, HealthWatcher } from './client';
|
|
5
5
|
export { GqldbConfig, ConfigBuilder, createConfig, validateConfig, DEFAULT_CONFIG } from './config';
|
|
6
|
-
export { PropertyType, GraphType, HealthStatus, CacheType, TypedValue, createTypedValue, typedValueToJS, Parameter, createParameter, Point, Point3D, NodeData, EdgeData, GraphInfo, TransactionInfo, ASTCacheStats, PlanCacheStats, CacheStats, Statistics, SystemMetrics, CpuMetrics, MemoryMetrics, DiskIOMetrics, StorageMetrics, NetworkMetrics, ExportedNode, ExportedEdge, BulkCreateNodesOptions, BulkCreateEdgesOptions, BulkImportOptions, BulkImportSession, CheckpointResult, EndBulkImportResult, AbortBulkImportResult, BulkImportStatus, Schema, PropertyDef, Header, Table, Attr, } from './types';
|
|
6
|
+
export { PropertyType, GraphType, HealthStatus, CacheType, InsertType, TypedValue, createTypedValue, typedValueToJS, Parameter, createParameter, Point, Point3D, NodeData, EdgeData, GraphInfo, TransactionInfo, ASTCacheStats, PlanCacheStats, CacheStats, Statistics, SystemMetrics, CpuMetrics, MemoryMetrics, DiskIOMetrics, StorageMetrics, NetworkMetrics, ExportedNode, ExportedEdge, BulkCreateNodesOptions, BulkCreateEdgesOptions, BulkImportOptions, BulkImportSession, CheckpointResult, EndBulkImportResult, AbortBulkImportResult, BulkImportStatus, Schema, PropertyDef, Header, Table, Attr, } from './types';
|
|
7
7
|
export { Response, Row, InsertNodesResult, InsertEdgesResult, DeleteResult, ExportNodesResult, ExportEdgesResult, Node, Edge, Path, NodeResult, EdgeResult, } from './response';
|
|
8
8
|
export { printNodes, printNodesWithoutSchema, printEdges, printEdgesWithoutSchema, printPaths, printTable, printAny, } from './printers';
|
|
9
9
|
export { Session, SessionManager } from './session';
|
package/dist/index.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* GQLDB Node.js Driver - A gRPC-based client for GQLDB graph database.
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
7
|
-
exports.VERSION = exports.UnsupportedTypeError = exports.TypeConversionError = exports.InvalidTypeError = exports.ExportFailedError = exports.DeleteFailedError = exports.InsertFailedError = exports.DropGraphFailedError = exports.CreateGraphFailedError = void 0;
|
|
6
|
+
exports.GraphNotFoundError = exports.EmptyQueryError = exports.InvalidQueryError = exports.QueryTimeoutError = exports.QueryFailedError = exports.TransactionAlreadyOpenError = exports.TransactionNotFoundError = exports.TransactionFailedError = exports.NoTransactionError = exports.InvalidSessionError = exports.SessionExpiredError = exports.LogoutFailedError = exports.LoginFailedError = exports.NotLoggedInError = exports.HealthCheckFailedError = exports.AllHostsFailedError = exports.ConnectionFailedError = exports.ConnectionClosedError = exports.NoConnectionError = exports.InvalidTimeoutError = exports.NoHostsError = exports.GqldbError = exports.promisifyCallWithDeadline = exports.promisifyCall = exports.createServiceClients = exports.ConnectionPool = exports.TransactionManager = exports.SessionManager = exports.printAny = exports.printTable = exports.printPaths = exports.printEdgesWithoutSchema = exports.printEdges = exports.printNodesWithoutSchema = exports.printNodes = exports.Row = exports.Response = exports.createParameter = exports.typedValueToJS = exports.createTypedValue = exports.InsertType = exports.CacheType = exports.HealthStatus = exports.GraphType = exports.PropertyType = exports.DEFAULT_CONFIG = exports.validateConfig = exports.createConfig = exports.ConfigBuilder = exports.GqldbClient = void 0;
|
|
7
|
+
exports.VERSION = exports.UnsupportedTypeError = exports.TypeConversionError = exports.InvalidTypeError = exports.ExportFailedError = exports.DeleteFailedError = exports.InsertFailedError = exports.DropGraphFailedError = exports.CreateGraphFailedError = exports.GraphExistsError = void 0;
|
|
8
8
|
// Main client
|
|
9
9
|
var client_1 = require("./client");
|
|
10
10
|
Object.defineProperty(exports, "GqldbClient", { enumerable: true, get: function () { return client_1.GqldbClient; } });
|
|
@@ -20,6 +20,7 @@ Object.defineProperty(exports, "PropertyType", { enumerable: true, get: function
|
|
|
20
20
|
Object.defineProperty(exports, "GraphType", { enumerable: true, get: function () { return types_1.GraphType; } });
|
|
21
21
|
Object.defineProperty(exports, "HealthStatus", { enumerable: true, get: function () { return types_1.HealthStatus; } });
|
|
22
22
|
Object.defineProperty(exports, "CacheType", { enumerable: true, get: function () { return types_1.CacheType; } });
|
|
23
|
+
Object.defineProperty(exports, "InsertType", { enumerable: true, get: function () { return types_1.InsertType; } });
|
|
23
24
|
Object.defineProperty(exports, "createTypedValue", { enumerable: true, get: function () { return types_1.createTypedValue; } });
|
|
24
25
|
Object.defineProperty(exports, "typedValueToJS", { enumerable: true, get: function () { return types_1.typedValueToJS; } });
|
|
25
26
|
Object.defineProperty(exports, "createParameter", { enumerable: true, get: function () { return types_1.createParameter; } });
|
|
@@ -85,4 +86,4 @@ Object.defineProperty(exports, "TypeConversionError", { enumerable: true, get: f
|
|
|
85
86
|
Object.defineProperty(exports, "UnsupportedTypeError", { enumerable: true, get: function () { return errors_1.UnsupportedTypeError; } });
|
|
86
87
|
// Version
|
|
87
88
|
exports.VERSION = '0.1.0';
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7O0FBRUgsY0FBYztBQUNkLG1DQUFpRjtBQUF4RSxxR0FBQSxXQUFXLE9BQUE7QUFFcEIsZ0JBQWdCO0FBQ2hCLG1DQUFvRztBQUE5RSx1R0FBQSxhQUFhLE9BQUE7QUFBRSxzR0FBQSxZQUFZLE9BQUE7QUFBRSx3R0FBQSxjQUFjLE9BQUE7QUFBRSx3R0FBQSxjQUFjLE9BQUE7QUFFakYsUUFBUTtBQUNSLGlDQTBDaUI7QUF6Q2YscUdBQUEsWUFBWSxPQUFBO0FBQ1osa0dBQUEsU0FBUyxPQUFBO0FBQ1QscUdBQUEsWUFBWSxPQUFBO0FBQ1osa0dBQUEsU0FBUyxPQUFBO0FBQ1QsbUdBQUEsVUFBVSxPQUFBO0FBRVYseUdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsdUdBQUEsY0FBYyxPQUFBO0FBRWQsd0dBQUEsZUFBZSxPQUFBO0FBa0NqQixXQUFXO0FBQ1gsdUNBYW9CO0FBWmxCLG9HQUFBLFFBQVEsT0FBQTtBQUNSLCtGQUFBLEdBQUcsT0FBQTtBQWFMLFdBQVc7QUFDWCx1Q0FRb0I7QUFQbEIsc0dBQUEsVUFBVSxPQUFBO0FBQ1YsbUhBQUEsdUJBQXVCLE9BQUE7QUFDdkIsc0dBQUEsVUFBVSxPQUFBO0FBQ1YsbUhBQUEsdUJBQXVCLE9BQUE7QUFDdkIsc0dBQUEsVUFBVSxPQUFBO0FBQ1Ysc0dBQUEsVUFBVSxPQUFBO0FBQ1Ysb0dBQUEsUUFBUSxPQUFBO0FBR1YsVUFBVTtBQUNWLHFDQUFvRDtBQUFsQyx5R0FBQSxjQUFjLE9BQUE7QUFFaEMsY0FBYztBQUNkLDZDQUFnRTtBQUExQyxpSEFBQSxrQkFBa0IsT0FBQTtBQUV4QyxhQUFhO0FBQ2IsMkNBQThDO0FBQXJDLDRHQUFBLGNBQWMsT0FBQTtBQUV2QixXQUFXO0FBQ1gsdUNBQTRHO0FBQW5HLGdIQUFBLG9CQUFvQixPQUFBO0FBQWtCLHlHQUFBLGFBQWEsT0FBQTtBQUFFLHFIQUFBLHlCQUF5QixPQUFBO0FBRXZGLFNBQVM7QUFDVCxtQ0FnQ2tCO0FBL0JoQixvR0FBQSxVQUFVLE9BQUE7QUFDVixzR0FBQSxZQUFZLE9BQUE7QUFDWiw2R0FBQSxtQkFBbUIsT0FBQTtBQUNuQiwyR0FBQSxpQkFBaUIsT0FBQTtBQUNqQiwrR0FBQSxxQkFBcUIsT0FBQTtBQUNyQiwrR0FBQSxxQkFBcUIsT0FBQTtBQUNyQiw2R0FBQSxtQkFBbUIsT0FBQTtBQUNuQixnSEFBQSxzQkFBc0IsT0FBQTtBQUN0QiwwR0FBQSxnQkFBZ0IsT0FBQTtBQUNoQiwwR0FBQSxnQkFBZ0IsT0FBQTtBQUNoQiwyR0FBQSxpQkFBaUIsT0FBQTtBQUNqQiw2R0FBQSxtQkFBbUIsT0FBQTtBQUNuQiw2R0FBQSxtQkFBbUIsT0FBQTtBQUNuQiw0R0FBQSxrQkFBa0IsT0FBQTtBQUNsQixnSEFBQSxzQkFBc0IsT0FBQTtBQUN0QixrSEFBQSx3QkFBd0IsT0FBQTtBQUN4QixxSEFBQSwyQkFBMkIsT0FBQTtBQUMzQiwwR0FBQSxnQkFBZ0IsT0FBQTtBQUNoQiwyR0FBQSxpQkFBaUIsT0FBQTtBQUNqQiwyR0FBQSxpQkFBaUIsT0FBQTtBQUNqQix5R0FBQSxlQUFlLE9BQUE7QUFDZiw0R0FBQSxrQkFBa0IsT0FBQTtBQUNsQiwwR0FBQSxnQkFBZ0IsT0FBQTtBQUNoQixnSEFBQSxzQkFBc0IsT0FBQTtBQUN0Qiw4R0FBQSxvQkFBb0IsT0FBQTtBQUNwQiwyR0FBQSxpQkFBaUIsT0FBQTtBQUNqQiwyR0FBQSxpQkFBaUIsT0FBQTtBQUNqQiwyR0FBQSxpQkFBaUIsT0FBQTtBQUNqQiwwR0FBQSxnQkFBZ0IsT0FBQTtBQUNoQiw2R0FBQSxtQkFBbUIsT0FBQTtBQUNuQiw4R0FBQSxvQkFBb0IsT0FBQTtBQUd0QixVQUFVO0FBQ0csUUFBQSxPQUFPLEdBQUcsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHUUxEQiBOb2RlLmpzIERyaXZlciAtIEEgZ1JQQy1iYXNlZCBjbGllbnQgZm9yIEdRTERCIGdyYXBoIGRhdGFiYXNlLlxuICovXG5cbi8vIE1haW4gY2xpZW50XG5leHBvcnQgeyBHcWxkYkNsaWVudCwgUXVlcnlDb25maWcsIEluc2VydENvbmZpZywgSGVhbHRoV2F0Y2hlciB9IGZyb20gJy4vY2xpZW50JztcblxuLy8gQ29uZmlndXJhdGlvblxuZXhwb3J0IHsgR3FsZGJDb25maWcsIENvbmZpZ0J1aWxkZXIsIGNyZWF0ZUNvbmZpZywgdmFsaWRhdGVDb25maWcsIERFRkFVTFRfQ09ORklHIH0gZnJvbSAnLi9jb25maWcnO1xuXG4vLyBUeXBlc1xuZXhwb3J0IHtcbiAgUHJvcGVydHlUeXBlLFxuICBHcmFwaFR5cGUsXG4gIEhlYWx0aFN0YXR1cyxcbiAgQ2FjaGVUeXBlLFxuICBJbnNlcnRUeXBlLFxuICBUeXBlZFZhbHVlLFxuICBjcmVhdGVUeXBlZFZhbHVlLFxuICB0eXBlZFZhbHVlVG9KUyxcbiAgUGFyYW1ldGVyLFxuICBjcmVhdGVQYXJhbWV0ZXIsXG4gIFBvaW50LFxuICBQb2ludDNELFxuICBOb2RlRGF0YSxcbiAgRWRnZURhdGEsXG4gIEdyYXBoSW5mbyxcbiAgVHJhbnNhY3Rpb25JbmZvLFxuICBBU1RDYWNoZVN0YXRzLFxuICBQbGFuQ2FjaGVTdGF0cyxcbiAgQ2FjaGVTdGF0cyxcbiAgU3RhdGlzdGljcyxcbiAgU3lzdGVtTWV0cmljcyxcbiAgQ3B1TWV0cmljcyxcbiAgTWVtb3J5TWV0cmljcyxcbiAgRGlza0lPTWV0cmljcyxcbiAgU3RvcmFnZU1ldHJpY3MsXG4gIE5ldHdvcmtNZXRyaWNzLFxuICBFeHBvcnRlZE5vZGUsXG4gIEV4cG9ydGVkRWRnZSxcbiAgQnVsa0NyZWF0ZU5vZGVzT3B0aW9ucyxcbiAgQnVsa0NyZWF0ZUVkZ2VzT3B0aW9ucyxcbiAgQnVsa0ltcG9ydE9wdGlvbnMsXG4gIEJ1bGtJbXBvcnRTZXNzaW9uLFxuICBDaGVja3BvaW50UmVzdWx0LFxuICBFbmRCdWxrSW1wb3J0UmVzdWx0LFxuICBBYm9ydEJ1bGtJbXBvcnRSZXN1bHQsXG4gIEJ1bGtJbXBvcnRTdGF0dXMsXG4gIFNjaGVtYSxcbiAgUHJvcGVydHlEZWYsXG4gIEhlYWRlcixcbiAgVGFibGUsXG4gIEF0dHIsXG59IGZyb20gJy4vdHlwZXMnO1xuXG4vLyBSZXNwb25zZVxuZXhwb3J0IHtcbiAgUmVzcG9uc2UsXG4gIFJvdyxcbiAgSW5zZXJ0Tm9kZXNSZXN1bHQsXG4gIEluc2VydEVkZ2VzUmVzdWx0LFxuICBEZWxldGVSZXN1bHQsXG4gIEV4cG9ydE5vZGVzUmVzdWx0LFxuICBFeHBvcnRFZGdlc1Jlc3VsdCxcbiAgTm9kZSxcbiAgRWRnZSxcbiAgUGF0aCxcbiAgTm9kZVJlc3VsdCxcbiAgRWRnZVJlc3VsdCxcbn0gZnJvbSAnLi9yZXNwb25zZSc7XG5cbi8vIFByaW50ZXJzXG5leHBvcnQge1xuICBwcmludE5vZGVzLFxuICBwcmludE5vZGVzV2l0aG91dFNjaGVtYSxcbiAgcHJpbnRFZGdlcyxcbiAgcHJpbnRFZGdlc1dpdGhvdXRTY2hlbWEsXG4gIHByaW50UGF0aHMsXG4gIHByaW50VGFibGUsXG4gIHByaW50QW55LFxufSBmcm9tICcuL3ByaW50ZXJzJztcblxuLy8gU2Vzc2lvblxuZXhwb3J0IHsgU2Vzc2lvbiwgU2Vzc2lvbk1hbmFnZXIgfSBmcm9tICcuL3Nlc3Npb24nO1xuXG4vLyBUcmFuc2FjdGlvblxuZXhwb3J0IHsgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uTWFuYWdlciB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuXG4vLyBDb25uZWN0aW9uXG5leHBvcnQgeyBDb25uZWN0aW9uUG9vbCB9IGZyb20gJy4vY29ubmVjdGlvbic7XG5cbi8vIFNlcnZpY2VzXG5leHBvcnQgeyBjcmVhdGVTZXJ2aWNlQ2xpZW50cywgU2VydmljZUNsaWVudHMsIHByb21pc2lmeUNhbGwsIHByb21pc2lmeUNhbGxXaXRoRGVhZGxpbmUgfSBmcm9tICcuL3NlcnZpY2VzJztcblxuLy8gRXJyb3JzXG5leHBvcnQge1xuICBHcWxkYkVycm9yLFxuICBOb0hvc3RzRXJyb3IsXG4gIEludmFsaWRUaW1lb3V0RXJyb3IsXG4gIE5vQ29ubmVjdGlvbkVycm9yLFxuICBDb25uZWN0aW9uQ2xvc2VkRXJyb3IsXG4gIENvbm5lY3Rpb25GYWlsZWRFcnJvcixcbiAgQWxsSG9zdHNGYWlsZWRFcnJvcixcbiAgSGVhbHRoQ2hlY2tGYWlsZWRFcnJvcixcbiAgTm90TG9nZ2VkSW5FcnJvcixcbiAgTG9naW5GYWlsZWRFcnJvcixcbiAgTG9nb3V0RmFpbGVkRXJyb3IsXG4gIFNlc3Npb25FeHBpcmVkRXJyb3IsXG4gIEludmFsaWRTZXNzaW9uRXJyb3IsXG4gIE5vVHJhbnNhY3Rpb25FcnJvcixcbiAgVHJhbnNhY3Rpb25GYWlsZWRFcnJvcixcbiAgVHJhbnNhY3Rpb25Ob3RGb3VuZEVycm9yLFxuICBUcmFuc2FjdGlvbkFscmVhZHlPcGVuRXJyb3IsXG4gIFF1ZXJ5RmFpbGVkRXJyb3IsXG4gIFF1ZXJ5VGltZW91dEVycm9yLFxuICBJbnZhbGlkUXVlcnlFcnJvcixcbiAgRW1wdHlRdWVyeUVycm9yLFxuICBHcmFwaE5vdEZvdW5kRXJyb3IsXG4gIEdyYXBoRXhpc3RzRXJyb3IsXG4gIENyZWF0ZUdyYXBoRmFpbGVkRXJyb3IsXG4gIERyb3BHcmFwaEZhaWxlZEVycm9yLFxuICBJbnNlcnRGYWlsZWRFcnJvcixcbiAgRGVsZXRlRmFpbGVkRXJyb3IsXG4gIEV4cG9ydEZhaWxlZEVycm9yLFxuICBJbnZhbGlkVHlwZUVycm9yLFxuICBUeXBlQ29udmVyc2lvbkVycm9yLFxuICBVbnN1cHBvcnRlZFR5cGVFcnJvcixcbn0gZnJvbSAnLi9lcnJvcnMnO1xuXG4vLyBWZXJzaW9uXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9ICcwLjEuMCc7XG4iXX0=
|
|
@@ -245,10 +245,11 @@ function edgeDataToProto(edge) {
|
|
|
245
245
|
}
|
|
246
246
|
}
|
|
247
247
|
return {
|
|
248
|
+
id: edge.id || '',
|
|
248
249
|
label: edge.label || '',
|
|
249
250
|
from_node_id: edge.fromNodeId || '',
|
|
250
251
|
to_node_id: edge.toNodeId || '',
|
|
251
252
|
properties,
|
|
252
253
|
};
|
|
253
254
|
}
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9jb252ZXJ0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7QUFtQkgsMENBZ0JDO0FBS0QsMENBTUM7QUFLRCxnREFnQkM7QUE0REQsOENBZ0NDO0FBS0Qsd0RBTUM7QUFLRCw0Q0FRQztBQUtELDRDQVdDO0FBS0QsNENBU0M7QUFLRCxrREFXQztBQUtELDRDQVNDO0FBS0QsMENBWUM7QUFLRCwwQ0FhQztBQXBSRCwwQ0FBNEM7QUFDNUMsb0NBUWtCO0FBS2xCOztHQUVHO0FBQ0gsU0FBZ0IsZUFBZSxDQUM3QixLQUFhLEVBQ2IsT0FBdUIsRUFDdkIsTUFBbUIsRUFDbkIsV0FBeUI7SUFFekIsT0FBTztRQUNMLEdBQUcsRUFBRSxLQUFLO1FBQ1YsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLElBQUksT0FBTyxFQUFFLFlBQVksSUFBSSxNQUFNLENBQUMsWUFBWSxJQUFJLEVBQUU7UUFDeEYsVUFBVSxFQUFFLGVBQWUsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDO1FBQ3BELFVBQVUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEdBQUc7UUFDMUMsY0FBYyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLElBQUksR0FBRztRQUM3RCxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxPQUFPLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxpQ0FBaUM7UUFDaEgsU0FBUyxFQUFFLFdBQVcsRUFBRSxRQUFRLElBQUksS0FBSztRQUN6QyxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsY0FBYyxJQUFJLENBQUM7S0FDbkQsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxNQUE0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QU87UUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFO1FBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUU7UUFDekIsVUFBVTtLQUNYLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixlQUFlLENBQUMsSUFBUztJQUN2QyxNQUFNLFVBQVUsR0FBd0IsRUFBRSxDQUFDO0lBQzNDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzNELFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFBLHdCQUFnQixFQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTztRQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDdkIsWUFBWSxFQUFFLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRTtRQUNuQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFO1FBQy9CLFVBQVU7S0FDWCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVHlwZSBjb252ZXJzaW9uIHV0aWxpdGllcyBiZXR3ZWVuIGdSUEMgcHJvdG8gdHlwZXMgYW5kIEphdmFTY3JpcHQgdHlwZXMuXG4gKi9cblxuaW1wb3J0IHsgUmVzcG9uc2UsIFJvdyB9IGZyb20gJy4uL3Jlc3BvbnNlJztcbmltcG9ydCB7XG4gIEdyYXBoVHlwZSxcbiAgSGVhbHRoU3RhdHVzLFxuICBDYWNoZVR5cGUsXG4gIEdyYXBoSW5mbyxcbiAgY3JlYXRlVHlwZWRWYWx1ZSxcbiAgUHJvcGVydHlUeXBlLFxuICB0eXBlZFZhbHVlVG9KUyxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgR3FsZGJDb25maWcgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgU2Vzc2lvbiB9IGZyb20gJy4uL3Nlc3Npb24nO1xuaW1wb3J0IHsgUXVlcnlDb25maWcgfSBmcm9tICcuLi9jbGllbnQnO1xuXG4vKipcbiAqIEJ1aWxkIGEgR1FMIHJlcXVlc3QgZnJvbSBjb25maWcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEdxbFJlcXVlc3QoXG4gIHF1ZXJ5OiBzdHJpbmcsXG4gIHNlc3Npb246IFNlc3Npb24gfCBudWxsLFxuICBjb25maWc6IEdxbGRiQ29uZmlnLFxuICBxdWVyeUNvbmZpZz86IFF1ZXJ5Q29uZmlnXG4pOiBhbnkge1xuICByZXR1cm4ge1xuICAgIGdxbDogcXVlcnksXG4gICAgZ3JhcGhfbmFtZTogcXVlcnlDb25maWc/LmdyYXBoTmFtZSB8fCBzZXNzaW9uPy5kZWZhdWx0R3JhcGggfHwgY29uZmlnLmRlZmF1bHRHcmFwaCB8fCAnJyxcbiAgICBwYXJhbWV0ZXJzOiBidWlsZFBhcmFtZXRlcnMocXVlcnlDb25maWc/LnBhcmFtZXRlcnMpLFxuICAgIHNlc3Npb25faWQ6IHNlc3Npb24/LmlkPy50b1N0cmluZygpIHx8ICcwJyxcbiAgICB0cmFuc2FjdGlvbl9pZDogcXVlcnlDb25maWc/LnRyYW5zYWN0aW9uSWQ/LnRvU3RyaW5nKCkgfHwgJzAnLFxuICAgIHRpbWVvdXQ6IE1hdGguZmxvb3IoKHF1ZXJ5Q29uZmlnPy50aW1lb3V0IHx8IGNvbmZpZy50aW1lb3V0IHx8IDMwMDAwKSAvIDEwMDApLCAvLyBDb252ZXJ0IG1zIHRvIHNlY29uZHMgZm9yIGdSUENcbiAgICByZWFkX29ubHk6IHF1ZXJ5Q29uZmlnPy5yZWFkT25seSB8fCBmYWxzZSxcbiAgICBtYXhfcGF0aF9yZXN1bHRzOiBxdWVyeUNvbmZpZz8ubWF4UGF0aFJlc3VsdHMgfHwgMCxcbiAgfTtcbn1cblxuLyoqXG4gKiBCdWlsZCBwYXJhbWV0ZXJzIGFycmF5IGZvciBnUlBDLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQYXJhbWV0ZXJzKHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIGFueT4pOiBhbnlbXSB7XG4gIGlmICghcGFyYW1zKSByZXR1cm4gW107XG4gIHJldHVybiBPYmplY3QuZW50cmllcyhwYXJhbXMpLm1hcCgoW25hbWUsIHZhbHVlXSkgPT4gKHtcbiAgICBuYW1lLFxuICAgIHZhbHVlOiBjcmVhdGVUeXBlZFZhbHVlKHZhbHVlKSxcbiAgfSkpO1xufVxuXG4vKipcbiAqIENvbnZlcnQgZ1JQQyByZXNwb25zZSB0byBSZXNwb25zZSBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0R3FsUmVzcG9uc2UoZ3JwY1Jlc3BvbnNlOiBhbnkpOiBSZXNwb25zZSB7XG4gIGNvbnN0IGNvbHVtbnMgPSBncnBjUmVzcG9uc2UuY29sdW1ucyB8fCBbXTtcbiAgY29uc3Qgcm93czogUm93W10gPSAoZ3JwY1Jlc3BvbnNlLnJvd3MgfHwgW10pLm1hcCgocm93OiBhbnkpID0+IHtcbiAgICBjb25zdCByYXdWYWx1ZXMgPSByb3cudmFsdWVzIHx8IFtdO1xuICAgIGNvbnN0IHZhbHVlcyA9IHJhd1ZhbHVlcy5tYXAoKHR2OiBhbnkpID0+IGNvbnZlcnRUeXBlZFZhbHVlKHR2KSk7XG4gICAgY29uc3QgdHlwZXMgPSByYXdWYWx1ZXMubWFwKCh0djogYW55KSA9PiBwcm90b1R5cGVUb0VudW0odHY/LnR5cGUpKTtcbiAgICByZXR1cm4gbmV3IFJvdyh2YWx1ZXMsIHR5cGVzKTtcbiAgfSk7XG4gIHJldHVybiBuZXcgUmVzcG9uc2UoXG4gICAgY29sdW1ucyxcbiAgICByb3dzLFxuICAgIHBhcnNlSW50KGdycGNSZXNwb25zZS5yb3dfY291bnQgfHwgJzAnLCAxMCksXG4gICAgZ3JwY1Jlc3BvbnNlLmhhc19tb3JlIHx8IGZhbHNlLFxuICAgIGdycGNSZXNwb25zZS53YXJuaW5ncyB8fCBbXSxcbiAgICBwYXJzZUludChncnBjUmVzcG9uc2Uucm93c19hZmZlY3RlZCB8fCAnMCcsIDEwKVxuICApO1xufVxuXG4vKipcbiAqIE1hcCBwcm90byB0eXBlIHN0cmluZyBvciBudW1iZXIgdG8gUHJvcGVydHlUeXBlIGVudW0uXG4gKiBIYW5kbGVzIGJvdGggc3RyaW5nIGVudW0gbmFtZXMgKGUuZy4sICdQUk9QRVJUWV9UWVBFX1NUUklORycpIGFuZCBudW1lcmljIHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gcHJvdG9UeXBlVG9FbnVtKHByb3RvVHlwZTogc3RyaW5nIHwgbnVtYmVyKTogUHJvcGVydHlUeXBlIHtcbiAgLy8gSGFuZGxlIG51bWVyaWMgZW51bSB2YWx1ZXMgZGlyZWN0bHlcbiAgaWYgKHR5cGVvZiBwcm90b1R5cGUgPT09ICdudW1iZXInKSB7XG4gICAgLy8gSWYgaXQncyBhbHJlYWR5IGEgdmFsaWQgUHJvcGVydHlUeXBlIG51bWJlciwgcmV0dXJuIGl0IGRpcmVjdGx5XG4gICAgLy8gUHJvcGVydHlUeXBlIHJhbmdlcyBmcm9tIFVOU0VUKDApIHRvIEVER0UoMzMpXG4gICAgaWYgKHByb3RvVHlwZSA+PSBQcm9wZXJ0eVR5cGUuVU5TRVQgJiYgcHJvdG9UeXBlIDw9IFByb3BlcnR5VHlwZS5FREdFKSB7XG4gICAgICByZXR1cm4gcHJvdG9UeXBlIGFzIFByb3BlcnR5VHlwZTtcbiAgICB9XG4gICAgcmV0dXJuIFByb3BlcnR5VHlwZS5OVUxMO1xuICB9XG5cbiAgY29uc3QgdHlwZU1hcDogUmVjb3JkPHN0cmluZywgUHJvcGVydHlUeXBlPiA9IHtcbiAgICAnUFJPUEVSVFlfVFlQRV9OVUxMJzogUHJvcGVydHlUeXBlLk5VTEwsXG4gICAgJ1BST1BFUlRZX1RZUEVfVU5TRVQnOiBQcm9wZXJ0eVR5cGUuVU5TRVQsXG4gICAgJ1BST1BFUlRZX1RZUEVfQk9PTCc6IFByb3BlcnR5VHlwZS5CT09MLFxuICAgICdQUk9QRVJUWV9UWVBFX0lOVDMyJzogUHJvcGVydHlUeXBlLklOVDMyLFxuICAgICdQUk9QRVJUWV9UWVBFX1VJTlQzMic6IFByb3BlcnR5VHlwZS5VSU5UMzIsXG4gICAgJ1BST1BFUlRZX1RZUEVfSU5UNjQnOiBQcm9wZXJ0eVR5cGUuSU5UNjQsXG4gICAgJ1BST1BFUlRZX1RZUEVfVUlOVDY0JzogUHJvcGVydHlUeXBlLlVJTlQ2NCxcbiAgICAnUFJPUEVSVFlfVFlQRV9GTE9BVCc6IFByb3BlcnR5VHlwZS5GTE9BVCxcbiAgICAnUFJPUEVSVFlfVFlQRV9ET1VCTEUnOiBQcm9wZXJ0eVR5cGUuRE9VQkxFLFxuICAgICdQUk9QRVJUWV9UWVBFX1NUUklORyc6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgJ1BST1BFUlRZX1RZUEVfVEVYVCc6IFByb3BlcnR5VHlwZS5URVhULFxuICAgICdQUk9QRVJUWV9UWVBFX0JMT0InOiBQcm9wZXJ0eVR5cGUuQkxPQixcbiAgICAnUFJPUEVSVFlfVFlQRV9USU1FU1RBTVAnOiBQcm9wZXJ0eVR5cGUuVElNRVNUQU1QLFxuICAgICdQUk9QRVJUWV9UWVBFX0RBVEVUSU1FJzogUHJvcGVydHlUeXBlLkRBVEVUSU1FLFxuICAgICdQUk9QRVJUWV9UWVBFX0RBVEUnOiBQcm9wZXJ0eVR5cGUuREFURSxcbiAgICAnUFJPUEVSVFlfVFlQRV9MT0NBTF9EQVRFVElNRSc6IFByb3BlcnR5VHlwZS5MT0NBTF9EQVRFVElNRSxcbiAgICAnUFJPUEVSVFlfVFlQRV9aT05FRF9EQVRFVElNRSc6IFByb3BlcnR5VHlwZS5aT05FRF9EQVRFVElNRSxcbiAgICAnUFJPUEVSVFlfVFlQRV9MT0NBTF9USU1FJzogUHJvcGVydHlUeXBlLkxPQ0FMX1RJTUUsXG4gICAgJ1BST1BFUlRZX1RZUEVfWk9ORURfVElNRSc6IFByb3BlcnR5VHlwZS5aT05FRF9USU1FLFxuICAgICdQUk9QRVJUWV9UWVBFX1lFQVJfVE9fTU9OVEgnOiBQcm9wZXJ0eVR5cGUuWUVBUl9UT19NT05USCxcbiAgICAnUFJPUEVSVFlfVFlQRV9EQVlfVE9fU0VDT05EJzogUHJvcGVydHlUeXBlLkRBWV9UT19TRUNPTkQsXG4gICAgJ1BST1BFUlRZX1RZUEVfREVDSU1BTCc6IFByb3BlcnR5VHlwZS5ERUNJTUFMLFxuICAgICdQUk9QRVJUWV9UWVBFX1BPSU5UJzogUHJvcGVydHlUeXBlLlBPSU5ULFxuICAgICdQUk9QRVJUWV9UWVBFX1BPSU5UM0QnOiBQcm9wZXJ0eVR5cGUuUE9JTlQzRCxcbiAgICAnUFJPUEVSVFlfVFlQRV9WRUNUT1InOiBQcm9wZXJ0eVR5cGUuVkVDVE9SLFxuICAgICdQUk9QRVJUWV9UWVBFX0xJU1QnOiBQcm9wZXJ0eVR5cGUuTElTVCxcbiAgICAnUFJPUEVSVFlfVFlQRV9TRVQnOiBQcm9wZXJ0eVR5cGUuU0VULFxuICAgICdQUk9QRVJUWV9UWVBFX01BUCc6IFByb3BlcnR5VHlwZS5NQVAsXG4gICAgJ1BST1BFUlRZX1RZUEVfTk9ERSc6IFByb3BlcnR5VHlwZS5OT0RFLFxuICAgICdQUk9QRVJUWV9UWVBFX0VER0UnOiBQcm9wZXJ0eVR5cGUuRURHRSxcbiAgICAnUFJPUEVSVFlfVFlQRV9QQVRIJzogUHJvcGVydHlUeXBlLlBBVEgsXG4gICAgJ1BST1BFUlRZX1RZUEVfUkVDT1JEJzogUHJvcGVydHlUeXBlLlJFQ09SRCxcbiAgICAnUFJPUEVSVFlfVFlQRV9UQUJMRSc6IFByb3BlcnR5VHlwZS5UQUJMRSxcbiAgICAnUFJPUEVSVFlfVFlQRV9FUlJPUic6IFByb3BlcnR5VHlwZS5FUlJPUixcbiAgfTtcbiAgcmV0dXJuIHR5cGVNYXBbcHJvdG9UeXBlXSA/PyBQcm9wZXJ0eVR5cGUuTlVMTDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGdSUEMgVHlwZWRWYWx1ZSB0byBKUyB2YWx1ZS5cbiAqIFVzZXMgdGhlIHNhbWUgZGVjb2RpbmcgbG9naWMgYXMgdHlwZWRWYWx1ZVRvSlMgZm9yIGNvbnNpc3RlbmN5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFR5cGVkVmFsdWUodHY6IGFueSk6IGFueSB7XG4gIGlmICghdHYgfHwgdHYuaXNfbnVsbCB8fCB0di5pc051bGwpIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IGRhdGEgPSB0di5kYXRhO1xuICBjb25zdCBwcm90b1R5cGUgPSB0di50eXBlO1xuXG4gIC8vIEhhbmRsZSBudWxsIHR5cGVzIChib3RoIHN0cmluZyBhbmQgbnVtZXJpYyBlbnVtIHZhbHVlcylcbiAgaWYgKHByb3RvVHlwZSA9PT0gJ1BST1BFUlRZX1RZUEVfTlVMTCcgfHwgcHJvdG9UeXBlID09PSAnUFJPUEVSVFlfVFlQRV9VTlNFVCcgfHxcbiAgICAgIHByb3RvVHlwZSA9PT0gUHJvcGVydHlUeXBlLk5VTEwgfHwgcHJvdG9UeXBlID09PSBQcm9wZXJ0eVR5cGUuVU5TRVQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIEhhbmRsZSBlbXB0eSBkYXRhIC0gYnV0IFNUUklORyB0eXBlIHdpdGggZW1wdHkgZGF0YSBzaG91bGQgcmV0dXJuIFwiXCJcbiAgaWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgY29uc3QgaXNTdHJpbmdUeXBlID0gcHJvdG9UeXBlID09PSAnUFJPUEVSVFlfVFlQRV9TVFJJTkcnIHx8IHByb3RvVHlwZSA9PT0gJ1BST1BFUlRZX1RZUEVfVEVYVCcgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICBwcm90b1R5cGUgPT09IFByb3BlcnR5VHlwZS5TVFJJTkcgfHwgcHJvdG9UeXBlID09PSBQcm9wZXJ0eVR5cGUuVEVYVDtcbiAgICBjb25zdCBpc0Jsb2JUeXBlID0gcHJvdG9UeXBlID09PSAnUFJPUEVSVFlfVFlQRV9CTE9CJyB8fCBwcm90b1R5cGUgPT09IFByb3BlcnR5VHlwZS5CTE9CO1xuXG4gICAgaWYgKGlzU3RyaW5nVHlwZSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBpZiAoaXNCbG9iVHlwZSkge1xuICAgICAgcmV0dXJuIEJ1ZmZlci5hbGxvYygwKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBidWYgPSBCdWZmZXIuZnJvbShkYXRhKTtcbiAgY29uc3QgZW51bVR5cGUgPSBwcm90b1R5cGVUb0VudW0ocHJvdG9UeXBlKTtcblxuICAvLyBVc2UgdHlwZWRWYWx1ZVRvSlMgZm9yIGNvbnNpc3RlbnQgZGVjb2RpbmdcbiAgcmV0dXJuIHR5cGVkVmFsdWVUb0pTKHsgdHlwZTogZW51bVR5cGUsIGRhdGE6IGJ1ZiwgaXNOdWxsOiBmYWxzZSB9KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IHByb3RvIHByb3BlcnRpZXMgbWFwIHRvIEpTIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRQcm90b1Byb3BlcnRpZXMocHJvdG9Qcm9wczogUmVjb3JkPHN0cmluZywgYW55Pik6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgZm9yIChjb25zdCBba2V5LCB0dl0gb2YgT2JqZWN0LmVudHJpZXMocHJvdG9Qcm9wcykpIHtcbiAgICByZXN1bHRba2V5XSA9IGNvbnZlcnRUeXBlZFZhbHVlKHR2KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIENvbnZlcnQgR3JhcGhJbmZvIGZyb20gcHJvdG8gdG8gSlMgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydEdyYXBoSW5mbyhnOiBhbnkpOiBHcmFwaEluZm8ge1xuICByZXR1cm4ge1xuICAgIG5hbWU6IGcubmFtZSB8fCAnJyxcbiAgICBncmFwaFR5cGU6IHByb3RvVG9HcmFwaFR5cGUoZy5ncmFwaF90eXBlKSxcbiAgICBub2RlQ291bnQ6IHBhcnNlSW50KGcubm9kZV9jb3VudCB8fCAnMCcsIDEwKSxcbiAgICBlZGdlQ291bnQ6IHBhcnNlSW50KGcuZWRnZV9jb3VudCB8fCAnMCcsIDEwKSxcbiAgICBkZXNjcmlwdGlvbjogZy5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgfTtcbn1cblxuLyoqXG4gKiBNYXAgR3JhcGhUeXBlIGVudW0gdG8gcHJvdG8gc3RyaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3JhcGhUeXBlVG9Qcm90byhncmFwaFR5cGU6IEdyYXBoVHlwZSk6IHN0cmluZyB7XG4gIHN3aXRjaCAoZ3JhcGhUeXBlKSB7XG4gICAgY2FzZSBHcmFwaFR5cGUuT1BFTjpcbiAgICAgIHJldHVybiAnR1JBUEhfVFlQRV9PUEVOJztcbiAgICBjYXNlIEdyYXBoVHlwZS5DTE9TRUQ6XG4gICAgICByZXR1cm4gJ0dSQVBIX1RZUEVfQ0xPU0VEJztcbiAgICBjYXNlIEdyYXBoVHlwZS5PTlRPTE9HWTpcbiAgICAgIHJldHVybiAnR1JBUEhfVFlQRV9PTlRPTE9HWSc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAnR1JBUEhfVFlQRV9PUEVOJztcbiAgfVxufVxuXG4vKipcbiAqIE1hcCBwcm90byBzdHJpbmcgdG8gR3JhcGhUeXBlIGVudW0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm90b1RvR3JhcGhUeXBlKHByb3RvOiBzdHJpbmcpOiBHcmFwaFR5cGUge1xuICBzd2l0Y2ggKHByb3RvKSB7XG4gICAgY2FzZSAnR1JBUEhfVFlQRV9DTE9TRUQnOlxuICAgICAgcmV0dXJuIEdyYXBoVHlwZS5DTE9TRUQ7XG4gICAgY2FzZSAnR1JBUEhfVFlQRV9PTlRPTE9HWSc6XG4gICAgICByZXR1cm4gR3JhcGhUeXBlLk9OVE9MT0dZO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gR3JhcGhUeXBlLk9QRU47XG4gIH1cbn1cblxuLyoqXG4gKiBNYXAgcHJvdG8gSGVhbHRoU3RhdHVzIHRvIGVudW0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm90b1RvSGVhbHRoU3RhdHVzKHByb3RvOiBzdHJpbmcpOiBIZWFsdGhTdGF0dXMge1xuICBzd2l0Y2ggKHByb3RvKSB7XG4gICAgY2FzZSAnSEVBTFRIX1NUQVRVU19TRVJWSU5HJzpcbiAgICAgIHJldHVybiBIZWFsdGhTdGF0dXMuU0VSVklORztcbiAgICBjYXNlICdIRUFMVEhfU1RBVFVTX05PVF9TRVJWSU5HJzpcbiAgICAgIHJldHVybiBIZWFsdGhTdGF0dXMuTk9UX1NFUlZJTkc7XG4gICAgY2FzZSAnSEVBTFRIX1NUQVRVU19TRVJWSUNFX1VOS05PV04nOlxuICAgICAgcmV0dXJuIEhlYWx0aFN0YXR1cy5TRVJWSUNFX1VOS05PV047XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBIZWFsdGhTdGF0dXMuVU5LTk9XTjtcbiAgfVxufVxuXG4vKipcbiAqIE1hcCBDYWNoZVR5cGUgdG8gcHJvdG8gc3RyaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FjaGVUeXBlVG9Qcm90byhjYWNoZVR5cGU6IENhY2hlVHlwZSk6IHN0cmluZyB7XG4gIHN3aXRjaCAoY2FjaGVUeXBlKSB7XG4gICAgY2FzZSBDYWNoZVR5cGUuQVNUOlxuICAgICAgcmV0dXJuICdDQUNIRV9UWVBFX0FTVCc7XG4gICAgY2FzZSBDYWNoZVR5cGUuUExBTjpcbiAgICAgIHJldHVybiAnQ0FDSEVfVFlQRV9QTEFOJztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICdDQUNIRV9UWVBFX0FMTCc7XG4gIH1cbn1cblxuLyoqXG4gKiBDb252ZXJ0IE5vZGVEYXRhIHRvIHByb3RvIGZvcm1hdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vZGVEYXRhVG9Qcm90byhub2RlOiBhbnkpOiBhbnkge1xuICBjb25zdCBwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gIGlmIChub2RlLnByb3BlcnRpZXMpIHtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhub2RlLnByb3BlcnRpZXMpKSB7XG4gICAgICBwcm9wZXJ0aWVzW2tleV0gPSBjcmVhdGVUeXBlZFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBpZDogbm9kZS5pZCB8fCAnJyxcbiAgICBsYWJlbHM6IG5vZGUubGFiZWxzIHx8IFtdLFxuICAgIHByb3BlcnRpZXMsXG4gIH07XG59XG5cbi8qKlxuICogQ29udmVydCBFZGdlRGF0YSB0byBwcm90byBmb3JtYXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlZGdlRGF0YVRvUHJvdG8oZWRnZTogYW55KTogYW55IHtcbiAgY29uc3QgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICBpZiAoZWRnZS5wcm9wZXJ0aWVzKSB7XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZWRnZS5wcm9wZXJ0aWVzKSkge1xuICAgICAgcHJvcGVydGllc1trZXldID0gY3JlYXRlVHlwZWRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgbGFiZWw6IGVkZ2UubGFiZWwgfHwgJycsXG4gICAgZnJvbV9ub2RlX2lkOiBlZGdlLmZyb21Ob2RlSWQgfHwgJycsXG4gICAgdG9fbm9kZV9pZDogZWRnZS50b05vZGVJZCB8fCAnJyxcbiAgICBwcm9wZXJ0aWVzLFxuICB9O1xufVxuIl19
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9jb252ZXJ0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7QUFtQkgsMENBZ0JDO0FBS0QsMENBTUM7QUFLRCxnREFnQkM7QUE0REQsOENBZ0NDO0FBS0Qsd0RBTUM7QUFLRCw0Q0FRQztBQUtELDRDQVdDO0FBS0QsNENBU0M7QUFLRCxrREFXQztBQUtELDRDQVNDO0FBS0QsMENBWUM7QUFLRCwwQ0FjQztBQXJSRCwwQ0FBNEM7QUFDNUMsb0NBUWtCO0FBS2xCOztHQUVHO0FBQ0gsU0FBZ0IsZUFBZSxDQUM3QixLQUFhLEVBQ2IsT0FBdUIsRUFDdkIsTUFBbUIsRUFDbkIsV0FBeUI7SUFFekIsT0FBTztRQUNMLEdBQUcsRUFBRSxLQUFLO1FBQ1YsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLElBQUksT0FBTyxFQUFFLFlBQVksSUFBSSxNQUFNLENBQUMsWUFBWSxJQUFJLEVBQUU7UUFDeEYsVUFBVSxFQUFFLGVBQWUsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDO1FBQ3BELFVBQVUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEdBQUc7UUFDMUMsY0FBYyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLElBQUksR0FBRztRQUM3RCxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxPQUFPLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxpQ0FBaUM7UUFDaEgsU0FBUyxFQUFFLFdBQVcsRUFBRSxRQUFRLElBQUksS0FBSztRQUN6QyxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsY0FBYyxJQUFJLENBQUM7S0FDbkQsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxNQUE0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QU87UUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFO1FBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUU7UUFDekIsVUFBVTtLQUNYLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixlQUFlLENBQUMsSUFBUztJQUN2QyxNQUFNLFVBQVUsR0FBd0IsRUFBRSxDQUFDO0lBQzNDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzNELFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFBLHdCQUFnQixFQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTztRQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUU7UUFDakIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRTtRQUN2QixZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFO1FBQ25DLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUU7UUFDL0IsVUFBVTtLQUNYLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUeXBlIGNvbnZlcnNpb24gdXRpbGl0aWVzIGJldHdlZW4gZ1JQQyBwcm90byB0eXBlcyBhbmQgSmF2YVNjcmlwdCB0eXBlcy5cbiAqL1xuXG5pbXBvcnQgeyBSZXNwb25zZSwgUm93IH0gZnJvbSAnLi4vcmVzcG9uc2UnO1xuaW1wb3J0IHtcbiAgR3JhcGhUeXBlLFxuICBIZWFsdGhTdGF0dXMsXG4gIENhY2hlVHlwZSxcbiAgR3JhcGhJbmZvLFxuICBjcmVhdGVUeXBlZFZhbHVlLFxuICBQcm9wZXJ0eVR5cGUsXG4gIHR5cGVkVmFsdWVUb0pTLFxufSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBHcWxkYkNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBTZXNzaW9uIH0gZnJvbSAnLi4vc2Vzc2lvbic7XG5pbXBvcnQgeyBRdWVyeUNvbmZpZyB9IGZyb20gJy4uL2NsaWVudCc7XG5cbi8qKlxuICogQnVpbGQgYSBHUUwgcmVxdWVzdCBmcm9tIGNvbmZpZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkR3FsUmVxdWVzdChcbiAgcXVlcnk6IHN0cmluZyxcbiAgc2Vzc2lvbjogU2Vzc2lvbiB8IG51bGwsXG4gIGNvbmZpZzogR3FsZGJDb25maWcsXG4gIHF1ZXJ5Q29uZmlnPzogUXVlcnlDb25maWdcbik6IGFueSB7XG4gIHJldHVybiB7XG4gICAgZ3FsOiBxdWVyeSxcbiAgICBncmFwaF9uYW1lOiBxdWVyeUNvbmZpZz8uZ3JhcGhOYW1lIHx8IHNlc3Npb24/LmRlZmF1bHRHcmFwaCB8fCBjb25maWcuZGVmYXVsdEdyYXBoIHx8ICcnLFxuICAgIHBhcmFtZXRlcnM6IGJ1aWxkUGFyYW1ldGVycyhxdWVyeUNvbmZpZz8ucGFyYW1ldGVycyksXG4gICAgc2Vzc2lvbl9pZDogc2Vzc2lvbj8uaWQ/LnRvU3RyaW5nKCkgfHwgJzAnLFxuICAgIHRyYW5zYWN0aW9uX2lkOiBxdWVyeUNvbmZpZz8udHJhbnNhY3Rpb25JZD8udG9TdHJpbmcoKSB8fCAnMCcsXG4gICAgdGltZW91dDogTWF0aC5mbG9vcigocXVlcnlDb25maWc/LnRpbWVvdXQgfHwgY29uZmlnLnRpbWVvdXQgfHwgMzAwMDApIC8gMTAwMCksIC8vIENvbnZlcnQgbXMgdG8gc2Vjb25kcyBmb3IgZ1JQQ1xuICAgIHJlYWRfb25seTogcXVlcnlDb25maWc/LnJlYWRPbmx5IHx8IGZhbHNlLFxuICAgIG1heF9wYXRoX3Jlc3VsdHM6IHF1ZXJ5Q29uZmlnPy5tYXhQYXRoUmVzdWx0cyB8fCAwLFxuICB9O1xufVxuXG4vKipcbiAqIEJ1aWxkIHBhcmFtZXRlcnMgYXJyYXkgZm9yIGdSUEMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFBhcmFtZXRlcnMocGFyYW1zPzogUmVjb3JkPHN0cmluZywgYW55Pik6IGFueVtdIHtcbiAgaWYgKCFwYXJhbXMpIHJldHVybiBbXTtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHBhcmFtcykubWFwKChbbmFtZSwgdmFsdWVdKSA9PiAoe1xuICAgIG5hbWUsXG4gICAgdmFsdWU6IGNyZWF0ZVR5cGVkVmFsdWUodmFsdWUpLFxuICB9KSk7XG59XG5cbi8qKlxuICogQ29udmVydCBnUlBDIHJlc3BvbnNlIHRvIFJlc3BvbnNlIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRHcWxSZXNwb25zZShncnBjUmVzcG9uc2U6IGFueSk6IFJlc3BvbnNlIHtcbiAgY29uc3QgY29sdW1ucyA9IGdycGNSZXNwb25zZS5jb2x1bW5zIHx8IFtdO1xuICBjb25zdCByb3dzOiBSb3dbXSA9IChncnBjUmVzcG9uc2Uucm93cyB8fCBbXSkubWFwKChyb3c6IGFueSkgPT4ge1xuICAgIGNvbnN0IHJhd1ZhbHVlcyA9IHJvdy52YWx1ZXMgfHwgW107XG4gICAgY29uc3QgdmFsdWVzID0gcmF3VmFsdWVzLm1hcCgodHY6IGFueSkgPT4gY29udmVydFR5cGVkVmFsdWUodHYpKTtcbiAgICBjb25zdCB0eXBlcyA9IHJhd1ZhbHVlcy5tYXAoKHR2OiBhbnkpID0+IHByb3RvVHlwZVRvRW51bSh0dj8udHlwZSkpO1xuICAgIHJldHVybiBuZXcgUm93KHZhbHVlcywgdHlwZXMpO1xuICB9KTtcbiAgcmV0dXJuIG5ldyBSZXNwb25zZShcbiAgICBjb2x1bW5zLFxuICAgIHJvd3MsXG4gICAgcGFyc2VJbnQoZ3JwY1Jlc3BvbnNlLnJvd19jb3VudCB8fCAnMCcsIDEwKSxcbiAgICBncnBjUmVzcG9uc2UuaGFzX21vcmUgfHwgZmFsc2UsXG4gICAgZ3JwY1Jlc3BvbnNlLndhcm5pbmdzIHx8IFtdLFxuICAgIHBhcnNlSW50KGdycGNSZXNwb25zZS5yb3dzX2FmZmVjdGVkIHx8ICcwJywgMTApXG4gICk7XG59XG5cbi8qKlxuICogTWFwIHByb3RvIHR5cGUgc3RyaW5nIG9yIG51bWJlciB0byBQcm9wZXJ0eVR5cGUgZW51bS5cbiAqIEhhbmRsZXMgYm90aCBzdHJpbmcgZW51bSBuYW1lcyAoZS5nLiwgJ1BST1BFUlRZX1RZUEVfU1RSSU5HJykgYW5kIG51bWVyaWMgdmFsdWVzLlxuICovXG5mdW5jdGlvbiBwcm90b1R5cGVUb0VudW0ocHJvdG9UeXBlOiBzdHJpbmcgfCBudW1iZXIpOiBQcm9wZXJ0eVR5cGUge1xuICAvLyBIYW5kbGUgbnVtZXJpYyBlbnVtIHZhbHVlcyBkaXJlY3RseVxuICBpZiAodHlwZW9mIHByb3RvVHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAvLyBJZiBpdCdzIGFscmVhZHkgYSB2YWxpZCBQcm9wZXJ0eVR5cGUgbnVtYmVyLCByZXR1cm4gaXQgZGlyZWN0bHlcbiAgICAvLyBQcm9wZXJ0eVR5cGUgcmFuZ2VzIGZyb20gVU5TRVQoMCkgdG8gRURHRSgzMylcbiAgICBpZiAocHJvdG9UeXBlID49IFByb3BlcnR5VHlwZS5VTlNFVCAmJiBwcm90b1R5cGUgPD0gUHJvcGVydHlUeXBlLkVER0UpIHtcbiAgICAgIHJldHVybiBwcm90b1R5cGUgYXMgUHJvcGVydHlUeXBlO1xuICAgIH1cbiAgICByZXR1cm4gUHJvcGVydHlUeXBlLk5VTEw7XG4gIH1cblxuICBjb25zdCB0eXBlTWFwOiBSZWNvcmQ8c3RyaW5nLCBQcm9wZXJ0eVR5cGU+ID0ge1xuICAgICdQUk9QRVJUWV9UWVBFX05VTEwnOiBQcm9wZXJ0eVR5cGUuTlVMTCxcbiAgICAnUFJPUEVSVFlfVFlQRV9VTlNFVCc6IFByb3BlcnR5VHlwZS5VTlNFVCxcbiAgICAnUFJPUEVSVFlfVFlQRV9CT09MJzogUHJvcGVydHlUeXBlLkJPT0wsXG4gICAgJ1BST1BFUlRZX1RZUEVfSU5UMzInOiBQcm9wZXJ0eVR5cGUuSU5UMzIsXG4gICAgJ1BST1BFUlRZX1RZUEVfVUlOVDMyJzogUHJvcGVydHlUeXBlLlVJTlQzMixcbiAgICAnUFJPUEVSVFlfVFlQRV9JTlQ2NCc6IFByb3BlcnR5VHlwZS5JTlQ2NCxcbiAgICAnUFJPUEVSVFlfVFlQRV9VSU5UNjQnOiBQcm9wZXJ0eVR5cGUuVUlOVDY0LFxuICAgICdQUk9QRVJUWV9UWVBFX0ZMT0FUJzogUHJvcGVydHlUeXBlLkZMT0FULFxuICAgICdQUk9QRVJUWV9UWVBFX0RPVUJMRSc6IFByb3BlcnR5VHlwZS5ET1VCTEUsXG4gICAgJ1BST1BFUlRZX1RZUEVfU1RSSU5HJzogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICAnUFJPUEVSVFlfVFlQRV9URVhUJzogUHJvcGVydHlUeXBlLlRFWFQsXG4gICAgJ1BST1BFUlRZX1RZUEVfQkxPQic6IFByb3BlcnR5VHlwZS5CTE9CLFxuICAgICdQUk9QRVJUWV9UWVBFX1RJTUVTVEFNUCc6IFByb3BlcnR5VHlwZS5USU1FU1RBTVAsXG4gICAgJ1BST1BFUlRZX1RZUEVfREFURVRJTUUnOiBQcm9wZXJ0eVR5cGUuREFURVRJTUUsXG4gICAgJ1BST1BFUlRZX1RZUEVfREFURSc6IFByb3BlcnR5VHlwZS5EQVRFLFxuICAgICdQUk9QRVJUWV9UWVBFX0xPQ0FMX0RBVEVUSU1FJzogUHJvcGVydHlUeXBlLkxPQ0FMX0RBVEVUSU1FLFxuICAgICdQUk9QRVJUWV9UWVBFX1pPTkVEX0RBVEVUSU1FJzogUHJvcGVydHlUeXBlLlpPTkVEX0RBVEVUSU1FLFxuICAgICdQUk9QRVJUWV9UWVBFX0xPQ0FMX1RJTUUnOiBQcm9wZXJ0eVR5cGUuTE9DQUxfVElNRSxcbiAgICAnUFJPUEVSVFlfVFlQRV9aT05FRF9USU1FJzogUHJvcGVydHlUeXBlLlpPTkVEX1RJTUUsXG4gICAgJ1BST1BFUlRZX1RZUEVfWUVBUl9UT19NT05USCc6IFByb3BlcnR5VHlwZS5ZRUFSX1RPX01PTlRILFxuICAgICdQUk9QRVJUWV9UWVBFX0RBWV9UT19TRUNPTkQnOiBQcm9wZXJ0eVR5cGUuREFZX1RPX1NFQ09ORCxcbiAgICAnUFJPUEVSVFlfVFlQRV9ERUNJTUFMJzogUHJvcGVydHlUeXBlLkRFQ0lNQUwsXG4gICAgJ1BST1BFUlRZX1RZUEVfUE9JTlQnOiBQcm9wZXJ0eVR5cGUuUE9JTlQsXG4gICAgJ1BST1BFUlRZX1RZUEVfUE9JTlQzRCc6IFByb3BlcnR5VHlwZS5QT0lOVDNELFxuICAgICdQUk9QRVJUWV9UWVBFX1ZFQ1RPUic6IFByb3BlcnR5VHlwZS5WRUNUT1IsXG4gICAgJ1BST1BFUlRZX1RZUEVfTElTVCc6IFByb3BlcnR5VHlwZS5MSVNULFxuICAgICdQUk9QRVJUWV9UWVBFX1NFVCc6IFByb3BlcnR5VHlwZS5TRVQsXG4gICAgJ1BST1BFUlRZX1RZUEVfTUFQJzogUHJvcGVydHlUeXBlLk1BUCxcbiAgICAnUFJPUEVSVFlfVFlQRV9OT0RFJzogUHJvcGVydHlUeXBlLk5PREUsXG4gICAgJ1BST1BFUlRZX1RZUEVfRURHRSc6IFByb3BlcnR5VHlwZS5FREdFLFxuICAgICdQUk9QRVJUWV9UWVBFX1BBVEgnOiBQcm9wZXJ0eVR5cGUuUEFUSCxcbiAgICAnUFJPUEVSVFlfVFlQRV9SRUNPUkQnOiBQcm9wZXJ0eVR5cGUuUkVDT1JELFxuICAgICdQUk9QRVJUWV9UWVBFX1RBQkxFJzogUHJvcGVydHlUeXBlLlRBQkxFLFxuICAgICdQUk9QRVJUWV9UWVBFX0VSUk9SJzogUHJvcGVydHlUeXBlLkVSUk9SLFxuICB9O1xuICByZXR1cm4gdHlwZU1hcFtwcm90b1R5cGVdID8/IFByb3BlcnR5VHlwZS5OVUxMO1xufVxuXG4vKipcbiAqIENvbnZlcnQgZ1JQQyBUeXBlZFZhbHVlIHRvIEpTIHZhbHVlLlxuICogVXNlcyB0aGUgc2FtZSBkZWNvZGluZyBsb2dpYyBhcyB0eXBlZFZhbHVlVG9KUyBmb3IgY29uc2lzdGVuY3kuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VHlwZWRWYWx1ZSh0djogYW55KTogYW55IHtcbiAgaWYgKCF0diB8fCB0di5pc19udWxsIHx8IHR2LmlzTnVsbCkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgZGF0YSA9IHR2LmRhdGE7XG4gIGNvbnN0IHByb3RvVHlwZSA9IHR2LnR5cGU7XG5cbiAgLy8gSGFuZGxlIG51bGwgdHlwZXMgKGJvdGggc3RyaW5nIGFuZCBudW1lcmljIGVudW0gdmFsdWVzKVxuICBpZiAocHJvdG9UeXBlID09PSAnUFJPUEVSVFlfVFlQRV9OVUxMJyB8fCBwcm90b1R5cGUgPT09ICdQUk9QRVJUWV9UWVBFX1VOU0VUJyB8fFxuICAgICAgcHJvdG9UeXBlID09PSBQcm9wZXJ0eVR5cGUuTlVMTCB8fCBwcm90b1R5cGUgPT09IFByb3BlcnR5VHlwZS5VTlNFVCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gSGFuZGxlIGVtcHR5IGRhdGEgLSBidXQgU1RSSU5HIHR5cGUgd2l0aCBlbXB0eSBkYXRhIHNob3VsZCByZXR1cm4gXCJcIlxuICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICBjb25zdCBpc1N0cmluZ1R5cGUgPSBwcm90b1R5cGUgPT09ICdQUk9QRVJUWV9UWVBFX1NUUklORycgfHwgcHJvdG9UeXBlID09PSAnUFJPUEVSVFlfVFlQRV9URVhUJyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RvVHlwZSA9PT0gUHJvcGVydHlUeXBlLlNUUklORyB8fCBwcm90b1R5cGUgPT09IFByb3BlcnR5VHlwZS5URVhUO1xuICAgIGNvbnN0IGlzQmxvYlR5cGUgPSBwcm90b1R5cGUgPT09ICdQUk9QRVJUWV9UWVBFX0JMT0InIHx8IHByb3RvVHlwZSA9PT0gUHJvcGVydHlUeXBlLkJMT0I7XG5cbiAgICBpZiAoaXNTdHJpbmdUeXBlKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGlmIChpc0Jsb2JUeXBlKSB7XG4gICAgICByZXR1cm4gQnVmZmVyLmFsbG9jKDApO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5mcm9tKGRhdGEpO1xuICBjb25zdCBlbnVtVHlwZSA9IHByb3RvVHlwZVRvRW51bShwcm90b1R5cGUpO1xuXG4gIC8vIFVzZSB0eXBlZFZhbHVlVG9KUyBmb3IgY29uc2lzdGVudCBkZWNvZGluZ1xuICByZXR1cm4gdHlwZWRWYWx1ZVRvSlMoeyB0eXBlOiBlbnVtVHlwZSwgZGF0YTogYnVmLCBpc051bGw6IGZhbHNlIH0pO1xufVxuXG4vKipcbiAqIENvbnZlcnQgcHJvdG8gcHJvcGVydGllcyBtYXAgdG8gSlMgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFByb3RvUHJvcGVydGllcyhwcm90b1Byb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICBmb3IgKGNvbnN0IFtrZXksIHR2XSBvZiBPYmplY3QuZW50cmllcyhwcm90b1Byb3BzKSkge1xuICAgIHJlc3VsdFtrZXldID0gY29udmVydFR5cGVkVmFsdWUodHYpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ29udmVydCBHcmFwaEluZm8gZnJvbSBwcm90byB0byBKUyBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0R3JhcGhJbmZvKGc6IGFueSk6IEdyYXBoSW5mbyB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogZy5uYW1lIHx8ICcnLFxuICAgIGdyYXBoVHlwZTogcHJvdG9Ub0dyYXBoVHlwZShnLmdyYXBoX3R5cGUpLFxuICAgIG5vZGVDb3VudDogcGFyc2VJbnQoZy5ub2RlX2NvdW50IHx8ICcwJywgMTApLFxuICAgIGVkZ2VDb3VudDogcGFyc2VJbnQoZy5lZGdlX2NvdW50IHx8ICcwJywgMTApLFxuICAgIGRlc2NyaXB0aW9uOiBnLmRlc2NyaXB0aW9uIHx8ICcnLFxuICB9O1xufVxuXG4vKipcbiAqIE1hcCBHcmFwaFR5cGUgZW51bSB0byBwcm90byBzdHJpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBncmFwaFR5cGVUb1Byb3RvKGdyYXBoVHlwZTogR3JhcGhUeXBlKTogc3RyaW5nIHtcbiAgc3dpdGNoIChncmFwaFR5cGUpIHtcbiAgICBjYXNlIEdyYXBoVHlwZS5PUEVOOlxuICAgICAgcmV0dXJuICdHUkFQSF9UWVBFX09QRU4nO1xuICAgIGNhc2UgR3JhcGhUeXBlLkNMT1NFRDpcbiAgICAgIHJldHVybiAnR1JBUEhfVFlQRV9DTE9TRUQnO1xuICAgIGNhc2UgR3JhcGhUeXBlLk9OVE9MT0dZOlxuICAgICAgcmV0dXJuICdHUkFQSF9UWVBFX09OVE9MT0dZJztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICdHUkFQSF9UWVBFX09QRU4nO1xuICB9XG59XG5cbi8qKlxuICogTWFwIHByb3RvIHN0cmluZyB0byBHcmFwaFR5cGUgZW51bS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3RvVG9HcmFwaFR5cGUocHJvdG86IHN0cmluZyk6IEdyYXBoVHlwZSB7XG4gIHN3aXRjaCAocHJvdG8pIHtcbiAgICBjYXNlICdHUkFQSF9UWVBFX0NMT1NFRCc6XG4gICAgICByZXR1cm4gR3JhcGhUeXBlLkNMT1NFRDtcbiAgICBjYXNlICdHUkFQSF9UWVBFX09OVE9MT0dZJzpcbiAgICAgIHJldHVybiBHcmFwaFR5cGUuT05UT0xPR1k7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBHcmFwaFR5cGUuT1BFTjtcbiAgfVxufVxuXG4vKipcbiAqIE1hcCBwcm90byBIZWFsdGhTdGF0dXMgdG8gZW51bS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3RvVG9IZWFsdGhTdGF0dXMocHJvdG86IHN0cmluZyk6IEhlYWx0aFN0YXR1cyB7XG4gIHN3aXRjaCAocHJvdG8pIHtcbiAgICBjYXNlICdIRUFMVEhfU1RBVFVTX1NFUlZJTkcnOlxuICAgICAgcmV0dXJuIEhlYWx0aFN0YXR1cy5TRVJWSU5HO1xuICAgIGNhc2UgJ0hFQUxUSF9TVEFUVVNfTk9UX1NFUlZJTkcnOlxuICAgICAgcmV0dXJuIEhlYWx0aFN0YXR1cy5OT1RfU0VSVklORztcbiAgICBjYXNlICdIRUFMVEhfU1RBVFVTX1NFUlZJQ0VfVU5LTk9XTic6XG4gICAgICByZXR1cm4gSGVhbHRoU3RhdHVzLlNFUlZJQ0VfVU5LTk9XTjtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIEhlYWx0aFN0YXR1cy5VTktOT1dOO1xuICB9XG59XG5cbi8qKlxuICogTWFwIENhY2hlVHlwZSB0byBwcm90byBzdHJpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWNoZVR5cGVUb1Byb3RvKGNhY2hlVHlwZTogQ2FjaGVUeXBlKTogc3RyaW5nIHtcbiAgc3dpdGNoIChjYWNoZVR5cGUpIHtcbiAgICBjYXNlIENhY2hlVHlwZS5BU1Q6XG4gICAgICByZXR1cm4gJ0NBQ0hFX1RZUEVfQVNUJztcbiAgICBjYXNlIENhY2hlVHlwZS5QTEFOOlxuICAgICAgcmV0dXJuICdDQUNIRV9UWVBFX1BMQU4nO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJ0NBQ0hFX1RZUEVfQUxMJztcbiAgfVxufVxuXG4vKipcbiAqIENvbnZlcnQgTm9kZURhdGEgdG8gcHJvdG8gZm9ybWF0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9kZURhdGFUb1Byb3RvKG5vZGU6IGFueSk6IGFueSB7XG4gIGNvbnN0IHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgaWYgKG5vZGUucHJvcGVydGllcykge1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG5vZGUucHJvcGVydGllcykpIHtcbiAgICAgIHByb3BlcnRpZXNba2V5XSA9IGNyZWF0ZVR5cGVkVmFsdWUodmFsdWUpO1xuICAgIH1cbiAgfVxuICByZXR1cm4ge1xuICAgIGlkOiBub2RlLmlkIHx8ICcnLFxuICAgIGxhYmVsczogbm9kZS5sYWJlbHMgfHwgW10sXG4gICAgcHJvcGVydGllcyxcbiAgfTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IEVkZ2VEYXRhIHRvIHByb3RvIGZvcm1hdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVkZ2VEYXRhVG9Qcm90byhlZGdlOiBhbnkpOiBhbnkge1xuICBjb25zdCBwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gIGlmIChlZGdlLnByb3BlcnRpZXMpIHtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhlZGdlLnByb3BlcnRpZXMpKSB7XG4gICAgICBwcm9wZXJ0aWVzW2tleV0gPSBjcmVhdGVUeXBlZFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBpZDogZWRnZS5pZCB8fCAnJyxcbiAgICBsYWJlbDogZWRnZS5sYWJlbCB8fCAnJyxcbiAgICBmcm9tX25vZGVfaWQ6IGVkZ2UuZnJvbU5vZGVJZCB8fCAnJyxcbiAgICB0b19ub2RlX2lkOiBlZGdlLnRvTm9kZUlkIHx8ICcnLFxuICAgIHByb3BlcnRpZXMsXG4gIH07XG59XG4iXX0=
|
|
@@ -22,8 +22,9 @@ class DataService {
|
|
|
22
22
|
graph_name: graphName,
|
|
23
23
|
nodes: nodes.map((n) => (0, converters_1.nodeDataToProto)(n)),
|
|
24
24
|
};
|
|
25
|
-
// ALWAYS set options (even when undefined) to avoid deprecated bulk operations error
|
|
26
|
-
|
|
25
|
+
// ALWAYS set options (even when undefined) to avoid deprecated bulk operations error.
|
|
26
|
+
// `mode` is a numeric enum aligned with proto InsertMode values; pass through directly.
|
|
27
|
+
request.options = { mode: (config?.options?.mode ?? 0) };
|
|
27
28
|
if (config?.bulkImportSessionId) {
|
|
28
29
|
request.bulk_import_session_id = config.bulkImportSessionId;
|
|
29
30
|
}
|
|
@@ -44,9 +45,10 @@ class DataService {
|
|
|
44
45
|
graph_name: graphName,
|
|
45
46
|
edges: edges.map((e) => (0, converters_1.edgeDataToProto)(e)),
|
|
46
47
|
};
|
|
47
|
-
// ALWAYS set options (even when undefined) to avoid deprecated bulk operations error
|
|
48
|
+
// ALWAYS set options (even when undefined) to avoid deprecated bulk operations error.
|
|
48
49
|
request.options = {
|
|
49
50
|
skip_invalid_nodes: config?.options?.skipInvalidNodes || false,
|
|
51
|
+
mode: (config?.options?.mode ?? 0),
|
|
50
52
|
};
|
|
51
53
|
if (config?.bulkImportSessionId) {
|
|
52
54
|
request.bulk_import_session_id = config.bulkImportSessionId;
|
|
@@ -203,4 +205,4 @@ class DataService {
|
|
|
203
205
|
}
|
|
204
206
|
}
|
|
205
207
|
exports.DataService = DataService;
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL2RhdGEtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7OztBQWNILDBDQUE0QztBQUM1Qyw2Q0FBd0Y7QUFHeEY7O0dBRUc7QUFDSCxNQUFhLFdBQVc7SUFDRjtJQUFwQixZQUFvQixHQUFtQjtRQUFuQixRQUFHLEdBQUgsR0FBRyxDQUFnQjtJQUFHLENBQUM7SUFFM0M7O09BRUc7SUFDSCxLQUFLLENBQUMsV0FBVyxDQUNmLFNBQWlCLEVBQ2pCLEtBQWlCLEVBQ2pCLE1BQTBCO1FBRTFCLE1BQU0sT0FBTyxHQUFRO1lBQ25CLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFBLDRCQUFlLEVBQUMsQ0FBQyxDQUFDLENBQUM7U0FDNUMsQ0FBQztRQUVGLHFGQUFxRjtRQUNyRixPQUFPLENBQUMsT0FBTyxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBRXJFLElBQUksTUFBTSxFQUFFLG1CQUFtQixFQUFFLENBQUM7WUFDaEMsT0FBTyxDQUFDLHNCQUFzQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQztRQUM5RCxDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQy9DLE1BQU0sUUFBUSxHQUFRLE1BQU0sSUFBQSx3QkFBYSxFQUN2QyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQzVCLGFBQWEsRUFDYixPQUFPLEVBQ1AsUUFBUSxDQUNULENBQUM7UUFFRixPQUFPO1lBQ0wsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLElBQUksS0FBSztZQUNsQyxPQUFPLEVB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QyxRQUFRLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQzs0QkFDN0MsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRTs0QkFDZCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFOzRCQUNwQixVQUFVLEVBQUUsQ0FBQyxDQUFDLFlBQVksSUFBSSxFQUFFOzRCQUNoQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFVBQVUsSUFBSSxFQUFFOzRCQUM1QixVQUFVLEVBQUUsSUFBQSxtQ0FBc0IsRUFBQyxDQUFDLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQzt5QkFDdkQsQ0FBQyxDQUFDO3dCQUNILE9BQU8sRUFBRSxRQUFRLENBQUMsUUFBUSxJQUFJLEtBQUs7cUJBQ3BDLENBQUMsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXBSRCxrQ0FvUkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERhdGEgc2VydmljZSBoYW5kbGVzIG5vZGUgYW5kIGVkZ2UgaW5zZXJ0L2RlbGV0ZS9leHBvcnQgb3BlcmF0aW9ucy5cbiAqL1xuXG5pbXBvcnQgeyBTZXJ2aWNlQ29udGV4dCB9IGZyb20gJy4vc2VydmljZS1jb250ZXh0JztcbmltcG9ydCB7XG4gIEluc2VydE5vZGVzUmVzdWx0LFxuICBJbnNlcnRFZGdlc1Jlc3VsdCxcbiAgRGVsZXRlUmVzdWx0LFxuICBFeHBvcnROb2Rlc1Jlc3VsdCxcbiAgRXhwb3J0RWRnZXNSZXN1bHQsXG4gIEV4cG9ydENvbmZpZyxcbiAgRXhwb3J0Q2h1bmssXG4gIEV4cG9ydFN0YXRzLFxufSBmcm9tICcuLi9yZXNwb25zZSc7XG5pbXBvcnQgeyBOb2RlRGF0YSwgRWRnZURhdGEgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBwcm9taXNpZnlDYWxsIH0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgbm9kZURhdGFUb1Byb3RvLCBlZGdlRGF0YVRvUHJvdG8sIGNvbnZlcnRQcm90b1Byb3BlcnRpZXMgfSBmcm9tICcuL2NvbnZlcnRlcnMnO1xuaW1wb3J0IHsgSW5zZXJ0Tm9kZXNDb25maWcsIEluc2VydEVkZ2VzQ29uZmlnIH0gZnJvbSAnLi4vY2xpZW50JztcblxuLyoqXG4gKiBEYXRhIHNlcnZpY2UgZm9yIGluc2VydGluZywgZGVsZXRpbmcsIGFuZCBleHBvcnRpbmcgZ3JhcGggZGF0YS5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjdHg6IFNlcnZpY2VDb250ZXh0KSB7fVxuXG4gIC8qKlxuICAgKiBJbnNlcnQgbXVsdGlwbGUgbm9kZXMgaW50byBhIGdyYXBoLlxuICAgKi9cbiAgYXN5bmMgaW5zZXJ0Tm9kZXMoXG4gICAgZ3JhcGhOYW1lOiBzdHJpbmcsXG4gICAgbm9kZXM6IE5vZGVEYXRhW10sXG4gICAgY29uZmlnPzogSW5zZXJ0Tm9kZXNDb25maWdcbiAgKTogUHJvbWlzZTxJbnNlcnROb2Rlc1Jlc3VsdD4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IGFueSA9IHtcbiAgICAgIGdyYXBoX25hbWU6IGdyYXBoTmFtZSxcbiAgICAgIG5vZGVzOiBub2Rlcy5tYXAoKG4pID0+IG5vZGVEYXRhVG9Qcm90byhuKSksXG4gICAgfTtcblxuICAgIC8vIEFMV0FZUyBzZXQgb3B0aW9ucyAoZXZlbiB3aGVuIHVuZGVmaW5lZCkgdG8gYXZvaWQgZGVwcmVjYXRlZCBidWxrIG9wZXJhdGlvbnMgZXJyb3JcbiAgICByZXF1ZXN0Lm9wdGlvbnMgPSB7IG92ZXJ3cml0ZTogY29uZmlnPy5vcHRpb25zPy5vdmVyd3JpdGUgfHwgZmFsc2UgfTtcblxuICAgIGlmIChjb25maWc/LmJ1bGtJbXBvcnRTZXNzaW9uSWQpIHtcbiAgICAgIHJlcXVlc3QuYnVsa19pbXBvcnRfc2Vzc2lvbl9pZCA9IGNvbmZpZy5idWxrSW1wb3J0U2Vzc2lvbklkO1xuICAgIH1cblxuICAgIGNvbnN0IG1ldGFkYXRhID0gdGhpcy5jdHguZ2V0U2Vzc2lvbk1ldGFkYXRhKCk7XG4gICAgY29uc3QgcmVzcG9uc2U6IGFueSA9IGF3YWl0IHByb21pc2lmeUNhbGwoXG4gICAgICB0aGlzLmN0eC5jbGllbnRzLmRhdGFTZXJ2aWNlLFxuICAgICAgJ0luc2VydE5vZGVzJyxcbiAgICAgIHJlcXVlc3QsXG4gICAgICBtZXRhZGF0YVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogcmVzcG9uc2Uuc3VjY2VzcyB8fCBmYWxzZSxcbiAgICAgIG5vZGVJZHM6IHJlc3BvbnNlLm5vZGVfaWRzIHx8IFtdLFxuICAgICAgbm9kZUNvdW50OiBwYXJzZUludChyZXNwb25zZS5ub2RlX2NvdW50IHx8ICcwJywgMTApLFxuICAgICAgbWVzc2FnZTogcmVzcG9uc2UubWVzc2FnZSB8fCAnJyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEluc2VydCBtdWx0aXBsZSBlZGdlcyBpbnRvIGEgZ3JhcGguXG4gICAqL1xuICBhc3luYyBpbnNlcnRFZGdlcyhcbiAgICBncmFwaE5hbWU6IHN0cmluZyxcbiAgICBlZGdlczogRWRnZURhdGFbXSxcbiAgICBjb25maWc/OiBJbnNlcnRFZGdlc0NvbmZpZ1xuICApOiBQcm9taXNlPEluc2VydEVkZ2VzUmVzdWx0PiB7XG4gICAgY29uc3QgcmVxdWVzdDogYW55ID0ge1xuICAgICAgZ3JhcGhfbmFtZTogZ3JhcGhOYW1lLFxuICAgICAgZWRnZXM6IGVkZ2VzLm1hcCgoZSkgPT4gZWRnZURhdGFUb1Byb3RvKGUpKSxcbiAgICB9O1xuXG4gICAgLy8gQUxXQVlTIHNldCBvcHRpb25zIChldmVuIHdoZW4gdW5kZWZpbmVkKSB0byBhdm9pZCBkZXByZWNhdGVkIGJ1bGsgb3BlcmF0aW9ucyBlcnJvclxuICAgIHJlcXVlc3Qub3B0aW9ucyA9IHtcbiAgICAgIHNraXBfaW52YWxpZF9ub2RlczogY29uZmlnPy5vcHRpb25zPy5za2lwSW52YWxpZE5vZGVzIHx8IGZhbHNlLFxuICAgIH07XG5cbiAgICBpZiAoY29uZmlnPy5idWxrSW1wb3J0U2Vzc2lvbklkKSB7XG4gICAgICByZXF1ZXN0LmJ1bGtfaW1wb3J0X3Nlc3Npb25faWQgPSBjb25maWcuYnVsa0ltcG9ydFNlc3Npb25JZDtcbiAgICB9XG5cbiAgICBjb25zdCBtZXRhZGF0YSA9IHRoaXMuY3R4LmdldFNlc3Npb25NZXRhZGF0YSgpO1xuICAgIGNvbnN0IHJlc3BvbnNlOiBhbnkgPSBhd2FpdCBwcm9taXNpZnlDYWxsKFxuICAgICAgdGhpcy5jdHguY2xpZW50cy5kYXRhU2VydmljZSxcbiAgICAgICdJbnNlcnRFZGdlcycsXG4gICAgICByZXF1ZXN0LFxuICAgICAgbWV0YWRhdGFcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Y2Nlc3M6IHJlc3BvbnNlLnN1Y2Nlc3MgfHwgZmFsc2UsXG4gICAgICBlZGdlSWRzOiByZXNwb25zZS5lZGdlX2lkcyB8fCBbXSxcbiAgICAgIGVkZ2VDb3VudDogcGFyc2VJbnQocmVzcG9uc2UuZWRnZV9jb3VudCB8fCAnMCcsIDEwKSxcbiAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLm1lc3NhZ2UgfHwgJycsXG4gICAgICBza2lwcGVkQ291bnQ6IHBhcnNlSW50KHJlc3BvbnNlLnNraXBwZWRfY291bnQgfHwgJzAnLCAxMCksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgbm9kZXMgZnJvbSBhIGdyYXBoLlxuICAgKi9cbiAgYXN5bmMgZGVsZXRlTm9kZXMoXG4gICAgZ3JhcGhOYW1lOiBzdHJpbmcsXG4gICAgbm9kZUlkcz86IHN0cmluZ1tdLFxuICAgIGxhYmVscz86IHN0cmluZ1tdLFxuICAgIHdoZXJlPzogc3RyaW5nXG4gICk6IFByb21pc2U8RGVsZXRlUmVzdWx0PiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgIGdyYXBoX25hbWU6IGdyYXBoTmFtZSxcbiAgICAgIG5vZGVfaWRzOiBub2RlSWRzIHx8IFtdLFxuICAgICAgbGFiZWxzOiBsYWJlbHMgfHwgW10sXG4gICAgICB3aGVyZTogd2hlcmUgfHwgJycsXG4gICAgfTtcblxuICAgIGNvbnN0IG1ldGFkYXRhID0gdGhpcy5jdHguZ2V0U2Vzc2lvbk1ldGFkYXRhKCk7XG4gICAgY29uc3QgcmVzcG9uc2U6IGFueSA9IGF3YWl0IHByb21pc2lmeUNhbGwoXG4gICAgICB0aGlzLmN0eC5jbGllbnRzLmRhdGFTZXJ2aWNlLFxuICAgICAgJ0RlbGV0ZU5vZGVzJyxcbiAgICAgIHJlcXVlc3QsXG4gICAgICBtZXRhZGF0YVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogcmVzcG9uc2Uuc3VjY2VzcyB8fCBmYWxzZSxcbiAgICAgIGRlbGV0ZWRDb3VudDogcGFyc2VJbnQocmVzcG9uc2UuZGVsZXRlZF9jb3VudCB8fCAnMCcsIDEwKSxcbiAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLm1lc3NhZ2UgfHwgJycsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgZWRnZXMgZnJvbSBhIGdyYXBoLlxuICAgKi9cbiAgYXN5bmMgZGVsZXRlRWRnZXMoXG4gICAgZ3JhcGhOYW1lOiBzdHJpbmcsXG4gICAgZWRnZUlkcz86IHN0cmluZ1tdLFxuICAgIGxhYmVsPzogc3RyaW5nLFxuICAgIHdoZXJlPzogc3RyaW5nXG4gICk6IFByb21pc2U8RGVsZXRlUmVzdWx0PiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgIGdyYXBoX25hbWU6IGdyYXBoTmFtZSxcbiAgICAgIGVkZ2VfaWRzOiBlZGdlSWRzIHx8IFtdLFxuICAgICAgbGFiZWw6IGxhYmVsIHx8ICcnLFxuICAgICAgd2hlcmU6IHdoZXJlIHx8ICcnLFxuICAgIH07XG5cbiAgICBjb25zdCBtZXRhZGF0YSA9IHRoaXMuY3R4LmdldFNlc3Npb25NZXRhZGF0YSgpO1xuICAgIGNvbnN0IHJlc3BvbnNlOiBhbnkgPSBhd2FpdCBwcm9taXNpZnlDYWxsKFxuICAgICAgdGhpcy5jdHguY2xpZW50cy5kYXRhU2VydmljZSxcbiAgICAgICdEZWxldGVFZGdlcycsXG4gICAgICByZXF1ZXN0LFxuICAgICAgbWV0YWRhdGFcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Y2Nlc3M6IHJlc3BvbnNlLnN1Y2Nlc3MgfHwgZmFsc2UsXG4gICAgICBkZWxldGVkQ291bnQ6IHBhcnNlSW50KHJlc3BvbnNlLmRlbGV0ZWRfY291bnQgfHwgJzAnLCAxMCksXG4gICAgICBtZXNzYWdlOiByZXNwb25zZS5tZXNzYWdlIHx8ICcnLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRXhwb3J0IGdyYXBoIGRhdGEgaW4gSlNPTiBMaW5lcyBmb3JtYXQgKHN0cmVhbWluZykuXG4gICAqL1xuICBhc3luYyBleHBvcnQoXG4gICAgY29uZmlnOiBFeHBvcnRDb25maWcsXG4gICAgY2FsbGJhY2s/OiAoY2h1bms6IEV4cG9ydENodW5rKSA9PiB2b2lkXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICBncmFwaF9uYW1lOiBjb25maWcuZ3JhcGhOYW1lLFxuICAgICAgYmF0Y2hfc2l6ZTogY29uZmlnLmJhdGNoU2l6ZSB8fCAwLFxuICAgICAgZXhwb3J0X25vZGVzOiBjb25maWcuZXhwb3J0Tm9kZXMgIT09IGZhbHNlLFxuICAgICAgZXhwb3J0X2VkZ2VzOiBjb25maWcuZXhwb3J0RWRnZXMgIT09IGZhbHNlLFxuICAgICAgbm9kZV9sYWJlbHM6IGNvbmZpZy5ub2RlTGFiZWxzIHx8IFtdLFxuICAgICAgZWRnZV9sYWJlbHM6IGNvbmZpZy5lZGdlTGFiZWxzIHx8IFtdLFxuICAgICAgaW5jbHVkZV9tZXRhZGF0YTogY29uZmlnLmluY2x1ZGVNZXRhZGF0YSB8fCBmYWxzZSxcbiAgICB9O1xuXG4gICAgY29uc3QgbWV0YWRhdGEgPSB0aGlzLmN0eC5nZXRTZXNzaW9uTWV0YWRhdGEoKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBzdHJlYW0gPSAodGhpcy5jdHguY2xpZW50cy5kYXRhU2VydmljZSBhcyBhbnkpLkV4cG9ydChyZXF1ZXN0LCBtZXRhZGF0YSk7XG5cbiAgICAgIHN0cmVhbS5vbignZGF0YScsIChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgIGxldCBzdGF0czogRXhwb3J0U3RhdHMgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXRzKSB7XG4gICAgICAgICAgICBzdGF0cyA9IHtcbiAgICAgICAgICAgICAgbm9kZXNFeHBvcnRlZDogcGFyc2VJbnQocmVzcG9uc2Uuc3RhdHMubm9kZXNfZXhwb3J0ZWQgfHwgJzAnLCAxMCksXG4gICAgICAgICAgICAgIGVkZ2VzRXhwb3J0ZWQ6IHBhcnNlSW50KHJlc3BvbnNlLnN0YXRzLmVkZ2VzX2V4cG9ydGVkIHx8ICcwJywgMTApLFxuICAgICAgICAgICAgICBieXRlc1dyaXR0ZW46IHBhcnNlSW50KHJlc3BvbnNlLnN0YXRzLmJ5dGVzX3dyaXR0ZW4gfHwgJzAnLCAxMCksXG4gICAgICAgICAgICAgIGR1cmF0aW9uTXM6IHBhcnNlSW50KHJlc3BvbnNlLnN0YXRzLmR1cmF0aW9uX21zIHx8ICcwJywgMTApLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBjaHVuazogRXhwb3J0Q2h1bmsgPSB7XG4gICAgICAgICAgICBkYXRhOiBCdWZmZXIuZnJvbShyZXNwb25zZS5kYXRhIHx8IFtdKSxcbiAgICAgICAgICAgIGlzRmluYWw6IHJlc3BvbnNlLmlzX2ZpbmFsIHx8IGZhbHNlLFxuICAgICAgICAgICAgc3RhdHMsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNhbGxiYWNrKGNodW5rKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXNwb25zZS5pc19maW5hbCkge1xuICAgICAgICAgIHN0cmVhbS5jYW5jZWwoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHN0cmVhbS5vbignZW5kJywgKCkgPT4gcmVzb2x2ZSgpKTtcbiAgICAgIHN0cmVhbS5vbignZXJyb3InLCAoZXJyb3I6IGFueSkgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU3RyZWFtIG5vZGVzIGZyb20gYSBncmFwaC5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIGV4cG9ydCgpIHdpdGggRXhwb3J0Q29uZmlnIGluc3RlYWRcbiAgICovXG4gIGFzeW5jIGV4cG9ydE5vZGVzKFxuICAgIGdyYXBoTmFtZTogc3RyaW5nLFxuICAgIGxhYmVscz86IHN0cmluZ1tdLFxuICAgIGxpbWl0OiBudW1iZXIgPSAwLFxuICAgIGNhbGxiYWNrPzogKHJlc3VsdDogRXhwb3J0Tm9kZXNSZXN1bHQpID0+IHZvaWRcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc29sZS53YXJuKCdleHBvcnROb2RlcyBpcyBkZXByZWNhdGVkLCB1c2UgZXhwb3J0KCkgd2l0aCBFeHBvcnRDb25maWcgaW5zdGVhZCcpO1xuXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgIGdyYXBoX25hbWU6IGdyYXBoTmFtZSxcbiAgICAgIGxhYmVsczogbGFiZWxzIHx8IFtdLFxuICAgICAgbGltaXQ6IGxpbWl0LnRvU3RyaW5nKCksXG4gICAgfTtcblxuICAgIGNvbnN0IG1ldGFkYXRhID0gdGhpcy5jdHguZ2V0U2Vzc2lvbk1ldGFkYXRhKCk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3Qgc3RyZWFtID0gKHRoaXMuY3R4LmNsaWVudHMuZGF0YVNlcnZpY2UgYXMgYW55KS5FeHBvcnROb2RlcyhyZXF1ZXN0LCBtZXRhZGF0YSk7XG5cbiAgICAgIHN0cmVhbS5vbignZGF0YScsIChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgIGNhbGxiYWNrKHtcbiAgICAgICAgICAgIG5vZGVzOiAocmVzcG9uc2Uubm9kZXMgfHwgW10pLm1hcCgobjogYW55KSA9PiAoe1xuICAgICAgICAgICAgICBpZDogbi5pZCB8fCAnJyxcbiAgICAgICAgICAgICAgbGFiZWxzOiBuLmxhYmVscyB8fCBbXSxcbiAgICAgICAgICAgICAgcHJvcGVydGllczogY29udmVydFByb3RvUHJvcGVydGllcyhuLnByb3BlcnRpZXMgfHwge30pLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgaGFzTW9yZTogcmVzcG9uc2UuaGFzX21vcmUgfHwgZmFsc2UsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBzdHJlYW0ub24oJ2VuZCcsICgpID0+IHJlc29sdmUoKSk7XG4gICAgICBzdHJlYW0ub24oJ2Vycm9yJywgKGVycm9yOiBhbnkpID0+IHJlamVjdChlcnJvcikpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0cmVhbSBlZGdlcyBmcm9tIGEgZ3JhcGguXG4gICAqIEBkZXByZWNhdGVkIFVzZSBleHBvcnQoKSB3aXRoIEV4cG9ydENvbmZpZyBpbnN0ZWFkXG4gICAqL1xuICBhc3luYyBleHBvcnRFZGdlcyhcbiAgICBncmFwaE5hbWU6IHN0cmluZyxcbiAgICBsYWJlbHM/OiBzdHJpbmdbXSxcbiAgICBsaW1pdDogbnVtYmVyID0gMCxcbiAgICBjYWxsYmFjaz86IChyZXN1bHQ6IEV4cG9ydEVkZ2VzUmVzdWx0KSA9PiB2b2lkXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnNvbGUud2FybignZXhwb3J0RWRnZXMgaXMgZGVwcmVjYXRlZCwgdXNlIGV4cG9ydCgpIHdpdGggRXhwb3J0Q29uZmlnIGluc3RlYWQnKTtcblxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICBncmFwaF9uYW1lOiBncmFwaE5hbWUsXG4gICAgICBsYWJlbHM6IGxhYmVscyB8fCBbXSxcbiAgICAgIGxpbWl0OiBsaW1pdC50b1N0cmluZygpLFxuICAgIH07XG5cbiAgICBjb25zdCBtZXRhZGF0YSA9IHRoaXMuY3R4LmdldFNlc3Npb25NZXRhZGF0YSgpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IHN0cmVhbSA9ICh0aGlzLmN0eC5jbGllbnRzLmRhdGFTZXJ2aWNlIGFzIGFueSkuRXhwb3J0RWRnZXMocmVxdWVzdCwgbWV0YWRhdGEpO1xuXG4gICAgICBzdHJlYW0ub24oJ2RhdGEnLCAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICBjYWxsYmFjayh7XG4gICAgICAgICAgICBlZGdlczogKHJlc3BvbnNlLmVkZ2VzIHx8IFtdKS5tYXAoKGU6IGFueSkgPT4gKHtcbiAgICAgICAgICAgICAgaWQ6IGUuaWQgfHwgJycsXG4gICAgICAgICAgICAgIGxhYmVsOiBlLmxhYmVsIHx8ICcnLFxuICAgICAgICAgICAgICBmcm9tTm9kZUlkOiBlLmZyb21fbm9kZV9pZCB8fCAnJyxcbiAgICAgICAgICAgICAgdG9Ob2RlSWQ6IGUudG9fbm9kZV9pZCB8fCAnJyxcbiAgICAgICAgICAgICAgcHJvcGVydGllczogY29udmVydFByb3RvUHJvcGVydGllcyhlLnByb3BlcnRpZXMgfHwge30pLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgaGFzTW9yZTogcmVzcG9uc2UuaGFzX21vcmUgfHwgZmFsc2UsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBzdHJlYW0ub24oJ2VuZCcsICgpID0+IHJlc29sdmUoKSk7XG4gICAgICBzdHJlYW0ub24oJ2Vycm9yJywgKGVycm9yOiBhbnkpID0+IHJlamVjdChlcnJvcikpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL2RhdGEtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7OztBQWNILDBDQUE0QztBQUM1Qyw2Q0FBd0Y7QUFHeEY7O0dBRUc7QUFDSCxNQUFhLFdBQVc7SUFDRjtJQUFwQixZQUFvQixHQUFtQjtRQUFuQixRQUFHLEdBQUgsR0FBRyxDQUFnQjtJQUFHLENBQUM7SUFFM0M7O09BRUc7SUFDSCxLQUFLLENBQUMsV0FBVyxDQUNmLFNBQWlCLEVBQ2pCLEtBQWlCLEVBQ2pCLE1BQTBCO1FBRTFCLE1BQU0sT0FBTyxHQUFRO1lBQ25CLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFBLDRCQUFlLEVBQUMsQ0FBQyxDQUFDLENBQUM7U0FDNUMsQ0FBQztRQUVGLHNGQUFzRjtRQUN0Rix3RkFBd0Y7UUFDeEYsT0FBTyxDQUFDLE9BQU8sR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBVyxFQUFFLENBQUM7UUFFbkUsSUFBSSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztZQUNoQyxPQUFPLENBQUMsc0JBQXNCLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDO1FBQzlELENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDL0MsTUFBTSxRQUFRLEdBQVEsTUFBTSxJQUFBLHdCQUFhLEVBQ3ZDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFDNUIsYUFBYSxFQUNiLE9BQU8sRUFDUCxRQUFRLENBQ1QsQ0FBQztRQUVGLE9BQU87WUFDTCxPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU8s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RSxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUNsQyxJQUFJLFFBQVEsRUFBRSxDQUFDO29CQUNiLFFBQVEsQ0FBQzt3QkFDUCxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQzs0QkFDN0MsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRTs0QkFDZCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFOzRCQUNwQixVQUFVLEVBQUUsQ0FBQyxDQUFDLFlBQVksSUFBSSxFQUFFOzRCQUNoQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFVBQVUsSUFBSSxFQUFFOzRCQUM1QixVQUFVLEVBQUUsSUFBQSxtQ0FBc0IsRUFBQyxDQUFDLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQzt5QkFDdkQsQ0FBQyxDQUFDO3dCQUNILE9BQU8sRUFBRSxRQUFRLENBQUMsUUFBUSxJQUFJLEtBQUs7cUJBQ3BDLENBQUMsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXRSRCxrQ0FzUkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERhdGEgc2VydmljZSBoYW5kbGVzIG5vZGUgYW5kIGVkZ2UgaW5zZXJ0L2RlbGV0ZS9leHBvcnQgb3BlcmF0aW9ucy5cbiAqL1xuXG5pbXBvcnQgeyBTZXJ2aWNlQ29udGV4dCB9IGZyb20gJy4vc2VydmljZS1jb250ZXh0JztcbmltcG9ydCB7XG4gIEluc2VydE5vZGVzUmVzdWx0LFxuICBJbnNlcnRFZGdlc1Jlc3VsdCxcbiAgRGVsZXRlUmVzdWx0LFxuICBFeHBvcnROb2Rlc1Jlc3VsdCxcbiAgRXhwb3J0RWRnZXNSZXN1bHQsXG4gIEV4cG9ydENvbmZpZyxcbiAgRXhwb3J0Q2h1bmssXG4gIEV4cG9ydFN0YXRzLFxufSBmcm9tICcuLi9yZXNwb25zZSc7XG5pbXBvcnQgeyBOb2RlRGF0YSwgRWRnZURhdGEgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBwcm9taXNpZnlDYWxsIH0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgbm9kZURhdGFUb1Byb3RvLCBlZGdlRGF0YVRvUHJvdG8sIGNvbnZlcnRQcm90b1Byb3BlcnRpZXMgfSBmcm9tICcuL2NvbnZlcnRlcnMnO1xuaW1wb3J0IHsgSW5zZXJ0Tm9kZXNDb25maWcsIEluc2VydEVkZ2VzQ29uZmlnIH0gZnJvbSAnLi4vY2xpZW50JztcblxuLyoqXG4gKiBEYXRhIHNlcnZpY2UgZm9yIGluc2VydGluZywgZGVsZXRpbmcsIGFuZCBleHBvcnRpbmcgZ3JhcGggZGF0YS5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjdHg6IFNlcnZpY2VDb250ZXh0KSB7fVxuXG4gIC8qKlxuICAgKiBJbnNlcnQgbXVsdGlwbGUgbm9kZXMgaW50byBhIGdyYXBoLlxuICAgKi9cbiAgYXN5bmMgaW5zZXJ0Tm9kZXMoXG4gICAgZ3JhcGhOYW1lOiBzdHJpbmcsXG4gICAgbm9kZXM6IE5vZGVEYXRhW10sXG4gICAgY29uZmlnPzogSW5zZXJ0Tm9kZXNDb25maWdcbiAgKTogUHJvbWlzZTxJbnNlcnROb2Rlc1Jlc3VsdD4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IGFueSA9IHtcbiAgICAgIGdyYXBoX25hbWU6IGdyYXBoTmFtZSxcbiAgICAgIG5vZGVzOiBub2Rlcy5tYXAoKG4pID0+IG5vZGVEYXRhVG9Qcm90byhuKSksXG4gICAgfTtcblxuICAgIC8vIEFMV0FZUyBzZXQgb3B0aW9ucyAoZXZlbiB3aGVuIHVuZGVmaW5lZCkgdG8gYXZvaWQgZGVwcmVjYXRlZCBidWxrIG9wZXJhdGlvbnMgZXJyb3IuXG4gICAgLy8gYG1vZGVgIGlzIGEgbnVtZXJpYyBlbnVtIGFsaWduZWQgd2l0aCBwcm90byBJbnNlcnRNb2RlIHZhbHVlczsgcGFzcyB0aHJvdWdoIGRpcmVjdGx5LlxuICAgIHJlcXVlc3Qub3B0aW9ucyA9IHsgbW9kZTogKGNvbmZpZz8ub3B0aW9ucz8ubW9kZSA/PyAwKSBhcyBudW1iZXIgfTtcblxuICAgIGlmIChjb25maWc/LmJ1bGtJbXBvcnRTZXNzaW9uSWQpIHtcbiAgICAgIHJlcXVlc3QuYnVsa19pbXBvcnRfc2Vzc2lvbl9pZCA9IGNvbmZpZy5idWxrSW1wb3J0U2Vzc2lvbklkO1xuICAgIH1cblxuICAgIGNvbnN0IG1ldGFkYXRhID0gdGhpcy5jdHguZ2V0U2Vzc2lvbk1ldGFkYXRhKCk7XG4gICAgY29uc3QgcmVzcG9uc2U6IGFueSA9IGF3YWl0IHByb21pc2lmeUNhbGwoXG4gICAgICB0aGlzLmN0eC5jbGllbnRzLmRhdGFTZXJ2aWNlLFxuICAgICAgJ0luc2VydE5vZGVzJyxcbiAgICAgIHJlcXVlc3QsXG4gICAgICBtZXRhZGF0YVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogcmVzcG9uc2Uuc3VjY2VzcyB8fCBmYWxzZSxcbiAgICAgIG5vZGVJZHM6IHJlc3BvbnNlLm5vZGVfaWRzIHx8IFtdLFxuICAgICAgbm9kZUNvdW50OiBwYXJzZUludChyZXNwb25zZS5ub2RlX2NvdW50IHx8ICcwJywgMTApLFxuICAgICAgbWVzc2FnZTogcmVzcG9uc2UubWVzc2FnZSB8fCAnJyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEluc2VydCBtdWx0aXBsZSBlZGdlcyBpbnRvIGEgZ3JhcGguXG4gICAqL1xuICBhc3luYyBpbnNlcnRFZGdlcyhcbiAgICBncmFwaE5hbWU6IHN0cmluZyxcbiAgICBlZGdlczogRWRnZURhdGFbXSxcbiAgICBjb25maWc/OiBJbnNlcnRFZGdlc0NvbmZpZ1xuICApOiBQcm9taXNlPEluc2VydEVkZ2VzUmVzdWx0PiB7XG4gICAgY29uc3QgcmVxdWVzdDogYW55ID0ge1xuICAgICAgZ3JhcGhfbmFtZTogZ3JhcGhOYW1lLFxuICAgICAgZWRnZXM6IGVkZ2VzLm1hcCgoZSkgPT4gZWRnZURhdGFUb1Byb3RvKGUpKSxcbiAgICB9O1xuXG4gICAgLy8gQUxXQVlTIHNldCBvcHRpb25zIChldmVuIHdoZW4gdW5kZWZpbmVkKSB0byBhdm9pZCBkZXByZWNhdGVkIGJ1bGsgb3BlcmF0aW9ucyBlcnJvci5cbiAgICByZXF1ZXN0Lm9wdGlvbnMgPSB7XG4gICAgICBza2lwX2ludmFsaWRfbm9kZXM6IGNvbmZpZz8ub3B0aW9ucz8uc2tpcEludmFsaWROb2RlcyB8fCBmYWxzZSxcbiAgICAgIG1vZGU6IChjb25maWc/Lm9wdGlvbnM/Lm1vZGUgPz8gMCkgYXMgbnVtYmVyLFxuICAgIH07XG5cbiAgICBpZiAoY29uZmlnPy5idWxrSW1wb3J0U2Vzc2lvbklkKSB7XG4gICAgICByZXF1ZXN0LmJ1bGtfaW1wb3J0X3Nlc3Npb25faWQgPSBjb25maWcuYnVsa0ltcG9ydFNlc3Npb25JZDtcbiAgICB9XG5cbiAgICBjb25zdCBtZXRhZGF0YSA9IHRoaXMuY3R4LmdldFNlc3Npb25NZXRhZGF0YSgpO1xuICAgIGNvbnN0IHJlc3BvbnNlOiBhbnkgPSBhd2FpdCBwcm9taXNpZnlDYWxsKFxuICAgICAgdGhpcy5jdHguY2xpZW50cy5kYXRhU2VydmljZSxcbiAgICAgICdJbnNlcnRFZGdlcycsXG4gICAgICByZXF1ZXN0LFxuICAgICAgbWV0YWRhdGFcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Y2Nlc3M6IHJlc3BvbnNlLnN1Y2Nlc3MgfHwgZmFsc2UsXG4gICAgICBlZGdlSWRzOiByZXNwb25zZS5lZGdlX2lkcyB8fCBbXSxcbiAgICAgIGVkZ2VDb3VudDogcGFyc2VJbnQocmVzcG9uc2UuZWRnZV9jb3VudCB8fCAnMCcsIDEwKSxcbiAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLm1lc3NhZ2UgfHwgJycsXG4gICAgICBza2lwcGVkQ291bnQ6IHBhcnNlSW50KHJlc3BvbnNlLnNraXBwZWRfY291bnQgfHwgJzAnLCAxMCksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgbm9kZXMgZnJvbSBhIGdyYXBoLlxuICAgKi9cbiAgYXN5bmMgZGVsZXRlTm9kZXMoXG4gICAgZ3JhcGhOYW1lOiBzdHJpbmcsXG4gICAgbm9kZUlkcz86IHN0cmluZ1tdLFxuICAgIGxhYmVscz86IHN0cmluZ1tdLFxuICAgIHdoZXJlPzogc3RyaW5nXG4gICk6IFByb21pc2U8RGVsZXRlUmVzdWx0PiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgIGdyYXBoX25hbWU6IGdyYXBoTmFtZSxcbiAgICAgIG5vZGVfaWRzOiBub2RlSWRzIHx8IFtdLFxuICAgICAgbGFiZWxzOiBsYWJlbHMgfHwgW10sXG4gICAgICB3aGVyZTogd2hlcmUgfHwgJycsXG4gICAgfTtcblxuICAgIGNvbnN0IG1ldGFkYXRhID0gdGhpcy5jdHguZ2V0U2Vzc2lvbk1ldGFkYXRhKCk7XG4gICAgY29uc3QgcmVzcG9uc2U6IGFueSA9IGF3YWl0IHByb21pc2lmeUNhbGwoXG4gICAgICB0aGlzLmN0eC5jbGllbnRzLmRhdGFTZXJ2aWNlLFxuICAgICAgJ0RlbGV0ZU5vZGVzJyxcbiAgICAgIHJlcXVlc3QsXG4gICAgICBtZXRhZGF0YVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogcmVzcG9uc2Uuc3VjY2VzcyB8fCBmYWxzZSxcbiAgICAgIGRlbGV0ZWRDb3VudDogcGFyc2VJbnQocmVzcG9uc2UuZGVsZXRlZF9jb3VudCB8fCAnMCcsIDEwKSxcbiAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLm1lc3NhZ2UgfHwgJycsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgZWRnZXMgZnJvbSBhIGdyYXBoLlxuICAgKi9cbiAgYXN5bmMgZGVsZXRlRWRnZXMoXG4gICAgZ3JhcGhOYW1lOiBzdHJpbmcsXG4gICAgZWRnZUlkcz86IHN0cmluZ1tdLFxuICAgIGxhYmVsPzogc3RyaW5nLFxuICAgIHdoZXJlPzogc3RyaW5nXG4gICk6IFByb21pc2U8RGVsZXRlUmVzdWx0PiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgIGdyYXBoX25hbWU6IGdyYXBoTmFtZSxcbiAgICAgIGVkZ2VfaWRzOiBlZGdlSWRzIHx8IFtdLFxuICAgICAgbGFiZWw6IGxhYmVsIHx8ICcnLFxuICAgICAgd2hlcmU6IHdoZXJlIHx8ICcnLFxuICAgIH07XG5cbiAgICBjb25zdCBtZXRhZGF0YSA9IHRoaXMuY3R4LmdldFNlc3Npb25NZXRhZGF0YSgpO1xuICAgIGNvbnN0IHJlc3BvbnNlOiBhbnkgPSBhd2FpdCBwcm9taXNpZnlDYWxsKFxuICAgICAgdGhpcy5jdHguY2xpZW50cy5kYXRhU2VydmljZSxcbiAgICAgICdEZWxldGVFZGdlcycsXG4gICAgICByZXF1ZXN0LFxuICAgICAgbWV0YWRhdGFcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Y2Nlc3M6IHJlc3BvbnNlLnN1Y2Nlc3MgfHwgZmFsc2UsXG4gICAgICBkZWxldGVkQ291bnQ6IHBhcnNlSW50KHJlc3BvbnNlLmRlbGV0ZWRfY291bnQgfHwgJzAnLCAxMCksXG4gICAgICBtZXNzYWdlOiByZXNwb25zZS5tZXNzYWdlIHx8ICcnLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRXhwb3J0IGdyYXBoIGRhdGEgaW4gSlNPTiBMaW5lcyBmb3JtYXQgKHN0cmVhbWluZykuXG4gICAqL1xuICBhc3luYyBleHBvcnQoXG4gICAgY29uZmlnOiBFeHBvcnRDb25maWcsXG4gICAgY2FsbGJhY2s/OiAoY2h1bms6IEV4cG9ydENodW5rKSA9PiB2b2lkXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICBncmFwaF9uYW1lOiBjb25maWcuZ3JhcGhOYW1lLFxuICAgICAgYmF0Y2hfc2l6ZTogY29uZmlnLmJhdGNoU2l6ZSB8fCAwLFxuICAgICAgZXhwb3J0X25vZGVzOiBjb25maWcuZXhwb3J0Tm9kZXMgIT09IGZhbHNlLFxuICAgICAgZXhwb3J0X2VkZ2VzOiBjb25maWcuZXhwb3J0RWRnZXMgIT09IGZhbHNlLFxuICAgICAgbm9kZV9sYWJlbHM6IGNvbmZpZy5ub2RlTGFiZWxzIHx8IFtdLFxuICAgICAgZWRnZV9sYWJlbHM6IGNvbmZpZy5lZGdlTGFiZWxzIHx8IFtdLFxuICAgICAgaW5jbHVkZV9tZXRhZGF0YTogY29uZmlnLmluY2x1ZGVNZXRhZGF0YSB8fCBmYWxzZSxcbiAgICB9O1xuXG4gICAgY29uc3QgbWV0YWRhdGEgPSB0aGlzLmN0eC5nZXRTZXNzaW9uTWV0YWRhdGEoKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBzdHJlYW0gPSAodGhpcy5jdHguY2xpZW50cy5kYXRhU2VydmljZSBhcyBhbnkpLkV4cG9ydChyZXF1ZXN0LCBtZXRhZGF0YSk7XG5cbiAgICAgIHN0cmVhbS5vbignZGF0YScsIChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgIGxldCBzdGF0czogRXhwb3J0U3RhdHMgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXRzKSB7XG4gICAgICAgICAgICBzdGF0cyA9IHtcbiAgICAgICAgICAgICAgbm9kZXNFeHBvcnRlZDogcGFyc2VJbnQocmVzcG9uc2Uuc3RhdHMubm9kZXNfZXhwb3J0ZWQgfHwgJzAnLCAxMCksXG4gICAgICAgICAgICAgIGVkZ2VzRXhwb3J0ZWQ6IHBhcnNlSW50KHJlc3BvbnNlLnN0YXRzLmVkZ2VzX2V4cG9ydGVkIHx8ICcwJywgMTApLFxuICAgICAgICAgICAgICBieXRlc1dyaXR0ZW46IHBhcnNlSW50KHJlc3BvbnNlLnN0YXRzLmJ5dGVzX3dyaXR0ZW4gfHwgJzAnLCAxMCksXG4gICAgICAgICAgICAgIGR1cmF0aW9uTXM6IHBhcnNlSW50KHJlc3BvbnNlLnN0YXRzLmR1cmF0aW9uX21zIHx8ICcwJywgMTApLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBjaHVuazogRXhwb3J0Q2h1bmsgPSB7XG4gICAgICAgICAgICBkYXRhOiBCdWZmZXIuZnJvbShyZXNwb25zZS5kYXRhIHx8IFtdKSxcbiAgICAgICAgICAgIGlzRmluYWw6IHJlc3BvbnNlLmlzX2ZpbmFsIHx8IGZhbHNlLFxuICAgICAgICAgICAgc3RhdHMsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNhbGxiYWNrKGNodW5rKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXNwb25zZS5pc19maW5hbCkge1xuICAgICAgICAgIHN0cmVhbS5jYW5jZWwoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHN0cmVhbS5vbignZW5kJywgKCkgPT4gcmVzb2x2ZSgpKTtcbiAgICAgIHN0cmVhbS5vbignZXJyb3InLCAoZXJyb3I6IGFueSkgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU3RyZWFtIG5vZGVzIGZyb20gYSBncmFwaC5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIGV4cG9ydCgpIHdpdGggRXhwb3J0Q29uZmlnIGluc3RlYWRcbiAgICovXG4gIGFzeW5jIGV4cG9ydE5vZGVzKFxuICAgIGdyYXBoTmFtZTogc3RyaW5nLFxuICAgIGxhYmVscz86IHN0cmluZ1tdLFxuICAgIGxpbWl0OiBudW1iZXIgPSAwLFxuICAgIGNhbGxiYWNrPzogKHJlc3VsdDogRXhwb3J0Tm9kZXNSZXN1bHQpID0+IHZvaWRcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc29sZS53YXJuKCdleHBvcnROb2RlcyBpcyBkZXByZWNhdGVkLCB1c2UgZXhwb3J0KCkgd2l0aCBFeHBvcnRDb25maWcgaW5zdGVhZCcpO1xuXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgIGdyYXBoX25hbWU6IGdyYXBoTmFtZSxcbiAgICAgIGxhYmVsczogbGFiZWxzIHx8IFtdLFxuICAgICAgbGltaXQ6IGxpbWl0LnRvU3RyaW5nKCksXG4gICAgfTtcblxuICAgIGNvbnN0IG1ldGFkYXRhID0gdGhpcy5jdHguZ2V0U2Vzc2lvbk1ldGFkYXRhKCk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3Qgc3RyZWFtID0gKHRoaXMuY3R4LmNsaWVudHMuZGF0YVNlcnZpY2UgYXMgYW55KS5FeHBvcnROb2RlcyhyZXF1ZXN0LCBtZXRhZGF0YSk7XG5cbiAgICAgIHN0cmVhbS5vbignZGF0YScsIChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgIGNhbGxiYWNrKHtcbiAgICAgICAgICAgIG5vZGVzOiAocmVzcG9uc2Uubm9kZXMgfHwgW10pLm1hcCgobjogYW55KSA9PiAoe1xuICAgICAgICAgICAgICBpZDogbi5pZCB8fCAnJyxcbiAgICAgICAgICAgICAgbGFiZWxzOiBuLmxhYmVscyB8fCBbXSxcbiAgICAgICAgICAgICAgcHJvcGVydGllczogY29udmVydFByb3RvUHJvcGVydGllcyhuLnByb3BlcnRpZXMgfHwge30pLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgaGFzTW9yZTogcmVzcG9uc2UuaGFzX21vcmUgfHwgZmFsc2UsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBzdHJlYW0ub24oJ2VuZCcsICgpID0+IHJlc29sdmUoKSk7XG4gICAgICBzdHJlYW0ub24oJ2Vycm9yJywgKGVycm9yOiBhbnkpID0+IHJlamVjdChlcnJvcikpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0cmVhbSBlZGdlcyBmcm9tIGEgZ3JhcGguXG4gICAqIEBkZXByZWNhdGVkIFVzZSBleHBvcnQoKSB3aXRoIEV4cG9ydENvbmZpZyBpbnN0ZWFkXG4gICAqL1xuICBhc3luYyBleHBvcnRFZGdlcyhcbiAgICBncmFwaE5hbWU6IHN0cmluZyxcbiAgICBsYWJlbHM/OiBzdHJpbmdbXSxcbiAgICBsaW1pdDogbnVtYmVyID0gMCxcbiAgICBjYWxsYmFjaz86IChyZXN1bHQ6IEV4cG9ydEVkZ2VzUmVzdWx0KSA9PiB2b2lkXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnNvbGUud2FybignZXhwb3J0RWRnZXMgaXMgZGVwcmVjYXRlZCwgdXNlIGV4cG9ydCgpIHdpdGggRXhwb3J0Q29uZmlnIGluc3RlYWQnKTtcblxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICBncmFwaF9uYW1lOiBncmFwaE5hbWUsXG4gICAgICBsYWJlbHM6IGxhYmVscyB8fCBbXSxcbiAgICAgIGxpbWl0OiBsaW1pdC50b1N0cmluZygpLFxuICAgIH07XG5cbiAgICBjb25zdCBtZXRhZGF0YSA9IHRoaXMuY3R4LmdldFNlc3Npb25NZXRhZGF0YSgpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IHN0cmVhbSA9ICh0aGlzLmN0eC5jbGllbnRzLmRhdGFTZXJ2aWNlIGFzIGFueSkuRXhwb3J0RWRnZXMocmVxdWVzdCwgbWV0YWRhdGEpO1xuXG4gICAgICBzdHJlYW0ub24oJ2RhdGEnLCAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICBjYWxsYmFjayh7XG4gICAgICAgICAgICBlZGdlczogKHJlc3BvbnNlLmVkZ2VzIHx8IFtdKS5tYXAoKGU6IGFueSkgPT4gKHtcbiAgICAgICAgICAgICAgaWQ6IGUuaWQgfHwgJycsXG4gICAgICAgICAgICAgIGxhYmVsOiBlLmxhYmVsIHx8ICcnLFxuICAgICAgICAgICAgICBmcm9tTm9kZUlkOiBlLmZyb21fbm9kZV9pZCB8fCAnJyxcbiAgICAgICAgICAgICAgdG9Ob2RlSWQ6IGUudG9fbm9kZV9pZCB8fCAnJyxcbiAgICAgICAgICAgICAgcHJvcGVydGllczogY29udmVydFByb3RvUHJvcGVydGllcyhlLnByb3BlcnRpZXMgfHwge30pLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgaGFzTW9yZTogcmVzcG9uc2UuaGFzX21vcmUgfHwgZmFsc2UsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBzdHJlYW0ub24oJ2VuZCcsICgpID0+IHJlc29sdmUoKSk7XG4gICAgICBzdHJlYW0ub24oJ2Vycm9yJywgKGVycm9yOiBhbnkpID0+IHJlamVjdChlcnJvcikpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,13 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Bulk import types for GQLDB Node.js driver.
|
|
3
3
|
*/
|
|
4
|
-
|
|
4
|
+
import { InsertType } from './convenience';
|
|
5
|
+
/**
|
|
6
|
+
* Options for bulk node creation.
|
|
7
|
+
*
|
|
8
|
+
* `mode` selects duplicate-`_id` semantics. See {@link InsertType}
|
|
9
|
+
* docs for the three values (`Normal` / `Overwrite` / `Upsert`) and
|
|
10
|
+
* their differences. Defaults to `InsertType.Normal`.
|
|
11
|
+
*/
|
|
5
12
|
export interface BulkCreateNodesOptions {
|
|
6
|
-
|
|
13
|
+
mode?: InsertType;
|
|
7
14
|
}
|
|
8
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* Options for bulk edge creation.
|
|
17
|
+
*
|
|
18
|
+
* See {@link BulkCreateNodesOptions} for the `mode` semantic split.
|
|
19
|
+
* Edge `Overwrite` and `Upsert` require EDGE_ID enabled on the
|
|
20
|
+
* target graph.
|
|
21
|
+
*/
|
|
9
22
|
export interface BulkCreateEdgesOptions {
|
|
10
23
|
skipInvalidNodes?: boolean;
|
|
24
|
+
mode?: InsertType;
|
|
11
25
|
}
|
|
12
26
|
/** Options for starting a bulk import session */
|
|
13
27
|
export interface BulkImportOptions {
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* Bulk import types for GQLDB Node.js driver.
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsa19pbXBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvYnVsa19pbXBvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCdWxrIGltcG9ydCB0eXBlcyBmb3IgR1FMREIgTm9kZS5qcyBkcml2ZXIuXG4gKi9cblxuaW1wb3J0IHsgSW5zZXJ0VHlwZSB9IGZyb20gJy4vY29udmVuaWVuY2UnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGJ1bGsgbm9kZSBjcmVhdGlvbi5cbiAqXG4gKiBgbW9kZWAgc2VsZWN0cyBkdXBsaWNhdGUtYF9pZGAgc2VtYW50aWNzLiBTZWUge0BsaW5rIEluc2VydFR5cGV9XG4gKiBkb2NzIGZvciB0aGUgdGhyZWUgdmFsdWVzIChgTm9ybWFsYCAvIGBPdmVyd3JpdGVgIC8gYFVwc2VydGApIGFuZFxuICogdGhlaXIgZGlmZmVyZW5jZXMuIERlZmF1bHRzIHRvIGBJbnNlcnRUeXBlLk5vcm1hbGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVsa0NyZWF0ZU5vZGVzT3B0aW9ucyB7XG4gIG1vZGU/OiBJbnNlcnRUeXBlO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGJ1bGsgZWRnZSBjcmVhdGlvbi5cbiAqXG4gKiBTZWUge0BsaW5rIEJ1bGtDcmVhdGVOb2Rlc09wdGlvbnN9IGZvciB0aGUgYG1vZGVgIHNlbWFudGljIHNwbGl0LlxuICogRWRnZSBgT3ZlcndyaXRlYCBhbmQgYFVwc2VydGAgcmVxdWlyZSBFREdFX0lEIGVuYWJsZWQgb24gdGhlXG4gKiB0YXJnZXQgZ3JhcGguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVsa0NyZWF0ZUVkZ2VzT3B0aW9ucyB7XG4gIHNraXBJbnZhbGlkTm9kZXM/OiBib29sZWFuO1xuICBtb2RlPzogSW5zZXJ0VHlwZTtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHN0YXJ0aW5nIGEgYnVsayBpbXBvcnQgc2Vzc2lvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWxrSW1wb3J0T3B0aW9ucyB7XG4gIC8qKiBAZGVwcmVjYXRlZCBObyBsb25nZXIgdXNlZC4gU2VydmVyIGlnbm9yZXMgdGhpcyB2YWx1ZS4gKi9cbiAgY2hlY2twb2ludEV2ZXJ5PzogbnVtYmVyO1xuICAvKiogSGludCBmb3IgcHJlLWFsbG9jYXRpbmcgbm9kZSBJRCBjYWNoZSAqL1xuICBlc3RpbWF0ZWROb2Rlcz86IG51bWJlcjtcbiAgLyoqIEhpbnQgZm9yIGVkZ2UgYmF0Y2ggc2l6aW5nICovXG4gIGVzdGltYXRlZEVkZ2VzPzogbnVtYmVyO1xufVxuXG4vKiogUmVzdWx0IG9mIHN0YXJ0aW5nIGEgYnVsayBpbXBvcnQgc2Vzc2lvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWxrSW1wb3J0U2Vzc2lvbiB7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIHNlc3Npb25JZDogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbi8qKiBSZXN1bHQgb2YgYSBjaGVja3BvaW50IG9wZXJhdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja3BvaW50UmVzdWx0IHtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgcmVjb3JkQ291bnQ6IG51bWJlcjtcbiAgbGFzdENoZWNrcG9pbnRDb3VudDogbnVtYmVyO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbi8qKiBSZXN1bHQgb2YgZW5kaW5nIGEgYnVsayBpbXBvcnQgc2Vzc2lvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmRCdWxrSW1wb3J0UmVzdWx0IHtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgdG90YWxSZWNvcmRzOiBudW1iZXI7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqIFJlc3VsdCBvZiBhYm9ydGluZyBhIGJ1bGsgaW1wb3J0IHNlc3Npb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWJvcnRCdWxrSW1wb3J0UmVzdWx0IHtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKiogU3RhdHVzIG9mIGEgYnVsayBpbXBvcnQgc2Vzc2lvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWxrSW1wb3J0U3RhdHVzIHtcbiAgaXNBY3RpdmU6IGJvb2xlYW47XG4gIGdyYXBoTmFtZTogc3RyaW5nO1xuICByZWNvcmRDb3VudDogbnVtYmVyO1xuICBsYXN0Q2hlY2twb2ludENvdW50OiBudW1iZXI7XG4gIGNyZWF0ZWRBdDogbnVtYmVyO1xuICBsYXN0QWN0aXZpdHk6IG51bWJlcjtcbn1cbiJdfQ==
|
|
@@ -7,10 +7,26 @@ export declare enum DBType {
|
|
|
7
7
|
NODE = 0,
|
|
8
8
|
EDGE = 1
|
|
9
9
|
}
|
|
10
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* Controls the insert mode for GQL-based insert operations.
|
|
12
|
+
*
|
|
13
|
+
* - `Normal`: INSERT — error if `_id` already exists.
|
|
14
|
+
* - `Overwrite`: INSERT OVERWRITE — REPLACE existing entity wholesale
|
|
15
|
+
* on duplicate `_id`. Properties not in the write are LOST.
|
|
16
|
+
* - `Upsert`: UPSERT — MERGE new properties into existing entity
|
|
17
|
+
* on duplicate `_id`. Properties not in the write are PRESERVED;
|
|
18
|
+
* properties in the write OVERWRITE existing values. Falls back to
|
|
19
|
+
* plain insert when no `_id` matches.
|
|
20
|
+
*
|
|
21
|
+
* `Overwrite` and `Upsert` are different semantics on existing rows.
|
|
22
|
+
* Choose `Upsert` (merge) for partial-update workloads where you don't
|
|
23
|
+
* want to lose existing fields; choose `Overwrite` (replace) for
|
|
24
|
+
* known-clean re-ingest of an entity's full state.
|
|
25
|
+
*/
|
|
11
26
|
export declare enum InsertType {
|
|
12
27
|
Normal = 0,
|
|
13
|
-
Overwrite = 1
|
|
28
|
+
Overwrite = 1,
|
|
29
|
+
Upsert = 2
|
|
14
30
|
}
|
|
15
31
|
/** Label info from SHOW LABELS.
|
|
16
32
|
*
|
|
@@ -18,11 +18,27 @@ var DBType;
|
|
|
18
18
|
DBType[DBType["NODE"] = 0] = "NODE";
|
|
19
19
|
DBType[DBType["EDGE"] = 1] = "EDGE";
|
|
20
20
|
})(DBType || (exports.DBType = DBType = {}));
|
|
21
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* Controls the insert mode for GQL-based insert operations.
|
|
23
|
+
*
|
|
24
|
+
* - `Normal`: INSERT — error if `_id` already exists.
|
|
25
|
+
* - `Overwrite`: INSERT OVERWRITE — REPLACE existing entity wholesale
|
|
26
|
+
* on duplicate `_id`. Properties not in the write are LOST.
|
|
27
|
+
* - `Upsert`: UPSERT — MERGE new properties into existing entity
|
|
28
|
+
* on duplicate `_id`. Properties not in the write are PRESERVED;
|
|
29
|
+
* properties in the write OVERWRITE existing values. Falls back to
|
|
30
|
+
* plain insert when no `_id` matches.
|
|
31
|
+
*
|
|
32
|
+
* `Overwrite` and `Upsert` are different semantics on existing rows.
|
|
33
|
+
* Choose `Upsert` (merge) for partial-update workloads where you don't
|
|
34
|
+
* want to lose existing fields; choose `Overwrite` (replace) for
|
|
35
|
+
* known-clean re-ingest of an entity's full state.
|
|
36
|
+
*/
|
|
22
37
|
var InsertType;
|
|
23
38
|
(function (InsertType) {
|
|
24
39
|
InsertType[InsertType["Normal"] = 0] = "Normal";
|
|
25
40
|
InsertType[InsertType["Overwrite"] = 1] = "Overwrite";
|
|
41
|
+
InsertType[InsertType["Upsert"] = 2] = "Upsert";
|
|
26
42
|
})(InsertType || (exports.InsertType = InsertType = {}));
|
|
27
43
|
// ConvNode and ConvEdge have been removed.
|
|
28
44
|
// Use NodeData and EdgeData from graph_models instead.
|
|
@@ -128,4 +144,4 @@ function useGraphPrefix(graphName) {
|
|
|
128
144
|
function dbTypeToKeyword(dt) {
|
|
129
145
|
return dt === DBType.EDGE ? 'EDGE' : 'NODE';
|
|
130
146
|
}
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVuaWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvY29udmVuaWVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFpTEgsa0RBY0M7QUFNRCw4Q0FFQztBQUtELHdEQUlDO0FBS0QsNERBT0M7QUFLRCx3Q0FtQkM7QUFLRCxnRUFLQztBQUtELHdDQUdDO0FBS0QsMENBRUM7QUF4UUQscURBQXFEO0FBQ3JELElBQVksTUFHWDtBQUhELFdBQVksTUFBTTtJQUNoQixtQ0FBUSxDQUFBO0lBQ1IsbUNBQVEsQ0FBQTtBQUNWLENBQUMsRUFIVyxNQUFNLHNCQUFOLE1BQU0sUUFHakI7QUFFRCwrREFBK0Q7QUFDL0QsSUFBWSxVQUdYO0FBSEQsV0FBWSxVQUFVO0lBQ3BCLCtDQUFVLENBQUE7SUFDVixxREFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUhXLFVBQVUsMEJBQVYsVUFBVSxRQUdyQjtBQXVKRCwyQ0FBMkM7QUFDM0MsdURBQXVEO0FBRXZELGdGQUFnRjtBQUNoRixtQkFBbUI7QUFDbkIsZ0ZBQWdGO0FBRWhGOzs7R0FHRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLENBQVM7SUFDM0MsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNiLElBQUksQ0FBQyxDQUFDO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFFbEIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQixNQUFNLE1BQU0sR0FBc0IsRUFBRSxDQUFDO0lBQ3JDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPO1lBQUUsU0FBUztRQUN2QixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFD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R0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEUsT0FBTyxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDdEMsQ0FBQztJQUNELE9BQU8sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUMxQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiwwQkFBMEIsQ0FBQyxLQUEwQjtJQUNuRSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDakMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakUsT0FBTyxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDdEMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLFNBQWlCO0lBQzlDLElBQUksQ0FBQyxTQUFTO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDMUIsT0FBTyxhQUFhLFNBQVMsSUFBSSxDQUFDO0FBQ3BDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxFQUFVO0lBQ3hDLE9BQU8sRUFBRSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbnZlbmllbmNlIEFQSSB0eXBlcyBmb3IgR1FMREIgTm9kZS5qcyBkcml2ZXIuXG4gKi9cblxuaW1wb3J0IHsgUHJvcGVydHlUeXBlIH0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQgdHlwZSB7IFJlc3BvbnNlIH0gZnJvbSAnLi4vcmVzcG9uc2UnO1xuXG4vKiogRGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIG5vZGUgYW5kIGVkZ2Ugb3BlcmF0aW9ucyAqL1xuZXhwb3J0IGVudW0gREJUeXBlIHtcbiAgTk9ERSA9IDAsXG4gIEVER0UgPSAxLFxufVxuXG4vKiogQ29udHJvbHMgdGhlIGluc2VydCBtb2RlIGZvciBHUUwtYmFzZWQgaW5zZXJ0IG9wZXJhdGlvbnMgKi9cbmV4cG9ydCBlbnVtIEluc2VydFR5cGUge1xuICBOb3JtYWwgPSAwLFxuICBPdmVyd3JpdGUgPSAxLFxufVxuXG4vKiogTGFiZWwgaW5mbyBmcm9tIFNIT1cgTEFCRUxTLlxuICpcbiAqIEdRTCBzdXBwb3J0cyBtdWx0aS1sYWJlbCBub2RlcyAoZS5nLiAobjpQZXJzb246RW1wbG95ZWUpKSwgc28gdGhlXG4gKiBzZXJ2ZXIgcmV0dXJucyBsYWJlbHMgYXMgYSBsaXN0IGV2ZW4gd2hlbiB0aGVyZSBpcyBvbmx5IG9uZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYWJlbEluZm8ge1xuICBsYWJlbHM6IHN0cmluZ1tdO1xuICB0eXBlOiBzdHJpbmc7IC8vIFwiTk9ERVwiIG9yIFwiRURHRVwiXG59XG5cbi8qKiBOb2RlIHR5cGUgaW5mbyBmcm9tIFNIT1cgTk9ERSBUWVBFUyAqL1xuZXhwb3J0IGludGVyZmFjZSBOb2RlVHlwZUluZm8ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHByb3BlcnRpZXM6IENvbnZQcm9wZXJ0eURlZltdO1xufVxuXG4vKiogRWRnZSB0eXBlIGluZm8gZnJvbSBTSE9XIEVER0UgVFlQRVMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRnZVR5cGVJbmZvIHtcbiAgbmFtZTogc3RyaW5nO1xuICBwcm9wZXJ0aWVzOiBDb252UHJvcGVydHlEZWZbXTtcbn1cblxuLyoqIExhYmVsIGRlZmluaXRpb24gdXNlZCB3aGVuIGNyZWF0aW5nIGNsb3NlZCBncmFwaHMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFiZWxEZWYge1xuICBuYW1lOiBzdHJpbmc7XG4gIHByb3BlcnRpZXM6IENvbnZQcm9wZXJ0eURlZltdO1xufVxuXG4vKiogUHJvcGVydHkgZGVmaW5pdGlvbiBmb3IgY29udmVuaWVuY2UgQVBJICh1c2VzIHN0cmluZyB0eXBlIG5hbWUpICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnZQcm9wZXJ0eURlZiB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nOyAvLyBHUUwgdHlwZSBuYW1lOiBcIlNUUklOR1wiLCBcIklOVDY0XCIsIFwiRE9VQkxFXCIsIGV0Yy5cbn1cblxuLyoqIFByb3BlcnR5IGluIGFuIGluZGV4IGRlZmluaXRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5kZXhQcm9wZXJ0eSB7XG4gIG5hbWU6IHN0cmluZztcbiAgcHJlZml4TGVuZ3RoPzogbnVtYmVyOyAvLyAwIG9yIHVuZGVmaW5lZCA9IG5vIHByZWZpeCwgPjAgPSBwcmVmaXggbGVuZ3RoIGZvciBTVFJJTkdcbn1cblxuLyoqIEluZGV4IGluZm8gZnJvbSBTSE9XIElOREVYICovXG5leHBvcnQgaW50ZXJmYWNlIEluZGV4SW5mbyB7XG4gIGluZGV4TmFtZTogc3RyaW5nO1xuICBlbnRpdHlUeXBlOiBzdHJpbmc7IC8vIFwiTk9ERVwiIG9yIFwiRURHRVwiXG4gIGxhYmVsOiBzdHJpbmc7XG4gIHByb3BlcnR5OiBzdHJpbmc7XG4gIHByZWZpeExlbmd0aD86IG51bWJlcjtcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIHByb2dyZXNzOiBzdHJpbmc7XG4gIGluZGV4ZWRDb3VudDogbnVtYmVyO1xuICB0b3RhbENvdW50OiBudW1iZXI7XG4gIGVycm9yOiBzdHJpbmc7XG59XG5cbi8qKiBGdWxsdGV4dCBpbmRleCBpbmZvIGZyb20gU0hPVyBGVUxMVEVYVCAqL1xuZXhwb3J0IGludGVyZmFjZSBGdWxsdGV4dEluZm8ge1xuICBpbmRleE5hbWU6IHN0cmluZztcbiAgZW50aXR5VHlwZTogc3RyaW5nOyAvLyBcIk5PREVcIiBvciBcIkVER0VcIlxuICBzY2hlbWFOYW1lOiBzdHJpbmc7XG4gIHByb3BlcnRpZXM6IHN0cmluZztcbiAgYW5hbHl6ZXI6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIGRvY0NvdW50OiBudW1iZXI7XG4gIHByb2dyZXNzOiBzdHJpbmc7XG59XG5cbi8qKiBUYXNrIGluZm8gZnJvbSBTSE9XIFRBU0tTICovXG5leHBvcnQgaW50ZXJmYWNlIFRhc2tJbmZvIHtcbiAgdGFza0lkOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgcXVlcnk6IHN0cmluZztcbiAgYWxnb05hbWU6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIHN0YXJ0ZWRBdDogc3RyaW5nO1xuICBwcm9ncmVzczogc3RyaW5nO1xuICBwYXJhbWV0ZXJzOiBzdHJpbmc7XG4gIG5vZGVzV3JpdHRlbjogbnVtYmVyO1xuICBjb21wdXRlVGltZU1zOiBudW1iZXI7XG4gIHdyaXRlVGltZU1zOiBudW1iZXI7XG59XG5cbi8qKiBQcm9jZXNzIGluZm8gZnJvbSBUT1AgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc0luZm8ge1xuICBxdWVyeUlkOiBzdHJpbmc7XG4gIHF1ZXJ5VGV4dDogc3RyaW5nO1xuICBzdGFydFRpbWU6IHN0cmluZztcbiAgZHVyYXRpb25NczogbnVtYmVyO1xuICBzdGF0dXM6IHN0cmluZztcbn1cblxuLyoqIEdyYXBoIHN0YXRpc3RpY3MgZnJvbSBkYi5zdGF0cygpICovXG5leHBvcnQgaW50ZXJmYWNlIEdyYXBoU3RhdHMge1xuICBncmFwaE5hbWU6IHN0cmluZztcbiAgbm9kZUNvdW50OiBudW1iZXI7XG4gIGVkZ2VDb3VudDogbnVtYmVyO1xuICBsYWJlbENvdW50czogUmVjb3JkPHN0cmluZywgbnVtYmVyPjtcbiAgZWRnZUxhYmVsQ291bnRzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xuICBub2RlUHJvcGVydHlTdGF0czogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgbnVtYmVyPj47XG4gIGVkZ2VQcm9wZXJ0eVN0YXRzOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+Pjtcbn1cblxuLyoqIFJlc3BvbnNlIGZvciBHUUwtYmFzZWQgaW5zZXJ0IG9wZXJhdGlvbnMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zZXJ0R3FsUmVzcG9uc2Uge1xuICByb3dzQWZmZWN0ZWQ6IG51bWJlcjtcbn1cblxuLyoqIEFsZ29yaXRobSBpbmZvIGZyb20gU0hPVyBBTEdPUyAqL1xuZXhwb3J0IGludGVyZmFjZSBBbGdvSW5mbyB7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBwYXJhbWV0ZXJzOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT25lIHN0YWdlIHJvdyBmcm9tIGEgQ0FMTCBhaS5yZWFkIC8gYWkuZ3FsIFlJRUxEIHN0cmVhbS5cbiAqIFN0YWdlIG5hbWVzIGluY2x1ZGU6IHN0YXJ0LCByb3V0aW5nLCBpbnRlbnRfZXh0cmFjdGlvbiwgZGVzY3JpYmVfYWxnb3JpdGhtLFxuICogZ2VuZXJhdGlvbiwgdmFsaWRhdGlvbiwgZXhlY3V0aW9uLCBmaW5hbCwgZXJyb3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWlTdGFnZSB7XG4gIHN0YWdlOiBzdHJpbmc7XG4gIGRldGFpbDogc3RyaW5nO1xuICBlbGFwc2VkTXM6IG51bWJlcjtcbiAgdG9rZW5zSW5wdXQ6IG51bWJlcjtcbiAgdG9rZW5zT3V0cHV0OiBudW1iZXI7XG4gIHRva2Vuc0NhY2hlZDogbnVtYmVyO1xuICAvKiogU3RhZ2Utc3BlY2lmaWMgcGF5bG9hZCAocG9seW1vcnBoaWMgSlNPTiBmcm9tIHNlcnZlcikuICovXG4gIGRhdGE6IGFueTtcbn1cblxuLyoqXG4gKiBSZXN1bHQgb2YgYSBjbGllbnQuYWlSZWFkKCkgLyBjbGllbnQuYWlHcWwoKSBjYWxsLlxuICpcbiAqIEZvciBhaVJlYWQ6IGBkYXRhYCBpcyB0aGUgUmVzcG9uc2UgZnJvbSByZS1leGVjdXRpbmcgdGhlIGdlbmVyYXRlZCBHUUwuXG4gKiBGb3IgYWlHcWw6ICBgZGF0YWAgaXMgYWx3YXlzIG51bGwgKGdlbmVyYXRpb24tb25seTsgY2FsbGVyIHJlcnVucyBtYW51YWxseSkuXG4gKiBPbiBBSS1zaWRlIGVycm9ycywgYHN1Y2Nlc3M9ZmFsc2VgLCBgZXJyb3JgIGlzIHBvcHVsYXRlZCwgYW5kIGBkYXRhYCBpcyBudWxsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFpUmVhZFJlc3VsdCB7XG4gIHN0YWdlczogQWlTdGFnZVtdO1xuICBnZW5lcmF0ZWRHcWw6IHN0cmluZyB8IG51bGw7XG4gIGRhdGE6IFJlc3BvbnNlIHwgbnVsbDtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgZXJyb3I6IHN0cmluZyB8IG51bGw7XG4gIHRvdGFsRWxhcHNlZE1zOiBudW1iZXI7XG4gIHRvdGFsVG9rZW5zSW5wdXQ6IG51bWJlcjtcbiAgdG90YWxUb2tlbnNPdXRwdXQ6IG51bWJlcjtcbiAgdG90YWxUb2tlbnNDYWNoZWQ6IG51bWJlcjtcbn1cblxuLy8gQ29udk5vZGUgYW5kIENvbnZFZGdlIGhhdmUgYmVlbiByZW1vdmVkLlxuLy8gVXNlIE5vZGVEYXRhIGFuZCBFZGdlRGF0YSBmcm9tIGdyYXBoX21vZGVscyBpbnN0ZWFkLlxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSGVscGVyIEZ1bmN0aW9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBQYXJzZSBhIGNvbW1hLXNlcGFyYXRlZCBwcm9wZXJ0eSBkZWZpbml0aW9uIHN0cmluZyBsaWtlIFwiYWdlIElOVEVHRVIsIG5hbWUgU1RSSU5HXCJcbiAqIGludG8gYW4gYXJyYXkgb2YgQ29udlByb3BlcnR5RGVmLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VQcm9wZXJ0eVN0cmluZyhzOiBzdHJpbmcpOiBDb252UHJvcGVydHlEZWZbXSB7XG4gIHMgPSBzLnRyaW0oKTtcbiAgaWYgKCFzKSByZXR1cm4gW107XG5cbiAgY29uc3QgcGFydHMgPSBzLnNwbGl0KCcsJyk7XG4gIGNvbnN0IHJlc3VsdDogQ29udlByb3BlcnR5RGVmW10gPSBbXTtcbiAgZm9yIChjb25zdCBwYXJ0IG9mIHBhcnRzKSB7XG4gICAgY29uc3QgdHJpbW1lZCA9IHBhcnQudHJpbSgpO1xuICAgIGlmICghdHJpbW1lZCkgY29udGludWU7XG4gICAgY29uc3QgdG9rZW5zID0gdHJpbW1lZC5zcGxpdCgvXFxzKy8pO1xuICAgIGlmICh0b2tlbnMubGVuZ3RoIDwgMikgY29udGludWU7XG4gICAgcmVzdWx0LnB1c2goeyBuYW1lOiB0b2tlbnNbMF0sIHR5cGU6IHRva2Vuc1sxXS50b1VwcGVyQ2FzZSgpIH0pO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ29udmVydCBhIENvbnZQcm9wZXJ0eURlZiB0eXBlIHN0cmluZyB0byBpdHMgR1FMIHJlcHJlc2VudGF0aW9uLlxuICogSWYgdGhlIHR5cGUgaXMgYWxyZWFkeSBhIHZhbGlkIEdRTCB0eXBlIG5hbWUsIHJldHVybnMgaXQgYXMtaXMgKHVwcGVyY2FzZWQpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvcGVydHlUeXBlVG9HUUwodHlwZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB0eXBlTmFtZS50b1VwcGVyQ2FzZSgpO1xufVxuXG4vKipcbiAqIEJ1aWxkIGEgR1FMIHByb3BlcnR5IGRlZmluaXRpb24gc3RyaW5nIGxpa2UgXCJ7YWdlIElOVDY0LCBuYW1lIFNUUklOR31cIiBmcm9tIENvbnZQcm9wZXJ0eURlZltdLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQcm9wZXJ0eURlZlN0cmluZyhwcm9wczogQ29udlByb3BlcnR5RGVmW10pOiBzdHJpbmcge1xuICBpZiAoIXByb3BzIHx8IHByb3BzLmxlbmd0aCA9PT0gMCkgcmV0dXJuICd7fSc7XG4gIGNvbnN0IHBhcnRzID0gcHJvcHMubWFwKHAgPT4gYFxcYCR7cC5uYW1lfVxcYCAke3Byb3BlcnR5VHlwZVRvR1FMKHAudHlwZSl9YCk7XG4gIHJldHVybiAneycgKyBwYXJ0cy5qb2luKCcsICcpICsgJ30nO1xufVxuXG4vKipcbiAqIEJ1aWxkIHRoZSBwcm9wZXJ0eSBsaXN0IGZvciBDUkVBVEUgSU5ERVgsIGUuZy4gXCJwcm9wMSwgcHJvcDIoMTApXCIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEluZGV4UHJvcGVydHlTdHJpbmcocHJvcHM6IEluZGV4UHJvcGVydHlbXSk6IHN0cmluZyB7XG4gIHJldHVybiBwcm9wcy5tYXAocCA9PiB7XG4gICAgaWYgKHAucHJlZml4TGVuZ3RoICYmIHAucHJlZml4TGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGBcXGAke3AubmFtZX1cXGAoJHtwLnByZWZpeExlbmd0aH0pYDtcbiAgICB9XG4gICAgcmV0dXJuIGBcXGAke3AubmFtZX1cXGBgO1xuICB9KS5qb2luKCcsICcpO1xufVxuXG4vKipcbiAqIEZvcm1hdCBhIEphdmFTY3JpcHQgdmFsdWUgYXMgYSBHUUwgbGl0ZXJhbCBmb3IgSU5TRVJUIHN0YXRlbWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRHcWxWYWx1ZSh2OiBhbnkpOiBzdHJpbmcge1xuICBpZiAodiA9PT0gbnVsbCB8fCB2ID09PSB1bmRlZmluZWQpIHJldHVybiAnTlVMTCc7XG4gIGlmICh0eXBlb2YgdiA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25zdCBlc2NhcGVkID0gdi5yZXBsYWNlKC8nL2csIFwiXFxcXCdcIik7XG4gICAgcmV0dXJuIGAnJHtlc2NhcGVkfSdgO1xuICB9XG4gIGlmICh0eXBlb2YgdiA9PT0gJ2Jvb2xlYW4nKSByZXR1cm4gdiA/ICdUUlVFJyA6ICdGQUxTRSc7XG4gIGlmICh0eXBlb2YgdiA9PT0gJ251bWJlcicpIHJldHVybiBTdHJpbmcodik7XG4gIGlmICh0eXBlb2YgdiA9PT0gJ2JpZ2ludCcpIHJldHVybiBTdHJpbmcodik7XG4gIGlmIChBcnJheS5pc0FycmF5KHYpKSB7XG4gICAgY29uc3QgZWxlbXMgPSB2Lm1hcCgoZWxlbTogYW55KSA9PiBmb3JtYXRHcWxWYWx1ZShlbGVtKSk7XG4gICAgcmV0dXJuICdbJyArIGVsZW1zLmpvaW4oJywgJykgKyAnXSc7XG4gIH1cbiAgaWYgKHR5cGVvZiB2ID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IGVudHJpZXMgPSBPYmplY3QuZW50cmllcyh2KTtcbiAgICBjb25zdCBwYXJ0cyA9IGVudHJpZXMubWFwKChbaywgdmFsXSkgPT4gYCR7a306ICR7Zm9ybWF0R3FsVmFsdWUodmFsKX1gKTtcbiAgICByZXR1cm4gJ3snICsgcGFydHMuam9pbignLCAnKSArICd9JztcbiAgfVxuICByZXR1cm4gYCcke1N0cmluZyh2KX0nYDtcbn1cblxuLyoqXG4gKiBCdWlsZCBhIEdRTCBwcm9wZXJ0eSB2YWx1ZSBtYXAgbGlrZSBcIntuYW1lOiAnQWxpY2UnLCBhZ2U6IDMwfVwiIGZyb20gYSBSZWNvcmQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFByb3BlcnRpZXNWYWx1ZVN0cmluZyhwcm9wczogUmVjb3JkPHN0cmluZywgYW55Pik6IHN0cmluZyB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhwcm9wcyk7XG4gIGlmIChrZXlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuICcnO1xuICBjb25zdCBwYXJ0cyA9IGtleXMubWFwKGsgPT4gYCR7a306ICR7Zm9ybWF0R3FsVmFsdWUocHJvcHNba10pfWApO1xuICByZXR1cm4gJ3snICsgcGFydHMuam9pbignLCAnKSArICd9Jztcbn1cblxuLyoqXG4gKiBSZXR1cm4gXCJVU0UgR1JBUEggPG5hbWU+XFxuXCIgaWYgZ3JhcGhOYW1lIGlzIG5vbi1lbXB0eSwgb3RoZXJ3aXNlIFwiXCIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VHcmFwaFByZWZpeChncmFwaE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghZ3JhcGhOYW1lKSByZXR1cm4gJyc7XG4gIHJldHVybiBgVVNFIEdSQVBIICR7Z3JhcGhOYW1lfVxcbmA7XG59XG5cbi8qKlxuICogQ29udmVydCBEQlR5cGUgdG8gR1FMIGtleXdvcmQgXCJOT0RFXCIgb3IgXCJFREdFXCIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYlR5cGVUb0tleXdvcmQoZHQ6IERCVHlwZSk6IHN0cmluZyB7XG4gIHJldHVybiBkdCA9PT0gREJUeXBlLkVER0UgPyAnRURHRScgOiAnTk9ERSc7XG59XG4iXX0=
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVuaWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvY29udmVuaWVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFpTUgsa0RBY0M7QUFNRCw4Q0FFQztBQUtELHdEQUlDO0FBS0QsNERBT0M7QUFLRCx3Q0FtQkM7QUFLRCxnRUFLQztBQUtELHdDQUdDO0FBS0QsMENBRUM7QUF4UkQscURBQXFEO0FBQ3JELElBQVksTUFHWDtBQUhELFdBQVksTUFBTTtJQUNoQixtQ0FBUSxDQUFBO0lBQ1IsbUNBQVEsQ0FBQTtBQUNWLENBQUMsRUFIVyxNQUFNLHNCQUFOLE1BQU0sUUFHakI7QUFFRDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxJQUFZLFVBSVg7QUFKRCxXQUFZLFVBQVU7SUFDcEIsK0NBQVUsQ0FBQTtJQUNWLHFEQUFhLENBQUE7SUFDYiwrQ0FBVSxDQUFBO0FBQ1osQ0FBQyxFQUpXLFVBQVUsMEJBQVYsVUFBVSxRQUlyQjtBQXVKRCwyQ0FBMkM7QUFDM0MsdURBQXVEO0FBRXZELGdGQUFnRjtBQUNoRixtQkFBbUI7QUFDbkIsZ0ZBQWdGO0FBRWhGOzs7R0FHRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLENBQVM7SUFDM0MsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNiLElBQUksQ0FBQyxDQUFDO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFFbEIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQixNQUFNLE1BQU0sR0FBc0IsRUFBRSxDQUFDO0lBQ3JDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPO1lBQUUsU0FBUztRQUN2QixNQUFNLE1BQU0sR0FBRyxPQUFPLENB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Tm9kZS5qcyBkcml2ZXIuXG4gKi9cblxuaW1wb3J0IHsgUHJvcGVydHlUeXBlIH0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQgdHlwZSB7IFJlc3BvbnNlIH0gZnJvbSAnLi4vcmVzcG9uc2UnO1xuXG4vKiogRGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIG5vZGUgYW5kIGVkZ2Ugb3BlcmF0aW9ucyAqL1xuZXhwb3J0IGVudW0gREJUeXBlIHtcbiAgTk9ERSA9IDAsXG4gIEVER0UgPSAxLFxufVxuXG4vKipcbiAqIENvbnRyb2xzIHRoZSBpbnNlcnQgbW9kZSBmb3IgR1FMLWJhc2VkIGluc2VydCBvcGVyYXRpb25zLlxuICpcbiAqICAgLSBgTm9ybWFsYDogICAgSU5TRVJUIOKAlCBlcnJvciBpZiBgX2lkYCBhbHJlYWR5IGV4aXN0cy5cbiAqICAgLSBgT3ZlcndyaXRlYDogSU5TRVJUIE9WRVJXUklURSDigJQgUkVQTEFDRSBleGlzdGluZyBlbnRpdHkgd2hvbGVzYWxlXG4gKiAgICAgb24gZHVwbGljYXRlIGBfaWRgLiBQcm9wZXJ0aWVzIG5vdCBpbiB0aGUgd3JpdGUgYXJlIExPU1QuXG4gKiAgIC0gYFVwc2VydGA6ICAgIFVQU0VSVCDigJQgTUVSR0UgbmV3IHByb3BlcnRpZXMgaW50byBleGlzdGluZyBlbnRpdHlcbiAqICAgICBvbiBkdXBsaWNhdGUgYF9pZGAuIFByb3BlcnRpZXMgbm90IGluIHRoZSB3cml0ZSBhcmUgUFJFU0VSVkVEO1xuICogICAgIHByb3BlcnRpZXMgaW4gdGhlIHdyaXRlIE9WRVJXUklURSBleGlzdGluZyB2YWx1ZXMuIEZhbGxzIGJhY2sgdG9cbiAqICAgICBwbGFpbiBpbnNlcnQgd2hlbiBubyBgX2lkYCBtYXRjaGVzLlxuICpcbiAqIGBPdmVyd3JpdGVgIGFuZCBgVXBzZXJ0YCBhcmUgZGlmZmVyZW50IHNlbWFudGljcyBvbiBleGlzdGluZyByb3dzLlxuICogQ2hvb3NlIGBVcHNlcnRgIChtZXJnZSkgZm9yIHBhcnRpYWwtdXBkYXRlIHdvcmtsb2FkcyB3aGVyZSB5b3UgZG9uJ3RcbiAqIHdhbnQgdG8gbG9zZSBleGlzdGluZyBmaWVsZHM7IGNob29zZSBgT3ZlcndyaXRlYCAocmVwbGFjZSkgZm9yXG4gKiBrbm93bi1jbGVhbiByZS1pbmdlc3Qgb2YgYW4gZW50aXR5J3MgZnVsbCBzdGF0ZS5cbiAqL1xuZXhwb3J0IGVudW0gSW5zZXJ0VHlwZSB7XG4gIE5vcm1hbCA9IDAsXG4gIE92ZXJ3cml0ZSA9IDEsXG4gIFVwc2VydCA9IDIsXG59XG5cbi8qKiBMYWJlbCBpbmZvIGZyb20gU0hPVyBMQUJFTFMuXG4gKlxuICogR1FMIHN1cHBvcnRzIG11bHRpLWxhYmVsIG5vZGVzIChlLmcuIChuOlBlcnNvbjpFbXBsb3llZSkpLCBzbyB0aGVcbiAqIHNlcnZlciByZXR1cm5zIGxhYmVscyBhcyBhIGxpc3QgZXZlbiB3aGVuIHRoZXJlIGlzIG9ubHkgb25lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhYmVsSW5mbyB7XG4gIGxhYmVsczogc3RyaW5nW107XG4gIHR5cGU6IHN0cmluZzsgLy8gXCJOT0RFXCIgb3IgXCJFREdFXCJcbn1cblxuLyoqIE5vZGUgdHlwZSBpbmZvIGZyb20gU0hPVyBOT0RFIFRZUEVTICovXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVUeXBlSW5mbyB7XG4gIG5hbWU6IHN0cmluZztcbiAgcHJvcGVydGllczogQ29udlByb3BlcnR5RGVmW107XG59XG5cbi8qKiBFZGdlIHR5cGUgaW5mbyBmcm9tIFNIT1cgRURHRSBUWVBFUyAqL1xuZXhwb3J0IGludGVyZmFjZSBFZGdlVHlwZUluZm8ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHByb3BlcnRpZXM6IENvbnZQcm9wZXJ0eURlZltdO1xufVxuXG4vKiogTGFiZWwgZGVmaW5pdGlvbiB1c2VkIHdoZW4gY3JlYXRpbmcgY2xvc2VkIGdyYXBocyAqL1xuZXhwb3J0IGludGVyZmFjZSBMYWJlbERlZiB7XG4gIG5hbWU6IHN0cmluZztcbiAgcHJvcGVydGllczogQ29udlByb3BlcnR5RGVmW107XG59XG5cbi8qKiBQcm9wZXJ0eSBkZWZpbml0aW9uIGZvciBjb252ZW5pZW5jZSBBUEkgKHVzZXMgc3RyaW5nIHR5cGUgbmFtZSkgKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udlByb3BlcnR5RGVmIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7IC8vIEdRTCB0eXBlIG5hbWU6IFwiU1RSSU5HXCIsIFwiSU5UNjRcIiwgXCJET1VCTEVcIiwgZXRjLlxufVxuXG4vKiogUHJvcGVydHkgaW4gYW4gaW5kZXggZGVmaW5pdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmRleFByb3BlcnR5IHtcbiAgbmFtZTogc3RyaW5nO1xuICBwcmVmaXhMZW5ndGg/OiBudW1iZXI7IC8vIDAgb3IgdW5kZWZpbmVkID0gbm8gcHJlZml4LCA+MCA9IHByZWZpeCBsZW5ndGggZm9yIFNUUklOR1xufVxuXG4vKiogSW5kZXggaW5mbyBmcm9tIFNIT1cgSU5ERVggKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5kZXhJbmZvIHtcbiAgaW5kZXhOYW1lOiBzdHJpbmc7XG4gIGVudGl0eVR5cGU6IHN0cmluZzsgLy8gXCJOT0RFXCIgb3IgXCJFREdFXCJcbiAgbGFiZWw6IHN0cmluZztcbiAgcHJvcGVydHk6IHN0cmluZztcbiAgcHJlZml4TGVuZ3RoPzogbnVtYmVyO1xuICBzdGF0dXM6IHN0cmluZztcbiAgcHJvZ3Jlc3M6IHN0cmluZztcbiAgaW5kZXhlZENvdW50OiBudW1iZXI7XG4gIHRvdGFsQ291bnQ6IG51bWJlcjtcbiAgZXJyb3I6IHN0cmluZztcbn1cblxuLyoqIEZ1bGx0ZXh0IGluZGV4IGluZm8gZnJvbSBTSE9XIEZVTExURVhUICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bGx0ZXh0SW5mbyB7XG4gIGluZGV4TmFtZTogc3RyaW5nO1xuICBlbnRpdHlUeXBlOiBzdHJpbmc7IC8vIFwiTk9ERVwiIG9yIFwiRURHRVwiXG4gIHNjaGVtYU5hbWU6IHN0cmluZztcbiAgcHJvcGVydGllczogc3RyaW5nO1xuICBhbmFseXplcjogc3RyaW5nO1xuICBzdGF0dXM6IHN0cmluZztcbiAgZG9jQ291bnQ6IG51bWJlcjtcbiAgcHJvZ3Jlc3M6IHN0cmluZztcbn1cblxuLyoqIFRhc2sgaW5mbyBmcm9tIFNIT1cgVEFTS1MgKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFza0luZm8ge1xuICB0YXNrSWQ6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBxdWVyeTogc3RyaW5nO1xuICBhbGdvTmFtZTogc3RyaW5nO1xuICBzdGF0dXM6IHN0cmluZztcbiAgc3RhcnRlZEF0OiBzdHJpbmc7XG4gIHByb2dyZXNzOiBzdHJpbmc7XG4gIHBhcmFtZXRlcnM6IHN0cmluZztcbiAgbm9kZXNXcml0dGVuOiBudW1iZXI7XG4gIGNvbXB1dGVUaW1lTXM6IG51bWJlcjtcbiAgd3JpdGVUaW1lTXM6IG51bWJlcjtcbn1cblxuLyoqIFByb2Nlc3MgaW5mbyBmcm9tIFRPUCAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9jZXNzSW5mbyB7XG4gIHF1ZXJ5SWQ6IHN0cmluZztcbiAgcXVlcnlUZXh0OiBzdHJpbmc7XG4gIHN0YXJ0VGltZTogc3RyaW5nO1xuICBkdXJhdGlvbk1zOiBudW1iZXI7XG4gIHN0YXR1czogc3RyaW5nO1xufVxuXG4vKiogR3JhcGggc3RhdGlzdGljcyBmcm9tIGRiLnN0YXRzKCkgKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JhcGhTdGF0cyB7XG4gIGdyYXBoTmFtZTogc3RyaW5nO1xuICBub2RlQ291bnQ6IG51bWJlcjtcbiAgZWRnZUNvdW50OiBudW1iZXI7XG4gIGxhYmVsQ291bnRzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xuICBlZGdlTGFiZWxDb3VudHM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj47XG4gIG5vZGVQcm9wZXJ0eVN0YXRzOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+PjtcbiAgZWRnZVByb3BlcnR5U3RhdHM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIG51bWJlcj4+O1xufVxuXG4vKiogUmVzcG9uc2UgZm9yIEdRTC1iYXNlZCBpbnNlcnQgb3BlcmF0aW9ucyAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnNlcnRHcWxSZXNwb25zZSB7XG4gIHJvd3NBZmZlY3RlZDogbnVtYmVyO1xufVxuXG4vKiogQWxnb3JpdGhtIGluZm8gZnJvbSBTSE9XIEFMR09TICovXG5leHBvcnQgaW50ZXJmYWNlIEFsZ29JbmZvIHtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIHBhcmFtZXRlcnM6IHN0cmluZztcbn1cblxuLyoqXG4gKiBPbmUgc3RhZ2Ugcm93IGZyb20gYSBDQUxMIGFpLnJlYWQgLyBhaS5ncWwgWUlFTEQgc3RyZWFtLlxuICogU3RhZ2UgbmFtZXMgaW5jbHVkZTogc3RhcnQsIHJvdXRpbmcsIGludGVudF9leHRyYWN0aW9uLCBkZXNjcmliZV9hbGdvcml0aG0sXG4gKiBnZW5lcmF0aW9uLCB2YWxpZGF0aW9uLCBleGVjdXRpb24sIGZpbmFsLCBlcnJvci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBaVN0YWdlIHtcbiAgc3RhZ2U6IHN0cmluZztcbiAgZGV0YWlsOiBzdHJpbmc7XG4gIGVsYXBzZWRNczogbnVtYmVyO1xuICB0b2tlbnNJbnB1dDogbnVtYmVyO1xuICB0b2tlbnNPdXRwdXQ6IG51bWJlcjtcbiAgdG9rZW5zQ2FjaGVkOiBudW1iZXI7XG4gIC8qKiBTdGFnZS1zcGVjaWZpYyBwYXlsb2FkIChwb2x5bW9ycGhpYyBKU09OIGZyb20gc2VydmVyKS4gKi9cbiAgZGF0YTogYW55O1xufVxuXG4vKipcbiAqIFJlc3VsdCBvZiBhIGNsaWVudC5haVJlYWQoKSAvIGNsaWVudC5haUdxbCgpIGNhbGwuXG4gKlxuICogRm9yIGFpUmVhZDogYGRhdGFgIGlzIHRoZSBSZXNwb25zZSBmcm9tIHJlLWV4ZWN1dGluZyB0aGUgZ2VuZXJhdGVkIEdRTC5cbiAqIEZvciBhaUdxbDogIGBkYXRhYCBpcyBhbHdheXMgbnVsbCAoZ2VuZXJhdGlvbi1vbmx5OyBjYWxsZXIgcmVydW5zIG1hbnVhbGx5KS5cbiAqIE9uIEFJLXNpZGUgZXJyb3JzLCBgc3VjY2Vzcz1mYWxzZWAsIGBlcnJvcmAgaXMgcG9wdWxhdGVkLCBhbmQgYGRhdGFgIGlzIG51bGwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWlSZWFkUmVzdWx0IHtcbiAgc3RhZ2VzOiBBaVN0YWdlW107XG4gIGdlbmVyYXRlZEdxbDogc3RyaW5nIHwgbnVsbDtcbiAgZGF0YTogUmVzcG9uc2UgfCBudWxsO1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBlcnJvcjogc3RyaW5nIHwgbnVsbDtcbiAgdG90YWxFbGFwc2VkTXM6IG51bWJlcjtcbiAgdG90YWxUb2tlbnNJbnB1dDogbnVtYmVyO1xuICB0b3RhbFRva2Vuc091dHB1dDogbnVtYmVyO1xuICB0b3RhbFRva2Vuc0NhY2hlZDogbnVtYmVyO1xufVxuXG4vLyBDb252Tm9kZSBhbmQgQ29udkVkZ2UgaGF2ZSBiZWVuIHJlbW92ZWQuXG4vLyBVc2UgTm9kZURhdGEgYW5kIEVkZ2VEYXRhIGZyb20gZ3JhcGhfbW9kZWxzIGluc3RlYWQuXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIZWxwZXIgRnVuY3Rpb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFBhcnNlIGEgY29tbWEtc2VwYXJhdGVkIHByb3BlcnR5IGRlZmluaXRpb24gc3RyaW5nIGxpa2UgXCJhZ2UgSU5URUdFUiwgbmFtZSBTVFJJTkdcIlxuICogaW50byBhbiBhcnJheSBvZiBDb252UHJvcGVydHlEZWYuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVByb3BlcnR5U3RyaW5nKHM6IHN0cmluZyk6IENvbnZQcm9wZXJ0eURlZltdIHtcbiAgcyA9IHMudHJpbSgpO1xuICBpZiAoIXMpIHJldHVybiBbXTtcblxuICBjb25zdCBwYXJ0cyA9IHMuc3BsaXQoJywnKTtcbiAgY29uc3QgcmVzdWx0OiBDb252UHJvcGVydHlEZWZbXSA9IFtdO1xuICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICBjb25zdCB0cmltbWVkID0gcGFydC50cmltKCk7XG4gICAgaWYgKCF0cmltbWVkKSBjb250aW51ZTtcbiAgICBjb25zdCB0b2tlbnMgPSB0cmltbWVkLnNwbGl0KC9cXHMrLyk7XG4gICAgaWYgKHRva2Vucy5sZW5ndGggPCAyKSBjb250aW51ZTtcbiAgICByZXN1bHQucHVzaCh7IG5hbWU6IHRva2Vuc1swXSwgdHlwZTogdG9rZW5zWzFdLnRvVXBwZXJDYXNlKCkgfSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgQ29udlByb3BlcnR5RGVmIHR5cGUgc3RyaW5nIHRvIGl0cyBHUUwgcmVwcmVzZW50YXRpb24uXG4gKiBJZiB0aGUgdHlwZSBpcyBhbHJlYWR5IGEgdmFsaWQgR1FMIHR5cGUgbmFtZSwgcmV0dXJucyBpdCBhcy1pcyAodXBwZXJjYXNlZCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9wZXJ0eVR5cGVUb0dRTCh0eXBlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVOYW1lLnRvVXBwZXJDYXNlKCk7XG59XG5cbi8qKlxuICogQnVpbGQgYSBHUUwgcHJvcGVydHkgZGVmaW5pdGlvbiBzdHJpbmcgbGlrZSBcInthZ2UgSU5UNjQsIG5hbWUgU1RSSU5HfVwiIGZyb20gQ29udlByb3BlcnR5RGVmW10uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFByb3BlcnR5RGVmU3RyaW5nKHByb3BzOiBDb252UHJvcGVydHlEZWZbXSk6IHN0cmluZyB7XG4gIGlmICghcHJvcHMgfHwgcHJvcHMubGVuZ3RoID09PSAwKSByZXR1cm4gJ3t9JztcbiAgY29uc3QgcGFydHMgPSBwcm9wcy5tYXAocCA9PiBgXFxgJHtwLm5hbWV9XFxgICR7cHJvcGVydHlUeXBlVG9HUUwocC50eXBlKX1gKTtcbiAgcmV0dXJuICd7JyArIHBhcnRzLmpvaW4oJywgJykgKyAnfSc7XG59XG5cbi8qKlxuICogQnVpbGQgdGhlIHByb3BlcnR5IGxpc3QgZm9yIENSRUFURSBJTkRFWCwgZS5nLiBcInByb3AxLCBwcm9wMigxMClcIi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkSW5kZXhQcm9wZXJ0eVN0cmluZyhwcm9wczogSW5kZXhQcm9wZXJ0eVtdKTogc3RyaW5nIHtcbiAgcmV0dXJuIHByb3BzLm1hcChwID0+IHtcbiAgICBpZiAocC5wcmVmaXhMZW5ndGggJiYgcC5wcmVmaXhMZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gYFxcYCR7cC5uYW1lfVxcYCgke3AucHJlZml4TGVuZ3RofSlgO1xuICAgIH1cbiAgICByZXR1cm4gYFxcYCR7cC5uYW1lfVxcYGA7XG4gIH0pLmpvaW4oJywgJyk7XG59XG5cbi8qKlxuICogRm9ybWF0IGEgSmF2YVNjcmlwdCB2YWx1ZSBhcyBhIEdRTCBsaXRlcmFsIGZvciBJTlNFUlQgc3RhdGVtZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEdxbFZhbHVlKHY6IGFueSk6IHN0cmluZyB7XG4gIGlmICh2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCkgcmV0dXJuICdOVUxMJztcbiAgaWYgKHR5cGVvZiB2ID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IGVzY2FwZWQgPSB2LnJlcGxhY2UoLycvZywgXCJcXFxcJ1wiKTtcbiAgICByZXR1cm4gYCcke2VzY2FwZWR9J2A7XG4gIH1cbiAgaWYgKHR5cGVvZiB2ID09PSAnYm9vbGVhbicpIHJldHVybiB2ID8gJ1RSVUUnIDogJ0ZBTFNFJztcbiAgaWYgKHR5cGVvZiB2ID09PSAnbnVtYmVyJykgcmV0dXJuIFN0cmluZyh2KTtcbiAgaWYgKHR5cGVvZiB2ID09PSAnYmlnaW50JykgcmV0dXJuIFN0cmluZyh2KTtcbiAgaWYgKEFycmF5LmlzQXJyYXkodikpIHtcbiAgICBjb25zdCBlbGVtcyA9IHYubWFwKChlbGVtOiBhbnkpID0+IGZvcm1hdEdxbFZhbHVlKGVsZW0pKTtcbiAgICByZXR1cm4gJ1snICsgZWxlbXMuam9pbignLCAnKSArICddJztcbiAgfVxuICBpZiAodHlwZW9mIHYgPT09ICdvYmplY3QnKSB7XG4gICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKHYpO1xuICAgIGNvbnN0IHBhcnRzID0gZW50cmllcy5tYXAoKFtrLCB2YWxdKSA9PiBgJHtrfTogJHtmb3JtYXRHcWxWYWx1ZSh2YWwpfWApO1xuICAgIHJldHVybiAneycgKyBwYXJ0cy5qb2luKCcsICcpICsgJ30nO1xuICB9XG4gIHJldHVybiBgJyR7U3RyaW5nKHYpfSdgO1xufVxuXG4vKipcbiAqIEJ1aWxkIGEgR1FMIHByb3BlcnR5IHZhbHVlIG1hcCBsaWtlIFwie25hbWU6ICdBbGljZScsIGFnZTogMzB9XCIgZnJvbSBhIFJlY29yZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUHJvcGVydGllc1ZhbHVlU3RyaW5nKHByb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogc3RyaW5nIHtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHByb3BzKTtcbiAgaWYgKGtleXMubGVuZ3RoID09PSAwKSByZXR1cm4gJyc7XG4gIGNvbnN0IHBhcnRzID0ga2V5cy5tYXAoayA9PiBgJHtrfTogJHtmb3JtYXRHcWxWYWx1ZShwcm9wc1trXSl9YCk7XG4gIHJldHVybiAneycgKyBwYXJ0cy5qb2luKCcsICcpICsgJ30nO1xufVxuXG4vKipcbiAqIFJldHVybiBcIlVTRSBHUkFQSCA8bmFtZT5cXG5cIiBpZiBncmFwaE5hbWUgaXMgbm9uLWVtcHR5LCBvdGhlcndpc2UgXCJcIi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUdyYXBoUHJlZml4KGdyYXBoTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFncmFwaE5hbWUpIHJldHVybiAnJztcbiAgcmV0dXJuIGBVU0UgR1JBUEggJHtncmFwaE5hbWV9XFxuYDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IERCVHlwZSB0byBHUUwga2V5d29yZCBcIk5PREVcIiBvciBcIkVER0VcIi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRiVHlwZVRvS2V5d29yZChkdDogREJUeXBlKTogc3RyaW5nIHtcbiAgcmV0dXJuIGR0ID09PSBEQlR5cGUuRURHRSA/ICdFREdFJyA6ICdOT0RFJztcbn1cbiJdfQ==
|
|
@@ -1,15 +1,38 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Graph entity types for GQLDB Node.js driver.
|
|
3
3
|
*/
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* Graph node.
|
|
6
|
+
*
|
|
7
|
+
* `id` and `uuid` semantics (gqldb 6.1.147+):
|
|
8
|
+
*
|
|
9
|
+
* - `id` is the user-facing identifier — user-provided string or
|
|
10
|
+
* the system auto-generated form. Use this when round-tripping
|
|
11
|
+
* identifiers through user code or external systems.
|
|
12
|
+
* - `uuid` is the system numeric ID (uint64) formatted as decimal.
|
|
13
|
+
* Stable, opaque, always available. Use this when you need a
|
|
14
|
+
* stable internal handle: cache keys, log correlation, dedup
|
|
15
|
+
* hashes. Treated as a string here to avoid uint64 precision
|
|
16
|
+
* loss in JavaScript above 2^53.
|
|
17
|
+
*
|
|
18
|
+
* `uuid` is the empty string when talking to a pre-6.1.147 server
|
|
19
|
+
* (the wire format had no InternalID trailer). Fall back to `id`
|
|
20
|
+
* for identity in that case.
|
|
21
|
+
*/
|
|
5
22
|
export interface GqldbNode {
|
|
6
23
|
id: string;
|
|
24
|
+
/** System numeric ID, decimal-formatted; '' on pre-6.1.147 servers */
|
|
25
|
+
uuid: string;
|
|
7
26
|
labels: string[];
|
|
8
27
|
properties: Record<string, any>;
|
|
9
28
|
}
|
|
10
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* Graph edge. See {@link GqldbNode} for the `id` / `uuid` semantics.
|
|
31
|
+
*/
|
|
11
32
|
export interface GqldbEdge {
|
|
12
33
|
id: string;
|
|
34
|
+
/** System numeric ID, decimal-formatted; '' on pre-6.1.147 servers */
|
|
35
|
+
uuid: string;
|
|
13
36
|
label: string;
|
|
14
37
|
fromNodeId: string;
|
|
15
38
|
toNodeId: string;
|
|
@@ -33,6 +56,8 @@ export interface NodeData {
|
|
|
33
56
|
}
|
|
34
57
|
/** Data for an edge to be inserted */
|
|
35
58
|
export interface EdgeData {
|
|
59
|
+
/** Optional custom edge ID; requires EDGE_ID enabled on the target graph (if empty, auto-generated) */
|
|
60
|
+
id?: string;
|
|
36
61
|
label: string;
|
|
37
62
|
fromNodeId: string;
|
|
38
63
|
toNodeId: string;
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* Graph entity types for GQLDB Node.js driver.
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhfbW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2dyYXBoX21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdyYXBoIGVudGl0eSB0eXBlcyBmb3IgR1FMREIgTm9kZS5qcyBkcml2ZXIuXG4gKi9cblxuLyoqXG4gKiBHcmFwaCBub2RlLlxuICpcbiAqIGBpZGAgYW5kIGB1dWlkYCBzZW1hbnRpY3MgKGdxbGRiIDYuMS4xNDcrKTpcbiAqXG4gKiAgIC0gYGlkYCBpcyB0aGUgdXNlci1mYWNpbmcgaWRlbnRpZmllciDigJQgdXNlci1wcm92aWRlZCBzdHJpbmcgb3JcbiAqICAgICB0aGUgc3lzdGVtIGF1dG8tZ2VuZXJhdGVkIGZvcm0uIFVzZSB0aGlzIHdoZW4gcm91bmQtdHJpcHBpbmdcbiAqICAgICBpZGVudGlmaWVycyB0aHJvdWdoIHVzZXIgY29kZSBvciBleHRlcm5hbCBzeXN0ZW1zLlxuICogICAtIGB1dWlkYCBpcyB0aGUgc3lzdGVtIG51bWVyaWMgSUQgKHVpbnQ2NCkgZm9ybWF0dGVkIGFzIGRlY2ltYWwuXG4gKiAgICAgU3RhYmxlLCBvcGFxdWUsIGFsd2F5cyBhdmFpbGFibGUuIFVzZSB0aGlzIHdoZW4geW91IG5lZWQgYVxuICogICAgIHN0YWJsZSBpbnRlcm5hbCBoYW5kbGU6IGNhY2hlIGtleXMsIGxvZyBjb3JyZWxhdGlvbiwgZGVkdXBcbiAqICAgICBoYXNoZXMuIFRyZWF0ZWQgYXMgYSBzdHJpbmcgaGVyZSB0byBhdm9pZCB1aW50NjQgcHJlY2lzaW9uXG4gKiAgICAgbG9zcyBpbiBKYXZhU2NyaXB0IGFib3ZlIDJeNTMuXG4gKlxuICogYHV1aWRgIGlzIHRoZSBlbXB0eSBzdHJpbmcgd2hlbiB0YWxraW5nIHRvIGEgcHJlLTYuMS4xNDcgc2VydmVyXG4gKiAodGhlIHdpcmUgZm9ybWF0IGhhZCBubyBJbnRlcm5hbElEIHRyYWlsZXIpLiBGYWxsIGJhY2sgdG8gYGlkYFxuICogZm9yIGlkZW50aXR5IGluIHRoYXQgY2FzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcWxkYk5vZGUge1xuICBpZDogc3RyaW5nO1xuICAvKiogU3lzdGVtIG51bWVyaWMgSUQsIGRlY2ltYWwtZm9ybWF0dGVkOyAnJyBvbiBwcmUtNi4xLjE0NyBzZXJ2ZXJzICovXG4gIHV1aWQ6IHN0cmluZztcbiAgbGFiZWxzOiBzdHJpbmdbXTtcbiAgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cblxuLyoqXG4gKiBHcmFwaCBlZGdlLiBTZWUge0BsaW5rIEdxbGRiTm9kZX0gZm9yIHRoZSBgaWRgIC8gYHV1aWRgIHNlbWFudGljcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcWxkYkVkZ2Uge1xuICBpZDogc3RyaW5nO1xuICAvKiogU3lzdGVtIG51bWVyaWMgSUQsIGRlY2ltYWwtZm9ybWF0dGVkOyAnJyBvbiBwcmUtNi4xLjE0NyBzZXJ2ZXJzICovXG4gIHV1aWQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgZnJvbU5vZGVJZDogc3RyaW5nO1xuICB0b05vZGVJZDogc3RyaW5nO1xuICBwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG4vKiogR3JhcGggcGF0aCBjb25zaXN0aW5nIG9mIG5vZGVzIGFuZCBlZGdlcyAqL1xuZXhwb3J0IGludGVyZmFjZSBHcWxkYlBhdGgge1xuICBub2RlczogR3FsZGJOb2RlW107XG4gIGVkZ2VzOiBHcWxkYkVkZ2VbXTtcbn1cblxuLyoqIEVycm9yIHZhbHVlIGZyb20gVFJZL0NBVENIIGhhbmRsaW5nICovXG5leHBvcnQgaW50ZXJmYWNlIEdxbGRiRXJyb3Ige1xuICBjb2RlOiBudW1iZXI7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqIERhdGEgZm9yIGEgbm9kZSB0byBiZSBpbnNlcnRlZCAqL1xuZXhwb3J0IGludGVyZmFjZSBOb2RlRGF0YSB7XG4gIGlkPzogc3RyaW5nO1xuICBsYWJlbHM6IHN0cmluZ1tdO1xuICBwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG4vKiogRGF0YSBmb3IgYW4gZWRnZSB0byBiZSBpbnNlcnRlZCAqL1xuZXhwb3J0IGludGVyZmFjZSBFZGdlRGF0YSB7XG4gIC8qKiBPcHRpb25hbCBjdXN0b20gZWRnZSBJRDsgcmVxdWlyZXMgRURHRV9JRCBlbmFibGVkIG9uIHRoZSB0YXJnZXQgZ3JhcGggKGlmIGVtcHR5LCBhdXRvLWdlbmVyYXRlZCkgKi9cbiAgaWQ/OiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGZyb21Ob2RlSWQ6IHN0cmluZztcbiAgdG9Ob2RlSWQ6IHN0cmluZztcbiAgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cblxuLyoqIEEgbm9kZSBleHBvcnRlZCBmcm9tIHRoZSBkYXRhYmFzZSAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHBvcnRlZE5vZGUge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbHM6IHN0cmluZ1tdO1xuICBwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG4vKiogQW4gZWRnZSBleHBvcnRlZCBmcm9tIHRoZSBkYXRhYmFzZSAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHBvcnRlZEVkZ2Uge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICBmcm9tTm9kZUlkOiBzdHJpbmc7XG4gIHRvTm9kZUlkOiBzdHJpbmc7XG4gIHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG4iXX0=
|