payload-auth 1.7.1 → 1.8.0-canary.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/better-auth/adapter/index.d.ts +1 -1
- package/dist/better-auth/adapter/index.d.ts.map +1 -1
- package/dist/better-auth/adapter/index.js +57 -7
- package/dist/better-auth/adapter/transform/index.d.ts.map +1 -1
- package/dist/better-auth/adapter/transform/index.js +47 -7
- package/dist/better-auth/generated-types.d.ts +13 -11
- package/dist/better-auth/generated-types.d.ts.map +1 -1
- package/dist/better-auth/generated-types.js +1 -1
- package/dist/better-auth/plugin/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/index.js +3 -2
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.js +3 -2
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.js +5 -5
- package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/users/index.js +31 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts +3 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.js +17 -8
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/apply-save-to-jwt-returned.d.ts +14 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/apply-save-to-jwt-returned.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/apply-save-to-jwt-returned.js +38 -0
- package/dist/better-auth/plugin/payload/components/login-form/alternative-methods.d.ts +4 -0
- package/dist/better-auth/plugin/payload/components/login-form/alternative-methods.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/login-form/alternative-methods.js +197 -0
- package/dist/better-auth/plugin/payload/components/login-form/context.d.ts +49 -0
- package/dist/better-auth/plugin/payload/components/login-form/context.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/login-form/context.js +94 -0
- package/dist/better-auth/plugin/payload/components/login-form/credentials-form.d.ts +4 -0
- package/dist/better-auth/plugin/payload/components/login-form/credentials-form.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/login-form/credentials-form.js +167 -0
- package/dist/better-auth/plugin/payload/components/login-form/index.d.ts +4 -0
- package/dist/better-auth/plugin/payload/components/login-form/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/login-form/index.js +6 -0
- package/dist/better-auth/plugin/payload/components/{social-provider-buttons → login-form}/index.scss +17 -12
- package/dist/better-auth/plugin/payload/components/passkeys/add-button.js +2 -2
- package/dist/better-auth/plugin/payload/components/rsc-redirect.d.ts +1 -0
- package/dist/better-auth/plugin/payload/components/rsc-redirect.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/components/rsc-redirect.js +7 -2
- package/dist/better-auth/plugin/payload/exports/client.d.ts +3 -2
- package/dist/better-auth/plugin/payload/exports/client.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/exports/client.js +4 -3
- package/dist/better-auth/plugin/payload/views/admin-login/client.d.ts +11 -7
- package/dist/better-auth/plugin/payload/views/admin-login/client.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/views/admin-login/client.js +17 -193
- package/dist/better-auth/plugin/payload/views/admin-login/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/views/admin-login/index.js +25 -8
- package/dist/better-auth/plugin/payload/views/admin-signup/client.d.ts +6 -0
- package/dist/better-auth/plugin/payload/views/admin-signup/client.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/views/admin-signup/client.js +12 -10
- package/dist/better-auth/plugin/payload/views/admin-signup/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/views/admin-signup/index.js +22 -3
- package/dist/better-auth/plugin/payload/views/forgot-password/client.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/views/forgot-password/client.js +17 -5
- package/dist/better-auth/plugin/payload/views/reset-password/index.js +2 -2
- package/dist/better-auth/scripts/generate-types.js +2 -2
- package/dist/index.js +2 -2
- package/dist/shared/form/fields/text-field.d.ts +2 -1
- package/dist/shared/form/fields/text-field.d.ts.map +1 -1
- package/dist/shared/form/fields/text-field.js +6 -3
- package/dist/shared/form/validation.d.ts +9 -69
- package/dist/shared/form/validation.d.ts.map +1 -1
- package/dist/shared/form/validation.js +11 -24
- package/package.json +40 -13
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.d.ts +0 -16
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.d.ts.map +0 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.js +0 -41
- package/dist/better-auth/plugin/payload/components/social-provider-buttons/index.d.ts +0 -16
- package/dist/better-auth/plugin/payload/components/social-provider-buttons/index.d.ts.map +0 -1
- package/dist/better-auth/plugin/payload/components/social-provider-buttons/index.js +0 -144
|
@@ -303,6 +303,23 @@ export const createTransform = (options, enableDebugLogs)=>{
|
|
|
303
303
|
return transformedData;
|
|
304
304
|
}
|
|
305
305
|
/**
|
|
306
|
+
* Checks if a value is a Payload join result (has docs array structure)
|
|
307
|
+
*/ function isJoinResult(value) {
|
|
308
|
+
return value !== null && typeof value === 'object' && 'docs' in value && Array.isArray(value.docs);
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Flattens a Payload join result to just the array of documents.
|
|
312
|
+
* Handles both direct documents and polymorphic { relationTo, value } format.
|
|
313
|
+
*/ function flattenJoinResult(joinResult) {
|
|
314
|
+
return joinResult.docs.map((item)=>{
|
|
315
|
+
// Handle polymorphic join format: { relationTo: string, value: doc }
|
|
316
|
+
if (item && typeof item === 'object' && 'value' in item && 'relationTo' in item) {
|
|
317
|
+
return item.value;
|
|
318
|
+
}
|
|
319
|
+
return item;
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
306
323
|
* Transforms Payload CMS document output to match BetterAuth schema expectations.
|
|
307
324
|
*
|
|
308
325
|
* This function handles several critical transformations:
|
|
@@ -315,6 +332,8 @@ export const createTransform = (options, enableDebugLogs)=>{
|
|
|
315
332
|
*
|
|
316
333
|
* 3. Date Conversion: Transforms date strings from Payload into Date objects for BetterAuth
|
|
317
334
|
*
|
|
335
|
+
* 4. Join Result Flattening: Converts Payload's { docs: [...] } join format to plain arrays
|
|
336
|
+
*
|
|
318
337
|
* Note: While setting depth: 1 in Payload operations simplifies this process by avoiding
|
|
319
338
|
* deeply nested objects, we maintain comprehensive checks for robustness.
|
|
320
339
|
*
|
|
@@ -340,12 +359,26 @@ export const createTransform = (options, enableDebugLogs)=>{
|
|
|
340
359
|
});
|
|
341
360
|
Object.entries(doc).forEach(([key, value])=>{
|
|
342
361
|
if (value === null || value === undefined) return;
|
|
362
|
+
const targetFieldKey = getFieldKeyByCollectionFieldName(getCollectionByModelKey(payload.collections, model), key);
|
|
343
363
|
// Convert ID fields to strings for BetterAuth compatibility
|
|
344
364
|
if ([
|
|
345
365
|
'id',
|
|
346
366
|
'_id'
|
|
347
367
|
].includes(key)) {
|
|
348
|
-
result[
|
|
368
|
+
result[targetFieldKey] = String(value);
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
// Flatten join results from { docs: [...] } to plain arrays
|
|
372
|
+
if (isJoinResult(value)) {
|
|
373
|
+
debugLog([
|
|
374
|
+
'transformOutput: flattening join result',
|
|
375
|
+
{
|
|
376
|
+
key,
|
|
377
|
+
targetFieldKey,
|
|
378
|
+
isArray: Array.isArray(value.docs)
|
|
379
|
+
}
|
|
380
|
+
]);
|
|
381
|
+
result[targetFieldKey] = flattenJoinResult(value);
|
|
349
382
|
return;
|
|
350
383
|
}
|
|
351
384
|
// Handle relationship fields with renamed fieldNames
|
|
@@ -357,7 +390,7 @@ export const createTransform = (options, enableDebugLogs)=>{
|
|
|
357
390
|
const originalDateFieldKey = Object.keys(dateFields).find((k)=>dateFields[k].fieldName === key);
|
|
358
391
|
if (originalDateFieldKey) {
|
|
359
392
|
// Convert ISO date strings to Date objects for BetterAuth
|
|
360
|
-
result[
|
|
393
|
+
result[targetFieldKey] = new Date(value);
|
|
361
394
|
return;
|
|
362
395
|
}
|
|
363
396
|
});
|
|
@@ -389,11 +422,14 @@ export const createTransform = (options, enableDebugLogs)=>{
|
|
|
389
422
|
return;
|
|
390
423
|
}
|
|
391
424
|
// Case 2: Object with ID property
|
|
392
|
-
if (typeof value === 'object' && value !== null && 'id' in value) {
|
|
425
|
+
if (typeof value === 'object' && value !== null && !Array.isArray(value) && 'id' in value) {
|
|
393
426
|
// For BetterAuth: Extract and stringify the ID
|
|
394
427
|
result[originalKey] = String(value.id);
|
|
395
|
-
//
|
|
396
|
-
result[fieldName] =
|
|
428
|
+
// Preserve the populated relationship object so joins return full documents
|
|
429
|
+
result[fieldName] = {
|
|
430
|
+
...value,
|
|
431
|
+
id: String(value.id)
|
|
432
|
+
};
|
|
397
433
|
return;
|
|
398
434
|
}
|
|
399
435
|
// Case 3: Array of IDs or references
|
|
@@ -402,7 +438,11 @@ export const createTransform = (options, enableDebugLogs)=>{
|
|
|
402
438
|
if (value.every((item)=>typeof item === 'object' && item !== null && 'id' in item)) {
|
|
403
439
|
// Array of objects with IDs
|
|
404
440
|
result[originalKey] = value.map((item)=>String(item.id));
|
|
405
|
-
|
|
441
|
+
// Keep joined documents intact while normalizing ID type
|
|
442
|
+
result[fieldName] = value.map((item)=>({
|
|
443
|
+
...item,
|
|
444
|
+
id: String(item.id)
|
|
445
|
+
}));
|
|
406
446
|
} else {
|
|
407
447
|
// Array of primitive IDs
|
|
408
448
|
result[originalKey] = value.map((item)=>String(item));
|
|
@@ -661,4 +701,4 @@ export const createTransform = (options, enableDebugLogs)=>{
|
|
|
661
701
|
};
|
|
662
702
|
};
|
|
663
703
|
|
|
664
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9hZGFwdGVyL3RyYW5zZm9ybS9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRBdXRoVGFibGVzIH0gZnJvbSAnYmV0dGVyLWF1dGgvZGInXG5pbXBvcnQgdHlwZSB7IE1vZGVsS2V5IH0gZnJvbSAnQC9iZXR0ZXItYXV0aC9nZW5lcmF0ZWQtdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEJldHRlckF1dGhPcHRpb25zLCBXaGVyZSB9IGZyb20gJ2JldHRlci1hdXRoJ1xuaW1wb3J0IHR5cGUgeyBEQkZpZWxkQXR0cmlidXRlIH0gZnJvbSAnYmV0dGVyLWF1dGgvZGInXG5pbXBvcnQgdHlwZSB7IEJhc2VQYXlsb2FkLCBDb2xsZWN0aW9uU2x1ZywgV2hlcmUgYXMgUGF5bG9hZFdoZXJlIH0gZnJvbSAncGF5bG9hZCdcbmltcG9ydCB7XG4gIGdldENvbGxlY3Rpb25CeU1vZGVsS2V5LFxuICBnZXRDb2xsZWN0aW9uRmllbGROYW1lQnlGaWVsZEtleVVudHlwZWQsXG4gIGdldEZpZWxkS2V5QnlDb2xsZWN0aW9uRmllbGROYW1lXG59IGZyb20gJ0AvYmV0dGVyLWF1dGgvcGx1Z2luL2hlbHBlcnMvZ2V0LWNvbGxlY3Rpb24nXG5cbmV4cG9ydCBjb25zdCBjcmVhdGVUcmFuc2Zvcm0gPSAob3B0aW9uczogQmV0dGVyQXV0aE9wdGlvbnMsIGVuYWJsZURlYnVnTG9nczogYm9vbGVhbikgPT4ge1xuICBjb25zdCBzY2hlbWEgPSBnZXRBdXRoVGFibGVzKG9wdGlvbnMpXG5cbiAgZnVuY3Rpb24gZGVidWdMb2cobWVzc2FnZTogYW55W10pIHtcbiAgICBpZiAoZW5hYmxlRGVidWdMb2dzKSB7XG4gICAgICBjb25zb2xlLmxvZyhgW3BheWxvYWQtZGItYWRhcHRlcl1gLCAuLi5tZXNzYWdlKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNYXBzIGEgQmV0dGVyQXV0aCBzY2hlbWEgbW9kZWwgbmFtZSB0byBpdHMgY29ycmVzcG9uZGluZyBQYXlsb2FkIENNUyBjb2xsZWN0aW9uIHNsdWcuXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gcmVzb2x2ZXMgdGhlIGFwcHJvcHJpYXRlIGNvbGxlY3Rpb24gc2x1ZyBieTpcbiAgICogMS4gTG9va2luZyB1cCB0aGUgbW9kZWwgaW4gdGhlIEJldHRlckF1dGggc2NoZW1hIHRvIGZpbmQgaXRzIGNvbmZpZ3VyZWQgbW9kZWxOYW1lXG4gICAqIDIuIEZhbGxpbmcgYmFjayB0byB0aGUgb3JpZ2luYWwgbW9kZWwgbmFtZSBpZiBubyBtYXBwaW5nIGV4aXN0c1xuICAgKlxuICAgKiBDb2xsZWN0aW9uIHNsdWcgcmVzb2x1dGlvbiBmb2xsb3dzIHRoZXNlIHJ1bGVzOlxuICAgKiAtIEZvciBiYXNlIGNvbGxlY3Rpb25zOiBUaGUgc2FuaXRpemVCZXR0ZXJBdXRoT3B0aW9ucyBmdW5jdGlvbiBlbnN1cmVzIHRoZSBjb2xsZWN0aW9uIHNsdWdcbiAgICogICBmcm9tIHBsdWdpbiBvcHRpb25zIGlzIHNldCBhcyB0aGUgbW9kZWwgbmFtZSBpbiB0aGUgc2NoZW1hXG4gICAqIC0gRm9yIHBsdWdpbnM6IFRoZSBiZXR0ZXJBdXRoUGx1Z2luU2x1Z3MgY29uc3RhbnQgaXMgdXNlZCBhcyB0aGUgbW9kZWxOYW1lXG4gICAqXG4gICAqIEBwYXJhbSBtb2RlbCAtIFRoZSBCZXR0ZXJBdXRoIG1vZGVsIG5hbWUgdG8gcmVzb2x2ZVxuICAgKiBAcmV0dXJucyBUaGUgY29ycmVzcG9uZGluZyBQYXlsb2FkIENNUyBjb2xsZWN0aW9uIHNsdWdcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gSWYgc2NoZW1hWyd1c2VyJ10ubW9kZWxOYW1lIGlzICd1c2VycydcbiAgICogZ2V0Q29sbGVjdGlvblNsdWcoJ3VzZXInKSAvLyBSZXR1cm5zICd1c2VycydcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gSWYgbW9kZWwgZG9lc24ndCBleGlzdCBpbiBzY2hlbWFcbiAgICogZ2V0Q29sbGVjdGlvblNsdWcoJ2N1c3RvbScpIC8vIFJldHVybnMgJ2N1c3RvbSdcbiAgICpcbiAgICogQHdhcm5pbmcgSWYgYSBjb2xsZWN0aW9uIGlzIG92ZXJyaWRkZW4gdXNpbmcgdGhlIGNvbGxlY3Rpb25PdmVycmlkZSBvcHRpb25cbiAgICogd2l0aG91dCB1cGRhdGluZyB0aGUgc2NoZW1hIG1hcHBpbmcsIHRoaXMgZnVuY3Rpb24gbWF5IHJldHVybiBpbmNvcnJlY3Qgc2x1Z3NcbiAgICovXG4gIGZ1bmN0aW9uIGdldENvbGxlY3Rpb25TbHVnKG1vZGVsOiBNb2RlbEtleSk6IENvbGxlY3Rpb25TbHVnIHtcbiAgICAvLyBGaXJzdCB0cnkgdG8gZ2V0IHRoZSBtb2RlbE5hbWUgZnJvbSBzY2hlbWEsIG90aGVyd2lzZSBmYWxsIGJhY2sgdG8gdGhlIG9yaWdpbmFsIG1vZGVsIG5hbWVcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gc2NoZW1hPy5bbW9kZWxdPy5tb2RlbE5hbWUgfHwgbW9kZWxcbiAgICBkZWJ1Z0xvZyhbJ2dldENvbGxlY3Rpb25TbHVnOicsIHsgbW9kZWwsIHJlc29sdmVkU2x1ZzogY29sbGVjdGlvbiB9XSlcbiAgICByZXR1cm4gY29sbGVjdGlvbiBhcyBDb2xsZWN0aW9uU2x1Z1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcHMgYSBCZXR0ZXJBdXRoIHNjaGVtYSBmaWVsZCB0byBpdHMgY29ycmVzcG9uZGluZyBQYXlsb2FkIENNUyBmaWVsZCBuYW1lLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHJlc29sdmVzIHRoZSBhcHByb3ByaWF0ZSBmaWVsZCBuYW1lIGJ5OlxuICAgKiAxLiBQcmVzZXJ2aW5nICdpZCcgb3IgJ19pZCcgZmllbGRzIGFzLWlzIChzcGVjaWFsIGNhc2UgaGFuZGxpbmcpXG4gICAqIDIuIExvb2tpbmcgdXAgdGhlIGZpZWxkIGluIHRoZSBCZXR0ZXJBdXRoIHNjaGVtYSB0byBmaW5kIGl0cyBjb25maWd1cmVkIGZpZWxkTmFtZVxuICAgKiAzLiBGYWxsaW5nIGJhY2sgdG8gdGhlIG9yaWdpbmFsIGZpZWxkIG5hbWUgaWYgbm8gbWFwcGluZyBleGlzdHNcbiAgICpcbiAgICogQHBhcmFtIG1vZGVsIC0gVGhlIEJldHRlckF1dGggbW9kZWwgbmFtZSBjb250YWluaW5nIHRoZSBmaWVsZFxuICAgKiBAcGFyYW0gZmllbGQgLSBUaGUgb3JpZ2luYWwgZmllbGQgbmFtZSB0byByZXNvbHZlXG4gICAqIEByZXR1cm5zIFRoZSBjb3JyZXNwb25kaW5nIFBheWxvYWQgQ01TIGZpZWxkIG5hbWVcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gSWYgc2NoZW1hWyd1c2VyJ10uZmllbGRzWydlbWFpbCddLmZpZWxkTmFtZSBpcyAnZW1haWxBZGRyZXNzJ1xuICAgKiBnZXRGaWVsZE5hbWUoJ3VzZXInLCAnZW1haWwnKSAvLyBSZXR1cm5zICdlbWFpbEFkZHJlc3MnXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIC8vIFNwZWNpYWwgY2FzZSBmb3IgSUQgZmllbGRzXG4gICAqIGdldEZpZWxkTmFtZSgndXNlcicsICdpZCcpIC8vIEFsd2F5cyByZXR1cm5zICdpZCdcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gSWYgZmllbGQgZG9lc24ndCBleGlzdCBpbiBzY2hlbWEgb3IgaGFzIG5vIGZpZWxkTmFtZSBtYXBwaW5nXG4gICAqIGdldEZpZWxkTmFtZSgndXNlcicsICdjdXN0b20nKSAvLyBSZXR1cm5zICdjdXN0b20nXG4gICAqXG4gICAqIEB3YXJuaW5nIElmIGEgZmllbGROYW1lIGlzIG92ZXJyaWRkZW4gaW4gdGhlIHBheWxvYWQgY29sbGVjdGlvbiBjb25maWcgdXNpbmcgdGhlIGNvbGxlY3Rpb25PdmVycmlkZSBvcHRpb25cbiAgICogd2l0aG91dCB1cGRhdGluZyB0aGUgc2NoZW1hIG1hcHBpbmcsIHRoaXMgZnVuY3Rpb24gbWF5IHJldHVybiBpbmNvcnJlY3QgZmllbGQgbmFtZXNcbiAgICovXG4gIGZ1bmN0aW9uIGdldEZpZWxkTmFtZShtb2RlbDogTW9kZWxLZXksIGZpZWxkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIFNwZWNpYWwgY2FzZTogJ2lkJyBvciAnX2lkJyBpcyBhbHdheXMgcHJlc2VydmVkIGFzLWlzXG4gICAgaWYgKFsnaWQnLCAnX2lkJ10uaW5jbHVkZXMoZmllbGQpKSB7XG4gICAgICByZXR1cm4gZmllbGRcbiAgICB9XG5cbiAgICAvLyBMb29rIHVwIHRoZSBmaWVsZCBpbiB0aGUgc2NoZW1hXG4gICAgY29uc3QgZmllbGREZWZpbml0aW9uID0gc2NoZW1hW21vZGVsXT8uZmllbGRzW2ZpZWxkXVxuXG4gICAgLy8gVXNlIHRoZSBjb25maWd1cmVkIGZpZWxkTmFtZSBpZiBhdmFpbGFibGUsIG90aGVyd2lzZSBmYWxsIGJhY2sgdG8gb3JpZ2luYWxcbiAgICBjb25zdCBmaWVsZE5hbWUgPSBmaWVsZERlZmluaXRpb24/LmZpZWxkTmFtZSB8fCBmaWVsZFxuXG4gICAgLy8gTG9nIHRoZSBmaWVsZCByZXNvbHV0aW9uIGZvciBkZWJ1Z2dpbmdcbiAgICBkZWJ1Z0xvZyhbJ2dldEZpZWxkOiAnLCB7IG1vZGVsLCBvcmlnaW5hbEZpZWxkOiBmaWVsZCwgZmllbGROYW1lIH1dKVxuXG4gICAgcmV0dXJuIGZpZWxkTmFtZVxuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYSBmaWVsZCBpcyBhIHJlbGF0aW9uc2hpcCBmaWVsZCBieSBjaGVja2luZyBmb3IgYSByZWZlcmVuY2VzIHByb3BlcnR5LlxuICAgKlxuICAgKiBSZWxhdGlvbnNoaXAgZmllbGRzIGluIHRoZSBzY2hlbWEgaGF2ZSBhICdyZWZlcmVuY2VzJyBwcm9wZXJ0eSB0aGF0IHBvaW50cyB0byBhbm90aGVyIG1vZGVsLlxuICAgKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBpZiB0aGlzIHByb3BlcnR5IGV4aXN0cyB0byBpZGVudGlmeSByZWxhdGlvbnNoaXAgZmllbGRzLlxuICAgKlxuICAgKiBAcGFyYW0gZmllbGRLZXkgLSBUaGUga2V5IG9mIHRoZSBmaWVsZCB0byBjaGVjayBpbiB0aGUgc2NoZW1hXG4gICAqIEBwYXJhbSBzY2hlbWFGaWVsZHMgLSBPYmplY3QgY29udGFpbmluZyBhbGwgZmllbGRzIGZyb20gdGhlIHNjaGVtYSBmb3IgYSBzcGVjaWZpYyBtb2RlbFxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBmaWVsZCBpcyBhIHJlbGF0aW9uc2hpcCBmaWVsZCAoaGFzIHJlZmVyZW5jZXMpLCBmYWxzZSBvdGhlcndpc2VcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gSWYgc2NoZW1hLnVzZXIuZmllbGRzLnBvc3RzIGhhcyB7IHJlZmVyZW5jZXM6IHt9IH1cbiAgICogaXNSZWxhdGlvbnNoaXBGaWVsZCgncG9zdHMnLCBzY2hlbWEudXNlci5maWVsZHMpIC8vIFJldHVybnMgdHJ1ZVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBJZiBzY2hlbWEudXNlci5maWVsZHMuZW1haWwgaGFzIG5vIHJlZmVyZW5jZXMgcHJvcGVydHlcbiAgICogaXNSZWxhdGlvbnNoaXBGaWVsZCgnZW1haWwnLCBzY2hlbWEudXNlci5maWVsZHMpIC8vIFJldHVybnMgZmFsc2VcbiAgICovXG4gIGZ1bmN0aW9uIGlzUmVsYXRpb25zaGlwRmllbGQoZmllbGRLZXk6IHN0cmluZywgc2NoZW1hRmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBEQkZpZWxkQXR0cmlidXRlPik6IGJvb2xlYW4ge1xuICAgIC8vIEEgZmllbGQgaXMgYSByZWxhdGlvbnNoaXAgZmllbGQgaWYgaXQgaGFzIGEgJ3JlZmVyZW5jZXMnIHByb3BlcnR5IGRlZmluZWRcbiAgICByZXR1cm4gc2NoZW1hRmllbGRzW2ZpZWxkS2V5XT8ucmVmZXJlbmNlcyAhPT0gdW5kZWZpbmVkXG4gIH1cbiAgLyoqXG4gICAqIEV4dHJhY3RzIGEgc2luZ2xlIElEIHZhbHVlIGZyb20gYSBQYXlsb2FkIHdoZXJlIGNsYXVzZSBpZiBpdCByZXByZXNlbnRzIGEgc2ltcGxlIElEIHF1ZXJ5LlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGFuYWx5emVzIGEgUGF5bG9hZCB3aGVyZSBjbGF1c2UgdG8gZGV0ZXJtaW5lIGlmIGl0J3MgYSBzaW1wbGUgcXVlcnkgZm9yIGFcbiAgICogc2luZ2xlIGRvY3VtZW50IGJ5IElELiBJdCBzdXBwb3J0cyBib3RoICdpZCcgYW5kICdfaWQnIGZpZWxkcyB3aXRoICdlcXVhbHMnIG9yICdjb250YWlucydcbiAgICogb3BlcmF0b3JzLiBUaGlzIGlzIHVzZWZ1bCBmb3Igb3B0aW1pemluZyBxdWVyaWVzIHdoZW4gd2Ugb25seSBuZWVkIHRvIGZldGNoIGEgc2luZ2xlIGRvY3VtZW50LlxuICAgKlxuICAgKiBAcGFyYW0gd2hlcmUgLSBUaGUgUGF5bG9hZCB3aGVyZSBjbGF1c2UgdG8gYW5hbHl6ZVxuICAgKiBAcmV0dXJucyBUaGUgSUQgdmFsdWUgKHN0cmluZyBvciBudW1iZXIpIGlmIHRoZSB3aGVyZSBjbGF1c2UgaXMgYSBzaW1wbGUgSUQgcXVlcnksIG51bGwgb3RoZXJ3aXNlXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIC8vIFJldHVybnMgJzEyMycgZm9yIGEgc2ltcGxlIGVxdWFscyBxdWVyeVxuICAgKiBzaW5nbGVJZFF1ZXJ5KHsgaWQ6IHsgZXF1YWxzOiAnMTIzJyB9IH0pIC8vICcxMjMnXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIC8vIFJldHVybnMgNDU2IGZvciBhIHNpbXBsZSBlcXVhbHMgcXVlcnkgd2l0aCBudW1iZXIgSURcbiAgICogc2luZ2xlSWRRdWVyeSh7IF9pZDogeyBlcXVhbHM6IDQ1NiB9IH0pIC8vIDQ1NlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBSZXR1cm5zICc3ODknIGZvciBhIGNvbnRhaW5zIHF1ZXJ5IHdpdGggYSBzaW5nbGUgdmFsdWVcbiAgICogc2luZ2xlSWRRdWVyeSh7IGlkOiB7IGNvbnRhaW5zOiBbJzc4OSddIH0gfSkgLy8gJzc4OSdcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gUmV0dXJucyBudWxsIGZvciBjb21wbGV4IHF1ZXJpZXNcbiAgICogc2luZ2xlSWRRdWVyeSh7IGFuZDogW3sgaWQ6IHsgZXF1YWxzOiAnMTIzJyB9IH1dIH0pIC8vIG51bGxcbiAgICovXG4gIGZ1bmN0aW9uIHNpbmdsZUlkUXVlcnkod2hlcmU6IFBheWxvYWRXaGVyZSkge1xuICAgIC8vIFJldHVybiBudWxsIGZvciBlbXB0eSB3aGVyZSBjbGF1c2VzIG9yIGNvbXBsZXggcXVlcmllcyB3aXRoICdhbmQnLydvcicgb3BlcmF0b3JzXG4gICAgaWYgKCF3aGVyZSB8fCAnYW5kJyBpbiB3aGVyZSB8fCAnb3InIGluIHdoZXJlKSByZXR1cm4gbnVsbFxuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIHdoZXJlIGNsYXVzZSBjb250YWlucyBlaXRoZXIgJ2lkJyBvciAnX2lkJyBmaWVsZFxuICAgIGlmIChbJ2lkJywgJ19pZCddLnNvbWUoKGZpZWxkKSA9PiBmaWVsZCBpbiB3aGVyZSkpIHtcbiAgICAgIC8vIERldGVybWluZSB3aGljaCBJRCBmaWVsZCBpcyBiZWluZyB1c2VkIChzdXBwb3J0IGJvdGggJ2lkJyBhbmQgJ19pZCcpXG4gICAgICBjb25zdCBpZEZpZWxkID0gJ2lkJyBpbiB3aGVyZSA/ICdpZCcgOiAnX2lkJ1xuICAgICAgY29uc3QgY29uZGl0aW9uID0gd2hlcmVbaWRGaWVsZF1cblxuICAgICAgLy8gUHJvY2VzcyB0aGUgZXF1YWxzIG9wZXJhdG9yIGNhc2VcbiAgICAgIGlmIChjb25kaXRpb24gJiYgdHlwZW9mIGNvbmRpdGlvbiA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoY29uZGl0aW9uKSAmJiAnZXF1YWxzJyBpbiBjb25kaXRpb24pIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBjb25kaXRpb24uZXF1YWxzXG4gICAgICAgIC8vIE9ubHkgcmV0dXJuIHN0cmluZyBvciBudW1iZXIgSUQgdmFsdWVzXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBQcm9jZXNzIHRoZSBjb250YWlucyBvcGVyYXRvciBjYXNlIHdpdGggYSBzaW5nbGUgdmFsdWVcbiAgICAgIGlmIChcbiAgICAgICAgY29uZGl0aW9uICYmXG4gICAgICAgIHR5cGVvZiBjb25kaXRpb24gPT09ICdvYmplY3QnICYmXG4gICAgICAgICFBcnJheS5pc0FycmF5KGNvbmRpdGlvbikgJiZcbiAgICAgICAgJ2NvbnRhaW5zJyBpbiBjb25kaXRpb24gJiZcbiAgICAgICAgQXJyYXkuaXNBcnJheShjb25kaXRpb24uY29udGFpbnMpICYmXG4gICAgICAgIGNvbmRpdGlvbi5jb250YWlucy5sZW5ndGggPT09IDFcbiAgICAgICkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGNvbmRpdGlvbi5jb250YWluc1swXVxuICAgICAgICAvLyBPbmx5IHJldHVybiBzdHJpbmcgb3IgbnVtYmVyIElEIHZhbHVlc1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gbnVsbCBpZiBubyB2YWxpZCBJRCBxdWVyeSB3YXMgZm91bmRcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIE5vcm1hbGl6ZXMgZGF0YSB2YWx1ZXMgYmFzZWQgb24gZmllbGQgdHlwZSBhbmQgcmVxdWlyZWQgSUQgdHlwZVxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGhhbmRsZXMgdHlwZSBjb252ZXJzaW9uIGZvciByZWxhdGlvbnNoaXAgZmllbGRzIHRvIGVuc3VyZVxuICAgKiBJRHMgYXJlIGluIHRoZSBjb3JyZWN0IGZvcm1hdCAoc3RyaW5nIG9yIG51bWJlcikgYmFzZWQgb24gdGhlIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUgZmllbGQga2V5L25hbWVcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIG5vcm1hbGl6ZVxuICAgKiBAcGFyYW0gaXNSZWxhdGVkRmllbGQgLSBXaGV0aGVyIHRoaXMgZmllbGQgaXMgYSByZWxhdGlvbnNoaXAgZmllbGRcbiAgICogQHBhcmFtIGlkVHlwZSAtIFRoZSBleHBlY3RlZCBJRCB0eXBlICgnbnVtYmVyJyBvciAndGV4dCcpXG4gICAqIEByZXR1cm5zIFRoZSBub3JtYWxpemVkIHZhbHVlXG4gICAqL1xuICBmdW5jdGlvbiBub3JtYWxpemVEYXRhKHtcbiAgICBrZXksXG4gICAgdmFsdWUsXG4gICAgaXNSZWxhdGVkRmllbGQsXG4gICAgaWRUeXBlXG4gIH06IHtcbiAgICBrZXk6IHN0cmluZ1xuICAgIHZhbHVlOiBhbnlcbiAgICBpc1JlbGF0ZWRGaWVsZDogYm9vbGVhblxuICAgIGlkVHlwZTogJ251bWJlcicgfCAndGV4dCdcbiAgfSkge1xuICAgIC8vIFNraXAgcHJvY2Vzc2luZyBmb3IgbnVsbC91bmRlZmluZWQgdmFsdWVzXG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB2YWx1ZVxuICAgIH1cblxuICAgIGlmIChbJ2lkJywgJ19pZCddLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIGlkVHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VJbnQodmFsdWUsIDEwKVxuICAgICAgICBpZiAoIWlzTmFOKHBhcnNlZCkpIHtcbiAgICAgICAgICBkZWJ1Z0xvZyhbYElEIGNvbnZlcnNpb246ICR7a2V5fSBjb252ZXJ0aW5nIHN0cmluZyBJRCB0byBudW1iZXJgLCB7IG9yaWdpbmFsOiB2YWx1ZSwgY29udmVydGVkOiBwYXJzZWQgfV0pXG4gICAgICAgICAgcmV0dXJuIHBhcnNlZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBpZFR5cGUgPT09ICd0ZXh0Jykge1xuICAgICAgICBjb25zdCBzdHJpbmdJZCA9IFN0cmluZyh2YWx1ZSlcbiAgICAgICAgZGVidWdMb2coW2BJRCBjb252ZXJzaW9uOiAke2tleX0gY29udmVydGluZyBudW1iZXIgSUQgdG8gc3RyaW5nYCwgeyBvcmlnaW5hbDogdmFsdWUsIGNvbnZlcnRlZDogc3RyaW5nSWQgfV0pXG4gICAgICAgIHJldHVybiBzdHJpbmdJZFxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE9ubHkgcHJvY2VzcyByZWxhdGlvbnNoaXAgZmllbGRzIHRoYXQgbmVlZCB0eXBlIGNvbnZlcnNpb25cbiAgICBpZiAoaXNSZWxhdGVkRmllbGQpIHtcbiAgICAgIC8vIEhhbmRsZSBzaW5nbGUgSUQgdmFsdWUgY29udmVyc2lvblxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgaWRUeXBlID09PSAnbnVtYmVyJykge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUludCh2YWx1ZSwgMTApXG4gICAgICAgIGlmICghaXNOYU4ocGFyc2VkKSkge1xuICAgICAgICAgIGRlYnVnTG9nKFtgSUQgY29udmVyc2lvbjogJHtrZXl9IGNvbnZlcnRpbmcgc3RyaW5nIElEIHRvIG51bWJlcmAsIHsgb3JpZ2luYWw6IHZhbHVlLCBjb252ZXJ0ZWQ6IHBhcnNlZCB9XSlcbiAgICAgICAgICByZXR1cm4gcGFyc2VkXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBpZFR5cGUgPT09ICd0ZXh0Jykge1xuICAgICAgICBjb25zdCBzdHJpbmdJZCA9IFN0cmluZyh2YWx1ZSlcbiAgICAgICAgZGVidWdMb2coW2BJRCBjb252ZXJzaW9uOiAke2tleX0gY29udmVydGluZyBudW1iZXIgSUQgdG8gc3RyaW5nYCwgeyBvcmlnaW5hbDogdmFsdWUsIGNvbnZlcnRlZDogc3RyaW5nSWQgfV0pXG4gICAgICAgIHJldHVybiBzdHJpbmdJZFxuICAgICAgfVxuXG4gICAgICAvLyBIYW5kbGUgYXJyYXkgb2YgSURzIC0gbWFwIGVhY2ggdmFsdWUgdG8gdGhlIGNvcnJlY3QgdHlwZVxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZS5tYXAoKGlkKSA9PiB7XG4gICAgICAgICAgLy8gU2tpcCBudWxsL3VuZGVmaW5lZCB2YWx1ZXMgaW4gYXJyYXlzXG4gICAgICAgICAgaWYgKGlkID09PSBudWxsIHx8IGlkID09PSB1bmRlZmluZWQpIHJldHVybiBpZFxuXG4gICAgICAgICAgaWYgKGlkVHlwZSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGlkID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VJbnQoaWQsIDEwKVxuICAgICAgICAgICAgcmV0dXJuICFpc05hTihwYXJzZWQpID8gcGFyc2VkIDogaWRcbiAgICAgICAgICB9IGVsc2UgaWYgKGlkVHlwZSA9PT0gJ3RleHQnICYmIHR5cGVvZiBpZCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcoaWQpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBpZFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhhbmRsZSByb2xlIGZpZWxkcyAoQ29taW5nIGZyb20gYmV0dGVyIGF1dGgsIHdpbGwgYmUgYSBzaW5nbGUgc3RyaW5nIHNlcGVyYXRlZCBieSBjb21tYXMgaWYgdGhlcmVzIG11bHRpcGxlIHJvbGVzKVxuICAgIGlmIChrZXkgPT09ICdyb2xlJyB8fCBrZXkgPT09ICdyb2xlcycpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5zcGxpdCgnLCcpLm1hcCgocm9sZTogc3RyaW5nKSA9PiByb2xlLnRyaW0oKS50b0xvd2VyQ2FzZSgpKVxuICAgIH1cblxuICAgIC8vIFJldHVybiBvcmlnaW5hbCB2YWx1ZSBpZiBubyBjb252ZXJzaW9uIHdhcyBuZWVkZWQgb3IgYXBwbGljYWJsZVxuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybXMgaW5wdXQgZGF0YSBmcm9tIGJldHRlci1hdXRoIHRvIFBheWxvYWQgQ01TIGZvcm1hdFxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGhhbmRsZXM6XG4gICAqIDEuIEZpZWxkIG5hbWUgbWFwcGluZyBhY2NvcmRpbmcgdG8gc2NoZW1hIGRlZmluaXRpb25zXG4gICAqIDIuIElEIHR5cGUgY29udmVyc2lvbiBmb3IgcmVsYXRpb25zaGlwIGZpZWxkc1xuICAgKiAzLiBQcm9wZXIgZGF0YSBub3JtYWxpemF0aW9uIGJhc2VkIG9uIGZpZWxkIHR5cGVzXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhIC0gVGhlIGlucHV0IGRhdGEgZnJvbSBiZXR0ZXItYXV0aFxuICAgKiBAcGFyYW0gbW9kZWwgLSBUaGUgbW9kZWwgbmFtZSBpbiB0aGUgc2NoZW1hXG4gICAqIEBwYXJhbSBpZFR5cGUgLSBUaGUgZXhwZWN0ZWQgSUQgdHlwZSAoJ251bWJlcicgb3IgJ3RleHQnKVxuICAgKiBAcmV0dXJucyBUcmFuc2Zvcm1lZCBkYXRhIGNvbXBhdGlibGUgd2l0aCBQYXlsb2FkIENNU1xuICAgKi9cbiAgZnVuY3Rpb24gdHJhbnNmb3JtSW5wdXQoe1xuICAgIGRhdGEsXG4gICAgbW9kZWwsXG4gICAgaWRUeXBlLFxuICAgIHBheWxvYWRcbiAgfToge1xuICAgIGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgICBtb2RlbDogTW9kZWxLZXlcbiAgICBpZFR5cGU6ICdudW1iZXInIHwgJ3RleHQnXG4gICAgcGF5bG9hZDogQmFzZVBheWxvYWRcbiAgfSk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIGNvbnN0IHRyYW5zZm9ybWVkRGF0YTogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9XG4gICAgY29uc3Qgc2NoZW1hRmllbGRzID0gc2NoZW1hPy5bbW9kZWxdPy5maWVsZHMgPz8ge31cblxuICAgIC8vIFByb2Nlc3MgZWFjaCBmaWVsZCBpbiB0aGUgaW5wdXQgZGF0YVxuICAgIE9iamVjdC5lbnRyaWVzKGRhdGEpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgLy8gU2tpcCBudWxsL3VuZGVmaW5lZCB2YWx1ZXNcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBEZXRlcm1pbmUgaWYgdGhpcyBpcyBhIHJlbGF0aW9uc2hpcCBmaWVsZFxuICAgICAgY29uc3QgaXNSZWxhdGVkRmllbGQgPSBpc1JlbGF0aW9uc2hpcEZpZWxkKGtleSwgc2NoZW1hRmllbGRzKVxuXG4gICAgICAvLyBHZXQgdGhlIG1hcHBlZCBmaWVsZCBuYW1lIGZyb20gc2NoZW1hIChpZiBhbnkpXG4gICAgICBjb25zdCBzY2hlbWFGaWVsZE5hbWUgPSBzY2hlbWFGaWVsZHNba2V5XT8uZmllbGROYW1lXG5cbiAgICAgIC8vIE5vcm1hbGl6ZSB0aGUgZGF0YSB2YWx1ZSBiYXNlZCBvbiBmaWVsZCB0eXBlIGFuZCBJRCB0eXBlXG4gICAgICBjb25zdCBub3JtYWxpemVkRGF0YSA9IG5vcm1hbGl6ZURhdGEoe1xuICAgICAgICBpZFR5cGUsXG4gICAgICAgIGtleSxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGlzUmVsYXRlZEZpZWxkXG4gICAgICB9KVxuXG4gICAgICAvLyBVc2UgdGhlIHNjaGVtYS1kZWZpbmVkIGZpZWxkIG5hbWUgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgdXNlIG9yaWdpbmFsIGtleVxuICAgICAgY29uc3QgdGFyZ2V0RmllbGROYW1lID0gc2NoZW1hRmllbGROYW1lIHx8IGtleVxuICAgICAgY29uc3QgdGFyZ2V0RmllbGRLZXkgPSBnZXRDb2xsZWN0aW9uRmllbGROYW1lQnlGaWVsZEtleVVudHlwZWQoZ2V0Q29sbGVjdGlvbkJ5TW9kZWxLZXkocGF5bG9hZC5jb2xsZWN0aW9ucywgbW9kZWwpLCB0YXJnZXRGaWVsZE5hbWUpXG4gICAgICB0cmFuc2Zvcm1lZERhdGFbdGFyZ2V0RmllbGRLZXldID0gbm9ybWFsaXplZERhdGFcbiAgICB9KVxuXG4gICAgcmV0dXJuIHRyYW5zZm9ybWVkRGF0YVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybXMgUGF5bG9hZCBDTVMgZG9jdW1lbnQgb3V0cHV0IHRvIG1hdGNoIEJldHRlckF1dGggc2NoZW1hIGV4cGVjdGF0aW9ucy5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBoYW5kbGVzIHNldmVyYWwgY3JpdGljYWwgdHJhbnNmb3JtYXRpb25zOlxuICAgKlxuICAgKiAxLiBJRCBDb252ZXJzaW9uOiBFbnN1cmVzIGFsbCBJRCBmaWVsZHMgYXJlIHN0cmluZ3MgYXMgcmVxdWlyZWQgYnkgQmV0dGVyQXV0aFxuICAgKiAgICAoc2VlOiBodHRwczovL2dpdGh1Yi5jb20vYmV0dGVyLWF1dGgvYmV0dGVyLWF1dGgvYmxvYi9tYWluL3BhY2thZ2VzL2JldHRlci1hdXRoL3NyYy9kYi9zY2hlbWEudHMjTDEyNSlcbiAgICpcbiAgICogMi4gUmVsYXRpb25zaGlwIEZpZWxkIE1hcHBpbmc6IEFsaWducyByZWxhdGlvbnNoaXAgZmllbGRzIHdpdGggQmV0dGVyQXV0aCBzY2hlbWEgbmFtaW5nIGNvbnZlbnRpb25zXG4gICAqICAgIGFuZCBlbnN1cmVzIHByb3BlciBJRCB0eXBlIGhhbmRsaW5nXG4gICAqXG4gICAqIDMuIERhdGUgQ29udmVyc2lvbjogVHJhbnNmb3JtcyBkYXRlIHN0cmluZ3MgZnJvbSBQYXlsb2FkIGludG8gRGF0ZSBvYmplY3RzIGZvciBCZXR0ZXJBdXRoXG4gICAqXG4gICAqIE5vdGU6IFdoaWxlIHNldHRpbmcgZGVwdGg6IDEgaW4gUGF5bG9hZCBvcGVyYXRpb25zIHNpbXBsaWZpZXMgdGhpcyBwcm9jZXNzIGJ5IGF2b2lkaW5nXG4gICAqIGRlZXBseSBuZXN0ZWQgb2JqZWN0cywgd2UgbWFpbnRhaW4gY29tcHJlaGVuc2l2ZSBjaGVja3MgZm9yIHJvYnVzdG5lc3MuXG4gICAqXG4gICAqIEBwYXJhbSBkb2MgLSBUaGUgZG9jdW1lbnQgcmV0dXJuZWQgZnJvbSBQYXlsb2FkIENNU1xuICAgKiBAcGFyYW0gbW9kZWwgLSBUaGUgbW9kZWwgbmFtZSBpbiB0aGUgQmV0dGVyQXV0aCBzY2hlbWFcbiAgICogQHJldHVybnMgVGhlIHRyYW5zZm9ybWVkIGRvY3VtZW50IGNvbXBhdGlibGUgd2l0aCBCZXR0ZXJBdXRoXG4gICAqL1xuICBmdW5jdGlvbiB0cmFuc2Zvcm1PdXRwdXQ8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gfCBudWxsPih7XG4gICAgZG9jLFxuICAgIG1vZGVsLFxuICAgIHBheWxvYWRcbiAgfToge1xuICAgIGRvYzogVFxuICAgIG1vZGVsOiBNb2RlbEtleVxuICAgIHBheWxvYWQ6IEJhc2VQYXlsb2FkXG4gIH0pOiBUIHtcbiAgICBpZiAoIWRvYyB8fCB0eXBlb2YgZG9jICE9PSAnb2JqZWN0JykgcmV0dXJuIGRvY1xuXG4gICAgY29uc3QgcmVzdWx0ID0geyAuLi5kb2MgfVxuICAgIGNvbnN0IHNjaGVtYUZpZWxkcyA9IHNjaGVtYT8uW21vZGVsXT8uZmllbGRzID8/IHt9XG5cbiAgICAvLyBJZGVudGlmeSByZWxhdGlvbnNoaXAgZmllbGRzIHdpdGggY3VzdG9tIGZpZWxkIG5hbWUgbWFwcGluZ3NcbiAgICBjb25zdCByZWxhdGlvbnNoaXBGaWVsZHMgPSBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoc2NoZW1hRmllbGRzKS5maWx0ZXIoKFtrZXldKSA9PiBpc1JlbGF0aW9uc2hpcEZpZWxkKGtleSwgc2NoZW1hRmllbGRzKSkpXG4gICAgY29uc3QgZGF0ZUZpZWxkcyA9IE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhzY2hlbWFGaWVsZHMpLmZpbHRlcigoW18sIHZhbHVlXSkgPT4gdmFsdWUudHlwZSA9PT0gJ2RhdGUnKSlcblxuICAgIC8vIEZpcnN0IG1ha2Ugc3VyZSBhbGwgdGhlIGZpZWxkcyBrZXlzIGFyZSBjb3JyZWN0XG4gICAgT2JqZWN0LmtleXMocmVzdWx0KS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldEZpZWxkS2V5ID0gZ2V0RmllbGRLZXlCeUNvbGxlY3Rpb25GaWVsZE5hbWUoZ2V0Q29sbGVjdGlvbkJ5TW9kZWxLZXkocGF5bG9hZC5jb2xsZWN0aW9ucywgbW9kZWwpLCBrZXkpXG4gICAgICBpZiAodGFyZ2V0RmllbGRLZXkgIT09IGtleSkge1xuICAgICAgICByZXN1bHRbdGFyZ2V0RmllbGRLZXldID0gcmVzdWx0W2tleV1cbiAgICAgICAgZGVsZXRlIHJlc3VsdFtrZXldXG4gICAgICB9XG4gICAgfSlcblxuICAgIE9iamVjdC5lbnRyaWVzKGRvYykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuXG5cbiAgICAgIC8vIENvbnZlcnQgSUQgZmllbGRzIHRvIHN0cmluZ3MgZm9yIEJldHRlckF1dGggY29tcGF0aWJpbGl0eVxuICAgICAgaWYgKFsnaWQnLCAnX2lkJ10uaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICByZXN1bHRba2V5XSA9IFN0cmluZyh2YWx1ZSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIEhhbmRsZSByZWxhdGlvbnNoaXAgZmllbGRzIHdpdGggcmVuYW1lZCBmaWVsZE5hbWVzXG4gICAgICBjb25zdCBvcmlnaW5hbFJlbGF0ZWRGaWVsZEtleSA9IE9iamVjdC5rZXlzKHJlbGF0aW9uc2hpcEZpZWxkcykuZmluZCgoaykgPT4gcmVsYXRpb25zaGlwRmllbGRzW2tdLmZpZWxkTmFtZSA9PT0ga2V5KVxuICAgICAgaWYgKG9yaWdpbmFsUmVsYXRlZEZpZWxkS2V5KSB7XG4gICAgICAgIG5vcm1hbGl6ZURvY3VtZW50SWRzKHJlc3VsdCwgb3JpZ2luYWxSZWxhdGVkRmllbGRLZXksIGtleSwgdmFsdWUpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCBvcmlnaW5hbERhdGVGaWVsZEtleSA9IE9iamVjdC5rZXlzKGRhdGVGaWVsZHMpLmZpbmQoKGspID0+IGRhdGVGaWVsZHNba10uZmllbGROYW1lID09PSBrZXkpXG4gICAgICBpZiAob3JpZ2luYWxEYXRlRmllbGRLZXkpIHtcbiAgICAgICAgLy8gQ29udmVydCBJU08gZGF0ZSBzdHJpbmdzIHRvIERhdGUgb2JqZWN0cyBmb3IgQmV0dGVyQXV0aFxuICAgICAgICByZXN1bHRba2V5XSA9IG5ldyBEYXRlKHZhbHVlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9KVxuXG4gICAgcmV0dXJuIHJlc3VsdCBhcyBUXG4gIH1cblxuICAvKipcbiAgICogTm9ybWFsaXplcyBJRCBmaWVsZHMgZm9yIGJvdGggcHJpbWFyeSBhbmQgcmVsYXRpb25zaGlwIGRvY3VtZW50cy5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBlbnN1cmVzIGNvbnNpc3RlbnQgSUQgaGFuZGxpbmcgYmV0d2VlbiBCZXR0ZXJBdXRoIGFuZCBQYXlsb2FkIENNUyBieTpcbiAgICogMS4gQ29udmVydGluZyBhbGwgSURzIHRvIHN0cmluZ3MgZm9yIEJldHRlckF1dGggKHN0b3JlZCBpbiBvcmlnaW5hbEtleSlcbiAgICogMi4gUHJlc2VydmluZyBvcmlnaW5hbCBJRCB0eXBlcyBmb3IgUGF5bG9hZCBDTVMgKHN0b3JlZCBpbiBmaWVsZE5hbWUpXG4gICAqXG4gICAqIFRoZSBmdW5jdGlvbiBoYW5kbGVzIHZhcmlvdXMgSUQgZm9ybWF0czpcbiAgICogLSBQcmltaXRpdmUgdmFsdWVzIChzdHJpbmcvbnVtYmVyIElEcylcbiAgICogLSBPYmplY3QgcmVmZXJlbmNlcyB3aXRoIElEIHByb3BlcnRpZXNcbiAgICogLSBBcnJheXMgb2YgZWl0aGVyIHByaW1pdGl2ZSBJRHMgb3Igb2JqZWN0IHJlZmVyZW5jZXNcbiAgICpcbiAgICogQHBhcmFtIHJlc3VsdCAtIFRoZSByZXN1bHQgb2JqZWN0IGJlaW5nIHRyYW5zZm9ybWVkXG4gICAqIEBwYXJhbSBvcmlnaW5hbEtleSAtIFRoZSBvcmlnaW5hbCBmaWVsZCBrZXkgZnJvbSBCZXR0ZXJBdXRoIHNjaGVtYVxuICAgKiBAcGFyYW0gZmllbGROYW1lIC0gVGhlIHJlbmFtZWQgZmllbGQgYXMgdXNlZCBpbiBQYXlsb2FkIENNU1xuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgSUQgdmFsdWUgdG8gbm9ybWFsaXplIChwcmltaXRpdmUsIG9iamVjdCwgb3IgYXJyYXkpXG4gICAqL1xuICBmdW5jdGlvbiBub3JtYWxpemVEb2N1bWVudElkcyhyZXN1bHQ6IFJlY29yZDxzdHJpbmcsIGFueT4sIG9yaWdpbmFsS2V5OiBzdHJpbmcsIGZpZWxkTmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgLy8gQ2FzZSAxOiBQcmltaXRpdmUgSUQgdmFsdWUgKHN0cmluZyBvciBudW1iZXIpXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgLy8gRm9yIEJldHRlckF1dGg6IEFsd2F5cyB1c2Ugc3RyaW5nIElEc1xuICAgICAgcmVzdWx0W29yaWdpbmFsS2V5XSA9IFN0cmluZyh2YWx1ZSlcbiAgICAgIC8vIEZvciBQYXlsb2FkOiBLZWVwIG9yaWdpbmFsIHR5cGVcbiAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0gdmFsdWVcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIENhc2UgMjogT2JqZWN0IHdpdGggSUQgcHJvcGVydHlcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiAnaWQnIGluIHZhbHVlKSB7XG4gICAgICAvLyBGb3IgQmV0dGVyQXV0aDogRXh0cmFjdCBhbmQgc3RyaW5naWZ5IHRoZSBJRFxuICAgICAgcmVzdWx0W29yaWdpbmFsS2V5XSA9IFN0cmluZyh2YWx1ZS5pZClcbiAgICAgIC8vIEZvciBQYXlsb2FkOiBFeHRyYWN0IElEIGJ1dCBwcmVzZXJ2ZSB0eXBlXG4gICAgICByZXN1bHRbZmllbGROYW1lXSA9IHZhbHVlLmlkXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBDYXNlIDM6IEFycmF5IG9mIElEcyBvciByZWZlcmVuY2VzXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIC8vIENoZWNrIGlmIGFycmF5IGNvbnRhaW5zIG9iamVjdHMgd2l0aCBJRCBwcm9wZXJ0aWVzXG4gICAgICBpZiAodmFsdWUuZXZlcnkoKGl0ZW0pID0+IHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiBpdGVtICE9PSBudWxsICYmICdpZCcgaW4gaXRlbSkpIHtcbiAgICAgICAgLy8gQXJyYXkgb2Ygb2JqZWN0cyB3aXRoIElEc1xuICAgICAgICByZXN1bHRbb3JpZ2luYWxLZXldID0gdmFsdWUubWFwKChpdGVtKSA9PiBTdHJpbmcoaXRlbS5pZCkpXG4gICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0gdmFsdWUubWFwKChpdGVtKSA9PiBpdGVtLmlkKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQXJyYXkgb2YgcHJpbWl0aXZlIElEc1xuICAgICAgICByZXN1bHRbb3JpZ2luYWxLZXldID0gdmFsdWUubWFwKChpdGVtKSA9PiBTdHJpbmcoaXRlbSkpXG4gICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0gdmFsdWUubWFwKChpdGVtKSA9PiBpdGVtKVxuICAgICAgfVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gTm90ZTogSWYgdmFsdWUgZG9lc24ndCBtYXRjaCBhbnkgZXhwZWN0ZWQgZm9ybWF0LCBubyBjaGFuZ2VzIGFyZSBtYWRlXG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBCZXR0ZXJBdXRoIG9wZXJhdG9yIHRvIHRoZSBlcXVpdmFsZW50IFBheWxvYWQgQ01TIHF1ZXJ5IG9wZXJhdG9yXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gbWFwcyBzdGFuZGFyZCBxdWVyeSBvcGVyYXRvcnMgZnJvbSBCZXR0ZXJBdXRoJ3MgZm9ybWF0IHRvXG4gICAqIHRoZSBzcGVjaWZpYyBmb3JtYXQgZXhwZWN0ZWQgYnkgUGF5bG9hZCBDTVMncyBxdWVyeSBlbmdpbmUuXG4gICAqXG4gICAqIEBwYXJhbSBvcGVyYXRvciAtIFRoZSBCZXR0ZXJBdXRoIG9wZXJhdG9yIHN0cmluZyAoZS5nLiwgJ2VxJywgJ2d0JywgJ2NvbnRhaW5zJylcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGJlIHVzZWQgd2l0aCB0aGUgb3BlcmF0b3JcbiAgICogQHJldHVybnMgQW4gb2JqZWN0IHdpdGggdGhlIFBheWxvYWQtY29tcGF0aWJsZSBvcGVyYXRvciBhbmQgdmFsdWVcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gUmV0dXJucyB7IGVxdWFsczogJ3Rlc3RAZXhhbXBsZS5jb20nIH1cbiAgICogb3BlcmF0b3JUb1BheWxvYWQoJ2VxJywgJ3Rlc3RAZXhhbXBsZS5jb20nKVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBSZXR1cm5zIHsgZ3JlYXRlcl90aGFuOiAxMDAgfVxuICAgKiBvcGVyYXRvclRvUGF5bG9hZCgnZ3QnLCAxMDApXG4gICAqL1xuICBmdW5jdGlvbiBvcGVyYXRvclRvUGF5bG9hZChvcGVyYXRvcjogc3RyaW5nLCB2YWx1ZTogYW55KTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgc3dpdGNoIChvcGVyYXRvcikge1xuICAgICAgY2FzZSAnZXEnOlxuICAgICAgICByZXR1cm4geyBlcXVhbHM6IHZhbHVlIH1cbiAgICAgIGNhc2UgJ25lJzpcbiAgICAgICAgcmV0dXJuIHsgbm90X2VxdWFsczogdmFsdWUgfVxuICAgICAgY2FzZSAnZ3QnOlxuICAgICAgICByZXR1cm4geyBncmVhdGVyX3RoYW46IHZhbHVlIH1cbiAgICAgIGNhc2UgJ2d0ZSc6XG4gICAgICAgIHJldHVybiB7IGdyZWF0ZXJfdGhhbl9lcXVhbDogdmFsdWUgfVxuICAgICAgY2FzZSAnbHQnOlxuICAgICAgICByZXR1cm4geyBsZXNzX3RoYW46IHZhbHVlIH1cbiAgICAgIGNhc2UgJ2x0ZSc6XG4gICAgICAgIHJldHVybiB7IGxlc3NfdGhhbl9lcXVhbDogdmFsdWUgfVxuICAgICAgY2FzZSAnY29udGFpbnMnOlxuICAgICAgICByZXR1cm4geyBjb250YWluczogdmFsdWUgfVxuICAgICAgY2FzZSAnaW4nOlxuICAgICAgICByZXR1cm4geyBpbjogdmFsdWUgfVxuICAgICAgY2FzZSAnc3RhcnRzX3dpdGgnOlxuICAgICAgICByZXR1cm4geyBsaWtlOiBgJHt2YWx1ZX0lYCB9XG4gICAgICBjYXNlICdlbmRzX3dpdGgnOlxuICAgICAgICByZXR1cm4geyBsaWtlOiBgJSR7dmFsdWV9YCB9XG4gICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBGYWxsIGJhY2sgdG8gZXF1YWxzIGZvciB1bnJlY29nbml6ZWQgb3BlcmF0b3JzXG4gICAgICAgIHJldHVybiB7IGVxdWFsczogdmFsdWUgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhIHdoZXJlIGNsYXVzZSB2YWx1ZSB0byB0aGUgYXBwcm9wcmlhdGUgdHlwZSBiYXNlZCBvbiBmaWVsZCBuYW1lIGFuZCBJRCB0eXBlIGNvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBoYW5kbGVzIHR3byBtYWluIHNjZW5hcmlvczpcbiAgICogMS4gSUQgZmllbGQgY29udmVyc2lvbiAtIGVuc3VyZXMgSURzIG1hdGNoIHRoZSBkYXRhYmFzZSdzIGV4cGVjdGVkIHR5cGUgKG51bWJlciBvciBzdHJpbmcpXG4gICAqIDIuIE9iamVjdCB3aXRoIGVtYmVkZGVkIElEIC0gZXh0cmFjdHMgYW5kIGNvbnZlcnRzIHRoZSBJRCBwcm9wZXJ0eSBmcm9tIG9iamVjdHNcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGNvbnZlcnQgKGNhbiBiZSBwcmltaXRpdmUsIG9iamVjdCB3aXRoIElELCBvciBhcnJheSlcbiAgICogQHBhcmFtIGZpZWxkTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBmaWVsZCBiZWluZyBxdWVyaWVkXG4gICAqIEBwYXJhbSBpZFR5cGUgLSBUaGUgZXhwZWN0ZWQgSUQgdHlwZSBpbiB0aGUgZGF0YWJhc2VcbiAgICogQHJldHVybnMgVGhlIGNvbnZlcnRlZCB2YWx1ZSBhcHByb3ByaWF0ZSBmb3IgdGhlIGRhdGFiYXNlIHF1ZXJ5XG4gICAqL1xuICBmdW5jdGlvbiBjb252ZXJ0V2hlcmVWYWx1ZSh7IHZhbHVlLCBmaWVsZE5hbWUsIGlkVHlwZSB9OiB7IHZhbHVlOiBhbnk7IGZpZWxkTmFtZTogc3RyaW5nOyBpZFR5cGU6ICdudW1iZXInIHwgJ3RleHQnIH0pIHtcbiAgICAvLyBDaGVjayBpZiBmaWVsZCBpcyBhbiBJRCBmaWVsZCAoc3VwcG9ydGluZyBib3RoIE1vbmdvREItc3R5bGUgX2lkIGFuZCBzdGFuZGFyZCBpZClcbiAgICBpZiAoWydpZCcsICdfaWQnXS5pbmNsdWRlcyhmaWVsZE5hbWUpKSB7XG4gICAgICAvLyBDYXNlIDE6IFZhbHVlIGlzIGFuIG9iamVjdCBjb250YWluaW5nIGFuIElEIHByb3BlcnR5XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiAnaWQnIGluIHZhbHVlKSB7XG4gICAgICAgIC8vIEV4dHJhY3QgSUQgZnJvbSBvYmplY3RcbiAgICAgICAgY29uc3QgaWQgPSB2YWx1ZS5pZFxuXG4gICAgICAgIC8vIFVzZSB0eXBlIGNvbnZlcnNpb24gYmFzZWQgb24gZGF0YWJhc2UgY29uZmlndXJhdGlvblxuICAgICAgICBpZiAoaWRUeXBlID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgaWQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgY29uc3QgbnVtSWQgPSBOdW1iZXIoaWQpXG4gICAgICAgICAgcmV0dXJuICFpc05hTihudW1JZCkgPyBudW1JZCA6IGlkXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaWRUeXBlID09PSAndGV4dCcgJiYgdHlwZW9mIGlkID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIHJldHVybiBTdHJpbmcoaWQpXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaWRcbiAgICAgIH1cbiAgICAgIC8vIENhc2UgMjogVmFsdWUgaXMgYSBzdGFuZGFsb25lIElEIHRoYXQgbmVlZHMgdHlwZSBjb252ZXJzaW9uXG4gICAgICAvLyBDb252ZXJ0IHN0cmluZyBJRCB0byBudW1iZXIgaWYgZGF0YWJhc2UgZXhwZWN0cyBudW1lcmljIElEc1xuICAgICAgaWYgKGlkVHlwZSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAhaXNOYU4oTnVtYmVyKHZhbHVlKSkpIHtcbiAgICAgICAgcmV0dXJuIE51bWJlcih2YWx1ZSlcbiAgICAgIH1cbiAgICAgIC8vIENvbnZlcnQgbnVtZXJpYyBJRCB0byBzdHJpbmcgaWYgZGF0YWJhc2UgZXhwZWN0cyB0ZXh0IElEc1xuICAgICAgZWxzZSBpZiAoaWRUeXBlID09PSAndGV4dCcgJiYgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlXG4gICAgfVxuXG4gICAgLy8gRm9yIG5vbi1JRCBmaWVsZHMsIHJldHVybiB0aGUgdmFsdWUgdW5jaGFuZ2VkXG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgQmV0dGVyIEF1dGggd2hlcmUgY2xhdXNlcyB0byBQYXlsb2FkIENNUyBjb21wYXRpYmxlIHdoZXJlIGNvbmRpdGlvbnNcbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiB0cmFuc2Zvcm1zIHRoZSBCZXR0ZXIgQXV0aCBxdWVyeSBmb3JtYXQgaW50byBQYXlsb2FkJ3MgcXVlcnkgZm9ybWF0LFxuICAgKiBoYW5kbGluZyBmaWVsZCBuYW1lIG1hcHBpbmcsIHZhbHVlIHR5cGUgY29udmVyc2lvbiwgYW5kIGxvZ2ljYWwgb3BlcmF0b3JzIChBTkQvT1IpLlxuICAgKlxuICAgKiBUaGUgZnVuY3Rpb24gaGFuZGxlcyB0aHJlZSBtYWluIGNhc2VzOlxuICAgKiAxLiBFbXB0eSBvciB1bmRlZmluZWQgd2hlcmUgY2xhdXNlIC0gcmV0dXJucyBlbXB0eSBvYmplY3RcbiAgICogMi4gU2luZ2xlIGNvbmRpdGlvbiAtIGNvbnZlcnRzIHRvIGEgc2ltcGxlIGZpZWxkLXZhbHVlIHBhaXJcbiAgICogMy4gTXVsdGlwbGUgY29uZGl0aW9ucyAtIGdyb3VwcyBieSBBTkQvT1IgY29ubmVjdG9ycyBhbmQgYnVpbGRzIGEgY29tcGxleCBxdWVyeVxuICAgKlxuICAgKiBAcGFyYW0gaWRUeXBlIC0gVGhlIGRhdGFiYXNlIElEIHR5cGUgKCdudW1iZXInIG9yICd0ZXh0JylcbiAgICogQHBhcmFtIG1vZGVsIC0gVGhlIG1vZGVsL2NvbGxlY3Rpb24gbmFtZSB0byBxdWVyeVxuICAgKiBAcGFyYW0gd2hlcmUgLSBBcnJheSBvZiBCZXR0ZXIgQXV0aCB3aGVyZSBjb25kaXRpb25zXG4gICAqIEByZXR1cm5zIEEgUGF5bG9hZC1jb21wYXRpYmxlIHdoZXJlIGNsYXVzZSBvYmplY3RcbiAgICovXG4gIGZ1bmN0aW9uIGNvbnZlcnRXaGVyZUNsYXVzZSh7XG4gICAgaWRUeXBlLFxuICAgIG1vZGVsLFxuICAgIHdoZXJlLFxuICAgIHBheWxvYWRcbiAgfToge1xuICAgIGlkVHlwZTogJ251bWJlcicgfCAndGV4dCdcbiAgICBtb2RlbDogTW9kZWxLZXlcbiAgICB3aGVyZT86IFdoZXJlW11cbiAgICBwYXlsb2FkOiBCYXNlUGF5bG9hZFxuICB9KTogUGF5bG9hZFdoZXJlIHtcbiAgICAvLyBIYW5kbGUgZW1wdHkgd2hlcmUgY2xhdXNlXG4gICAgaWYgKCF3aGVyZSkgcmV0dXJuIHt9XG5cbiAgICBmdW5jdGlvbiBnZXRQYXlsb2FkRmllbGROYW1lKGZpZWxkS2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIGdldENvbGxlY3Rpb25GaWVsZE5hbWVCeUZpZWxkS2V5VW50eXBlZChnZXRDb2xsZWN0aW9uQnlNb2RlbEtleShwYXlsb2FkLmNvbGxlY3Rpb25zLCBtb2RlbCksIGZpZWxkS2V5KVxuICAgIH1cblxuICAgIC8vIEhhbmRsZSBzaW5nbGUgY29uZGl0aW9uIGNhc2UgZm9yIG9wdGltaXphdGlvblxuICAgIGlmICh3aGVyZS5sZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IHcgPSB3aGVyZVswXVxuICAgICAgaWYgKCF3KSB7XG4gICAgICAgIHJldHVybiB7fVxuICAgICAgfVxuXG4gICAgICAvLyBNYXAgZmllbGQgbmFtZSBhY2NvcmRpbmcgdG8gc2NoZW1hIGFuZCBjb252ZXJ0IHZhbHVlIHRvIGFwcHJvcHJpYXRlIHR5cGVcbiAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGdldEZpZWxkTmFtZShtb2RlbCwgdy5maWVsZClcbiAgICAgIGNvbnN0IHZhbHVlID0gY29udmVydFdoZXJlVmFsdWUoe1xuICAgICAgICB2YWx1ZTogdy52YWx1ZSxcbiAgICAgICAgZmllbGROYW1lLFxuICAgICAgICBpZFR5cGVcbiAgICAgIH0pXG5cbiAgICAgIC8vIENyZWF0ZSB0aGUgUGF5bG9hZCB3aGVyZSBjb25kaXRpb24gd2l0aCBwcm9wZXIgb3BlcmF0b3JcbiAgICAgIGNvbnN0IHJlcyA9IHtcbiAgICAgICAgW2dldFBheWxvYWRGaWVsZE5hbWUoZmllbGROYW1lKV06IG9wZXJhdG9yVG9QYXlsb2FkKHcub3BlcmF0b3IgPz8gJycsIHZhbHVlKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzXG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIG11bHRpcGxlIGNvbmRpdGlvbnMgYnkgc2VwYXJhdGluZyBBTkQvT1IgY2xhdXNlc1xuICAgIC8vIERlZmF1bHQgdG8gQU5EIGlmIG5vIGNvbm5lY3RvciBpcyBzcGVjaWZpZWRcbiAgICBjb25zdCBhbmQgPSB3aGVyZS5maWx0ZXIoKHcpID0+IHcuY29ubmVjdG9yID09PSAnQU5EJyB8fCAhdy5jb25uZWN0b3IpXG4gICAgY29uc3Qgb3IgPSB3aGVyZS5maWx0ZXIoKHcpID0+IHcuY29ubmVjdG9yID09PSAnT1InKVxuXG4gICAgLy8gUHJvY2VzcyBBTkQgY29uZGl0aW9uc1xuICAgIGNvbnN0IGFuZENsYXVzZSA9IGFuZC5tYXAoKHcpID0+IHtcbiAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGdldEZpZWxkTmFtZShtb2RlbCwgdy5maWVsZClcbiAgICAgIGNvbnN0IHZhbHVlID0gY29udmVydFdoZXJlVmFsdWUoe1xuICAgICAgICB2YWx1ZTogdy52YWx1ZSxcbiAgICAgICAgZmllbGROYW1lLFxuICAgICAgICBpZFR5cGVcbiAgICAgIH0pXG4gICAgICByZXR1cm4ge1xuICAgICAgICBbZ2V0UGF5bG9hZEZpZWxkTmFtZShmaWVsZE5hbWUpXTogb3BlcmF0b3JUb1BheWxvYWQody5vcGVyYXRvciA/PyAnJywgdmFsdWUpXG4gICAgICB9XG4gICAgfSlcblxuICAgIC8vIFByb2Nlc3MgT1IgY29uZGl0aW9uc1xuICAgIGNvbnN0IG9yQ2xhdXNlID0gb3IubWFwKCh3KSA9PiB7XG4gICAgICBjb25zdCBmaWVsZE5hbWUgPSBnZXRGaWVsZE5hbWUobW9kZWwsIHcuZmllbGQpXG4gICAgICBjb25zdCB2YWx1ZSA9IGNvbnZlcnRXaGVyZVZhbHVlKHtcbiAgICAgICAgdmFsdWU6IHcudmFsdWUsXG4gICAgICAgIGZpZWxkTmFtZSxcbiAgICAgICAgaWRUeXBlXG4gICAgICB9KVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgW2dldFBheWxvYWRGaWVsZE5hbWUoZmllbGROYW1lKV06IG9wZXJhdG9yVG9QYXlsb2FkKHcub3BlcmF0b3IgPz8gJycsIHZhbHVlKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICAvLyBDb21iaW5lIEFORCBhbmQgT1IgY2xhdXNlcyBpbnRvIGZpbmFsIFBheWxvYWQgd2hlcmUgb2JqZWN0XG4gICAgLy8gT25seSBpbmNsdWRlIG5vbi1lbXB0eSBjbGF1c2UgYXJyYXlzXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLihhbmRDbGF1c2UubGVuZ3RoID8geyBBTkQ6IGFuZENsYXVzZSB9IDoge30pLFxuICAgICAgLi4uKG9yQ2xhdXNlLmxlbmd0aCA/IHsgT1I6IG9yQ2xhdXNlIH0gOiB7fSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBiZXR0ZXItYXV0aCBzZWxlY3QgYXJyYXkgdG8gYSBQYXlsb2FkIHNlbGVjdCBvYmplY3RcbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiB0cmFuc2Zvcm1zIHRoZSBiZXR0ZXItYXV0aCBzZWxlY3QgYXJyYXkgKHdoaWNoIGNvbnRhaW5zIGZpZWxkIG5hbWVzKVxuICAgKiBpbnRvIHRoZSBmb3JtYXQgZXhwZWN0ZWQgYnkgUGF5bG9hZCBDTVMncyBxdWVyeSBBUEkgKGFuIG9iamVjdCB3aXRoIGZpZWxkIG5hbWVzIGFzIGtleXNcbiAgICogYW5kIGJvb2xlYW4gdHJ1ZSBhcyB2YWx1ZXMpLlxuICAgKlxuICAgKiBJdCBhbHNvIGhhbmRsZXMgZmllbGQgbmFtZSBtYXBwaW5nIGJldHdlZW4gYmV0dGVyLWF1dGggc2NoZW1hIGFuZCBQYXlsb2FkIGNvbGxlY3Rpb25zXG4gICAqIGJ5IHVzaW5nIHRoZSBnZXRGaWVsZE5hbWUgaGVscGVyIHRvIHJlc29sdmUgdGhlIGNvcnJlY3QgZmllbGQgbmFtZXMuXG4gICAqXG4gICAqIEBwYXJhbSBtb2RlbCAtIFRoZSBtb2RlbC9jb2xsZWN0aW9uIG5hbWUgdG8gZ2V0IGZpZWxkIG1hcHBpbmdzIGZyb21cbiAgICogQHBhcmFtIHNlbGVjdCAtIE9wdGlvbmFsIGFycmF5IG9mIGZpZWxkIG5hbWVzIHRvIHNlbGVjdFxuICAgKiBAcmV0dXJucyBBIFBheWxvYWQtY29tcGF0aWJsZSBzZWxlY3Qgb2JqZWN0IG9yIHVuZGVmaW5lZCBpZiBubyBmaWVsZHMgdG8gc2VsZWN0XG4gICAqIEBleGFtcGxlXG4gICAqIC8vIElucHV0OiBbJ2VtYWlsJywgJ25hbWUnXVxuICAgKiAvLyBPdXRwdXQ6IHsgZW1haWw6IHRydWUsIG5hbWU6IHRydWUgfVxuICAgKi9cbiAgZnVuY3Rpb24gY29udmVydFNlbGVjdChtb2RlbDogTW9kZWxLZXksIHNlbGVjdD86IHN0cmluZ1tdKSB7XG4gICAgLy8gUmV0dXJuIHVuZGVmaW5lZCBpZiBzZWxlY3QgaXMgZW1wdHkgb3Igbm90IHByb3ZpZGVkXG4gICAgaWYgKCFzZWxlY3QgfHwgc2VsZWN0Lmxlbmd0aCA9PT0gMCkgcmV0dXJuIHVuZGVmaW5lZFxuXG4gICAgLy8gVHJhbnNmb3JtIHRoZSBhcnJheSBvZiBmaWVsZCBuYW1lcyBpbnRvIGEgUGF5bG9hZCBzZWxlY3Qgb2JqZWN0XG4gICAgLy8gd2hpbGUgYWxzbyBtYXBwaW5nIGFueSBmaWVsZCBuYW1lcyB0aGF0IG1pZ2h0IGJlIGRpZmZlcmVudCBpbiBQYXlsb2FkXG4gICAgcmV0dXJuIHNlbGVjdC5yZWR1Y2UoKGFjYywgZmllbGQpID0+ICh7IC4uLmFjYywgW2dldEZpZWxkTmFtZShtb2RlbCwgZmllbGQpXTogdHJ1ZSB9KSwge30pXG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBiZXR0ZXItYXV0aCBzb3J0IG9iamVjdCB0byBhIFBheWxvYWQgc29ydCBzdHJpbmdcbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiB0cmFuc2Zvcm1zIHRoZSBiZXR0ZXItYXV0aCBzb3J0IG9iamVjdCAod2hpY2ggY29udGFpbnMgZmllbGQgbmFtZSBhbmQgZGlyZWN0aW9uKVxuICAgKiBpbnRvIHRoZSBmb3JtYXQgZXhwZWN0ZWQgYnkgUGF5bG9hZCBDTVMncyBxdWVyeSBBUEkgKGEgc3RyaW5nIHdpdGggb3B0aW9uYWwgJy0nIHByZWZpeCBmb3IgZGVzY2VuZGluZyBvcmRlcikuXG4gICAqXG4gICAqIEl0IGFsc28gaGFuZGxlcyBmaWVsZCBuYW1lIG1hcHBpbmcgYmV0d2VlbiBiZXR0ZXItYXV0aCBzY2hlbWEgYW5kIFBheWxvYWQgY29sbGVjdGlvbnNcbiAgICogYnkgdXNpbmcgdGhlIGdldEZpZWxkTmFtZSBoZWxwZXIgdG8gcmVzb2x2ZSB0aGUgY29ycmVjdCBmaWVsZCBuYW1lcy5cbiAgICpcbiAgICogQHBhcmFtIG1vZGVsIC0gVGhlIG1vZGVsL2NvbGxlY3Rpb24gbmFtZSB0byBnZXQgZmllbGQgbWFwcGluZ3MgZnJvbVxuICAgKiBAcGFyYW0gc29ydEJ5IC0gT3B0aW9uYWwgb2JqZWN0IGNvbnRhaW5pbmcgZmllbGQgbmFtZSBhbmQgc29ydCBkaXJlY3Rpb25cbiAgICogQHJldHVybnMgQSBQYXlsb2FkLWNvbXBhdGlibGUgc29ydCBzdHJpbmcgb3IgdW5kZWZpbmVkIGlmIG5vIHNvcnQgc3BlY2lmaWVkXG4gICAqIEBleGFtcGxlXG4gICAqIC8vIElucHV0OiB7IGZpZWxkOiAnZW1haWwnLCBkaXJlY3Rpb246ICdkZXNjJyB9XG4gICAqIC8vIE91dHB1dDogJy1lbWFpbCdcbiAgICogLy8gSW5wdXQ6IHsgZmllbGQ6ICdjcmVhdGVkQXQnLCBkaXJlY3Rpb246ICdhc2MnIH1cbiAgICogLy8gT3V0cHV0OiAnY3JlYXRlZEF0J1xuICAgKi9cbiAgZnVuY3Rpb24gY29udmVydFNvcnQobW9kZWw6IE1vZGVsS2V5LCBzb3J0Qnk/OiB7IGZpZWxkOiBzdHJpbmc7IGRpcmVjdGlvbjogJ2FzYycgfCAnZGVzYycgfSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFzb3J0QnkpIHJldHVybiB1bmRlZmluZWRcbiAgICBjb25zdCBmaWVsZE5hbWUgPSBnZXRGaWVsZE5hbWUobW9kZWwsIHNvcnRCeS5maWVsZClcbiAgICBjb25zdCBwcmVmaXggPSBzb3J0QnkuZGlyZWN0aW9uID09PSAnZGVzYycgPyAnLScgOiAnJ1xuICAgIHJldHVybiBgJHtwcmVmaXh9JHtmaWVsZE5hbWV9YFxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBnZXRGaWVsZE5hbWUsXG4gICAgZ2V0Q29sbGVjdGlvblNsdWcsXG4gICAgc2luZ2xlSWRRdWVyeSxcbiAgICB0cmFuc2Zvcm1JbnB1dCxcbiAgICB0cmFuc2Zvcm1PdXRwdXQsXG4gICAgY29udmVydFdoZXJlQ2xhdXNlLFxuICAgIGNvbnZlcnRTZWxlY3QsXG4gICAgY29udmVydFNvcnRcbiAgfVxufVxuIl0sIm5hbWVzIjpbImdldEF1dGhUYWJsZXMiLCJnZXRDb2xsZWN0aW9uQnlNb2RlbEtleSIsImdldENvbGxlY3Rpb25GaWVsZE5hbWVCeUZpZWxkS2V5VW50eXBlZCIsImdldEZpZWxkS2V5QnlDb2xsZWN0aW9uRmllbGROYW1lIiwiY3JlYXRlVHJhbnNmb3JtIiwib3B0aW9ucyIsImVuYWJsZURlYnVnTG9ncyIsInNjaGVtYSIsImRlYnVnTG9nIiwibWVzc2FnZSIsImNvbnNvbGUiLCJsb2ciLCJnZXRDb2xsZWN0aW9uU2x1ZyIsIm1vZGVsIiwiY29sbGVjdGlvbiIsIm1vZGVsTmFtZSIsInJlc29sdmVkU2x1ZyIsImdldEZpZWxkTmFtZSIsImZpZWxkIiwiaW5jbHVkZXMiLCJmaWVsZERlZmluaXRpb24iLCJmaWVsZHMiLCJmaWVsZE5hbWUiLCJvcmlnaW5hbEZpZWxkIiwiaXNSZWxhdGlvbnNoaXBGaWVsZCIsImZpZWxkS2V5Iiwic2NoZW1hRmllbGRzIiwicmVmZXJlbmNlcyIsInVuZGVmaW5lZCIsInNpbmdsZUlkUXVlcnkiLCJ3aGVyZSIsInNvbWUiLCJpZEZpZWxkIiwiY29uZGl0aW9uIiwiQXJyYXkiLCJpc0FycmF5IiwidmFsdWUiLCJlcXVhbHMiLCJjb250YWlucyIsImxlbmd0aCIsIm5vcm1hbGl6ZURhdGEiLCJrZXkiLCJpc1JlbGF0ZWRGaWVsZCIsImlkVHlwZSIsInBhcnNlZCIsInBhcnNlSW50IiwiaXNOYU4iLCJvcmlnaW5hbCIsImNvbnZlcnRlZCIsInN0cmluZ0lkIiwiU3RyaW5nIiwibWFwIiwiaWQiLCJzcGxpdCIsInJvbGUiLCJ0cmltIiwidG9Mb3dlckNhc2UiLCJ0cmFuc2Zvcm1JbnB1dCIsImRhdGEiLCJwYXlsb2FkIiwidHJhbnNmb3JtZWREYXRhIiwiT2JqZWN0IiwiZW50cmllcyIsImZvckVhY2giLCJzY2hlbWFGaWVsZE5hbWUiLCJub3JtYWxpemVkRGF0YSIsInRhcmdldEZpZWxkTmFtZSIsInRhcmdldEZpZWxkS2V5IiwiY29sbGVjdGlvbnMiLCJ0cmFuc2Zvcm1PdXRwdXQiLCJkb2MiLCJyZXN1bHQiLCJyZWxhdGlvbnNoaXBGaWVsZHMiLCJmcm9tRW50cmllcyIsImZpbHRlciIsImRhdGVGaWVsZHMiLCJfIiwidHlwZSIsImtleXMiLCJvcmlnaW5hbFJlbGF0ZWRGaWVsZEtleSIsImZpbmQiLCJrIiwibm9ybWFsaXplRG9jdW1lbnRJZHMiLCJvcmlnaW5hbERhdGVGaWVsZEtleSIsIkRhdGUiLCJvcmlnaW5hbEtleSIsImV2ZXJ5IiwiaXRlbSIsIm9wZXJhdG9yVG9QYXlsb2FkIiwib3BlcmF0b3IiLCJub3RfZXF1YWxzIiwiZ3JlYXRlcl90aGFuIiwiZ3JlYXRlcl90aGFuX2VxdWFsIiwibGVzc190aGFuIiwibGVzc190aGFuX2VxdWFsIiwiaW4iLCJsaWtlIiwiY29udmVydFdoZXJlVmFsdWUiLCJudW1JZCIsIk51bWJlciIsImNvbnZlcnRXaGVyZUNsYXVzZSIsImdldFBheWxvYWRGaWVsZE5hbWUiLCJ3IiwicmVzIiwiYW5kIiwiY29ubmVjdG9yIiwib3IiLCJhbmRDbGF1c2UiLCJvckNsYXVzZSIsIkFORCIsIk9SIiwiY29udmVydFNlbGVjdCIsInNlbGVjdCIsInJlZHVjZSIsImFjYyIsImNvbnZlcnRTb3J0Iiwic29ydEJ5IiwicHJlZml4IiwiZGlyZWN0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxhQUFhLFFBQVEsaUJBQWdCO0FBSzlDLFNBQ0VDLHVCQUF1QixFQUN2QkMsdUNBQXVDLEVBQ3ZD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
|
|
704
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9hZGFwdGVyL3RyYW5zZm9ybS9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRBdXRoVGFibGVzIH0gZnJvbSAnYmV0dGVyLWF1dGgvZGInXG5pbXBvcnQgdHlwZSB7IE1vZGVsS2V5IH0gZnJvbSAnQC9iZXR0ZXItYXV0aC9nZW5lcmF0ZWQtdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEJldHRlckF1dGhPcHRpb25zLCBXaGVyZSB9IGZyb20gJ2JldHRlci1hdXRoJ1xuaW1wb3J0IHR5cGUgeyBEQkZpZWxkQXR0cmlidXRlIH0gZnJvbSAnYmV0dGVyLWF1dGgvZGInXG5pbXBvcnQgdHlwZSB7IEJhc2VQYXlsb2FkLCBDb2xsZWN0aW9uU2x1ZywgV2hlcmUgYXMgUGF5bG9hZFdoZXJlIH0gZnJvbSAncGF5bG9hZCdcbmltcG9ydCB7XG4gIGdldENvbGxlY3Rpb25CeU1vZGVsS2V5LFxuICBnZXRDb2xsZWN0aW9uRmllbGROYW1lQnlGaWVsZEtleVVudHlwZWQsXG4gIGdldEZpZWxkS2V5QnlDb2xsZWN0aW9uRmllbGROYW1lXG59IGZyb20gJ0AvYmV0dGVyLWF1dGgvcGx1Z2luL2hlbHBlcnMvZ2V0LWNvbGxlY3Rpb24nXG5cbmV4cG9ydCBjb25zdCBjcmVhdGVUcmFuc2Zvcm0gPSAob3B0aW9uczogQmV0dGVyQXV0aE9wdGlvbnMsIGVuYWJsZURlYnVnTG9nczogYm9vbGVhbikgPT4ge1xuICBjb25zdCBzY2hlbWEgPSBnZXRBdXRoVGFibGVzKG9wdGlvbnMpXG5cbiAgZnVuY3Rpb24gZGVidWdMb2cobWVzc2FnZTogYW55W10pIHtcbiAgICBpZiAoZW5hYmxlRGVidWdMb2dzKSB7XG4gICAgICBjb25zb2xlLmxvZyhgW3BheWxvYWQtZGItYWRhcHRlcl1gLCAuLi5tZXNzYWdlKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNYXBzIGEgQmV0dGVyQXV0aCBzY2hlbWEgbW9kZWwgbmFtZSB0byBpdHMgY29ycmVzcG9uZGluZyBQYXlsb2FkIENNUyBjb2xsZWN0aW9uIHNsdWcuXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gcmVzb2x2ZXMgdGhlIGFwcHJvcHJpYXRlIGNvbGxlY3Rpb24gc2x1ZyBieTpcbiAgICogMS4gTG9va2luZyB1cCB0aGUgbW9kZWwgaW4gdGhlIEJldHRlckF1dGggc2NoZW1hIHRvIGZpbmQgaXRzIGNvbmZpZ3VyZWQgbW9kZWxOYW1lXG4gICAqIDIuIEZhbGxpbmcgYmFjayB0byB0aGUgb3JpZ2luYWwgbW9kZWwgbmFtZSBpZiBubyBtYXBwaW5nIGV4aXN0c1xuICAgKlxuICAgKiBDb2xsZWN0aW9uIHNsdWcgcmVzb2x1dGlvbiBmb2xsb3dzIHRoZXNlIHJ1bGVzOlxuICAgKiAtIEZvciBiYXNlIGNvbGxlY3Rpb25zOiBUaGUgc2FuaXRpemVCZXR0ZXJBdXRoT3B0aW9ucyBmdW5jdGlvbiBlbnN1cmVzIHRoZSBjb2xsZWN0aW9uIHNsdWdcbiAgICogICBmcm9tIHBsdWdpbiBvcHRpb25zIGlzIHNldCBhcyB0aGUgbW9kZWwgbmFtZSBpbiB0aGUgc2NoZW1hXG4gICAqIC0gRm9yIHBsdWdpbnM6IFRoZSBiZXR0ZXJBdXRoUGx1Z2luU2x1Z3MgY29uc3RhbnQgaXMgdXNlZCBhcyB0aGUgbW9kZWxOYW1lXG4gICAqXG4gICAqIEBwYXJhbSBtb2RlbCAtIFRoZSBCZXR0ZXJBdXRoIG1vZGVsIG5hbWUgdG8gcmVzb2x2ZVxuICAgKiBAcmV0dXJucyBUaGUgY29ycmVzcG9uZGluZyBQYXlsb2FkIENNUyBjb2xsZWN0aW9uIHNsdWdcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gSWYgc2NoZW1hWyd1c2VyJ10ubW9kZWxOYW1lIGlzICd1c2VycydcbiAgICogZ2V0Q29sbGVjdGlvblNsdWcoJ3VzZXInKSAvLyBSZXR1cm5zICd1c2VycydcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gSWYgbW9kZWwgZG9lc24ndCBleGlzdCBpbiBzY2hlbWFcbiAgICogZ2V0Q29sbGVjdGlvblNsdWcoJ2N1c3RvbScpIC8vIFJldHVybnMgJ2N1c3RvbSdcbiAgICpcbiAgICogQHdhcm5pbmcgSWYgYSBjb2xsZWN0aW9uIGlzIG92ZXJyaWRkZW4gdXNpbmcgdGhlIGNvbGxlY3Rpb25PdmVycmlkZSBvcHRpb25cbiAgICogd2l0aG91dCB1cGRhdGluZyB0aGUgc2NoZW1hIG1hcHBpbmcsIHRoaXMgZnVuY3Rpb24gbWF5IHJldHVybiBpbmNvcnJlY3Qgc2x1Z3NcbiAgICovXG4gIGZ1bmN0aW9uIGdldENvbGxlY3Rpb25TbHVnKG1vZGVsOiBNb2RlbEtleSk6IENvbGxlY3Rpb25TbHVnIHtcbiAgICAvLyBGaXJzdCB0cnkgdG8gZ2V0IHRoZSBtb2RlbE5hbWUgZnJvbSBzY2hlbWEsIG90aGVyd2lzZSBmYWxsIGJhY2sgdG8gdGhlIG9yaWdpbmFsIG1vZGVsIG5hbWVcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gc2NoZW1hPy5bbW9kZWxdPy5tb2RlbE5hbWUgfHwgbW9kZWxcbiAgICBkZWJ1Z0xvZyhbJ2dldENvbGxlY3Rpb25TbHVnOicsIHsgbW9kZWwsIHJlc29sdmVkU2x1ZzogY29sbGVjdGlvbiB9XSlcbiAgICByZXR1cm4gY29sbGVjdGlvbiBhcyBDb2xsZWN0aW9uU2x1Z1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcHMgYSBCZXR0ZXJBdXRoIHNjaGVtYSBmaWVsZCB0byBpdHMgY29ycmVzcG9uZGluZyBQYXlsb2FkIENNUyBmaWVsZCBuYW1lLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHJlc29sdmVzIHRoZSBhcHByb3ByaWF0ZSBmaWVsZCBuYW1lIGJ5OlxuICAgKiAxLiBQcmVzZXJ2aW5nICdpZCcgb3IgJ19pZCcgZmllbGRzIGFzLWlzIChzcGVjaWFsIGNhc2UgaGFuZGxpbmcpXG4gICAqIDIuIExvb2tpbmcgdXAgdGhlIGZpZWxkIGluIHRoZSBCZXR0ZXJBdXRoIHNjaGVtYSB0byBmaW5kIGl0cyBjb25maWd1cmVkIGZpZWxkTmFtZVxuICAgKiAzLiBGYWxsaW5nIGJhY2sgdG8gdGhlIG9yaWdpbmFsIGZpZWxkIG5hbWUgaWYgbm8gbWFwcGluZyBleGlzdHNcbiAgICpcbiAgICogQHBhcmFtIG1vZGVsIC0gVGhlIEJldHRlckF1dGggbW9kZWwgbmFtZSBjb250YWluaW5nIHRoZSBmaWVsZFxuICAgKiBAcGFyYW0gZmllbGQgLSBUaGUgb3JpZ2luYWwgZmllbGQgbmFtZSB0byByZXNvbHZlXG4gICAqIEByZXR1cm5zIFRoZSBjb3JyZXNwb25kaW5nIFBheWxvYWQgQ01TIGZpZWxkIG5hbWVcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gSWYgc2NoZW1hWyd1c2VyJ10uZmllbGRzWydlbWFpbCddLmZpZWxkTmFtZSBpcyAnZW1haWxBZGRyZXNzJ1xuICAgKiBnZXRGaWVsZE5hbWUoJ3VzZXInLCAnZW1haWwnKSAvLyBSZXR1cm5zICdlbWFpbEFkZHJlc3MnXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIC8vIFNwZWNpYWwgY2FzZSBmb3IgSUQgZmllbGRzXG4gICAqIGdldEZpZWxkTmFtZSgndXNlcicsICdpZCcpIC8vIEFsd2F5cyByZXR1cm5zICdpZCdcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gSWYgZmllbGQgZG9lc24ndCBleGlzdCBpbiBzY2hlbWEgb3IgaGFzIG5vIGZpZWxkTmFtZSBtYXBwaW5nXG4gICAqIGdldEZpZWxkTmFtZSgndXNlcicsICdjdXN0b20nKSAvLyBSZXR1cm5zICdjdXN0b20nXG4gICAqXG4gICAqIEB3YXJuaW5nIElmIGEgZmllbGROYW1lIGlzIG92ZXJyaWRkZW4gaW4gdGhlIHBheWxvYWQgY29sbGVjdGlvbiBjb25maWcgdXNpbmcgdGhlIGNvbGxlY3Rpb25PdmVycmlkZSBvcHRpb25cbiAgICogd2l0aG91dCB1cGRhdGluZyB0aGUgc2NoZW1hIG1hcHBpbmcsIHRoaXMgZnVuY3Rpb24gbWF5IHJldHVybiBpbmNvcnJlY3QgZmllbGQgbmFtZXNcbiAgICovXG4gIGZ1bmN0aW9uIGdldEZpZWxkTmFtZShtb2RlbDogTW9kZWxLZXksIGZpZWxkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIFNwZWNpYWwgY2FzZTogJ2lkJyBvciAnX2lkJyBpcyBhbHdheXMgcHJlc2VydmVkIGFzLWlzXG4gICAgaWYgKFsnaWQnLCAnX2lkJ10uaW5jbHVkZXMoZmllbGQpKSB7XG4gICAgICByZXR1cm4gZmllbGRcbiAgICB9XG5cbiAgICAvLyBMb29rIHVwIHRoZSBmaWVsZCBpbiB0aGUgc2NoZW1hXG4gICAgY29uc3QgZmllbGREZWZpbml0aW9uID0gc2NoZW1hW21vZGVsXT8uZmllbGRzW2ZpZWxkXVxuXG4gICAgLy8gVXNlIHRoZSBjb25maWd1cmVkIGZpZWxkTmFtZSBpZiBhdmFpbGFibGUsIG90aGVyd2lzZSBmYWxsIGJhY2sgdG8gb3JpZ2luYWxcbiAgICBjb25zdCBmaWVsZE5hbWUgPSBmaWVsZERlZmluaXRpb24/LmZpZWxkTmFtZSB8fCBmaWVsZFxuXG4gICAgLy8gTG9nIHRoZSBmaWVsZCByZXNvbHV0aW9uIGZvciBkZWJ1Z2dpbmdcbiAgICBkZWJ1Z0xvZyhbJ2dldEZpZWxkOiAnLCB7IG1vZGVsLCBvcmlnaW5hbEZpZWxkOiBmaWVsZCwgZmllbGROYW1lIH1dKVxuXG4gICAgcmV0dXJuIGZpZWxkTmFtZVxuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYSBmaWVsZCBpcyBhIHJlbGF0aW9uc2hpcCBmaWVsZCBieSBjaGVja2luZyBmb3IgYSByZWZlcmVuY2VzIHByb3BlcnR5LlxuICAgKlxuICAgKiBSZWxhdGlvbnNoaXAgZmllbGRzIGluIHRoZSBzY2hlbWEgaGF2ZSBhICdyZWZlcmVuY2VzJyBwcm9wZXJ0eSB0aGF0IHBvaW50cyB0byBhbm90aGVyIG1vZGVsLlxuICAgKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBpZiB0aGlzIHByb3BlcnR5IGV4aXN0cyB0byBpZGVudGlmeSByZWxhdGlvbnNoaXAgZmllbGRzLlxuICAgKlxuICAgKiBAcGFyYW0gZmllbGRLZXkgLSBUaGUga2V5IG9mIHRoZSBmaWVsZCB0byBjaGVjayBpbiB0aGUgc2NoZW1hXG4gICAqIEBwYXJhbSBzY2hlbWFGaWVsZHMgLSBPYmplY3QgY29udGFpbmluZyBhbGwgZmllbGRzIGZyb20gdGhlIHNjaGVtYSBmb3IgYSBzcGVjaWZpYyBtb2RlbFxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBmaWVsZCBpcyBhIHJlbGF0aW9uc2hpcCBmaWVsZCAoaGFzIHJlZmVyZW5jZXMpLCBmYWxzZSBvdGhlcndpc2VcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gSWYgc2NoZW1hLnVzZXIuZmllbGRzLnBvc3RzIGhhcyB7IHJlZmVyZW5jZXM6IHt9IH1cbiAgICogaXNSZWxhdGlvbnNoaXBGaWVsZCgncG9zdHMnLCBzY2hlbWEudXNlci5maWVsZHMpIC8vIFJldHVybnMgdHJ1ZVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBJZiBzY2hlbWEudXNlci5maWVsZHMuZW1haWwgaGFzIG5vIHJlZmVyZW5jZXMgcHJvcGVydHlcbiAgICogaXNSZWxhdGlvbnNoaXBGaWVsZCgnZW1haWwnLCBzY2hlbWEudXNlci5maWVsZHMpIC8vIFJldHVybnMgZmFsc2VcbiAgICovXG4gIGZ1bmN0aW9uIGlzUmVsYXRpb25zaGlwRmllbGQoZmllbGRLZXk6IHN0cmluZywgc2NoZW1hRmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBEQkZpZWxkQXR0cmlidXRlPik6IGJvb2xlYW4ge1xuICAgIC8vIEEgZmllbGQgaXMgYSByZWxhdGlvbnNoaXAgZmllbGQgaWYgaXQgaGFzIGEgJ3JlZmVyZW5jZXMnIHByb3BlcnR5IGRlZmluZWRcbiAgICByZXR1cm4gc2NoZW1hRmllbGRzW2ZpZWxkS2V5XT8ucmVmZXJlbmNlcyAhPT0gdW5kZWZpbmVkXG4gIH1cbiAgLyoqXG4gICAqIEV4dHJhY3RzIGEgc2luZ2xlIElEIHZhbHVlIGZyb20gYSBQYXlsb2FkIHdoZXJlIGNsYXVzZSBpZiBpdCByZXByZXNlbnRzIGEgc2ltcGxlIElEIHF1ZXJ5LlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGFuYWx5emVzIGEgUGF5bG9hZCB3aGVyZSBjbGF1c2UgdG8gZGV0ZXJtaW5lIGlmIGl0J3MgYSBzaW1wbGUgcXVlcnkgZm9yIGFcbiAgICogc2luZ2xlIGRvY3VtZW50IGJ5IElELiBJdCBzdXBwb3J0cyBib3RoICdpZCcgYW5kICdfaWQnIGZpZWxkcyB3aXRoICdlcXVhbHMnIG9yICdjb250YWlucydcbiAgICogb3BlcmF0b3JzLiBUaGlzIGlzIHVzZWZ1bCBmb3Igb3B0aW1pemluZyBxdWVyaWVzIHdoZW4gd2Ugb25seSBuZWVkIHRvIGZldGNoIGEgc2luZ2xlIGRvY3VtZW50LlxuICAgKlxuICAgKiBAcGFyYW0gd2hlcmUgLSBUaGUgUGF5bG9hZCB3aGVyZSBjbGF1c2UgdG8gYW5hbHl6ZVxuICAgKiBAcmV0dXJucyBUaGUgSUQgdmFsdWUgKHN0cmluZyBvciBudW1iZXIpIGlmIHRoZSB3aGVyZSBjbGF1c2UgaXMgYSBzaW1wbGUgSUQgcXVlcnksIG51bGwgb3RoZXJ3aXNlXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIC8vIFJldHVybnMgJzEyMycgZm9yIGEgc2ltcGxlIGVxdWFscyBxdWVyeVxuICAgKiBzaW5nbGVJZFF1ZXJ5KHsgaWQ6IHsgZXF1YWxzOiAnMTIzJyB9IH0pIC8vICcxMjMnXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIC8vIFJldHVybnMgNDU2IGZvciBhIHNpbXBsZSBlcXVhbHMgcXVlcnkgd2l0aCBudW1iZXIgSURcbiAgICogc2luZ2xlSWRRdWVyeSh7IF9pZDogeyBlcXVhbHM6IDQ1NiB9IH0pIC8vIDQ1NlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBSZXR1cm5zICc3ODknIGZvciBhIGNvbnRhaW5zIHF1ZXJ5IHdpdGggYSBzaW5nbGUgdmFsdWVcbiAgICogc2luZ2xlSWRRdWVyeSh7IGlkOiB7IGNvbnRhaW5zOiBbJzc4OSddIH0gfSkgLy8gJzc4OSdcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gUmV0dXJucyBudWxsIGZvciBjb21wbGV4IHF1ZXJpZXNcbiAgICogc2luZ2xlSWRRdWVyeSh7IGFuZDogW3sgaWQ6IHsgZXF1YWxzOiAnMTIzJyB9IH1dIH0pIC8vIG51bGxcbiAgICovXG4gIGZ1bmN0aW9uIHNpbmdsZUlkUXVlcnkod2hlcmU6IFBheWxvYWRXaGVyZSkge1xuICAgIC8vIFJldHVybiBudWxsIGZvciBlbXB0eSB3aGVyZSBjbGF1c2VzIG9yIGNvbXBsZXggcXVlcmllcyB3aXRoICdhbmQnLydvcicgb3BlcmF0b3JzXG4gICAgaWYgKCF3aGVyZSB8fCAnYW5kJyBpbiB3aGVyZSB8fCAnb3InIGluIHdoZXJlKSByZXR1cm4gbnVsbFxuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIHdoZXJlIGNsYXVzZSBjb250YWlucyBlaXRoZXIgJ2lkJyBvciAnX2lkJyBmaWVsZFxuICAgIGlmIChbJ2lkJywgJ19pZCddLnNvbWUoKGZpZWxkKSA9PiBmaWVsZCBpbiB3aGVyZSkpIHtcbiAgICAgIC8vIERldGVybWluZSB3aGljaCBJRCBmaWVsZCBpcyBiZWluZyB1c2VkIChzdXBwb3J0IGJvdGggJ2lkJyBhbmQgJ19pZCcpXG4gICAgICBjb25zdCBpZEZpZWxkID0gJ2lkJyBpbiB3aGVyZSA/ICdpZCcgOiAnX2lkJ1xuICAgICAgY29uc3QgY29uZGl0aW9uID0gd2hlcmVbaWRGaWVsZF1cblxuICAgICAgLy8gUHJvY2VzcyB0aGUgZXF1YWxzIG9wZXJhdG9yIGNhc2VcbiAgICAgIGlmIChjb25kaXRpb24gJiYgdHlwZW9mIGNvbmRpdGlvbiA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoY29uZGl0aW9uKSAmJiAnZXF1YWxzJyBpbiBjb25kaXRpb24pIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBjb25kaXRpb24uZXF1YWxzXG4gICAgICAgIC8vIE9ubHkgcmV0dXJuIHN0cmluZyBvciBudW1iZXIgSUQgdmFsdWVzXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBQcm9jZXNzIHRoZSBjb250YWlucyBvcGVyYXRvciBjYXNlIHdpdGggYSBzaW5nbGUgdmFsdWVcbiAgICAgIGlmIChcbiAgICAgICAgY29uZGl0aW9uICYmXG4gICAgICAgIHR5cGVvZiBjb25kaXRpb24gPT09ICdvYmplY3QnICYmXG4gICAgICAgICFBcnJheS5pc0FycmF5KGNvbmRpdGlvbikgJiZcbiAgICAgICAgJ2NvbnRhaW5zJyBpbiBjb25kaXRpb24gJiZcbiAgICAgICAgQXJyYXkuaXNBcnJheShjb25kaXRpb24uY29udGFpbnMpICYmXG4gICAgICAgIGNvbmRpdGlvbi5jb250YWlucy5sZW5ndGggPT09IDFcbiAgICAgICkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGNvbmRpdGlvbi5jb250YWluc1swXVxuICAgICAgICAvLyBPbmx5IHJldHVybiBzdHJpbmcgb3IgbnVtYmVyIElEIHZhbHVlc1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gbnVsbCBpZiBubyB2YWxpZCBJRCBxdWVyeSB3YXMgZm91bmRcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIE5vcm1hbGl6ZXMgZGF0YSB2YWx1ZXMgYmFzZWQgb24gZmllbGQgdHlwZSBhbmQgcmVxdWlyZWQgSUQgdHlwZVxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGhhbmRsZXMgdHlwZSBjb252ZXJzaW9uIGZvciByZWxhdGlvbnNoaXAgZmllbGRzIHRvIGVuc3VyZVxuICAgKiBJRHMgYXJlIGluIHRoZSBjb3JyZWN0IGZvcm1hdCAoc3RyaW5nIG9yIG51bWJlcikgYmFzZWQgb24gdGhlIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUgZmllbGQga2V5L25hbWVcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIG5vcm1hbGl6ZVxuICAgKiBAcGFyYW0gaXNSZWxhdGVkRmllbGQgLSBXaGV0aGVyIHRoaXMgZmllbGQgaXMgYSByZWxhdGlvbnNoaXAgZmllbGRcbiAgICogQHBhcmFtIGlkVHlwZSAtIFRoZSBleHBlY3RlZCBJRCB0eXBlICgnbnVtYmVyJyBvciAndGV4dCcpXG4gICAqIEByZXR1cm5zIFRoZSBub3JtYWxpemVkIHZhbHVlXG4gICAqL1xuICBmdW5jdGlvbiBub3JtYWxpemVEYXRhKHtcbiAgICBrZXksXG4gICAgdmFsdWUsXG4gICAgaXNSZWxhdGVkRmllbGQsXG4gICAgaWRUeXBlXG4gIH06IHtcbiAgICBrZXk6IHN0cmluZ1xuICAgIHZhbHVlOiBhbnlcbiAgICBpc1JlbGF0ZWRGaWVsZDogYm9vbGVhblxuICAgIGlkVHlwZTogJ251bWJlcicgfCAndGV4dCdcbiAgfSkge1xuICAgIC8vIFNraXAgcHJvY2Vzc2luZyBmb3IgbnVsbC91bmRlZmluZWQgdmFsdWVzXG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB2YWx1ZVxuICAgIH1cblxuICAgIGlmIChbJ2lkJywgJ19pZCddLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIGlkVHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VJbnQodmFsdWUsIDEwKVxuICAgICAgICBpZiAoIWlzTmFOKHBhcnNlZCkpIHtcbiAgICAgICAgICBkZWJ1Z0xvZyhbYElEIGNvbnZlcnNpb246ICR7a2V5fSBjb252ZXJ0aW5nIHN0cmluZyBJRCB0byBudW1iZXJgLCB7IG9yaWdpbmFsOiB2YWx1ZSwgY29udmVydGVkOiBwYXJzZWQgfV0pXG4gICAgICAgICAgcmV0dXJuIHBhcnNlZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBpZFR5cGUgPT09ICd0ZXh0Jykge1xuICAgICAgICBjb25zdCBzdHJpbmdJZCA9IFN0cmluZyh2YWx1ZSlcbiAgICAgICAgZGVidWdMb2coW2BJRCBjb252ZXJzaW9uOiAke2tleX0gY29udmVydGluZyBudW1iZXIgSUQgdG8gc3RyaW5nYCwgeyBvcmlnaW5hbDogdmFsdWUsIGNvbnZlcnRlZDogc3RyaW5nSWQgfV0pXG4gICAgICAgIHJldHVybiBzdHJpbmdJZFxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE9ubHkgcHJvY2VzcyByZWxhdGlvbnNoaXAgZmllbGRzIHRoYXQgbmVlZCB0eXBlIGNvbnZlcnNpb25cbiAgICBpZiAoaXNSZWxhdGVkRmllbGQpIHtcbiAgICAgIC8vIEhhbmRsZSBzaW5nbGUgSUQgdmFsdWUgY29udmVyc2lvblxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgaWRUeXBlID09PSAnbnVtYmVyJykge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUludCh2YWx1ZSwgMTApXG4gICAgICAgIGlmICghaXNOYU4ocGFyc2VkKSkge1xuICAgICAgICAgIGRlYnVnTG9nKFtgSUQgY29udmVyc2lvbjogJHtrZXl9IGNvbnZlcnRpbmcgc3RyaW5nIElEIHRvIG51bWJlcmAsIHsgb3JpZ2luYWw6IHZhbHVlLCBjb252ZXJ0ZWQ6IHBhcnNlZCB9XSlcbiAgICAgICAgICByZXR1cm4gcGFyc2VkXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBpZFR5cGUgPT09ICd0ZXh0Jykge1xuICAgICAgICBjb25zdCBzdHJpbmdJZCA9IFN0cmluZyh2YWx1ZSlcbiAgICAgICAgZGVidWdMb2coW2BJRCBjb252ZXJzaW9uOiAke2tleX0gY29udmVydGluZyBudW1iZXIgSUQgdG8gc3RyaW5nYCwgeyBvcmlnaW5hbDogdmFsdWUsIGNvbnZlcnRlZDogc3RyaW5nSWQgfV0pXG4gICAgICAgIHJldHVybiBzdHJpbmdJZFxuICAgICAgfVxuXG4gICAgICAvLyBIYW5kbGUgYXJyYXkgb2YgSURzIC0gbWFwIGVhY2ggdmFsdWUgdG8gdGhlIGNvcnJlY3QgdHlwZVxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZS5tYXAoKGlkKSA9PiB7XG4gICAgICAgICAgLy8gU2tpcCBudWxsL3VuZGVmaW5lZCB2YWx1ZXMgaW4gYXJyYXlzXG4gICAgICAgICAgaWYgKGlkID09PSBudWxsIHx8IGlkID09PSB1bmRlZmluZWQpIHJldHVybiBpZFxuXG4gICAgICAgICAgaWYgKGlkVHlwZSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGlkID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VJbnQoaWQsIDEwKVxuICAgICAgICAgICAgcmV0dXJuICFpc05hTihwYXJzZWQpID8gcGFyc2VkIDogaWRcbiAgICAgICAgICB9IGVsc2UgaWYgKGlkVHlwZSA9PT0gJ3RleHQnICYmIHR5cGVvZiBpZCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcoaWQpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBpZFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhhbmRsZSByb2xlIGZpZWxkcyAoQ29taW5nIGZyb20gYmV0dGVyIGF1dGgsIHdpbGwgYmUgYSBzaW5nbGUgc3RyaW5nIHNlcGVyYXRlZCBieSBjb21tYXMgaWYgdGhlcmVzIG11bHRpcGxlIHJvbGVzKVxuICAgIGlmIChrZXkgPT09ICdyb2xlJyB8fCBrZXkgPT09ICdyb2xlcycpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5zcGxpdCgnLCcpLm1hcCgocm9sZTogc3RyaW5nKSA9PiByb2xlLnRyaW0oKS50b0xvd2VyQ2FzZSgpKVxuICAgIH1cblxuICAgIC8vIFJldHVybiBvcmlnaW5hbCB2YWx1ZSBpZiBubyBjb252ZXJzaW9uIHdhcyBuZWVkZWQgb3IgYXBwbGljYWJsZVxuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybXMgaW5wdXQgZGF0YSBmcm9tIGJldHRlci1hdXRoIHRvIFBheWxvYWQgQ01TIGZvcm1hdFxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGhhbmRsZXM6XG4gICAqIDEuIEZpZWxkIG5hbWUgbWFwcGluZyBhY2NvcmRpbmcgdG8gc2NoZW1hIGRlZmluaXRpb25zXG4gICAqIDIuIElEIHR5cGUgY29udmVyc2lvbiBmb3IgcmVsYXRpb25zaGlwIGZpZWxkc1xuICAgKiAzLiBQcm9wZXIgZGF0YSBub3JtYWxpemF0aW9uIGJhc2VkIG9uIGZpZWxkIHR5cGVzXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhIC0gVGhlIGlucHV0IGRhdGEgZnJvbSBiZXR0ZXItYXV0aFxuICAgKiBAcGFyYW0gbW9kZWwgLSBUaGUgbW9kZWwgbmFtZSBpbiB0aGUgc2NoZW1hXG4gICAqIEBwYXJhbSBpZFR5cGUgLSBUaGUgZXhwZWN0ZWQgSUQgdHlwZSAoJ251bWJlcicgb3IgJ3RleHQnKVxuICAgKiBAcmV0dXJucyBUcmFuc2Zvcm1lZCBkYXRhIGNvbXBhdGlibGUgd2l0aCBQYXlsb2FkIENNU1xuICAgKi9cbiAgZnVuY3Rpb24gdHJhbnNmb3JtSW5wdXQoe1xuICAgIGRhdGEsXG4gICAgbW9kZWwsXG4gICAgaWRUeXBlLFxuICAgIHBheWxvYWRcbiAgfToge1xuICAgIGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgICBtb2RlbDogTW9kZWxLZXlcbiAgICBpZFR5cGU6ICdudW1iZXInIHwgJ3RleHQnXG4gICAgcGF5bG9hZDogQmFzZVBheWxvYWRcbiAgfSk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIGNvbnN0IHRyYW5zZm9ybWVkRGF0YTogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9XG4gICAgY29uc3Qgc2NoZW1hRmllbGRzID0gc2NoZW1hPy5bbW9kZWxdPy5maWVsZHMgPz8ge31cblxuICAgIC8vIFByb2Nlc3MgZWFjaCBmaWVsZCBpbiB0aGUgaW5wdXQgZGF0YVxuICAgIE9iamVjdC5lbnRyaWVzKGRhdGEpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgLy8gU2tpcCBudWxsL3VuZGVmaW5lZCB2YWx1ZXNcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBEZXRlcm1pbmUgaWYgdGhpcyBpcyBhIHJlbGF0aW9uc2hpcCBmaWVsZFxuICAgICAgY29uc3QgaXNSZWxhdGVkRmllbGQgPSBpc1JlbGF0aW9uc2hpcEZpZWxkKGtleSwgc2NoZW1hRmllbGRzKVxuXG4gICAgICAvLyBHZXQgdGhlIG1hcHBlZCBmaWVsZCBuYW1lIGZyb20gc2NoZW1hIChpZiBhbnkpXG4gICAgICBjb25zdCBzY2hlbWFGaWVsZE5hbWUgPSBzY2hlbWFGaWVsZHNba2V5XT8uZmllbGROYW1lXG5cbiAgICAgIC8vIE5vcm1hbGl6ZSB0aGUgZGF0YSB2YWx1ZSBiYXNlZCBvbiBmaWVsZCB0eXBlIGFuZCBJRCB0eXBlXG4gICAgICBjb25zdCBub3JtYWxpemVkRGF0YSA9IG5vcm1hbGl6ZURhdGEoe1xuICAgICAgICBpZFR5cGUsXG4gICAgICAgIGtleSxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGlzUmVsYXRlZEZpZWxkXG4gICAgICB9KVxuXG4gICAgICAvLyBVc2UgdGhlIHNjaGVtYS1kZWZpbmVkIGZpZWxkIG5hbWUgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgdXNlIG9yaWdpbmFsIGtleVxuICAgICAgY29uc3QgdGFyZ2V0RmllbGROYW1lID0gc2NoZW1hRmllbGROYW1lIHx8IGtleVxuICAgICAgY29uc3QgdGFyZ2V0RmllbGRLZXkgPSBnZXRDb2xsZWN0aW9uRmllbGROYW1lQnlGaWVsZEtleVVudHlwZWQoZ2V0Q29sbGVjdGlvbkJ5TW9kZWxLZXkocGF5bG9hZC5jb2xsZWN0aW9ucywgbW9kZWwpLCB0YXJnZXRGaWVsZE5hbWUpXG4gICAgICB0cmFuc2Zvcm1lZERhdGFbdGFyZ2V0RmllbGRLZXldID0gbm9ybWFsaXplZERhdGFcbiAgICB9KVxuXG4gICAgcmV0dXJuIHRyYW5zZm9ybWVkRGF0YVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIHZhbHVlIGlzIGEgUGF5bG9hZCBqb2luIHJlc3VsdCAoaGFzIGRvY3MgYXJyYXkgc3RydWN0dXJlKVxuICAgKi9cbiAgZnVuY3Rpb24gaXNKb2luUmVzdWx0KHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyB7IGRvY3M6IGFueVtdOyBoYXNOZXh0UGFnZT86IGJvb2xlYW47IHRvdGFsRG9jcz86IG51bWJlciB9IHtcbiAgICByZXR1cm4gKFxuICAgICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICdkb2NzJyBpbiB2YWx1ZSAmJlxuICAgICAgQXJyYXkuaXNBcnJheSh2YWx1ZS5kb2NzKVxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBGbGF0dGVucyBhIFBheWxvYWQgam9pbiByZXN1bHQgdG8ganVzdCB0aGUgYXJyYXkgb2YgZG9jdW1lbnRzLlxuICAgKiBIYW5kbGVzIGJvdGggZGlyZWN0IGRvY3VtZW50cyBhbmQgcG9seW1vcnBoaWMgeyByZWxhdGlvblRvLCB2YWx1ZSB9IGZvcm1hdC5cbiAgICovXG4gIGZ1bmN0aW9uIGZsYXR0ZW5Kb2luUmVzdWx0KGpvaW5SZXN1bHQ6IHsgZG9jczogYW55W10gfSk6IGFueVtdIHtcbiAgICByZXR1cm4gam9pblJlc3VsdC5kb2NzLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgLy8gSGFuZGxlIHBvbHltb3JwaGljIGpvaW4gZm9ybWF0OiB7IHJlbGF0aW9uVG86IHN0cmluZywgdmFsdWU6IGRvYyB9XG4gICAgICBpZiAoaXRlbSAmJiB0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgJ3ZhbHVlJyBpbiBpdGVtICYmICdyZWxhdGlvblRvJyBpbiBpdGVtKSB7XG4gICAgICAgIHJldHVybiBpdGVtLnZhbHVlXG4gICAgICB9XG4gICAgICByZXR1cm4gaXRlbVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtcyBQYXlsb2FkIENNUyBkb2N1bWVudCBvdXRwdXQgdG8gbWF0Y2ggQmV0dGVyQXV0aCBzY2hlbWEgZXhwZWN0YXRpb25zLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGhhbmRsZXMgc2V2ZXJhbCBjcml0aWNhbCB0cmFuc2Zvcm1hdGlvbnM6XG4gICAqXG4gICAqIDEuIElEIENvbnZlcnNpb246IEVuc3VyZXMgYWxsIElEIGZpZWxkcyBhcmUgc3RyaW5ncyBhcyByZXF1aXJlZCBieSBCZXR0ZXJBdXRoXG4gICAqICAgIChzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9iZXR0ZXItYXV0aC9iZXR0ZXItYXV0aC9ibG9iL21haW4vcGFja2FnZXMvYmV0dGVyLWF1dGgvc3JjL2RiL3NjaGVtYS50cyNMMTI1KVxuICAgKlxuICAgKiAyLiBSZWxhdGlvbnNoaXAgRmllbGQgTWFwcGluZzogQWxpZ25zIHJlbGF0aW9uc2hpcCBmaWVsZHMgd2l0aCBCZXR0ZXJBdXRoIHNjaGVtYSBuYW1pbmcgY29udmVudGlvbnNcbiAgICogICAgYW5kIGVuc3VyZXMgcHJvcGVyIElEIHR5cGUgaGFuZGxpbmdcbiAgICpcbiAgICogMy4gRGF0ZSBDb252ZXJzaW9uOiBUcmFuc2Zvcm1zIGRhdGUgc3RyaW5ncyBmcm9tIFBheWxvYWQgaW50byBEYXRlIG9iamVjdHMgZm9yIEJldHRlckF1dGhcbiAgICpcbiAgICogNC4gSm9pbiBSZXN1bHQgRmxhdHRlbmluZzogQ29udmVydHMgUGF5bG9hZCdzIHsgZG9jczogWy4uLl0gfSBqb2luIGZvcm1hdCB0byBwbGFpbiBhcnJheXNcbiAgICpcbiAgICogTm90ZTogV2hpbGUgc2V0dGluZyBkZXB0aDogMSBpbiBQYXlsb2FkIG9wZXJhdGlvbnMgc2ltcGxpZmllcyB0aGlzIHByb2Nlc3MgYnkgYXZvaWRpbmdcbiAgICogZGVlcGx5IG5lc3RlZCBvYmplY3RzLCB3ZSBtYWludGFpbiBjb21wcmVoZW5zaXZlIGNoZWNrcyBmb3Igcm9idXN0bmVzcy5cbiAgICpcbiAgICogQHBhcmFtIGRvYyAtIFRoZSBkb2N1bWVudCByZXR1cm5lZCBmcm9tIFBheWxvYWQgQ01TXG4gICAqIEBwYXJhbSBtb2RlbCAtIFRoZSBtb2RlbCBuYW1lIGluIHRoZSBCZXR0ZXJBdXRoIHNjaGVtYVxuICAgKiBAcmV0dXJucyBUaGUgdHJhbnNmb3JtZWQgZG9jdW1lbnQgY29tcGF0aWJsZSB3aXRoIEJldHRlckF1dGhcbiAgICovXG4gIGZ1bmN0aW9uIHRyYW5zZm9ybU91dHB1dDxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiB8IG51bGw+KHtcbiAgICBkb2MsXG4gICAgbW9kZWwsXG4gICAgcGF5bG9hZFxuICB9OiB7XG4gICAgZG9jOiBUXG4gICAgbW9kZWw6IE1vZGVsS2V5XG4gICAgcGF5bG9hZDogQmFzZVBheWxvYWRcbiAgfSk6IFQge1xuICAgIGlmICghZG9jIHx8IHR5cGVvZiBkb2MgIT09ICdvYmplY3QnKSByZXR1cm4gZG9jXG5cbiAgICBjb25zdCByZXN1bHQgPSB7IC4uLmRvYyB9XG4gICAgY29uc3Qgc2NoZW1hRmllbGRzID0gc2NoZW1hPy5bbW9kZWxdPy5maWVsZHMgPz8ge31cblxuICAgIC8vIElkZW50aWZ5IHJlbGF0aW9uc2hpcCBmaWVsZHMgd2l0aCBjdXN0b20gZmllbGQgbmFtZSBtYXBwaW5nc1xuICAgIGNvbnN0IHJlbGF0aW9uc2hpcEZpZWxkcyA9IE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhzY2hlbWFGaWVsZHMpLmZpbHRlcigoW2tleV0pID0+IGlzUmVsYXRpb25zaGlwRmllbGQoa2V5LCBzY2hlbWFGaWVsZHMpKSlcbiAgICBjb25zdCBkYXRlRmllbGRzID0gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHNjaGVtYUZpZWxkcykuZmlsdGVyKChbXywgdmFsdWVdKSA9PiB2YWx1ZS50eXBlID09PSAnZGF0ZScpKVxuXG4gICAgLy8gRmlyc3QgbWFrZSBzdXJlIGFsbCB0aGUgZmllbGRzIGtleXMgYXJlIGNvcnJlY3RcbiAgICBPYmplY3Qua2V5cyhyZXN1bHQpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0RmllbGRLZXkgPSBnZXRGaWVsZEtleUJ5Q29sbGVjdGlvbkZpZWxkTmFtZShnZXRDb2xsZWN0aW9uQnlNb2RlbEtleShwYXlsb2FkLmNvbGxlY3Rpb25zLCBtb2RlbCksIGtleSlcbiAgICAgIGlmICh0YXJnZXRGaWVsZEtleSAhPT0ga2V5KSB7XG4gICAgICAgIHJlc3VsdFt0YXJnZXRGaWVsZEtleV0gPSByZXN1bHRba2V5XVxuICAgICAgICBkZWxldGUgcmVzdWx0W2tleV1cbiAgICAgIH1cbiAgICB9KVxuXG4gICAgT2JqZWN0LmVudHJpZXMoZG9jKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm5cblxuICAgICAgY29uc3QgdGFyZ2V0RmllbGRLZXkgPSBnZXRGaWVsZEtleUJ5Q29sbGVjdGlvbkZpZWxkTmFtZShnZXRDb2xsZWN0aW9uQnlNb2RlbEtleShwYXlsb2FkLmNvbGxlY3Rpb25zLCBtb2RlbCksIGtleSlcblxuICAgICAgLy8gQ29udmVydCBJRCBmaWVsZHMgdG8gc3RyaW5ncyBmb3IgQmV0dGVyQXV0aCBjb21wYXRpYmlsaXR5XG4gICAgICBpZiAoWydpZCcsICdfaWQnXS5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgIHJlc3VsdFt0YXJnZXRGaWVsZEtleV0gPSBTdHJpbmcodmFsdWUpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBGbGF0dGVuIGpvaW4gcmVzdWx0cyBmcm9tIHsgZG9jczogWy4uLl0gfSB0byBwbGFpbiBhcnJheXNcbiAgICAgIGlmIChpc0pvaW5SZXN1bHQodmFsdWUpKSB7XG4gICAgICAgIGRlYnVnTG9nKFsndHJhbnNmb3JtT3V0cHV0OiBmbGF0dGVuaW5nIGpvaW4gcmVzdWx0JywgeyBrZXksIHRhcmdldEZpZWxkS2V5LCBpc0FycmF5OiBBcnJheS5pc0FycmF5KHZhbHVlLmRvY3MpIH1dKVxuICAgICAgICByZXN1bHRbdGFyZ2V0RmllbGRLZXldID0gZmxhdHRlbkpvaW5SZXN1bHQodmFsdWUpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBIYW5kbGUgcmVsYXRpb25zaGlwIGZpZWxkcyB3aXRoIHJlbmFtZWQgZmllbGROYW1lc1xuICAgICAgY29uc3Qgb3JpZ2luYWxSZWxhdGVkRmllbGRLZXkgPSBPYmplY3Qua2V5cyhyZWxhdGlvbnNoaXBGaWVsZHMpLmZpbmQoKGspID0+IHJlbGF0aW9uc2hpcEZpZWxkc1trXS5maWVsZE5hbWUgPT09IGtleSlcbiAgICAgIGlmIChvcmlnaW5hbFJlbGF0ZWRGaWVsZEtleSkge1xuICAgICAgICBub3JtYWxpemVEb2N1bWVudElkcyhyZXN1bHQsIG9yaWdpbmFsUmVsYXRlZEZpZWxkS2V5LCBrZXksIHZhbHVlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3Qgb3JpZ2luYWxEYXRlRmllbGRLZXkgPSBPYmplY3Qua2V5cyhkYXRlRmllbGRzKS5maW5kKChrKSA9PiBkYXRlRmllbGRzW2tdLmZpZWxkTmFtZSA9PT0ga2V5KVxuICAgICAgaWYgKG9yaWdpbmFsRGF0ZUZpZWxkS2V5KSB7XG4gICAgICAgIC8vIENvbnZlcnQgSVNPIGRhdGUgc3RyaW5ncyB0byBEYXRlIG9iamVjdHMgZm9yIEJldHRlckF1dGhcbiAgICAgICAgcmVzdWx0W3RhcmdldEZpZWxkS2V5XSA9IG5ldyBEYXRlKHZhbHVlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9KVxuXG4gICAgcmV0dXJuIHJlc3VsdCBhcyBUXG4gIH1cblxuICAvKipcbiAgICogTm9ybWFsaXplcyBJRCBmaWVsZHMgZm9yIGJvdGggcHJpbWFyeSBhbmQgcmVsYXRpb25zaGlwIGRvY3VtZW50cy5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBlbnN1cmVzIGNvbnNpc3RlbnQgSUQgaGFuZGxpbmcgYmV0d2VlbiBCZXR0ZXJBdXRoIGFuZCBQYXlsb2FkIENNUyBieTpcbiAgICogMS4gQ29udmVydGluZyBhbGwgSURzIHRvIHN0cmluZ3MgZm9yIEJldHRlckF1dGggKHN0b3JlZCBpbiBvcmlnaW5hbEtleSlcbiAgICogMi4gUHJlc2VydmluZyBvcmlnaW5hbCBJRCB0eXBlcyBmb3IgUGF5bG9hZCBDTVMgKHN0b3JlZCBpbiBmaWVsZE5hbWUpXG4gICAqXG4gICAqIFRoZSBmdW5jdGlvbiBoYW5kbGVzIHZhcmlvdXMgSUQgZm9ybWF0czpcbiAgICogLSBQcmltaXRpdmUgdmFsdWVzIChzdHJpbmcvbnVtYmVyIElEcylcbiAgICogLSBPYmplY3QgcmVmZXJlbmNlcyB3aXRoIElEIHByb3BlcnRpZXNcbiAgICogLSBBcnJheXMgb2YgZWl0aGVyIHByaW1pdGl2ZSBJRHMgb3Igb2JqZWN0IHJlZmVyZW5jZXNcbiAgICpcbiAgICogQHBhcmFtIHJlc3VsdCAtIFRoZSByZXN1bHQgb2JqZWN0IGJlaW5nIHRyYW5zZm9ybWVkXG4gICAqIEBwYXJhbSBvcmlnaW5hbEtleSAtIFRoZSBvcmlnaW5hbCBmaWVsZCBrZXkgZnJvbSBCZXR0ZXJBdXRoIHNjaGVtYVxuICAgKiBAcGFyYW0gZmllbGROYW1lIC0gVGhlIHJlbmFtZWQgZmllbGQgYXMgdXNlZCBpbiBQYXlsb2FkIENNU1xuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgSUQgdmFsdWUgdG8gbm9ybWFsaXplIChwcmltaXRpdmUsIG9iamVjdCwgb3IgYXJyYXkpXG4gICAqL1xuICBmdW5jdGlvbiBub3JtYWxpemVEb2N1bWVudElkcyhyZXN1bHQ6IFJlY29yZDxzdHJpbmcsIGFueT4sIG9yaWdpbmFsS2V5OiBzdHJpbmcsIGZpZWxkTmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgLy8gQ2FzZSAxOiBQcmltaXRpdmUgSUQgdmFsdWUgKHN0cmluZyBvciBudW1iZXIpXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgLy8gRm9yIEJldHRlckF1dGg6IEFsd2F5cyB1c2Ugc3RyaW5nIElEc1xuICAgICAgcmVzdWx0W29yaWdpbmFsS2V5XSA9IFN0cmluZyh2YWx1ZSlcbiAgICAgIC8vIEZvciBQYXlsb2FkOiBLZWVwIG9yaWdpbmFsIHR5cGVcbiAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0gdmFsdWVcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIENhc2UgMjogT2JqZWN0IHdpdGggSUQgcHJvcGVydHlcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgJ2lkJyBpbiB2YWx1ZSkge1xuICAgICAgLy8gRm9yIEJldHRlckF1dGg6IEV4dHJhY3QgYW5kIHN0cmluZ2lmeSB0aGUgSURcbiAgICAgIHJlc3VsdFtvcmlnaW5hbEtleV0gPSBTdHJpbmcodmFsdWUuaWQpXG4gICAgICAvLyBQcmVzZXJ2ZSB0aGUgcG9wdWxhdGVkIHJlbGF0aW9uc2hpcCBvYmplY3Qgc28gam9pbnMgcmV0dXJuIGZ1bGwgZG9jdW1lbnRzXG4gICAgICByZXN1bHRbZmllbGROYW1lXSA9IHtcbiAgICAgICAgLi4udmFsdWUsXG4gICAgICAgIGlkOiBTdHJpbmcodmFsdWUuaWQpXG4gICAgICB9XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBDYXNlIDM6IEFycmF5IG9mIElEcyBvciByZWZlcmVuY2VzXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIC8vIENoZWNrIGlmIGFycmF5IGNvbnRhaW5zIG9iamVjdHMgd2l0aCBJRCBwcm9wZXJ0aWVzXG4gICAgICBpZiAodmFsdWUuZXZlcnkoKGl0ZW0pID0+IHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiBpdGVtICE9PSBudWxsICYmICdpZCcgaW4gaXRlbSkpIHtcbiAgICAgICAgLy8gQXJyYXkgb2Ygb2JqZWN0cyB3aXRoIElEc1xuICAgICAgICByZXN1bHRbb3JpZ2luYWxLZXldID0gdmFsdWUubWFwKChpdGVtKSA9PiBTdHJpbmcoaXRlbS5pZCkpXG4gICAgICAgIC8vIEtlZXAgam9pbmVkIGRvY3VtZW50cyBpbnRhY3Qgd2hpbGUgbm9ybWFsaXppbmcgSUQgdHlwZVxuICAgICAgICByZXN1bHRbZmllbGROYW1lXSA9IHZhbHVlLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgIGlkOiBTdHJpbmcoaXRlbS5pZClcbiAgICAgICAgfSkpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBBcnJheSBvZiBwcmltaXRpdmUgSURzXG4gICAgICAgIHJlc3VsdFtvcmlnaW5hbEtleV0gPSB2YWx1ZS5tYXAoKGl0ZW0pID0+IFN0cmluZyhpdGVtKSlcbiAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV0gPSB2YWx1ZS5tYXAoKGl0ZW0pID0+IGl0ZW0pXG4gICAgICB9XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBOb3RlOiBJZiB2YWx1ZSBkb2Vzbid0IG1hdGNoIGFueSBleHBlY3RlZCBmb3JtYXQsIG5vIGNoYW5nZXMgYXJlIG1hZGVcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhIEJldHRlckF1dGggb3BlcmF0b3IgdG8gdGhlIGVxdWl2YWxlbnQgUGF5bG9hZCBDTVMgcXVlcnkgb3BlcmF0b3JcbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBtYXBzIHN0YW5kYXJkIHF1ZXJ5IG9wZXJhdG9ycyBmcm9tIEJldHRlckF1dGgncyBmb3JtYXQgdG9cbiAgICogdGhlIHNwZWNpZmljIGZvcm1hdCBleHBlY3RlZCBieSBQYXlsb2FkIENNUydzIHF1ZXJ5IGVuZ2luZS5cbiAgICpcbiAgICogQHBhcmFtIG9wZXJhdG9yIC0gVGhlIEJldHRlckF1dGggb3BlcmF0b3Igc3RyaW5nIChlLmcuLCAnZXEnLCAnZ3QnLCAnY29udGFpbnMnKVxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gYmUgdXNlZCB3aXRoIHRoZSBvcGVyYXRvclxuICAgKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCB0aGUgUGF5bG9hZC1jb21wYXRpYmxlIG9wZXJhdG9yIGFuZCB2YWx1ZVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBSZXR1cm5zIHsgZXF1YWxzOiAndGVzdEBleGFtcGxlLmNvbScgfVxuICAgKiBvcGVyYXRvclRvUGF5bG9hZCgnZXEnLCAndGVzdEBleGFtcGxlLmNvbScpXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIC8vIFJldHVybnMgeyBncmVhdGVyX3RoYW46IDEwMCB9XG4gICAqIG9wZXJhdG9yVG9QYXlsb2FkKCdndCcsIDEwMClcbiAgICovXG4gIGZ1bmN0aW9uIG9wZXJhdG9yVG9QYXlsb2FkKG9wZXJhdG9yOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICBzd2l0Y2ggKG9wZXJhdG9yKSB7XG4gICAgICBjYXNlICdlcSc6XG4gICAgICAgIHJldHVybiB7IGVxdWFsczogdmFsdWUgfVxuICAgICAgY2FzZSAnbmUnOlxuICAgICAgICByZXR1cm4geyBub3RfZXF1YWxzOiB2YWx1ZSB9XG4gICAgICBjYXNlICdndCc6XG4gICAgICAgIHJldHVybiB7IGdyZWF0ZXJfdGhhbjogdmFsdWUgfVxuICAgICAgY2FzZSAnZ3RlJzpcbiAgICAgICAgcmV0dXJuIHsgZ3JlYXRlcl90aGFuX2VxdWFsOiB2YWx1ZSB9XG4gICAgICBjYXNlICdsdCc6XG4gICAgICAgIHJldHVybiB7IGxlc3NfdGhhbjogdmFsdWUgfVxuICAgICAgY2FzZSAnbHRlJzpcbiAgICAgICAgcmV0dXJuIHsgbGVzc190aGFuX2VxdWFsOiB2YWx1ZSB9XG4gICAgICBjYXNlICdjb250YWlucyc6XG4gICAgICAgIHJldHVybiB7IGNvbnRhaW5zOiB2YWx1ZSB9XG4gICAgICBjYXNlICdpbic6XG4gICAgICAgIHJldHVybiB7IGluOiB2YWx1ZSB9XG4gICAgICBjYXNlICdzdGFydHNfd2l0aCc6XG4gICAgICAgIHJldHVybiB7IGxpa2U6IGAke3ZhbHVlfSVgIH1cbiAgICAgIGNhc2UgJ2VuZHNfd2l0aCc6XG4gICAgICAgIHJldHVybiB7IGxpa2U6IGAlJHt2YWx1ZX1gIH1cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIEZhbGwgYmFjayB0byBlcXVhbHMgZm9yIHVucmVjb2duaXplZCBvcGVyYXRvcnNcbiAgICAgICAgcmV0dXJuIHsgZXF1YWxzOiB2YWx1ZSB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgd2hlcmUgY2xhdXNlIHZhbHVlIHRvIHRoZSBhcHByb3ByaWF0ZSB0eXBlIGJhc2VkIG9uIGZpZWxkIG5hbWUgYW5kIElEIHR5cGUgY29uZmlndXJhdGlvblxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGhhbmRsZXMgdHdvIG1haW4gc2NlbmFyaW9zOlxuICAgKiAxLiBJRCBmaWVsZCBjb252ZXJzaW9uIC0gZW5zdXJlcyBJRHMgbWF0Y2ggdGhlIGRhdGFiYXNlJ3MgZXhwZWN0ZWQgdHlwZSAobnVtYmVyIG9yIHN0cmluZylcbiAgICogMi4gT2JqZWN0IHdpdGggZW1iZWRkZWQgSUQgLSBleHRyYWN0cyBhbmQgY29udmVydHMgdGhlIElEIHByb3BlcnR5IGZyb20gb2JqZWN0c1xuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY29udmVydCAoY2FuIGJlIHByaW1pdGl2ZSwgb2JqZWN0IHdpdGggSUQsIG9yIGFycmF5KVxuICAgKiBAcGFyYW0gZmllbGROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGZpZWxkIGJlaW5nIHF1ZXJpZWRcbiAgICogQHBhcmFtIGlkVHlwZSAtIFRoZSBleHBlY3RlZCBJRCB0eXBlIGluIHRoZSBkYXRhYmFzZVxuICAgKiBAcmV0dXJucyBUaGUgY29udmVydGVkIHZhbHVlIGFwcHJvcHJpYXRlIGZvciB0aGUgZGF0YWJhc2UgcXVlcnlcbiAgICovXG4gIGZ1bmN0aW9uIGNvbnZlcnRXaGVyZVZhbHVlKHsgdmFsdWUsIGZpZWxkTmFtZSwgaWRUeXBlIH06IHsgdmFsdWU6IGFueTsgZmllbGROYW1lOiBzdHJpbmc7IGlkVHlwZTogJ251bWJlcicgfCAndGV4dCcgfSkge1xuICAgIC8vIENoZWNrIGlmIGZpZWxkIGlzIGFuIElEIGZpZWxkIChzdXBwb3J0aW5nIGJvdGggTW9uZ29EQi1zdHlsZSBfaWQgYW5kIHN0YW5kYXJkIGlkKVxuICAgIGlmIChbJ2lkJywgJ19pZCddLmluY2x1ZGVzKGZpZWxkTmFtZSkpIHtcbiAgICAgIC8vIENhc2UgMTogVmFsdWUgaXMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgYW4gSUQgcHJvcGVydHlcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsICYmICdpZCcgaW4gdmFsdWUpIHtcbiAgICAgICAgLy8gRXh0cmFjdCBJRCBmcm9tIG9iamVjdFxuICAgICAgICBjb25zdCBpZCA9IHZhbHVlLmlkXG5cbiAgICAgICAgLy8gVXNlIHR5cGUgY29udmVyc2lvbiBiYXNlZCBvbiBkYXRhYmFzZSBjb25maWd1cmF0aW9uXG4gICAgICAgIGlmIChpZFR5cGUgPT09ICdudW1iZXInICYmIHR5cGVvZiBpZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBjb25zdCBudW1JZCA9IE51bWJlcihpZClcbiAgICAgICAgICByZXR1cm4gIWlzTmFOKG51bUlkKSA/IG51bUlkIDogaWRcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpZFR5cGUgPT09ICd0ZXh0JyAmJiB0eXBlb2YgaWQgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgcmV0dXJuIFN0cmluZyhpZClcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpZFxuICAgICAgfVxuICAgICAgLy8gQ2FzZSAyOiBWYWx1ZSBpcyBhIHN0YW5kYWxvbmUgSUQgdGhhdCBuZWVkcyB0eXBlIGNvbnZlcnNpb25cbiAgICAgIC8vIENvbnZlcnQgc3RyaW5nIElEIHRvIG51bWJlciBpZiBkYXRhYmFzZSBleHBlY3RzIG51bWVyaWMgSURzXG4gICAgICBpZiAoaWRUeXBlID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICFpc05hTihOdW1iZXIodmFsdWUpKSkge1xuICAgICAgICByZXR1cm4gTnVtYmVyKHZhbHVlKVxuICAgICAgfVxuICAgICAgLy8gQ29udmVydCBudW1lcmljIElEIHRvIHN0cmluZyBpZiBkYXRhYmFzZSBleHBlY3RzIHRleHQgSURzXG4gICAgICBlbHNlIGlmIChpZFR5cGUgPT09ICd0ZXh0JyAmJiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpXG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWVcbiAgICB9XG5cbiAgICAvLyBGb3Igbm9uLUlEIGZpZWxkcywgcmV0dXJuIHRoZSB2YWx1ZSB1bmNoYW5nZWRcbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBCZXR0ZXIgQXV0aCB3aGVyZSBjbGF1c2VzIHRvIFBheWxvYWQgQ01TIGNvbXBhdGlibGUgd2hlcmUgY29uZGl0aW9uc1xuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHRyYW5zZm9ybXMgdGhlIEJldHRlciBBdXRoIHF1ZXJ5IGZvcm1hdCBpbnRvIFBheWxvYWQncyBxdWVyeSBmb3JtYXQsXG4gICAqIGhhbmRsaW5nIGZpZWxkIG5hbWUgbWFwcGluZywgdmFsdWUgdHlwZSBjb252ZXJzaW9uLCBhbmQgbG9naWNhbCBvcGVyYXRvcnMgKEFORC9PUikuXG4gICAqXG4gICAqIFRoZSBmdW5jdGlvbiBoYW5kbGVzIHRocmVlIG1haW4gY2FzZXM6XG4gICAqIDEuIEVtcHR5IG9yIHVuZGVmaW5lZCB3aGVyZSBjbGF1c2UgLSByZXR1cm5zIGVtcHR5IG9iamVjdFxuICAgKiAyLiBTaW5nbGUgY29uZGl0aW9uIC0gY29udmVydHMgdG8gYSBzaW1wbGUgZmllbGQtdmFsdWUgcGFpclxuICAgKiAzLiBNdWx0aXBsZSBjb25kaXRpb25zIC0gZ3JvdXBzIGJ5IEFORC9PUiBjb25uZWN0b3JzIGFuZCBidWlsZHMgYSBjb21wbGV4IHF1ZXJ5XG4gICAqXG4gICAqIEBwYXJhbSBpZFR5cGUgLSBUaGUgZGF0YWJhc2UgSUQgdHlwZSAoJ251bWJlcicgb3IgJ3RleHQnKVxuICAgKiBAcGFyYW0gbW9kZWwgLSBUaGUgbW9kZWwvY29sbGVjdGlvbiBuYW1lIHRvIHF1ZXJ5XG4gICAqIEBwYXJhbSB3aGVyZSAtIEFycmF5IG9mIEJldHRlciBBdXRoIHdoZXJlIGNvbmRpdGlvbnNcbiAgICogQHJldHVybnMgQSBQYXlsb2FkLWNvbXBhdGlibGUgd2hlcmUgY2xhdXNlIG9iamVjdFxuICAgKi9cbiAgZnVuY3Rpb24gY29udmVydFdoZXJlQ2xhdXNlKHtcbiAgICBpZFR5cGUsXG4gICAgbW9kZWwsXG4gICAgd2hlcmUsXG4gICAgcGF5bG9hZFxuICB9OiB7XG4gICAgaWRUeXBlOiAnbnVtYmVyJyB8ICd0ZXh0J1xuICAgIG1vZGVsOiBNb2RlbEtleVxuICAgIHdoZXJlPzogV2hlcmVbXVxuICAgIHBheWxvYWQ6IEJhc2VQYXlsb2FkXG4gIH0pOiBQYXlsb2FkV2hlcmUge1xuICAgIC8vIEhhbmRsZSBlbXB0eSB3aGVyZSBjbGF1c2VcbiAgICBpZiAoIXdoZXJlKSByZXR1cm4ge31cblxuICAgIGZ1bmN0aW9uIGdldFBheWxvYWRGaWVsZE5hbWUoZmllbGRLZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gZ2V0Q29sbGVjdGlvbkZpZWxkTmFtZUJ5RmllbGRLZXlVbnR5cGVkKGdldENvbGxlY3Rpb25CeU1vZGVsS2V5KHBheWxvYWQuY29sbGVjdGlvbnMsIG1vZGVsKSwgZmllbGRLZXkpXG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIHNpbmdsZSBjb25kaXRpb24gY2FzZSBmb3Igb3B0aW1pemF0aW9uXG4gICAgaWYgKHdoZXJlLmxlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgdyA9IHdoZXJlWzBdXG4gICAgICBpZiAoIXcpIHtcbiAgICAgICAgcmV0dXJuIHt9XG4gICAgICB9XG5cbiAgICAgIC8vIE1hcCBmaWVsZCBuYW1lIGFjY29yZGluZyB0byBzY2hlbWEgYW5kIGNvbnZlcnQgdmFsdWUgdG8gYXBwcm9wcmlhdGUgdHlwZVxuICAgICAgY29uc3QgZmllbGROYW1lID0gZ2V0RmllbGROYW1lKG1vZGVsLCB3LmZpZWxkKVxuICAgICAgY29uc3QgdmFsdWUgPSBjb252ZXJ0V2hlcmVWYWx1ZSh7XG4gICAgICAgIHZhbHVlOiB3LnZhbHVlLFxuICAgICAgICBmaWVsZE5hbWUsXG4gICAgICAgIGlkVHlwZVxuICAgICAgfSlcblxuICAgICAgLy8gQ3JlYXRlIHRoZSBQYXlsb2FkIHdoZXJlIGNvbmRpdGlvbiB3aXRoIHByb3BlciBvcGVyYXRvclxuICAgICAgY29uc3QgcmVzID0ge1xuICAgICAgICBbZ2V0UGF5bG9hZEZpZWxkTmFtZShmaWVsZE5hbWUpXTogb3BlcmF0b3JUb1BheWxvYWQody5vcGVyYXRvciA/PyAnJywgdmFsdWUpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgbXVsdGlwbGUgY29uZGl0aW9ucyBieSBzZXBhcmF0aW5nIEFORC9PUiBjbGF1c2VzXG4gICAgLy8gRGVmYXVsdCB0byBBTkQgaWYgbm8gY29ubmVjdG9yIGlzIHNwZWNpZmllZFxuICAgIGNvbnN0IGFuZCA9IHdoZXJlLmZpbHRlcigodykgPT4gdy5jb25uZWN0b3IgPT09ICdBTkQnIHx8ICF3LmNvbm5lY3RvcilcbiAgICBjb25zdCBvciA9IHdoZXJlLmZpbHRlcigodykgPT4gdy5jb25uZWN0b3IgPT09ICdPUicpXG5cbiAgICAvLyBQcm9jZXNzIEFORCBjb25kaXRpb25zXG4gICAgY29uc3QgYW5kQ2xhdXNlID0gYW5kLm1hcCgodykgPT4ge1xuICAgICAgY29uc3QgZmllbGROYW1lID0gZ2V0RmllbGROYW1lKG1vZGVsLCB3LmZpZWxkKVxuICAgICAgY29uc3QgdmFsdWUgPSBjb252ZXJ0V2hlcmVWYWx1ZSh7XG4gICAgICAgIHZhbHVlOiB3LnZhbHVlLFxuICAgICAgICBmaWVsZE5hbWUsXG4gICAgICAgIGlkVHlwZVxuICAgICAgfSlcbiAgICAgIHJldHVybiB7XG4gICAgICAgIFtnZXRQYXlsb2FkRmllbGROYW1lKGZpZWxkTmFtZSldOiBvcGVyYXRvclRvUGF5bG9hZCh3Lm9wZXJhdG9yID8/ICcnLCB2YWx1ZSlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgLy8gUHJvY2VzcyBPUiBjb25kaXRpb25zXG4gICAgY29uc3Qgb3JDbGF1c2UgPSBvci5tYXAoKHcpID0+IHtcbiAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGdldEZpZWxkTmFtZShtb2RlbCwgdy5maWVsZClcbiAgICAgIGNvbnN0IHZhbHVlID0gY29udmVydFdoZXJlVmFsdWUoe1xuICAgICAgICB2YWx1ZTogdy52YWx1ZSxcbiAgICAgICAgZmllbGROYW1lLFxuICAgICAgICBpZFR5cGVcbiAgICAgIH0pXG4gICAgICByZXR1cm4ge1xuICAgICAgICBbZ2V0UGF5bG9hZEZpZWxkTmFtZShmaWVsZE5hbWUpXTogb3BlcmF0b3JUb1BheWxvYWQody5vcGVyYXRvciA/PyAnJywgdmFsdWUpXG4gICAgICB9XG4gICAgfSlcblxuICAgIC8vIENvbWJpbmUgQU5EIGFuZCBPUiBjbGF1c2VzIGludG8gZmluYWwgUGF5bG9hZCB3aGVyZSBvYmplY3RcbiAgICAvLyBPbmx5IGluY2x1ZGUgbm9uLWVtcHR5IGNsYXVzZSBhcnJheXNcbiAgICByZXR1cm4ge1xuICAgICAgLi4uKGFuZENsYXVzZS5sZW5ndGggPyB7IEFORDogYW5kQ2xhdXNlIH0gOiB7fSksXG4gICAgICAuLi4ob3JDbGF1c2UubGVuZ3RoID8geyBPUjogb3JDbGF1c2UgfSA6IHt9KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhIGJldHRlci1hdXRoIHNlbGVjdCBhcnJheSB0byBhIFBheWxvYWQgc2VsZWN0IG9iamVjdFxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHRyYW5zZm9ybXMgdGhlIGJldHRlci1hdXRoIHNlbGVjdCBhcnJheSAod2hpY2ggY29udGFpbnMgZmllbGQgbmFtZXMpXG4gICAqIGludG8gdGhlIGZvcm1hdCBleHBlY3RlZCBieSBQYXlsb2FkIENNUydzIHF1ZXJ5IEFQSSAoYW4gb2JqZWN0IHdpdGggZmllbGQgbmFtZXMgYXMga2V5c1xuICAgKiBhbmQgYm9vbGVhbiB0cnVlIGFzIHZhbHVlcykuXG4gICAqXG4gICAqIEl0IGFsc28gaGFuZGxlcyBmaWVsZCBuYW1lIG1hcHBpbmcgYmV0d2VlbiBiZXR0ZXItYXV0aCBzY2hlbWEgYW5kIFBheWxvYWQgY29sbGVjdGlvbnNcbiAgICogYnkgdXNpbmcgdGhlIGdldEZpZWxkTmFtZSBoZWxwZXIgdG8gcmVzb2x2ZSB0aGUgY29ycmVjdCBmaWVsZCBuYW1lcy5cbiAgICpcbiAgICogQHBhcmFtIG1vZGVsIC0gVGhlIG1vZGVsL2NvbGxlY3Rpb24gbmFtZSB0byBnZXQgZmllbGQgbWFwcGluZ3MgZnJvbVxuICAgKiBAcGFyYW0gc2VsZWN0IC0gT3B0aW9uYWwgYXJyYXkgb2YgZmllbGQgbmFtZXMgdG8gc2VsZWN0XG4gICAqIEByZXR1cm5zIEEgUGF5bG9hZC1jb21wYXRpYmxlIHNlbGVjdCBvYmplY3Qgb3IgdW5kZWZpbmVkIGlmIG5vIGZpZWxkcyB0byBzZWxlY3RcbiAgICogQGV4YW1wbGVcbiAgICogLy8gSW5wdXQ6IFsnZW1haWwnLCAnbmFtZSddXG4gICAqIC8vIE91dHB1dDogeyBlbWFpbDogdHJ1ZSwgbmFtZTogdHJ1ZSB9XG4gICAqL1xuICBmdW5jdGlvbiBjb252ZXJ0U2VsZWN0KG1vZGVsOiBNb2RlbEtleSwgc2VsZWN0Pzogc3RyaW5nW10pIHtcbiAgICAvLyBSZXR1cm4gdW5kZWZpbmVkIGlmIHNlbGVjdCBpcyBlbXB0eSBvciBub3QgcHJvdmlkZWRcbiAgICBpZiAoIXNlbGVjdCB8fCBzZWxlY3QubGVuZ3RoID09PSAwKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICAvLyBUcmFuc2Zvcm0gdGhlIGFycmF5IG9mIGZpZWxkIG5hbWVzIGludG8gYSBQYXlsb2FkIHNlbGVjdCBvYmplY3RcbiAgICAvLyB3aGlsZSBhbHNvIG1hcHBpbmcgYW55IGZpZWxkIG5hbWVzIHRoYXQgbWlnaHQgYmUgZGlmZmVyZW50IGluIFBheWxvYWRcbiAgICByZXR1cm4gc2VsZWN0LnJlZHVjZSgoYWNjLCBmaWVsZCkgPT4gKHsgLi4uYWNjLCBbZ2V0RmllbGROYW1lKG1vZGVsLCBmaWVsZCldOiB0cnVlIH0pLCB7fSlcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhIGJldHRlci1hdXRoIHNvcnQgb2JqZWN0IHRvIGEgUGF5bG9hZCBzb3J0IHN0cmluZ1xuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHRyYW5zZm9ybXMgdGhlIGJldHRlci1hdXRoIHNvcnQgb2JqZWN0ICh3aGljaCBjb250YWlucyBmaWVsZCBuYW1lIGFuZCBkaXJlY3Rpb24pXG4gICAqIGludG8gdGhlIGZvcm1hdCBleHBlY3RlZCBieSBQYXlsb2FkIENNUydzIHF1ZXJ5IEFQSSAoYSBzdHJpbmcgd2l0aCBvcHRpb25hbCAnLScgcHJlZml4IGZvciBkZXNjZW5kaW5nIG9yZGVyKS5cbiAgICpcbiAgICogSXQgYWxzbyBoYW5kbGVzIGZpZWxkIG5hbWUgbWFwcGluZyBiZXR3ZWVuIGJldHRlci1hdXRoIHNjaGVtYSBhbmQgUGF5bG9hZCBjb2xsZWN0aW9uc1xuICAgKiBieSB1c2luZyB0aGUgZ2V0RmllbGROYW1lIGhlbHBlciB0byByZXNvbHZlIHRoZSBjb3JyZWN0IGZpZWxkIG5hbWVzLlxuICAgKlxuICAgKiBAcGFyYW0gbW9kZWwgLSBUaGUgbW9kZWwvY29sbGVjdGlvbiBuYW1lIHRvIGdldCBmaWVsZCBtYXBwaW5ncyBmcm9tXG4gICAqIEBwYXJhbSBzb3J0QnkgLSBPcHRpb25hbCBvYmplY3QgY29udGFpbmluZyBmaWVsZCBuYW1lIGFuZCBzb3J0IGRpcmVjdGlvblxuICAgKiBAcmV0dXJucyBBIFBheWxvYWQtY29tcGF0aWJsZSBzb3J0IHN0cmluZyBvciB1bmRlZmluZWQgaWYgbm8gc29ydCBzcGVjaWZpZWRcbiAgICogQGV4YW1wbGVcbiAgICogLy8gSW5wdXQ6IHsgZmllbGQ6ICdlbWFpbCcsIGRpcmVjdGlvbjogJ2Rlc2MnIH1cbiAgICogLy8gT3V0cHV0OiAnLWVtYWlsJ1xuICAgKiAvLyBJbnB1dDogeyBmaWVsZDogJ2NyZWF0ZWRBdCcsIGRpcmVjdGlvbjogJ2FzYycgfVxuICAgKiAvLyBPdXRwdXQ6ICdjcmVhdGVkQXQnXG4gICAqL1xuICBmdW5jdGlvbiBjb252ZXJ0U29ydChtb2RlbDogTW9kZWxLZXksIHNvcnRCeT86IHsgZmllbGQ6IHN0cmluZzsgZGlyZWN0aW9uOiAnYXNjJyB8ICdkZXNjJyB9KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXNvcnRCeSkgcmV0dXJuIHVuZGVmaW5lZFxuICAgIGNvbnN0IGZpZWxkTmFtZSA9IGdldEZpZWxkTmFtZShtb2RlbCwgc29ydEJ5LmZpZWxkKVxuICAgIGNvbnN0IHByZWZpeCA9IHNvcnRCeS5kaXJlY3Rpb24gPT09ICdkZXNjJyA/ICctJyA6ICcnXG4gICAgcmV0dXJuIGAke3ByZWZpeH0ke2ZpZWxkTmFtZX1gXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGdldEZpZWxkTmFtZSxcbiAgICBnZXRDb2xsZWN0aW9uU2x1ZyxcbiAgICBzaW5nbGVJZFF1ZXJ5LFxuICAgIHRyYW5zZm9ybUlucHV0LFxuICAgIHRyYW5zZm9ybU91dHB1dCxcbiAgICBjb252ZXJ0V2hlcmVDbGF1c2UsXG4gICAgY29udmVydFNlbGVjdCxcbiAgICBjb252ZXJ0U29ydFxuICB9XG59XG4iXSwibmFtZXMiOlsiZ2V0QXV0aFRhYmxlcyIsImdldENvbGxlY3Rpb25CeU1vZGVsS2V5IiwiZ2V0Q29sbGVjdGlvbkZpZWxkTmFtZUJ5RmllbGRLZXlVbnR5cGVkIiwiZ2V0RmllbGRLZXlCeUNvbGxlY3Rpb25GaWVsZE5hbWUiLCJjcmVhdGVUcmFuc2Zvcm0iLCJvcHRpb25zIiwiZW5hYmxlRGVidWdMb2dzIiwic2NoZW1hIiwiZGVidWdMb2ciLCJtZXNzYWdlIiwiY29uc29sZSIsImxvZyIsImdldENvbGxlY3Rpb25TbHVnIiwibW9kZWwiLCJjb2xsZWN0aW9uIiwibW9kZWxOYW1lIiwicmVzb2x2ZWRTbHVnIiwiZ2V0RmllbGROYW1lIiwiZmllbGQiLCJpbmNsdWRlcyIsImZpZWxkRGVmaW5pdGlvbiIsImZpZWxkcyIsImZpZWxkTmFtZSIsIm9yaWdpbmFsRmllbGQiLCJpc1JlbGF0aW9uc2hpcEZpZWxkIiwiZmllbGRLZXkiLCJzY2hlbWFGaWVsZHMiLCJyZWZlcmVuY2VzIiwidW5kZWZpbmVkIiwic2luZ2xlSWRRdWVyeSIsIndoZXJlIiwic29tZSIsImlkRmllbGQiLCJjb25kaXRpb24iLCJBcnJheSIsImlzQXJyYXkiLCJ2YWx1ZSIsImVxdWFscyIsImNvbnRhaW5zIiwibGVuZ3RoIiwibm9ybWFsaXplRGF0YSIsImtleSIsImlzUmVsYXRlZEZpZWxkIiwiaWRUeXBlIiwicGFyc2VkIiwicGFyc2VJbnQiLCJpc05hTiIsIm9yaWdpbmFsIiwiY29udmVydGVkIiwic3RyaW5nSWQiLCJTdHJpbmciLCJtYXAiLCJpZCIsInNwbGl0Iiwicm9sZSIsInRyaW0iLCJ0b0xvd2VyQ2FzZSIsInRyYW5zZm9ybUlucHV0IiwiZGF0YSIsInBheWxvYWQiLCJ0cmFuc2Zvcm1lZERhdGEiLCJPYmplY3QiLCJlbnRyaWVzIiwiZm9yRWFjaCIsInNjaGVtYUZpZWxkTmFtZSIsIm5vcm1hbGl6ZWREYXRhIiwidGFyZ2V0RmllbGROYW1lIiwidGFyZ2V0RmllbGRLZXkiLCJjb2xsZWN0aW9ucyIsImlzSm9pblJlc3VsdCIsImRvY3MiLCJmbGF0dGVuSm9pblJlc3VsdCIsImpvaW5SZXN1bHQiLCJpdGVtIiwidHJhbnNmb3JtT3V0cHV0IiwiZG9jIiwicmVzdWx0IiwicmVsYXRpb25zaGlwRmllbGRzIiwiZnJvbUVudHJpZXMiLCJmaWx0ZXIiLCJkYXRlRmllbGRzIiwiXyIsInR5cGUiLCJrZXlzIiwib3JpZ2luYWxSZWxhdGVkRmllbGRLZXkiLCJmaW5kIiwiayIsIm5vcm1hbGl6ZURvY3VtZW50SWRzIiwib3JpZ2luYWxEYXRlRmllbGRLZXkiLCJEYXRlIiwib3JpZ2luYWxLZXkiLCJldmVyeSIsIm9wZXJhdG9yVG9QYXlsb2FkIiwib3BlcmF0b3IiLCJub3RfZXF1YWxzIiwiZ3JlYXRlcl90aGFuIiwiZ3JlYXRlcl90aGFuX2VxdWFsIiwibGVzc190aGFuIiwibGVzc190aGFuX2VxdWFsIiwiaW4iLCJsaWtlIiwiY29udmVydFdoZXJlVmFsdWUiLCJudW1JZCIsIk51bWJlciIsImNvbnZlcnRXaGVyZUNsYXVzZSIsImdldFBheWxvYWRGaWVsZE5hbWUiLCJ3IiwicmVzIiwiYW5kIiwiY29ubmVjdG9yIiwib3IiLCJhbmRDbGF1c2UiLCJvckNsYXVzZSIsIkFORCIsIk9SIiwiY29udmVydFNlbGVjdCIsInNlbGVjdCIsInJlZHVjZSIsImFjYyIsImNvbnZlcnRTb3J0Iiwic29ydEJ5IiwicHJlZml4IiwiZGlyZWN0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxhQUFhLFFBQVEsaUJBQWdCO0FBSzlDLFNBQ0VDLHVCQUF1QixFQUN2QkMsdUNBQXVDLEVBQ3ZDQyxnQ0FBZ0MsUUFDM0Isc0NBQTZDO0FBRXBELE9BQU8sTUFBTUMsa0JBQWtCLENBQUNDLFNBQTRCQztJQUMxRCxNQUFNQyxTQUFTUCxjQUFjSztJQUU3QixTQUFT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
|
|
@@ -123,7 +123,7 @@ export type OauthApplicationPluginFields = {
|
|
|
123
123
|
metadata?: string;
|
|
124
124
|
clientId?: string;
|
|
125
125
|
clientSecret?: string;
|
|
126
|
-
|
|
126
|
+
redirectUrls?: string;
|
|
127
127
|
type?: string;
|
|
128
128
|
disabled?: boolean;
|
|
129
129
|
userId?: string;
|
|
@@ -136,7 +136,7 @@ export type OauthApplicationPluginFields = {
|
|
|
136
136
|
metadata?: string;
|
|
137
137
|
clientId?: string;
|
|
138
138
|
clientSecret?: string;
|
|
139
|
-
|
|
139
|
+
redirectUrls?: string;
|
|
140
140
|
type?: string;
|
|
141
141
|
disabled?: boolean;
|
|
142
142
|
userId?: string;
|
|
@@ -199,6 +199,14 @@ export type SsoProviderFields = {
|
|
|
199
199
|
domain: string;
|
|
200
200
|
};
|
|
201
201
|
export type SsoProvider = SsoProviderFields;
|
|
202
|
+
export type OrganizationFields = {
|
|
203
|
+
name: string;
|
|
204
|
+
slug: string;
|
|
205
|
+
logo?: string;
|
|
206
|
+
createdAt: Date;
|
|
207
|
+
metadata?: string;
|
|
208
|
+
};
|
|
209
|
+
export type Organization = OrganizationFields;
|
|
202
210
|
export type TeamFields = {
|
|
203
211
|
name: string;
|
|
204
212
|
organizationId: string;
|
|
@@ -212,14 +220,6 @@ export type TeamMemberFields = {
|
|
|
212
220
|
createdAt?: Date;
|
|
213
221
|
};
|
|
214
222
|
export type TeamMember = TeamMemberFields;
|
|
215
|
-
export type OrganizationFields = {
|
|
216
|
-
name: string;
|
|
217
|
-
slug: string;
|
|
218
|
-
logo?: string;
|
|
219
|
-
createdAt: Date;
|
|
220
|
-
metadata?: string;
|
|
221
|
-
};
|
|
222
|
-
export type Organization = OrganizationFields;
|
|
223
223
|
export type MemberFields = {
|
|
224
224
|
organizationId: string;
|
|
225
225
|
userId: string;
|
|
@@ -234,6 +234,7 @@ export type InvitationFields = {
|
|
|
234
234
|
teamId?: string;
|
|
235
235
|
status: string;
|
|
236
236
|
expiresAt: Date;
|
|
237
|
+
createdAt: Date;
|
|
237
238
|
inviterId: string;
|
|
238
239
|
};
|
|
239
240
|
export type Invitation = InvitationFields;
|
|
@@ -241,6 +242,7 @@ export type JwksFields = {
|
|
|
241
242
|
publicKey: string;
|
|
242
243
|
privateKey: string;
|
|
243
244
|
createdAt: Date;
|
|
245
|
+
expiresAt?: Date;
|
|
244
246
|
};
|
|
245
247
|
export type Jwks = JwksFields;
|
|
246
248
|
export type TwoFactorFields = {
|
|
@@ -287,9 +289,9 @@ export type BetterAuthFullSchema = {
|
|
|
287
289
|
"oauthAccessToken": OauthAccessToken;
|
|
288
290
|
"oauthConsent": OauthConsent;
|
|
289
291
|
"ssoProvider": SsoProvider;
|
|
292
|
+
"organization": Organization;
|
|
290
293
|
"team": Team;
|
|
291
294
|
"teamMember": TeamMember;
|
|
292
|
-
"organization": Organization;
|
|
293
295
|
"member": Member;
|
|
294
296
|
"invitation": Invitation;
|
|
295
297
|
"jwks": Jwks;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generated-types.d.ts","sourceRoot":"","sources":["../../src/better-auth/generated-types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generated-types.d.ts","sourceRoot":"","sources":["../../src/better-auth/generated-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// Auto-generated types. Do not edit.
|
|
2
2
|
export { };
|
|
3
3
|
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iZXR0ZXItYXV0aC9nZW5lcmF0ZWQtdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQXV0by1nZW5lcmF0ZWQgdHlwZXMuIERvIG5vdCBlZGl0LlxuXG5leHBvcnQgdHlwZSBCYXNlVXNlckZpZWxkcyA9IHtcbiAgbmFtZTogc3RyaW5nXG4gIGVtYWlsOiBzdHJpbmdcbiAgZW1haWxWZXJpZmllZDogYm9vbGVhblxuICBpbWFnZT86IHN0cmluZ1xuICBjcmVhdGVkQXQ6IERhdGVcbiAgdXBkYXRlZEF0OiBEYXRlXG4gIHJvbGU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgVXNlclBsdWdpbkZpZWxkcyA9IHtcbiAgXCJ1c2VybmFtZVwiOiB7XG4gICAgdXNlcm5hbWU/OiBzdHJpbmdcbiAgICBkaXNwbGF5VXNlcm5hbWU/OiBzdHJpbmdcbiAgfVxuICBcImFkbWluXCI6IHtcbiAgICBiYW5uZWQ/OiBib29sZWFuXG4gICAgYmFuUmVhc29uPzogc3RyaW5nXG4gICAgYmFuRXhwaXJlcz86IERhdGVcbiAgfVxuICBcImhhcm1vbnktZW1haWxcIjoge1xuICAgIG5vcm1hbGl6ZWRFbWFpbD86IHN0cmluZ1xuICB9XG4gIFwicGhvbmUtbnVtYmVyXCI6IHtcbiAgICBwaG9uZU51bWJlcj86IHN0cmluZ1xuICAgIHBob25lTnVtYmVyVmVyaWZpZWQ/OiBib29sZWFuXG4gIH1cbiAgXCJhbm9ueW1vdXNcIjoge1xuICAgIGlzQW5vbnltb3VzPzogYm9vbGVhblxuICB9XG4gIFwidHdvLWZhY3RvclwiOiB7XG4gICAgdHdvRmFjdG9yRW5hYmxlZD86IGJvb2xlYW5cbiAgfVxuICBcImxhc3QtbG9naW4tbWV0aG9kXCI6IHtcbiAgICBsYXN0TG9naW5NZXRob2Q/OiBzdHJpbmdcbiAgfVxuICBcInN0cmlwZVwiOiB7XG4gICAgc3RyaXBlQ3VzdG9tZXJJZD86IHN0cmluZ1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIFVzZXIgPSBCYXNlVXNlckZpZWxkcyAmIFVzZXJQbHVnaW5GaWVsZHNbXCJ1c2VybmFtZVwiXSAmIFVzZXJQbHVnaW5GaWVsZHNbXCJhZG1pblwiXSAmIFVzZXJQbHVnaW5GaWVsZHNbXCJoYXJtb255LWVtYWlsXCJdICYgVXNlclBsdWdpbkZpZWxkc1tcInBob25lLW51bWJlclwiXSAmIFVzZXJQbHVnaW5GaWVsZHNbXCJhbm9ueW1vdXNcIl0gJiBVc2VyUGx1Z2luRmllbGRzW1widHdvLWZhY3RvclwiXSAmIFVzZXJQbHVnaW5GaWVsZHNbXCJsYXN0LWxvZ2luLW1ldGhvZFwiXSAmIFVzZXJQbHVnaW5GaWVsZHNbXCJzdHJpcGVcIl1cblxuZXhwb3J0IHR5cGUgQmFzZVNlc3Npb25GaWVsZHMgPSB7XG4gIGV4cGlyZXNBdDogRGF0ZVxuICB0b2tlbjogc3RyaW5nXG4gIGNyZWF0ZWRBdDogRGF0ZVxuICB1cGRhdGVkQXQ6IERhdGVcbiAgaXBBZGRyZXNzPzogc3RyaW5nXG4gIHVzZXJBZ2VudD86IHN0cmluZ1xuICB1c2VySWQ6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBTZXNzaW9uUGx1Z2luRmllbGRzID0ge1xuICBcImFkbWluXCI6IHtcbiAgICBpbXBlcnNvbmF0ZWRCeT86IHN0cmluZ1xuICB9XG4gIFwib3JnYW5pemF0aW9uXCI6IHtcbiAgICBhY3RpdmVPcmdhbml6YXRpb25JZD86IHN0cmluZ1xuICAgIGFjdGl2ZVRlYW1JZD86IHN0cmluZ1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIFNlc3Npb24gPSBCYXNlU2Vzc2lvbkZpZWxkcyAmIFNlc3Npb25QbHVnaW5GaWVsZHNbXCJhZG1pblwiXSAmIFNlc3Npb25QbHVnaW5GaWVsZHNbXCJvcmdhbml6YXRpb25cIl1cblxuZXhwb3J0IHR5cGUgQmFzZUFjY291bnRGaWVsZHMgPSB7XG4gIGFjY291bnRJZDogc3RyaW5nXG4gIHByb3ZpZGVySWQ6IHN0cmluZ1xuICB1c2VySWQ6IHN0cmluZ1xuICBhY2Nlc3NUb2tlbj86IHN0cmluZ1xuICByZWZyZXNoVG9rZW4/OiBzdHJpbmdcbiAgaWRUb2tlbj86IHN0cmluZ1xuICBhY2Nlc3NUb2tlbkV4cGlyZXNBdD86IERhdGVcbiAgcmVmcmVzaFRva2VuRXhwaXJlc0F0PzogRGF0ZVxuICBzY29wZT86IHN0cmluZ1xuICBwYXNzd29yZD86IHN0cmluZ1xuICBjcmVhdGVkQXQ6IERhdGVcbiAgdXBkYXRlZEF0OiBEYXRlXG59XG5cbmV4cG9ydCB0eXBlIEFjY291bnQgPSBCYXNlQWNjb3VudEZpZWxkc1xuXG5leHBvcnQgdHlwZSBCYXNlVmVyaWZpY2F0aW9uRmllbGRzID0ge1xuICBpZGVudGlmaWVyOiBzdHJpbmdcbiAgdmFsdWU6IHN0cmluZ1xuICBleHBpcmVzQXQ6IERhdGVcbiAgY3JlYXRlZEF0OiBEYXRlXG4gIHVwZGF0ZWRBdDogRGF0ZVxufVxuXG5leHBvcnQgdHlwZSBWZXJpZmljYXRpb24gPSBCYXNlVmVyaWZpY2F0aW9uRmllbGRzXG5cbmV4cG9ydCB0eXBlIEFwaWtleUZpZWxkcyA9IHtcbiAgbmFtZT86IHN0cmluZ1xuICBzdGFydD86IHN0cmluZ1xuICBwcmVmaXg/OiBzdHJpbmdcbiAga2V5OiBzdHJpbmdcbiAgdXNlcklkOiBzdHJpbmdcbiAgcmVmaWxsSW50ZXJ2YWw/OiBudW1iZXJcbiAgcmVmaWxsQW1vdW50PzogbnVtYmVyXG4gIGxhc3RSZWZpbGxBdD86IERhdGVcbiAgZW5hYmxlZD86IGJvb2xlYW5cbiAgcmF0ZUxpbWl0RW5hYmxlZD86IGJvb2xlYW5cbiAgcmF0ZUxpbWl0VGltZVdpbmRvdz86IG51bWJlclxuICByYXRlTGltaXRNYXg/OiBudW1iZXJcbiAgcmVxdWVzdENvdW50PzogbnVtYmVyXG4gIHJlbWFpbmluZz86IG51bWJlclxuICBsYXN0UmVxdWVzdD86IERhdGVcbiAgZXhwaXJlc0F0PzogRGF0ZVxuICBjcmVhdGVkQXQ6IERhdGVcbiAgdXBkYXRlZEF0OiBEYXRlXG4gIHBlcm1pc3Npb25zPzogc3RyaW5nXG4gIG1ldGFkYXRhPzogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIEFwaWtleSA9IEFwaWtleUZpZWxkc1xuXG5leHBvcnQgdHlwZSBQYXNza2V5RmllbGRzID0ge1xuICBuYW1lPzogc3RyaW5nXG4gIHB1YmxpY0tleTogc3RyaW5nXG4gIHVzZXJJZDogc3RyaW5nXG4gIGNyZWRlbnRpYWxJRDogc3RyaW5nXG4gIGNvdW50ZXI6IG51bWJlclxuICBkZXZpY2VUeXBlOiBzdHJpbmdcbiAgYmFja2VkVXA6IGJvb2xlYW5cbiAgdHJhbnNwb3J0cz86IHN0cmluZ1xuICBjcmVhdGVkQXQ/OiBEYXRlXG4gIGFhZ3VpZD86IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBQYXNza2V5ID0gUGFzc2tleUZpZWxkc1xuXG5leHBvcnQgdHlwZSBPYXV0aEFwcGxpY2F0aW9uUGx1Z2luRmllbGRzID0ge1xuICBcIm9pZGNcIjoge1xuICAgIG5hbWU/OiBzdHJpbmdcbiAgICBpY29uPzogc3RyaW5nXG4gICAgbWV0YWRhdGE/OiBzdHJpbmdcbiAgICBjbGllbnRJZD86IHN0cmluZ1xuICAgIGNsaWVudFNlY3JldD86IHN0cmluZ1xuICAgIHJlZGlyZWN0VVJMcz86IHN0cmluZ1xuICAgIHR5cGU/OiBzdHJpbmdcbiAgICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgICB1c2VySWQ/OiBzdHJpbmdcbiAgICBjcmVhdGVkQXQ/OiBEYXRlXG4gICAgdXBkYXRlZEF0PzogRGF0ZVxuICB9XG4gIFwibWNwXCI6IHtcbiAgICBuYW1lPzogc3RyaW5nXG4gICAgaWNvbj86IHN0cmluZ1xuICAgIG1ldGFkYXRhPzogc3RyaW5nXG4gICAgY2xpZW50SWQ/OiBzdHJpbmdcbiAgICBjbGllbnRTZWNyZXQ/OiBzdHJpbmdcbiAgICByZWRpcmVjdFVSTHM/OiBzdHJpbmdcbiAgICB0eXBlPzogc3RyaW5nXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICAgdXNlcklkPzogc3RyaW5nXG4gICAgY3JlYXRlZEF0PzogRGF0ZVxuICAgIHVwZGF0ZWRBdD86IERhdGVcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBPYXV0aEFwcGxpY2F0aW9uID0gT2F1dGhBcHBsaWNhdGlvblBsdWdpbkZpZWxkc1tcIm9pZGNcIl0gJiBPYXV0aEFwcGxpY2F0aW9uUGx1Z2luRmllbGRzW1wibWNwXCJdXG5cbmV4cG9ydCB0eXBlIE9hdXRoQWNjZXNzVG9rZW5QbHVnaW5GaWVsZHMgPSB7XG4gIFwib2lkY1wiOiB7XG4gICAgYWNjZXNzVG9rZW4/OiBzdHJpbmdcbiAgICByZWZyZXNoVG9rZW4/OiBzdHJpbmdcbiAgICBhY2Nlc3NUb2tlbkV4cGlyZXNBdD86IERhdGVcbiAgICByZWZyZXNoVG9rZW5FeHBpcmVzQXQ/OiBEYXRlXG4gICAgY2xpZW50SWQ/OiBzdHJpbmdcbiAgICB1c2VySWQ/OiBzdHJpbmdcbiAgICBzY29wZXM/OiBzdHJpbmdcbiAgICBjcmVhdGVkQXQ/OiBEYXRlXG4gICAgdXBkYXRlZEF0PzogRGF0ZVxuICB9XG4gIFwibWNwXCI6IHtcbiAgICBhY2Nlc3NUb2tlbj86IHN0cmluZ1xuICAgIHJlZnJlc2hUb2tlbj86IHN0cmluZ1xuICAgIGFjY2Vzc1Rva2VuRXhwaXJlc0F0PzogRGF0ZVxuICAgIHJlZnJlc2hUb2tlbkV4cGlyZXNBdD86IERhdGVcbiAgICBjbGllbnRJZD86IHN0cmluZ1xuICAgIHVzZXJJZD86IHN0cmluZ1xuICAgIHNjb3Blcz86IHN0cmluZ1xuICAgIGNyZWF0ZWRBdD86IERhdGVcbiAgICB1cGRhdGVkQXQ/OiBEYXRlXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgT2F1dGhBY2Nlc3NUb2tlbiA9IE9hdXRoQWNjZXNzVG9rZW5QbHVnaW5GaWVsZHNbXCJvaWRjXCJdICYgT2F1dGhBY2Nlc3NUb2tlblBsdWdpbkZpZWxkc1tcIm1jcFwiXVxuXG5leHBvcnQgdHlwZSBPYXV0aENvbnNlbnRQbHVnaW5GaWVsZHMgPSB7XG4gIFwib2lkY1wiOiB7XG4gICAgY2xpZW50SWQ/OiBzdHJpbmdcbiAgICB1c2VySWQ/OiBzdHJpbmdcbiAgICBzY29wZXM/OiBzdHJpbmdcbiAgICBjcmVhdGVkQXQ/OiBEYXRlXG4gICAgdXBkYXRlZEF0PzogRGF0ZVxuICAgIGNvbnNlbnRHaXZlbj86IGJvb2xlYW5cbiAgfVxuICBcIm1jcFwiOiB7XG4gICAgY2xpZW50SWQ/OiBzdHJpbmdcbiAgICB1c2VySWQ/OiBzdHJpbmdcbiAgICBzY29wZXM/OiBzdHJpbmdcbiAgICBjcmVhdGVkQXQ/OiBEYXRlXG4gICAgdXBkYXRlZEF0PzogRGF0ZVxuICAgIGNvbnNlbnRHaXZlbj86IGJvb2xlYW5cbiAgfVxufVxuXG5leHBvcnQgdHlwZSBPYXV0aENvbnNlbnQgPSBPYXV0aENvbnNlbnRQbHVnaW5GaWVsZHNbXCJvaWRjXCJdICYgT2F1dGhDb25zZW50UGx1Z2luRmllbGRzW1wibWNwXCJdXG5cbmV4cG9ydCB0eXBlIFNzb1Byb3ZpZGVyRmllbGRzID0ge1xuICBpc3N1ZXI6IHN0cmluZ1xuICBvaWRjQ29uZmlnPzogc3RyaW5nXG4gIHNhbWxDb25maWc/OiBzdHJpbmdcbiAgdXNlcklkPzogc3RyaW5nXG4gIHByb3ZpZGVySWQ6IHN0cmluZ1xuICBvcmdhbml6YXRpb25JZD86IHN0cmluZ1xuICBkb21haW46IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBTc29Qcm92aWRlciA9IFNzb1Byb3ZpZGVyRmllbGRzXG5cbmV4cG9ydCB0eXBlIFRlYW1GaWVsZHMgPSB7XG4gIG5hbWU6IHN0cmluZ1xuICBvcmdhbml6YXRpb25JZDogc3RyaW5nXG4gIGNyZWF0ZWRBdDogRGF0ZVxuICB1cGRhdGVkQXQ/OiBEYXRlXG59XG5cbmV4cG9ydCB0eXBlIFRlYW0gPSBUZWFtRmllbGRzXG5cbmV4cG9ydCB0eXBlIFRlYW1NZW1iZXJGaWVsZHMgPSB7XG4gIHRlYW1JZDogc3RyaW5nXG4gIHVzZXJJZDogc3RyaW5nXG4gIGNyZWF0ZWRBdD86IERhdGVcbn1cblxuZXhwb3J0IHR5cGUgVGVhbU1lbWJlciA9IFRlYW1NZW1iZXJGaWVsZHNcblxuZXhwb3J0IHR5cGUgT3JnYW5pemF0aW9uRmllbGRzID0ge1xuICBuYW1lOiBzdHJpbmdcbiAgc2x1Zzogc3RyaW5nXG4gIGxvZ28/OiBzdHJpbmdcbiAgY3JlYXRlZEF0OiBEYXRlXG4gIG1ldGFkYXRhPzogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIE9yZ2FuaXphdGlvbiA9IE9yZ2FuaXphdGlvbkZpZWxkc1xuXG5leHBvcnQgdHlwZSBNZW1iZXJGaWVsZHMgPSB7XG4gIG9yZ2FuaXphdGlvbklkOiBzdHJpbmdcbiAgdXNlcklkOiBzdHJpbmdcbiAgcm9sZTogc3RyaW5nXG4gIGNyZWF0ZWRBdDogRGF0ZVxufVxuXG5leHBvcnQgdHlwZSBNZW1iZXIgPSBNZW1iZXJGaWVsZHNcblxuZXhwb3J0IHR5cGUgSW52aXRhdGlvbkZpZWxkcyA9IHtcbiAgb3JnYW5pemF0aW9uSWQ6IHN0cmluZ1xuICBlbWFpbDogc3RyaW5nXG4gIHJvbGU/OiBzdHJpbmdcbiAgdGVhbUlkPzogc3RyaW5nXG4gIHN0YXR1czogc3RyaW5nXG4gIGV4cGlyZXNBdDogRGF0ZVxuICBpbnZpdGVySWQ6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBJbnZpdGF0aW9uID0gSW52aXRhdGlvbkZpZWxkc1xuXG5leHBvcnQgdHlwZSBKd2tzRmllbGRzID0ge1xuICBwdWJsaWNLZXk6IHN0cmluZ1xuICBwcml2YXRlS2V5OiBzdHJpbmdcbiAgY3JlYXRlZEF0OiBEYXRlXG59XG5cbmV4cG9ydCB0eXBlIEp3a3MgPSBKd2tzRmllbGRzXG5cbmV4cG9ydCB0eXBlIFR3b0ZhY3RvckZpZWxkcyA9IHtcbiAgc2VjcmV0OiBzdHJpbmdcbiAgYmFja3VwQ29kZXM6IHN0cmluZ1xuICB1c2VySWQ6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBUd29GYWN0b3IgPSBUd29GYWN0b3JGaWVsZHNcblxuZXhwb3J0IHR5cGUgRGV2aWNlQ29kZUZpZWxkcyA9IHtcbiAgZGV2aWNlQ29kZTogc3RyaW5nXG4gIHVzZXJDb2RlOiBzdHJpbmdcbiAgdXNlcklkPzogc3RyaW5nXG4gIGV4cGlyZXNBdDogRGF0ZVxuICBzdGF0dXM6IHN0cmluZ1xuICBsYXN0UG9sbGVkQXQ/OiBEYXRlXG4gIHBvbGxpbmdJbnRlcnZhbD86IG51bWJlclxuICBjbGllbnRJZD86IHN0cmluZ1xuICBzY29wZT86IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBEZXZpY2VDb2RlID0gRGV2aWNlQ29kZUZpZWxkc1xuXG5leHBvcnQgdHlwZSBTdWJzY3JpcHRpb25GaWVsZHMgPSB7XG4gIHBsYW46IHN0cmluZ1xuICByZWZlcmVuY2VJZDogc3RyaW5nXG4gIHN0cmlwZUN1c3RvbWVySWQ/OiBzdHJpbmdcbiAgc3RyaXBlU3Vic2NyaXB0aW9uSWQ/OiBzdHJpbmdcbiAgc3RhdHVzPzogc3RyaW5nXG4gIHBlcmlvZFN0YXJ0PzogRGF0ZVxuICBwZXJpb2RFbmQ/OiBEYXRlXG4gIHRyaWFsU3RhcnQ/OiBEYXRlXG4gIHRyaWFsRW5kPzogRGF0ZVxuICBjYW5jZWxBdFBlcmlvZEVuZD86IGJvb2xlYW5cbiAgc2VhdHM/OiBudW1iZXJcbn1cblxuZXhwb3J0IHR5cGUgU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uRmllbGRzXG5cbmV4cG9ydCB0eXBlIFBsdWdpbklkID0gXCJ1c2VybmFtZVwiIHwgXCJhZG1pblwiIHwgXCJhcGkta2V5XCIgfCBcInBhc3NrZXlcIiB8IFwiaGFybW9ueS1lbWFpbFwiIHwgXCJoYXJtb255LXBob25lLW51bWJlclwiIHwgXCJiZWFyZXJcIiB8IFwiZW1haWwtb3RwXCIgfCBcIm1hZ2ljLWxpbmtcIiB8IFwicGhvbmUtbnVtYmVyXCIgfCBcIm9uZS10YXBcIiB8IFwiYW5vbnltb3VzXCIgfCBcIm11bHRpLXNlc3Npb25cIiB8IFwib25lLXRpbWUtdG9rZW5cIiB8IFwib2lkY1wiIHwgXCJzc29cIiB8IFwiZ2VuZXJpYy1vYXV0aFwiIHwgXCJvcGVuLWFwaVwiIHwgXCJvcmdhbml6YXRpb25cIiB8IFwiand0XCIgfCBcInR3by1mYWN0b3JcIiB8IFwibmV4dC1jb29raWVzXCIgfCBcImN1c3RvbS1zZXNzaW9uXCIgfCBcIm1jcFwiIHwgXCJkZXZpY2UtYXV0aG9yaXphdGlvblwiIHwgXCJsYXN0LWxvZ2luLW1ldGhvZFwiIHwgXCJzdHJpcGVcIiB8IFwicG9sYXJcIlxuXG5leHBvcnQgdHlwZSBCZXR0ZXJBdXRoRnVsbFNjaGVtYSA9IHtcbiAgXCJ1c2VyXCI6IFVzZXJcbiAgXCJzZXNzaW9uXCI6IFNlc3Npb25cbiAgXCJhY2NvdW50XCI6IEFjY291bnRcbiAgXCJ2ZXJpZmljYXRpb25cIjogVmVyaWZpY2F0aW9uXG4gIFwiYXBpa2V5XCI6IEFwaWtleVxuICBcInBhc3NrZXlcIjogUGFzc2tleVxuICBcIm9hdXRoQXBwbGljYXRpb25cIjogT2F1dGhBcHBsaWNhdGlvblxuICBcIm9hdXRoQWNjZXNzVG9rZW5cIjogT2F1dGhBY2Nlc3NUb2tlblxuICBcIm9hdXRoQ29uc2VudFwiOiBPYXV0aENvbnNlbnRcbiAgXCJzc29Qcm92aWRlclwiOiBTc29Qcm92aWRlclxuICBcInRlYW1cIjogVGVhbVxuICBcInRlYW1NZW1iZXJcIjogVGVhbU1lbWJlclxuICBcIm9yZ2FuaXphdGlvblwiOiBPcmdhbml6YXRpb25cbiAgXCJtZW1iZXJcIjogTWVtYmVyXG4gIFwiaW52aXRhdGlvblwiOiBJbnZpdGF0aW9uXG4gIFwiandrc1wiOiBKd2tzXG4gIFwidHdvRmFjdG9yXCI6IFR3b0ZhY3RvclxuICBcImRldmljZUNvZGVcIjogRGV2aWNlQ29kZVxuICBcInN1YnNjcmlwdGlvblwiOiBTdWJzY3JpcHRpb25cbn1cblxuZXhwb3J0IHR5cGUgTW9kZWxLZXkgPSBrZXlvZiBCZXR0ZXJBdXRoRnVsbFNjaGVtYSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQ0FBcUM7QUF1VnJDLFdBQWlEIn0=
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iZXR0ZXItYXV0aC9nZW5lcmF0ZWQtdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQXV0by1nZW5lcmF0ZWQgdHlwZXMuIERvIG5vdCBlZGl0LlxuXG5leHBvcnQgdHlwZSBCYXNlVXNlckZpZWxkcyA9IHtcbiAgbmFtZTogc3RyaW5nXG4gIGVtYWlsOiBzdHJpbmdcbiAgZW1haWxWZXJpZmllZDogYm9vbGVhblxuICBpbWFnZT86IHN0cmluZ1xuICBjcmVhdGVkQXQ6IERhdGVcbiAgdXBkYXRlZEF0OiBEYXRlXG4gIHJvbGU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgVXNlclBsdWdpbkZpZWxkcyA9IHtcbiAgXCJ1c2VybmFtZVwiOiB7XG4gICAgdXNlcm5hbWU/OiBzdHJpbmdcbiAgICBkaXNwbGF5VXNlcm5hbWU/OiBzdHJpbmdcbiAgfVxuICBcImFkbWluXCI6IHtcbiAgICBiYW5uZWQ/OiBib29sZWFuXG4gICAgYmFuUmVhc29uPzogc3RyaW5nXG4gICAgYmFuRXhwaXJlcz86IERhdGVcbiAgfVxuICBcImhhcm1vbnktZW1haWxcIjoge1xuICAgIG5vcm1hbGl6ZWRFbWFpbD86IHN0cmluZ1xuICB9XG4gIFwicGhvbmUtbnVtYmVyXCI6IHtcbiAgICBwaG9uZU51bWJlcj86IHN0cmluZ1xuICAgIHBob25lTnVtYmVyVmVyaWZpZWQ/OiBib29sZWFuXG4gIH1cbiAgXCJhbm9ueW1vdXNcIjoge1xuICAgIGlzQW5vbnltb3VzPzogYm9vbGVhblxuICB9XG4gIFwidHdvLWZhY3RvclwiOiB7XG4gICAgdHdvRmFjdG9yRW5hYmxlZD86IGJvb2xlYW5cbiAgfVxuICBcImxhc3QtbG9naW4tbWV0aG9kXCI6IHtcbiAgICBsYXN0TG9naW5NZXRob2Q/OiBzdHJpbmdcbiAgfVxuICBcInN0cmlwZVwiOiB7XG4gICAgc3RyaXBlQ3VzdG9tZXJJZD86IHN0cmluZ1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIFVzZXIgPSBCYXNlVXNlckZpZWxkcyAmIFVzZXJQbHVnaW5GaWVsZHNbXCJ1c2VybmFtZVwiXSAmIFVzZXJQbHVnaW5GaWVsZHNbXCJhZG1pblwiXSAmIFVzZXJQbHVnaW5GaWVsZHNbXCJoYXJtb255LWVtYWlsXCJdICYgVXNlclBsdWdpbkZpZWxkc1tcInBob25lLW51bWJlclwiXSAmIFVzZXJQbHVnaW5GaWVsZHNbXCJhbm9ueW1vdXNcIl0gJiBVc2VyUGx1Z2luRmllbGRzW1widHdvLWZhY3RvclwiXSAmIFVzZXJQbHVnaW5GaWVsZHNbXCJsYXN0LWxvZ2luLW1ldGhvZFwiXSAmIFVzZXJQbHVnaW5GaWVsZHNbXCJzdHJpcGVcIl1cblxuZXhwb3J0IHR5cGUgQmFzZVNlc3Npb25GaWVsZHMgPSB7XG4gIGV4cGlyZXNBdDogRGF0ZVxuICB0b2tlbjogc3RyaW5nXG4gIGNyZWF0ZWRBdDogRGF0ZVxuICB1cGRhdGVkQXQ6IERhdGVcbiAgaXBBZGRyZXNzPzogc3RyaW5nXG4gIHVzZXJBZ2VudD86IHN0cmluZ1xuICB1c2VySWQ6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBTZXNzaW9uUGx1Z2luRmllbGRzID0ge1xuICBcImFkbWluXCI6IHtcbiAgICBpbXBlcnNvbmF0ZWRCeT86IHN0cmluZ1xuICB9XG4gIFwib3JnYW5pemF0aW9uXCI6IHtcbiAgICBhY3RpdmVPcmdhbml6YXRpb25JZD86IHN0cmluZ1xuICAgIGFjdGl2ZVRlYW1JZD86IHN0cmluZ1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIFNlc3Npb24gPSBCYXNlU2Vzc2lvbkZpZWxkcyAmIFNlc3Npb25QbHVnaW5GaWVsZHNbXCJhZG1pblwiXSAmIFNlc3Npb25QbHVnaW5GaWVsZHNbXCJvcmdhbml6YXRpb25cIl1cblxuZXhwb3J0IHR5cGUgQmFzZUFjY291bnRGaWVsZHMgPSB7XG4gIGFjY291bnRJZDogc3RyaW5nXG4gIHByb3ZpZGVySWQ6IHN0cmluZ1xuICB1c2VySWQ6IHN0cmluZ1xuICBhY2Nlc3NUb2tlbj86IHN0cmluZ1xuICByZWZyZXNoVG9rZW4/OiBzdHJpbmdcbiAgaWRUb2tlbj86IHN0cmluZ1xuICBhY2Nlc3NUb2tlbkV4cGlyZXNBdD86IERhdGVcbiAgcmVmcmVzaFRva2VuRXhwaXJlc0F0PzogRGF0ZVxuICBzY29wZT86IHN0cmluZ1xuICBwYXNzd29yZD86IHN0cmluZ1xuICBjcmVhdGVkQXQ6IERhdGVcbiAgdXBkYXRlZEF0OiBEYXRlXG59XG5cbmV4cG9ydCB0eXBlIEFjY291bnQgPSBCYXNlQWNjb3VudEZpZWxkc1xuXG5leHBvcnQgdHlwZSBCYXNlVmVyaWZpY2F0aW9uRmllbGRzID0ge1xuICBpZGVudGlmaWVyOiBzdHJpbmdcbiAgdmFsdWU6IHN0cmluZ1xuICBleHBpcmVzQXQ6IERhdGVcbiAgY3JlYXRlZEF0OiBEYXRlXG4gIHVwZGF0ZWRBdDogRGF0ZVxufVxuXG5leHBvcnQgdHlwZSBWZXJpZmljYXRpb24gPSBCYXNlVmVyaWZpY2F0aW9uRmllbGRzXG5cbmV4cG9ydCB0eXBlIEFwaWtleUZpZWxkcyA9IHtcbiAgbmFtZT86IHN0cmluZ1xuICBzdGFydD86IHN0cmluZ1xuICBwcmVmaXg/OiBzdHJpbmdcbiAga2V5OiBzdHJpbmdcbiAgdXNlcklkOiBzdHJpbmdcbiAgcmVmaWxsSW50ZXJ2YWw/OiBudW1iZXJcbiAgcmVmaWxsQW1vdW50PzogbnVtYmVyXG4gIGxhc3RSZWZpbGxBdD86IERhdGVcbiAgZW5hYmxlZD86IGJvb2xlYW5cbiAgcmF0ZUxpbWl0RW5hYmxlZD86IGJvb2xlYW5cbiAgcmF0ZUxpbWl0VGltZVdpbmRvdz86IG51bWJlclxuICByYXRlTGltaXRNYXg/OiBudW1iZXJcbiAgcmVxdWVzdENvdW50PzogbnVtYmVyXG4gIHJlbWFpbmluZz86IG51bWJlclxuICBsYXN0UmVxdWVzdD86IERhdGVcbiAgZXhwaXJlc0F0PzogRGF0ZVxuICBjcmVhdGVkQXQ6IERhdGVcbiAgdXBkYXRlZEF0OiBEYXRlXG4gIHBlcm1pc3Npb25zPzogc3RyaW5nXG4gIG1ldGFkYXRhPzogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIEFwaWtleSA9IEFwaWtleUZpZWxkc1xuXG5leHBvcnQgdHlwZSBQYXNza2V5RmllbGRzID0ge1xuICBuYW1lPzogc3RyaW5nXG4gIHB1YmxpY0tleTogc3RyaW5nXG4gIHVzZXJJZDogc3RyaW5nXG4gIGNyZWRlbnRpYWxJRDogc3RyaW5nXG4gIGNvdW50ZXI6IG51bWJlclxuICBkZXZpY2VUeXBlOiBzdHJpbmdcbiAgYmFja2VkVXA6IGJvb2xlYW5cbiAgdHJhbnNwb3J0cz86IHN0cmluZ1xuICBjcmVhdGVkQXQ/OiBEYXRlXG4gIGFhZ3VpZD86IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBQYXNza2V5ID0gUGFzc2tleUZpZWxkc1xuXG5leHBvcnQgdHlwZSBPYXV0aEFwcGxpY2F0aW9uUGx1Z2luRmllbGRzID0ge1xuICBcIm9pZGNcIjoge1xuICAgIG5hbWU/OiBzdHJpbmdcbiAgICBpY29uPzogc3RyaW5nXG4gICAgbWV0YWRhdGE/OiBzdHJpbmdcbiAgICBjbGllbnRJZD86IHN0cmluZ1xuICAgIGNsaWVudFNlY3JldD86IHN0cmluZ1xuICAgIHJlZGlyZWN0VXJscz86IHN0cmluZ1xuICAgIHR5cGU/OiBzdHJpbmdcbiAgICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgICB1c2VySWQ/OiBzdHJpbmdcbiAgICBjcmVhdGVkQXQ/OiBEYXRlXG4gICAgdXBkYXRlZEF0PzogRGF0ZVxuICB9XG4gIFwibWNwXCI6IHtcbiAgICBuYW1lPzogc3RyaW5nXG4gICAgaWNvbj86IHN0cmluZ1xuICAgIG1ldGFkYXRhPzogc3RyaW5nXG4gICAgY2xpZW50SWQ/OiBzdHJpbmdcbiAgICBjbGllbnRTZWNyZXQ/OiBzdHJpbmdcbiAgICByZWRpcmVjdFVybHM/OiBzdHJpbmdcbiAgICB0eXBlPzogc3RyaW5nXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICAgdXNlcklkPzogc3RyaW5nXG4gICAgY3JlYXRlZEF0PzogRGF0ZVxuICAgIHVwZGF0ZWRBdD86IERhdGVcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBPYXV0aEFwcGxpY2F0aW9uID0gT2F1dGhBcHBsaWNhdGlvblBsdWdpbkZpZWxkc1tcIm9pZGNcIl0gJiBPYXV0aEFwcGxpY2F0aW9uUGx1Z2luRmllbGRzW1wibWNwXCJdXG5cbmV4cG9ydCB0eXBlIE9hdXRoQWNjZXNzVG9rZW5QbHVnaW5GaWVsZHMgPSB7XG4gIFwib2lkY1wiOiB7XG4gICAgYWNjZXNzVG9rZW4/OiBzdHJpbmdcbiAgICByZWZyZXNoVG9rZW4/OiBzdHJpbmdcbiAgICBhY2Nlc3NUb2tlbkV4cGlyZXNBdD86IERhdGVcbiAgICByZWZyZXNoVG9rZW5FeHBpcmVzQXQ/OiBEYXRlXG4gICAgY2xpZW50SWQ/OiBzdHJpbmdcbiAgICB1c2VySWQ/OiBzdHJpbmdcbiAgICBzY29wZXM/OiBzdHJpbmdcbiAgICBjcmVhdGVkQXQ/OiBEYXRlXG4gICAgdXBkYXRlZEF0PzogRGF0ZVxuICB9XG4gIFwibWNwXCI6IHtcbiAgICBhY2Nlc3NUb2tlbj86IHN0cmluZ1xuICAgIHJlZnJlc2hUb2tlbj86IHN0cmluZ1xuICAgIGFjY2Vzc1Rva2VuRXhwaXJlc0F0PzogRGF0ZVxuICAgIHJlZnJlc2hUb2tlbkV4cGlyZXNBdD86IERhdGVcbiAgICBjbGllbnRJZD86IHN0cmluZ1xuICAgIHVzZXJJZD86IHN0cmluZ1xuICAgIHNjb3Blcz86IHN0cmluZ1xuICAgIGNyZWF0ZWRBdD86IERhdGVcbiAgICB1cGRhdGVkQXQ/OiBEYXRlXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgT2F1dGhBY2Nlc3NUb2tlbiA9IE9hdXRoQWNjZXNzVG9rZW5QbHVnaW5GaWVsZHNbXCJvaWRjXCJdICYgT2F1dGhBY2Nlc3NUb2tlblBsdWdpbkZpZWxkc1tcIm1jcFwiXVxuXG5leHBvcnQgdHlwZSBPYXV0aENvbnNlbnRQbHVnaW5GaWVsZHMgPSB7XG4gIFwib2lkY1wiOiB7XG4gICAgY2xpZW50SWQ/OiBzdHJpbmdcbiAgICB1c2VySWQ/OiBzdHJpbmdcbiAgICBzY29wZXM/OiBzdHJpbmdcbiAgICBjcmVhdGVkQXQ/OiBEYXRlXG4gICAgdXBkYXRlZEF0PzogRGF0ZVxuICAgIGNvbnNlbnRHaXZlbj86IGJvb2xlYW5cbiAgfVxuICBcIm1jcFwiOiB7XG4gICAgY2xpZW50SWQ/OiBzdHJpbmdcbiAgICB1c2VySWQ/OiBzdHJpbmdcbiAgICBzY29wZXM/OiBzdHJpbmdcbiAgICBjcmVhdGVkQXQ/OiBEYXRlXG4gICAgdXBkYXRlZEF0PzogRGF0ZVxuICAgIGNvbnNlbnRHaXZlbj86IGJvb2xlYW5cbiAgfVxufVxuXG5leHBvcnQgdHlwZSBPYXV0aENvbnNlbnQgPSBPYXV0aENvbnNlbnRQbHVnaW5GaWVsZHNbXCJvaWRjXCJdICYgT2F1dGhDb25zZW50UGx1Z2luRmllbGRzW1wibWNwXCJdXG5cbmV4cG9ydCB0eXBlIFNzb1Byb3ZpZGVyRmllbGRzID0ge1xuICBpc3N1ZXI6IHN0cmluZ1xuICBvaWRjQ29uZmlnPzogc3RyaW5nXG4gIHNhbWxDb25maWc/OiBzdHJpbmdcbiAgdXNlcklkPzogc3RyaW5nXG4gIHByb3ZpZGVySWQ6IHN0cmluZ1xuICBvcmdhbml6YXRpb25JZD86IHN0cmluZ1xuICBkb21haW46IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBTc29Qcm92aWRlciA9IFNzb1Byb3ZpZGVyRmllbGRzXG5cbmV4cG9ydCB0eXBlIE9yZ2FuaXphdGlvbkZpZWxkcyA9IHtcbiAgbmFtZTogc3RyaW5nXG4gIHNsdWc6IHN0cmluZ1xuICBsb2dvPzogc3RyaW5nXG4gIGNyZWF0ZWRBdDogRGF0ZVxuICBtZXRhZGF0YT86IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBPcmdhbml6YXRpb24gPSBPcmdhbml6YXRpb25GaWVsZHNcblxuZXhwb3J0IHR5cGUgVGVhbUZpZWxkcyA9IHtcbiAgbmFtZTogc3RyaW5nXG4gIG9yZ2FuaXphdGlvbklkOiBzdHJpbmdcbiAgY3JlYXRlZEF0OiBEYXRlXG4gIHVwZGF0ZWRBdD86IERhdGVcbn1cblxuZXhwb3J0IHR5cGUgVGVhbSA9IFRlYW1GaWVsZHNcblxuZXhwb3J0IHR5cGUgVGVhbU1lbWJlckZpZWxkcyA9IHtcbiAgdGVhbUlkOiBzdHJpbmdcbiAgdXNlcklkOiBzdHJpbmdcbiAgY3JlYXRlZEF0PzogRGF0ZVxufVxuXG5leHBvcnQgdHlwZSBUZWFtTWVtYmVyID0gVGVhbU1lbWJlckZpZWxkc1xuXG5leHBvcnQgdHlwZSBNZW1iZXJGaWVsZHMgPSB7XG4gIG9yZ2FuaXphdGlvbklkOiBzdHJpbmdcbiAgdXNlcklkOiBzdHJpbmdcbiAgcm9sZTogc3RyaW5nXG4gIGNyZWF0ZWRBdDogRGF0ZVxufVxuXG5leHBvcnQgdHlwZSBNZW1iZXIgPSBNZW1iZXJGaWVsZHNcblxuZXhwb3J0IHR5cGUgSW52aXRhdGlvbkZpZWxkcyA9IHtcbiAgb3JnYW5pemF0aW9uSWQ6IHN0cmluZ1xuICBlbWFpbDogc3RyaW5nXG4gIHJvbGU/OiBzdHJpbmdcbiAgdGVhbUlkPzogc3RyaW5nXG4gIHN0YXR1czogc3RyaW5nXG4gIGV4cGlyZXNBdDogRGF0ZVxuICBjcmVhdGVkQXQ6IERhdGVcbiAgaW52aXRlcklkOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgSW52aXRhdGlvbiA9IEludml0YXRpb25GaWVsZHNcblxuZXhwb3J0IHR5cGUgSndrc0ZpZWxkcyA9IHtcbiAgcHVibGljS2V5OiBzdHJpbmdcbiAgcHJpdmF0ZUtleTogc3RyaW5nXG4gIGNyZWF0ZWRBdDogRGF0ZVxuICBleHBpcmVzQXQ/OiBEYXRlXG59XG5cbmV4cG9ydCB0eXBlIEp3a3MgPSBKd2tzRmllbGRzXG5cbmV4cG9ydCB0eXBlIFR3b0ZhY3RvckZpZWxkcyA9IHtcbiAgc2VjcmV0OiBzdHJpbmdcbiAgYmFja3VwQ29kZXM6IHN0cmluZ1xuICB1c2VySWQ6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBUd29GYWN0b3IgPSBUd29GYWN0b3JGaWVsZHNcblxuZXhwb3J0IHR5cGUgRGV2aWNlQ29kZUZpZWxkcyA9IHtcbiAgZGV2aWNlQ29kZTogc3RyaW5nXG4gIHVzZXJDb2RlOiBzdHJpbmdcbiAgdXNlcklkPzogc3RyaW5nXG4gIGV4cGlyZXNBdDogRGF0ZVxuICBzdGF0dXM6IHN0cmluZ1xuICBsYXN0UG9sbGVkQXQ/OiBEYXRlXG4gIHBvbGxpbmdJbnRlcnZhbD86IG51bWJlclxuICBjbGllbnRJZD86IHN0cmluZ1xuICBzY29wZT86IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBEZXZpY2VDb2RlID0gRGV2aWNlQ29kZUZpZWxkc1xuXG5leHBvcnQgdHlwZSBTdWJzY3JpcHRpb25GaWVsZHMgPSB7XG4gIHBsYW46IHN0cmluZ1xuICByZWZlcmVuY2VJZDogc3RyaW5nXG4gIHN0cmlwZUN1c3RvbWVySWQ/OiBzdHJpbmdcbiAgc3RyaXBlU3Vic2NyaXB0aW9uSWQ/OiBzdHJpbmdcbiAgc3RhdHVzPzogc3RyaW5nXG4gIHBlcmlvZFN0YXJ0PzogRGF0ZVxuICBwZXJpb2RFbmQ/OiBEYXRlXG4gIHRyaWFsU3RhcnQ/OiBEYXRlXG4gIHRyaWFsRW5kPzogRGF0ZVxuICBjYW5jZWxBdFBlcmlvZEVuZD86IGJvb2xlYW5cbiAgc2VhdHM/OiBudW1iZXJcbn1cblxuZXhwb3J0IHR5cGUgU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uRmllbGRzXG5cbmV4cG9ydCB0eXBlIFBsdWdpbklkID0gXCJ1c2VybmFtZVwiIHwgXCJhZG1pblwiIHwgXCJhcGkta2V5XCIgfCBcInBhc3NrZXlcIiB8IFwiaGFybW9ueS1lbWFpbFwiIHwgXCJoYXJtb255LXBob25lLW51bWJlclwiIHwgXCJiZWFyZXJcIiB8IFwiZW1haWwtb3RwXCIgfCBcIm1hZ2ljLWxpbmtcIiB8IFwicGhvbmUtbnVtYmVyXCIgfCBcIm9uZS10YXBcIiB8IFwiYW5vbnltb3VzXCIgfCBcIm11bHRpLXNlc3Npb25cIiB8IFwib25lLXRpbWUtdG9rZW5cIiB8IFwib2lkY1wiIHwgXCJzc29cIiB8IFwiZ2VuZXJpYy1vYXV0aFwiIHwgXCJvcGVuLWFwaVwiIHwgXCJvcmdhbml6YXRpb25cIiB8IFwiand0XCIgfCBcInR3by1mYWN0b3JcIiB8IFwibmV4dC1jb29raWVzXCIgfCBcImN1c3RvbS1zZXNzaW9uXCIgfCBcIm1jcFwiIHwgXCJkZXZpY2UtYXV0aG9yaXphdGlvblwiIHwgXCJsYXN0LWxvZ2luLW1ldGhvZFwiIHwgXCJzdHJpcGVcIiB8IFwicG9sYXJcIlxuXG5leHBvcnQgdHlwZSBCZXR0ZXJBdXRoRnVsbFNjaGVtYSA9IHtcbiAgXCJ1c2VyXCI6IFVzZXJcbiAgXCJzZXNzaW9uXCI6IFNlc3Npb25cbiAgXCJhY2NvdW50XCI6IEFjY291bnRcbiAgXCJ2ZXJpZmljYXRpb25cIjogVmVyaWZpY2F0aW9uXG4gIFwiYXBpa2V5XCI6IEFwaWtleVxuICBcInBhc3NrZXlcIjogUGFzc2tleVxuICBcIm9hdXRoQXBwbGljYXRpb25cIjogT2F1dGhBcHBsaWNhdGlvblxuICBcIm9hdXRoQWNjZXNzVG9rZW5cIjogT2F1dGhBY2Nlc3NUb2tlblxuICBcIm9hdXRoQ29uc2VudFwiOiBPYXV0aENvbnNlbnRcbiAgXCJzc29Qcm92aWRlclwiOiBTc29Qcm92aWRlclxuICBcIm9yZ2FuaXphdGlvblwiOiBPcmdhbml6YXRpb25cbiAgXCJ0ZWFtXCI6IFRlYW1cbiAgXCJ0ZWFtTWVtYmVyXCI6IFRlYW1NZW1iZXJcbiAgXCJtZW1iZXJcIjogTWVtYmVyXG4gIFwiaW52aXRhdGlvblwiOiBJbnZpdGF0aW9uXG4gIFwiandrc1wiOiBKd2tzXG4gIFwidHdvRmFjdG9yXCI6IFR3b0ZhY3RvclxuICBcImRldmljZUNvZGVcIjogRGV2aWNlQ29kZVxuICBcInN1YnNjcmlwdGlvblwiOiBTdWJzY3JpcHRpb25cbn1cblxuZXhwb3J0IHR5cGUgTW9kZWxLZXkgPSBrZXlvZiBCZXR0ZXJBdXRoRnVsbFNjaGVtYSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQ0FBcUM7QUF5VnJDLFdBQWlEIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/better-auth/plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAc,eAAe,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAA;AASlE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAGtD,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAA;AACpF,cAAc,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/better-auth/plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAc,eAAe,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAA;AASlE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAGtD,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAA;AACpF,cAAc,SAAS,CAAA;AAyCvB,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,uBAAuB,IAC7D,QAAQ,MAAM,KAAG,MAAM,CA+DhC;AAED,wBAAgB,eAAe,CAAC,EAAE,aAAa,EAAE,EAAE;IAAE,aAAa,EAAE,eAAe,CAAA;CAAE,GAAG,iBAAiB,CAmBxG"}
|
|
@@ -34,7 +34,8 @@ function buildBetterAuthData({ payloadConfig, pluginOptions }) {
|
|
|
34
34
|
const sanitizedBetterAuthOptions = sanitizeBetterAuthOptions({
|
|
35
35
|
config: payloadConfig,
|
|
36
36
|
pluginOptions,
|
|
37
|
-
resolvedSchemas: resolvedBetterAuthSchemas
|
|
37
|
+
resolvedSchemas: resolvedBetterAuthSchemas,
|
|
38
|
+
collections: Object.values(collectionMap)
|
|
38
39
|
});
|
|
39
40
|
pluginOptions.betterAuthOptions = sanitizedBetterAuthOptions;
|
|
40
41
|
return {
|
|
@@ -122,4 +123,4 @@ export function withPayloadAuth({ payloadConfig }) {
|
|
|
122
123
|
return optionsWithAdapter;
|
|
123
124
|
}
|
|
124
125
|
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCZXR0ZXJBdXRoT3B0aW9ucyB9IGZyb20gJ2JldHRlci1hdXRoL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0UGF5bG9hZCwgU2FuaXRpemVkQ29uZmlnLCB0eXBlIENvbmZpZyB9IGZyb20gJ3BheWxvYWQnXG5pbXBvcnQgeyBwYXlsb2FkQWRhcHRlciB9IGZyb20gJ3BheWxvYWQtYXV0aC9iZXR0ZXItYXV0aC9hZGFwdGVyJ1xuaW1wb3J0IHsgZ2V0RGVmYXVsdEJldHRlckF1dGhTY2hlbWEgfSBmcm9tICcuL2hlbHBlcnMvZ2V0LWJldHRlci1hdXRoLXNjaGVtYSdcbmltcG9ydCB7IHN5bmNSZXNvbHZlZFNjaGVtYVdpdGhDb2xsZWN0aW9uTWFwIH0gZnJvbSAnLi9oZWxwZXJzL3N5bmMtcmVzb2x2ZWQtc2NoZW1hLXdpdGgtY29sbGVjdGlvbi1tYXAnXG5pbXBvcnQgeyBhcHBseURpc2FibGVkRGVmYXVsdEF1dGhDb25maWcgfSBmcm9tICcuL2xpYi9hcHBseS1kaXNhYmxlZC1kZWZhdWx0LWF1dGgtY29uZmlnJ1xuaW1wb3J0IHsgYnVpbGRDb2xsZWN0aW9ucyB9IGZyb20gJy4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL2luZGV4J1xuaW1wb3J0IHsgaW5pdEJldHRlckF1dGggfSBmcm9tICcuL2xpYi9pbml0LWJldHRlci1hdXRoJ1xuaW1wb3J0IHsgc2FuaXRpemVCZXR0ZXJBdXRoT3B0aW9ucyB9IGZyb20gJy4vbGliL3Nhbml0aXplLWJldHRlci1hdXRoLW9wdGlvbnMvaW5kZXgnXG5pbXBvcnQgeyBzZXRMb2dpbk1ldGhvZHMgfSBmcm9tICcuL2xpYi9zZXQtbG9naW4tbWV0aG9kcydcbmltcG9ydCB0eXBlIHsgQmV0dGVyQXV0aFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHsgc2V0IH0gZnJvbSAnLi91dGlscy9zZXQnXG5cbmV4cG9ydCAqIGZyb20gJy4vaGVscGVycy9pbmRleCdcbmV4cG9ydCB7IGdldFBheWxvYWRBdXRoIH0gZnJvbSAnLi9saWIvZ2V0LXBheWxvYWQtYXV0aCdcbmV4cG9ydCB7IHNhbml0aXplQmV0dGVyQXV0aE9wdGlvbnMgfSBmcm9tICcuL2xpYi9zYW5pdGl6ZS1iZXR0ZXItYXV0aC1vcHRpb25zL2luZGV4J1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcydcblxuZnVuY3Rpb24gYnVpbGRCZXR0ZXJBdXRoRGF0YSh7IHBheWxvYWRDb25maWcsIHBsdWdpbk9wdGlvbnMgfTogeyBwYXlsb2FkQ29uZmlnOiBTYW5pdGl6ZWRDb25maWc7IHBsdWdpbk9wdGlvbnM6IEJldHRlckF1dGhQbHVnaW5PcHRpb25zIH0pIHtcbiAgcGx1Z2luT3B0aW9ucyA9IHNldExvZ2luTWV0aG9kcyh7IHBsdWdpbk9wdGlvbnMgfSlcblxuICBjb25zdCBkZWZhdWx0QmV0dGVyQXV0aFNjaGVtYXMgPSBnZXREZWZhdWx0QmV0dGVyQXV0aFNjaGVtYShwbHVnaW5PcHRpb25zKVxuXG4gIGxldCBjb2xsZWN0aW9uTWFwID0gYnVpbGRDb2xsZWN0aW9ucyh7XG4gICAgcmVzb2x2ZWRTY2hlbWFzOiBkZWZhdWx0QmV0dGVyQXV0aFNjaGVtYXMsXG4gICAgaW5jb21pbmdDb2xsZWN0aW9uczogcGF5bG9hZENvbmZpZy5jb2xsZWN0aW9ucyA/PyBbXSxcbiAgICBwbHVnaW5PcHRpb25zXG4gIH0pXG5cbiAgY29uc3QgcmVzb2x2ZWRCZXR0ZXJBdXRoU2NoZW1hcyA9IHN5bmNSZXNvbHZlZFNjaGVtYVdpdGhDb2xsZWN0aW9uTWFwKGRlZmF1bHRCZXR0ZXJBdXRoU2NoZW1hcywgY29sbGVjdGlvbk1hcClcblxuICAvLyBXZSBuZWVkIHRvIGJ1aWxkIHRoZSBjb2xsZWN0aW9ucyBhIHNlY29uZCB0aW1lIHdpdGggdGhlIHJlc29sdmVkIHNjaGVtYXNcbiAgLy8gZHVlIHRvIGhvb2tzLCBlbmRwb2ludHMsIHVzZUFzVGl0bGUsIGV0YyBzaG91bGQgcmVseSBvbiByZXNvbHZlZEJldHRlckF1dGhTY2hlbWFzIHRvIGdldCBzbHVnc1xuICAvLyBpZiB0aGV5IGFyZSByZWZlcmVuY2luZyB0byBvdGhlciBjb2xsZWN0aW9ucyB0aGVuIGl0IHNlbGYuXG4gIGNvbGxlY3Rpb25NYXAgPSBidWlsZENvbGxlY3Rpb25zKHtcbiAgICByZXNvbHZlZFNjaGVtYXM6IHJlc29sdmVkQmV0dGVyQXV0aFNjaGVtYXMsXG4gICAgaW5jb21pbmdDb2xsZWN0aW9uczogcGF5bG9hZENvbmZpZy5jb2xsZWN0aW9ucyA/PyBbXSxcbiAgICBwbHVnaW5PcHRpb25zXG4gIH0pXG5cbiAgY29uc3Qgc2FuaXRpemVkQmV0dGVyQXV0aE9wdGlvbnMgPSBzYW5pdGl6ZUJldHRlckF1dGhPcHRpb25zKHtcbiAgICBjb25maWc6IHBheWxvYWRDb25maWcsXG4gICAgcGx1Z2luT3B0aW9ucyxcbiAgICByZXNvbHZlZFNjaGVtYXM6IHJlc29sdmVkQmV0dGVyQXV0aFNjaGVtYXNcbiAgfSlcblxuICBwbHVnaW5PcHRpb25zLmJldHRlckF1dGhPcHRpb25zID0gc2FuaXRpemVkQmV0dGVyQXV0aE9wdGlvbnNcblxuICByZXR1cm4ge1xuICAgIHBsdWdpbk9wdGlvbnMsXG4gICAgY29sbGVjdGlvbk1hcCxcbiAgICByZXNvbHZlZEJldHRlckF1dGhTY2hlbWFzLFxuICAgIHNhbml0aXplZEJldHRlckF1dGhPcHRpb25zXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJldHRlckF1dGhQbHVnaW4ocGx1Z2luT3B0aW9uczogQmV0dGVyQXV0aFBsdWdpbk9wdGlvbnMpIHtcbiAgcmV0dXJuIChjb25maWc6IENvbmZpZyk6IENvbmZpZyA9PiB7XG4gICAgaWYgKHBsdWdpbk9wdGlvbnMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiBjb25maWdcbiAgICB9XG5cbiAgICBjb25maWcuY3VzdG9tID0ge1xuICAgICAgLi4uY29uZmlnLmN1c3RvbSxcbiAgICAgIGhhc0JldHRlckF1dGhQbHVnaW46IHRydWVcbiAgICB9XG5cbiAgICBjb25zdCB7IGNvbGxlY3Rpb25NYXAsIHJlc29sdmVkQmV0dGVyQXV0aFNjaGVtYXMsIHNhbml0aXplZEJldHRlckF1dGhPcHRpb25zIH0gPSBidWlsZEJldHRlckF1dGhEYXRhKHtcbiAgICAgIHBheWxvYWRDb25maWc6IGNvbmZpZyBhcyBTYW5pdGl6ZWRDb25maWcsXG4gICAgICBwbHVnaW5PcHRpb25zXG4gICAgfSlcblxuICAgIHNldChjb25maWcsICdjdXN0b20uYmV0dGVyQXV0aC5jb25maWcnLCBzYW5pdGl6ZWRCZXR0ZXJBdXRoT3B0aW9ucylcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRmluYWxpemUgY29uZmlnIC0tLS0tLS0tLS0tLS0tLS0tXG4gICAgaWYgKHBsdWdpbk9wdGlvbnMuZGlzYWJsZURlZmF1bHRQYXlsb2FkQXV0aCkge1xuICAgICAgYXBwbHlEaXNhYmxlZERlZmF1bHRBdXRoQ29uZmlnKHtcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBwbHVnaW5PcHRpb25zLFxuICAgICAgICBjb2xsZWN0aW9uTWFwLFxuICAgICAgICByZXNvbHZlZEJldHRlckF1dGhTY2hlbWFzXG4gICAgICB9KVxuICAgIH1cblxuICAgIGNvbmZpZy5jb2xsZWN0aW9ucyA9IGNvbmZpZy5jb2xsZWN0aW9ucyA/PyBbXVxuICAgIGNvbmZpZy5jb2xsZWN0aW9ucyA9IE9iamVjdC52YWx1ZXMoY29sbGVjdGlvbk1hcClcblxuICAgIGNvbnN0IGluY29taW5nT25Jbml0ID0gY29uZmlnLm9uSW5pdFxuXG4gICAgY29uZmlnLm9uSW5pdCA9IGFzeW5jIChwYXlsb2FkKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBFeGVjdXRlIGFueSBleGlzdGluZyBvbkluaXQgZnVuY3Rpb25zIGZpcnN0XG4gICAgICAgIGlmIChpbmNvbWluZ09uSW5pdCkge1xuICAgICAgICAgIGF3YWl0IGluY29taW5nT25Jbml0KHBheWxvYWQpXG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbml0aWFsaXplIGFuZCBzZXQgdGhlIGJldHRlckF1dGggaW5zdGFuY2VcbiAgICAgICAgY29uc3QgYXV0aCA9IGluaXRCZXR0ZXJBdXRoPHR5cGVvZiBwbHVnaW5PcHRpb25zPih7XG4gICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICBpZFR5cGU6IHBheWxvYWQuZGIuZGVmYXVsdElEVHlwZSxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAuLi5zYW5pdGl6ZWRCZXR0ZXJBdXRoT3B0aW9ucyxcbiAgICAgICAgICAgIGVuYWJsZURlYnVnTG9nczogcGx1Z2luT3B0aW9ucy5kZWJ1Zz8uZW5hYmxlRGVidWdMb2dzID8/IGZhbHNlLFxuICAgICAgICAgICAgcGx1Z2luczogWy4uLihzYW5pdGl6ZWRCZXR0ZXJBdXRoT3B0aW9ucy5wbHVnaW5zID8/IFtdKV1cbiAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gVHlwZS1zYWZlIGV4dGVuc2lvbiBvZiBwYXlsb2FkIHdpdGggYmV0dGVyQXV0aFxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocGF5bG9hZCwgJ2JldHRlckF1dGgnLCB7XG4gICAgICAgICAgdmFsdWU6IGF1dGgsXG4gICAgICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBpbml0aWFsaXplIEJldHRlckF1dGg6JywgZXJyb3IpXG4gICAgICAgIHRocm93IGVycm9yXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb25maWdcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd2l0aFBheWxvYWRBdXRoKHsgcGF5bG9hZENvbmZpZyB9OiB7IHBheWxvYWRDb25maWc6IFNhbml0aXplZENvbmZpZyB9KTogQmV0dGVyQXV0aE9wdGlvbnMge1xuICBjb25zdCBiZXR0ZXJBdXRoQ29uZmlnID0gcGF5bG9hZENvbmZpZy5jdXN0b20uYmV0dGVyQXV0aC5jb25maWcgYXMgQmV0dGVyQXV0aE9wdGlvbnNcblxuICBpZiAoIWJldHRlckF1dGhDb25maWcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0JldHRlckF1dGggY29uZmlnIG5vdCBmb3VuZC4gTm90IHNldCBwYXlsb2FkQ29uZmlnLmN1c3RvbS5iZXR0ZXJBdXRoLmNvbmZpZycpXG4gIH1cblxuICBjb25zdCBvcHRpb25zV2l0aEFkYXB0ZXI6IEJldHRlckF1dGhPcHRpb25zID0ge1xuICAgIC4uLmJldHRlckF1dGhDb25maWcsXG4gICAgZGF0YWJhc2U6IHBheWxvYWRBZGFwdGVyKHtcbiAgICAgIHBheWxvYWRDbGllbnQ6IGFzeW5jICgpID0+IGF3YWl0IGdldFBheWxvYWQoeyBjb25maWc6IHBheWxvYWRDb25maWcgfSksXG4gICAgICBhZGFwdGVyQ29uZmlnOiB7XG4gICAgICAgIGVuYWJsZURlYnVnTG9nczogZmFsc2UsXG4gICAgICAgIGlkVHlwZTogcGF5bG9hZENvbmZpZy5kYi5kZWZhdWx0SURUeXBlXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBvcHRpb25zV2l0aEFkYXB0ZXJcbn1cbiJdLCJuYW1lcyI6WyJnZXRQYXlsb2FkIiwicGF5bG9hZEFkYXB0ZXIiLCJnZXREZWZhdWx0QmV0dGVyQXV0aFNjaGVtYSIsInN5bmNSZXNvbHZlZFNjaGVtYVdpdGhDb2xsZWN0aW9uTWFwIiwiYXBwbHlEaXNhYmxlZERlZmF1bHRBdXRoQ29uZmlnIiwiYnVpbGRDb2xsZWN0aW9ucyIsImluaXRCZXR0ZXJBdXRoIiwic2FuaXRpemVCZXR0ZXJBdXRoT3B0aW9ucyIsInNldExvZ2luTWV0aG9kcyIsInNldCIsImdldFBheWxvYWRBdXRoIiwiYnVpbGRCZXR0ZXJBdXRoRGF0YSIsInBheWxvYWRDb25maWciLCJwbHVnaW5PcHRpb25zIiwiZGVmYXVsdEJldHRlckF1dGhTY2hlbWFzIiwiY29sbGVjdGlvbk1hcCIsInJlc29sdmVkU2NoZW1hcyIsImluY29taW5nQ29sbGVjdGlvbnMiLCJjb2xsZWN0aW9ucyIsInJlc29sdmVkQmV0dGVyQXV0aFNjaGVtYXMiLCJzYW5pdGl6ZWRCZXR0ZXJBdXRoT3B0aW9ucyIsImNvbmZpZyIsImJldHRlckF1dGhPcHRpb25zIiwiYmV0dGVyQXV0aFBsdWdpbiIsImRpc2FibGVkIiwiY3VzdG9tIiwiaGFzQmV0dGVyQXV0aFBsdWdpbiIsImRpc2FibGVEZWZhdWx0UGF5bG9hZEF1dGgiLCJPYmplY3QiLCJ2YWx1ZXMiLCJpbmNvbWluZ09uSW5pdCIsIm9uSW5pdCIsInBheWxvYWQiLCJhdXRoIiwiaWRUeXBlIiwiZGIiLCJkZWZhdWx0SURUeXBlIiwib3B0aW9ucyIsImVuYWJsZURlYnVnTG9ncyIsImRlYnVnIiwicGx1Z2lucyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJ3cml0YWJsZSIsImNvbmZpZ3VyYWJsZSIsImVycm9yIiwiY29uc29sZSIsIndpdGhQYXlsb2FkQXV0aCIsImJldHRlckF1dGhDb25maWciLCJiZXR0ZXJBdXRoIiwiRXJyb3IiLCJvcHRpb25zV2l0aEFkYXB0ZXIiLCJkYXRhYmFzZSIsInBheWxvYWRDbGllbnQiLCJhZGFwdGVyQ29uZmlnIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxVQUFVLFFBQXNDLFVBQVM7QUFDbEUsU0FBU0MsY0FBYyxRQUFRLG1DQUFrQztBQUNqRSxTQUFTQywwQkFBMEIsUUFBUSxtQ0FBa0M7QUFDN0UsU0FBU0MsbUNBQW1DLFFBQVEscURBQW9EO0FBQ3hHLFNBQVNDLDhCQUE4QixRQUFRLDJDQUEwQztBQUN6RixTQUFTQyxnQkFBZ0IsUUFBUSxnQ0FBK0I7QUFDaEUsU0FBU0MsY0FBYyxRQUFRLHlCQUF3QjtBQUN2RCxTQUFTQyx5QkFBeUIsUUFBUSwyQ0FBMEM7QUFDcEYsU0FBU0MsZUFBZSxRQUFRLDBCQUF5QjtBQUV6RCxTQUFTQyxHQUFH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
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCZXR0ZXJBdXRoT3B0aW9ucyB9IGZyb20gJ2JldHRlci1hdXRoL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0UGF5bG9hZCwgU2FuaXRpemVkQ29uZmlnLCB0eXBlIENvbmZpZyB9IGZyb20gJ3BheWxvYWQnXG5pbXBvcnQgeyBwYXlsb2FkQWRhcHRlciB9IGZyb20gJ3BheWxvYWQtYXV0aC9iZXR0ZXItYXV0aC9hZGFwdGVyJ1xuaW1wb3J0IHsgZ2V0RGVmYXVsdEJldHRlckF1dGhTY2hlbWEgfSBmcm9tICcuL2hlbHBlcnMvZ2V0LWJldHRlci1hdXRoLXNjaGVtYSdcbmltcG9ydCB7IHN5bmNSZXNvbHZlZFNjaGVtYVdpdGhDb2xsZWN0aW9uTWFwIH0gZnJvbSAnLi9oZWxwZXJzL3N5bmMtcmVzb2x2ZWQtc2NoZW1hLXdpdGgtY29sbGVjdGlvbi1tYXAnXG5pbXBvcnQgeyBhcHBseURpc2FibGVkRGVmYXVsdEF1dGhDb25maWcgfSBmcm9tICcuL2xpYi9hcHBseS1kaXNhYmxlZC1kZWZhdWx0LWF1dGgtY29uZmlnJ1xuaW1wb3J0IHsgYnVpbGRDb2xsZWN0aW9ucyB9IGZyb20gJy4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL2luZGV4J1xuaW1wb3J0IHsgaW5pdEJldHRlckF1dGggfSBmcm9tICcuL2xpYi9pbml0LWJldHRlci1hdXRoJ1xuaW1wb3J0IHsgc2FuaXRpemVCZXR0ZXJBdXRoT3B0aW9ucyB9IGZyb20gJy4vbGliL3Nhbml0aXplLWJldHRlci1hdXRoLW9wdGlvbnMvaW5kZXgnXG5pbXBvcnQgeyBzZXRMb2dpbk1ldGhvZHMgfSBmcm9tICcuL2xpYi9zZXQtbG9naW4tbWV0aG9kcydcbmltcG9ydCB0eXBlIHsgQmV0dGVyQXV0aFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHsgc2V0IH0gZnJvbSAnLi91dGlscy9zZXQnXG5cbmV4cG9ydCAqIGZyb20gJy4vaGVscGVycy9pbmRleCdcbmV4cG9ydCB7IGdldFBheWxvYWRBdXRoIH0gZnJvbSAnLi9saWIvZ2V0LXBheWxvYWQtYXV0aCdcbmV4cG9ydCB7IHNhbml0aXplQmV0dGVyQXV0aE9wdGlvbnMgfSBmcm9tICcuL2xpYi9zYW5pdGl6ZS1iZXR0ZXItYXV0aC1vcHRpb25zL2luZGV4J1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcydcblxuZnVuY3Rpb24gYnVpbGRCZXR0ZXJBdXRoRGF0YSh7IHBheWxvYWRDb25maWcsIHBsdWdpbk9wdGlvbnMgfTogeyBwYXlsb2FkQ29uZmlnOiBTYW5pdGl6ZWRDb25maWc7IHBsdWdpbk9wdGlvbnM6IEJldHRlckF1dGhQbHVnaW5PcHRpb25zIH0pIHtcbiAgcGx1Z2luT3B0aW9ucyA9IHNldExvZ2luTWV0aG9kcyh7IHBsdWdpbk9wdGlvbnMgfSlcblxuICBjb25zdCBkZWZhdWx0QmV0dGVyQXV0aFNjaGVtYXMgPSBnZXREZWZhdWx0QmV0dGVyQXV0aFNjaGVtYShwbHVnaW5PcHRpb25zKVxuXG4gIGxldCBjb2xsZWN0aW9uTWFwID0gYnVpbGRDb2xsZWN0aW9ucyh7XG4gICAgcmVzb2x2ZWRTY2hlbWFzOiBkZWZhdWx0QmV0dGVyQXV0aFNjaGVtYXMsXG4gICAgaW5jb21pbmdDb2xsZWN0aW9uczogcGF5bG9hZENvbmZpZy5jb2xsZWN0aW9ucyA/PyBbXSxcbiAgICBwbHVnaW5PcHRpb25zXG4gIH0pXG5cbiAgY29uc3QgcmVzb2x2ZWRCZXR0ZXJBdXRoU2NoZW1hcyA9IHN5bmNSZXNvbHZlZFNjaGVtYVdpdGhDb2xsZWN0aW9uTWFwKGRlZmF1bHRCZXR0ZXJBdXRoU2NoZW1hcywgY29sbGVjdGlvbk1hcClcblxuICAvLyBXZSBuZWVkIHRvIGJ1aWxkIHRoZSBjb2xsZWN0aW9ucyBhIHNlY29uZCB0aW1lIHdpdGggdGhlIHJlc29sdmVkIHNjaGVtYXNcbiAgLy8gZHVlIHRvIGhvb2tzLCBlbmRwb2ludHMsIHVzZUFzVGl0bGUsIGV0YyBzaG91bGQgcmVseSBvbiByZXNvbHZlZEJldHRlckF1dGhTY2hlbWFzIHRvIGdldCBzbHVnc1xuICAvLyBpZiB0aGV5IGFyZSByZWZlcmVuY2luZyB0byBvdGhlciBjb2xsZWN0aW9ucyB0aGVuIGl0IHNlbGYuXG4gIGNvbGxlY3Rpb25NYXAgPSBidWlsZENvbGxlY3Rpb25zKHtcbiAgICByZXNvbHZlZFNjaGVtYXM6IHJlc29sdmVkQmV0dGVyQXV0aFNjaGVtYXMsXG4gICAgaW5jb21pbmdDb2xsZWN0aW9uczogcGF5bG9hZENvbmZpZy5jb2xsZWN0aW9ucyA/PyBbXSxcbiAgICBwbHVnaW5PcHRpb25zXG4gIH0pXG5cbiAgY29uc3Qgc2FuaXRpemVkQmV0dGVyQXV0aE9wdGlvbnMgPSBzYW5pdGl6ZUJldHRlckF1dGhPcHRpb25zKHtcbiAgICBjb25maWc6IHBheWxvYWRDb25maWcsXG4gICAgcGx1Z2luT3B0aW9ucyxcbiAgICByZXNvbHZlZFNjaGVtYXM6IHJlc29sdmVkQmV0dGVyQXV0aFNjaGVtYXMsXG4gICAgY29sbGVjdGlvbnM6IE9iamVjdC52YWx1ZXMoY29sbGVjdGlvbk1hcClcbiAgfSlcblxuICBwbHVnaW5PcHRpb25zLmJldHRlckF1dGhPcHRpb25zID0gc2FuaXRpemVkQmV0dGVyQXV0aE9wdGlvbnNcblxuICByZXR1cm4ge1xuICAgIHBsdWdpbk9wdGlvbnMsXG4gICAgY29sbGVjdGlvbk1hcCxcbiAgICByZXNvbHZlZEJldHRlckF1dGhTY2hlbWFzLFxuICAgIHNhbml0aXplZEJldHRlckF1dGhPcHRpb25zXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJldHRlckF1dGhQbHVnaW4ocGx1Z2luT3B0aW9uczogQmV0dGVyQXV0aFBsdWdpbk9wdGlvbnMpIHtcbiAgcmV0dXJuIChjb25maWc6IENvbmZpZyk6IENvbmZpZyA9PiB7XG4gICAgaWYgKHBsdWdpbk9wdGlvbnMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiBjb25maWdcbiAgICB9XG5cbiAgICBjb25maWcuY3VzdG9tID0ge1xuICAgICAgLi4uY29uZmlnLmN1c3RvbSxcbiAgICAgIGhhc0JldHRlckF1dGhQbHVnaW46IHRydWVcbiAgICB9XG5cbiAgICBjb25zdCB7IGNvbGxlY3Rpb25NYXAsIHJlc29sdmVkQmV0dGVyQXV0aFNjaGVtYXMsIHNhbml0aXplZEJldHRlckF1dGhPcHRpb25zIH0gPSBidWlsZEJldHRlckF1dGhEYXRhKHtcbiAgICAgIHBheWxvYWRDb25maWc6IGNvbmZpZyBhcyBTYW5pdGl6ZWRDb25maWcsXG4gICAgICBwbHVnaW5PcHRpb25zXG4gICAgfSlcblxuICAgIHNldChjb25maWcsICdjdXN0b20uYmV0dGVyQXV0aC5jb25maWcnLCBzYW5pdGl6ZWRCZXR0ZXJBdXRoT3B0aW9ucylcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRmluYWxpemUgY29uZmlnIC0tLS0tLS0tLS0tLS0tLS0tXG4gICAgaWYgKHBsdWdpbk9wdGlvbnMuZGlzYWJsZURlZmF1bHRQYXlsb2FkQXV0aCkge1xuICAgICAgYXBwbHlEaXNhYmxlZERlZmF1bHRBdXRoQ29uZmlnKHtcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBwbHVnaW5PcHRpb25zLFxuICAgICAgICBjb2xsZWN0aW9uTWFwLFxuICAgICAgICByZXNvbHZlZEJldHRlckF1dGhTY2hlbWFzXG4gICAgICB9KVxuICAgIH1cblxuICAgIGNvbmZpZy5jb2xsZWN0aW9ucyA9IGNvbmZpZy5jb2xsZWN0aW9ucyA/PyBbXVxuICAgIGNvbmZpZy5jb2xsZWN0aW9ucyA9IE9iamVjdC52YWx1ZXMoY29sbGVjdGlvbk1hcClcblxuICAgIGNvbnN0IGluY29taW5nT25Jbml0ID0gY29uZmlnLm9uSW5pdFxuXG4gICAgY29uZmlnLm9uSW5pdCA9IGFzeW5jIChwYXlsb2FkKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBFeGVjdXRlIGFueSBleGlzdGluZyBvbkluaXQgZnVuY3Rpb25zIGZpcnN0XG4gICAgICAgIGlmIChpbmNvbWluZ09uSW5pdCkge1xuICAgICAgICAgIGF3YWl0IGluY29taW5nT25Jbml0KHBheWxvYWQpXG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbml0aWFsaXplIGFuZCBzZXQgdGhlIGJldHRlckF1dGggaW5zdGFuY2VcbiAgICAgICAgY29uc3QgYXV0aCA9IGluaXRCZXR0ZXJBdXRoPHR5cGVvZiBwbHVnaW5PcHRpb25zPih7XG4gICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICBpZFR5cGU6IHBheWxvYWQuZGIuZGVmYXVsdElEVHlwZSxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAuLi5zYW5pdGl6ZWRCZXR0ZXJBdXRoT3B0aW9ucyxcbiAgICAgICAgICAgIGVuYWJsZURlYnVnTG9nczogcGx1Z2luT3B0aW9ucy5kZWJ1Zz8uZW5hYmxlRGVidWdMb2dzID8/IGZhbHNlLFxuICAgICAgICAgICAgcGx1Z2luczogWy4uLihzYW5pdGl6ZWRCZXR0ZXJBdXRoT3B0aW9ucy5wbHVnaW5zID8/IFtdKV1cbiAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gVHlwZS1zYWZlIGV4dGVuc2lvbiBvZiBwYXlsb2FkIHdpdGggYmV0dGVyQXV0aFxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocGF5bG9hZCwgJ2JldHRlckF1dGgnLCB7XG4gICAgICAgICAgdmFsdWU6IGF1dGgsXG4gICAgICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBpbml0aWFsaXplIEJldHRlckF1dGg6JywgZXJyb3IpXG4gICAgICAgIHRocm93IGVycm9yXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb25maWdcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd2l0aFBheWxvYWRBdXRoKHsgcGF5bG9hZENvbmZpZyB9OiB7IHBheWxvYWRDb25maWc6IFNhbml0aXplZENvbmZpZyB9KTogQmV0dGVyQXV0aE9wdGlvbnMge1xuICBjb25zdCBiZXR0ZXJBdXRoQ29uZmlnID0gcGF5bG9hZENvbmZpZy5jdXN0b20uYmV0dGVyQXV0aC5jb25maWcgYXMgQmV0dGVyQXV0aE9wdGlvbnNcblxuICBpZiAoIWJldHRlckF1dGhDb25maWcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0JldHRlckF1dGggY29uZmlnIG5vdCBmb3VuZC4gTm90IHNldCBwYXlsb2FkQ29uZmlnLmN1c3RvbS5iZXR0ZXJBdXRoLmNvbmZpZycpXG4gIH1cblxuICBjb25zdCBvcHRpb25zV2l0aEFkYXB0ZXI6IEJldHRlckF1dGhPcHRpb25zID0ge1xuICAgIC4uLmJldHRlckF1dGhDb25maWcsXG4gICAgZGF0YWJhc2U6IHBheWxvYWRBZGFwdGVyKHtcbiAgICAgIHBheWxvYWRDbGllbnQ6IGFzeW5jICgpID0+IGF3YWl0IGdldFBheWxvYWQoeyBjb25maWc6IHBheWxvYWRDb25maWcgfSksXG4gICAgICBhZGFwdGVyQ29uZmlnOiB7XG4gICAgICAgIGVuYWJsZURlYnVnTG9nczogZmFsc2UsXG4gICAgICAgIGlkVHlwZTogcGF5bG9hZENvbmZpZy5kYi5kZWZhdWx0SURUeXBlXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBvcHRpb25zV2l0aEFkYXB0ZXJcbn1cbiJdLCJuYW1lcyI6WyJnZXRQYXlsb2FkIiwicGF5bG9hZEFkYXB0ZXIiLCJnZXREZWZhdWx0QmV0dGVyQXV0aFNjaGVtYSIsInN5bmNSZXNvbHZlZFNjaGVtYVdpdGhDb2xsZWN0aW9uTWFwIiwiYXBwbHlEaXNhYmxlZERlZmF1bHRBdXRoQ29uZmlnIiwiYnVpbGRDb2xsZWN0aW9ucyIsImluaXRCZXR0ZXJBdXRoIiwic2FuaXRpemVCZXR0ZXJBdXRoT3B0aW9ucyIsInNldExvZ2luTWV0aG9kcyIsInNldCIsImdldFBheWxvYWRBdXRoIiwiYnVpbGRCZXR0ZXJBdXRoRGF0YSIsInBheWxvYWRDb25maWciLCJwbHVnaW5PcHRpb25zIiwiZGVmYXVsdEJldHRlckF1dGhTY2hlbWFzIiwiY29sbGVjdGlvbk1hcCIsInJlc29sdmVkU2NoZW1hcyIsImluY29taW5nQ29sbGVjdGlvbnMiLCJjb2xsZWN0aW9ucyIsInJlc29sdmVkQmV0dGVyQXV0aFNjaGVtYXMiLCJzYW5pdGl6ZWRCZXR0ZXJBdXRoT3B0aW9ucyIsImNvbmZpZyIsIk9iamVjdCIsInZhbHVlcyIsImJldHRlckF1dGhPcHRpb25zIiwiYmV0dGVyQXV0aFBsdWdpbiIsImRpc2FibGVkIiwiY3VzdG9tIiwiaGFzQmV0dGVyQXV0aFBsdWdpbiIsImRpc2FibGVEZWZhdWx0UGF5bG9hZEF1dGgiLCJpbmNvbWluZ09uSW5pdCIsIm9uSW5pdCIsInBheWxvYWQiLCJhdXRoIiwiaWRUeXBlIiwiZGIiLCJkZWZhdWx0SURUeXBlIiwib3B0aW9ucyIsImVuYWJsZURlYnVnTG9ncyIsImRlYnVnIiwicGx1Z2lucyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJ3cml0YWJsZSIsImNvbmZpZ3VyYWJsZSIsImVycm9yIiwiY29uc29sZSIsIndpdGhQYXlsb2FkQXV0aCIsImJldHRlckF1dGhDb25maWciLCJiZXR0ZXJBdXRoIiwiRXJyb3IiLCJvcHRpb25zV2l0aEFkYXB0ZXIiLCJkYXRhYmFzZSIsInBheWxvYWRDbGllbnQiLCJhZGFwdGVyQ29uZmlnIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxVQUFVLFFBQXNDLFVBQVM7QUFDbEUsU0FBU0MsY0FBYyxRQUFRLG1DQUFrQztBQUNqRSxTQUFTQywwQkFBMEIsUUFBUSxtQ0FBa0M7QUFDN0UsU0FBU0MsbUNBQW1DLFFBQVEscURBQW9EO0FBQ3hHLFNBQVNDLDhCQUE4QixRQUFRLDJDQUEwQztBQUN6RixTQUFTQyxnQkFBZ0IsUUFBUSxnQ0FBK0I7QUFDaEUsU0FBU0MsY0FBYyxRQUFRLHlCQUF3QjtBQUN2RCxTQUFTQyx5QkFBeUIsUUFBUSwyQ0FB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"after-login.d.ts","sourceRoot":"","sources":["../../../../../../../src/better-auth/plugin/lib/build-collections/users/hooks/after-login.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAClD;;;GAGG;AACH,wBAAgB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"after-login.d.ts","sourceRoot":"","sources":["../../../../../../../src/better-auth/plugin/lib/build-collections/users/hooks/after-login.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAClD;;;GAGG;AACH,wBAAgB,iBAAiB,IAsEhB,wBAAwB,CACxC"}
|