@bitgo/sdk-coin-sui 5.8.13 → 5.8.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/CHANGELOG.md +4 -0
- package/dist/src/lib/mystenlab/builder/Inputs.js +2 -3
- package/dist/src/lib/mystenlab/builder/TransactionBlock.js +7 -10
- package/dist/src/lib/mystenlab/builder/TransactionDataBlock.js +13 -16
- package/dist/src/lib/mystenlab/builder/Transactions.js +3 -4
- package/dist/src/lib/mystenlab/builder/serializer.js +3 -4
- package/dist/src/lib/mystenlab/framework/framework.js +4 -7
- package/dist/src/lib/mystenlab/types/objects.js +13 -23
- package/dist/src/lib/mystenlab/types/transactions.js +16 -31
- package/dist/src/lib/utils.js +2 -3
- package/dist/src/sui.js +3 -5
- package/package.json +5 -5
|
@@ -189,18 +189,16 @@ function getObjectReference(resp) {
|
|
|
189
189
|
}
|
|
190
190
|
/* ------------------------------ SuiObjectRef ------------------------------ */
|
|
191
191
|
function getObjectId(data) {
|
|
192
|
-
var _a, _b;
|
|
193
192
|
if ('objectId' in data) {
|
|
194
193
|
return data.objectId;
|
|
195
194
|
}
|
|
196
|
-
return
|
|
195
|
+
return getObjectReference(data)?.objectId ?? getObjectNotExistsResponse(data);
|
|
197
196
|
}
|
|
198
197
|
function getObjectVersion(data) {
|
|
199
|
-
var _a;
|
|
200
198
|
if ('version' in data) {
|
|
201
199
|
return data.version;
|
|
202
200
|
}
|
|
203
|
-
return
|
|
201
|
+
return getObjectReference(data)?.version;
|
|
204
202
|
}
|
|
205
203
|
/* -------------------------------- SuiObject ------------------------------- */
|
|
206
204
|
function isSuiObjectResponse(resp) {
|
|
@@ -212,30 +210,26 @@ function isSuiObjectResponse(resp) {
|
|
|
212
210
|
* if the object is a move object
|
|
213
211
|
*/
|
|
214
212
|
function getObjectType(resp) {
|
|
215
|
-
var _a;
|
|
216
213
|
const data = isSuiObjectResponse(resp) ? resp.data : resp;
|
|
217
|
-
if (!
|
|
218
|
-
if (
|
|
214
|
+
if (!data?.type && 'data' in resp) {
|
|
215
|
+
if (data?.content?.dataType === 'package') {
|
|
219
216
|
return 'package';
|
|
220
217
|
}
|
|
221
218
|
return getMoveObjectType(resp);
|
|
222
219
|
}
|
|
223
|
-
return data
|
|
220
|
+
return data?.type;
|
|
224
221
|
}
|
|
225
222
|
function getObjectPreviousTransactionDigest(resp) {
|
|
226
|
-
|
|
227
|
-
return (_a = getSuiObjectData(resp)) === null || _a === void 0 ? void 0 : _a.previousTransaction;
|
|
223
|
+
return getSuiObjectData(resp)?.previousTransaction;
|
|
228
224
|
}
|
|
229
225
|
function getObjectOwner(resp) {
|
|
230
|
-
var _a;
|
|
231
226
|
if ((0, superstruct_1.is)(resp, common_1.ObjectOwner)) {
|
|
232
227
|
return resp;
|
|
233
228
|
}
|
|
234
|
-
return
|
|
229
|
+
return getSuiObjectData(resp)?.owner;
|
|
235
230
|
}
|
|
236
231
|
function getObjectDisplay(resp) {
|
|
237
|
-
|
|
238
|
-
return (_a = getSuiObjectData(resp)) === null || _a === void 0 ? void 0 : _a.display;
|
|
232
|
+
return getSuiObjectData(resp)?.display;
|
|
239
233
|
}
|
|
240
234
|
function getSharedObjectInitialVersion(resp) {
|
|
241
235
|
const owner = getObjectOwner(resp);
|
|
@@ -255,15 +249,13 @@ function isImmutableObject(resp) {
|
|
|
255
249
|
return owner === 'Immutable';
|
|
256
250
|
}
|
|
257
251
|
function getMoveObjectType(resp) {
|
|
258
|
-
|
|
259
|
-
return (_a = getMoveObject(resp)) === null || _a === void 0 ? void 0 : _a.type;
|
|
252
|
+
return getMoveObject(resp)?.type;
|
|
260
253
|
}
|
|
261
254
|
function getObjectFields(resp) {
|
|
262
|
-
var _a;
|
|
263
255
|
if ('fields' in resp) {
|
|
264
256
|
return resp.fields;
|
|
265
257
|
}
|
|
266
|
-
return
|
|
258
|
+
return getMoveObject(resp)?.fields;
|
|
267
259
|
}
|
|
268
260
|
function isSuiObjectDataWithContent(data) {
|
|
269
261
|
return data.content !== undefined;
|
|
@@ -276,16 +268,14 @@ function getMoveObject(data) {
|
|
|
276
268
|
return suiObject.content;
|
|
277
269
|
}
|
|
278
270
|
function hasPublicTransfer(data) {
|
|
279
|
-
|
|
280
|
-
return (_b = (_a = getMoveObject(data)) === null || _a === void 0 ? void 0 : _a.hasPublicTransfer) !== null && _b !== void 0 ? _b : false;
|
|
271
|
+
return getMoveObject(data)?.hasPublicTransfer ?? false;
|
|
281
272
|
}
|
|
282
273
|
function getMovePackageContent(data) {
|
|
283
|
-
var _a;
|
|
284
274
|
if ('disassembled' in data) {
|
|
285
275
|
return data.disassembled;
|
|
286
276
|
}
|
|
287
277
|
const suiObject = getSuiObjectData(data);
|
|
288
|
-
if (
|
|
278
|
+
if (suiObject?.content?.dataType !== 'package') {
|
|
289
279
|
return undefined;
|
|
290
280
|
}
|
|
291
281
|
return suiObject.content.disassembled;
|
|
@@ -299,4 +289,4 @@ exports.PaginatedObjectsResponse = (0, superstruct_1.object)({
|
|
|
299
289
|
nextCursor: (0, superstruct_1.optional)(exports.CheckpointedObjectId),
|
|
300
290
|
hasNextPage: (0, superstruct_1.boolean)(),
|
|
301
291
|
});
|
|
302
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbXlzdGVubGFiL3R5cGVzL29iamVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBbU1BLDRDQUVDO0FBRUQsNERBV0M7QUFFRCxnRUFNQztBQUVELGdEQWFDO0FBSUQsa0NBS0M7QUFFRCw0Q0FLQztBQUlELGtEQUVDO0FBT0Qsc0NBVUM7QUFFRCxnRkFFQztBQUVELHdDQUtDO0FBRUQsNENBRUM7QUFFRCxzRUFPQztBQUVELHdDQUdDO0FBRUQsOENBR0M7QUFFRCw4Q0FFQztBQUVELDBDQU9DO0FBVUQsc0NBUUM7QUFFRCw4Q0FFQztBQUVELHNEQVNDO0FBaFdELDZDQWNxQjtBQUNyQixxQ0FBb0Y7QUFHdkUsUUFBQSxVQUFVLEdBQUcsSUFBQSxtQkFBSyxFQUFDLENBQUMsSUFBQSxvQkFBTSxHQUFFLEVBQUUsSUFBQSxxQkFBTyxFQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUduRCxRQUFBLFlBQVksR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDakMsbURBQW1EO0lBQ25ELE1BQU0sRUFBRSwwQkFBaUI7SUFDekIsb0RBQW9EO0lBQ3BELFFBQVEsRUFBRSxJQUFBLG9CQUFNLEdBQUU7SUFDbEIscUJBQXFCO0lBQ3JCLE9BQU8sRUFBRSxJQUFBLG1CQUFLLEVBQUMsQ0FBQyxJQUFBLG9CQUFNLEdBQUUsRUFBRSxJQUFBLG9CQUFNLEdBQUUsQ0FBQyxDQUFDO0NBQ3JDLENBQUMsQ0FBQztBQUdVLFFBQUEsVUFBVSxHQUFHLElBQUEsb0JBQU0sRUFBQztJQUMvQixPQUFPLEVBQUUsSUFBQSxtQkFBSyxFQUFDLG9CQUFZLENBQUM7SUFDNUIseUJBQXlCO0lBQ3pCLEtBQUssRUFBRSxJQUFBLG9CQUFNLEdBQUU7SUFDZixLQUFLLEVBQUUsSUFBQSxvQkFBTSxHQUFFO0lBQ2YsTUFBTSxFQUFFLElBQUEsb0JBQU0sR0FBRTtDQUNq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O0lBQ0QsT0FBUSxTQUFTLENBQUMsT0FBMEIsQ0FBQyxZQUFZLENBQUM7QUFDNUQsQ0FBQztBQUVZLFFBQUEsb0JBQW9CLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQ3pDLFFBQVEsRUFBRSxpQkFBUTtJQUNsQixZQUFZLEVBQUUsSUFBQSxzQkFBUSxFQUFDLElBQUEsb0JBQU0sR0FBRSxDQUFDO0NBQ2pDLENBQUMsQ0FBQztBQUdVLFFBQUEsd0JBQXdCLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQzdDLElBQUksRUFBRSxJQUFBLG1CQUFLLEVBQUMseUJBQWlCLENBQUM7SUFDOUIsVUFBVSxFQUFFLElBQUEsc0JBQVEsRUFBQyw0QkFBb0IsQ0FBQztJQUMxQyxXQUFXLEVBQUUsSUFBQSxxQkFBTyxHQUFFO0NBQ3ZCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFueSxcbiAgYXJyYXksXG4gIGFzc2lnbixcbiAgYm9vbGVhbixcbiAgSW5mZXIsXG4gIGxpdGVyYWwsXG4gIG51bWJlcixcbiAgb2JqZWN0LFxuICBvcHRpb25hbCxcbiAgcmVjb3JkLFxuICBzdHJpbmcsXG4gIHVuaW9uLFxuICBpcyxcbn0gZnJvbSAnc3VwZXJzdHJ1Y3QnO1xuaW1wb3J0IHsgT2JqZWN0SWQsIE9iamVjdE93bmVyLCBTZXF1ZW5jZU51bWJlciwgVHJhbnNhY3Rpb25EaWdlc3QgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBPd25lZE9iamVjdFJlZiB9IGZyb20gJy4vdHJhbnNhY3Rpb25zJztcblxuZXhwb3J0IGNvbnN0IE9iamVjdFR5cGUgPSB1bmlvbihbc3RyaW5nKCksIGxpdGVyYWwoJ3BhY2thZ2UnKV0pO1xuZXhwb3J0IHR5cGUgT2JqZWN0VHlwZSA9IEluZmVyPHR5cGVvZiBPYmplY3RUeXBlPjtcblxuZXhwb3J0IGNvbnN0IFN1aU9iamVjdFJlZiA9IG9iamVjdCh7XG4gIC8qKiBCYXNlNjQgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgb2JqZWN0IGRpZ2VzdCAqL1xuICBkaWdlc3Q6IFRyYW5zYWN0aW9uRGlnZXN0LFxuICAvKiogSGV4IGNvZGUgYXMgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgb2JqZWN0IGlkICovXG4gIG9iamVjdElkOiBzdHJpbmcoKSxcbiAgLyoqIE9iamVjdCB2ZXJzaW9uICovXG4gIHZlcnNpb246IHVuaW9uKFtudW1iZXIoKSwgc3RyaW5nKCldKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0UmVmID0gSW5mZXI8dHlwZW9mIFN1aU9iamVjdFJlZj47XG5cbmV4cG9ydCBjb25zdCBTdWlHYXNEYXRhID0gb2JqZWN0KHtcbiAgcGF5bWVudDogYXJyYXkoU3VpT2JqZWN0UmVmKSxcbiAgLyoqIEdhcyBPYmplY3QncyBvd25lciAqL1xuICBvd25lcjogc3RyaW5nKCksXG4gIHByaWNlOiBudW1iZXIoKSxcbiAgYnVkZ2V0OiBudW1iZXIoKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpR2FzRGF0YSA9IEluZmVyPHR5cGVvZiBTdWlHYXNEYXRhPjtcblxuZXhwb3J0IGNvbnN0IFN1aU9iamVjdEluZm8gPSBhc3NpZ24oXG4gIFN1aU9iamVjdFJlZixcbiAgb2JqZWN0KHtcbiAgICB0eXBlOiBzdHJpbmcoKSxcbiAgICBvd25lcjogT2JqZWN0T3duZXIsXG4gICAgcHJldmlvdXNUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb25EaWdlc3QsXG4gIH0pXG4pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0SW5mbyA9IEluZmVyPHR5cGVvZiBTdWlPYmplY3RJbmZvPjtcblxuZXhwb3J0IGNvbnN0IE9iamVjdENvbnRlbnRGaWVsZHMgPSByZWNvcmQoc3RyaW5nKCksIGFueSgpKTtcbmV4cG9ydCB0eXBlIE9iamVjdENvbnRlbnRGaWVsZHMgPSBJbmZlcjx0eXBlb2YgT2JqZWN0Q29udGVudEZpZWxkcz47XG5cbmV4cG9ydCBjb25zdCBNb3ZlUGFja2FnZUNvbnRlbnQgPSByZWNvcmQoc3RyaW5nKCksIHN0cmluZygpKTtcbmV4cG9ydCB0eXBlIE1vdmVQYWNrYWdlQ29udGVudCA9IEluZmVyPHR5cGVvZiBNb3ZlUGFja2FnZUNvbnRlbnQ+O1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZU9iamVjdCA9IG9iamVjdCh7XG4gIC8qKiBNb3ZlIHR5cGUgKGUuZy4sIFwiMHgyOjpjb2luOjpDb2luPDB4Mjo6c3VpOjpTVUk+XCIpICovXG4gIHR5cGU6IHN0cmluZygpLFxuICAvKiogRmllbGRzIGFuZCB2YWx1ZXMgc3RvcmVkIGluc2lkZSB0aGUgTW92ZSBvYmplY3QgKi9cbiAgZmllbGRzOiBPYmplY3RDb250ZW50RmllbGRzLFxuICBoYXNQdWJsaWNUcmFuc2ZlcjogYm9vbGVhbigpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlNb3ZlT2JqZWN0ID0gSW5mZXI8dHlwZW9mIFN1aU1vdmVPYmplY3Q+O1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZVBhY2thZ2UgPSBvYmplY3Qoe1xuICAvKiogQSBtYXBwaW5nIGZyb20gbW9kdWxlIG5hbWUgdG8gZGlzYXNzZW1ibGVkIE1vdmUgYnl0ZWNvZGUgKi9cbiAgZGlzYXNzZW1ibGVkOiBNb3ZlUGFja2FnZUNvbnRlbnQsXG59KTtcbmV4cG9ydCB0eXBlIFN1aU1vdmVQYWNrYWdlID0gSW5mZXI8dHlwZW9mIFN1aU1vdmVQYWNrYWdlPjtcblxuZXhwb3J0IGNvbnN0IFN1aVBhcnNlZERhdGEgPSB1bmlvbihbXG4gIGFzc2lnbihTdWlNb3ZlT2JqZWN0LCBvYmplY3QoeyBkYXRhVHlwZTogbGl0ZXJhbCgnbW92ZU9iamVjdCcpIH0pKSxcbiAgYXNzaWduKFN1aU1vdmVQYWNrYWdlLCBvYmplY3QoeyBkYXRhVHlwZTogbGl0ZXJhbCgncGFja2FnZScpIH0pKSxcbl0pO1xuZXhwb3J0IHR5cGUgU3VpUGFyc2VkRGF0YSA9IEluZmVyPHR5cGVvZiBTdWlQYXJzZWREYXRhPjtcblxuZXhwb3J0IGNvbnN0IFN1aVJhd01vdmVPYmplY3QgPSBvYmplY3Qoe1xuICAvKiogTW92ZSB0eXBlIChlLmcuLCBcIjB4Mjo6Y29pbjo6Q29pbjwweDI6OnN1aTo6U1VJPlwiKSAqL1xuICB0eXBlOiBzdHJpbmcoKSxcbiAgaGFzUHVibGljVHJhbnNmZXI6IGJvb2xlYW4oKSxcbiAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gIGJjc0J5dGVzOiBhcnJheShudW1iZXIoKSksXG59KTtcbmV4cG9ydCB0eXBlIFN1aVJhd01vdmVPYmplY3QgPSBJbmZlcjx0eXBlb2YgU3VpUmF3TW92ZU9iamVjdD47XG5cbmV4cG9ydCBjb25zdCBTdWlSYXdNb3ZlUGFja2FnZSA9IG9iamVjdCh7XG4gIGlkOiBPYmplY3RJZCxcbiAgLyoqIEEgbWFwcGluZyBmcm9tIG1vZHVsZSBuYW1lIHRvIE1vdmUgYnl0ZWNvZGUgZW5vY2RlZCBpbiBiYXNlNjQqL1xuICBtb2R1bGVNYXA6IHJlY29yZChzdHJpbmcoKSwgc3RyaW5nKCkpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlSYXdNb3ZlUGFja2FnZSA9IEluZmVyPHR5cGVvZiBTdWlSYXdNb3ZlUGFja2FnZT47XG5cbi8vIFRPRE8oY2hyaXMpOiBjb25zb2xpZGF0ZSBTdWlSYXdQYXJzZWREYXRhIGFuZCBTdWlSYXdPYmplY3QgdXNpbmcgZ2VuZXJpY3NcbmV4cG9ydCBjb25zdCBTdWlSYXdEYXRhID0gdW5pb24oW1xuICBhc3NpZ24oU3VpTW92ZU9iamVjdCwgb2JqZWN0KHsgZGF0YVR5cGU6IGxpdGVyYWwoJ21vdmVPYmplY3QnKSB9KSksXG4gIGFzc2lnbihTdWlSYXdNb3ZlUGFja2FnZSwgb2JqZWN0KHsgZGF0YVR5cGU6IGxpdGVyYWwoJ3BhY2thZ2UnKSB9KSksXG5dKTtcbmV4cG9ydCB0eXBlIFN1aVJhd0RhdGEgPSBJbmZlcjx0eXBlb2YgU3VpUmF3RGF0YT47XG5cbmV4cG9ydCBjb25zdCBNSVNUX1BFUl9TVUkgPSBCaWdJbnQoMTAwMDAwMDAwMCk7XG5cbmV4cG9ydCBjb25zdCBPYmplY3REaWdlc3QgPSBzdHJpbmcoKTtcbmV4cG9ydCB0eXBlIE9iamVjdERpZ2VzdCA9IEluZmVyPHR5cGVvZiBPYmplY3REaWdlc3Q+O1xuXG5leHBvcnQgY29uc3QgU3VpT2JqZWN0RGF0YSA9IG9iamVjdCh7XG4gIG9iamVjdElkOiBPYmplY3RJZCxcbiAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gIGRpZ2VzdDogT2JqZWN0RGlnZXN0LFxuICAvKipcbiAgICogVHlwZSBvZiB0aGUgb2JqZWN0LCBkZWZhdWx0IHRvIGJlIHVuZGVmaW5lZCB1bmxlc3MgU3VpT2JqZWN0RGF0YU9wdGlvbnMuc2hvd1R5cGUgaXMgc2V0IHRvIHRydWVcbiAgICovXG4gIHR5cGU6IG9wdGlvbmFsKHN0cmluZygpKSxcbiAgLyoqXG4gICAqIE1vdmUgb2JqZWN0IGNvbnRlbnQgb3IgcGFja2FnZSBjb250ZW50LCBkZWZhdWx0IHRvIGJlIHVuZGVmaW5lZCB1bmxlc3MgU3VpT2JqZWN0RGF0YU9wdGlvbnMuc2hvd0NvbnRlbnQgaXMgc2V0IHRvIHRydWVcbiAgICovXG4gIGNvbnRlbnQ6IG9wdGlvbmFsKFN1aVBhcnNlZERhdGEpLFxuICAvKipcbiAgICogTW92ZSBvYmplY3QgY29udGVudCBvciBwYWNrYWdlIGNvbnRlbnQgaW4gQkNTIGJ5dGVzLCBkZWZhdWx0IHRvIGJlIHVuZGVmaW5lZCB1bmxlc3MgU3VpT2JqZWN0RGF0YU9wdGlvbnMuc2hvd0JjcyBpcyBzZXQgdG8gdHJ1ZVxuICAgKi9cbiAgYmNzOiBvcHRpb25hbChTdWlSYXdEYXRhKSxcbiAgLyoqXG4gICAqIFRoZSBvd25lciBvZiB0aGlzIG9iamVjdC4gRGVmYXVsdCB0byBiZSB1bmRlZmluZWQgdW5sZXNzIFN1aU9iamVjdERhdGFPcHRpb25zLnNob3dPd25lciBpcyBzZXQgdG8gdHJ1ZVxuICAgKi9cbiAgb3duZXI6IG9wdGlvbmFsKE9iamVjdE93bmVyKSxcbiAgLyoqXG4gICAqIFRoZSBkaWdlc3Qgb2YgdGhlIHRyYW5zYWN0aW9uIHRoYXQgY3JlYXRlZCBvciBsYXN0IG11dGF0ZWQgdGhpcyBvYmplY3QuXG4gICAqIERlZmF1bHQgdG8gYmUgdW5kZWZpbmVkIHVubGVzcyBTdWlPYmplY3REYXRhT3B0aW9ucy5zaG93UHJldmlvdXNUcmFuc2FjdGlvbiBpcyBzZXQgdG8gdHJ1ZVxuICAgKi9cbiAgcHJldmlvdXNUcmFuc2FjdGlvbjogb3B0aW9uYWwoVHJhbnNhY3Rpb25EaWdlc3QpLFxuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiBTVUkgd2Ugd291bGQgcmViYXRlIGlmIHRoaXMgb2JqZWN0IGdldHMgZGVsZXRlZC5cbiAgICogVGhpcyBudW1iZXIgaXMgcmUtY2FsY3VsYXRlZCBlYWNoIHRpbWUgdGhlIG9iamVjdCBpcyBtdXRhdGVkIGJhc2VkIG9uXG4gICAqIHRoZSBwcmVzZW50IHN0b3JhZ2UgZ2FzIHByaWNlLlxuICAgKiBEZWZhdWx0IHRvIGJlIHVuZGVmaW5lZCB1bmxlc3MgU3VpT2JqZWN0RGF0YU9wdGlvbnMuc2hvd1N0b3JhZ2VSZWJhdGUgaXMgc2V0IHRvIHRydWVcbiAgICovXG4gIHN0b3JhZ2VSZWJhdGU6IG9wdGlvbmFsKG51bWJlcigpKSxcbiAgLyoqXG4gICAqIERpc3BsYXkgbWV0YWRhdGEgZm9yIHRoaXMgb2JqZWN0LCBkZWZhdWx0IHRvIGJlIHVuZGVmaW5lZCB1bmxlc3MgU3VpT2JqZWN0RGF0YU9wdGlvbnMuc2hvd0Rpc3BsYXkgaXMgc2V0IHRvIHRydWVcbiAgICogVGhpcyBjYW4gYWxzbyBiZSBOb25lIGlmIHRoZSBzdHJ1Y3QgdHlwZSBkb2VzIG5vdCBoYXZlIERpc3BsYXkgZGVmaW5lZFxuICAgKiBTZWUgbW9yZSBkZXRhaWxzIGluIGh0dHBzOi8vZm9ydW1zLnN1aS5pby90L25mdC1vYmplY3QtZGlzcGxheS1wcm9wb3NhbC80ODcyXG4gICAqL1xuICBkaXNwbGF5OiBvcHRpb25hbChyZWNvcmQoc3RyaW5nKCksIHN0cmluZygpKSksXG59KTtcbmV4cG9ydCB0eXBlIFN1aU9iamVjdERhdGEgPSBJbmZlcjx0eXBlb2YgU3VpT2JqZWN0RGF0YT47XG5cbi8qKlxuICogQ29uZmlnIGZvciBmZXRjaGluZyBvYmplY3QgZGF0YVxuICovXG5leHBvcnQgY29uc3QgU3VpT2JqZWN0RGF0YU9wdGlvbnMgPSBvYmplY3Qoe1xuICAvKiBXaGV0aGVyIHRvIGZldGNoIHRoZSBvYmplY3QgdHlwZSwgZGVmYXVsdCB0byBiZSB0cnVlICovXG4gIHNob3dUeXBlOiBvcHRpb25hbChib29sZWFuKCkpLFxuICAvKiBXaGV0aGVyIHRvIGZldGNoIHRoZSBvYmplY3QgY29udGVudCwgZGVmYXVsdCB0byBiZSBmYWxzZSAqL1xuICBzaG93Q29udGVudDogb3B0aW9uYWwoYm9vbGVhbigpKSxcbiAgLyogV2hldGhlciB0byBmZXRjaCB0aGUgb2JqZWN0IGNvbnRlbnQgaW4gQkNTIGJ5dGVzLCBkZWZhdWx0IHRvIGJlIGZhbHNlICovXG4gIHNob3dCY3M6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG4gIC8qIFdoZXRoZXIgdG8gZmV0Y2ggdGhlIG9iamVjdCBvd25lciwgZGVmYXVsdCB0byBiZSBmYWxzZSAqL1xuICBzaG93T3duZXI6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG4gIC8qIFdoZXRoZXIgdG8gZmV0Y2ggdGhlIHByZXZpb3VzIHRyYW5zYWN0aW9uIGRpZ2VzdCwgZGVmYXVsdCB0byBiZSBmYWxzZSAqL1xuICBzaG93UHJldmlvdXNUcmFuc2FjdGlvbjogb3B0aW9uYWwoYm9vbGVhbigpKSxcbiAgLyogV2hldGhlciB0byBmZXRjaCB0aGUgc3RvcmFnZSByZWJhdGUsIGRlZmF1bHQgdG8gYmUgZmFsc2UgKi9cbiAgc2hvd1N0b3JhZ2VSZWJhdGU6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG4gIC8qIFdoZXRoZXIgdG8gZmV0Y2ggdGhlIGRpc3BsYXkgbWV0YWRhdGEsIGRlZmF1bHQgdG8gYmUgZmFsc2UgKi9cbiAgc2hvd0Rpc3BsYXk6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG59KTtcbmV4cG9ydCB0eXBlIFN1aU9iamVjdERhdGFPcHRpb25zID0gSW5mZXI8dHlwZW9mIFN1aU9iamVjdERhdGFPcHRpb25zPjtcblxuZXhwb3J0IGNvbnN0IE9iamVjdFN0YXR1cyA9IHVuaW9uKFtsaXRlcmFsKCdFeGlzdHMnKSwgbGl0ZXJhbCgnTm90RXhpc3RzJyksIGxpdGVyYWwoJ0RlbGV0ZWQnKV0pO1xuZXhwb3J0IHR5cGUgT2JqZWN0U3RhdHVzID0gSW5mZXI8dHlwZW9mIE9iamVjdFN0YXR1cz47XG5cbmV4cG9ydCBjb25zdCBHZXRPd25lZE9iamVjdHNSZXNwb25zZSA9IGFycmF5KFN1aU9iamVjdEluZm8pO1xuZXhwb3J0IHR5cGUgR2V0T3duZWRPYmplY3RzUmVzcG9uc2UgPSBJbmZlcjx0eXBlb2YgR2V0T3duZWRPYmplY3RzUmVzcG9uc2U+O1xuXG5leHBvcnQgY29uc3QgU3VpT2JqZWN0UmVzcG9uc2VFcnJvciA9IG9iamVjdCh7XG4gIHRhZzogc3RyaW5nKCksXG4gIG9iamVjdF9pZDogb3B0aW9uYWwoT2JqZWN0SWQpLFxuICB2ZXJzaW9uOiBvcHRpb25hbChTZXF1ZW5jZU51bWJlciksXG4gIGRpZ2VzdDogb3B0aW9uYWwoT2JqZWN0RGlnZXN0KSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0UmVzcG9uc2VFcnJvciA9IEluZmVyPHR5cGVvZiBTdWlPYmplY3RSZXNwb25zZUVycm9yPjtcblxuZXhwb3J0IGNvbnN0IFN1aU9iamVjdFJlc3BvbnNlID0gb2JqZWN0KHtcbiAgZGF0YTogb3B0aW9uYWwoU3VpT2JqZWN0RGF0YSksXG4gIGVycm9yOiBvcHRpb25hbChTdWlPYmplY3RSZXNwb25zZUVycm9yKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0UmVzcG9uc2UgPSBJbmZlcjx0eXBlb2YgU3VpT2JqZWN0UmVzcG9uc2U+O1xuXG5leHBvcnQgdHlwZSBPcmRlciA9ICdhc2NlbmRpbmcnIHwgJ2Rlc2NlbmRpbmcnO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWxwZXIgZnVuY3Rpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN1aU9iamVjdFJlc3BvbnNlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN1aU9iamVjdERhdGEocmVzcDogU3VpT2JqZWN0UmVzcG9uc2UpOiBTdWlPYmplY3REYXRhIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHJlc3AuZGF0YTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdERlbGV0ZWRSZXNwb25zZShyZXNwOiBTdWlPYmplY3RSZXNwb25zZSk6IFN1aU9iamVjdFJlZiB8IHVuZGVmaW5lZCB7XG4gIGlmIChyZXNwLmVycm9yICYmICdvYmplY3RfaWQnIGluIHJlc3AuZXJyb3IgJiYgJ3ZlcnNpb24nIGluIHJlc3AuZXJyb3IgJiYgJ2RpZ2VzdCcgaW4gcmVzcC5lcnJvcikge1xuICAgIGNvbnN0IGVycm9yID0gcmVzcC5lcnJvciBhcyBTdWlPYmplY3RSZXNwb25zZUVycm9yO1xuICAgIHJldHVybiB7XG4gICAgICBvYmplY3RJZDogZXJyb3Iub2JqZWN0X2lkLFxuICAgICAgdmVyc2lvbjogZXJyb3IudmVyc2lvbixcbiAgICAgIGRpZ2VzdDogZXJyb3IuZGlnZXN0LFxuICAgIH0gYXMgU3VpT2JqZWN0UmVmO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdE5vdEV4aXN0c1Jlc3BvbnNlKHJlc3A6IFN1aU9iamVjdFJlc3BvbnNlKTogT2JqZWN0SWQgfCB1bmRlZmluZWQge1xuICBpZiAocmVzcC5lcnJvciAmJiAnb2JqZWN0X2lkJyBpbiByZXNwLmVycm9yICYmICEoJ3ZlcnNpb24nIGluIHJlc3AuZXJyb3IpICYmICEoJ2RpZ2VzdCcgaW4gcmVzcC5lcnJvcikpIHtcbiAgICByZXR1cm4gKHJlc3AuZXJyb3IgYXMgU3VpT2JqZWN0UmVzcG9uc2VFcnJvcikub2JqZWN0X2lkIGFzIE9iamVjdElkO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdFJlZmVyZW5jZShyZXNwOiBTdWlPYmplY3RSZXNwb25zZSB8IE93bmVkT2JqZWN0UmVmKTogU3VpT2JqZWN0UmVmIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCdyZWZlcmVuY2UnIGluIHJlc3ApIHtcbiAgICByZXR1cm4gcmVzcC5yZWZlcmVuY2U7XG4gIH1cbiAgY29uc3QgZXhpc3RzID0gZ2V0U3VpT2JqZWN0RGF0YShyZXNwKTtcbiAgaWYgKGV4aXN0cykge1xuICAgIHJldHVybiB7XG4gICAgICBvYmplY3RJZDogZXhpc3RzLm9iamVjdElkLFxuICAgICAgdmVyc2lvbjogZXhpc3RzLnZlcnNpb24sXG4gICAgICBkaWdlc3Q6IGV4aXN0cy5kaWdlc3QsXG4gICAgfTtcbiAgfVxuICByZXR1cm4gZ2V0T2JqZWN0RGVsZXRlZFJlc3BvbnNlKHJlc3ApO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU3VpT2JqZWN0UmVmIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0SWQoZGF0YTogU3VpT2JqZWN0UmVzcG9uc2UgfCBTdWlPYmplY3RSZWYgfCBPd25lZE9iamVjdFJlZik6IE9iamVjdElkIHtcbiAgaWYgKCdvYmplY3RJZCcgaW4gZGF0YSkge1xuICAgIHJldHVybiBkYXRhLm9iamVjdElkO1xuICB9XG4gIHJldHVybiBnZXRPYmplY3RSZWZlcmVuY2UoZGF0YSk/Lm9iamVjdElkID8/IGdldE9iamVjdE5vdEV4aXN0c1Jlc3BvbnNlKGRhdGEgYXMgU3VpT2JqZWN0UmVzcG9uc2UpITtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdFZlcnNpb24oZGF0YTogU3VpT2JqZWN0UmVzcG9uc2UgfCBTdWlPYmplY3RSZWYgfCBTdWlPYmplY3REYXRhKTogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCd2ZXJzaW9uJyBpbiBkYXRhKSB7XG4gICAgcmV0dXJuIGRhdGEudmVyc2lvbjtcbiAgfVxuICByZXR1cm4gZ2V0T2JqZWN0UmVmZXJlbmNlKGRhdGEpPy52ZXJzaW9uO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTdWlPYmplY3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgZnVuY3Rpb24gaXNTdWlPYmplY3RSZXNwb25zZShyZXNwOiBTdWlPYmplY3RSZXNwb25zZSB8IFN1aU9iamVjdERhdGEpOiByZXNwIGlzIFN1aU9iamVjdFJlc3BvbnNlIHtcbiAgcmV0dXJuIChyZXNwIGFzIFN1aU9iamVjdFJlc3BvbnNlKS5kYXRhICE9PSB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogRGVyaXZpbmcgdGhlIG9iamVjdCB0eXBlIGZyb20gdGhlIG9iamVjdCByZXNwb25zZVxuICogQHJldHVybnMgJ3BhY2thZ2UnIGlmIHRoZSBvYmplY3QgaXMgYSBwYWNrYWdlLCBtb3ZlIG9iamVjdCB0eXBlKGUuZy4sIDB4Mjo6Y29pbjo6Q29pbjwweDI6OnN1aTo6U1VJPilcbiAqIGlmIHRoZSBvYmplY3QgaXMgYSBtb3ZlIG9iamVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0VHlwZShyZXNwOiBTdWlPYmplY3RSZXNwb25zZSB8IFN1aU9iamVjdERhdGEpOiBPYmplY3RUeXBlIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZGF0YSA9IGlzU3VpT2JqZWN0UmVzcG9uc2UocmVzcCkgPyByZXNwLmRhdGEgOiByZXNwO1xuXG4gIGlmICghZGF0YT8udHlwZSAmJiAnZGF0YScgaW4gcmVzcCkge1xuICAgIGlmIChkYXRhPy5jb250ZW50Py5kYXRhVHlwZSA9PT0gJ3BhY2thZ2UnKSB7XG4gICAgICByZXR1cm4gJ3BhY2thZ2UnO1xuICAgIH1cbiAgICByZXR1cm4gZ2V0TW92ZU9iamVjdFR5cGUocmVzcCk7XG4gIH1cbiAgcmV0dXJuIGRhdGE/LnR5cGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RQcmV2aW91c1RyYW5zYWN0aW9uRGlnZXN0KHJlc3A6IFN1aU9iamVjdFJlc3BvbnNlKTogVHJhbnNhY3Rpb25EaWdlc3QgfCB1bmRlZmluZWQge1xuICByZXR1cm4gZ2V0U3VpT2JqZWN0RGF0YShyZXNwKT8ucHJldmlvdXNUcmFuc2FjdGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdE93bmVyKHJlc3A6IFN1aU9iamVjdFJlc3BvbnNlIHwgT2JqZWN0T3duZXIpOiBPYmplY3RPd25lciB8IHVuZGVmaW5lZCB7XG4gIGlmIChpcyhyZXNwLCBPYmplY3RPd25lcikpIHtcbiAgICByZXR1cm4gcmVzcDtcbiAgfVxuICByZXR1cm4gZ2V0U3VpT2JqZWN0RGF0YShyZXNwKT8ub3duZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3REaXNwbGF5KHJlc3A6IFN1aU9iamVjdFJlc3BvbnNlKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBnZXRTdWlPYmplY3REYXRhKHJlc3ApPy5kaXNwbGF5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2hhcmVkT2JqZWN0SW5pdGlhbFZlcnNpb24ocmVzcDogU3VpT2JqZWN0UmVzcG9uc2UgfCBPYmplY3RPd25lcik6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IG93bmVyID0gZ2V0T2JqZWN0T3duZXIocmVzcCk7XG4gIGlmICh0eXBlb2Ygb3duZXIgPT09ICdvYmplY3QnICYmICdTaGFyZWQnIGluIG93bmVyKSB7XG4gICAgcmV0dXJuIG93bmVyLlNoYXJlZC5pbml0aWFsX3NoYXJlZF92ZXJzaW9uO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2hhcmVkT2JqZWN0KHJlc3A6IFN1aU9iamVjdFJlc3BvbnNlIHwgT2JqZWN0T3duZXIpOiBib29sZWFuIHtcbiAgY29uc3Qgb3duZXIgPSBnZXRPYmplY3RPd25lcihyZXNwKTtcbiAgcmV0dXJuIHR5cGVvZiBvd25lciA9PT0gJ29iamVjdCcgJiYgJ1NoYXJlZCcgaW4gb3duZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ltbXV0YWJsZU9iamVjdChyZXNwOiBTdWlPYmplY3RSZXNwb25zZSB8IE9iamVjdE93bmVyKTogYm9vbGVhbiB7XG4gIGNvbnN0IG93bmVyID0gZ2V0T2JqZWN0T3duZXIocmVzcCk7XG4gIHJldHVybiBvd25lciA9PT0gJ0ltbXV0YWJsZSc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb3ZlT2JqZWN0VHlwZShyZXNwOiBTdWlPYmplY3RSZXNwb25zZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBnZXRNb3ZlT2JqZWN0KHJlc3ApPy50eXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0RmllbGRzKFxuICByZXNwOiBTdWlPYmplY3RSZXNwb25zZSB8IFN1aU1vdmVPYmplY3QgfCBTdWlPYmplY3REYXRhXG4pOiBPYmplY3RDb250ZW50RmllbGRzIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCdmaWVsZHMnIGluIHJlc3ApIHtcbiAgICByZXR1cm4gcmVzcC5maWVsZHM7XG4gIH1cbiAgcmV0dXJuIGdldE1vdmVPYmplY3QocmVzcCk/LmZpZWxkcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWlPYmplY3REYXRhV2l0aENvbnRlbnQgZXh0ZW5kcyBTdWlPYmplY3REYXRhIHtcbiAgY29udGVudDogU3VpUGFyc2VkRGF0YTtcbn1cblxuZnVuY3Rpb24gaXNTdWlPYmplY3REYXRhV2l0aENvbnRlbnQoZGF0YTogU3VpT2JqZWN0RGF0YSk6IGRhdGEgaXMgU3VpT2JqZWN0RGF0YVdpdGhDb250ZW50IHtcbiAgcmV0dXJuIGRhdGEuY29udGVudCAhPT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW92ZU9iamVjdChkYXRhOiBTdWlPYmplY3RSZXNwb25zZSB8IFN1aU9iamVjdERhdGEpOiBTdWlNb3ZlT2JqZWN0IHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc3VpT2JqZWN0ID0gJ2RhdGEnIGluIGRhdGEgPyBnZXRTdWlPYmplY3REYXRhKGRhdGEpIDogKGRhdGEgYXMgU3VpT2JqZWN0RGF0YSk7XG5cbiAgaWYgKCFzdWlPYmplY3QgfHwgIWlzU3VpT2JqZWN0RGF0YVdpdGhDb250ZW50KHN1aU9iamVjdCkgfHwgc3VpT2JqZWN0LmNvbnRlbnQuZGF0YVR5cGUgIT09ICdtb3ZlT2JqZWN0Jykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4gc3VpT2JqZWN0LmNvbnRlbnQgYXMgU3VpTW92ZU9iamVjdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc1B1YmxpY1RyYW5zZmVyKGRhdGE6IFN1aU9iamVjdFJlc3BvbnNlIHwgU3VpT2JqZWN0RGF0YSk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0TW92ZU9iamVjdChkYXRhKT8uaGFzUHVibGljVHJhbnNmZXIgPz8gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb3ZlUGFja2FnZUNvbnRlbnQoZGF0YTogU3VpT2JqZWN0UmVzcG9uc2UgfCBTdWlNb3ZlUGFja2FnZSk6IE1vdmVQYWNrYWdlQ29udGVudCB8IHVuZGVmaW5lZCB7XG4gIGlmICgnZGlzYXNzZW1ibGVkJyBpbiBkYXRhKSB7XG4gICAgcmV0dXJuIGRhdGEuZGlzYXNzZW1ibGVkO1xuICB9XG4gIGNvbnN0IHN1aU9iamVjdCA9IGdldFN1aU9iamVjdERhdGEoZGF0YSk7XG4gIGlmIChzdWlPYmplY3Q/LmNvbnRlbnQ/LmRhdGFUeXBlICE9PSAncGFja2FnZScpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIHJldHVybiAoc3VpT2JqZWN0LmNvbnRlbnQgYXMgU3VpTW92ZVBhY2thZ2UpLmRpc2Fzc2VtYmxlZDtcbn1cblxuZXhwb3J0IGNvbnN0IENoZWNrcG9pbnRlZE9iamVjdElkID0gb2JqZWN0KHtcbiAgb2JqZWN0SWQ6IE9iamVjdElkLFxuICBhdENoZWNrcG9pbnQ6IG9wdGlvbmFsKG51bWJlcigpKSxcbn0pO1xuZXhwb3J0IHR5cGUgQ2hlY2twb2ludGVkT2JqZWN0SWQgPSBJbmZlcjx0eXBlb2YgQ2hlY2twb2ludGVkT2JqZWN0SWQ+O1xuXG5leHBvcnQgY29uc3QgUGFnaW5hdGVkT2JqZWN0c1Jlc3BvbnNlID0gb2JqZWN0KHtcbiAgZGF0YTogYXJyYXkoU3VpT2JqZWN0UmVzcG9uc2UpLFxuICBuZXh0Q3Vyc29yOiBvcHRpb25hbChDaGVja3BvaW50ZWRPYmplY3RJZCksXG4gIGhhc05leHRQYWdlOiBib29sZWFuKCksXG59KTtcbmV4cG9ydCB0eXBlIFBhZ2luYXRlZE9iamVjdHNSZXNwb25zZSA9IEluZmVyPHR5cGVvZiBQYWdpbmF0ZWRPYmplY3RzUmVzcG9uc2U+O1xuXG4vLyBtaXJyb3JzIHN1aV9qc29uX3JwY190eXBlczo6IFN1aU9iamVjdERhdGFGaWx0ZXJcbmV4cG9ydCB0eXBlIFN1aU9iamVjdERhdGFGaWx0ZXIgPVxuICB8IHsgUGFja2FnZTogT2JqZWN0SWQgfVxuICB8IHsgTW92ZU1vZHVsZTogeyBwYWNrYWdlOiBPYmplY3RJZDsgbW9kdWxlOiBzdHJpbmcgfSB9XG4gIHwgeyBTdHJ1Y3RUeXBlOiBzdHJpbmcgfTtcblxuZXhwb3J0IHR5cGUgU3VpT2JqZWN0UmVzcG9uc2VRdWVyeSA9IHtcbiAgZmlsdGVyPzogU3VpT2JqZWN0RGF0YUZpbHRlcjtcbiAgb3B0aW9ucz86IFN1aU9iamVjdERhdGFPcHRpb25zO1xufTtcbiJdfQ==
|
|
292
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbXlzdGVubGFiL3R5cGVzL29iamVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBbU1BLDRDQUVDO0FBRUQsNERBV0M7QUFFRCxnRUFNQztBQUVELGdEQWFDO0FBSUQsa0NBS0M7QUFFRCw0Q0FLQztBQUlELGtEQUVDO0FBT0Qsc0NBVUM7QUFFRCxnRkFFQztBQUVELHdDQUtDO0FBRUQsNENBRUM7QUFFRCxzRUFPQztBQUVELHdDQUdDO0FBRUQsOENBR0M7QUFFRCw4Q0FFQztBQUVELDBDQU9DO0FBVUQsc0NBUUM7QUFFRCw4Q0FFQztBQUVELHNEQVNDO0FBaFdELDZDQWNxQjtBQUNyQixxQ0FBb0Y7QUFHdkUsUUFBQSxVQUFVLEdBQUcsSUFBQSxtQkFBSyxFQUFDLENBQUMsSUFBQSxvQkFBTSxHQUFFLEVBQUUsSUFBQSxxQkFBTyxFQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUduRCxRQUFBLFlBQVksR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDakMsbURBQW1EO0lBQ25ELE1BQU0sRUFBRSwwQkFBaUI7SUFDekIsb0RBQW9EO0lBQ3BELFFBQVEsRUFBRSxJQUFBLG9CQUFNLEdBQUU7SUFDbEIscUJBQXFCO0lBQ3JCLE9BQU8sRUFBRSxJQUFBLG1CQUFLLEVBQUMsQ0FBQyxJQUFBLG9CQUFNLEdBQUUsRUFBRSxJQUFBLG9CQUFNLEdBQUUsQ0FBQyxDQUFDO0NBQ3JDLENBQUMsQ0FBQztBQUdVLFFBQUEsVUFBVSxHQUFHLElBQUEsb0JBQU0sRUFBQztJQUMvQixPQUFPLEVBQUUsSUFBQSxtQkFBSyxFQUFDLG9CQUFZLENBQUM7SUFDNUIseUJBQXlCO0lBQ3pCLEtBQUssRUFBRSxJQUFBLG9CQUFNLEdBQUU7SUFDZixLQUFLLEVBQUUsSUFBQSxvQkFBTSxHQUFFO0lBQ2YsTUFBTSxFQUFFLElBQUEsb0JBQU0sR0FBRTtDQUNq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LFFBQUEsd0JBQXdCLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQzdDLElBQUksRUFBRSxJQUFBLG1CQUFLLEVBQUMseUJBQWlCLENBQUM7SUFDOUIsVUFBVSxFQUFFLElBQUEsc0JBQVEsRUFBQyw0QkFBb0IsQ0FBQztJQUMxQyxXQUFXLEVBQUUsSUFBQSxxQkFBTyxHQUFFO0NBQ3ZCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFueSxcbiAgYXJyYXksXG4gIGFzc2lnbixcbiAgYm9vbGVhbixcbiAgSW5mZXIsXG4gIGxpdGVyYWwsXG4gIG51bWJlcixcbiAgb2JqZWN0LFxuICBvcHRpb25hbCxcbiAgcmVjb3JkLFxuICBzdHJpbmcsXG4gIHVuaW9uLFxuICBpcyxcbn0gZnJvbSAnc3VwZXJzdHJ1Y3QnO1xuaW1wb3J0IHsgT2JqZWN0SWQsIE9iamVjdE93bmVyLCBTZXF1ZW5jZU51bWJlciwgVHJhbnNhY3Rpb25EaWdlc3QgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBPd25lZE9iamVjdFJlZiB9IGZyb20gJy4vdHJhbnNhY3Rpb25zJztcblxuZXhwb3J0IGNvbnN0IE9iamVjdFR5cGUgPSB1bmlvbihbc3RyaW5nKCksIGxpdGVyYWwoJ3BhY2thZ2UnKV0pO1xuZXhwb3J0IHR5cGUgT2JqZWN0VHlwZSA9IEluZmVyPHR5cGVvZiBPYmplY3RUeXBlPjtcblxuZXhwb3J0IGNvbnN0IFN1aU9iamVjdFJlZiA9IG9iamVjdCh7XG4gIC8qKiBCYXNlNjQgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgb2JqZWN0IGRpZ2VzdCAqL1xuICBkaWdlc3Q6IFRyYW5zYWN0aW9uRGlnZXN0LFxuICAvKiogSGV4IGNvZGUgYXMgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgb2JqZWN0IGlkICovXG4gIG9iamVjdElkOiBzdHJpbmcoKSxcbiAgLyoqIE9iamVjdCB2ZXJzaW9uICovXG4gIHZlcnNpb246IHVuaW9uKFtudW1iZXIoKSwgc3RyaW5nKCldKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0UmVmID0gSW5mZXI8dHlwZW9mIFN1aU9iamVjdFJlZj47XG5cbmV4cG9ydCBjb25zdCBTdWlHYXNEYXRhID0gb2JqZWN0KHtcbiAgcGF5bWVudDogYXJyYXkoU3VpT2JqZWN0UmVmKSxcbiAgLyoqIEdhcyBPYmplY3QncyBvd25lciAqL1xuICBvd25lcjogc3RyaW5nKCksXG4gIHByaWNlOiBudW1iZXIoKSxcbiAgYnVkZ2V0OiBudW1iZXIoKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpR2FzRGF0YSA9IEluZmVyPHR5cGVvZiBTdWlHYXNEYXRhPjtcblxuZXhwb3J0IGNvbnN0IFN1aU9iamVjdEluZm8gPSBhc3NpZ24oXG4gIFN1aU9iamVjdFJlZixcbiAgb2JqZWN0KHtcbiAgICB0eXBlOiBzdHJpbmcoKSxcbiAgICBvd25lcjogT2JqZWN0T3duZXIsXG4gICAgcHJldmlvdXNUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb25EaWdlc3QsXG4gIH0pXG4pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0SW5mbyA9IEluZmVyPHR5cGVvZiBTdWlPYmplY3RJbmZvPjtcblxuZXhwb3J0IGNvbnN0IE9iamVjdENvbnRlbnRGaWVsZHMgPSByZWNvcmQoc3RyaW5nKCksIGFueSgpKTtcbmV4cG9ydCB0eXBlIE9iamVjdENvbnRlbnRGaWVsZHMgPSBJbmZlcjx0eXBlb2YgT2JqZWN0Q29udGVudEZpZWxkcz47XG5cbmV4cG9ydCBjb25zdCBNb3ZlUGFja2FnZUNvbnRlbnQgPSByZWNvcmQoc3RyaW5nKCksIHN0cmluZygpKTtcbmV4cG9ydCB0eXBlIE1vdmVQYWNrYWdlQ29udGVudCA9IEluZmVyPHR5cGVvZiBNb3ZlUGFja2FnZUNvbnRlbnQ+O1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZU9iamVjdCA9IG9iamVjdCh7XG4gIC8qKiBNb3ZlIHR5cGUgKGUuZy4sIFwiMHgyOjpjb2luOjpDb2luPDB4Mjo6c3VpOjpTVUk+XCIpICovXG4gIHR5cGU6IHN0cmluZygpLFxuICAvKiogRmllbGRzIGFuZCB2YWx1ZXMgc3RvcmVkIGluc2lkZSB0aGUgTW92ZSBvYmplY3QgKi9cbiAgZmllbGRzOiBPYmplY3RDb250ZW50RmllbGRzLFxuICBoYXNQdWJsaWNUcmFuc2ZlcjogYm9vbGVhbigpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlNb3ZlT2JqZWN0ID0gSW5mZXI8dHlwZW9mIFN1aU1vdmVPYmplY3Q+O1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZVBhY2thZ2UgPSBvYmplY3Qoe1xuICAvKiogQSBtYXBwaW5nIGZyb20gbW9kdWxlIG5hbWUgdG8gZGlzYXNzZW1ibGVkIE1vdmUgYnl0ZWNvZGUgKi9cbiAgZGlzYXNzZW1ibGVkOiBNb3ZlUGFja2FnZUNvbnRlbnQsXG59KTtcbmV4cG9ydCB0eXBlIFN1aU1vdmVQYWNrYWdlID0gSW5mZXI8dHlwZW9mIFN1aU1vdmVQYWNrYWdlPjtcblxuZXhwb3J0IGNvbnN0IFN1aVBhcnNlZERhdGEgPSB1bmlvbihbXG4gIGFzc2lnbihTdWlNb3ZlT2JqZWN0LCBvYmplY3QoeyBkYXRhVHlwZTogbGl0ZXJhbCgnbW92ZU9iamVjdCcpIH0pKSxcbiAgYXNzaWduKFN1aU1vdmVQYWNrYWdlLCBvYmplY3QoeyBkYXRhVHlwZTogbGl0ZXJhbCgncGFja2FnZScpIH0pKSxcbl0pO1xuZXhwb3J0IHR5cGUgU3VpUGFyc2VkRGF0YSA9IEluZmVyPHR5cGVvZiBTdWlQYXJzZWREYXRhPjtcblxuZXhwb3J0IGNvbnN0IFN1aVJhd01vdmVPYmplY3QgPSBvYmplY3Qoe1xuICAvKiogTW92ZSB0eXBlIChlLmcuLCBcIjB4Mjo6Y29pbjo6Q29pbjwweDI6OnN1aTo6U1VJPlwiKSAqL1xuICB0eXBlOiBzdHJpbmcoKSxcbiAgaGFzUHVibGljVHJhbnNmZXI6IGJvb2xlYW4oKSxcbiAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gIGJjc0J5dGVzOiBhcnJheShudW1iZXIoKSksXG59KTtcbmV4cG9ydCB0eXBlIFN1aVJhd01vdmVPYmplY3QgPSBJbmZlcjx0eXBlb2YgU3VpUmF3TW92ZU9iamVjdD47XG5cbmV4cG9ydCBjb25zdCBTdWlSYXdNb3ZlUGFja2FnZSA9IG9iamVjdCh7XG4gIGlkOiBPYmplY3RJZCxcbiAgLyoqIEEgbWFwcGluZyBmcm9tIG1vZHVsZSBuYW1lIHRvIE1vdmUgYnl0ZWNvZGUgZW5vY2RlZCBpbiBiYXNlNjQqL1xuICBtb2R1bGVNYXA6IHJlY29yZChzdHJpbmcoKSwgc3RyaW5nKCkpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlSYXdNb3ZlUGFja2FnZSA9IEluZmVyPHR5cGVvZiBTdWlSYXdNb3ZlUGFja2FnZT47XG5cbi8vIFRPRE8oY2hyaXMpOiBjb25zb2xpZGF0ZSBTdWlSYXdQYXJzZWREYXRhIGFuZCBTdWlSYXdPYmplY3QgdXNpbmcgZ2VuZXJpY3NcbmV4cG9ydCBjb25zdCBTdWlSYXdEYXRhID0gdW5pb24oW1xuICBhc3NpZ24oU3VpTW92ZU9iamVjdCwgb2JqZWN0KHsgZGF0YVR5cGU6IGxpdGVyYWwoJ21vdmVPYmplY3QnKSB9KSksXG4gIGFzc2lnbihTdWlSYXdNb3ZlUGFja2FnZSwgb2JqZWN0KHsgZGF0YVR5cGU6IGxpdGVyYWwoJ3BhY2thZ2UnKSB9KSksXG5dKTtcbmV4cG9ydCB0eXBlIFN1aVJhd0RhdGEgPSBJbmZlcjx0eXBlb2YgU3VpUmF3RGF0YT47XG5cbmV4cG9ydCBjb25zdCBNSVNUX1BFUl9TVUkgPSBCaWdJbnQoMTAwMDAwMDAwMCk7XG5cbmV4cG9ydCBjb25zdCBPYmplY3REaWdlc3QgPSBzdHJpbmcoKTtcbmV4cG9ydCB0eXBlIE9iamVjdERpZ2VzdCA9IEluZmVyPHR5cGVvZiBPYmplY3REaWdlc3Q+O1xuXG5leHBvcnQgY29uc3QgU3VpT2JqZWN0RGF0YSA9IG9iamVjdCh7XG4gIG9iamVjdElkOiBPYmplY3RJZCxcbiAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gIGRpZ2VzdDogT2JqZWN0RGlnZXN0LFxuICAvKipcbiAgICogVHlwZSBvZiB0aGUgb2JqZWN0LCBkZWZhdWx0IHRvIGJlIHVuZGVmaW5lZCB1bmxlc3MgU3VpT2JqZWN0RGF0YU9wdGlvbnMuc2hvd1R5cGUgaXMgc2V0IHRvIHRydWVcbiAgICovXG4gIHR5cGU6IG9wdGlvbmFsKHN0cmluZygpKSxcbiAgLyoqXG4gICAqIE1vdmUgb2JqZWN0IGNvbnRlbnQgb3IgcGFja2FnZSBjb250ZW50LCBkZWZhdWx0IHRvIGJlIHVuZGVmaW5lZCB1bmxlc3MgU3VpT2JqZWN0RGF0YU9wdGlvbnMuc2hvd0NvbnRlbnQgaXMgc2V0IHRvIHRydWVcbiAgICovXG4gIGNvbnRlbnQ6IG9wdGlvbmFsKFN1aVBhcnNlZERhdGEpLFxuICAvKipcbiAgICogTW92ZSBvYmplY3QgY29udGVudCBvciBwYWNrYWdlIGNvbnRlbnQgaW4gQkNTIGJ5dGVzLCBkZWZhdWx0IHRvIGJlIHVuZGVmaW5lZCB1bmxlc3MgU3VpT2JqZWN0RGF0YU9wdGlvbnMuc2hvd0JjcyBpcyBzZXQgdG8gdHJ1ZVxuICAgKi9cbiAgYmNzOiBvcHRpb25hbChTdWlSYXdEYXRhKSxcbiAgLyoqXG4gICAqIFRoZSBvd25lciBvZiB0aGlzIG9iamVjdC4gRGVmYXVsdCB0byBiZSB1bmRlZmluZWQgdW5sZXNzIFN1aU9iamVjdERhdGFPcHRpb25zLnNob3dPd25lciBpcyBzZXQgdG8gdHJ1ZVxuICAgKi9cbiAgb3duZXI6IG9wdGlvbmFsKE9iamVjdE93bmVyKSxcbiAgLyoqXG4gICAqIFRoZSBkaWdlc3Qgb2YgdGhlIHRyYW5zYWN0aW9uIHRoYXQgY3JlYXRlZCBvciBsYXN0IG11dGF0ZWQgdGhpcyBvYmplY3QuXG4gICAqIERlZmF1bHQgdG8gYmUgdW5kZWZpbmVkIHVubGVzcyBTdWlPYmplY3REYXRhT3B0aW9ucy5zaG93UHJldmlvdXNUcmFuc2FjdGlvbiBpcyBzZXQgdG8gdHJ1ZVxuICAgKi9cbiAgcHJldmlvdXNUcmFuc2FjdGlvbjogb3B0aW9uYWwoVHJhbnNhY3Rpb25EaWdlc3QpLFxuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiBTVUkgd2Ugd291bGQgcmViYXRlIGlmIHRoaXMgb2JqZWN0IGdldHMgZGVsZXRlZC5cbiAgICogVGhpcyBudW1iZXIgaXMgcmUtY2FsY3VsYXRlZCBlYWNoIHRpbWUgdGhlIG9iamVjdCBpcyBtdXRhdGVkIGJhc2VkIG9uXG4gICAqIHRoZSBwcmVzZW50IHN0b3JhZ2UgZ2FzIHByaWNlLlxuICAgKiBEZWZhdWx0IHRvIGJlIHVuZGVmaW5lZCB1bmxlc3MgU3VpT2JqZWN0RGF0YU9wdGlvbnMuc2hvd1N0b3JhZ2VSZWJhdGUgaXMgc2V0IHRvIHRydWVcbiAgICovXG4gIHN0b3JhZ2VSZWJhdGU6IG9wdGlvbmFsKG51bWJlcigpKSxcbiAgLyoqXG4gICAqIERpc3BsYXkgbWV0YWRhdGEgZm9yIHRoaXMgb2JqZWN0LCBkZWZhdWx0IHRvIGJlIHVuZGVmaW5lZCB1bmxlc3MgU3VpT2JqZWN0RGF0YU9wdGlvbnMuc2hvd0Rpc3BsYXkgaXMgc2V0IHRvIHRydWVcbiAgICogVGhpcyBjYW4gYWxzbyBiZSBOb25lIGlmIHRoZSBzdHJ1Y3QgdHlwZSBkb2VzIG5vdCBoYXZlIERpc3BsYXkgZGVmaW5lZFxuICAgKiBTZWUgbW9yZSBkZXRhaWxzIGluIGh0dHBzOi8vZm9ydW1zLnN1aS5pby90L25mdC1vYmplY3QtZGlzcGxheS1wcm9wb3NhbC80ODcyXG4gICAqL1xuICBkaXNwbGF5OiBvcHRpb25hbChyZWNvcmQoc3RyaW5nKCksIHN0cmluZygpKSksXG59KTtcbmV4cG9ydCB0eXBlIFN1aU9iamVjdERhdGEgPSBJbmZlcjx0eXBlb2YgU3VpT2JqZWN0RGF0YT47XG5cbi8qKlxuICogQ29uZmlnIGZvciBmZXRjaGluZyBvYmplY3QgZGF0YVxuICovXG5leHBvcnQgY29uc3QgU3VpT2JqZWN0RGF0YU9wdGlvbnMgPSBvYmplY3Qoe1xuICAvKiBXaGV0aGVyIHRvIGZldGNoIHRoZSBvYmplY3QgdHlwZSwgZGVmYXVsdCB0byBiZSB0cnVlICovXG4gIHNob3dUeXBlOiBvcHRpb25hbChib29sZWFuKCkpLFxuICAvKiBXaGV0aGVyIHRvIGZldGNoIHRoZSBvYmplY3QgY29udGVudCwgZGVmYXVsdCB0byBiZSBmYWxzZSAqL1xuICBzaG93Q29udGVudDogb3B0aW9uYWwoYm9vbGVhbigpKSxcbiAgLyogV2hldGhlciB0byBmZXRjaCB0aGUgb2JqZWN0IGNvbnRlbnQgaW4gQkNTIGJ5dGVzLCBkZWZhdWx0IHRvIGJlIGZhbHNlICovXG4gIHNob3dCY3M6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG4gIC8qIFdoZXRoZXIgdG8gZmV0Y2ggdGhlIG9iamVjdCBvd25lciwgZGVmYXVsdCB0byBiZSBmYWxzZSAqL1xuICBzaG93T3duZXI6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG4gIC8qIFdoZXRoZXIgdG8gZmV0Y2ggdGhlIHByZXZpb3VzIHRyYW5zYWN0aW9uIGRpZ2VzdCwgZGVmYXVsdCB0byBiZSBmYWxzZSAqL1xuICBzaG93UHJldmlvdXNUcmFuc2FjdGlvbjogb3B0aW9uYWwoYm9vbGVhbigpKSxcbiAgLyogV2hldGhlciB0byBmZXRjaCB0aGUgc3RvcmFnZSByZWJhdGUsIGRlZmF1bHQgdG8gYmUgZmFsc2UgKi9cbiAgc2hvd1N0b3JhZ2VSZWJhdGU6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG4gIC8qIFdoZXRoZXIgdG8gZmV0Y2ggdGhlIGRpc3BsYXkgbWV0YWRhdGEsIGRlZmF1bHQgdG8gYmUgZmFsc2UgKi9cbiAgc2hvd0Rpc3BsYXk6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG59KTtcbmV4cG9ydCB0eXBlIFN1aU9iamVjdERhdGFPcHRpb25zID0gSW5mZXI8dHlwZW9mIFN1aU9iamVjdERhdGFPcHRpb25zPjtcblxuZXhwb3J0IGNvbnN0IE9iamVjdFN0YXR1cyA9IHVuaW9uKFtsaXRlcmFsKCdFeGlzdHMnKSwgbGl0ZXJhbCgnTm90RXhpc3RzJyksIGxpdGVyYWwoJ0RlbGV0ZWQnKV0pO1xuZXhwb3J0IHR5cGUgT2JqZWN0U3RhdHVzID0gSW5mZXI8dHlwZW9mIE9iamVjdFN0YXR1cz47XG5cbmV4cG9ydCBjb25zdCBHZXRPd25lZE9iamVjdHNSZXNwb25zZSA9IGFycmF5KFN1aU9iamVjdEluZm8pO1xuZXhwb3J0IHR5cGUgR2V0T3duZWRPYmplY3RzUmVzcG9uc2UgPSBJbmZlcjx0eXBlb2YgR2V0T3duZWRPYmplY3RzUmVzcG9uc2U+O1xuXG5leHBvcnQgY29uc3QgU3VpT2JqZWN0UmVzcG9uc2VFcnJvciA9IG9iamVjdCh7XG4gIHRhZzogc3RyaW5nKCksXG4gIG9iamVjdF9pZDogb3B0aW9uYWwoT2JqZWN0SWQpLFxuICB2ZXJzaW9uOiBvcHRpb25hbChTZXF1ZW5jZU51bWJlciksXG4gIGRpZ2VzdDogb3B0aW9uYWwoT2JqZWN0RGlnZXN0KSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0UmVzcG9uc2VFcnJvciA9IEluZmVyPHR5cGVvZiBTdWlPYmplY3RSZXNwb25zZUVycm9yPjtcblxuZXhwb3J0IGNvbnN0IFN1aU9iamVjdFJlc3BvbnNlID0gb2JqZWN0KHtcbiAgZGF0YTogb3B0aW9uYWwoU3VpT2JqZWN0RGF0YSksXG4gIGVycm9yOiBvcHRpb25hbChTdWlPYmplY3RSZXNwb25zZUVycm9yKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0UmVzcG9uc2UgPSBJbmZlcjx0eXBlb2YgU3VpT2JqZWN0UmVzcG9uc2U+O1xuXG5leHBvcnQgdHlwZSBPcmRlciA9ICdhc2NlbmRpbmcnIHwgJ2Rlc2NlbmRpbmcnO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWxwZXIgZnVuY3Rpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN1aU9iamVjdFJlc3BvbnNlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN1aU9iamVjdERhdGEocmVzcDogU3VpT2JqZWN0UmVzcG9uc2UpOiBTdWlPYmplY3REYXRhIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHJlc3AuZGF0YTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdERlbGV0ZWRSZXNwb25zZShyZXNwOiBTdWlPYmplY3RSZXNwb25zZSk6IFN1aU9iamVjdFJlZiB8IHVuZGVmaW5lZCB7XG4gIGlmIChyZXNwLmVycm9yICYmICdvYmplY3RfaWQnIGluIHJlc3AuZXJyb3IgJiYgJ3ZlcnNpb24nIGluIHJlc3AuZXJyb3IgJiYgJ2RpZ2VzdCcgaW4gcmVzcC5lcnJvcikge1xuICAgIGNvbnN0IGVycm9yID0gcmVzcC5lcnJvciBhcyBTdWlPYmplY3RSZXNwb25zZUVycm9yO1xuICAgIHJldHVybiB7XG4gICAgICBvYmplY3RJZDogZXJyb3Iub2JqZWN0X2lkLFxuICAgICAgdmVyc2lvbjogZXJyb3IudmVyc2lvbixcbiAgICAgIGRpZ2VzdDogZXJyb3IuZGlnZXN0LFxuICAgIH0gYXMgU3VpT2JqZWN0UmVmO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdE5vdEV4aXN0c1Jlc3BvbnNlKHJlc3A6IFN1aU9iamVjdFJlc3BvbnNlKTogT2JqZWN0SWQgfCB1bmRlZmluZWQge1xuICBpZiAocmVzcC5lcnJvciAmJiAnb2JqZWN0X2lkJyBpbiByZXNwLmVycm9yICYmICEoJ3ZlcnNpb24nIGluIHJlc3AuZXJyb3IpICYmICEoJ2RpZ2VzdCcgaW4gcmVzcC5lcnJvcikpIHtcbiAgICByZXR1cm4gKHJlc3AuZXJyb3IgYXMgU3VpT2JqZWN0UmVzcG9uc2VFcnJvcikub2JqZWN0X2lkIGFzIE9iamVjdElkO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdFJlZmVyZW5jZShyZXNwOiBTdWlPYmplY3RSZXNwb25zZSB8IE93bmVkT2JqZWN0UmVmKTogU3VpT2JqZWN0UmVmIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCdyZWZlcmVuY2UnIGluIHJlc3ApIHtcbiAgICByZXR1cm4gcmVzcC5yZWZlcmVuY2U7XG4gIH1cbiAgY29uc3QgZXhpc3RzID0gZ2V0U3VpT2JqZWN0RGF0YShyZXNwKTtcbiAgaWYgKGV4aXN0cykge1xuICAgIHJldHVybiB7XG4gICAgICBvYmplY3RJZDogZXhpc3RzLm9iamVjdElkLFxuICAgICAgdmVyc2lvbjogZXhpc3RzLnZlcnNpb24sXG4gICAgICBkaWdlc3Q6IGV4aXN0cy5kaWdlc3QsXG4gICAgfTtcbiAgfVxuICByZXR1cm4gZ2V0T2JqZWN0RGVsZXRlZFJlc3BvbnNlKHJlc3ApO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU3VpT2JqZWN0UmVmIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0SWQoZGF0YTogU3VpT2JqZWN0UmVzcG9uc2UgfCBTdWlPYmplY3RSZWYgfCBPd25lZE9iamVjdFJlZik6IE9iamVjdElkIHtcbiAgaWYgKCdvYmplY3RJZCcgaW4gZGF0YSkge1xuICAgIHJldHVybiBkYXRhLm9iamVjdElkO1xuICB9XG4gIHJldHVybiBnZXRPYmplY3RSZWZlcmVuY2UoZGF0YSk/Lm9iamVjdElkID8/IGdldE9iamVjdE5vdEV4aXN0c1Jlc3BvbnNlKGRhdGEgYXMgU3VpT2JqZWN0UmVzcG9uc2UpITtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdFZlcnNpb24oZGF0YTogU3VpT2JqZWN0UmVzcG9uc2UgfCBTdWlPYmplY3RSZWYgfCBTdWlPYmplY3REYXRhKTogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCd2ZXJzaW9uJyBpbiBkYXRhKSB7XG4gICAgcmV0dXJuIGRhdGEudmVyc2lvbjtcbiAgfVxuICByZXR1cm4gZ2V0T2JqZWN0UmVmZXJlbmNlKGRhdGEpPy52ZXJzaW9uO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTdWlPYmplY3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgZnVuY3Rpb24gaXNTdWlPYmplY3RSZXNwb25zZShyZXNwOiBTdWlPYmplY3RSZXNwb25zZSB8IFN1aU9iamVjdERhdGEpOiByZXNwIGlzIFN1aU9iamVjdFJlc3BvbnNlIHtcbiAgcmV0dXJuIChyZXNwIGFzIFN1aU9iamVjdFJlc3BvbnNlKS5kYXRhICE9PSB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogRGVyaXZpbmcgdGhlIG9iamVjdCB0eXBlIGZyb20gdGhlIG9iamVjdCByZXNwb25zZVxuICogQHJldHVybnMgJ3BhY2thZ2UnIGlmIHRoZSBvYmplY3QgaXMgYSBwYWNrYWdlLCBtb3ZlIG9iamVjdCB0eXBlKGUuZy4sIDB4Mjo6Y29pbjo6Q29pbjwweDI6OnN1aTo6U1VJPilcbiAqIGlmIHRoZSBvYmplY3QgaXMgYSBtb3ZlIG9iamVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0VHlwZShyZXNwOiBTdWlPYmplY3RSZXNwb25zZSB8IFN1aU9iamVjdERhdGEpOiBPYmplY3RUeXBlIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZGF0YSA9IGlzU3VpT2JqZWN0UmVzcG9uc2UocmVzcCkgPyByZXNwLmRhdGEgOiByZXNwO1xuXG4gIGlmICghZGF0YT8udHlwZSAmJiAnZGF0YScgaW4gcmVzcCkge1xuICAgIGlmIChkYXRhPy5jb250ZW50Py5kYXRhVHlwZSA9PT0gJ3BhY2thZ2UnKSB7XG4gICAgICByZXR1cm4gJ3BhY2thZ2UnO1xuICAgIH1cbiAgICByZXR1cm4gZ2V0TW92ZU9iamVjdFR5cGUocmVzcCk7XG4gIH1cbiAgcmV0dXJuIGRhdGE/LnR5cGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RQcmV2aW91c1RyYW5zYWN0aW9uRGlnZXN0KHJlc3A6IFN1aU9iamVjdFJlc3BvbnNlKTogVHJhbnNhY3Rpb25EaWdlc3QgfCB1bmRlZmluZWQge1xuICByZXR1cm4gZ2V0U3VpT2JqZWN0RGF0YShyZXNwKT8ucHJldmlvdXNUcmFuc2FjdGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdE93bmVyKHJlc3A6IFN1aU9iamVjdFJlc3BvbnNlIHwgT2JqZWN0T3duZXIpOiBPYmplY3RPd25lciB8IHVuZGVmaW5lZCB7XG4gIGlmIChpcyhyZXNwLCBPYmplY3RPd25lcikpIHtcbiAgICByZXR1cm4gcmVzcDtcbiAgfVxuICByZXR1cm4gZ2V0U3VpT2JqZWN0RGF0YShyZXNwKT8ub3duZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3REaXNwbGF5KHJlc3A6IFN1aU9iamVjdFJlc3BvbnNlKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBnZXRTdWlPYmplY3REYXRhKHJlc3ApPy5kaXNwbGF5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2hhcmVkT2JqZWN0SW5pdGlhbFZlcnNpb24ocmVzcDogU3VpT2JqZWN0UmVzcG9uc2UgfCBPYmplY3RPd25lcik6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IG93bmVyID0gZ2V0T2JqZWN0T3duZXIocmVzcCk7XG4gIGlmICh0eXBlb2Ygb3duZXIgPT09ICdvYmplY3QnICYmICdTaGFyZWQnIGluIG93bmVyKSB7XG4gICAgcmV0dXJuIG93bmVyLlNoYXJlZC5pbml0aWFsX3NoYXJlZF92ZXJzaW9uO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2hhcmVkT2JqZWN0KHJlc3A6IFN1aU9iamVjdFJlc3BvbnNlIHwgT2JqZWN0T3duZXIpOiBib29sZWFuIHtcbiAgY29uc3Qgb3duZXIgPSBnZXRPYmplY3RPd25lcihyZXNwKTtcbiAgcmV0dXJuIHR5cGVvZiBvd25lciA9PT0gJ29iamVjdCcgJiYgJ1NoYXJlZCcgaW4gb3duZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ltbXV0YWJsZU9iamVjdChyZXNwOiBTdWlPYmplY3RSZXNwb25zZSB8IE9iamVjdE93bmVyKTogYm9vbGVhbiB7XG4gIGNvbnN0IG93bmVyID0gZ2V0T2JqZWN0T3duZXIocmVzcCk7XG4gIHJldHVybiBvd25lciA9PT0gJ0ltbXV0YWJsZSc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb3ZlT2JqZWN0VHlwZShyZXNwOiBTdWlPYmplY3RSZXNwb25zZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBnZXRNb3ZlT2JqZWN0KHJlc3ApPy50eXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0RmllbGRzKFxuICByZXNwOiBTdWlPYmplY3RSZXNwb25zZSB8IFN1aU1vdmVPYmplY3QgfCBTdWlPYmplY3REYXRhXG4pOiBPYmplY3RDb250ZW50RmllbGRzIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCdmaWVsZHMnIGluIHJlc3ApIHtcbiAgICByZXR1cm4gcmVzcC5maWVsZHM7XG4gIH1cbiAgcmV0dXJuIGdldE1vdmVPYmplY3QocmVzcCk/LmZpZWxkcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWlPYmplY3REYXRhV2l0aENvbnRlbnQgZXh0ZW5kcyBTdWlPYmplY3REYXRhIHtcbiAgY29udGVudDogU3VpUGFyc2VkRGF0YTtcbn1cblxuZnVuY3Rpb24gaXNTdWlPYmplY3REYXRhV2l0aENvbnRlbnQoZGF0YTogU3VpT2JqZWN0RGF0YSk6IGRhdGEgaXMgU3VpT2JqZWN0RGF0YVdpdGhDb250ZW50IHtcbiAgcmV0dXJuIGRhdGEuY29udGVudCAhPT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW92ZU9iamVjdChkYXRhOiBTdWlPYmplY3RSZXNwb25zZSB8IFN1aU9iamVjdERhdGEpOiBTdWlNb3ZlT2JqZWN0IHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc3VpT2JqZWN0ID0gJ2RhdGEnIGluIGRhdGEgPyBnZXRTdWlPYmplY3REYXRhKGRhdGEpIDogKGRhdGEgYXMgU3VpT2JqZWN0RGF0YSk7XG5cbiAgaWYgKCFzdWlPYmplY3QgfHwgIWlzU3VpT2JqZWN0RGF0YVdpdGhDb250ZW50KHN1aU9iamVjdCkgfHwgc3VpT2JqZWN0LmNvbnRlbnQuZGF0YVR5cGUgIT09ICdtb3ZlT2JqZWN0Jykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4gc3VpT2JqZWN0LmNvbnRlbnQgYXMgU3VpTW92ZU9iamVjdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc1B1YmxpY1RyYW5zZmVyKGRhdGE6IFN1aU9iamVjdFJlc3BvbnNlIHwgU3VpT2JqZWN0RGF0YSk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0TW92ZU9iamVjdChkYXRhKT8uaGFzUHVibGljVHJhbnNmZXIgPz8gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb3ZlUGFja2FnZUNvbnRlbnQoZGF0YTogU3VpT2JqZWN0UmVzcG9uc2UgfCBTdWlNb3ZlUGFja2FnZSk6IE1vdmVQYWNrYWdlQ29udGVudCB8IHVuZGVmaW5lZCB7XG4gIGlmICgnZGlzYXNzZW1ibGVkJyBpbiBkYXRhKSB7XG4gICAgcmV0dXJuIGRhdGEuZGlzYXNzZW1ibGVkO1xuICB9XG4gIGNvbnN0IHN1aU9iamVjdCA9IGdldFN1aU9iamVjdERhdGEoZGF0YSk7XG4gIGlmIChzdWlPYmplY3Q/LmNvbnRlbnQ/LmRhdGFUeXBlICE9PSAncGFja2FnZScpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIHJldHVybiAoc3VpT2JqZWN0LmNvbnRlbnQgYXMgU3VpTW92ZVBhY2thZ2UpLmRpc2Fzc2VtYmxlZDtcbn1cblxuZXhwb3J0IGNvbnN0IENoZWNrcG9pbnRlZE9iamVjdElkID0gb2JqZWN0KHtcbiAgb2JqZWN0SWQ6IE9iamVjdElkLFxuICBhdENoZWNrcG9pbnQ6IG9wdGlvbmFsKG51bWJlcigpKSxcbn0pO1xuZXhwb3J0IHR5cGUgQ2hlY2twb2ludGVkT2JqZWN0SWQgPSBJbmZlcjx0eXBlb2YgQ2hlY2twb2ludGVkT2JqZWN0SWQ+O1xuXG5leHBvcnQgY29uc3QgUGFnaW5hdGVkT2JqZWN0c1Jlc3BvbnNlID0gb2JqZWN0KHtcbiAgZGF0YTogYXJyYXkoU3VpT2JqZWN0UmVzcG9uc2UpLFxuICBuZXh0Q3Vyc29yOiBvcHRpb25hbChDaGVja3BvaW50ZWRPYmplY3RJZCksXG4gIGhhc05leHRQYWdlOiBib29sZWFuKCksXG59KTtcbmV4cG9ydCB0eXBlIFBhZ2luYXRlZE9iamVjdHNSZXNwb25zZSA9IEluZmVyPHR5cGVvZiBQYWdpbmF0ZWRPYmplY3RzUmVzcG9uc2U+O1xuXG4vLyBtaXJyb3JzIHN1aV9qc29uX3JwY190eXBlczo6IFN1aU9iamVjdERhdGFGaWx0ZXJcbmV4cG9ydCB0eXBlIFN1aU9iamVjdERhdGFGaWx0ZXIgPVxuICB8IHsgUGFja2FnZTogT2JqZWN0SWQgfVxuICB8IHsgTW92ZU1vZHVsZTogeyBwYWNrYWdlOiBPYmplY3RJZDsgbW9kdWxlOiBzdHJpbmcgfSB9XG4gIHwgeyBTdHJ1Y3RUeXBlOiBzdHJpbmcgfTtcblxuZXhwb3J0IHR5cGUgU3VpT2JqZWN0UmVzcG9uc2VRdWVyeSA9IHtcbiAgZmlsdGVyPzogU3VpT2JqZWN0RGF0YUZpbHRlcjtcbiAgb3B0aW9ucz86IFN1aU9iamVjdERhdGFPcHRpb25zO1xufTtcbiJdfQ==
|
|
@@ -301,29 +301,23 @@ function getTransactionDigest(tx) {
|
|
|
301
301
|
return tx.digest;
|
|
302
302
|
}
|
|
303
303
|
function getTransactionSignature(tx) {
|
|
304
|
-
|
|
305
|
-
return (_a = tx.transaction) === null || _a === void 0 ? void 0 : _a.txSignatures;
|
|
304
|
+
return tx.transaction?.txSignatures;
|
|
306
305
|
}
|
|
307
306
|
/* ----------------------------- TransactionData ---------------------------- */
|
|
308
307
|
function getTransactionSender(tx) {
|
|
309
|
-
|
|
310
|
-
return (_a = tx.transaction) === null || _a === void 0 ? void 0 : _a.data.sender;
|
|
308
|
+
return tx.transaction?.data.sender;
|
|
311
309
|
}
|
|
312
310
|
function getGasData(tx) {
|
|
313
|
-
|
|
314
|
-
return (_a = tx.transaction) === null || _a === void 0 ? void 0 : _a.data.gasData;
|
|
311
|
+
return tx.transaction?.data.gasData;
|
|
315
312
|
}
|
|
316
313
|
function getTransactionGasObject(tx) {
|
|
317
|
-
|
|
318
|
-
return (_a = getGasData(tx)) === null || _a === void 0 ? void 0 : _a.payment;
|
|
314
|
+
return getGasData(tx)?.payment;
|
|
319
315
|
}
|
|
320
316
|
function getTransactionGasPrice(tx) {
|
|
321
|
-
|
|
322
|
-
return (_a = getGasData(tx)) === null || _a === void 0 ? void 0 : _a.price;
|
|
317
|
+
return getGasData(tx)?.price;
|
|
323
318
|
}
|
|
324
319
|
function getTransactionGasBudget(tx) {
|
|
325
|
-
|
|
326
|
-
return (_a = getGasData(tx)) === null || _a === void 0 ? void 0 : _a.budget;
|
|
320
|
+
return getGasData(tx)?.budget;
|
|
327
321
|
}
|
|
328
322
|
function getChangeEpochTransaction(data) {
|
|
329
323
|
return data.kind === 'ChangeEpoch' ? data : undefined;
|
|
@@ -332,8 +326,7 @@ function getConsensusCommitPrologueTransaction(data) {
|
|
|
332
326
|
return data.kind === 'ConsensusCommitPrologue' ? data : undefined;
|
|
333
327
|
}
|
|
334
328
|
function getTransactionKind(data) {
|
|
335
|
-
|
|
336
|
-
return (_a = data.transaction) === null || _a === void 0 ? void 0 : _a.data.transaction;
|
|
329
|
+
return data.transaction?.data.transaction;
|
|
337
330
|
}
|
|
338
331
|
function getTransactionKindName(data) {
|
|
339
332
|
return data.kind;
|
|
@@ -343,23 +336,19 @@ function getProgrammableTransaction(data) {
|
|
|
343
336
|
}
|
|
344
337
|
/* ----------------------------- ExecutionStatus ---------------------------- */
|
|
345
338
|
function getExecutionStatusType(data) {
|
|
346
|
-
|
|
347
|
-
return (_a = getExecutionStatus(data)) === null || _a === void 0 ? void 0 : _a.status;
|
|
339
|
+
return getExecutionStatus(data)?.status;
|
|
348
340
|
}
|
|
349
341
|
function getExecutionStatus(data) {
|
|
350
|
-
|
|
351
|
-
return (_a = getTransactionEffects(data)) === null || _a === void 0 ? void 0 : _a.status;
|
|
342
|
+
return getTransactionEffects(data)?.status;
|
|
352
343
|
}
|
|
353
344
|
function getExecutionStatusError(data) {
|
|
354
|
-
|
|
355
|
-
return (_a = getExecutionStatus(data)) === null || _a === void 0 ? void 0 : _a.error;
|
|
345
|
+
return getExecutionStatus(data)?.error;
|
|
356
346
|
}
|
|
357
347
|
function getExecutionStatusGasSummary(data) {
|
|
358
|
-
var _a;
|
|
359
348
|
if ((0, superstruct_1.is)(data, exports.TransactionEffects)) {
|
|
360
349
|
return data.gasUsed;
|
|
361
350
|
}
|
|
362
|
-
return
|
|
351
|
+
return getTransactionEffects(data)?.gasUsed;
|
|
363
352
|
}
|
|
364
353
|
function getTotalGasUsed(data) {
|
|
365
354
|
const gasSummary = getExecutionStatusGasSummary(data);
|
|
@@ -379,26 +368,22 @@ function getEvents(data) {
|
|
|
379
368
|
return data.events;
|
|
380
369
|
}
|
|
381
370
|
function getCreatedObjects(data) {
|
|
382
|
-
|
|
383
|
-
return (_a = getTransactionEffects(data)) === null || _a === void 0 ? void 0 : _a.created;
|
|
371
|
+
return getTransactionEffects(data)?.created;
|
|
384
372
|
}
|
|
385
373
|
/* --------------------------- TransactionResponse -------------------------- */
|
|
386
374
|
function getTimestampFromTransactionResponse(data) {
|
|
387
|
-
|
|
388
|
-
return (_a = data.timestampMs) !== null && _a !== void 0 ? _a : undefined;
|
|
375
|
+
return data.timestampMs ?? undefined;
|
|
389
376
|
}
|
|
390
377
|
/**
|
|
391
378
|
* Get the newly created coin refs after a split.
|
|
392
379
|
*/
|
|
393
380
|
function getNewlyCreatedCoinRefsAfterSplit(data) {
|
|
394
|
-
|
|
395
|
-
return (_b = (_a = getTransactionEffects(data)) === null || _a === void 0 ? void 0 : _a.created) === null || _b === void 0 ? void 0 : _b.map((c) => c.reference);
|
|
381
|
+
return getTransactionEffects(data)?.created?.map((c) => c.reference);
|
|
396
382
|
}
|
|
397
383
|
function getObjectChanges(data) {
|
|
398
384
|
return data.objectChanges;
|
|
399
385
|
}
|
|
400
386
|
function getPublishedObjectChanges(data) {
|
|
401
|
-
|
|
402
|
-
return (_b = (_a = data.objectChanges) === null || _a === void 0 ? void 0 : _a.filter((a) => (0, superstruct_1.is)(a, exports.SuiObjectChangePublished))) !== null && _b !== void 0 ? _b : [];
|
|
387
|
+
return data.objectChanges?.filter((a) => (0, superstruct_1.is)(a, exports.SuiObjectChangePublished)) ?? [];
|
|
403
388
|
}
|
|
404
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9teXN0ZW5sYWIvdHlwZXMvdHJhbnNhY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTBZQSx3Q0FFQztBQUVELG9EQUVDO0FBRUQsMERBRUM7QUFJRCxvREFFQztBQUVELGdDQUVDO0FBRUQsMERBRUM7QUFFRCx3REFFQztBQUVELDBEQUVDO0FBRUQsOERBRUM7QUFFRCxzRkFJQztBQUVELGdEQUVDO0FBRUQsd0RBRUM7QUFFRCxnRUFFQztBQUlELHdEQUVDO0FBRUQsZ0RBRUM7QUFFRCwwREFFQztBQUVELG9FQU9DO0FBRUQsMENBS0M7QUFFRCw4REFHQztBQUVELHNEQUVDO0FBSUQsOEJBRUM7QUFFRCw4Q0FFQztBQUlELGtGQUVDO0FBS0QsOEVBRUM7QUFFRCw0Q0FFQztBQUVELDhEQUVDO0FBdGdCRCw2Q0FjcUI7QUFFckIscUNBUWtCO0FBQ2xCLHFDQUFvQztBQUNwQyx1Q0FBbUY7QUFFdEUsUUFBQSxPQUFPLEdBQUcsSUFBQSxvQkFBTSxHQUFFLENBQUM7QUFFbkIsUUFBQSxjQUFjLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQ25DLEtBQUssRUFBRSxlQUFPO0lBQ2QsY0FBYyxFQUFFLElBQUEsb0JBQU0sR0FBRTtJQUN4QixrQkFBa0IsRUFBRSxJQUFBLG9CQUFNLEdBQUU7SUFDNUIsY0FBYyxFQUFFLElBQUEsb0JBQU0sR0FBRTtJQUN4Qix3QkFBd0IsRUFBRSxJQUFBLHNCQUFRLEVBQUMsSUFBQSxvQkFBTSxHQUFFLENBQUM7Q0FDN0MsQ0FBQyxDQUFDO0FBR1UsUUFBQSwwQkFBMEIsR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDL0MsS0FBSyxFQUFFLElBQUEsb0JBQU0sR0FBRTtJQUNmLEtBQUssRUFBRSxJQUFBLG9CQUFNLEdBQUU7SUFDZixtQkFBbUIsRUFBRSxJQUFBLG9CQUFNLEdBQUU7Q0FDOUIsQ0FB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QUFpQztJQUNyRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDdEIsQ0FBQztBQUVELGtGQUFrRjtBQUVsRixTQUFnQixTQUFTLENBQUMsSUFBaUM7SUFDekQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0FBQ3JCLENBQUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxJQUFpQzs7SUFDakUsT0FBTyxNQUFBLHFCQUFxQixDQUFDLElBQUksQ0FBQywwQ0FBRSxPQUFPLENBQUM7QUFDOUMsQ0FBQztBQUVELGdGQUFnRjtBQUVoRixTQUFnQixtQ0FBbUMsQ0FBQyxJQUFpQzs7SUFDbkYsT0FBTyxNQUFBLElBQUksQ0FBQyxXQUFXLG1DQUFJLFNBQVMsQ0FBQztBQUN2QyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixpQ0FBaUMsQ0FBQyxJQUFpQzs7SUFDakYsT0FBTyxNQUFBLE1BQUEscUJBQXFCLENBQUMsSUFBSSxDQUFDLDBDQUFFLE9BQU8sMENBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDdkUsQ0FBQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLElBQWlDO0lBQ2hFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztBQUM1QixDQUFDO0FBRUQsU0FBZ0IseUJBQXlCLENBQUMsSUFBaUM7O0lBQ3pFLE9BQU8sTUFBQyxNQUFBLElBQUksQ0FBQyxhQUFhLDBDQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBQSxnQkFBRSxFQUFDLENBQUMsRUFBRSxnQ0FBd0IsQ0FBQyxDQUFnQyxtQ0FBSSxFQUFFLENBQUM7QUFDbEgsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGlzLFxuICBhcnJheSxcbiAgSW5mZXIsXG4gIGxpdGVyYWwsXG4gIG51bWJlcixcbiAgb2JqZWN0LFxuICBvcHRpb25hbCxcbiAgc3RyaW5nLFxuICB1bmlvbixcbiAgYm9vbGVhbixcbiAgdHVwbGUsXG4gIGFzc2lnbixcbiAgbnVsbGFibGUsXG59IGZyb20gJ3N1cGVyc3RydWN0JztcblxuaW1wb3J0IHtcbiAgT2JqZWN0SWQsXG4gIE9iamVjdE93bmVyLFxuICBTZXF1ZW5jZU51bWJlcixcbiAgU3VpQWRkcmVzcyxcbiAgU3VpSnNvblZhbHVlLFxuICBUcmFuc2FjdGlvbkRpZ2VzdCxcbiAgVHJhbnNhY3Rpb25FdmVudERpZ2VzdCxcbn0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgU3VpRXZlbnQgfSBmcm9tICcuL2V2ZW50cyc7XG5pbXBvcnQgeyBPYmplY3REaWdlc3QsIFN1aUdhc0RhdGEsIFN1aU1vdmVQYWNrYWdlLCBTdWlPYmplY3RSZWYgfSBmcm9tICcuL29iamVjdHMnO1xuXG5leHBvcnQgY29uc3QgRXBvY2hJZCA9IHN0cmluZygpO1xuXG5leHBvcnQgY29uc3QgU3VpQ2hhbmdlRXBvY2ggPSBvYmplY3Qoe1xuICBlcG9jaDogRXBvY2hJZCxcbiAgc3RvcmFnZV9jaGFyZ2U6IG51bWJlcigpLFxuICBjb21wdXRhdGlvbl9jaGFyZ2U6IG51bWJlcigpLFxuICBzdG9yYWdlX3JlYmF0ZTogbnVtYmVyKCksXG4gIGVwb2NoX3N0YXJ0X3RpbWVzdGFtcF9tczogb3B0aW9uYWwobnVtYmVyKCkpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlDaGFuZ2VFcG9jaCA9IEluZmVyPHR5cGVvZiBTdWlDaGFuZ2VFcG9jaD47XG5cbmV4cG9ydCBjb25zdCBTdWlDb25zZW5zdXNDb21taXRQcm9sb2d1ZSA9IG9iamVjdCh7XG4gIGVwb2NoOiBudW1iZXIoKSxcbiAgcm91bmQ6IG51bWJlcigpLFxuICBjb21taXRfdGltZXN0YW1wX21zOiBudW1iZXIoKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpQ29uc2Vuc3VzQ29tbWl0UHJvbG9ndWUgPSBJbmZlcjx0eXBlb2YgU3VpQ29uc2Vuc3VzQ29tbWl0UHJvbG9ndWU+O1xuXG5leHBvcnQgY29uc3QgR2VuZXNpcyA9IG9iamVjdCh7XG4gIG9iamVjdHM6IGFycmF5KE9iamVjdElkKSxcbn0pO1xuZXhwb3J0IHR5cGUgR2VuZXNpcyA9IEluZmVyPHR5cGVvZiBHZW5lc2lzPjtcblxuZXhwb3J0IGNvbnN0IFN1aUFyZ3VtZW50ID0gdW5pb24oW1xuICBsaXRlcmFsKCdHYXNDb2luJyksXG4gIG9iamVjdCh7IElucHV0OiBudW1iZXIoKSB9KSxcbiAgb2JqZWN0KHsgUmVzdWx0OiBudW1iZXIoKSB9KSxcbiAgb2JqZWN0KHsgTmVzdGVkUmVzdWx0OiB0dXBsZShbbnVtYmVyKCksIG51bWJlcigpXSkgfSksXG5dKTtcbmV4cG9ydCB0eXBlIFN1aUFyZ3VtZW50ID0gSW5mZXI8dHlwZW9mIFN1aUFyZ3VtZW50PjtcblxuZXhwb3J0IGNvbnN0IE1vdmVDYWxsU3VpVHJhbnNhY3Rpb24gPSBvYmplY3Qoe1xuICBhcmd1bWVudHM6IG9wdGlvbmFsKGFycmF5KFN1aUFyZ3VtZW50KSksXG4gIHR5cGVfYXJndW1lbnRzOiBvcHRpb25hbChhcnJheShzdHJpbmcoKSkpLFxuICBwYWNrYWdlOiBPYmplY3RJZCxcbiAgbW9kdWxlOiBzdHJpbmcoKSxcbiAgZnVuY3Rpb246IHN0cmluZygpLFxufSk7XG5leHBvcnQgdHlwZSBNb3ZlQ2FsbFN1aVRyYW5zYWN0aW9uID0gSW5mZXI8dHlwZW9mIE1vdmVDYWxsU3VpVHJhbnNhY3Rpb24+O1xuXG5leHBvcnQgY29uc3QgU3VpVHJhbnNhY3Rpb24gPSB1bmlvbihbXG4gIG9iamVjdCh7IE1vdmVDYWxsOiBNb3ZlQ2FsbFN1aVRyYW5zYWN0aW9uIH0pLFxuICBvYmplY3QoeyBUcmFuc2Zlck9iamVjdHM6IHR1cGxlKFthcnJheShTdWlBcmd1bWVudCksIFN1aUFyZ3VtZW50XSkgfSksXG4gIG9iamVjdCh7IFNwbGl0Q29pbnM6IHR1cGxlKFtTdWlBcmd1bWVudCwgYXJyYXkoU3VpQXJndW1lbnQpXSkgfSksXG4gIG9iamVjdCh7IE1lcmdlQ29pbnM6IHR1cGxlKFtTdWlBcmd1bWVudCwgYXJyYXkoU3VpQXJndW1lbnQpXSkgfSksXG4gIG9iamVjdCh7IFB1Ymxpc2g6IFN1aU1vdmVQYWNrYWdlIH0pLFxuICBvYmplY3QoeyBNYWtlTW92ZVZlYzogdHVwbGUoW251bGxhYmxlKHN0cmluZygpKSwgYXJyYXkoU3VpQXJndW1lbnQpXSkgfSksXG5dKTtcblxuZXhwb3J0IGNvbnN0IFN1aUNhbGxBcmcgPSB1bmlvbihbXG4gIG9iamVjdCh7XG4gICAgdHlwZTogbGl0ZXJhbCgncHVyZScpLFxuICAgIHZhbHVlVHlwZTogb3B0aW9uYWwoc3RyaW5nKCkpLFxuICAgIHZhbHVlOiBTdWlKc29uVmFsdWUsXG4gIH0pLFxuICBvYmplY3Qoe1xuICAgIHR5cGU6IGxpdGVyYWwoJ29iamVjdCcpLFxuICAgIG9iamVjdFR5cGU6IGxpdGVyYWwoJ2ltbU9yT3duZWRPYmplY3QnKSxcbiAgICBvYmplY3RJZDogT2JqZWN0SWQsXG4gICAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gICAgZGlnZXN0OiBPYmplY3REaWdlc3QsXG4gIH0pLFxuICBvYmplY3Qoe1xuICAgIHR5cGU6IGxpdGVyYWwoJ29iamVjdCcpLFxuICAgIG9iamVjdFR5cGU6IGxpdGVyYWwoJ3NoYXJlZE9iamVjdCcpLFxuICAgIG9iamVjdElkOiBPYmplY3RJZCxcbiAgICBpbml0aWFsU2hhcmVkVmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gICAgbXV0YWJsZTogYm9vbGVhbigpLFxuICB9KSxcbl0pO1xuZXhwb3J0IHR5cGUgU3VpQ2FsbEFyZyA9IEluZmVyPHR5cGVvZiBTdWlDYWxsQXJnPjtcblxuZXhwb3J0IGNvbnN0IFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uID0gb2JqZWN0KHtcbiAgdHJhbnNhY3Rpb25zOiBhcnJheShTdWlUcmFuc2FjdGlvbiksXG4gIGlucHV0czogYXJyYXkoU3VpQ2FsbEFyZyksXG59KTtcbmV4cG9ydCB0eXBlIFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uID0gSW5mZXI8dHlwZW9mIFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uPjtcbmV4cG9ydCB0eXBlIFN1aVRyYW5zYWN0aW9uID0gSW5mZXI8dHlwZW9mIFN1aVRyYW5zYWN0aW9uPjtcblxuLyoqXG4gKiAxLiBXYWl0Rm9yRWZmZWN0c0NlcnQ6IHdhaXRzIGZvciBUcmFuc2FjdGlvbkVmZmVjdHNDZXJ0IGFuZCB0aGVuIHJldHVybnMgdG8gdGhlIGNsaWVudC5cbiAqICAgIFRoaXMgbW9kZSBpcyBhIHByb3h5IGZvciB0cmFuc2FjdGlvbiBmaW5hbGl0eS5cbiAqIDIuIFdhaXRGb3JMb2NhbEV4ZWN1dGlvbjogd2FpdHMgZm9yIFRyYW5zYWN0aW9uRWZmZWN0c0NlcnQgYW5kIG1ha2VzIHN1cmUgdGhlIG5vZGVcbiAqICAgIGV4ZWN1dGVkIHRoZSB0cmFuc2FjdGlvbiBsb2NhbGx5IGJlZm9yZSByZXR1cm5pbmcgdG8gdGhlIGNsaWVudC4gVGhlIGxvY2FsIGV4ZWN1dGlvblxuICogICAgbWFrZXMgc3VyZSB0aGlzIG5vZGUgaXMgYXdhcmUgb2YgdGhpcyB0cmFuc2FjdGlvbiB3aGVuIHRoZSBjbGllbnQgZmlyZXMgc3Vic2VxdWVudCBxdWVyaWVzLlxuICogICAgSG93ZXZlciwgaWYgdGhlIG5vZGUgZmFpbHMgdG8gZXhlY3V0ZSB0aGUgdHJhbnNhY3Rpb24gbG9jYWxseSBpbiBhIHRpbWVseSBtYW5uZXIsXG4gKiAgICBhIGJvb2wgdHlwZSBpbiB0aGUgcmVzcG9uc2UgaXMgc2V0IHRvIGZhbHNlIHRvIGluZGljYXRlIHRoZSBjYXNlLlxuICovXG5leHBvcnQgdHlwZSBFeGVjdXRlVHJhbnNhY3Rpb25SZXF1ZXN0VHlwZSA9ICdXYWl0Rm9yRWZmZWN0c0NlcnQnIHwgJ1dhaXRGb3JMb2NhbEV4ZWN1dGlvbic7XG5cbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uS2luZE5hbWUgPSAnQ2hhbmdlRXBvY2gnIHwgJ0NvbnNlbnN1c0NvbW1pdFByb2xvZ3VlJyB8ICdHZW5lc2lzJyB8ICdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbic7XG5cbmV4cG9ydCBjb25zdCBTdWlUcmFuc2FjdGlvbkJsb2NrS2luZCA9IHVuaW9uKFtcbiAgYXNzaWduKFN1aUNoYW5nZUVwb2NoLCBvYmplY3QoeyBraW5kOiBsaXRlcmFsKCdDaGFuZ2VFcG9jaCcpIH0pKSxcbiAgYXNzaWduKFxuICAgIFN1aUNvbnNlbnN1c0NvbW1pdFByb2xvZ3VlLFxuICAgIG9iamVjdCh7XG4gICAgICBraW5kOiBsaXRlcmFsKCdDb25zZW5zdXNDb21taXRQcm9sb2d1ZScpLFxuICAgIH0pXG4gICksXG4gIGFzc2lnbihHZW5lc2lzLCBvYmplY3QoeyBraW5kOiBsaXRlcmFsKCdHZW5lc2lzJykgfSkpLFxuICBhc3NpZ24oUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24sIG9iamVjdCh7IGtpbmQ6IGxpdGVyYWwoJ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uJykgfSkpLFxuXSk7XG5leHBvcnQgdHlwZSBTdWlUcmFuc2FjdGlvbkJsb2NrS2luZCA9IEluZmVyPHR5cGVvZiBTdWlUcmFuc2FjdGlvbkJsb2NrS2luZD47XG5cbmV4cG9ydCBjb25zdCBTdWlUcmFuc2FjdGlvbkJsb2NrRGF0YSA9IG9iamVjdCh7XG4gIC8vIEV2ZW50dWFsbHkgdGhpcyB3aWxsIGJlY29tZSB1bmlvbihsaXRlcmFsKCd2MScpLCBsaXRlcmFsKCd2MicpLCAuLi4pXG4gIG1lc3NhZ2VWZXJzaW9uOiBsaXRlcmFsKCd2MScpLFxuICB0cmFuc2FjdGlvbjogU3VpVHJhbnNhY3Rpb25CbG9ja0tpbmQsXG4gIHNlbmRlcjogU3VpQWRkcmVzcyxcbiAgZ2FzRGF0YTogU3VpR2FzRGF0YSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpVHJhbnNhY3Rpb25CbG9ja0RhdGEgPSBJbmZlcjx0eXBlb2YgU3VpVHJhbnNhY3Rpb25CbG9ja0RhdGE+O1xuXG5leHBvcnQgY29uc3QgQXV0aG9yaXR5U2lnbmF0dXJlID0gc3RyaW5nKCk7XG5leHBvcnQgY29uc3QgR2VuZXJpY0F1dGhvcml0eVNpZ25hdHVyZSA9IHVuaW9uKFtBdXRob3JpdHlTaWduYXR1cmUsIGFycmF5KEF1dGhvcml0eVNpZ25hdHVyZSldKTtcblxuZXhwb3J0IGNvbnN0IEF1dGhvcml0eVF1b3J1bVNpZ25JbmZvID0gb2JqZWN0KHtcbiAgZXBvY2g6IEVwb2NoSWQsXG4gIHNpZ25hdHVyZTogR2VuZXJpY0F1dGhvcml0eVNpZ25hdHVyZSxcbiAgc2lnbmVyc19tYXA6IGFycmF5KG51bWJlcigpKSxcbn0pO1xuZXhwb3J0IHR5cGUgQXV0aG9yaXR5UXVvcnVtU2lnbkluZm8gPSBJbmZlcjx0eXBlb2YgQXV0aG9yaXR5UXVvcnVtU2lnbkluZm8+O1xuXG5leHBvcnQgY29uc3QgR2FzQ29zdFN1bW1hcnkgPSBvYmplY3Qoe1xuICBjb21wdXRhdGlvbkNvc3Q6IHN0cmluZygpLFxuICBzdG9yYWdlQ29zdDogc3RyaW5nKCksXG4gIHN0b3JhZ2VSZWJhdGU6IHN0cmluZygpLFxuICBub25SZWZ1bmRhYmxlU3RvcmFnZUZlZTogc3RyaW5nKCksXG59KTtcbmV4cG9ydCB0eXBlIEdhc0Nvc3RTdW1tYXJ5ID0gSW5mZXI8dHlwZW9mIEdhc0Nvc3RTdW1tYXJ5PjtcblxuZXhwb3J0IGNvbnN0IEV4ZWN1dGlvblN0YXR1c1R5cGUgPSB1bmlvbihbbGl0ZXJhbCgnc3VjY2VzcycpLCBsaXRlcmFsKCdmYWlsdXJlJyldKTtcbmV4cG9ydCB0eXBlIEV4ZWN1dGlvblN0YXR1c1R5cGUgPSBJbmZlcjx0eXBlb2YgRXhlY3V0aW9uU3RhdHVzVHlwZT47XG5cbmV4cG9ydCBjb25zdCBFeGVjdXRpb25TdGF0dXMgPSBvYmplY3Qoe1xuICBzdGF0dXM6IEV4ZWN1dGlvblN0YXR1c1R5cGUsXG4gIGVycm9yOiBvcHRpb25hbChzdHJpbmcoKSksXG59KTtcbmV4cG9ydCB0eXBlIEV4ZWN1dGlvblN0YXR1cyA9IEluZmVyPHR5cGVvZiBFeGVjdXRpb25TdGF0dXM+O1xuXG5leHBvcnQgY29uc3QgT3duZWRPYmplY3RSZWYgPSBvYmplY3Qoe1xuICBvd25lcjogT2JqZWN0T3duZXIsXG4gIHJlZmVyZW5jZTogU3VpT2JqZWN0UmVmLFxufSk7XG5leHBvcnQgdHlwZSBPd25lZE9iamVjdFJlZiA9IEluZmVyPHR5cGVvZiBPd25lZE9iamVjdFJlZj47XG5leHBvcnQgY29uc3QgVHJhbnNhY3Rpb25FZmZlY3RzTW9kaWZpZWRBdFZlcnNpb25zID0gb2JqZWN0KHtcbiAgb2JqZWN0SWQ6IE9iamVjdElkLFxuICBzZXF1ZW5jZU51bWJlcjogU2VxdWVuY2VOdW1iZXIsXG59KTtcblxuZXhwb3J0IGNvbnN0IFRyYW5zYWN0aW9uRWZmZWN0cyA9IG9iamVjdCh7XG4gIC8vIEV2ZW50dWFsbHkgdGhpcyB3aWxsIGJlY29tZSB1bmlvbihsaXRlcmFsKCd2MScpLCBsaXRlcmFsKCd2MicpLCAuLi4pXG4gIG1lc3NhZ2VWZXJzaW9uOiBsaXRlcmFsKCd2MScpLFxuXG4gIC8qKiBUaGUgc3RhdHVzIG9mIHRoZSBleGVjdXRpb24gKi9cbiAgc3RhdHVzOiBFeGVjdXRpb25TdGF0dXMsXG4gIC8qKiBUaGUgZXBvY2ggd2hlbiB0aGlzIHRyYW5zYWN0aW9uIHdhcyBleGVjdXRlZCAqL1xuICBleGVjdXRlZEVwb2NoOiBFcG9jaElkLFxuICAvKiogVGhlIHZlcnNpb24gdGhhdCBldmVyeSBtb2RpZmllZCAobXV0YXRlZCBvciBkZWxldGVkKSBvYmplY3QgaGFkIGJlZm9yZSBpdCB3YXMgbW9kaWZpZWQgYnkgdGhpcyB0cmFuc2FjdGlvbi4gKiovXG4gIG1vZGlmaWVkQXRWZXJzaW9uczogb3B0aW9uYWwoYXJyYXkoVHJhbnNhY3Rpb25FZmZlY3RzTW9kaWZpZWRBdFZlcnNpb25zKSksXG4gIGdhc1VzZWQ6IEdhc0Nvc3RTdW1tYXJ5LFxuICAvKiogVGhlIG9iamVjdCByZWZlcmVuY2VzIG9mIHRoZSBzaGFyZWQgb2JqZWN0cyB1c2VkIGluIHRoaXMgdHJhbnNhY3Rpb24uIEVtcHR5IGlmIG5vIHNoYXJlZCBvYmplY3RzIHdlcmUgdXNlZC4gKi9cbiAgc2hhcmVkT2JqZWN0czogb3B0aW9uYWwoYXJyYXkoU3VpT2JqZWN0UmVmKSksXG4gIC8qKiBUaGUgdHJhbnNhY3Rpb24gZGlnZXN0ICovXG4gIHRyYW5zYWN0aW9uRGlnZXN0OiBUcmFuc2FjdGlvbkRpZ2VzdCxcbiAgLyoqIE9iamVjdFJlZiBhbmQgb3duZXIgb2YgbmV3IG9iamVjdHMgY3JlYXRlZCAqL1xuICBjcmVhdGVkOiBvcHRpb25hbChhcnJheShPd25lZE9iamVjdFJlZikpLFxuICAvKiogT2JqZWN0UmVmIGFuZCBvd25lciBvZiBtdXRhdGVkIG9iamVjdHMsIGluY2x1ZGluZyBnYXMgb2JqZWN0ICovXG4gIG11dGF0ZWQ6IG9wdGlvbmFsKGFycmF5KE93bmVkT2JqZWN0UmVmKSksXG4gIC8qKlxuICAgKiBPYmplY3RSZWYgYW5kIG93bmVyIG9mIG9iamVjdHMgdGhhdCBhcmUgdW53cmFwcGVkIGluIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqIFVud3JhcHBlZCBvYmplY3RzIGFyZSBvYmplY3RzIHRoYXQgd2VyZSB3cmFwcGVkIGludG8gb3RoZXIgb2JqZWN0cyBpbiB0aGUgcGFzdCxcbiAgICogYW5kIGp1c3QgZ290IGV4dHJhY3RlZCBvdXQuXG4gICAqL1xuICB1bndyYXBwZWQ6IG9wdGlvbmFsKGFycmF5KE93bmVkT2JqZWN0UmVmKSksXG4gIC8qKiBPYmplY3QgUmVmcyBvZiBvYmplY3RzIG5vdyBkZWxldGVkICh0aGUgb2xkIHJlZnMpICovXG4gIGRlbGV0ZWQ6IG9wdGlvbmFsKGFycmF5KFN1aU9iamVjdFJlZikpLFxuICAvKiogT2JqZWN0IFJlZnMgb2Ygb2JqZWN0cyBub3cgZGVsZXRlZCAodGhlIG9sZCByZWZzKSAqL1xuICB1bndyYXBwZWRfdGhlbl9kZWxldGVkOiBvcHRpb25hbChhcnJheShTdWlPYmplY3RSZWYpKSxcbiAgLyoqIE9iamVjdCByZWZzIG9mIG9iamVjdHMgbm93IHdyYXBwZWQgaW4gb3RoZXIgb2JqZWN0cyAqL1xuICB3cmFwcGVkOiBvcHRpb25hbChhcnJheShTdWlPYmplY3RSZWYpKSxcbiAgLyoqXG4gICAqIFRoZSB1cGRhdGVkIGdhcyBvYmplY3QgcmVmZXJlbmNlLiBIYXZlIGEgZGVkaWNhdGVkIGZpZWxkIGZvciBjb252ZW5pZW50IGFjY2Vzcy5cbiAgICogSXQncyBhbHNvIGluY2x1ZGVkIGluIG11dGF0ZWQuXG4gICAqL1xuICBnYXNPYmplY3Q6IE93bmVkT2JqZWN0UmVmLFxuICAvKiogVGhlIGV2ZW50cyBlbWl0dGVkIGR1cmluZyBleGVjdXRpb24uIE5vdGUgdGhhdCBvbmx5IHN1Y2Nlc3NmdWwgdHJhbnNhY3Rpb25zIGVtaXQgZXZlbnRzICovXG4gIGV2ZW50c0RpZ2VzdDogb3B0aW9uYWwoVHJhbnNhY3Rpb25FdmVudERpZ2VzdCksXG4gIC8qKiBUaGUgc2V0IG9mIHRyYW5zYWN0aW9uIGRpZ2VzdHMgdGhpcyB0cmFuc2FjdGlvbiBkZXBlbmRzIG9uICovXG4gIGRlcGVuZGVuY2llczogb3B0aW9uYWwoYXJyYXkoVHJhbnNhY3Rpb25EaWdlc3QpKSxcbn0pO1xuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25FZmZlY3RzID0gSW5mZXI8dHlwZW9mIFRyYW5zYWN0aW9uRWZmZWN0cz47XG5cbmV4cG9ydCBjb25zdCBUcmFuc2FjdGlvbkV2ZW50cyA9IGFycmF5KFN1aUV2ZW50KTtcbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uRXZlbnRzID0gSW5mZXI8dHlwZW9mIFRyYW5zYWN0aW9uRXZlbnRzPjtcblxuY29uc3QgUmV0dXJuVmFsdWVUeXBlID0gdHVwbGUoW2FycmF5KG51bWJlcigpKSwgc3RyaW5nKCldKTtcbmNvbnN0IE11dGFibGVSZWZlcmVuY2VPdXRwdXRUeXBlID0gdHVwbGUoW1N1aUFyZ3VtZW50LCBhcnJheShudW1iZXIoKSksIHN0cmluZygpXSk7XG5jb25zdCBFeGVjdXRpb25SZXN1bHRUeXBlID0gb2JqZWN0KHtcbiAgbXV0YWJsZVJlZmVyZW5jZU91dHB1dHM6IG9wdGlvbmFsKGFycmF5KE11dGFibGVSZWZlcmVuY2VPdXRwdXRUeXBlKSksXG4gIHJldHVyblZhbHVlczogb3B0aW9uYWwoYXJyYXkoUmV0dXJuVmFsdWVUeXBlKSksXG59KTtcblxuZXhwb3J0IGNvbnN0IERldkluc3BlY3RSZXN1bHRzID0gb2JqZWN0KHtcbiAgZWZmZWN0czogVHJhbnNhY3Rpb25FZmZlY3RzLFxuICBldmVudHM6IFRyYW5zYWN0aW9uRXZlbnRzLFxuICByZXN1bHRzOiBvcHRpb25hbChhcnJheShFeGVjdXRpb25SZXN1bHRUeXBlKSksXG4gIGVycm9yOiBvcHRpb25hbChzdHJpbmcoKSksXG59KTtcbmV4cG9ydCB0eXBlIERldkluc3BlY3RSZXN1bHRzID0gSW5mZXI8dHlwZW9mIERldkluc3BlY3RSZXN1bHRzPjtcblxuZXhwb3J0IHR5cGUgU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlUXVlcnkgPSB7XG4gIGZpbHRlcj86IFRyYW5zYWN0aW9uRmlsdGVyO1xuICBvcHRpb25zPzogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlT3B0aW9ucztcbn07XG5cbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uRmlsdGVyID1cbiAgfCB7XG4gICAgICBNb3ZlRnVuY3Rpb246IHtcbiAgICAgICAgcGFja2FnZTogT2JqZWN0SWQ7XG4gICAgICAgIG1vZHVsZTogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgZnVuY3Rpb246IHN0cmluZyB8IG51bGw7XG4gICAgICB9O1xuICAgIH1cbiAgfCB7IElucHV0T2JqZWN0OiBPYmplY3RJZCB9XG4gIHwgeyBDaGFuZ2VkT2JqZWN0OiBPYmplY3RJZCB9XG4gIHwgeyBGcm9tQWRkcmVzczogU3VpQWRkcmVzcyB9XG4gIHwgeyBUb0FkZHJlc3M6IFN1aUFkZHJlc3MgfTtcblxuZXhwb3J0IHR5cGUgRW1wdHlTaWduSW5mbyA9IG9iamVjdDtcbmV4cG9ydCB0eXBlIEF1dGhvcml0eU5hbWUgPSBJbmZlcjx0eXBlb2YgQXV0aG9yaXR5TmFtZT47XG5leHBvcnQgY29uc3QgQXV0aG9yaXR5TmFtZSA9IHN0cmluZygpO1xuXG5leHBvcnQgY29uc3QgU3VpVHJhbnNhY3Rpb25CbG9jayA9IG9iamVjdCh7XG4gIGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tEYXRhLFxuICB0eFNpZ25hdHVyZXM6IGFycmF5KHN0cmluZygpKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpVHJhbnNhY3Rpb25CbG9jayA9IEluZmVyPHR5cGVvZiBTdWlUcmFuc2FjdGlvbkJsb2NrPjtcblxuZXhwb3J0IGNvbnN0IFN1aU9iamVjdENoYW5nZVB1Ymxpc2hlZCA9IG9iamVjdCh7XG4gIHR5cGU6IGxpdGVyYWwoJ3B1Ymxpc2hlZCcpLFxuICBwYWNrYWdlSWQ6IE9iamVjdElkLFxuICB2ZXJzaW9uOiBTZXF1ZW5jZU51bWJlcixcbiAgZGlnZXN0OiBPYmplY3REaWdlc3QsXG4gIG1vZHVsZXM6IGFycmF5KHN0cmluZygpKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0Q2hhbmdlUHVibGlzaGVkID0gSW5mZXI8dHlwZW9mIFN1aU9iamVjdENoYW5nZVB1Ymxpc2hlZD47XG5cbmV4cG9ydCBjb25zdCBTdWlPYmplY3RDaGFuZ2VUcmFuc2ZlcnJlZCA9IG9iamVjdCh7XG4gIHR5cGU6IGxpdGVyYWwoJ3RyYW5zZmVycmVkJyksXG4gIHNlbmRlcjogU3VpQWRkcmVzcyxcbiAgcmVjaXBpZW50OiBPYmplY3RPd25lcixcbiAgb2JqZWN0VHlwZTogc3RyaW5nKCksXG4gIG9iamVjdElkOiBPYmplY3RJZCxcbiAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gIGRpZ2VzdDogT2JqZWN0RGlnZXN0LFxufSk7XG5leHBvcnQgdHlwZSBTdWlPYmplY3RDaGFuZ2VUcmFuc2ZlcnJlZCA9IEluZmVyPHR5cGVvZiBTdWlPYmplY3RDaGFuZ2VUcmFuc2ZlcnJlZD47XG5cbmV4cG9ydCBjb25zdCBTdWlPYmplY3RDaGFuZ2VNdXRhdGVkID0gb2JqZWN0KHtcbiAgdHlwZTogbGl0ZXJhbCgnbXV0YXRlZCcpLFxuICBzZW5kZXI6IFN1aUFkZHJlc3MsXG4gIG93bmVyOiBPYmplY3RPd25lcixcbiAgb2JqZWN0VHlwZTogc3RyaW5nKCksXG4gIG9iamVjdElkOiBPYmplY3RJZCxcbiAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gIHByZXZpb3VzVmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gIGRpZ2VzdDogT2JqZWN0RGlnZXN0LFxufSk7XG5leHBvcnQgdHlwZSBTdWlPYmplY3RDaGFuZ2VNdXRhdGVkID0gSW5mZXI8dHlwZW9mIFN1aU9iamVjdENoYW5nZU11dGF0ZWQ+O1xuXG5leHBvcnQgY29uc3QgU3VpT2JqZWN0Q2hhbmdlRGVsZXRlZCA9IG9iamVjdCh7XG4gIHR5cGU6IGxpdGVyYWwoJ2RlbGV0ZWQnKSxcbiAgc2VuZGVyOiBTdWlBZGRyZXNzLFxuICBvYmplY3RUeXBlOiBzdHJpbmcoKSxcbiAgb2JqZWN0SWQ6IE9iamVjdElkLFxuICB2ZXJzaW9uOiBTZXF1ZW5jZU51bWJlcixcbn0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0Q2hhbmdlRGVsZXRlZCA9IEluZmVyPHR5cGVvZiBTdWlPYmplY3RDaGFuZ2VEZWxldGVkPjtcblxuZXhwb3J0IGNvbnN0IFN1aU9iamVjdENoYW5nZVdyYXBwZWQgPSBvYmplY3Qoe1xuICB0eXBlOiBsaXRlcmFsKCd3cmFwcGVkJyksXG4gIHNlbmRlcjogU3VpQWRkcmVzcyxcbiAgb2JqZWN0VHlwZTogc3RyaW5nKCksXG4gIG9iamVjdElkOiBPYmplY3RJZCxcbiAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG59KTtcbmV4cG9ydCB0eXBlIFN1aU9iamVjdENoYW5nZVdyYXBwZWQgPSBJbmZlcjx0eXBlb2YgU3VpT2JqZWN0Q2hhbmdlV3JhcHBlZD47XG5cbmV4cG9ydCBjb25zdCBTdWlPYmplY3RDaGFuZ2VDcmVhdGVkID0gb2JqZWN0KHtcbiAgdHlwZTogbGl0ZXJhbCgnY3JlYXRlZCcpLFxuICBzZW5kZXI6IFN1aUFkZHJlc3MsXG4gIG93bmVyOiBPYmplY3RPd25lcixcbiAgb2JqZWN0VHlwZTogc3RyaW5nKCksXG4gIG9iamVjdElkOiBPYmplY3RJZCxcbiAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gIGRpZ2VzdDogT2JqZWN0RGlnZXN0LFxufSk7XG5leHBvcnQgdHlwZSBTdWlPYmplY3RDaGFuZ2VDcmVhdGVkID0gSW5mZXI8dHlwZW9mIFN1aU9iamVjdENoYW5nZUNyZWF0ZWQ+O1xuXG5leHBvcnQgY29uc3QgU3VpT2JqZWN0Q2hhbmdlID0gdW5pb24oW1xuICBTdWlPYmplY3RDaGFuZ2VQdWJsaXNoZWQsXG4gIFN1aU9iamVjdENoYW5nZVRyYW5zZmVycmVkLFxuICBTdWlPYmplY3RDaGFuZ2VNdXRhdGVkLFxuICBTdWlPYmplY3RDaGFuZ2VEZWxldGVkLFxuICBTdWlPYmplY3RDaGFuZ2VXcmFwcGVkLFxuICBTdWlPYmplY3RDaGFuZ2VDcmVhdGVkLFxuXSk7XG5leHBvcnQgdHlwZSBTdWlPYmplY3RDaGFuZ2UgPSBJbmZlcjx0eXBlb2YgU3VpT2JqZWN0Q2hhbmdlPjtcblxuZXhwb3J0IGNvbnN0IEJhbGFuY2VDaGFuZ2UgPSBvYmplY3Qoe1xuICBvd25lcjogT2JqZWN0T3duZXIsXG4gIGNvaW5UeXBlOiBzdHJpbmcoKSxcbiAgLyogQ29pbiBiYWxhbmNlIGNoYW5nZShwb3NpdGl2ZSBtZWFucyByZWNlaXZlLCBuZWdhdGl2ZSBtZWFucyBzZW5kKSAqL1xuICBhbW91bnQ6IHN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UgPSBvYmplY3Qoe1xuICBkaWdlc3Q6IFRyYW5zYWN0aW9uRGlnZXN0LFxuICB0cmFuc2FjdGlvbjogb3B0aW9uYWwoU3VpVHJhbnNhY3Rpb25CbG9jayksXG4gIGVmZmVjdHM6IG9wdGlvbmFsKFRyYW5zYWN0aW9uRWZmZWN0cyksXG4gIGV2ZW50czogb3B0aW9uYWwoVHJhbnNhY3Rpb25FdmVudHMpLFxuICB0aW1lc3RhbXBNczogb3B0aW9uYWwobnVtYmVyKCkpLFxuICBjaGVja3BvaW50OiBvcHRpb25hbChudW1iZXIoKSksXG4gIGNvbmZpcm1lZExvY2FsRXhlY3V0aW9uOiBvcHRpb25hbChib29sZWFuKCkpLFxuICBvYmplY3RDaGFuZ2VzOiBvcHRpb25hbChhcnJheShTdWlPYmplY3RDaGFuZ2UpKSxcbiAgYmFsYW5jZUNoYW5nZXM6IG9wdGlvbmFsKGFycmF5KEJhbGFuY2VDaGFuZ2UpKSxcbiAgLyogRXJyb3JzIHRoYXQgb2NjdXJyZWQgaW4gZmV0Y2hpbmcvc2VyaWFsaXppbmcgdGhlIHRyYW5zYWN0aW9uLiAqL1xuICBlcnJvcnM6IG9wdGlvbmFsKGFycmF5KHN0cmluZygpKSksXG59KTtcbmV4cG9ydCB0eXBlIFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSA9IEluZmVyPHR5cGVvZiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2U+O1xuXG5leHBvcnQgY29uc3QgU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlT3B0aW9ucyA9IG9iamVjdCh7XG4gIC8qIFdoZXRoZXIgdG8gc2hvdyB0cmFuc2FjdGlvbiBpbnB1dCBkYXRhLiBEZWZhdWx0IHRvIGJlIGZhbHNlLiAqL1xuICBzaG93SW5wdXQ6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG4gIC8qIFdoZXRoZXIgdG8gc2hvdyB0cmFuc2FjdGlvbiBlZmZlY3RzLiBEZWZhdWx0IHRvIGJlIGZhbHNlLiAqL1xuICBzaG93RWZmZWN0czogb3B0aW9uYWwoYm9vbGVhbigpKSxcbiAgLyogV2hldGhlciB0byBzaG93IHRyYW5zYWN0aW9uIGV2ZW50cy4gRGVmYXVsdCB0byBiZSBmYWxzZS4gKi9cbiAgc2hvd0V2ZW50czogb3B0aW9uYWwoYm9vbGVhbigpKSxcbiAgLyogV2hldGhlciB0byBzaG93IG9iamVjdCBjaGFuZ2VzLiBEZWZhdWx0IHRvIGJlIGZhbHNlLiAqL1xuICBzaG93T2JqZWN0Q2hhbmdlczogb3B0aW9uYWwoYm9vbGVhbigpKSxcbiAgLyogV2hldGhlciB0byBzaG93IGNvaW4gYmFsYW5jZSBjaGFuZ2VzLiBEZWZhdWx0IHRvIGJlIGZhbHNlLiAqL1xuICBzaG93QmFsYW5jZUNoYW5nZXM6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG59KTtcblxuZXhwb3J0IHR5cGUgU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlT3B0aW9ucyA9IEluZmVyPHR5cGVvZiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2VPcHRpb25zPjtcblxuZXhwb3J0IGNvbnN0IFBhZ2luYXRlZFRyYW5zYWN0aW9uUmVzcG9uc2UgPSBvYmplY3Qoe1xuICBkYXRhOiBhcnJheShTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpLFxuICBuZXh0Q3Vyc29yOiB1bmlvbihbVHJhbnNhY3Rpb25EaWdlc3QsIGxpdGVyYWwobnVsbCldKSxcbiAgaGFzTmV4dFBhZ2U6IGJvb2xlYW4oKSxcbn0pO1xuZXhwb3J0IHR5cGUgUGFnaW5hdGVkVHJhbnNhY3Rpb25SZXNwb25zZSA9IEluZmVyPHR5cGVvZiBQYWdpbmF0ZWRUcmFuc2FjdGlvblJlc3BvbnNlPjtcbmV4cG9ydCBjb25zdCBEcnlSdW5UcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UgPSBvYmplY3Qoe1xuICBlZmZlY3RzOiBUcmFuc2FjdGlvbkVmZmVjdHMsXG4gIGV2ZW50czogVHJhbnNhY3Rpb25FdmVudHMsXG4gIG9iamVjdENoYW5nZXM6IGFycmF5KFN1aU9iamVjdENoYW5nZSksXG4gIGJhbGFuY2VDaGFuZ2VzOiBhcnJheShCYWxhbmNlQ2hhbmdlKSxcbn0pO1xuZXhwb3J0IHR5cGUgRHJ5UnVuVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlID0gSW5mZXI8dHlwZW9mIERyeVJ1blRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZT47XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhlbHBlciBmdW5jdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uKHR4OiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBTdWlUcmFuc2FjdGlvbkJsb2NrIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHR4LnRyYW5zYWN0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25EaWdlc3QodHg6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IFRyYW5zYWN0aW9uRGlnZXN0IHtcbiAgcmV0dXJuIHR4LmRpZ2VzdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uU2lnbmF0dXJlKHR4OiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB0eC50cmFuc2FjdGlvbj8udHhTaWduYXR1cmVzO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBUcmFuc2FjdGlvbkRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25TZW5kZXIodHg6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IFN1aUFkZHJlc3MgfCB1bmRlZmluZWQge1xuICByZXR1cm4gdHgudHJhbnNhY3Rpb24/LmRhdGEuc2VuZGVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0R2FzRGF0YSh0eDogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogU3VpR2FzRGF0YSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB0eC50cmFuc2FjdGlvbj8uZGF0YS5nYXNEYXRhO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25HYXNPYmplY3QodHg6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IFN1aU9iamVjdFJlZltdIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGdldEdhc0RhdGEodHgpPy5wYXltZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25HYXNQcmljZSh0eDogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKSB7XG4gIHJldHVybiBnZXRHYXNEYXRhKHR4KT8ucHJpY2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkdhc0J1ZGdldCh0eDogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKSB7XG4gIHJldHVybiBnZXRHYXNEYXRhKHR4KT8uYnVkZ2V0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hhbmdlRXBvY2hUcmFuc2FjdGlvbihkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrS2luZCk6IFN1aUNoYW5nZUVwb2NoIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGRhdGEua2luZCA9PT0gJ0NoYW5nZUVwb2NoJyA/IGRhdGEgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25zZW5zdXNDb21taXRQcm9sb2d1ZVRyYW5zYWN0aW9uKFxuICBkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrS2luZFxuKTogU3VpQ29uc2Vuc3VzQ29tbWl0UHJvbG9ndWUgfCB1bmRlZmluZWQge1xuICByZXR1cm4gZGF0YS5raW5kID09PSAnQ29uc2Vuc3VzQ29tbWl0UHJvbG9ndWUnID8gZGF0YSA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uS2luZChkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBTdWlUcmFuc2FjdGlvbkJsb2NrS2luZCB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBkYXRhLnRyYW5zYWN0aW9uPy5kYXRhLnRyYW5zYWN0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25LaW5kTmFtZShkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrS2luZCk6IFRyYW5zYWN0aW9uS2luZE5hbWUge1xuICByZXR1cm4gZGF0YS5raW5kO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24oZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja0tpbmQpOiBQcm9ncmFtbWFibGVUcmFuc2FjdGlvbiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBkYXRhLmtpbmQgPT09ICdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbicgPyBkYXRhIDogdW5kZWZpbmVkO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBFeGVjdXRpb25TdGF0dXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXhlY3V0aW9uU3RhdHVzVHlwZShkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBFeGVjdXRpb25TdGF0dXNUeXBlIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGdldEV4ZWN1dGlvblN0YXR1cyhkYXRhKT8uc3RhdHVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXhlY3V0aW9uU3RhdHVzKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IEV4ZWN1dGlvblN0YXR1cyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBnZXRUcmFuc2FjdGlvbkVmZmVjdHMoZGF0YSk/LnN0YXR1cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV4ZWN1dGlvblN0YXR1c0Vycm9yKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBnZXRFeGVjdXRpb25TdGF0dXMoZGF0YSk/LmVycm9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXhlY3V0aW9uU3RhdHVzR2FzU3VtbWFyeShcbiAgZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlIHwgVHJhbnNhY3Rpb25FZmZlY3RzXG4pOiBHYXNDb3N0U3VtbWFyeSB8IHVuZGVmaW5lZCB7XG4gIGlmIChpcyhkYXRhLCBUcmFuc2FjdGlvbkVmZmVjdHMpKSB7XG4gICAgcmV0dXJuIGRhdGEuZ2FzVXNlZDtcbiAgfVxuICByZXR1cm4gZ2V0VHJhbnNhY3Rpb25FZmZlY3RzKGRhdGEpPy5nYXNVc2VkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG90YWxHYXNVc2VkKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSB8IFRyYW5zYWN0aW9uRWZmZWN0cyk6IGJpZ2ludCB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGdhc1N1bW1hcnkgPSBnZXRFeGVjdXRpb25TdGF0dXNHYXNTdW1tYXJ5KGRhdGEpO1xuICByZXR1cm4gZ2FzU3VtbWFyeVxuICAgID8gQmlnSW50KGdhc1N1bW1hcnkuY29tcHV0YXRpb25Db3N0KSArIEJpZ0ludChnYXNTdW1tYXJ5LnN0b3JhZ2VDb3N0KSAtIEJpZ0ludChnYXNTdW1tYXJ5LnN0b3JhZ2VSZWJhdGUpXG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb3RhbEdhc1VzZWRVcHBlckJvdW5kKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSB8IFRyYW5zYWN0aW9uRWZmZWN0cyk6IGJpZ2ludCB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGdhc1N1bW1hcnkgPSBnZXRFeGVjdXRpb25TdGF0dXNHYXNTdW1tYXJ5KGRhdGEpO1xuICByZXR1cm4gZ2FzU3VtbWFyeSA/IEJpZ0ludChnYXNTdW1tYXJ5LmNvbXB1dGF0aW9uQ29zdCkgKyBCaWdJbnQoZ2FzU3VtbWFyeS5zdG9yYWdlQ29zdCkgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkVmZmVjdHMoZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogVHJhbnNhY3Rpb25FZmZlY3RzIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGRhdGEuZWZmZWN0cztcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBUcmFuc2FjdGlvbiBFZmZlY3RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXZlbnRzKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IFN1aUV2ZW50W10gfCB1bmRlZmluZWQge1xuICByZXR1cm4gZGF0YS5ldmVudHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDcmVhdGVkT2JqZWN0cyhkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBPd25lZE9iamVjdFJlZltdIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGdldFRyYW5zYWN0aW9uRWZmZWN0cyhkYXRhKT8uY3JlYXRlZDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFRyYW5zYWN0aW9uUmVzcG9uc2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRpbWVzdGFtcEZyb21UcmFuc2FjdGlvblJlc3BvbnNlKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBkYXRhLnRpbWVzdGFtcE1zID8/IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIG5ld2x5IGNyZWF0ZWQgY29pbiByZWZzIGFmdGVyIGEgc3BsaXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXdseUNyZWF0ZWRDb2luUmVmc0FmdGVyU3BsaXQoZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogU3VpT2JqZWN0UmVmW10gfCB1bmRlZmluZWQge1xuICByZXR1cm4gZ2V0VHJhbnNhY3Rpb25FZmZlY3RzKGRhdGEpPy5jcmVhdGVkPy5tYXAoKGMpID0+IGMucmVmZXJlbmNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdENoYW5nZXMoZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogU3VpT2JqZWN0Q2hhbmdlW10gfCB1bmRlZmluZWQge1xuICByZXR1cm4gZGF0YS5vYmplY3RDaGFuZ2VzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHVibGlzaGVkT2JqZWN0Q2hhbmdlcyhkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBTdWlPYmplY3RDaGFuZ2VQdWJsaXNoZWRbXSB7XG4gIHJldHVybiAoZGF0YS5vYmplY3RDaGFuZ2VzPy5maWx0ZXIoKGEpID0+IGlzKGEsIFN1aU9iamVjdENoYW5nZVB1Ymxpc2hlZCkpIGFzIFN1aU9iamVjdENoYW5nZVB1Ymxpc2hlZFtdKSA/PyBbXTtcbn1cbiJdfQ==
|
|
389
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9teXN0ZW5sYWIvdHlwZXMvdHJhbnNhY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTBZQSx3Q0FFQztBQUVELG9EQUVDO0FBRUQsMERBRUM7QUFJRCxvREFFQztBQUVELGdDQUVDO0FBRUQsMERBRUM7QUFFRCx3REFFQztBQUVELDBEQUVDO0FBRUQsOERBRUM7QUFFRCxzRkFJQztBQUVELGdEQUVDO0FBRUQsd0RBRUM7QUFFRCxnRUFFQztBQUlELHdEQUVDO0FBRUQsZ0RBRUM7QUFFRCwwREFFQztBQUVELG9FQU9DO0FBRUQsMENBS0M7QUFFRCw4REFHQztBQUVELHNEQUVDO0FBSUQsOEJBRUM7QUFFRCw4Q0FFQztBQUlELGtGQUVDO0FBS0QsOEVBRUM7QUFFRCw0Q0FFQztBQUVELDhEQUVDO0FBdGdCRCw2Q0FjcUI7QUFFckIscUNBUWtCO0FBQ2xCLHFDQUFvQztBQUNwQyx1Q0FBbUY7QUFFdEUsUUFBQSxPQUFPLEdBQUcsSUFBQSxvQkFBTSxHQUFFLENBQUM7QUFFbkIsUUFBQSxjQUFjLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQ25DLEtBQUssRUFBRSxlQUFPO0lBQ2QsY0FBYyxFQUFFLElBQUEsb0JBQU0sR0FBRTtJQUN4QixrQkFBa0IsRUFBRSxJQUFBLG9CQUFNLEdBQUU7SUFDNUIsY0FBYyxFQUFFLElBQUEsb0JBQU0sR0FBRTtJQUN4Qix3QkFBd0IsRUFBRSxJQUFBLHNCQUFRLEVBQUMsSUFBQSxvQkFBTSxHQUFFLENBQUM7Q0FDN0MsQ0FBQyxDQUFDO0FBR1UsUUFBQSwwQkFBMEIsR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDL0MsS0FBSyxFQUFFLElBQUEsb0JBQU0sR0FBRTtJQUNmLEtBQUssRUFBRSxJQUFBLG9CQUFNLEdBQUU7SUFDZixtQkFBbUIsRUFBRSxJQUFBLG9CQUFNLEdBQUU7Q0FDOUIsQ0FB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QUFDLElBQWlDO0lBQ3pELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztBQUNyQixDQUFDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUMsSUFBaUM7SUFDakUsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUM7QUFDOUMsQ0FBQztBQUVELGdGQUFnRjtBQUVoRixTQUFnQixtQ0FBbUMsQ0FBQyxJQUFpQztJQUNuRixPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksU0FBUyxDQUFDO0FBQ3ZDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGlDQUFpQyxDQUFDLElBQWlDO0lBQ2pGLE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxJQUFpQztJQUNoRSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7QUFDNUIsQ0FBQztBQUVELFNBQWdCLHlCQUF5QixDQUFDLElBQWlDO0lBQ3pFLE9BQVEsSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUEsZ0JBQUUsRUFBQyxDQUFDLEVBQUUsZ0NBQXdCLENBQUMsQ0FBZ0MsSUFBSSxFQUFFLENBQUM7QUFDbEgsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGlzLFxuICBhcnJheSxcbiAgSW5mZXIsXG4gIGxpdGVyYWwsXG4gIG51bWJlcixcbiAgb2JqZWN0LFxuICBvcHRpb25hbCxcbiAgc3RyaW5nLFxuICB1bmlvbixcbiAgYm9vbGVhbixcbiAgdHVwbGUsXG4gIGFzc2lnbixcbiAgbnVsbGFibGUsXG59IGZyb20gJ3N1cGVyc3RydWN0JztcblxuaW1wb3J0IHtcbiAgT2JqZWN0SWQsXG4gIE9iamVjdE93bmVyLFxuICBTZXF1ZW5jZU51bWJlcixcbiAgU3VpQWRkcmVzcyxcbiAgU3VpSnNvblZhbHVlLFxuICBUcmFuc2FjdGlvbkRpZ2VzdCxcbiAgVHJhbnNhY3Rpb25FdmVudERpZ2VzdCxcbn0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgU3VpRXZlbnQgfSBmcm9tICcuL2V2ZW50cyc7XG5pbXBvcnQgeyBPYmplY3REaWdlc3QsIFN1aUdhc0RhdGEsIFN1aU1vdmVQYWNrYWdlLCBTdWlPYmplY3RSZWYgfSBmcm9tICcuL29iamVjdHMnO1xuXG5leHBvcnQgY29uc3QgRXBvY2hJZCA9IHN0cmluZygpO1xuXG5leHBvcnQgY29uc3QgU3VpQ2hhbmdlRXBvY2ggPSBvYmplY3Qoe1xuICBlcG9jaDogRXBvY2hJZCxcbiAgc3RvcmFnZV9jaGFyZ2U6IG51bWJlcigpLFxuICBjb21wdXRhdGlvbl9jaGFyZ2U6IG51bWJlcigpLFxuICBzdG9yYWdlX3JlYmF0ZTogbnVtYmVyKCksXG4gIGVwb2NoX3N0YXJ0X3RpbWVzdGFtcF9tczogb3B0aW9uYWwobnVtYmVyKCkpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlDaGFuZ2VFcG9jaCA9IEluZmVyPHR5cGVvZiBTdWlDaGFuZ2VFcG9jaD47XG5cbmV4cG9ydCBjb25zdCBTdWlDb25zZW5zdXNDb21taXRQcm9sb2d1ZSA9IG9iamVjdCh7XG4gIGVwb2NoOiBudW1iZXIoKSxcbiAgcm91bmQ6IG51bWJlcigpLFxuICBjb21taXRfdGltZXN0YW1wX21zOiBudW1iZXIoKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpQ29uc2Vuc3VzQ29tbWl0UHJvbG9ndWUgPSBJbmZlcjx0eXBlb2YgU3VpQ29uc2Vuc3VzQ29tbWl0UHJvbG9ndWU+O1xuXG5leHBvcnQgY29uc3QgR2VuZXNpcyA9IG9iamVjdCh7XG4gIG9iamVjdHM6IGFycmF5KE9iamVjdElkKSxcbn0pO1xuZXhwb3J0IHR5cGUgR2VuZXNpcyA9IEluZmVyPHR5cGVvZiBHZW5lc2lzPjtcblxuZXhwb3J0IGNvbnN0IFN1aUFyZ3VtZW50ID0gdW5pb24oW1xuICBsaXRlcmFsKCdHYXNDb2luJyksXG4gIG9iamVjdCh7IElucHV0OiBudW1iZXIoKSB9KSxcbiAgb2JqZWN0KHsgUmVzdWx0OiBudW1iZXIoKSB9KSxcbiAgb2JqZWN0KHsgTmVzdGVkUmVzdWx0OiB0dXBsZShbbnVtYmVyKCksIG51bWJlcigpXSkgfSksXG5dKTtcbmV4cG9ydCB0eXBlIFN1aUFyZ3VtZW50ID0gSW5mZXI8dHlwZW9mIFN1aUFyZ3VtZW50PjtcblxuZXhwb3J0IGNvbnN0IE1vdmVDYWxsU3VpVHJhbnNhY3Rpb24gPSBvYmplY3Qoe1xuICBhcmd1bWVudHM6IG9wdGlvbmFsKGFycmF5KFN1aUFyZ3VtZW50KSksXG4gIHR5cGVfYXJndW1lbnRzOiBvcHRpb25hbChhcnJheShzdHJpbmcoKSkpLFxuICBwYWNrYWdlOiBPYmplY3RJZCxcbiAgbW9kdWxlOiBzdHJpbmcoKSxcbiAgZnVuY3Rpb246IHN0cmluZygpLFxufSk7XG5leHBvcnQgdHlwZSBNb3ZlQ2FsbFN1aVRyYW5zYWN0aW9uID0gSW5mZXI8dHlwZW9mIE1vdmVDYWxsU3VpVHJhbnNhY3Rpb24+O1xuXG5leHBvcnQgY29uc3QgU3VpVHJhbnNhY3Rpb24gPSB1bmlvbihbXG4gIG9iamVjdCh7IE1vdmVDYWxsOiBNb3ZlQ2FsbFN1aVRyYW5zYWN0aW9uIH0pLFxuICBvYmplY3QoeyBUcmFuc2Zlck9iamVjdHM6IHR1cGxlKFthcnJheShTdWlBcmd1bWVudCksIFN1aUFyZ3VtZW50XSkgfSksXG4gIG9iamVjdCh7IFNwbGl0Q29pbnM6IHR1cGxlKFtTdWlBcmd1bWVudCwgYXJyYXkoU3VpQXJndW1lbnQpXSkgfSksXG4gIG9iamVjdCh7IE1lcmdlQ29pbnM6IHR1cGxlKFtTdWlBcmd1bWVudCwgYXJyYXkoU3VpQXJndW1lbnQpXSkgfSksXG4gIG9iamVjdCh7IFB1Ymxpc2g6IFN1aU1vdmVQYWNrYWdlIH0pLFxuICBvYmplY3QoeyBNYWtlTW92ZVZlYzogdHVwbGUoW251bGxhYmxlKHN0cmluZygpKSwgYXJyYXkoU3VpQXJndW1lbnQpXSkgfSksXG5dKTtcblxuZXhwb3J0IGNvbnN0IFN1aUNhbGxBcmcgPSB1bmlvbihbXG4gIG9iamVjdCh7XG4gICAgdHlwZTogbGl0ZXJhbCgncHVyZScpLFxuICAgIHZhbHVlVHlwZTogb3B0aW9uYWwoc3RyaW5nKCkpLFxuICAgIHZhbHVlOiBTdWlKc29uVmFsdWUsXG4gIH0pLFxuICBvYmplY3Qoe1xuICAgIHR5cGU6IGxpdGVyYWwoJ29iamVjdCcpLFxuICAgIG9iamVjdFR5cGU6IGxpdGVyYWwoJ2ltbU9yT3duZWRPYmplY3QnKSxcbiAgICBvYmplY3RJZDogT2JqZWN0SWQsXG4gICAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gICAgZGlnZXN0OiBPYmplY3REaWdlc3QsXG4gIH0pLFxuICBvYmplY3Qoe1xuICAgIHR5cGU6IGxpdGVyYWwoJ29iamVjdCcpLFxuICAgIG9iamVjdFR5cGU6IGxpdGVyYWwoJ3NoYXJlZE9iamVjdCcpLFxuICAgIG9iamVjdElkOiBPYmplY3RJZCxcbiAgICBpbml0aWFsU2hhcmVkVmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gICAgbXV0YWJsZTogYm9vbGVhbigpLFxuICB9KSxcbl0pO1xuZXhwb3J0IHR5cGUgU3VpQ2FsbEFyZyA9IEluZmVyPHR5cGVvZiBTdWlDYWxsQXJnPjtcblxuZXhwb3J0IGNvbnN0IFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uID0gb2JqZWN0KHtcbiAgdHJhbnNhY3Rpb25zOiBhcnJheShTdWlUcmFuc2FjdGlvbiksXG4gIGlucHV0czogYXJyYXkoU3VpQ2FsbEFyZyksXG59KTtcbmV4cG9ydCB0eXBlIFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uID0gSW5mZXI8dHlwZW9mIFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uPjtcbmV4cG9ydCB0eXBlIFN1aVRyYW5zYWN0aW9uID0gSW5mZXI8dHlwZW9mIFN1aVRyYW5zYWN0aW9uPjtcblxuLyoqXG4gKiAxLiBXYWl0Rm9yRWZmZWN0c0NlcnQ6IHdhaXRzIGZvciBUcmFuc2FjdGlvbkVmZmVjdHNDZXJ0IGFuZCB0aGVuIHJldHVybnMgdG8gdGhlIGNsaWVudC5cbiAqICAgIFRoaXMgbW9kZSBpcyBhIHByb3h5IGZvciB0cmFuc2FjdGlvbiBmaW5hbGl0eS5cbiAqIDIuIFdhaXRGb3JMb2NhbEV4ZWN1dGlvbjogd2FpdHMgZm9yIFRyYW5zYWN0aW9uRWZmZWN0c0NlcnQgYW5kIG1ha2VzIHN1cmUgdGhlIG5vZGVcbiAqICAgIGV4ZWN1dGVkIHRoZSB0cmFuc2FjdGlvbiBsb2NhbGx5IGJlZm9yZSByZXR1cm5pbmcgdG8gdGhlIGNsaWVudC4gVGhlIGxvY2FsIGV4ZWN1dGlvblxuICogICAgbWFrZXMgc3VyZSB0aGlzIG5vZGUgaXMgYXdhcmUgb2YgdGhpcyB0cmFuc2FjdGlvbiB3aGVuIHRoZSBjbGllbnQgZmlyZXMgc3Vic2VxdWVudCBxdWVyaWVzLlxuICogICAgSG93ZXZlciwgaWYgdGhlIG5vZGUgZmFpbHMgdG8gZXhlY3V0ZSB0aGUgdHJhbnNhY3Rpb24gbG9jYWxseSBpbiBhIHRpbWVseSBtYW5uZXIsXG4gKiAgICBhIGJvb2wgdHlwZSBpbiB0aGUgcmVzcG9uc2UgaXMgc2V0IHRvIGZhbHNlIHRvIGluZGljYXRlIHRoZSBjYXNlLlxuICovXG5leHBvcnQgdHlwZSBFeGVjdXRlVHJhbnNhY3Rpb25SZXF1ZXN0VHlwZSA9ICdXYWl0Rm9yRWZmZWN0c0NlcnQnIHwgJ1dhaXRGb3JMb2NhbEV4ZWN1dGlvbic7XG5cbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uS2luZE5hbWUgPSAnQ2hhbmdlRXBvY2gnIHwgJ0NvbnNlbnN1c0NvbW1pdFByb2xvZ3VlJyB8ICdHZW5lc2lzJyB8ICdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbic7XG5cbmV4cG9ydCBjb25zdCBTdWlUcmFuc2FjdGlvbkJsb2NrS2luZCA9IHVuaW9uKFtcbiAgYXNzaWduKFN1aUNoYW5nZUVwb2NoLCBvYmplY3QoeyBraW5kOiBsaXRlcmFsKCdDaGFuZ2VFcG9jaCcpIH0pKSxcbiAgYXNzaWduKFxuICAgIFN1aUNvbnNlbnN1c0NvbW1pdFByb2xvZ3VlLFxuICAgIG9iamVjdCh7XG4gICAgICBraW5kOiBsaXRlcmFsKCdDb25zZW5zdXNDb21taXRQcm9sb2d1ZScpLFxuICAgIH0pXG4gICksXG4gIGFzc2lnbihHZW5lc2lzLCBvYmplY3QoeyBraW5kOiBsaXRlcmFsKCdHZW5lc2lzJykgfSkpLFxuICBhc3NpZ24oUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24sIG9iamVjdCh7IGtpbmQ6IGxpdGVyYWwoJ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uJykgfSkpLFxuXSk7XG5leHBvcnQgdHlwZSBTdWlUcmFuc2FjdGlvbkJsb2NrS2luZCA9IEluZmVyPHR5cGVvZiBTdWlUcmFuc2FjdGlvbkJsb2NrS2luZD47XG5cbmV4cG9ydCBjb25zdCBTdWlUcmFuc2FjdGlvbkJsb2NrRGF0YSA9IG9iamVjdCh7XG4gIC8vIEV2ZW50dWFsbHkgdGhpcyB3aWxsIGJlY29tZSB1bmlvbihsaXRlcmFsKCd2MScpLCBsaXRlcmFsKCd2MicpLCAuLi4pXG4gIG1lc3NhZ2VWZXJzaW9uOiBsaXRlcmFsKCd2MScpLFxuICB0cmFuc2FjdGlvbjogU3VpVHJhbnNhY3Rpb25CbG9ja0tpbmQsXG4gIHNlbmRlcjogU3VpQWRkcmVzcyxcbiAgZ2FzRGF0YTogU3VpR2FzRGF0YSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpVHJhbnNhY3Rpb25CbG9ja0RhdGEgPSBJbmZlcjx0eXBlb2YgU3VpVHJhbnNhY3Rpb25CbG9ja0RhdGE+O1xuXG5leHBvcnQgY29uc3QgQXV0aG9yaXR5U2lnbmF0dXJlID0gc3RyaW5nKCk7XG5leHBvcnQgY29uc3QgR2VuZXJpY0F1dGhvcml0eVNpZ25hdHVyZSA9IHVuaW9uKFtBdXRob3JpdHlTaWduYXR1cmUsIGFycmF5KEF1dGhvcml0eVNpZ25hdHVyZSldKTtcblxuZXhwb3J0IGNvbnN0IEF1dGhvcml0eVF1b3J1bVNpZ25JbmZvID0gb2JqZWN0KHtcbiAgZXBvY2g6IEVwb2NoSWQsXG4gIHNpZ25hdHVyZTogR2VuZXJpY0F1dGhvcml0eVNpZ25hdHVyZSxcbiAgc2lnbmVyc19tYXA6IGFycmF5KG51bWJlcigpKSxcbn0pO1xuZXhwb3J0IHR5cGUgQXV0aG9yaXR5UXVvcnVtU2lnbkluZm8gPSBJbmZlcjx0eXBlb2YgQXV0aG9yaXR5UXVvcnVtU2lnbkluZm8+O1xuXG5leHBvcnQgY29uc3QgR2FzQ29zdFN1bW1hcnkgPSBvYmplY3Qoe1xuICBjb21wdXRhdGlvbkNvc3Q6IHN0cmluZygpLFxuICBzdG9yYWdlQ29zdDogc3RyaW5nKCksXG4gIHN0b3JhZ2VSZWJhdGU6IHN0cmluZygpLFxuICBub25SZWZ1bmRhYmxlU3RvcmFnZUZlZTogc3RyaW5nKCksXG59KTtcbmV4cG9ydCB0eXBlIEdhc0Nvc3RTdW1tYXJ5ID0gSW5mZXI8dHlwZW9mIEdhc0Nvc3RTdW1tYXJ5PjtcblxuZXhwb3J0IGNvbnN0IEV4ZWN1dGlvblN0YXR1c1R5cGUgPSB1bmlvbihbbGl0ZXJhbCgnc3VjY2VzcycpLCBsaXRlcmFsKCdmYWlsdXJlJyldKTtcbmV4cG9ydCB0eXBlIEV4ZWN1dGlvblN0YXR1c1R5cGUgPSBJbmZlcjx0eXBlb2YgRXhlY3V0aW9uU3RhdHVzVHlwZT47XG5cbmV4cG9ydCBjb25zdCBFeGVjdXRpb25TdGF0dXMgPSBvYmplY3Qoe1xuICBzdGF0dXM6IEV4ZWN1dGlvblN0YXR1c1R5cGUsXG4gIGVycm9yOiBvcHRpb25hbChzdHJpbmcoKSksXG59KTtcbmV4cG9ydCB0eXBlIEV4ZWN1dGlvblN0YXR1cyA9IEluZmVyPHR5cGVvZiBFeGVjdXRpb25TdGF0dXM+O1xuXG5leHBvcnQgY29uc3QgT3duZWRPYmplY3RSZWYgPSBvYmplY3Qoe1xuICBvd25lcjogT2JqZWN0T3duZXIsXG4gIHJlZmVyZW5jZTogU3VpT2JqZWN0UmVmLFxufSk7XG5leHBvcnQgdHlwZSBPd25lZE9iamVjdFJlZiA9IEluZmVyPHR5cGVvZiBPd25lZE9iamVjdFJlZj47XG5leHBvcnQgY29uc3QgVHJhbnNhY3Rpb25FZmZlY3RzTW9kaWZpZWRBdFZlcnNpb25zID0gb2JqZWN0KHtcbiAgb2JqZWN0SWQ6IE9iamVjdElkLFxuICBzZXF1ZW5jZU51bWJlcjogU2VxdWVuY2VOdW1iZXIsXG59KTtcblxuZXhwb3J0IGNvbnN0IFRyYW5zYWN0aW9uRWZmZWN0cyA9IG9iamVjdCh7XG4gIC8vIEV2ZW50dWFsbHkgdGhpcyB3aWxsIGJlY29tZSB1bmlvbihsaXRlcmFsKCd2MScpLCBsaXRlcmFsKCd2MicpLCAuLi4pXG4gIG1lc3NhZ2VWZXJzaW9uOiBsaXRlcmFsKCd2MScpLFxuXG4gIC8qKiBUaGUgc3RhdHVzIG9mIHRoZSBleGVjdXRpb24gKi9cbiAgc3RhdHVzOiBFeGVjdXRpb25TdGF0dXMsXG4gIC8qKiBUaGUgZXBvY2ggd2hlbiB0aGlzIHRyYW5zYWN0aW9uIHdhcyBleGVjdXRlZCAqL1xuICBleGVjdXRlZEVwb2NoOiBFcG9jaElkLFxuICAvKiogVGhlIHZlcnNpb24gdGhhdCBldmVyeSBtb2RpZmllZCAobXV0YXRlZCBvciBkZWxldGVkKSBvYmplY3QgaGFkIGJlZm9yZSBpdCB3YXMgbW9kaWZpZWQgYnkgdGhpcyB0cmFuc2FjdGlvbi4gKiovXG4gIG1vZGlmaWVkQXRWZXJzaW9uczogb3B0aW9uYWwoYXJyYXkoVHJhbnNhY3Rpb25FZmZlY3RzTW9kaWZpZWRBdFZlcnNpb25zKSksXG4gIGdhc1VzZWQ6IEdhc0Nvc3RTdW1tYXJ5LFxuICAvKiogVGhlIG9iamVjdCByZWZlcmVuY2VzIG9mIHRoZSBzaGFyZWQgb2JqZWN0cyB1c2VkIGluIHRoaXMgdHJhbnNhY3Rpb24uIEVtcHR5IGlmIG5vIHNoYXJlZCBvYmplY3RzIHdlcmUgdXNlZC4gKi9cbiAgc2hhcmVkT2JqZWN0czogb3B0aW9uYWwoYXJyYXkoU3VpT2JqZWN0UmVmKSksXG4gIC8qKiBUaGUgdHJhbnNhY3Rpb24gZGlnZXN0ICovXG4gIHRyYW5zYWN0aW9uRGlnZXN0OiBUcmFuc2FjdGlvbkRpZ2VzdCxcbiAgLyoqIE9iamVjdFJlZiBhbmQgb3duZXIgb2YgbmV3IG9iamVjdHMgY3JlYXRlZCAqL1xuICBjcmVhdGVkOiBvcHRpb25hbChhcnJheShPd25lZE9iamVjdFJlZikpLFxuICAvKiogT2JqZWN0UmVmIGFuZCBvd25lciBvZiBtdXRhdGVkIG9iamVjdHMsIGluY2x1ZGluZyBnYXMgb2JqZWN0ICovXG4gIG11dGF0ZWQ6IG9wdGlvbmFsKGFycmF5KE93bmVkT2JqZWN0UmVmKSksXG4gIC8qKlxuICAgKiBPYmplY3RSZWYgYW5kIG93bmVyIG9mIG9iamVjdHMgdGhhdCBhcmUgdW53cmFwcGVkIGluIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqIFVud3JhcHBlZCBvYmplY3RzIGFyZSBvYmplY3RzIHRoYXQgd2VyZSB3cmFwcGVkIGludG8gb3RoZXIgb2JqZWN0cyBpbiB0aGUgcGFzdCxcbiAgICogYW5kIGp1c3QgZ290IGV4dHJhY3RlZCBvdXQuXG4gICAqL1xuICB1bndyYXBwZWQ6IG9wdGlvbmFsKGFycmF5KE93bmVkT2JqZWN0UmVmKSksXG4gIC8qKiBPYmplY3QgUmVmcyBvZiBvYmplY3RzIG5vdyBkZWxldGVkICh0aGUgb2xkIHJlZnMpICovXG4gIGRlbGV0ZWQ6IG9wdGlvbmFsKGFycmF5KFN1aU9iamVjdFJlZikpLFxuICAvKiogT2JqZWN0IFJlZnMgb2Ygb2JqZWN0cyBub3cgZGVsZXRlZCAodGhlIG9sZCByZWZzKSAqL1xuICB1bndyYXBwZWRfdGhlbl9kZWxldGVkOiBvcHRpb25hbChhcnJheShTdWlPYmplY3RSZWYpKSxcbiAgLyoqIE9iamVjdCByZWZzIG9mIG9iamVjdHMgbm93IHdyYXBwZWQgaW4gb3RoZXIgb2JqZWN0cyAqL1xuICB3cmFwcGVkOiBvcHRpb25hbChhcnJheShTdWlPYmplY3RSZWYpKSxcbiAgLyoqXG4gICAqIFRoZSB1cGRhdGVkIGdhcyBvYmplY3QgcmVmZXJlbmNlLiBIYXZlIGEgZGVkaWNhdGVkIGZpZWxkIGZvciBjb252ZW5pZW50IGFjY2Vzcy5cbiAgICogSXQncyBhbHNvIGluY2x1ZGVkIGluIG11dGF0ZWQuXG4gICAqL1xuICBnYXNPYmplY3Q6IE93bmVkT2JqZWN0UmVmLFxuICAvKiogVGhlIGV2ZW50cyBlbWl0dGVkIGR1cmluZyBleGVjdXRpb24uIE5vdGUgdGhhdCBvbmx5IHN1Y2Nlc3NmdWwgdHJhbnNhY3Rpb25zIGVtaXQgZXZlbnRzICovXG4gIGV2ZW50c0RpZ2VzdDogb3B0aW9uYWwoVHJhbnNhY3Rpb25FdmVudERpZ2VzdCksXG4gIC8qKiBUaGUgc2V0IG9mIHRyYW5zYWN0aW9uIGRpZ2VzdHMgdGhpcyB0cmFuc2FjdGlvbiBkZXBlbmRzIG9uICovXG4gIGRlcGVuZGVuY2llczogb3B0aW9uYWwoYXJyYXkoVHJhbnNhY3Rpb25EaWdlc3QpKSxcbn0pO1xuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25FZmZlY3RzID0gSW5mZXI8dHlwZW9mIFRyYW5zYWN0aW9uRWZmZWN0cz47XG5cbmV4cG9ydCBjb25zdCBUcmFuc2FjdGlvbkV2ZW50cyA9IGFycmF5KFN1aUV2ZW50KTtcbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uRXZlbnRzID0gSW5mZXI8dHlwZW9mIFRyYW5zYWN0aW9uRXZlbnRzPjtcblxuY29uc3QgUmV0dXJuVmFsdWVUeXBlID0gdHVwbGUoW2FycmF5KG51bWJlcigpKSwgc3RyaW5nKCldKTtcbmNvbnN0IE11dGFibGVSZWZlcmVuY2VPdXRwdXRUeXBlID0gdHVwbGUoW1N1aUFyZ3VtZW50LCBhcnJheShudW1iZXIoKSksIHN0cmluZygpXSk7XG5jb25zdCBFeGVjdXRpb25SZXN1bHRUeXBlID0gb2JqZWN0KHtcbiAgbXV0YWJsZVJlZmVyZW5jZU91dHB1dHM6IG9wdGlvbmFsKGFycmF5KE11dGFibGVSZWZlcmVuY2VPdXRwdXRUeXBlKSksXG4gIHJldHVyblZhbHVlczogb3B0aW9uYWwoYXJyYXkoUmV0dXJuVmFsdWVUeXBlKSksXG59KTtcblxuZXhwb3J0IGNvbnN0IERldkluc3BlY3RSZXN1bHRzID0gb2JqZWN0KHtcbiAgZWZmZWN0czogVHJhbnNhY3Rpb25FZmZlY3RzLFxuICBldmVudHM6IFRyYW5zYWN0aW9uRXZlbnRzLFxuICByZXN1bHRzOiBvcHRpb25hbChhcnJheShFeGVjdXRpb25SZXN1bHRUeXBlKSksXG4gIGVycm9yOiBvcHRpb25hbChzdHJpbmcoKSksXG59KTtcbmV4cG9ydCB0eXBlIERldkluc3BlY3RSZXN1bHRzID0gSW5mZXI8dHlwZW9mIERldkluc3BlY3RSZXN1bHRzPjtcblxuZXhwb3J0IHR5cGUgU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlUXVlcnkgPSB7XG4gIGZpbHRlcj86IFRyYW5zYWN0aW9uRmlsdGVyO1xuICBvcHRpb25zPzogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlT3B0aW9ucztcbn07XG5cbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uRmlsdGVyID1cbiAgfCB7XG4gICAgICBNb3ZlRnVuY3Rpb246IHtcbiAgICAgICAgcGFja2FnZTogT2JqZWN0SWQ7XG4gICAgICAgIG1vZHVsZTogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgZnVuY3Rpb246IHN0cmluZyB8IG51bGw7XG4gICAgICB9O1xuICAgIH1cbiAgfCB7IElucHV0T2JqZWN0OiBPYmplY3RJZCB9XG4gIHwgeyBDaGFuZ2VkT2JqZWN0OiBPYmplY3RJZCB9XG4gIHwgeyBGcm9tQWRkcmVzczogU3VpQWRkcmVzcyB9XG4gIHwgeyBUb0FkZHJlc3M6IFN1aUFkZHJlc3MgfTtcblxuZXhwb3J0IHR5cGUgRW1wdHlTaWduSW5mbyA9IG9iamVjdDtcbmV4cG9ydCB0eXBlIEF1dGhvcml0eU5hbWUgPSBJbmZlcjx0eXBlb2YgQXV0aG9yaXR5TmFtZT47XG5leHBvcnQgY29uc3QgQXV0aG9yaXR5TmFtZSA9IHN0cmluZygpO1xuXG5leHBvcnQgY29uc3QgU3VpVHJhbnNhY3Rpb25CbG9jayA9IG9iamVjdCh7XG4gIGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tEYXRhLFxuICB0eFNpZ25hdHVyZXM6IGFycmF5KHN0cmluZygpKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpVHJhbnNhY3Rpb25CbG9jayA9IEluZmVyPHR5cGVvZiBTdWlUcmFuc2FjdGlvbkJsb2NrPjtcblxuZXhwb3J0IGNvbnN0IFN1aU9iamVjdENoYW5nZVB1Ymxpc2hlZCA9IG9iamVjdCh7XG4gIHR5cGU6IGxpdGVyYWwoJ3B1Ymxpc2hlZCcpLFxuICBwYWNrYWdlSWQ6IE9iamVjdElkLFxuICB2ZXJzaW9uOiBTZXF1ZW5jZU51bWJlcixcbiAgZGlnZXN0OiBPYmplY3REaWdlc3QsXG4gIG1vZHVsZXM6IGFycmF5KHN0cmluZygpKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0Q2hhbmdlUHVibGlzaGVkID0gSW5mZXI8dHlwZW9mIFN1aU9iamVjdENoYW5nZVB1Ymxpc2hlZD47XG5cbmV4cG9ydCBjb25zdCBTdWlPYmplY3RDaGFuZ2VUcmFuc2ZlcnJlZCA9IG9iamVjdCh7XG4gIHR5cGU6IGxpdGVyYWwoJ3RyYW5zZmVycmVkJyksXG4gIHNlbmRlcjogU3VpQWRkcmVzcyxcbiAgcmVjaXBpZW50OiBPYmplY3RPd25lcixcbiAgb2JqZWN0VHlwZTogc3RyaW5nKCksXG4gIG9iamVjdElkOiBPYmplY3RJZCxcbiAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gIGRpZ2VzdDogT2JqZWN0RGlnZXN0LFxufSk7XG5leHBvcnQgdHlwZSBTdWlPYmplY3RDaGFuZ2VUcmFuc2ZlcnJlZCA9IEluZmVyPHR5cGVvZiBTdWlPYmplY3RDaGFuZ2VUcmFuc2ZlcnJlZD47XG5cbmV4cG9ydCBjb25zdCBTdWlPYmplY3RDaGFuZ2VNdXRhdGVkID0gb2JqZWN0KHtcbiAgdHlwZTogbGl0ZXJhbCgnbXV0YXRlZCcpLFxuICBzZW5kZXI6IFN1aUFkZHJlc3MsXG4gIG93bmVyOiBPYmplY3RPd25lcixcbiAgb2JqZWN0VHlwZTogc3RyaW5nKCksXG4gIG9iamVjdElkOiBPYmplY3RJZCxcbiAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gIHByZXZpb3VzVmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gIGRpZ2VzdDogT2JqZWN0RGlnZXN0LFxufSk7XG5leHBvcnQgdHlwZSBTdWlPYmplY3RDaGFuZ2VNdXRhdGVkID0gSW5mZXI8dHlwZW9mIFN1aU9iamVjdENoYW5nZU11dGF0ZWQ+O1xuXG5leHBvcnQgY29uc3QgU3VpT2JqZWN0Q2hhbmdlRGVsZXRlZCA9IG9iamVjdCh7XG4gIHR5cGU6IGxpdGVyYWwoJ2RlbGV0ZWQnKSxcbiAgc2VuZGVyOiBTdWlBZGRyZXNzLFxuICBvYmplY3RUeXBlOiBzdHJpbmcoKSxcbiAgb2JqZWN0SWQ6IE9iamVjdElkLFxuICB2ZXJzaW9uOiBTZXF1ZW5jZU51bWJlcixcbn0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0Q2hhbmdlRGVsZXRlZCA9IEluZmVyPHR5cGVvZiBTdWlPYmplY3RDaGFuZ2VEZWxldGVkPjtcblxuZXhwb3J0IGNvbnN0IFN1aU9iamVjdENoYW5nZVdyYXBwZWQgPSBvYmplY3Qoe1xuICB0eXBlOiBsaXRlcmFsKCd3cmFwcGVkJyksXG4gIHNlbmRlcjogU3VpQWRkcmVzcyxcbiAgb2JqZWN0VHlwZTogc3RyaW5nKCksXG4gIG9iamVjdElkOiBPYmplY3RJZCxcbiAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG59KTtcbmV4cG9ydCB0eXBlIFN1aU9iamVjdENoYW5nZVdyYXBwZWQgPSBJbmZlcjx0eXBlb2YgU3VpT2JqZWN0Q2hhbmdlV3JhcHBlZD47XG5cbmV4cG9ydCBjb25zdCBTdWlPYmplY3RDaGFuZ2VDcmVhdGVkID0gb2JqZWN0KHtcbiAgdHlwZTogbGl0ZXJhbCgnY3JlYXRlZCcpLFxuICBzZW5kZXI6IFN1aUFkZHJlc3MsXG4gIG93bmVyOiBPYmplY3RPd25lcixcbiAgb2JqZWN0VHlwZTogc3RyaW5nKCksXG4gIG9iamVjdElkOiBPYmplY3RJZCxcbiAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gIGRpZ2VzdDogT2JqZWN0RGlnZXN0LFxufSk7XG5leHBvcnQgdHlwZSBTdWlPYmplY3RDaGFuZ2VDcmVhdGVkID0gSW5mZXI8dHlwZW9mIFN1aU9iamVjdENoYW5nZUNyZWF0ZWQ+O1xuXG5leHBvcnQgY29uc3QgU3VpT2JqZWN0Q2hhbmdlID0gdW5pb24oW1xuICBTdWlPYmplY3RDaGFuZ2VQdWJsaXNoZWQsXG4gIFN1aU9iamVjdENoYW5nZVRyYW5zZmVycmVkLFxuICBTdWlPYmplY3RDaGFuZ2VNdXRhdGVkLFxuICBTdWlPYmplY3RDaGFuZ2VEZWxldGVkLFxuICBTdWlPYmplY3RDaGFuZ2VXcmFwcGVkLFxuICBTdWlPYmplY3RDaGFuZ2VDcmVhdGVkLFxuXSk7XG5leHBvcnQgdHlwZSBTdWlPYmplY3RDaGFuZ2UgPSBJbmZlcjx0eXBlb2YgU3VpT2JqZWN0Q2hhbmdlPjtcblxuZXhwb3J0IGNvbnN0IEJhbGFuY2VDaGFuZ2UgPSBvYmplY3Qoe1xuICBvd25lcjogT2JqZWN0T3duZXIsXG4gIGNvaW5UeXBlOiBzdHJpbmcoKSxcbiAgLyogQ29pbiBiYWxhbmNlIGNoYW5nZShwb3NpdGl2ZSBtZWFucyByZWNlaXZlLCBuZWdhdGl2ZSBtZWFucyBzZW5kKSAqL1xuICBhbW91bnQ6IHN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UgPSBvYmplY3Qoe1xuICBkaWdlc3Q6IFRyYW5zYWN0aW9uRGlnZXN0LFxuICB0cmFuc2FjdGlvbjogb3B0aW9uYWwoU3VpVHJhbnNhY3Rpb25CbG9jayksXG4gIGVmZmVjdHM6IG9wdGlvbmFsKFRyYW5zYWN0aW9uRWZmZWN0cyksXG4gIGV2ZW50czogb3B0aW9uYWwoVHJhbnNhY3Rpb25FdmVudHMpLFxuICB0aW1lc3RhbXBNczogb3B0aW9uYWwobnVtYmVyKCkpLFxuICBjaGVja3BvaW50OiBvcHRpb25hbChudW1iZXIoKSksXG4gIGNvbmZpcm1lZExvY2FsRXhlY3V0aW9uOiBvcHRpb25hbChib29sZWFuKCkpLFxuICBvYmplY3RDaGFuZ2VzOiBvcHRpb25hbChhcnJheShTdWlPYmplY3RDaGFuZ2UpKSxcbiAgYmFsYW5jZUNoYW5nZXM6IG9wdGlvbmFsKGFycmF5KEJhbGFuY2VDaGFuZ2UpKSxcbiAgLyogRXJyb3JzIHRoYXQgb2NjdXJyZWQgaW4gZmV0Y2hpbmcvc2VyaWFsaXppbmcgdGhlIHRyYW5zYWN0aW9uLiAqL1xuICBlcnJvcnM6IG9wdGlvbmFsKGFycmF5KHN0cmluZygpKSksXG59KTtcbmV4cG9ydCB0eXBlIFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSA9IEluZmVyPHR5cGVvZiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2U+O1xuXG5leHBvcnQgY29uc3QgU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlT3B0aW9ucyA9IG9iamVjdCh7XG4gIC8qIFdoZXRoZXIgdG8gc2hvdyB0cmFuc2FjdGlvbiBpbnB1dCBkYXRhLiBEZWZhdWx0IHRvIGJlIGZhbHNlLiAqL1xuICBzaG93SW5wdXQ6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG4gIC8qIFdoZXRoZXIgdG8gc2hvdyB0cmFuc2FjdGlvbiBlZmZlY3RzLiBEZWZhdWx0IHRvIGJlIGZhbHNlLiAqL1xuICBzaG93RWZmZWN0czogb3B0aW9uYWwoYm9vbGVhbigpKSxcbiAgLyogV2hldGhlciB0byBzaG93IHRyYW5zYWN0aW9uIGV2ZW50cy4gRGVmYXVsdCB0byBiZSBmYWxzZS4gKi9cbiAgc2hvd0V2ZW50czogb3B0aW9uYWwoYm9vbGVhbigpKSxcbiAgLyogV2hldGhlciB0byBzaG93IG9iamVjdCBjaGFuZ2VzLiBEZWZhdWx0IHRvIGJlIGZhbHNlLiAqL1xuICBzaG93T2JqZWN0Q2hhbmdlczogb3B0aW9uYWwoYm9vbGVhbigpKSxcbiAgLyogV2hldGhlciB0byBzaG93IGNvaW4gYmFsYW5jZSBjaGFuZ2VzLiBEZWZhdWx0IHRvIGJlIGZhbHNlLiAqL1xuICBzaG93QmFsYW5jZUNoYW5nZXM6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG59KTtcblxuZXhwb3J0IHR5cGUgU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlT3B0aW9ucyA9IEluZmVyPHR5cGVvZiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2VPcHRpb25zPjtcblxuZXhwb3J0IGNvbnN0IFBhZ2luYXRlZFRyYW5zYWN0aW9uUmVzcG9uc2UgPSBvYmplY3Qoe1xuICBkYXRhOiBhcnJheShTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpLFxuICBuZXh0Q3Vyc29yOiB1bmlvbihbVHJhbnNhY3Rpb25EaWdlc3QsIGxpdGVyYWwobnVsbCldKSxcbiAgaGFzTmV4dFBhZ2U6IGJvb2xlYW4oKSxcbn0pO1xuZXhwb3J0IHR5cGUgUGFnaW5hdGVkVHJhbnNhY3Rpb25SZXNwb25zZSA9IEluZmVyPHR5cGVvZiBQYWdpbmF0ZWRUcmFuc2FjdGlvblJlc3BvbnNlPjtcbmV4cG9ydCBjb25zdCBEcnlSdW5UcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UgPSBvYmplY3Qoe1xuICBlZmZlY3RzOiBUcmFuc2FjdGlvbkVmZmVjdHMsXG4gIGV2ZW50czogVHJhbnNhY3Rpb25FdmVudHMsXG4gIG9iamVjdENoYW5nZXM6IGFycmF5KFN1aU9iamVjdENoYW5nZSksXG4gIGJhbGFuY2VDaGFuZ2VzOiBhcnJheShCYWxhbmNlQ2hhbmdlKSxcbn0pO1xuZXhwb3J0IHR5cGUgRHJ5UnVuVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlID0gSW5mZXI8dHlwZW9mIERyeVJ1blRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZT47XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhlbHBlciBmdW5jdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uKHR4OiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBTdWlUcmFuc2FjdGlvbkJsb2NrIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHR4LnRyYW5zYWN0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25EaWdlc3QodHg6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IFRyYW5zYWN0aW9uRGlnZXN0IHtcbiAgcmV0dXJuIHR4LmRpZ2VzdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uU2lnbmF0dXJlKHR4OiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB0eC50cmFuc2FjdGlvbj8udHhTaWduYXR1cmVzO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBUcmFuc2FjdGlvbkRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25TZW5kZXIodHg6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IFN1aUFkZHJlc3MgfCB1bmRlZmluZWQge1xuICByZXR1cm4gdHgudHJhbnNhY3Rpb24/LmRhdGEuc2VuZGVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0R2FzRGF0YSh0eDogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogU3VpR2FzRGF0YSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB0eC50cmFuc2FjdGlvbj8uZGF0YS5nYXNEYXRhO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25HYXNPYmplY3QodHg6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IFN1aU9iamVjdFJlZltdIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGdldEdhc0RhdGEodHgpPy5wYXltZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25HYXNQcmljZSh0eDogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKSB7XG4gIHJldHVybiBnZXRHYXNEYXRhKHR4KT8ucHJpY2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkdhc0J1ZGdldCh0eDogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKSB7XG4gIHJldHVybiBnZXRHYXNEYXRhKHR4KT8uYnVkZ2V0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hhbmdlRXBvY2hUcmFuc2FjdGlvbihkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrS2luZCk6IFN1aUNoYW5nZUVwb2NoIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGRhdGEua2luZCA9PT0gJ0NoYW5nZUVwb2NoJyA/IGRhdGEgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25zZW5zdXNDb21taXRQcm9sb2d1ZVRyYW5zYWN0aW9uKFxuICBkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrS2luZFxuKTogU3VpQ29uc2Vuc3VzQ29tbWl0UHJvbG9ndWUgfCB1bmRlZmluZWQge1xuICByZXR1cm4gZGF0YS5raW5kID09PSAnQ29uc2Vuc3VzQ29tbWl0UHJvbG9ndWUnID8gZGF0YSA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uS2luZChkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBTdWlUcmFuc2FjdGlvbkJsb2NrS2luZCB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBkYXRhLnRyYW5zYWN0aW9uPy5kYXRhLnRyYW5zYWN0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25LaW5kTmFtZShkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrS2luZCk6IFRyYW5zYWN0aW9uS2luZE5hbWUge1xuICByZXR1cm4gZGF0YS5raW5kO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24oZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja0tpbmQpOiBQcm9ncmFtbWFibGVUcmFuc2FjdGlvbiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBkYXRhLmtpbmQgPT09ICdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbicgPyBkYXRhIDogdW5kZWZpbmVkO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBFeGVjdXRpb25TdGF0dXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXhlY3V0aW9uU3RhdHVzVHlwZShkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBFeGVjdXRpb25TdGF0dXNUeXBlIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGdldEV4ZWN1dGlvblN0YXR1cyhkYXRhKT8uc3RhdHVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXhlY3V0aW9uU3RhdHVzKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IEV4ZWN1dGlvblN0YXR1cyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBnZXRUcmFuc2FjdGlvbkVmZmVjdHMoZGF0YSk/LnN0YXR1cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV4ZWN1dGlvblN0YXR1c0Vycm9yKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBnZXRFeGVjdXRpb25TdGF0dXMoZGF0YSk/LmVycm9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXhlY3V0aW9uU3RhdHVzR2FzU3VtbWFyeShcbiAgZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlIHwgVHJhbnNhY3Rpb25FZmZlY3RzXG4pOiBHYXNDb3N0U3VtbWFyeSB8IHVuZGVmaW5lZCB7XG4gIGlmIChpcyhkYXRhLCBUcmFuc2FjdGlvbkVmZmVjdHMpKSB7XG4gICAgcmV0dXJuIGRhdGEuZ2FzVXNlZDtcbiAgfVxuICByZXR1cm4gZ2V0VHJhbnNhY3Rpb25FZmZlY3RzKGRhdGEpPy5nYXNVc2VkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG90YWxHYXNVc2VkKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSB8IFRyYW5zYWN0aW9uRWZmZWN0cyk6IGJpZ2ludCB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGdhc1N1bW1hcnkgPSBnZXRFeGVjdXRpb25TdGF0dXNHYXNTdW1tYXJ5KGRhdGEpO1xuICByZXR1cm4gZ2FzU3VtbWFyeVxuICAgID8gQmlnSW50KGdhc1N1bW1hcnkuY29tcHV0YXRpb25Db3N0KSArIEJpZ0ludChnYXNTdW1tYXJ5LnN0b3JhZ2VDb3N0KSAtIEJpZ0ludChnYXNTdW1tYXJ5LnN0b3JhZ2VSZWJhdGUpXG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb3RhbEdhc1VzZWRVcHBlckJvdW5kKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSB8IFRyYW5zYWN0aW9uRWZmZWN0cyk6IGJpZ2ludCB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGdhc1N1bW1hcnkgPSBnZXRFeGVjdXRpb25TdGF0dXNHYXNTdW1tYXJ5KGRhdGEpO1xuICByZXR1cm4gZ2FzU3VtbWFyeSA/IEJpZ0ludChnYXNTdW1tYXJ5LmNvbXB1dGF0aW9uQ29zdCkgKyBCaWdJbnQoZ2FzU3VtbWFyeS5zdG9yYWdlQ29zdCkgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkVmZmVjdHMoZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogVHJhbnNhY3Rpb25FZmZlY3RzIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGRhdGEuZWZmZWN0cztcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBUcmFuc2FjdGlvbiBFZmZlY3RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXZlbnRzKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IFN1aUV2ZW50W10gfCB1bmRlZmluZWQge1xuICByZXR1cm4gZGF0YS5ldmVudHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDcmVhdGVkT2JqZWN0cyhkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBPd25lZE9iamVjdFJlZltdIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGdldFRyYW5zYWN0aW9uRWZmZWN0cyhkYXRhKT8uY3JlYXRlZDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFRyYW5zYWN0aW9uUmVzcG9uc2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRpbWVzdGFtcEZyb21UcmFuc2FjdGlvblJlc3BvbnNlKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBkYXRhLnRpbWVzdGFtcE1zID8/IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIG5ld2x5IGNyZWF0ZWQgY29pbiByZWZzIGFmdGVyIGEgc3BsaXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXdseUNyZWF0ZWRDb2luUmVmc0FmdGVyU3BsaXQoZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogU3VpT2JqZWN0UmVmW10gfCB1bmRlZmluZWQge1xuICByZXR1cm4gZ2V0VHJhbnNhY3Rpb25FZmZlY3RzKGRhdGEpPy5jcmVhdGVkPy5tYXAoKGMpID0+IGMucmVmZXJlbmNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdENoYW5nZXMoZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogU3VpT2JqZWN0Q2hhbmdlW10gfCB1bmRlZmluZWQge1xuICByZXR1cm4gZGF0YS5vYmplY3RDaGFuZ2VzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHVibGlzaGVkT2JqZWN0Q2hhbmdlcyhkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBTdWlPYmplY3RDaGFuZ2VQdWJsaXNoZWRbXSB7XG4gIHJldHVybiAoZGF0YS5vYmplY3RDaGFuZ2VzPy5maWx0ZXIoKGEpID0+IGlzKGEsIFN1aU9iamVjdENoYW5nZVB1Ymxpc2hlZCkpIGFzIFN1aU9iamVjdENoYW5nZVB1Ymxpc2hlZFtdKSA/PyBbXTtcbn1cbiJdfQ==
|