payload-auth 1.8.0 → 1.8.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/generate-schema/generate-schema-builder.d.ts.map +1 -1
- package/dist/better-auth/adapter/generate-schema/generate-schema-builder.js +3 -9
- package/dist/better-auth/plugin/lib/build-collections/organizations.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/organizations.js +1 -13
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-schema-builder.d.ts","sourceRoot":"","sources":["../../../../src/better-auth/adapter/generate-schema/generate-schema-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-schema-builder.d.ts","sourceRoot":"","sources":["../../../../src/better-auth/adapter/generate-schema/generate-schema-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIrD,eAAO,MAAM,0BAA0B,GAAU,qBAG9C;IACD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,iBAAiB,CAAC;CAC9B,oBAUA,CAAC"}
|
|
@@ -16,20 +16,14 @@
|
|
|
16
16
|
* Users can copy these generated collection configs to their PayloadCMS project
|
|
17
17
|
* and add authentication strategies as needed.
|
|
18
18
|
*/ import { getAuthTables } from "better-auth/db";
|
|
19
|
-
import { format } from "prettier";
|
|
20
19
|
export const generateSchemaBuilderStage = async ({ BAOptions, code })=>{
|
|
21
|
-
const
|
|
22
|
-
filepath: "schema.ts"
|
|
23
|
-
});
|
|
24
|
-
const { post, collections } = parseExistingSchema(formattedCode);
|
|
20
|
+
const { post, collections } = parseExistingSchema(code);
|
|
25
21
|
const payloadSchemaStr = generatePayloadCollectionConfigs({
|
|
26
22
|
options: BAOptions,
|
|
27
23
|
collections,
|
|
28
24
|
exports: post
|
|
29
25
|
});
|
|
30
|
-
return
|
|
31
|
-
filepath: "schema.ts"
|
|
32
|
-
});
|
|
26
|
+
return payloadSchemaStr;
|
|
33
27
|
};
|
|
34
28
|
function parseExistingSchema(code) {
|
|
35
29
|
const collections = [];
|
|
@@ -320,4 +314,4 @@ function getNameField(fields) {
|
|
|
320
314
|
return firstNonIdField || "id";
|
|
321
315
|
}
|
|
322
316
|
|
|
323
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9hZGFwdGVyL2dlbmVyYXRlLXNjaGVtYS9nZW5lcmF0ZS1zY2hlbWEtYnVpbGRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgbW9kdWxlIGdlbmVyYXRlcyBQYXlsb2FkQ01TIGNvbGxlY3Rpb24gY29uZmlndXJhdGlvbnMgYmFzZWQgb24gdGhlIEJldHRlciBBdXRoIHNjaGVtYS5cbiAqXG4gKiBUaGUgZ2VuZXJhdGVkIGNvbGxlY3Rpb24gY29uZmlncyBpbmNsdWRlOlxuICogLSBVc2VyczogRm9yIHVzZXIgbWFuYWdlbWVudCB3aXRoIHByb3BlciBhdXRoIGNvbmZpZ3VyYXRpb25cbiAqIC0gU2Vzc2lvbnM6IEZvciBtYWludGFpbmluZyB1c2VyIHNlc3Npb25zXG4gKiAtIEFjY291bnRzOiBGb3IgT0F1dGggcHJvdmlkZXIgYWNjb3VudHNcbiAqIC0gVmVyaWZpY2F0aW9uVG9rZW5zOiBGb3IgZW1haWwgdmVyaWZpY2F0aW9uIG9yIHNvY2lhbCBzaWduIGluXG4gKlxuICogRWFjaCBjb2xsZWN0aW9uIGlzIHByb3Blcmx5IGZvcm1hdHRlZCB3aXRoOlxuICogLSBBcHByb3ByaWF0ZSBmaWVsZCB0eXBlcyAodGV4dCwgcmVsYXRpb25zaGlwLCBjaGVja2JveCwgZXRjLilcbiAqIC0gQWRtaW4gY29uZmlndXJhdGlvbiBmb3IgYmV0dGVyIFVJIGV4cGVyaWVuY2VcbiAqIC0gQXV0aCBjb25maWd1cmF0aW9uIGZvciB0aGUgVXNlcnMgY29sbGVjdGlvblxuICogLSBQcm9wZXIgZmllbGQgcmVsYXRpb25zaGlwcyBiZXR3ZWVuIGNvbGxlY3Rpb25zXG4gKlxuICogVXNlcnMgY2FuIGNvcHkgdGhlc2UgZ2VuZXJhdGVkIGNvbGxlY3Rpb24gY29uZmlncyB0byB0aGVpciBQYXlsb2FkQ01TIHByb2plY3RcbiAqIGFuZCBhZGQgYXV0aGVudGljYXRpb24gc3RyYXRlZ2llcyBhcyBuZWVkZWQuXG4gKi9cbmltcG9ydCB0eXBlIHsgQmV0dGVyQXV0aE9wdGlvbnMgfSBmcm9tIFwiYmV0dGVyLWF1dGhcIjtcbmltcG9ydCB7IGdldEF1dGhUYWJsZXMgfSBmcm9tIFwiYmV0dGVyLWF1dGgvZGJcIjtcbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbkNvbmZpZywgRmllbGQgfSBmcm9tIFwicGF5bG9hZFwiO1xuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSBcInByZXR0aWVyXCI7XG5cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZVNjaGVtYUJ1aWxkZXJTdGFnZSA9IGFzeW5jICh7XG4gIEJBT3B0aW9ucyxcbiAgY29kZVxufToge1xuICBjb2RlOiBzdHJpbmc7XG4gIEJBT3B0aW9uczogQmV0dGVyQXV0aE9wdGlvbnM7XG59KSA9PiB7XG4gIGNvbnN0IGZvcm1hdHRlZENvZGUgPSBhd2FpdCBmb3JtYXQoY29kZSwgeyBmaWxlcGF0aDogXCJzY2hlbWEudHNcIiB9KTtcblxuICBjb25zdCB7IHBvc3QsIGNvbGxlY3Rpb25zIH0gPSBwYXJzZUV4aXN0aW5nU2NoZW1hKGZvcm1hdHRlZENvZGUpO1xuXG4gIGNvbnN0IHBheWxvYWRTY2hlbWFTdHIgPSBnZW5lcmF0ZVBheWxvYWRDb2xsZWN0aW9uQ29uZmlncyh7XG4gICAgb3B0aW9uczogQkFPcHRpb25zLFxuICAgIGNvbGxlY3Rpb25zLFxuICAgIGV4cG9ydHM6IHBvc3RcbiAgfSk7XG5cbiAgcmV0dXJuIGF3YWl0IGZvcm1hdChgJHtwYXlsb2FkU2NoZW1hU3RyfWAsIHtcbiAgICBmaWxlcGF0aDogXCJzY2hlbWEudHNcIlxuICB9KTtcbn07XG5cbmZ1bmN0aW9uIHBhcnNlRXhpc3RpbmdTY2hlbWEoY29kZTogc3RyaW5nKToge1xuICBjb2xsZWN0aW9uczogQ29sbGVjdGlvbkNvbmZpZ1tdO1xuICBwb3N0OiBzdHJpbmc7XG59IHtcbiAgY29uc3QgY29sbGVjdGlvbnM6IENvbGxlY3Rpb25Db25maWdbXSA9IFtdO1xuICBsZXQgcG9zdCA9IFwiXCI7XG5cbiAgLy8gRXh0cmFjdCBjb2xsZWN0aW9uIGRlZmluaXRpb25zXG4gIGNvbnN0IGNvbGxlY3Rpb25SZWdleCA9XG4gICAgL2NvbnN0XFxzKyhbQS1aXVthLXpBLVowLTldKilcXHMqOlxccypDb2xsZWN0aW9uQ29uZmlnXFxzKj1cXHMqe1tcXHNcXFNdKj99XFxzKmFzXFxzKmNvbnN0Oy9nO1xuICBsZXQgbWF0Y2g7XG4gIHdoaWxlICgobWF0Y2ggPSBjb2xsZWN0aW9uUmVnZXguZXhlYyhjb2RlKSkgIT09IG51bGwpIHtcbiAgICBjb25zdCBjb2xsZWN0aW9uTmFtZSA9IG1hdGNoWzFdO1xuICAgIGNvbnN0IGNvbGxlY3Rpb25EZWYgPSBtYXRjaFswXTtcblxuICAgIC8vIEV4dHJhY3Qgc2x1Z1xuICAgIGNvbnN0IHNsdWdNYXRjaCA9IGNvbGxlY3Rpb25EZWYubWF0Y2goL3NsdWc6XFxzKlwiKFteXCJdKylcIi8pO1xuICAgIGNvbnN0IHNsdWcgPSBzbHVnTWF0Y2ggPyBzbHVnTWF0Y2hbMV0gOiBjb2xsZWN0aW9uTmFtZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgLy8gRXh0cmFjdCB1c2VBc1RpdGxlXG4gICAgY29uc3QgdGl0bGVNYXRjaCA9IGNvbGxlY3Rpb25EZWYubWF0Y2goL3VzZUFzVGl0bGU6XFxzKlwiKFteXCJdKylcIi8pO1xuICAgIGNvbnN0IHVzZUFzVGl0bGUgPSB0aXRsZU1hdGNoID8gdGl0bGVNYXRjaFsxXSA6IFwiaWRcIjtcblxuICAgIC8vIEV4dHJhY3QgZmllbGRzXG4gICAgY29uc3QgZmllbGRzUmVnZXggPSAvZmllbGRzOlxccypcXFsoW1xcc1xcU10qPylcXF0sLztcbiAgICBjb25zdCBmaWVsZHNNYXRjaCA9IGNvbGxlY3Rpb25EZWYubWF0Y2goZmllbGRzUmVnZXgpO1xuICAgIGNvbnN0IGZpZWxkczogRmllbGRbXSA9IFtdO1xuXG4gICAgaWYgKGZpZWxkc01hdGNoKSB7XG4gICAgICBjb25zdCBmaWVsZEJsb2NrUmVnZXggPSAve1tcXHNcXFNdKj99LC9nO1xuICAgICAgY29uc3QgZmllbGRCbG9ja3MgPSBmaWVsZHNNYXRjaFsxXS5tYXRjaChmaWVsZEJsb2NrUmVnZXgpIHx8IFtdO1xuXG4gICAgICBmb3IgKGNvbnN0IGZpZWxkQmxvY2sgb2YgZmllbGRCbG9ja3MpIHtcbiAgICAgICAgY29uc3QgbmFtZU1hdGNoID0gZmllbGRCbG9jay5tYXRjaCgvbmFtZTpcXHMqXCIoW15cIl0rKVwiLyk7XG4gICAgICAgIGNvbnN0IHR5cGVNYXRjaCA9IGZpZWxkQmxvY2subWF0Y2goL3R5cGU6XFxzKlwiKFteXCJdKylcIi8pO1xuICAgICAgICBjb25zdCByZXF1aXJlZE1hdGNoID0gZmllbGRCbG9jay5tYXRjaCgvcmVxdWlyZWQ6XFxzKih0cnVlfGZhbHNlKS8pO1xuICAgICAgICBjb25zdCB1bmlxdWVNYXRjaCA9IGZpZWxkQmxvY2subWF0Y2goL3VuaXF1ZTpcXHMqKHRydWV8ZmFsc2UpLyk7XG4gICAgICAgIGNvbnN0IHJlbGF0aW9uVG9NYXRjaCA9IGZpZWxkQmxvY2subWF0Y2goL3JlbGF0aW9uVG86XFxzKlwiKFteXCJdKylcIi8pO1xuXG4gICAgICAgIGlmIChuYW1lTWF0Y2ggJiYgdHlwZU1hdGNoKSB7XG4gICAgICAgICAgY29uc3QgZmllbGQgPSB7XG4gICAgICAgICAgICBuYW1lOiBuYW1lTWF0Y2hbMV0sXG4gICAgICAgICAgICB0eXBlOiB0eXBlTWF0Y2hbMV0gYXMgRmllbGRbXCJ0eXBlXCJdXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGlmIChyZXF1aXJlZE1hdGNoKSB7XG4gICAgICAgICAgICAoZmllbGQgYXMgYW55KS5yZXF1aXJlZCA9IHJlcXVpcmVkTWF0Y2hbMV0gPT09IFwidHJ1ZVwiO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh1bmlxdWVNYXRjaCkge1xuICAgICAgICAgICAgKGZpZWxkIGFzIGFueSkudW5pcXVlID0gdW5pcXVlTWF0Y2hbMV0gPT09IFwidHJ1ZVwiO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChyZWxhdGlvblRvTWF0Y2gpIHtcbiAgICAgICAgICAgIChmaWVsZCBhcyBhbnkpLnJlbGF0aW9uVG8gPSByZWxhdGlvblRvTWF0Y2hbMV07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZmllbGRzLnB1c2goZmllbGQgYXMgRmllbGQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgZm9yIHRpbWVzdGFtcHNcbiAgICBjb25zdCB0aW1lc3RhbXBzTWF0Y2ggPSBjb2xsZWN0aW9uRGVmLm1hdGNoKC90aW1lc3RhbXBzOlxccyoodHJ1ZXxmYWxzZSkvKTtcbiAgICBjb25zdCBoYXNUaW1lc3RhbXBzID0gdGltZXN0YW1wc01hdGNoXG4gICAgICA/IHRpbWVzdGFtcHNNYXRjaFsxXSA9PT0gXCJ0cnVlXCJcbiAgICAgIDogZmFsc2U7XG5cbiAgICBjb2xsZWN0aW9ucy5wdXNoKHtcbiAgICAgIHNsdWcsXG4gICAgICBhZG1pbjoge1xuICAgICAgICB1c2VBc1RpdGxlXG4gICAgICB9LFxuICAgICAgZmllbGRzLFxuICAgICAgLi4uKGhhc1RpbWVzdGFtcHMgJiYgeyB0aW1lc3RhbXBzOiB0cnVlIH0pXG4gICAgfSk7XG4gIH1cblxuICAvLyBFeHRyYWN0IGV4cG9ydCBzdGF0ZW1lbnRcbiAgY29uc3QgZXhwb3J0UmVnZXggPSAvZXhwb3J0XFxzKntbXFxzXFxTXSo/fTsvO1xuICBjb25zdCBleHBvcnRNYXRjaCA9IGNvZGUubWF0Y2goZXhwb3J0UmVnZXgpO1xuICBpZiAoZXhwb3J0TWF0Y2gpIHtcbiAgICBwb3N0ID0gZXhwb3J0TWF0Y2hbMF07XG4gIH1cblxuICByZXR1cm4geyBjb2xsZWN0aW9ucywgcG9zdCB9O1xufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZVBheWxvYWRDb2xsZWN0aW9uQ29uZmlncyh7XG4gIG9wdGlvbnMsXG4gIGNvbGxlY3Rpb25zLFxuICBleHBvcnRzXG59OiB7XG4gIG9wdGlvbnM6IEJldHRlckF1dGhPcHRpb25zO1xuICBjb2xsZWN0aW9uczogQ29sbGVjdGlvbkNvbmZpZ1tdO1xuICBleHBvcnRzOiBzdHJpbmc7XG59KTogc3RyaW5nIHtcbiAgbGV0IHJlc3VsdCA9IFwiXCI7XG5cbiAgLy8gYWRkIHByZSBtZXNzYWdlIGFuZCBpbXBvcnQgc3RhdGVtZW50c1xuICByZXN1bHQgKz0gYC8qKlxuICogRVhBTVBMRSBDT0xMRUNUSU9OUyBGT1IgQkVUVEVSIEFVVEhcbiAqIFxuICogQmVsb3cgaXMgd2hhdCB5b3VyIFBheWxvYWQgY29sbGVjdGlvbnMgc2hvdWxkIGxvb2sgbGlrZS5cbiAqIFBsZWFzZSBjb3B5IHRoZXNlIHRvIHlvdXIgYWN0dWFsIGNvbGxlY3Rpb24gY29uZmlncy5cbiAqIE1ha2Ugc3VyZSB0byBhZGQgYW4gYXV0aFN0cmF0ZWd5IGZvciB0aGUgdXNlcnMgY29sbGVjdGlvbiBpZiB0aGVyZSBpcyBvbmUuXG4gKiBcbiAqIEV4YW1wbGUgYXV0aCBzdHJhdGVneTpcbiAqIGF1dGg6IHtcbiAqICAgZGlzYWJsZUxvY2FsU3RyYXRlZ3k6IHRydWUsXG4gKiAgIHN0cmF0ZWdpZXM6IFtcbiAqICAgICBiZXR0ZXJBdXRoU3RyYXRlZ3koKSxcbiAqICAgICAvLyBBZGQgb3RoZXIgc3RyYXRlZ2llcyBhcyBuZWVkZWRcbiAqICAgXSxcbiAqIH0sXG4gKi9cbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJ3BheWxvYWQnO1xuXG5gO1xuXG4gIC8vIGFkZCB0aGUgY29sbGVjdGlvbnNcbiAgbGV0IGNvbGxlY3Rpb25zU3RyID0gXCJcIjtcbiAgY29uc3QgdGFibGVzID0gZ2V0QXV0aFRhYmxlcyhvcHRpb25zKTtcblxuICAvLyBQcm9jZXNzIGV4aXN0aW5nIGNvbGxlY3Rpb25zIGZpcnN0XG4gIGNvbnN0IGV4aXN0aW5nQ29sbGVjdGlvbnNCeVNsdWcgPSBjb2xsZWN0aW9ucy5yZWR1Y2UoXG4gICAgKGFjYywgY29sbGVjdGlvbikgPT4ge1xuICAgICAgaWYgKGNvbGxlY3Rpb24uc2x1Zykge1xuICAgICAgICBhY2NbY29sbGVjdGlvbi5zbHVnXSA9IGNvbGxlY3Rpb247XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sXG4gICAge30gYXMgUmVjb3JkPHN0cmluZywgQ29sbGVjdGlvbkNvbmZpZz5cbiAgKTtcblxuICBmb3IgKGNvbnN0IFt0YWJsZUtleSwgdGFibGVdIG9mIE9iamVjdC5lbnRyaWVzKHRhYmxlcykpIHtcbiAgICBjb25zdCBtb2RlbE5hbWUgPSB0YWJsZS5tb2RlbE5hbWU7XG4gICAgY29uc3QgY2FwaXRhbGl6ZWQgPSBtb2RlbE5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBtb2RlbE5hbWUuc2xpY2UoMSk7XG5cbiAgICAvLyBDaGVjayBpZiB0aGlzIGNvbGxlY3Rpb24gYWxyZWFkeSBleGlzdHMgaW4gdGhlIHByb3ZpZGVkIGNvbGxlY3Rpb25zXG4gICAgY29uc3QgZXhpc3RpbmdDb2xsZWN0aW9uID0gZXhpc3RpbmdDb2xsZWN0aW9uc0J5U2x1Z1ttb2RlbE5hbWVdO1xuXG4gICAgaWYgKGV4aXN0aW5nQ29sbGVjdGlvbikge1xuICAgICAgLy8gQ29udmVydCBleGlzdGluZyBjb2xsZWN0aW9uIHRvIHN0cmluZyByZXByZXNlbnRhdGlvblxuICAgICAgY29sbGVjdGlvbnNTdHIgKz0gYGNvbnN0ICR7Y2FwaXRhbGl6ZWR9OiBDb2xsZWN0aW9uQ29uZmlnID0gJHtKU09OLnN0cmluZ2lmeShleGlzdGluZ0NvbGxlY3Rpb24sIG51bGwsIDIpLnJlcGxhY2UoL1wiKFteXCJdKylcIjovZywgXCIkMTpcIil9IGFzIGNvbnN0O1xcblxcbmA7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgbmV3IGNvbGxlY3Rpb24gaWYgaXQgZG9lc24ndCBleGlzdFxuICAgIGNvbGxlY3Rpb25zU3RyICs9IGBjb25zdCAke2NhcGl0YWxpemVkfTogQ29sbGVjdGlvbkNvbmZpZyA9IHtcbiAgc2x1ZzogXCIke21vZGVsTmFtZX1cIixcbmA7XG5cbiAgICAvLyBBZGQgYWRtaW4gc2VjdGlvbiBmb3IgYmV0dGVyIFVYXG4gICAgY29sbGVjdGlvbnNTdHIgKz0gYCAgYWRtaW46IHtcbiAgICB1c2VBc1RpdGxlOiBcIiR7Z2V0TmFtZUZpZWxkKHRhYmxlLmZpZWxkcyl9XCIsXG4gIH0sXG5gO1xuXG4gICAgLy8gQWRkIGF1dGggc2VjdGlvbiBPTkxZIGZvciB1c2VycyBjb2xsZWN0aW9uXG4gICAgaWYgKG1vZGVsTmFtZSA9PT0gXCJ1c2Vyc1wiKSB7XG4gICAgICBjb2xsZWN0aW9uc1N0ciArPSBgICBhdXRoOiB7XG4gICAgZGlzYWJsZUxvY2FsU3RyYXRlZ3k6IHRydWUsXG4gICAgc3RyYXRlZ2llczogW10sXG4gICAgLy8gQWRkIHlvdXIgYXV0aCBzdHJhdGVnaWVzIGhlcmUgaWYgbmVlZGVkXG4gIH0sXG5gO1xuICAgIH1cblxuICAgIC8vIEFkZCBmaWVsZHNcbiAgICBjb2xsZWN0aW9uc1N0ciArPSBgICBmaWVsZHM6IFtcbmA7XG5cbiAgICBmb3IgKGNvbnN0IFtmaWVsZEtleSwgZmllbGRdIG9mIE9iamVjdC5lbnRyaWVzKHRhYmxlLmZpZWxkcykpIHtcbiAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGZpZWxkLmZpZWxkTmFtZSB8fCBmaWVsZEtleTtcbiAgICAgIC8vIFNraXAgaWQgZmllbGQgYXMgUGF5bG9hZCBoYW5kbGVzIGl0IGF1dG9tYXRpY2FsbHlcbiAgICAgIGlmIChmaWVsZE5hbWUgPT09IFwiaWRcIikgY29udGludWU7XG5cbiAgICAgIGlmIChmaWVsZE5hbWUgPT09IFwiY3JlYXRlZEF0XCIgfHwgZmllbGROYW1lID09PSBcInVwZGF0ZWRBdFwiKSBjb250aW51ZTtcblxuICAgICAgLy8gSGFuZGxlIGZpZWxkIHR5cGUgbWFwcGluZyB3aXRoIHNhZmVyIHR5cGUgYXBwcm9hY2hcbiAgICAgIGxldCBmaWVsZFR5cGUgPSBtYXBGaWVsZFR5cGUoZmllbGQudHlwZSBhcyBzdHJpbmcsIGZpZWxkTmFtZSk7XG4gICAgICBjb25zdCBpc1JlbGF0aW9uc2hpcCA9XG4gICAgICAgIGZpZWxkTmFtZS5lbmRzV2l0aChcIl9pZFwiKSB8fCAhIWZpZWxkLnJlZmVyZW5jZXM/Lm1vZGVsO1xuXG4gICAgICBjb2xsZWN0aW9uc1N0ciArPSBgICAgIHtcbiAgICAgIG5hbWU6IFwiJHtpc1JlbGF0aW9uc2hpcCA/IGZpZWxkTmFtZS5yZXBsYWNlKFwiX2lkXCIsIFwiXCIpIDogZmllbGROYW1lfVwiLFxuYDtcblxuICAgICAgaWYgKGlzUmVsYXRpb25zaGlwKSB7XG4gICAgICAgIGNvbGxlY3Rpb25zU3RyICs9IGAgICAgICB0eXBlOiBcInJlbGF0aW9uc2hpcFwiLFxuICAgICAgcmVsYXRpb25UbzogXCIke2ZpZWxkLnJlZmVyZW5jZXM/Lm1vZGVsIHx8IGZpZWxkTmFtZS5yZXBsYWNlKFwiX2lkXCIsIFwiXCIpfVwiLFxuYDtcbiAgICAgIH0gZWxzZSBpZiAoZmllbGRUeXBlID09PSBcInVwbG9hZFwiKSB7XG4gICAgICAgIGNvbGxlY3Rpb25zU3RyICs9IGAgICAgICB0eXBlOiBcInVwbG9hZFwiLFxuICAgICAgcmVsYXRpb25UbzogXCJtZWRpYVwiLFxuYDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbGxlY3Rpb25zU3RyICs9IGAgICAgICB0eXBlOiBcIiR7ZmllbGRUeXBlfVwiLFxuYDtcbiAgICAgIH1cblxuICAgICAgaWYgKGZpZWxkLnJlcXVpcmVkKSB7XG4gICAgICAgIGNvbGxlY3Rpb25zU3RyICs9IGAgICAgICByZXF1aXJlZDogdHJ1ZSxcbmA7XG4gICAgICB9XG5cbiAgICAgIGlmIChmaWVsZC51bmlxdWUpIHtcbiAgICAgICAgY29sbGVjdGlvbnNTdHIgKz0gYCAgICAgIHVuaXF1ZTogdHJ1ZSxcbmA7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGlmIGZpZWxkIGhhcyBvcHRpb25zIGFuZCBmaWVsZFR5cGUgaXMgc2VsZWN0XG4gICAgICBpZiAoXG4gICAgICAgIGZpZWxkVHlwZSA9PT0gXCJzZWxlY3RcIiAmJlxuICAgICAgICBcIm9wdGlvbnNcIiBpbiBmaWVsZCAmJlxuICAgICAgICBBcnJheS5pc0FycmF5KGZpZWxkLm9wdGlvbnMpXG4gICAgICApIHtcbiAgICAgICAgY29sbGVjdGlvbnNTdHIgKz0gYCAgICAgIG9wdGlvbnM6ICR7SlNPTi5zdHJpbmdpZnkoZmllbGQub3B0aW9ucyl9LFxuYDtcbiAgICAgIH1cblxuICAgICAgaWYgKGZpZWxkLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZmllbGQuZGVmYXVsdFZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgY29sbGVjdGlvbnNTdHIgKz0gYCAgICAgIGRlZmF1bHRWYWx1ZTogXCIke2ZpZWxkLmRlZmF1bHRWYWx1ZX1cIixcbmA7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGZpZWxkLmRlZmF1bHRWYWx1ZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgICBjb2xsZWN0aW9uc1N0ciArPSBgICAgICAgZGVmYXVsdFZhbHVlOiAke2ZpZWxkLmRlZmF1bHRWYWx1ZSA/IFwidHJ1ZVwiIDogXCJmYWxzZVwifSxcbmA7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgZmllbGQuZGVmYXVsdFZhbHVlICYmXG4gICAgICAgICAgdHlwZW9mIGZpZWxkLmRlZmF1bHRWYWx1ZSA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgZmllbGQuZGVmYXVsdFZhbHVlLnRvU3RyaW5nKCkuaW5jbHVkZXMoXCIoKSA9PiAhMVwiKVxuICAgICAgICApIHtcbiAgICAgICAgICAvLyBIYW5kbGUgZnVuY3Rpb24tbGlrZSBkZWZhdWx0IHZhbHVlcyB3aXRoIGFyZSBmYWxzZVxuICAgICAgICAgIGNvbGxlY3Rpb25zU3RyICs9IGAgICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuYDtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBmaWVsZC5kZWZhdWx0VmFsdWUgJiZcbiAgICAgICAgICB0eXBlb2YgZmllbGQuZGVmYXVsdFZhbHVlID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICBmaWVsZC5kZWZhdWx0VmFsdWUudG9TdHJpbmcoKS5pbmNsdWRlcyhcIigpID0+ICEwXCIpXG4gICAgICAgICkge1xuICAgICAgICAgIC8vIEhhbmRsZSBmdW5jdGlvbi1saWtlIGRlZmF1bHQgdmFsdWVzIHdpdGggYXJlIHRydWVcbiAgICAgICAgICBjb2xsZWN0aW9uc1N0ciArPSBgICAgICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuYDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb2xsZWN0aW9uc1N0ciArPSBgICAgICAgZGVmYXVsdFZhbHVlOiAke2ZpZWxkLmRlZmF1bHRWYWx1ZX0sXG5gO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEFkZCBhZG1pbiBzZWN0aW9uIGZvciBmaWVsZHMgaWYgbmVlZGVkIC0gc2FmZWx5IGNoZWNrIGZvciBhZG1pbiBwcm9wZXJ0eVxuICAgICAgaWYgKFxuICAgICAgICBcImFkbWluXCIgaW4gZmllbGQgJiZcbiAgICAgICAgZmllbGQuYWRtaW4gJiZcbiAgICAgICAgdHlwZW9mIGZpZWxkLmFkbWluID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgIFwicmVhZE9ubHlcIiBpbiBmaWVsZC5hZG1pbiAmJlxuICAgICAgICBmaWVsZC5hZG1pbi5yZWFkT25seVxuICAgICAgKSB7XG4gICAgICAgIGNvbGxlY3Rpb25zU3RyICs9IGAgICAgICBhZG1pbjoge1xuICAgICAgICByZWFkT25seTogdHJ1ZSxcbiAgICAgIH0sXG5gO1xuICAgICAgfVxuXG4gICAgICBjb2xsZWN0aW9uc1N0ciArPSBgICAgIH0sXG5gO1xuICAgIH1cblxuICAgIGNvbGxlY3Rpb25zU3RyICs9IGAgIF0sXG4gIHRpbWVzdGFtcHM6IHRydWUsXG59IGFzIGNvbnN0O1xuXG5gO1xuICB9XG5cbiAgLy8gQWRkIGFueSBjb2xsZWN0aW9ucyBmcm9tIHRoZSBpbnB1dCB0aGF0IGFyZW4ndCBpbiB0aGUgdGFibGVzXG4gIGZvciAoY29uc3QgY29sbGVjdGlvbiBvZiBjb2xsZWN0aW9ucykge1xuICAgIGlmICghY29sbGVjdGlvbi5zbHVnIHx8IHRhYmxlc1tjb2xsZWN0aW9uLnNsdWddKSB7XG4gICAgICBjb250aW51ZTsgLy8gU2tpcCBpZiBubyBzbHVnIG9yIGFscmVhZHkgcHJvY2Vzc2VkXG4gICAgfVxuXG4gICAgY29uc3QgY2FwaXRhbGl6ZWQgPVxuICAgICAgY29sbGVjdGlvbi5zbHVnLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgY29sbGVjdGlvbi5zbHVnLnNsaWNlKDEpO1xuICAgIGNvbGxlY3Rpb25zU3RyICs9IGBjb25zdCAke2NhcGl0YWxpemVkfTogQ29sbGVjdGlvbkNvbmZpZyA9ICR7SlNPTi5zdHJpbmdpZnkoY29sbGVjdGlvbiwgbnVsbCwgMikucmVwbGFjZSgvXCIoW15cIl0rKVwiOi9nLCBcIiQxOlwiKX0gYXMgY29uc3Q7XFxuXFxuYDtcbiAgfVxuXG4gIHJlc3VsdCArPSBjb2xsZWN0aW9uc1N0cjtcblxuICAvLyBBZGQgZXhwb3J0IHN0YXRlbWVudHMgZm9yIGFsbCBjb2xsZWN0aW9uc1xuICAvLyBDaGVjayBpZiB3ZSBoYXZlIGFuIGV4aXN0aW5nIGV4cG9ydCBzdGF0ZW1lbnQgdG8gYWRhcHRcbiAgaWYgKGV4cG9ydHMgJiYgZXhwb3J0cy50cmltKCkpIHtcbiAgICAvLyBQYXJzZSB0aGUgZXhpc3RpbmcgZXhwb3J0cyB0byBnZXQgY29sbGVjdGlvbiBuYW1lc1xuICAgIGNvbnN0IGV4aXN0aW5nRXhwb3J0TWF0Y2ggPSBleHBvcnRzLm1hdGNoKC9leHBvcnRcXHMqe1xccyooLio/KVxccyp9Lyk7XG4gICAgY29uc3QgZXhpc3RpbmdDb2xsZWN0aW9ucyA9IGV4aXN0aW5nRXhwb3J0TWF0Y2hcbiAgICAgID8gZXhpc3RpbmdFeHBvcnRNYXRjaFsxXS5zcGxpdChcIixcIikubWFwKChuYW1lKSA9PiBuYW1lLnRyaW0oKSlcbiAgICAgIDogW107XG5cbiAgICAvLyBHZXQgdGhlIGNvbGxlY3Rpb24gbmFtZXMgZnJvbSBvdXIgdGFibGVzXG4gICAgY29uc3QgdGFibGVDb2xsZWN0aW9ucyA9IE9iamVjdC5rZXlzKHRhYmxlcykubWFwKChtb2RlbCkgPT4ge1xuICAgICAgcmV0dXJuIG1vZGVsLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgbW9kZWwuc2xpY2UoMSk7XG4gICAgfSk7XG5cbiAgICAvLyBDb21iaW5lIGV4aXN0aW5nIGFuZCBuZXcgY29sbGVjdGlvbnMsIHJlbW92aW5nIGR1cGxpY2F0ZXNcbiAgICBjb25zdCBhbGxDb2xsZWN0aW9ucyA9IFtcbiAgICAgIC4uLm5ldyBTZXQoWy4uLmV4aXN0aW5nQ29sbGVjdGlvbnMsIC4uLnRhYmxlQ29sbGVjdGlvbnNdKVxuICAgIF07XG5cbiAgICAvLyBDcmVhdGUgdGhlIG5ldyBleHBvcnQgc3RhdGVtZW50XG4gICAgcmVzdWx0ICs9IGBleHBvcnQgeyAke2FsbENvbGxlY3Rpb25zLmpvaW4oXCIsIFwiKX0gfTtcbmA7XG4gIH0gZWxzZSBpZiAoT2JqZWN0LmtleXModGFibGVzKS5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgY29sbGVjdGlvbk5hbWVzID0gT2JqZWN0LmtleXModGFibGVzKS5tYXAoKG1vZGVsKSA9PiB7XG4gICAgICAvLyBDb252ZXJ0IG1vZGVsIG5hbWUgdG8gUGFzY2FsQ2FzZSBmb3IgZXhwb3J0XG4gICAgICBjb25zdCBwYXNjYWxDYXNlID0gbW9kZWwuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBtb2RlbC5zbGljZSgxKTtcbiAgICAgIHJldHVybiBwYXNjYWxDYXNlO1xuICAgIH0pO1xuXG4gICAgcmVzdWx0ICs9IGBleHBvcnQgeyAke2NvbGxlY3Rpb25OYW1lcy5qb2luKFwiLCBcIil9IH07XG5gO1xuICB9IGVsc2Uge1xuICAgIHJlc3VsdCArPSBgZXhwb3J0IHt9O1xuYDtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8vIEhlbHBlciBmdW5jdGlvbnNcbmZ1bmN0aW9uIG1hcEZpZWxkVHlwZSh0eXBlOiBzdHJpbmcsIGZpZWxkTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGZpZWxkTmFtZS5lbmRzV2l0aChcIl9pZFwiKSkgcmV0dXJuIFwicmVsYXRpb25zaGlwXCI7XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgIHJldHVybiBcImNoZWNrYm94XCI7XG4gICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgcmV0dXJuIFwibnVtYmVyXCI7XG4gICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgaWYgKGZpZWxkTmFtZSA9PT0gXCJlbWFpbFwiKSByZXR1cm4gXCJlbWFpbFwiO1xuICAgICAgaWYgKGZpZWxkTmFtZS5pbmNsdWRlcyhcInBhc3N3b3JkXCIpKSByZXR1cm4gXCJ0ZXh0XCI7XG4gICAgICBpZiAoZmllbGROYW1lLmluY2x1ZGVzKFwiaW1hZ2VcIikgfHwgZmllbGROYW1lLmluY2x1ZGVzKFwiYXZhdGFyXCIpKVxuICAgICAgICByZXR1cm4gXCJ1cGxvYWRcIjtcbiAgICAgIHJldHVybiBcInRleHRcIjtcbiAgICBjYXNlIFwiZGF0ZVwiOlxuICAgICAgcmV0dXJuIFwiZGF0ZVwiO1xuICAgIGNhc2UgXCJhcnJheVwiOlxuICAgICAgcmV0dXJuIFwiYXJyYXlcIjtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIFwidGV4dFwiO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldE5hbWVGaWVsZChmaWVsZHM6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBzdHJpbmcge1xuICAvLyBUcnkgdG8gZmluZCBhbiBhcHByb3ByaWF0ZSBmaWVsZCB0byB1c2UgYXMgdGl0bGVcbiAgY29uc3QgbmFtZU9wdGlvbnMgPSBbXCJuYW1lXCIsIFwidGl0bGVcIiwgXCJsYWJlbFwiLCBcImVtYWlsXCIsIFwidXNlcm5hbWVcIl07XG5cbiAgZm9yIChjb25zdCBvcHRpb24gb2YgbmFtZU9wdGlvbnMpIHtcbiAgICBpZiAoT2JqZWN0LmtleXMoZmllbGRzKS5pbmNsdWRlcyhvcHRpb24pKSB7XG4gICAgICByZXR1cm4gb3B0aW9uO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmF1bHQgdG8gZmlyc3QgZmllbGQgdGhhdCdzIG5vdCBpZFxuICBjb25zdCBmaXJzdE5vbklkRmllbGQgPSBPYmplY3Qua2V5cyhmaWVsZHMpLmZpbmQoKGspID0+IGsgIT09IFwiaWRcIik7XG4gIHJldHVybiBmaXJzdE5vbklkRmllbGQgfHwgXCJpZFwiO1xufVxuIl0sIm5hbWVzIjpbImdldEF1dGhUYWJsZXMiLCJmb3JtYXQiLCJnZW5lcmF0ZVNjaGVtYUJ1aWxkZXJTdGFnZSIsIkJBT3B0aW9ucyIsImNvZGUiLCJmb3JtYXR0ZWRDb2RlIiwiZmlsZXBhdGgiLCJwb3N0IiwiY29sbGVjdGlvbnMiLCJwYXJzZUV4aXN0aW5nU2NoZW1hIiwicGF5bG9hZFNjaGVtYVN0ciIsImdlbmVyYXRlUGF5bG9hZENvbGxlY3Rpb25Db25maWdzIiwib3B0aW9ucyIsImV4cG9ydHMiLCJjb2xsZWN0aW9uUmVnZXgiLCJtYXRjaCIsImV4ZWMiLCJjb2xsZWN0aW9uTmFtZSIsImNvbGxlY3Rpb25EZWYiLCJzbHVnTWF0Y2giLCJzbHVnIiwidG9Mb3dlckNhc2UiLCJ0aXRsZU1hdGNoIiwidXNlQXNUaXRsZSIsImZpZWxkc1JlZ2V4IiwiZmllbGRzTWF0Y2giLCJmaWVsZHMiLCJmaWVsZEJsb2NrUmVnZXgiLCJmaWVsZEJsb2NrcyIsImZpZWxkQmxvY2siLCJuYW1lTWF0Y2giLCJ0eXBlTWF0Y2giLCJyZXF1aXJlZE1hdGNoIiwidW5pcXVlTWF0Y2giLCJyZWxhdGlvblRvTWF0Y2giLCJmaWVsZCIsIm5hbWUiLCJ0eXBlIiwicmVxdWlyZWQiLCJ1bmlxdWUiLCJyZWxhdGlvblRvIiwicHVzaCIsInRpbWVzdGFtcHNNYXRjaCIsImhhc1RpbWVzdGFtcHMiLCJhZG1pbiIsInRpbWVzdGFtcHMiLCJleHBvcnRSZWdleCIsImV4cG9ydE1hdGNoIiwicmVzdWx0IiwiY29sbGVjdGlvbnNTdHIiLCJ0YWJsZXMiLCJleGlzdGluZ0NvbGxlY3Rpb25zQnlTbHVnIiwicmVkdWNlIiwiYWNjIiwiY29sbGVjdGlvbiIsInRhYmxlS2V5IiwidGFibGUiLCJPYmplY3QiLCJlbnRyaWVzIiwibW9kZWxOYW1lIiwiY2FwaXRhbGl6ZWQiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNsaWNlIiwiZXhpc3RpbmdDb2xsZWN0aW9uIiwiSlNPTiIsInN0cmluZ2lmeSIsInJlcGxhY2UiLCJnZXROYW1lRmllbGQiLCJmaWVsZEtleSIsImZpZWxkTmFtZSIsImZpZWxkVHlwZSIsIm1hcEZpZWxkVHlwZSIsImlzUmVsYXRpb25zaGlwIiwiZW5kc1dpdGgiLCJyZWZlcmVuY2VzIiwibW9kZWwiLCJBcnJheSIsImlzQXJyYXkiLCJkZWZhdWx0VmFsdWUiLCJ1bmRlZmluZWQiLCJ0b1N0cmluZyIsImluY2x1ZGVzIiwicmVhZE9ubHkiLCJ0cmltIiwiZXhpc3RpbmdFeHBvcnRNYXRjaCIsImV4aXN0aW5nQ29sbGVjdGlvbnMiLCJzcGxpdCIsIm1hcCIsInRhYmxlQ29sbGVjdGlvbnMiLCJrZXlzIiwiYWxsQ29sbGVjdGlvbnMiLCJTZXQiLCJqb2luIiwibGVuZ3RoIiwiY29sbGVjdGlvbk5hbWVzIiwicGFzY2FsQ2FzZSIsIm5hbWVPcHRpb25zIiwib3B0aW9uIiwiZmlyc3ROb25JZEZpZWxkIiwiZmluZCIsImsiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztDQWlCQyxHQUVELFNBQVNBLGFBQWEsUUFBUSxpQkFBaUI7QUFFL0MsU0FBU0MsTUFBTSxRQUFRLFdBQVc7QUFFbEMsT0FBTyxNQUFNQyw2QkFBNkIsT0FBTyxFQUMvQ0MsU0FBUyxFQUNUQyxJQUFJLEVBSUw7SUFDQyxNQUFNQyxnQkFBZ0IsTUFBTUosT0FBT0csTUFBTTtRQUFFRSxVQUFVO0lBQVk7SUFFakUsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFdBQVcsRUFBRSxHQUFHQyxvQkFBb0JKO0lBRWxELE1BQU1LLG1CQUFtQkMs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
|
|
317
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9hZGFwdGVyL2dlbmVyYXRlLXNjaGVtYS9nZW5lcmF0ZS1zY2hlbWEtYnVpbGRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgbW9kdWxlIGdlbmVyYXRlcyBQYXlsb2FkQ01TIGNvbGxlY3Rpb24gY29uZmlndXJhdGlvbnMgYmFzZWQgb24gdGhlIEJldHRlciBBdXRoIHNjaGVtYS5cbiAqXG4gKiBUaGUgZ2VuZXJhdGVkIGNvbGxlY3Rpb24gY29uZmlncyBpbmNsdWRlOlxuICogLSBVc2VyczogRm9yIHVzZXIgbWFuYWdlbWVudCB3aXRoIHByb3BlciBhdXRoIGNvbmZpZ3VyYXRpb25cbiAqIC0gU2Vzc2lvbnM6IEZvciBtYWludGFpbmluZyB1c2VyIHNlc3Npb25zXG4gKiAtIEFjY291bnRzOiBGb3IgT0F1dGggcHJvdmlkZXIgYWNjb3VudHNcbiAqIC0gVmVyaWZpY2F0aW9uVG9rZW5zOiBGb3IgZW1haWwgdmVyaWZpY2F0aW9uIG9yIHNvY2lhbCBzaWduIGluXG4gKlxuICogRWFjaCBjb2xsZWN0aW9uIGlzIHByb3Blcmx5IGZvcm1hdHRlZCB3aXRoOlxuICogLSBBcHByb3ByaWF0ZSBmaWVsZCB0eXBlcyAodGV4dCwgcmVsYXRpb25zaGlwLCBjaGVja2JveCwgZXRjLilcbiAqIC0gQWRtaW4gY29uZmlndXJhdGlvbiBmb3IgYmV0dGVyIFVJIGV4cGVyaWVuY2VcbiAqIC0gQXV0aCBjb25maWd1cmF0aW9uIGZvciB0aGUgVXNlcnMgY29sbGVjdGlvblxuICogLSBQcm9wZXIgZmllbGQgcmVsYXRpb25zaGlwcyBiZXR3ZWVuIGNvbGxlY3Rpb25zXG4gKlxuICogVXNlcnMgY2FuIGNvcHkgdGhlc2UgZ2VuZXJhdGVkIGNvbGxlY3Rpb24gY29uZmlncyB0byB0aGVpciBQYXlsb2FkQ01TIHByb2plY3RcbiAqIGFuZCBhZGQgYXV0aGVudGljYXRpb24gc3RyYXRlZ2llcyBhcyBuZWVkZWQuXG4gKi9cbmltcG9ydCB0eXBlIHsgQmV0dGVyQXV0aE9wdGlvbnMgfSBmcm9tIFwiYmV0dGVyLWF1dGhcIjtcbmltcG9ydCB7IGdldEF1dGhUYWJsZXMgfSBmcm9tIFwiYmV0dGVyLWF1dGgvZGJcIjtcbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbkNvbmZpZywgRmllbGQgfSBmcm9tIFwicGF5bG9hZFwiO1xuXG5leHBvcnQgY29uc3QgZ2VuZXJhdGVTY2hlbWFCdWlsZGVyU3RhZ2UgPSBhc3luYyAoe1xuICBCQU9wdGlvbnMsXG4gIGNvZGVcbn06IHtcbiAgY29kZTogc3RyaW5nO1xuICBCQU9wdGlvbnM6IEJldHRlckF1dGhPcHRpb25zO1xufSkgPT4ge1xuICBjb25zdCB7IHBvc3QsIGNvbGxlY3Rpb25zIH0gPSBwYXJzZUV4aXN0aW5nU2NoZW1hKGNvZGUpO1xuXG4gIGNvbnN0IHBheWxvYWRTY2hlbWFTdHIgPSBnZW5lcmF0ZVBheWxvYWRDb2xsZWN0aW9uQ29uZmlncyh7XG4gICAgb3B0aW9uczogQkFPcHRpb25zLFxuICAgIGNvbGxlY3Rpb25zLFxuICAgIGV4cG9ydHM6IHBvc3RcbiAgfSk7XG5cbiAgcmV0dXJuIHBheWxvYWRTY2hlbWFTdHI7XG59O1xuXG5mdW5jdGlvbiBwYXJzZUV4aXN0aW5nU2NoZW1hKGNvZGU6IHN0cmluZyk6IHtcbiAgY29sbGVjdGlvbnM6IENvbGxlY3Rpb25Db25maWdbXTtcbiAgcG9zdDogc3RyaW5nO1xufSB7XG4gIGNvbnN0IGNvbGxlY3Rpb25zOiBDb2xsZWN0aW9uQ29uZmlnW10gPSBbXTtcbiAgbGV0IHBvc3QgPSBcIlwiO1xuXG4gIC8vIEV4dHJhY3QgY29sbGVjdGlvbiBkZWZpbml0aW9uc1xuICBjb25zdCBjb2xsZWN0aW9uUmVnZXggPVxuICAgIC9jb25zdFxccysoW0EtWl1bYS16QS1aMC05XSopXFxzKjpcXHMqQ29sbGVjdGlvbkNvbmZpZ1xccyo9XFxzKntbXFxzXFxTXSo/fVxccyphc1xccypjb25zdDsvZztcbiAgbGV0IG1hdGNoO1xuICB3aGlsZSAoKG1hdGNoID0gY29sbGVjdGlvblJlZ2V4LmV4ZWMoY29kZSkpICE9PSBudWxsKSB7XG4gICAgY29uc3QgY29sbGVjdGlvbk5hbWUgPSBtYXRjaFsxXTtcbiAgICBjb25zdCBjb2xsZWN0aW9uRGVmID0gbWF0Y2hbMF07XG5cbiAgICAvLyBFeHRyYWN0IHNsdWdcbiAgICBjb25zdCBzbHVnTWF0Y2ggPSBjb2xsZWN0aW9uRGVmLm1hdGNoKC9zbHVnOlxccypcIihbXlwiXSspXCIvKTtcbiAgICBjb25zdCBzbHVnID0gc2x1Z01hdGNoID8gc2x1Z01hdGNoWzFdIDogY29sbGVjdGlvbk5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgIC8vIEV4dHJhY3QgdXNlQXNUaXRsZVxuICAgIGNvbnN0IHRpdGxlTWF0Y2ggPSBjb2xsZWN0aW9uRGVmLm1hdGNoKC91c2VBc1RpdGxlOlxccypcIihbXlwiXSspXCIvKTtcbiAgICBjb25zdCB1c2VBc1RpdGxlID0gdGl0bGVNYXRjaCA/IHRpdGxlTWF0Y2hbMV0gOiBcImlkXCI7XG5cbiAgICAvLyBFeHRyYWN0IGZpZWxkc1xuICAgIGNvbnN0IGZpZWxkc1JlZ2V4ID0gL2ZpZWxkczpcXHMqXFxbKFtcXHNcXFNdKj8pXFxdLC87XG4gICAgY29uc3QgZmllbGRzTWF0Y2ggPSBjb2xsZWN0aW9uRGVmLm1hdGNoKGZpZWxkc1JlZ2V4KTtcbiAgICBjb25zdCBmaWVsZHM6IEZpZWxkW10gPSBbXTtcblxuICAgIGlmIChmaWVsZHNNYXRjaCkge1xuICAgICAgY29uc3QgZmllbGRCbG9ja1JlZ2V4ID0gL3tbXFxzXFxTXSo/fSwvZztcbiAgICAgIGNvbnN0IGZpZWxkQmxvY2tzID0gZmllbGRzTWF0Y2hbMV0ubWF0Y2goZmllbGRCbG9ja1JlZ2V4KSB8fCBbXTtcblxuICAgICAgZm9yIChjb25zdCBmaWVsZEJsb2NrIG9mIGZpZWxkQmxvY2tzKSB7XG4gICAgICAgIGNvbnN0IG5hbWVNYXRjaCA9IGZpZWxkQmxvY2subWF0Y2goL25hbWU6XFxzKlwiKFteXCJdKylcIi8pO1xuICAgICAgICBjb25zdCB0eXBlTWF0Y2ggPSBmaWVsZEJsb2NrLm1hdGNoKC90eXBlOlxccypcIihbXlwiXSspXCIvKTtcbiAgICAgICAgY29uc3QgcmVxdWlyZWRNYXRjaCA9IGZpZWxkQmxvY2subWF0Y2goL3JlcXVpcmVkOlxccyoodHJ1ZXxmYWxzZSkvKTtcbiAgICAgICAgY29uc3QgdW5pcXVlTWF0Y2ggPSBmaWVsZEJsb2NrLm1hdGNoKC91bmlxdWU6XFxzKih0cnVlfGZhbHNlKS8pO1xuICAgICAgICBjb25zdCByZWxhdGlvblRvTWF0Y2ggPSBmaWVsZEJsb2NrLm1hdGNoKC9yZWxhdGlvblRvOlxccypcIihbXlwiXSspXCIvKTtcblxuICAgICAgICBpZiAobmFtZU1hdGNoICYmIHR5cGVNYXRjaCkge1xuICAgICAgICAgIGNvbnN0IGZpZWxkID0ge1xuICAgICAgICAgICAgbmFtZTogbmFtZU1hdGNoWzFdLFxuICAgICAgICAgICAgdHlwZTogdHlwZU1hdGNoWzFdIGFzIEZpZWxkW1widHlwZVwiXVxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBpZiAocmVxdWlyZWRNYXRjaCkge1xuICAgICAgICAgICAgKGZpZWxkIGFzIGFueSkucmVxdWlyZWQgPSByZXF1aXJlZE1hdGNoWzFdID09PSBcInRydWVcIjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodW5pcXVlTWF0Y2gpIHtcbiAgICAgICAgICAgIChmaWVsZCBhcyBhbnkpLnVuaXF1ZSA9IHVuaXF1ZU1hdGNoWzFdID09PSBcInRydWVcIjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocmVsYXRpb25Ub01hdGNoKSB7XG4gICAgICAgICAgICAoZmllbGQgYXMgYW55KS5yZWxhdGlvblRvID0gcmVsYXRpb25Ub01hdGNoWzFdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGZpZWxkcy5wdXNoKGZpZWxkIGFzIEZpZWxkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciB0aW1lc3RhbXBzXG4gICAgY29uc3QgdGltZXN0YW1wc01hdGNoID0gY29sbGVjdGlvbkRlZi5tYXRjaCgvdGltZXN0YW1wczpcXHMqKHRydWV8ZmFsc2UpLyk7XG4gICAgY29uc3QgaGFzVGltZXN0YW1wcyA9IHRpbWVzdGFtcHNNYXRjaFxuICAgICAgPyB0aW1lc3RhbXBzTWF0Y2hbMV0gPT09IFwidHJ1ZVwiXG4gICAgICA6IGZhbHNlO1xuXG4gICAgY29sbGVjdGlvbnMucHVzaCh7XG4gICAgICBzbHVnLFxuICAgICAgYWRtaW46IHtcbiAgICAgICAgdXNlQXNUaXRsZVxuICAgICAgfSxcbiAgICAgIGZpZWxkcyxcbiAgICAgIC4uLihoYXNUaW1lc3RhbXBzICYmIHsgdGltZXN0YW1wczogdHJ1ZSB9KVxuICAgIH0pO1xuICB9XG5cbiAgLy8gRXh0cmFjdCBleHBvcnQgc3RhdGVtZW50XG4gIGNvbnN0IGV4cG9ydFJlZ2V4ID0gL2V4cG9ydFxccyp7W1xcc1xcU10qP307LztcbiAgY29uc3QgZXhwb3J0TWF0Y2ggPSBjb2RlLm1hdGNoKGV4cG9ydFJlZ2V4KTtcbiAgaWYgKGV4cG9ydE1hdGNoKSB7XG4gICAgcG9zdCA9IGV4cG9ydE1hdGNoWzBdO1xuICB9XG5cbiAgcmV0dXJuIHsgY29sbGVjdGlvbnMsIHBvc3QgfTtcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVQYXlsb2FkQ29sbGVjdGlvbkNvbmZpZ3Moe1xuICBvcHRpb25zLFxuICBjb2xsZWN0aW9ucyxcbiAgZXhwb3J0c1xufToge1xuICBvcHRpb25zOiBCZXR0ZXJBdXRoT3B0aW9ucztcbiAgY29sbGVjdGlvbnM6IENvbGxlY3Rpb25Db25maWdbXTtcbiAgZXhwb3J0czogc3RyaW5nO1xufSk6IHN0cmluZyB7XG4gIGxldCByZXN1bHQgPSBcIlwiO1xuXG4gIC8vIGFkZCBwcmUgbWVzc2FnZSBhbmQgaW1wb3J0IHN0YXRlbWVudHNcbiAgcmVzdWx0ICs9IGAvKipcbiAqIEVYQU1QTEUgQ09MTEVDVElPTlMgRk9SIEJFVFRFUiBBVVRIXG4gKiBcbiAqIEJlbG93IGlzIHdoYXQgeW91ciBQYXlsb2FkIGNvbGxlY3Rpb25zIHNob3VsZCBsb29rIGxpa2UuXG4gKiBQbGVhc2UgY29weSB0aGVzZSB0byB5b3VyIGFjdHVhbCBjb2xsZWN0aW9uIGNvbmZpZ3MuXG4gKiBNYWtlIHN1cmUgdG8gYWRkIGFuIGF1dGhTdHJhdGVneSBmb3IgdGhlIHVzZXJzIGNvbGxlY3Rpb24gaWYgdGhlcmUgaXMgb25lLlxuICogXG4gKiBFeGFtcGxlIGF1dGggc3RyYXRlZ3k6XG4gKiBhdXRoOiB7XG4gKiAgIGRpc2FibGVMb2NhbFN0cmF0ZWd5OiB0cnVlLFxuICogICBzdHJhdGVnaWVzOiBbXG4gKiAgICAgYmV0dGVyQXV0aFN0cmF0ZWd5KCksXG4gKiAgICAgLy8gQWRkIG90aGVyIHN0cmF0ZWdpZXMgYXMgbmVlZGVkXG4gKiAgIF0sXG4gKiB9LFxuICovXG5pbXBvcnQgdHlwZSB7IENvbGxlY3Rpb25Db25maWcgfSBmcm9tICdwYXlsb2FkJztcblxuYDtcblxuICAvLyBhZGQgdGhlIGNvbGxlY3Rpb25zXG4gIGxldCBjb2xsZWN0aW9uc1N0ciA9IFwiXCI7XG4gIGNvbnN0IHRhYmxlcyA9IGdldEF1dGhUYWJsZXMob3B0aW9ucyk7XG5cbiAgLy8gUHJvY2VzcyBleGlzdGluZyBjb2xsZWN0aW9ucyBmaXJzdFxuICBjb25zdCBleGlzdGluZ0NvbGxlY3Rpb25zQnlTbHVnID0gY29sbGVjdGlvbnMucmVkdWNlKFxuICAgIChhY2MsIGNvbGxlY3Rpb24pID0+IHtcbiAgICAgIGlmIChjb2xsZWN0aW9uLnNsdWcpIHtcbiAgICAgICAgYWNjW2NvbGxlY3Rpb24uc2x1Z10gPSBjb2xsZWN0aW9uO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LFxuICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIENvbGxlY3Rpb25Db25maWc+XG4gICk7XG5cbiAgZm9yIChjb25zdCBbdGFibGVLZXksIHRhYmxlXSBvZiBPYmplY3QuZW50cmllcyh0YWJsZXMpKSB7XG4gICAgY29uc3QgbW9kZWxOYW1lID0gdGFibGUubW9kZWxOYW1lO1xuICAgIGNvbnN0IGNhcGl0YWxpemVkID0gbW9kZWxOYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgbW9kZWxOYW1lLnNsaWNlKDEpO1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhpcyBjb2xsZWN0aW9uIGFscmVhZHkgZXhpc3RzIGluIHRoZSBwcm92aWRlZCBjb2xsZWN0aW9uc1xuICAgIGNvbnN0IGV4aXN0aW5nQ29sbGVjdGlvbiA9IGV4aXN0aW5nQ29sbGVjdGlvbnNCeVNsdWdbbW9kZWxOYW1lXTtcblxuICAgIGlmIChleGlzdGluZ0NvbGxlY3Rpb24pIHtcbiAgICAgIC8vIENvbnZlcnQgZXhpc3RpbmcgY29sbGVjdGlvbiB0byBzdHJpbmcgcmVwcmVzZW50YXRpb25cbiAgICAgIGNvbGxlY3Rpb25zU3RyICs9IGBjb25zdCAke2NhcGl0YWxpemVkfTogQ29sbGVjdGlvbkNvbmZpZyA9ICR7SlNPTi5zdHJpbmdpZnkoZXhpc3RpbmdDb2xsZWN0aW9uLCBudWxsLCAyKS5yZXBsYWNlKC9cIihbXlwiXSspXCI6L2csIFwiJDE6XCIpfSBhcyBjb25zdDtcXG5cXG5gO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIG5ldyBjb2xsZWN0aW9uIGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICBjb2xsZWN0aW9uc1N0ciArPSBgY29uc3QgJHtjYXBpdGFsaXplZH06IENvbGxlY3Rpb25Db25maWcgPSB7XG4gIHNsdWc6IFwiJHttb2RlbE5hbWV9XCIsXG5gO1xuXG4gICAgLy8gQWRkIGFkbWluIHNlY3Rpb24gZm9yIGJldHRlciBVWFxuICAgIGNvbGxlY3Rpb25zU3RyICs9IGAgIGFkbWluOiB7XG4gICAgdXNlQXNUaXRsZTogXCIke2dldE5hbWVGaWVsZCh0YWJsZS5maWVsZHMpfVwiLFxuICB9LFxuYDtcblxuICAgIC8vIEFkZCBhdXRoIHNlY3Rpb24gT05MWSBmb3IgdXNlcnMgY29sbGVjdGlvblxuICAgIGlmIChtb2RlbE5hbWUgPT09IFwidXNlcnNcIikge1xuICAgICAgY29sbGVjdGlvbnNTdHIgKz0gYCAgYXV0aDoge1xuICAgIGRpc2FibGVMb2NhbFN0cmF0ZWd5OiB0cnVlLFxuICAgIHN0cmF0ZWdpZXM6IFtdLFxuICAgIC8vIEFkZCB5b3VyIGF1dGggc3RyYXRlZ2llcyBoZXJlIGlmIG5lZWRlZFxuICB9LFxuYDtcbiAgICB9XG5cbiAgICAvLyBBZGQgZmllbGRzXG4gICAgY29sbGVjdGlvbnNTdHIgKz0gYCAgZmllbGRzOiBbXG5gO1xuXG4gICAgZm9yIChjb25zdCBbZmllbGRLZXksIGZpZWxkXSBvZiBPYmplY3QuZW50cmllcyh0YWJsZS5maWVsZHMpKSB7XG4gICAgICBjb25zdCBmaWVsZE5hbWUgPSBmaWVsZC5maWVsZE5hbWUgfHwgZmllbGRLZXk7XG4gICAgICAvLyBTa2lwIGlkIGZpZWxkIGFzIFBheWxvYWQgaGFuZGxlcyBpdCBhdXRvbWF0aWNhbGx5XG4gICAgICBpZiAoZmllbGROYW1lID09PSBcImlkXCIpIGNvbnRpbnVlO1xuXG4gICAgICBpZiAoZmllbGROYW1lID09PSBcImNyZWF0ZWRBdFwiIHx8IGZpZWxkTmFtZSA9PT0gXCJ1cGRhdGVkQXRcIikgY29udGludWU7XG5cbiAgICAgIC8vIEhhbmRsZSBmaWVsZCB0eXBlIG1hcHBpbmcgd2l0aCBzYWZlciB0eXBlIGFwcHJvYWNoXG4gICAgICBsZXQgZmllbGRUeXBlID0gbWFwRmllbGRUeXBlKGZpZWxkLnR5cGUgYXMgc3RyaW5nLCBmaWVsZE5hbWUpO1xuICAgICAgY29uc3QgaXNSZWxhdGlvbnNoaXAgPVxuICAgICAgICBmaWVsZE5hbWUuZW5kc1dpdGgoXCJfaWRcIikgfHwgISFmaWVsZC5yZWZlcmVuY2VzPy5tb2RlbDtcblxuICAgICAgY29sbGVjdGlvbnNTdHIgKz0gYCAgICB7XG4gICAgICBuYW1lOiBcIiR7aXNSZWxhdGlvbnNoaXAgPyBmaWVsZE5hbWUucmVwbGFjZShcIl9pZFwiLCBcIlwiKSA6IGZpZWxkTmFtZX1cIixcbmA7XG5cbiAgICAgIGlmIChpc1JlbGF0aW9uc2hpcCkge1xuICAgICAgICBjb2xsZWN0aW9uc1N0ciArPSBgICAgICAgdHlwZTogXCJyZWxhdGlvbnNoaXBcIixcbiAgICAgIHJlbGF0aW9uVG86IFwiJHtmaWVsZC5yZWZlcmVuY2VzPy5tb2RlbCB8fCBmaWVsZE5hbWUucmVwbGFjZShcIl9pZFwiLCBcIlwiKX1cIixcbmA7XG4gICAgICB9IGVsc2UgaWYgKGZpZWxkVHlwZSA9PT0gXCJ1cGxvYWRcIikge1xuICAgICAgICBjb2xsZWN0aW9uc1N0ciArPSBgICAgICAgdHlwZTogXCJ1cGxvYWRcIixcbiAgICAgIHJlbGF0aW9uVG86IFwibWVkaWFcIixcbmA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb2xsZWN0aW9uc1N0ciArPSBgICAgICAgdHlwZTogXCIke2ZpZWxkVHlwZX1cIixcbmA7XG4gICAgICB9XG5cbiAgICAgIGlmIChmaWVsZC5yZXF1aXJlZCkge1xuICAgICAgICBjb2xsZWN0aW9uc1N0ciArPSBgICAgICAgcmVxdWlyZWQ6IHRydWUsXG5gO1xuICAgICAgfVxuXG4gICAgICBpZiAoZmllbGQudW5pcXVlKSB7XG4gICAgICAgIGNvbGxlY3Rpb25zU3RyICs9IGAgICAgICB1bmlxdWU6IHRydWUsXG5gO1xuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBpZiBmaWVsZCBoYXMgb3B0aW9ucyBhbmQgZmllbGRUeXBlIGlzIHNlbGVjdFxuICAgICAgaWYgKFxuICAgICAgICBmaWVsZFR5cGUgPT09IFwic2VsZWN0XCIgJiZcbiAgICAgICAgXCJvcHRpb25zXCIgaW4gZmllbGQgJiZcbiAgICAgICAgQXJyYXkuaXNBcnJheShmaWVsZC5vcHRpb25zKVxuICAgICAgKSB7XG4gICAgICAgIGNvbGxlY3Rpb25zU3RyICs9IGAgICAgICBvcHRpb25zOiAke0pTT04uc3RyaW5naWZ5KGZpZWxkLm9wdGlvbnMpfSxcbmA7XG4gICAgICB9XG5cbiAgICAgIGlmIChmaWVsZC5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodHlwZW9mIGZpZWxkLmRlZmF1bHRWYWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIGNvbGxlY3Rpb25zU3RyICs9IGAgICAgICBkZWZhdWx0VmFsdWU6IFwiJHtmaWVsZC5kZWZhdWx0VmFsdWV9XCIsXG5gO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBmaWVsZC5kZWZhdWx0VmFsdWUgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgY29sbGVjdGlvbnNTdHIgKz0gYCAgICAgIGRlZmF1bHRWYWx1ZTogJHtmaWVsZC5kZWZhdWx0VmFsdWUgPyBcInRydWVcIiA6IFwiZmFsc2VcIn0sXG5gO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGZpZWxkLmRlZmF1bHRWYWx1ZSAmJlxuICAgICAgICAgIHR5cGVvZiBmaWVsZC5kZWZhdWx0VmFsdWUgPT09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgICAgIGZpZWxkLmRlZmF1bHRWYWx1ZS50b1N0cmluZygpLmluY2x1ZGVzKFwiKCkgPT4gITFcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy8gSGFuZGxlIGZ1bmN0aW9uLWxpa2UgZGVmYXVsdCB2YWx1ZXMgd2l0aCBhcmUgZmFsc2VcbiAgICAgICAgICBjb2xsZWN0aW9uc1N0ciArPSBgICAgICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbmA7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgZmllbGQuZGVmYXVsdFZhbHVlICYmXG4gICAgICAgICAgdHlwZW9mIGZpZWxkLmRlZmF1bHRWYWx1ZSA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgZmllbGQuZGVmYXVsdFZhbHVlLnRvU3RyaW5nKCkuaW5jbHVkZXMoXCIoKSA9PiAhMFwiKVxuICAgICAgICApIHtcbiAgICAgICAgICAvLyBIYW5kbGUgZnVuY3Rpb24tbGlrZSBkZWZhdWx0IHZhbHVlcyB3aXRoIGFyZSB0cnVlXG4gICAgICAgICAgY29sbGVjdGlvbnNTdHIgKz0gYCAgICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbmA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29sbGVjdGlvbnNTdHIgKz0gYCAgICAgIGRlZmF1bHRWYWx1ZTogJHtmaWVsZC5kZWZhdWx0VmFsdWV9LFxuYDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBBZGQgYWRtaW4gc2VjdGlvbiBmb3IgZmllbGRzIGlmIG5lZWRlZCAtIHNhZmVseSBjaGVjayBmb3IgYWRtaW4gcHJvcGVydHlcbiAgICAgIGlmIChcbiAgICAgICAgXCJhZG1pblwiIGluIGZpZWxkICYmXG4gICAgICAgIGZpZWxkLmFkbWluICYmXG4gICAgICAgIHR5cGVvZiBmaWVsZC5hZG1pbiA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgICBcInJlYWRPbmx5XCIgaW4gZmllbGQuYWRtaW4gJiZcbiAgICAgICAgZmllbGQuYWRtaW4ucmVhZE9ubHlcbiAgICAgICkge1xuICAgICAgICBjb2xsZWN0aW9uc1N0ciArPSBgICAgICAgYWRtaW46IHtcbiAgICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgICB9LFxuYDtcbiAgICAgIH1cblxuICAgICAgY29sbGVjdGlvbnNTdHIgKz0gYCAgICB9LFxuYDtcbiAgICB9XG5cbiAgICBjb2xsZWN0aW9uc1N0ciArPSBgICBdLFxuICB0aW1lc3RhbXBzOiB0cnVlLFxufSBhcyBjb25zdDtcblxuYDtcbiAgfVxuXG4gIC8vIEFkZCBhbnkgY29sbGVjdGlvbnMgZnJvbSB0aGUgaW5wdXQgdGhhdCBhcmVuJ3QgaW4gdGhlIHRhYmxlc1xuICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gb2YgY29sbGVjdGlvbnMpIHtcbiAgICBpZiAoIWNvbGxlY3Rpb24uc2x1ZyB8fCB0YWJsZXNbY29sbGVjdGlvbi5zbHVnXSkge1xuICAgICAgY29udGludWU7IC8vIFNraXAgaWYgbm8gc2x1ZyBvciBhbHJlYWR5IHByb2Nlc3NlZFxuICAgIH1cblxuICAgIGNvbnN0IGNhcGl0YWxpemVkID1cbiAgICAgIGNvbGxlY3Rpb24uc2x1Zy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGNvbGxlY3Rpb24uc2x1Zy5zbGljZSgxKTtcbiAgICBjb2xsZWN0aW9uc1N0ciArPSBgY29uc3QgJHtjYXBpdGFsaXplZH06IENvbGxlY3Rpb25Db25maWcgPSAke0pTT04uc3RyaW5naWZ5KGNvbGxlY3Rpb24sIG51bGwsIDIpLnJlcGxhY2UoL1wiKFteXCJdKylcIjovZywgXCIkMTpcIil9IGFzIGNvbnN0O1xcblxcbmA7XG4gIH1cblxuICByZXN1bHQgKz0gY29sbGVjdGlvbnNTdHI7XG5cbiAgLy8gQWRkIGV4cG9ydCBzdGF0ZW1lbnRzIGZvciBhbGwgY29sbGVjdGlvbnNcbiAgLy8gQ2hlY2sgaWYgd2UgaGF2ZSBhbiBleGlzdGluZyBleHBvcnQgc3RhdGVtZW50IHRvIGFkYXB0XG4gIGlmIChleHBvcnRzICYmIGV4cG9ydHMudHJpbSgpKSB7XG4gICAgLy8gUGFyc2UgdGhlIGV4aXN0aW5nIGV4cG9ydHMgdG8gZ2V0IGNvbGxlY3Rpb24gbmFtZXNcbiAgICBjb25zdCBleGlzdGluZ0V4cG9ydE1hdGNoID0gZXhwb3J0cy5tYXRjaCgvZXhwb3J0XFxzKntcXHMqKC4qPylcXHMqfS8pO1xuICAgIGNvbnN0IGV4aXN0aW5nQ29sbGVjdGlvbnMgPSBleGlzdGluZ0V4cG9ydE1hdGNoXG4gICAgICA/IGV4aXN0aW5nRXhwb3J0TWF0Y2hbMV0uc3BsaXQoXCIsXCIpLm1hcCgobmFtZSkgPT4gbmFtZS50cmltKCkpXG4gICAgICA6IFtdO1xuXG4gICAgLy8gR2V0IHRoZSBjb2xsZWN0aW9uIG5hbWVzIGZyb20gb3VyIHRhYmxlc1xuICAgIGNvbnN0IHRhYmxlQ29sbGVjdGlvbnMgPSBPYmplY3Qua2V5cyh0YWJsZXMpLm1hcCgobW9kZWwpID0+IHtcbiAgICAgIHJldHVybiBtb2RlbC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIG1vZGVsLnNsaWNlKDEpO1xuICAgIH0pO1xuXG4gICAgLy8gQ29tYmluZSBleGlzdGluZyBhbmQgbmV3IGNvbGxlY3Rpb25zLCByZW1vdmluZyBkdXBsaWNhdGVzXG4gICAgY29uc3QgYWxsQ29sbGVjdGlvbnMgPSBbXG4gICAgICAuLi5uZXcgU2V0KFsuLi5leGlzdGluZ0NvbGxlY3Rpb25zLCAuLi50YWJsZUNvbGxlY3Rpb25zXSlcbiAgICBdO1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBuZXcgZXhwb3J0IHN0YXRlbWVudFxuICAgIHJlc3VsdCArPSBgZXhwb3J0IHsgJHthbGxDb2xsZWN0aW9ucy5qb2luKFwiLCBcIil9IH07XG5gO1xuICB9IGVsc2UgaWYgKE9iamVjdC5rZXlzKHRhYmxlcykubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGNvbGxlY3Rpb25OYW1lcyA9IE9iamVjdC5rZXlzKHRhYmxlcykubWFwKChtb2RlbCkgPT4ge1xuICAgICAgLy8gQ29udmVydCBtb2RlbCBuYW1lIHRvIFBhc2NhbENhc2UgZm9yIGV4cG9ydFxuICAgICAgY29uc3QgcGFzY2FsQ2FzZSA9IG1vZGVsLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgbW9kZWwuc2xpY2UoMSk7XG4gICAgICByZXR1cm4gcGFzY2FsQ2FzZTtcbiAgICB9KTtcblxuICAgIHJlc3VsdCArPSBgZXhwb3J0IHsgJHtjb2xsZWN0aW9uTmFtZXMuam9pbihcIiwgXCIpfSB9O1xuYDtcbiAgfSBlbHNlIHtcbiAgICByZXN1bHQgKz0gYGV4cG9ydCB7fTtcbmA7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vLyBIZWxwZXIgZnVuY3Rpb25zXG5mdW5jdGlvbiBtYXBGaWVsZFR5cGUodHlwZTogc3RyaW5nLCBmaWVsZE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChmaWVsZE5hbWUuZW5kc1dpdGgoXCJfaWRcIikpIHJldHVybiBcInJlbGF0aW9uc2hpcFwiO1xuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICByZXR1cm4gXCJjaGVja2JveFwiO1xuICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgIHJldHVybiBcIm51bWJlclwiO1xuICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgIGlmIChmaWVsZE5hbWUgPT09IFwiZW1haWxcIikgcmV0dXJuIFwiZW1haWxcIjtcbiAgICAgIGlmIChmaWVsZE5hbWUuaW5jbHVkZXMoXCJwYXNzd29yZFwiKSkgcmV0dXJuIFwidGV4dFwiO1xuICAgICAgaWYgKGZpZWxkTmFtZS5pbmNsdWRlcyhcImltYWdlXCIpIHx8IGZpZWxkTmFtZS5pbmNsdWRlcyhcImF2YXRhclwiKSlcbiAgICAgICAgcmV0dXJuIFwidXBsb2FkXCI7XG4gICAgICByZXR1cm4gXCJ0ZXh0XCI7XG4gICAgY2FzZSBcImRhdGVcIjpcbiAgICAgIHJldHVybiBcImRhdGVcIjtcbiAgICBjYXNlIFwiYXJyYXlcIjpcbiAgICAgIHJldHVybiBcImFycmF5XCI7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBcInRleHRcIjtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXROYW1lRmllbGQoZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogc3RyaW5nIHtcbiAgLy8gVHJ5IHRvIGZpbmQgYW4gYXBwcm9wcmlhdGUgZmllbGQgdG8gdXNlIGFzIHRpdGxlXG4gIGNvbnN0IG5hbWVPcHRpb25zID0gW1wibmFtZVwiLCBcInRpdGxlXCIsIFwibGFiZWxcIiwgXCJlbWFpbFwiLCBcInVzZXJuYW1lXCJdO1xuXG4gIGZvciAoY29uc3Qgb3B0aW9uIG9mIG5hbWVPcHRpb25zKSB7XG4gICAgaWYgKE9iamVjdC5rZXlzKGZpZWxkcykuaW5jbHVkZXMob3B0aW9uKSkge1xuICAgICAgcmV0dXJuIG9wdGlvbjtcbiAgICB9XG4gIH1cblxuICAvLyBEZWZhdWx0IHRvIGZpcnN0IGZpZWxkIHRoYXQncyBub3QgaWRcbiAgY29uc3QgZmlyc3ROb25JZEZpZWxkID0gT2JqZWN0LmtleXMoZmllbGRzKS5maW5kKChrKSA9PiBrICE9PSBcImlkXCIpO1xuICByZXR1cm4gZmlyc3ROb25JZEZpZWxkIHx8IFwiaWRcIjtcbn1cbiJdLCJuYW1lcyI6WyJnZXRBdXRoVGFibGVzIiwiZ2VuZXJhdGVTY2hlbWFCdWlsZGVyU3RhZ2UiLCJCQU9wdGlvbnMiLCJjb2RlIiwicG9zdCIsImNvbGxlY3Rpb25zIiwicGFyc2VFeGlzdGluZ1NjaGVtYSIsInBheWxvYWRTY2hlbWFTdHIiLCJnZW5lcmF0ZVBheWxvYWRDb2xsZWN0aW9uQ29uZmlncyIsIm9wdGlvbnMiLCJleHBvcnRzIiwiY29sbGVjdGlvblJlZ2V4IiwibWF0Y2giLCJleGVjIiwiY29sbGVjdGlvbk5hbWUiLCJjb2xsZWN0aW9uRGVmIiwic2x1Z01hdGNoIiwic2x1ZyIsInRvTG93ZXJDYXNlIiwidGl0bGVNYXRjaCIsInVzZUFzVGl0bGUiLCJmaWVsZHNSZWdleCIsImZpZWxkc01hdGNoIiwiZmllbGRzIiwiZmllbGRCbG9ja1JlZ2V4IiwiZmllbGRCbG9ja3MiLCJmaWVsZEJsb2NrIiwibmFtZU1hdGNoIiwidHlwZU1hdGNoIiwicmVxdWlyZWRNYXRjaCIsInVuaXF1ZU1hdGNoIiwicmVsYXRpb25Ub01hdGNoIiwiZmllbGQiLCJuYW1lIiwidHlwZSIsInJlcXVpcmVkIiwidW5pcXVlIiwicmVsYXRpb25UbyIsInB1c2giLCJ0aW1lc3RhbXBzTWF0Y2giLCJoYXNUaW1lc3RhbXBzIiwiYWRtaW4iLCJ0aW1lc3RhbXBzIiwiZXhwb3J0UmVnZXgiLCJleHBvcnRNYXRjaCIsInJlc3VsdCIsImNvbGxlY3Rpb25zU3RyIiwidGFibGVzIiwiZXhpc3RpbmdDb2xsZWN0aW9uc0J5U2x1ZyIsInJlZHVjZSIsImFjYyIsImNvbGxlY3Rpb24iLCJ0YWJsZUtleSIsInRhYmxlIiwiT2JqZWN0IiwiZW50cmllcyIsIm1vZGVsTmFtZSIsImNhcGl0YWxpemVkIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsImV4aXN0aW5nQ29sbGVjdGlvbiIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZXBsYWNlIiwiZ2V0TmFtZUZpZWxkIiwiZmllbGRLZXkiLCJmaWVsZE5hbWUiLCJmaWVsZFR5cGUiLCJtYXBGaWVsZFR5cGUiLCJpc1JlbGF0aW9uc2hpcCIsImVuZHNXaXRoIiwicmVmZXJlbmNlcyIsIm1vZGVsIiwiQXJyYXkiLCJpc0FycmF5IiwiZGVmYXVsdFZhbHVlIiwidW5kZWZpbmVkIiwidG9TdHJpbmciLCJpbmNsdWRlcyIsInJlYWRPbmx5IiwidHJpbSIsImV4aXN0aW5nRXhwb3J0TWF0Y2giLCJleGlzdGluZ0NvbGxlY3Rpb25zIiwic3BsaXQiLCJtYXAiLCJ0YWJsZUNvbGxlY3Rpb25zIiwia2V5cyIsImFsbENvbGxlY3Rpb25zIiwiU2V0Iiwiam9pbiIsImxlbmd0aCIsImNvbGxlY3Rpb25OYW1lcyIsInBhc2NhbENhc2UiLCJuYW1lT3B0aW9ucyIsIm9wdGlvbiIsImZpcnN0Tm9uSWRGaWVsZCIsImZpbmQiLCJrIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FpQkMsR0FFRCxTQUFTQSxhQUFhLFFBQVEsaUJBQWlCO0FBRy9DLE9BQU8sTUFBTUMsNkJBQTZCLE9BQU8sRUFDL0NDLFNBQVMsRUFDVEMsSUFBSSxFQUlMO0lBQ0MsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFdBQVcsRUFBRSxHQUFHQyxvQkFBb0JIO0lBRWxELE1BQU1JLG1CQUFtQkMsaUNBQWlDO1FBQ3hEQyxTQUFTUDtRQUNURztRQUNBSyxTQUFTTjtJQUNYO0lBRUEsT0FBT0c7QUFDVCxFQUFFO0FBRUYsU0FBU0Qsb0JBQW9CSCxJQUFZO0lBSXZDLE1BQU1FLGNBQWtDLEVBQUU7SUFDMUMsSUFBSUQsT0FBTztJQUVYLGlDQUFpQztJQUNqQyxNQUFNTyxrQkFDSjtJQUNGLElBQUlDO0lBQ0osTUFBTyxBQUFDQSxDQUFBQSxRQUFRRCxnQkFBZ0JFLElBQUksQ0FBQ1YsS0FBSSxNQUFPLEtBQU07UUFDcEQsTUFBTVcsaUJBQWlCRixLQUFLLENBQUMsRUFBRTtRQUMvQixNQUFNRyxnQkFBZ0JILEtBQUssQ0FB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organizations.d.ts","sourceRoot":"","sources":["../../../../../src/better-auth/plugin/lib/build-collections/organizations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAa,MAAM,SAAS,CAAC;AAE3D,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,4BAA4B,CAAC;AAUpC,wBAAgB,4BAA4B,CAAC,EAC3C,mBAAmB,EACnB,aAAa,EACb,eAAe,EAChB,EAAE,oBAAoB,GAAG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"organizations.d.ts","sourceRoot":"","sources":["../../../../../src/better-auth/plugin/lib/build-collections/organizations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAa,MAAM,SAAS,CAAC;AAE3D,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,4BAA4B,CAAC;AAUpC,wBAAgB,4BAA4B,CAAC,EAC3C,mBAAmB,EACnB,aAAa,EACb,eAAe,EAChB,EAAE,oBAAoB,GAAG,gBAAgB,CAuIzC"}
|
|
@@ -9,8 +9,6 @@ export function buildOrganizationsCollection({ incomingCollections, pluginOption
|
|
|
9
9
|
const memberSlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.member);
|
|
10
10
|
const invitationSlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.invitation);
|
|
11
11
|
const teamSlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.team);
|
|
12
|
-
const teamMemberSlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.teamMember);
|
|
13
|
-
const scimProviderSlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.scimProvider);
|
|
14
12
|
const existingOrganizationCollection = incomingCollections.find((collection)=>collection.slug === organizationSlug);
|
|
15
13
|
const fieldOverrides = {
|
|
16
14
|
name: ()=>({
|
|
@@ -61,16 +59,6 @@ export function buildOrganizationsCollection({ incomingCollections, pluginOption
|
|
|
61
59
|
maxDepth: 1,
|
|
62
60
|
saveToJWT: false
|
|
63
61
|
},
|
|
64
|
-
{
|
|
65
|
-
label: "Teams",
|
|
66
|
-
name: baModelKey.team,
|
|
67
|
-
type: "join",
|
|
68
|
-
hasMany: true,
|
|
69
|
-
collection: teamSlug,
|
|
70
|
-
on: getSchemaFieldName(resolvedSchemas, baModelKey.team, baModelFieldKeys.team.organizationId),
|
|
71
|
-
maxDepth: 1,
|
|
72
|
-
saveToJWT: false
|
|
73
|
-
},
|
|
74
62
|
{
|
|
75
63
|
label: "Organization Roles",
|
|
76
64
|
name: baModelKey.organizationRole,
|
|
@@ -115,4 +103,4 @@ export function buildOrganizationsCollection({ incomingCollections, pluginOption
|
|
|
115
103
|
return organizationCollection;
|
|
116
104
|
}
|
|
117
105
|
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL29yZ2FuaXphdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uQ29uZmlnLCBKb2luRmllbGQgfSBmcm9tIFwicGF5bG9hZFwiO1xuaW1wb3J0IHR5cGUgeyBPcmdhbml6YXRpb24gfSBmcm9tIFwiQC9iZXR0ZXItYXV0aC9nZW5lcmF0ZWQtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHtcbiAgQnVpbGRDb2xsZWN0aW9uUHJvcHMsXG4gIEZpZWxkT3ZlcnJpZGVzXG59IGZyb20gXCJAL2JldHRlci1hdXRoL3BsdWdpbi90eXBlc1wiO1xuaW1wb3J0IHsgYmFNb2RlbEZpZWxkS2V5cywgYmFNb2RlbEtleSB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGdldEFkbWluQWNjZXNzIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvZ2V0LWFkbWluLWFjY2Vzc1wiO1xuaW1wb3J0IHtcbiAgYXNzZXJ0QWxsU2NoZW1hRmllbGRzLFxuICBnZXRTY2hlbWFDb2xsZWN0aW9uU2x1ZyxcbiAgZ2V0U2NoZW1hRmllbGROYW1lXG59IGZyb20gXCIuL3V0aWxzL2NvbGxlY3Rpb24tc2NoZW1hXCI7XG5pbXBvcnQgeyBnZXRDb2xsZWN0aW9uRmllbGRzIH0gZnJvbSBcIi4vdXRpbHMvdHJhbnNmb3JtLXNjaGVtYS1maWVsZHMtdG8tcGF5bG9hZFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRPcmdhbml6YXRpb25zQ29sbGVjdGlvbih7XG4gIGluY29taW5nQ29sbGVjdGlvbnMsXG4gIHBsdWdpbk9wdGlvbnMsXG4gIHJlc29sdmVkU2NoZW1hc1xufTogQnVpbGRDb2xsZWN0aW9uUHJvcHMpOiBDb2xsZWN0aW9uQ29uZmlnIHtcbiAgY29uc3Qgb3JnYW5pemF0aW9uU2x1ZyA9IGdldFNjaGVtYUNvbGxlY3Rpb25TbHVnKFxuICAgIHJlc29sdmVkU2NoZW1hcyxcbiAgICBiYU1vZGVsS2V5Lm9yZ2FuaXphdGlvblxuICApO1xuICBjb25zdCBvcmdhbml6YXRpb25TY2hlbWEgPSByZXNvbHZlZFNjaGVtYXNbYmFNb2RlbEtleS5vcmdhbml6YXRpb25dO1xuXG4gIGNvbnN0IG9yZ2FuaXphdGlvblJvbGVTbHVnID0gZ2V0U2NoZW1hQ29sbGVjdGlvblNsdWcoXG4gICAgcmVzb2x2ZWRTY2hlbWFzLFxuICAgIGJhTW9kZWxLZXkub3JnYW5pemF0aW9uUm9sZVxuICApO1xuICBjb25zdCBtZW1iZXJTbHVnID0gZ2V0U2NoZW1hQ29sbGVjdGlvblNsdWcoXG4gICAgcmVzb2x2ZWRTY2hlbWFzLFxuICAgIGJhTW9kZWxLZXkubWVtYmVyXG4gICk7XG4gIGNvbnN0IGludml0YXRpb25TbHVnID0gZ2V0U2NoZW1hQ29sbGVjdGlvblNsdWcoXG4gICAgcmVzb2x2ZWRTY2hlbWFzLFxuICAgIGJhTW9kZWxLZXkuaW52aXRhdGlvblxuICApO1xuICBjb25zdCB0ZWFtU2x1ZyA9IGdldFNjaGVtYUNvbGxlY3Rpb25TbHVnKHJlc29sdmVkU2NoZW1hcywgYmFNb2RlbEtleS50ZWFtKTtcbiAgY29uc3QgdGVhbU1lbWJlclNsdWcgPSBnZXRTY2hlbWFDb2xsZWN0aW9uU2x1ZyhcbiAgICByZXNvbHZlZFNjaGVtYXMsXG4gICAgYmFNb2RlbEtleS50ZWFtTWVtYmVyXG4gICk7XG4gIGNvbnN0IHNjaW1Qcm92aWRlclNsdWcgPSBnZXRTY2hlbWFDb2xsZWN0aW9uU2x1ZyhcbiAgICByZXNvbHZlZFNjaGVtYXMsXG4gICAgYmFNb2RlbEtleS5zY2ltUHJvdmlkZXJcbiAgKTtcblxuICBjb25zdCBleGlzdGluZ09yZ2FuaXphdGlvbkNvbGxlY3Rpb24gPSBpbmNvbWluZ0NvbGxlY3Rpb25zLmZpbmQoXG4gICAgKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uc2x1ZyA9PT0gb3JnYW5pemF0aW9uU2x1Z1xuICApIGFzIENvbGxlY3Rpb25Db25maWcgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3QgZmllbGRPdmVycmlkZXM6IEZpZWxkT3ZlcnJpZGVzPGtleW9mIE9yZ2FuaXphdGlvbj4gPSB7XG4gICAgbmFtZTogKCkgPT4gKHtcbiAgICAgIGFkbWluOiB7IGRlc2NyaXB0aW9uOiBcIlRoZSBuYW1lIG9mIHRoZSBvcmdhbml6YXRpb24uXCIgfVxuICAgIH0pLFxuICAgIHNsdWc6ICgpID0+ICh7XG4gICAgICB1bmlxdWU6IHRydWUsXG4gICAgICBpbmRleDogdHJ1ZSxcbiAgICAgIGFkbWluOiB7IGRlc2NyaXB0aW9uOiBcIlRoZSBzbHVnIG9mIHRoZSBvcmdhbml6YXRpb24uXCIgfVxuICAgIH0pLFxuICAgIGxvZ286ICgpID0+ICh7XG4gICAgICBhZG1pbjogeyBkZXNjcmlwdGlvbjogXCJUaGUgbG9nbyBvZiB0aGUgb3JnYW5pemF0aW9uLlwiIH1cbiAgICB9KSxcbiAgICBtZXRhZGF0YTogKCkgPT4gKHtcbiAgICAgIGFkbWluOiB7IGRlc2NyaXB0aW9uOiBcIkFkZGl0aW9uYWwgbWV0YWRhdGEgZm9yIHRoZSBvcmdhbml6YXRpb24uXCIgfVxuICAgIH0pXG4gIH07XG5cbiAgY29uc3QgY29sbGVjdGlvbkZpZWxkcyA9IGdldENvbGxlY3Rpb25GaWVsZHMoe1xuICAgIHNjaGVtYTogb3JnYW5pemF0aW9uU2NoZW1hLFxuICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmaWVsZE92ZXJyaWRlc1xuICB9KTtcblxuICBjb25zdCBqb2luRmllbGRzOiBKb2luRmllbGRbXSA9IFtcbiAgICB7XG4gICAgICBsYWJlbDogXCJNZW1iZXJzXCIsXG4gICAgICBuYW1lOiBiYU1vZGVsS2V5Lm1lbWJlcixcbiAgICAgIHR5cGU6IFwiam9pblwiLFxuICAgICAgaGFzTWFueTogdHJ1ZSxcbiAgICAgIGNvbGxlY3Rpb246IG1lbWJlclNsdWcsXG4gICAgICBvbjogZ2V0U2NoZW1hRmllbGROYW1lKFxuICAgICAgICByZXNvbHZlZFNjaGVtYXMsXG4gICAgICAgIGJhTW9kZWxLZXkubWVtYmVyLFxuICAgICAgICBiYU1vZGVsRmllbGRLZXlzLm1lbWJlci5vcmdhbml6YXRpb25JZFxuICAgICAgKSxcbiAgICAgIG1heERlcHRoOiAxLFxuICAgICAgc2F2ZVRvSldUOiBmYWxzZVxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6IFwiSW52aXRhdGlvbnNcIixcbiAgICAgIG5hbWU6IGJhTW9kZWxLZXkuaW52aXRhdGlvbixcbiAgICAgIHR5cGU6IFwiam9pblwiLFxuICAgICAgaGFzTWFueTogdHJ1ZSxcbiAgICAgIGNvbGxlY3Rpb246IGludml0YXRpb25TbHVnLFxuICAgICAgb246IGdldFNjaGVtYUZpZWxkTmFtZShcbiAgICAgICAgcmVzb2x2ZWRTY2hlbWFzLFxuICAgICAgICBiYU1vZGVsS2V5Lmludml0YXRpb24sXG4gICAgICAgIGJhTW9kZWxGaWVsZEtleXMuaW52aXRhdGlvbi5vcmdhbml6YXRpb25JZFxuICAgICAgKSxcbiAgICAgIG1heERlcHRoOiAxLFxuICAgICAgc2F2ZVRvSldUOiBmYWxzZVxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6IFwiVGVhbXNcIixcbiAgICAgIG5hbWU6IGJhTW9kZWxLZXkudGVhbSxcbiAgICAgIHR5cGU6IFwiam9pblwiLFxuICAgICAgaGFzTWFueTogdHJ1ZSxcbiAgICAgIGNvbGxlY3Rpb246IHRlYW1TbHVnLFxuICAgICAgb246IGdldFNjaGVtYUZpZWxkTmFtZShcbiAgICAgICAgcmVzb2x2ZWRTY2hlbWFzLFxuICAgICAgICBiYU1vZGVsS2V5LnRlYW0sXG4gICAgICAgIGJhTW9kZWxGaWVsZEtleXMudGVhbS5vcmdhbml6YXRpb25JZFxuICAgICAgKSxcbiAgICAgIG1heERlcHRoOiAxLFxuICAgICAgc2F2ZVRvSldUOiBmYWxzZVxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6IFwiT3JnYW5pemF0aW9uIFJvbGVzXCIsXG4gICAgICBuYW1lOiBiYU1vZGVsS2V5Lm9yZ2FuaXphdGlvblJvbGUsXG4gICAgICB0eXBlOiBcImpvaW5cIixcbiAgICAgIGhhc01hbnk6IHRydWUsXG4gICAgICBjb2xsZWN0aW9uOiBvcmdhbml6YXRpb25Sb2xlU2x1ZyxcbiAgICAgIG9uOiBnZXRTY2hlbWFGaWVsZE5hbWUoXG4gICAgICAgIHJlc29sdmVkU2NoZW1hcyxcbiAgICAgICAgYmFNb2RlbEtleS5vcmdhbml6YXRpb25Sb2xlLFxuICAgICAgICBiYU1vZGVsRmllbGRLZXlzLm9yZ2FuaXphdGlvblJvbGUub3JnYW5pemF0aW9uSWRcbiAgICAgICksXG4gICAgICBtYXhEZXB0aDogMSxcbiAgICAgIHNhdmVUb0pXVDogZmFsc2VcbiAgICB9XG4gIF07XG5cbiAgbGV0IG9yZ2FuaXphdGlvbkNvbGxlY3Rpb246IENvbGxlY3Rpb25Db25maWcgPSB7XG4gICAgLi4uZXhpc3RpbmdPcmdhbml6YXRpb25Db2xsZWN0aW9uLFxuICAgIHNsdWc6IG9yZ2FuaXphdGlvblNsdWcsXG4gICAgYWRtaW46IHtcbiAgICAgIGhpZGRlbjogcGx1Z2luT3B0aW9ucy5oaWRlUGx1Z2luQ29sbGVjdGlvbnMgPz8gZmFsc2UsXG4gICAgICB1c2VBc1RpdGxlOiBnZXRTY2hlbWFGaWVsZE5hbWUoXG4gICAgICAgIHJlc29sdmVkU2NoZW1hcyxcbiAgICAgICAgYmFNb2RlbEtleS5vcmdhbml6YXRpb24sXG4gICAgICAgIFwibmFtZVwiXG4gICAgICApLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiT3JnYW5pemF0aW9ucyBhcmUgZ3JvdXBzIG9mIHVzZXJzIHRoYXQgc2hhcmUgYWNjZXNzIHRvIGNlcnRhaW4gcmVzb3VyY2VzLlwiLFxuICAgICAgZ3JvdXA6IHBsdWdpbk9wdGlvbnM/LmNvbGxlY3Rpb25BZG1pbkdyb3VwID8/IFwiQXV0aFwiLFxuICAgICAgLi4uZXhpc3RpbmdPcmdhbml6YXRpb25Db2xsZWN0aW9uPy5hZG1pblxuICAgIH0sXG4gICAgYWNjZXNzOiB7XG4gICAgICAuLi5nZXRBZG1pbkFjY2VzcyhwbHVnaW5PcHRpb25zKSxcbiAgICAgIC4uLihleGlzdGluZ09yZ2FuaXphdGlvbkNvbGxlY3Rpb24/LmFjY2VzcyA/PyB7fSlcbiAgICB9LFxuICAgIGN1c3RvbToge1xuICAgICAgLi4uKGV4aXN0aW5nT3JnYW5pemF0aW9uQ29sbGVjdGlvbj8uY3VzdG9tID8/IHt9KSxcbiAgICAgIGJldHRlckF1dGhNb2RlbEtleTogYmFNb2RlbEtleS5vcmdhbml6YXRpb25cbiAgICB9LFxuICAgIGZpZWxkczogW1xuICAgICAgLi4uKGV4aXN0aW5nT3JnYW5pemF0aW9uQ29sbGVjdGlvbj8uZmllbGRzID8/IFtdKSxcbiAgICAgIC4uLihjb2xsZWN0aW9uRmllbGRzID8/IFtdKSxcbiAgICAgIC4uLmpvaW5GaWVsZHNcbiAgICBdXG4gIH07XG5cbiAgaWYgKFxuICAgIHR5cGVvZiBwbHVnaW5PcHRpb25zLnBsdWdpbkNvbGxlY3Rpb25PdmVycmlkZXM/Lm9yZ2FuaXphdGlvbnMgPT09IFwiZnVuY3Rpb25cIlxuICApIHtcbiAgICBvcmdhbml6YXRpb25Db2xsZWN0aW9uID1cbiAgICAgIHBsdWdpbk9wdGlvbnMucGx1Z2luQ29sbGVjdGlvbk92ZXJyaWRlcy5vcmdhbml6YXRpb25zKHtcbiAgICAgICAgY29sbGVjdGlvbjogb3JnYW5pemF0aW9uQ29sbGVjdGlvblxuICAgICAgfSk7XG4gIH1cblxuICBhc3NlcnRBbGxTY2hlbWFGaWVsZHMob3JnYW5pemF0aW9uQ29sbGVjdGlvbiwgb3JnYW5pemF0aW9uU2NoZW1hKTtcblxuICByZXR1cm4gb3JnYW5pemF0aW9uQ29sbGVjdGlvbjtcbn1cbiJdLCJuYW1lcyI6WyJiYU1vZGVsRmllbGRLZXlzIiwiYmFNb2RlbEtleSIsImdldEFkbWluQWNjZXNzIiwiYXNzZXJ0QWxsU2NoZW1hRmllbGRzIiwiZ2V0U2NoZW1hQ29sbGVjdGlvblNsdWciLCJnZXRTY2hlbWFGaWVsZE5hbWUiLCJnZXRDb2xsZWN0aW9uRmllbGRzIiwiYnVpbGRPcmdhbml6YXRpb25zQ29sbGVjdGlvbiIsImluY29taW5nQ29sbGVjdGlvbnMiLCJwbHVnaW5PcHRpb25zIiwicmVzb2x2ZWRTY2hlbWFzIiwib3JnYW5pemF0aW9uU2x1ZyIsIm9yZ2FuaXphdGlvbiIsIm9yZ2FuaXphdGlvblNjaGVtYSIsIm9yZ2FuaXphdGlvblJvbGVTbHVnIiwib3JnYW5pemF0aW9uUm9sZSIsIm1lbWJlclNsdWciLCJtZW1iZXIiLCJpbnZpdGF0aW9uU2x1ZyIsImludml0YXRpb24iLCJ0ZWFtU2x1ZyIsInRlYW0iLCJ0ZWFtTWVtYmVyU2x1ZyIsInRlYW1NZW1iZXIiLCJzY2ltUHJvdmlkZXJTbHVnIiwic2NpbVByb3ZpZGVyIiwiZXhpc3RpbmdPcmdhbml6YXRpb25Db2xsZWN0aW9uIiwiZmluZCIsImNvbGxlY3Rpb24iLCJzbHVnIiwiZmllbGRPdmVycmlkZXMiLCJuYW1lIiwiYWRtaW4iLCJkZXNjcmlwdGlvbiIsInVuaXF1ZSIsImluZGV4IiwibG9nbyIsIm1ldGFkYXRhIiwiY29sbGVjdGlvbkZpZWxkcyIsInNjaGVtYSIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwiam9pbkZpZWxkcyIsImxhYmVsIiwidHlwZSIsImhhc01hbnkiLCJvbiIsIm9yZ2FuaXphdGlvbklkIiwibWF4RGVwdGgiLCJzYXZlVG9KV1QiLCJvcmdhbml6YXRpb25Db2xsZWN0aW9uIiwiaGlkZGVuIiwiaGlkZVBsdWdpbkNvbGxlY3Rpb25zIiwidXNlQXNUaXRsZSIsImdyb3VwIiwiY29sbGVjdGlvbkFkbWluR3JvdXAiLCJhY2Nlc3MiLCJjdXN0b20iLCJiZXR0ZXJBdXRoTW9kZWxLZXkiLCJmaWVsZHMiLCJwbHVnaW5Db2xsZWN0aW9uT3ZlcnJpZGVzIiwib3JnYW5pemF0aW9ucyJdLCJtYXBwaW5ncyI6IkFBTUEsU0FBU0EsZ0JBQWdCLEVBQUVDLFVBQVUsUUFBUSxrQkFBa0I7QUFDL0QsU0FBU0MsY0FBYyxRQUFRLGlDQUFpQztBQUNoRSxTQUNFQyxxQkFBcUIsRUFDckJDLHVCQUF1QixFQUN2QkMsa0JBQWtCLFFB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
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL29yZ2FuaXphdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uQ29uZmlnLCBKb2luRmllbGQgfSBmcm9tIFwicGF5bG9hZFwiO1xuaW1wb3J0IHR5cGUgeyBPcmdhbml6YXRpb24gfSBmcm9tIFwiQC9iZXR0ZXItYXV0aC9nZW5lcmF0ZWQtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHtcbiAgQnVpbGRDb2xsZWN0aW9uUHJvcHMsXG4gIEZpZWxkT3ZlcnJpZGVzXG59IGZyb20gXCJAL2JldHRlci1hdXRoL3BsdWdpbi90eXBlc1wiO1xuaW1wb3J0IHsgYmFNb2RlbEZpZWxkS2V5cywgYmFNb2RlbEtleSB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGdldEFkbWluQWNjZXNzIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvZ2V0LWFkbWluLWFjY2Vzc1wiO1xuaW1wb3J0IHtcbiAgYXNzZXJ0QWxsU2NoZW1hRmllbGRzLFxuICBnZXRTY2hlbWFDb2xsZWN0aW9uU2x1ZyxcbiAgZ2V0U2NoZW1hRmllbGROYW1lXG59IGZyb20gXCIuL3V0aWxzL2NvbGxlY3Rpb24tc2NoZW1hXCI7XG5pbXBvcnQgeyBnZXRDb2xsZWN0aW9uRmllbGRzIH0gZnJvbSBcIi4vdXRpbHMvdHJhbnNmb3JtLXNjaGVtYS1maWVsZHMtdG8tcGF5bG9hZFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRPcmdhbml6YXRpb25zQ29sbGVjdGlvbih7XG4gIGluY29taW5nQ29sbGVjdGlvbnMsXG4gIHBsdWdpbk9wdGlvbnMsXG4gIHJlc29sdmVkU2NoZW1hc1xufTogQnVpbGRDb2xsZWN0aW9uUHJvcHMpOiBDb2xsZWN0aW9uQ29uZmlnIHtcbiAgY29uc3Qgb3JnYW5pemF0aW9uU2x1ZyA9IGdldFNjaGVtYUNvbGxlY3Rpb25TbHVnKFxuICAgIHJlc29sdmVkU2NoZW1hcyxcbiAgICBiYU1vZGVsS2V5Lm9yZ2FuaXphdGlvblxuICApO1xuICBjb25zdCBvcmdhbml6YXRpb25TY2hlbWEgPSByZXNvbHZlZFNjaGVtYXNbYmFNb2RlbEtleS5vcmdhbml6YXRpb25dO1xuXG4gIGNvbnN0IG9yZ2FuaXphdGlvblJvbGVTbHVnID0gZ2V0U2NoZW1hQ29sbGVjdGlvblNsdWcoXG4gICAgcmVzb2x2ZWRTY2hlbWFzLFxuICAgIGJhTW9kZWxLZXkub3JnYW5pemF0aW9uUm9sZVxuICApO1xuICBjb25zdCBtZW1iZXJTbHVnID0gZ2V0U2NoZW1hQ29sbGVjdGlvblNsdWcoXG4gICAgcmVzb2x2ZWRTY2hlbWFzLFxuICAgIGJhTW9kZWxLZXkubWVtYmVyXG4gICk7XG4gIGNvbnN0IGludml0YXRpb25TbHVnID0gZ2V0U2NoZW1hQ29sbGVjdGlvblNsdWcoXG4gICAgcmVzb2x2ZWRTY2hlbWFzLFxuICAgIGJhTW9kZWxLZXkuaW52aXRhdGlvblxuICApO1xuICBjb25zdCB0ZWFtU2x1ZyA9IGdldFNjaGVtYUNvbGxlY3Rpb25TbHVnKHJlc29sdmVkU2NoZW1hcywgYmFNb2RlbEtleS50ZWFtKTtcblxuXG4gIGNvbnN0IGV4aXN0aW5nT3JnYW5pemF0aW9uQ29sbGVjdGlvbiA9IGluY29taW5nQ29sbGVjdGlvbnMuZmluZChcbiAgICAoY29sbGVjdGlvbikgPT4gY29sbGVjdGlvbi5zbHVnID09PSBvcmdhbml6YXRpb25TbHVnXG4gICkgYXMgQ29sbGVjdGlvbkNvbmZpZyB8IHVuZGVmaW5lZDtcblxuICBjb25zdCBmaWVsZE92ZXJyaWRlczogRmllbGRPdmVycmlkZXM8a2V5b2YgT3JnYW5pemF0aW9uPiA9IHtcbiAgICBuYW1lOiAoKSA9PiAoe1xuICAgICAgYWRtaW46IHsgZGVzY3JpcHRpb246IFwiVGhlIG5hbWUgb2YgdGhlIG9yZ2FuaXphdGlvbi5cIiB9XG4gICAgfSksXG4gICAgc2x1ZzogKCkgPT4gKHtcbiAgICAgIHVuaXF1ZTogdHJ1ZSxcbiAgICAgIGluZGV4OiB0cnVlLFxuICAgICAgYWRtaW46IHsgZGVzY3JpcHRpb246IFwiVGhlIHNsdWcgb2YgdGhlIG9yZ2FuaXphdGlvbi5cIiB9XG4gICAgfSksXG4gICAgbG9nbzogKCkgPT4gKHtcbiAgICAgIGFkbWluOiB7IGRlc2NyaXB0aW9uOiBcIlRoZSBsb2dvIG9mIHRoZSBvcmdhbml6YXRpb24uXCIgfVxuICAgIH0pLFxuICAgIG1ldGFkYXRhOiAoKSA9PiAoe1xuICAgICAgYWRtaW46IHsgZGVzY3JpcHRpb246IFwiQWRkaXRpb25hbCBtZXRhZGF0YSBmb3IgdGhlIG9yZ2FuaXphdGlvbi5cIiB9XG4gICAgfSlcbiAgfTtcblxuICBjb25zdCBjb2xsZWN0aW9uRmllbGRzID0gZ2V0Q29sbGVjdGlvbkZpZWxkcyh7XG4gICAgc2NoZW1hOiBvcmdhbml6YXRpb25TY2hlbWEsXG4gICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZpZWxkT3ZlcnJpZGVzXG4gIH0pO1xuXG4gIGNvbnN0IGpvaW5GaWVsZHM6IEpvaW5GaWVsZFtdID0gW1xuICAgIHtcbiAgICAgIGxhYmVsOiBcIk1lbWJlcnNcIixcbiAgICAgIG5hbWU6IGJhTW9kZWxLZXkubWVtYmVyLFxuICAgICAgdHlwZTogXCJqb2luXCIsXG4gICAgICBoYXNNYW55OiB0cnVlLFxuICAgICAgY29sbGVjdGlvbjogbWVtYmVyU2x1ZyxcbiAgICAgIG9uOiBnZXRTY2hlbWFGaWVsZE5hbWUoXG4gICAgICAgIHJlc29sdmVkU2NoZW1hcyxcbiAgICAgICAgYmFNb2RlbEtleS5tZW1iZXIsXG4gICAgICAgIGJhTW9kZWxGaWVsZEtleXMubWVtYmVyLm9yZ2FuaXphdGlvbklkXG4gICAgICApLFxuICAgICAgbWF4RGVwdGg6IDEsXG4gICAgICBzYXZlVG9KV1Q6IGZhbHNlXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogXCJJbnZpdGF0aW9uc1wiLFxuICAgICAgbmFtZTogYmFNb2RlbEtleS5pbnZpdGF0aW9uLFxuICAgICAgdHlwZTogXCJqb2luXCIsXG4gICAgICBoYXNNYW55OiB0cnVlLFxuICAgICAgY29sbGVjdGlvbjogaW52aXRhdGlvblNsdWcsXG4gICAgICBvbjogZ2V0U2NoZW1hRmllbGROYW1lKFxuICAgICAgICByZXNvbHZlZFNjaGVtYXMsXG4gICAgICAgIGJhTW9kZWxLZXkuaW52aXRhdGlvbixcbiAgICAgICAgYmFNb2RlbEZpZWxkS2V5cy5pbnZpdGF0aW9uLm9yZ2FuaXphdGlvbklkXG4gICAgICApLFxuICAgICAgbWF4RGVwdGg6IDEsXG4gICAgICBzYXZlVG9KV1Q6IGZhbHNlXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogXCJPcmdhbml6YXRpb24gUm9sZXNcIixcbiAgICAgIG5hbWU6IGJhTW9kZWxLZXkub3JnYW5pemF0aW9uUm9sZSxcbiAgICAgIHR5cGU6IFwiam9pblwiLFxuICAgICAgaGFzTWFueTogdHJ1ZSxcbiAgICAgIGNvbGxlY3Rpb246IG9yZ2FuaXphdGlvblJvbGVTbHVnLFxuICAgICAgb246IGdldFNjaGVtYUZpZWxkTmFtZShcbiAgICAgICAgcmVzb2x2ZWRTY2hlbWFzLFxuICAgICAgICBiYU1vZGVsS2V5Lm9yZ2FuaXphdGlvblJvbGUsXG4gICAgICAgIGJhTW9kZWxGaWVsZEtleXMub3JnYW5pemF0aW9uUm9sZS5vcmdhbml6YXRpb25JZFxuICAgICAgKSxcbiAgICAgIG1heERlcHRoOiAxLFxuICAgICAgc2F2ZVRvSldUOiBmYWxzZVxuICAgIH1cbiAgXTtcblxuICBsZXQgb3JnYW5pemF0aW9uQ29sbGVjdGlvbjogQ29sbGVjdGlvbkNvbmZpZyA9IHtcbiAgICAuLi5leGlzdGluZ09yZ2FuaXphdGlvbkNvbGxlY3Rpb24sXG4gICAgc2x1Zzogb3JnYW5pemF0aW9uU2x1ZyxcbiAgICBhZG1pbjoge1xuICAgICAgaGlkZGVuOiBwbHVnaW5PcHRpb25zLmhpZGVQbHVnaW5Db2xsZWN0aW9ucyA/PyBmYWxzZSxcbiAgICAgIHVzZUFzVGl0bGU6IGdldFNjaGVtYUZpZWxkTmFtZShcbiAgICAgICAgcmVzb2x2ZWRTY2hlbWFzLFxuICAgICAgICBiYU1vZGVsS2V5Lm9yZ2FuaXphdGlvbixcbiAgICAgICAgXCJuYW1lXCJcbiAgICAgICksXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJPcmdhbml6YXRpb25zIGFyZSBncm91cHMgb2YgdXNlcnMgdGhhdCBzaGFyZSBhY2Nlc3MgdG8gY2VydGFpbiByZXNvdXJjZXMuXCIsXG4gICAgICBncm91cDogcGx1Z2luT3B0aW9ucz8uY29sbGVjdGlvbkFkbWluR3JvdXAgPz8gXCJBdXRoXCIsXG4gICAgICAuLi5leGlzdGluZ09yZ2FuaXphdGlvbkNvbGxlY3Rpb24/LmFkbWluXG4gICAgfSxcbiAgICBhY2Nlc3M6IHtcbiAgICAgIC4uLmdldEFkbWluQWNjZXNzKHBsdWdpbk9wdGlvbnMpLFxuICAgICAgLi4uKGV4aXN0aW5nT3JnYW5pemF0aW9uQ29sbGVjdGlvbj8uYWNjZXNzID8/IHt9KVxuICAgIH0sXG4gICAgY3VzdG9tOiB7XG4gICAgICAuLi4oZXhpc3RpbmdPcmdhbml6YXRpb25Db2xsZWN0aW9uPy5jdXN0b20gPz8ge30pLFxuICAgICAgYmV0dGVyQXV0aE1vZGVsS2V5OiBiYU1vZGVsS2V5Lm9yZ2FuaXphdGlvblxuICAgIH0sXG4gICAgZmllbGRzOiBbXG4gICAgICAuLi4oZXhpc3RpbmdPcmdhbml6YXRpb25Db2xsZWN0aW9uPy5maWVsZHMgPz8gW10pLFxuICAgICAgLi4uKGNvbGxlY3Rpb25GaWVsZHMgPz8gW10pLFxuICAgICAgLi4uam9pbkZpZWxkc1xuICAgIF1cbiAgfTtcblxuICBpZiAoXG4gICAgdHlwZW9mIHBsdWdpbk9wdGlvbnMucGx1Z2luQ29sbGVjdGlvbk92ZXJyaWRlcz8ub3JnYW5pemF0aW9ucyA9PT0gXCJmdW5jdGlvblwiXG4gICkge1xuICAgIG9yZ2FuaXphdGlvbkNvbGxlY3Rpb24gPVxuICAgICAgcGx1Z2luT3B0aW9ucy5wbHVnaW5Db2xsZWN0aW9uT3ZlcnJpZGVzLm9yZ2FuaXphdGlvbnMoe1xuICAgICAgICBjb2xsZWN0aW9uOiBvcmdhbml6YXRpb25Db2xsZWN0aW9uXG4gICAgICB9KTtcbiAgfVxuXG4gIGFzc2VydEFsbFNjaGVtYUZpZWxkcyhvcmdhbml6YXRpb25Db2xsZWN0aW9uLCBvcmdhbml6YXRpb25TY2hlbWEpO1xuXG4gIHJldHVybiBvcmdhbml6YXRpb25Db2xsZWN0aW9uO1xufVxuIl0sIm5hbWVzIjpbImJhTW9kZWxGaWVsZEtleXMiLCJiYU1vZGVsS2V5IiwiZ2V0QWRtaW5BY2Nlc3MiLCJhc3NlcnRBbGxTY2hlbWFGaWVsZHMiLCJnZXRTY2hlbWFDb2xsZWN0aW9uU2x1ZyIsImdldFNjaGVtYUZpZWxkTmFtZSIsImdldENvbGxlY3Rpb25GaWVsZHMiLCJidWlsZE9yZ2FuaXphdGlvbnNDb2xsZWN0aW9uIiwiaW5jb21pbmdDb2xsZWN0aW9ucyIsInBsdWdpbk9wdGlvbnMiLCJyZXNvbHZlZFNjaGVtYXMiLCJvcmdhbml6YXRpb25TbHVnIiwib3JnYW5pemF0aW9uIiwib3JnYW5pemF0aW9uU2NoZW1hIiwib3JnYW5pemF0aW9uUm9sZVNsdWciLCJvcmdhbml6YXRpb25Sb2xlIiwibWVtYmVyU2x1ZyIsIm1lbWJlciIsImludml0YXRpb25TbHVnIiwiaW52aXRhdGlvbiIsInRlYW1TbHVnIiwidGVhbSIsImV4aXN0aW5nT3JnYW5pemF0aW9uQ29sbGVjdGlvbiIsImZpbmQiLCJjb2xsZWN0aW9uIiwic2x1ZyIsImZpZWxkT3ZlcnJpZGVzIiwibmFtZSIsImFkbWluIiwiZGVzY3JpcHRpb24iLCJ1bmlxdWUiLCJpbmRleCIsImxvZ28iLCJtZXRhZGF0YSIsImNvbGxlY3Rpb25GaWVsZHMiLCJzY2hlbWEiLCJhZGRpdGlvbmFsUHJvcGVydGllcyIsImpvaW5GaWVsZHMiLCJsYWJlbCIsInR5cGUiLCJoYXNNYW55Iiwib24iLCJvcmdhbml6YXRpb25JZCIsIm1heERlcHRoIiwic2F2ZVRvSldUIiwib3JnYW5pemF0aW9uQ29sbGVjdGlvbiIsImhpZGRlbiIsImhpZGVQbHVnaW5Db2xsZWN0aW9ucyIsInVzZUFzVGl0bGUiLCJncm91cCIsImNvbGxlY3Rpb25BZG1pbkdyb3VwIiwiYWNjZXNzIiwiY3VzdG9tIiwiYmV0dGVyQXV0aE1vZGVsS2V5IiwiZmllbGRzIiwicGx1Z2luQ29sbGVjdGlvbk92ZXJyaWRlcyIsIm9yZ2FuaXphdGlvbnMiXSwibWFwcGluZ3MiOiJBQU1BLFNBQVNBLGdCQUFnQixFQUFFQyxVQUFVLFFBQVEsa0JBQWtCO0FBQy9ELFNBQVNDLGNBQWMsUUFBUSxpQ0FBaUM7QUFDaEUsU0FDRUMscUJBQXFCLEVBQ3JCQyx1QkFBdUIsRUFDdkJDLGtCQUFrQixRQUNiLDRCQUE0QjtBQUNuQyxTQUFTQyxtQkFBbUIsUUFBUSw2Q0FBNkM7QUFFakYsT0FBTyxTQUFTQyw2QkFBNkIsRUFDM0NDLG1CQUFtQixFQUNuQkMsYUFBYSxFQUNiQyxlQUFlLEVBQ007SUFDckIsTUFBTUMsbUJBQW1CUCx3QkFDdkJNLGlCQUNBVCxXQUFXVyxZQUFZO0lBRXpCLE1BQU1DLHFCQUFxQkgsZUFBZSxDQUFDVCxXQUFXVyxZQUFZLENBQUM7SUFFbkUsTUFBTUUsdUJBQXVCVix3QkFDM0JNLGlCQUNBVCxXQUFXYyxnQkFBZ0I7SUFFN0IsTUFBTUMsYUFBYVosd0JBQ2pCTSxpQkFDQVQsV0FBV2dCLE1BQU07SUFFbkIsTUFBTUMsaUJBQWlCZCx3QkFDckJNLGlCQUNBVCxXQUFXa0IsVUFBVTtJQUV2QixNQUFNQyxXQUFXaEIsd0JBQXdCTSxpQkFBaUJULFdBQVdvQixJQUFJO0lBR3pFLE1BQU1DLGlDQUFpQ2Qsb0JBQW9CZSxJQUFJLENBQzdELENBQUNDLGFBQWVBLFdBQVdDLElBQUksS0FBS2Q7SUFHdEMsTUFBTWUsaUJBQXFEO1FBQ3pEQyxNQUFNLElBQU8sQ0FBQTtnQkFDWEMsT0FBTztvQkFBRUMsYUFBYTtnQkFBZ0M7WUFDeEQsQ0FBQTtRQUNBSixNQUFNLElBQU8sQ0FBQTtnQkFDWEssUUFBUTtnQkFDUkMsT0FBTztnQkFDUEgsT0FBTztvQkFBRUMsYUFBYTtnQkFBZ0M7WUFDeEQsQ0FBQTtRQUNBRyxNQUFNLElBQU8sQ0FBQTtnQkFDWEosT0FBTztvQkFBRUMsYUFBYTtnQkFBZ0M7WUFDeEQsQ0FBQTtRQUNBSSxVQUFVLElBQU8sQ0FBQTtnQkFDZkwsT0FBTztvQkFBRUMsYUFBYTtnQkFBNEM7WUFDcEUsQ0FBQTtJQUNGO0lBRUEsTUFBTUssbUJBQW1CNUIsb0JBQW9CO1FBQzNDNkIsUUFBUXRCO1FBQ1J1QixzQkFBc0JWO0lBQ3hCO0lBRUEsTUFBTVcsYUFBMEI7UUFDOUI7WUFDRUMsT0FBTztZQUNQWCxNQUFNMUIsV0FBV2dCLE1BQU07WUFDdkJzQixNQUFNO1lBQ05DLFNBQVM7WUFDVGhCLFlBQVlSO1lBQ1p5QixJQUFJcEMsbUJBQ0ZLLGlCQUNBVCxXQUFXZ0IsTUFBTSxFQUNqQmpCLGlCQUFpQmlCLE1BQU0sQ0FBQ3lCLGNBQWM7WUFFeENDLFVBQVU7WUFDVkMsV0FBVztRQUNiO1FBQ0E7WUFDRU4sT0FBTztZQUNQWCxNQUFNMUIsV0FBV2tCLFVBQVU7WUFDM0JvQixNQUFNO1lBQ05DLFNBQVM7WUFDVGhCLFlBQVlOO1lBQ1p1QixJQUFJcEMsbUJBQ0ZLLGlCQUNBVCxXQUFXa0IsVUFBVSxFQUNyQm5CLGlCQUFpQm1CLFVBQVUsQ0FBQ3VCLGNBQWM7WUFFNUNDLFVBQVU7WUFDVkMsV0FBVztRQUNiO1FBQ0E7WUFDRU4sT0FBTztZQUNQWCxNQUFNMUIsV0FBV2MsZ0JBQWdCO1lBQ2pDd0IsTUFBTTtZQUNOQyxTQUFTO1lBQ1RoQixZQUFZVjtZQUNaMkIsSUFBSXBDLG1CQUNGSyxpQkFDQVQsV0FBV2MsZ0JBQWdCLEVBQzNCZixpQkFBaUJlLGdCQUFnQixDQUFDMkIsY0FBYztZQUVsREMsVUFBVTtZQUNWQyxXQUFXO1FBQ2I7S0FDRDtJQUVELElBQUlDLHlCQUEyQztRQUM3QyxHQUFHdkIsOEJBQThCO1FBQ2pDRyxNQUFNZDtRQUNOaUIsT0FBTztZQUNMa0IsUUFBUXJDLGNBQWNzQyxxQkFBcUIsSUFBSTtZQUMvQ0MsWUFBWTNDLG1CQUNWSyxpQkFDQVQsV0FBV1csWUFBWSxFQUN2QjtZQUVGaUIsYUFDRTtZQUNGb0IsT0FBT3hDLGVBQWV5Qyx3QkFBd0I7WUFDOUMsR0FBRzVCLGdDQUFnQ00sS0FBSztRQUMxQztRQUNBdUIsUUFBUTtZQUNOLEdBQUdqRCxlQUFlTyxjQUFjO1lBQ2hDLEdBQUlhLGdDQUFnQzZCLFVBQVUsQ0FBQyxDQUFDO1FBQ2xEO1FBQ0FDLFFBQVE7WUFDTixHQUFJOUIsZ0NBQWdDOEIsVUFBVSxDQUFDLENBQUM7WUFDaERDLG9CQUFvQnBELFdBQVdXLFlBQVk7UUFDN0M7UUFDQTBDLFFBQVE7ZUFDRmhDLGdDQUFnQ2dDLFVBQVUsRUFBRTtlQUM1Q3BCLG9CQUFvQixFQUFFO2VBQ3ZCRztTQUNKO0lBQ0g7SUFFQSxJQUNFLE9BQU81QixjQUFjOEMseUJBQXlCLEVBQUVDLGtCQUFrQixZQUNsRTtRQUNBWCx5QkFDRXBDLGNBQWM4Qyx5QkFBeUIsQ0FBQ0MsYUFBYSxDQUFDO1lBQ3BEaEMsWUFBWXFCO1FBQ2Q7SUFDSjtJQUVBMUMsc0JBQXNCMEMsd0JBQXdCaEM7SUFFOUMsT0FBT2dDO0FBQ1QifQ==
|