@cdktn/hcl2cdk 0.24.0-pre.5 → 0.24.0-pre.50

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.
Files changed (83) hide show
  1. package/.spec.swcrc +22 -0
  2. package/LICENSE +355 -0
  3. package/README.md +1 -1
  4. package/build/__tests__/jsii-rosetta-workarounds.test.js +2 -2
  5. package/build/expressions.js +3 -4
  6. package/build/function-bindings/functions.generated.js +2 -2
  7. package/build/generation.js +2 -2
  8. package/build/index.d.ts +20 -20
  9. package/build/index.js +4 -4
  10. package/build/references.js +2 -3
  11. package/build/schema.d.ts +60 -60
  12. package/build/utils.d.ts +1 -1
  13. package/build/utils.js +3 -3
  14. package/jest.config.js +18 -11
  15. package/package.json +37 -25
  16. package/package.sh +1 -1
  17. package/src/__tests__/coerceType.test.ts +207 -0
  18. package/src/__tests__/expressionToTs.test.ts +1167 -0
  19. package/src/__tests__/expressions.test.ts +541 -0
  20. package/src/__tests__/findExpressionType.test.ts +112 -0
  21. package/src/__tests__/functions.test.ts +768 -0
  22. package/src/__tests__/generation.test.ts +72 -0
  23. package/src/__tests__/jsii-rosetta-workarounds.test.ts +145 -0
  24. package/src/__tests__/partialCode.test.ts +432 -0
  25. package/src/__tests__/terraformSchema.test.ts +107 -0
  26. package/src/__tests__/testHelpers.ts +11 -0
  27. package/src/coerceType.ts +261 -0
  28. package/src/dynamic-blocks.ts +61 -0
  29. package/src/expressions.ts +968 -0
  30. package/src/function-bindings/functions.generated.ts +1139 -0
  31. package/src/function-bindings/functions.ts +104 -0
  32. package/src/generation.ts +1189 -0
  33. package/src/index.ts +584 -0
  34. package/src/iteration.ts +156 -0
  35. package/src/jsii-rosetta-workarounds.ts +145 -0
  36. package/src/partialCode.ts +132 -0
  37. package/src/provider.ts +60 -0
  38. package/src/references.ts +193 -0
  39. package/src/schema.ts +74 -0
  40. package/src/terraformSchema.ts +182 -0
  41. package/src/types.ts +58 -0
  42. package/src/utils.ts +19 -0
  43. package/src/variables.ts +214 -0
  44. package/test/__snapshots__/backends.test.ts.snap +70 -0
  45. package/test/__snapshots__/externals.test.ts.snap +37 -0
  46. package/test/__snapshots__/granular-imports.test.ts.snap +180 -0
  47. package/test/__snapshots__/imports.test.ts.snap +159 -0
  48. package/test/__snapshots__/iteration.test.ts.snap +532 -0
  49. package/test/__snapshots__/jsiiLanguage.test.ts.snap +347 -0
  50. package/test/__snapshots__/locals.test.ts.snap +55 -0
  51. package/test/__snapshots__/modules.test.ts.snap +127 -0
  52. package/test/__snapshots__/outputs.test.ts.snap +77 -0
  53. package/test/__snapshots__/partialCode.test.ts.snap +120 -0
  54. package/test/__snapshots__/provider.test.ts.snap +128 -0
  55. package/test/__snapshots__/references.test.ts.snap +376 -0
  56. package/test/__snapshots__/resource-meta-properties.test.ts.snap +342 -0
  57. package/test/__snapshots__/resources.test.ts.snap +613 -0
  58. package/test/__snapshots__/tfExpressions.test.ts.snap +537 -0
  59. package/test/__snapshots__/typeCoercion.test.ts.snap +253 -0
  60. package/test/__snapshots__/variables.test.ts.snap +150 -0
  61. package/test/backends.test.ts +75 -0
  62. package/test/convertProject.test.ts +257 -0
  63. package/test/externals.test.ts +35 -0
  64. package/test/globalSetup.ts +224 -0
  65. package/test/globalTeardown.ts +11 -0
  66. package/test/granular-imports.test.ts +161 -0
  67. package/test/hcl2cdk.test.ts +88 -0
  68. package/test/helpers/convert.ts +543 -0
  69. package/test/helpers/tmp.ts +25 -0
  70. package/test/imports.test.ts +141 -0
  71. package/test/iteration.test.ts +342 -0
  72. package/test/jsiiLanguage.test.ts +73 -0
  73. package/test/locals.test.ts +47 -0
  74. package/test/modules.test.ts +143 -0
  75. package/test/outputs.test.ts +69 -0
  76. package/test/partialCode.test.ts +25 -0
  77. package/test/provider.test.ts +106 -0
  78. package/test/references.test.ts +287 -0
  79. package/test/resource-meta-properties.test.ts +288 -0
  80. package/test/resources.test.ts +551 -0
  81. package/test/tfExpressions.test.ts +300 -0
  82. package/test/typeCoercion.test.ts +154 -0
  83. package/test/variables.test.ts +96 -0
@@ -82,8 +82,7 @@ function canUseFqn(expression) {
82
82
  }
83
83
  function traversalToVariableName(scope, node) {
84
84
  if (!hcl2json_2.TFExpressionSyntaxTree.isScopeTraversalExpression(node)) {
85
- utils_1.logger.error(`Unexpected expression type ${node.type} with value ${node.meta.value} passed to convert to a variable.
86
- ${utils_1.leaveCommentText}`);
85
+ utils_1.logger.error(`Unexpected expression type ${node.type} with value ${node.meta.value} passed to convert to a variable. ${utils_1.fileBugCommentText}`);
87
86
  return "";
88
87
  }
89
88
  const segments = node.meta.traversal;
@@ -378,7 +377,7 @@ function convertFunctionCallExpressionToTs(scope, node) {
378
377
  const functionName = node.meta.name;
379
378
  const mapping = functions_1.functionsMap[functionName];
380
379
  if (!mapping) {
381
- utils_1.logger.error(`Unknown function ${functionName} encountered. ${utils_1.leaveCommentText}`);
380
+ utils_1.logger.error(`Unknown function ${functionName} encountered. ${utils_1.fileBugCommentText}`);
382
381
  const argumentExpressions = node.children.map((child) => convertTFExpressionAstToTs(scope, child));
383
382
  return t.callExpression(t.identifier(functionName), argumentExpressions);
384
383
  }
@@ -630,4 +629,4 @@ function dynamicVariableToAst(scope, node, iteratorName, block = "each") {
630
629
  throw new Error(`Can not create AST for iterator variable of '${node.meta.value}'`);
631
630
  }
632
631
  exports.dynamicVariableToAst = dynamicVariableToAst;
633
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZXhwcmVzc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLGdEQUFrQztBQUNsQywrREFBdUM7QUFDdkMsbUNBQThEO0FBTTlELDhDQUE4RTtBQUM5RSw4Q0FHeUI7QUFDekIsNkRBQTZEO0FBQzdELDZDQUE4RDtBQUU5RCx1REFBa0Q7QUFDbEQsNkNBQWlEO0FBQ2pELDJDQUEyQztBQUUzQyxNQUFNLHdCQUF3QixHQUFHO0lBQy9CLFNBQVMsRUFBRSxJQUFJO0lBQ2YsVUFBVSxFQUFFLEtBQUs7SUFDakIsV0FBVyxFQUFFLElBQUk7SUFDakIsa0JBQWtCLEVBQUUsS0FBSztJQUN6QixRQUFRLEVBQUUsSUFBSTtJQUNkLGVBQWUsRUFBRSxLQUFLO0lBQ3RCLEtBQUssRUFBRSxJQUFJO0lBQ1gsUUFBUSxFQUFFLEtBQUs7SUFDZixHQUFHLEVBQUUsS0FBSztJQUNWLFFBQVEsRUFBRSxLQUFLO0lBQ2YsUUFBUSxFQUFFLEtBQUs7SUFDZixNQUFNLEVBQUUsS0FBSztJQUNiLE1BQU0sRUFBRSxLQUFLO0NBQ2QsQ0FBQztBQUVGLE1BQU0sdUJBQXVCLEdBQUc7SUFDOUIsVUFBVSxFQUFFLEtBQUs7SUFDakIsTUFBTSxFQUFFLFFBQVE7Q0FDakIsQ0FBQztBQUtGLFNBQVMsc0JBQXNCLENBQzdCLFVBQXdDLEVBQ3hDLFFBQVEsR0FBRyxLQUFLO0lBRWhCLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNkLElBQUksUUFBUSxJQUFJLGlDQUFHLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxJQUFJLEdBQUcsR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUNyQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxFQUFFLENBQUM7WUFDbEMsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ2pCLE9BQU8sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pDLENBQUM7WUFDRCxPQUFPLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsQyxDQUFDO1FBQ0QsT0FBTyxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUM7SUFDbkMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLFVBQThCO0lBQy9DLElBQUksQ0FBQyxpQ0FBRyxDQUFDLDBCQUEwQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDaEQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBRXpELE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUVELFNBQVMsdUJBQXVCLENBQzlCLEtBQW1CLEVBQ25CLElBQXdCO0lBRXhCLElBQUksQ0FBQyxpQ0FBRyxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDMUMsY0FBTSxDQUFDLEtBQUssQ0FDViw4QkFBOEIsSUFBSSxDQUFDLElBQUksZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7VUFDakUsd0JBQWdCLEVBQUUsQ0FDdkIsQ0FBQztRQUNGLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3JDLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQ2hDLENBQUM7SUFDRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ3hDLE1BQU0sUUFBUSxHQUNaLFdBQVcsS0FBSyxNQUFNO1FBQ3BCLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRTtRQUNqRCxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQ2xCLE1BQU0sSUFBSSxHQUNSLFdBQVcsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFFckUsT0FBTyxJQUFBLHdCQUFZLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRUQsU0FBUyxzQ0FBc0MsQ0FDN0MsS0FBb0IsRUFDcEIsS0FBcUI7SUFFckIsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUM5QyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6QixJQUFJLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3ZELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNWLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ25ELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztRQUVELEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDZixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUFvQixDQUFDLENBQUM7SUFFekIsT0FBTyxZQUFZLENBQUMsTUFBTSxDQUN4QixDQUFDLEdBQTZCLEVBQUUsSUFBa0IsRUFBRSxFQUFFO1FBQ3BELElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNULE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELDBFQUEwRTtRQUMxRSwyRUFBMkU7UUFDM0UscUVBQXFFO1FBQ3JFLDBFQUEwRTtRQUMxRSwyREFBMkQ7UUFDM0QsSUFDRSxDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDO1lBQzFCLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUMzQixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ3JFLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM3QixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFDN0MsQ0FBQztZQUNELElBQUksR0FBRyxJQUFBLHVCQUFVLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVELE9BQU8sQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxHQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVELENBQUMsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMseUJBQXlCLENBQUMsSUFBa0M7SUFDbkUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDckMsSUFBSSxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUNuQyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDaEIsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBRXBCLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUNuQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUMvQixVQUFVLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9DQUFvQztJQUN0RSxDQUFDO1NBQU0sQ0FBQztRQUNOLFVBQVUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsb0NBQW9DO0lBQ3RFLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxFQUFFLEdBQUcscUJBQXFCLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRWpFLHdEQUF3RDtJQUN4RCw2REFBNkQ7SUFDN0QsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdkMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDN0MsTUFBTSxHQUFHO1FBQ1AsR0FBRyxNQUFNO1FBQ1QsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDeEIsSUFBSSxpQ0FBRyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xDLE9BQU8sSUFBSSxHQUFHLENBQUMsT0FBTyxHQUFHLENBQUM7WUFDNUIsQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUNyQixDQUFDLENBQUM7S0FDSCxDQUFDO0lBRUYsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFFRCxTQUFTLGlDQUFpQyxDQUN4QyxNQUFxQixFQUNyQixJQUFnQztJQUVoQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQyxJQUFJLFdBQVcsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM3QixPQUFPLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBQ0QsSUFBSSxXQUFXLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDM0IsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsT0FBTyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUVELFNBQVMsbUNBQW1DLENBQzFDLEtBQW9CLEVBQ3BCLElBQWtDOztJQUVsQyxNQUFNLFlBQVksR0FBRyxJQUFBLDhCQUFpQixFQUFDLElBQUksQ0FBQyxDQUFDO0lBRTdDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBRXJDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDaEUsT0FBTyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssT0FBTyxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQy9ELE9BQU8sb0JBQW9CLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUNuQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNyQixhQUFhLEVBQUUsZUFBZTtZQUM5QixRQUFRLEVBQUUsT0FBTztTQUNsQixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsQ0FBQyxjQUFjLENBQ3JCLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsRUFFekUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzdELENBQUM7SUFDSixDQUFDO0lBRUQscUNBQXFDO0lBQ3JDLE1BQU0sWUFBWSxHQUFHLE1BQUEsS0FBSyxDQUFDLGVBQWUsMENBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xFLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakIsSUFBSSxZQUFZLEtBQUssZUFBZSxFQUFFLENBQUM7WUFDckMsT0FBTyxvQkFBb0IsQ0FDekIsS0FBSyxFQUNMLElBQUksRUFDSixZQUFZLEVBQ1osc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQ2pDLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELG9HQUFvRztJQUNwRywwQkFBMEI7SUFDMUIsSUFBSSxhQUFhLEdBQWlCLENBQUMsQ0FBQyxhQUFhLENBQy9DLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FDaEMsQ0FBQztJQUVGLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakIsYUFBYSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQzFCLElBQUEsaUJBQVMsRUFBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FDaEQsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNuRCxNQUFNLGdCQUFnQixHQUNwQixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUs7WUFDM0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxRCxDQUFDLENBQUMsYUFBYSxDQUFDO1FBRXBCLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4QixLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztnQkFDckIsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLFFBQVEsRUFBRSxPQUFPO2FBQ2xCLENBQUMsQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FDL0IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFDbEIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FDN0IsQ0FBQztZQUNGLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUU7Z0JBQzlCLGdCQUFnQjtnQkFDaEIsQ0FBQyxDQUFDLGVBQWUsQ0FDZixRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FDekQ7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNwRCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBRUQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUN4QyxNQUFNLGNBQWMsR0FBRyxXQUFXLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RCxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDekQsTUFBTSxvQkFBb0IsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUMvRCxpQ0FBRyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUM5QixDQUFDO0lBQ0YsSUFBSSxnQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQztJQUM1QyxJQUFJLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFCLElBQUksb0JBQW9CLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxtREFBbUQ7UUFDbkQsNkRBQTZEO1FBQzdELE1BQU0sWUFBWSxHQUFHLHlCQUF5QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELElBQUksZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzdCLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDOUQsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLENBQUMscUVBQXFFO1FBQ3RHLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDbkMsSUFBSSxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzNCLE9BQU8sS0FBSyxDQUFDLE1BQU0sSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNoQyxNQUFNLElBQUksR0FBRyxJQUFBLCtCQUFhLEVBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbEUsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLGdCQUFnQixFQUFFLENBQUM7b0JBQ2pFLGNBQWMsR0FBRyxJQUFJLENBQUM7b0JBQ3RCLE1BQU07Z0JBQ1IsQ0FBQztZQUNILENBQUM7WUFDRCxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDWixnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDMUIsQ0FBQztRQUVELElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsZ0JBQWdCLEdBQUcsYUFBYSxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3BELGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxtQkFBbUIsR0FBRyxnQkFBZ0IsSUFBSSxDQUFDLENBQUM7SUFFbEQsTUFBTSxXQUFXLEdBQUcsbUJBQW1CO1FBQ3JDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDO1FBQzlDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztJQUN0QixNQUFNLGNBQWMsR0FBRyxtQkFBbUI7UUFDeEMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztRQUMzQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBRVAsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FDNUIsQ0FBQyxHQUFpQixFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUNoQyxDQUFDLENBQUMsZ0JBQWdCLENBQ2hCLEdBQUcsRUFDSCxDQUFDLENBQUMsVUFBVSxDQUNWLEtBQUssS0FBSyxDQUFDLElBQUksV0FBVyxLQUFLLFFBQVE7UUFDckMsQ0FBQyxDQUFDLElBQUEsaUJBQVMsRUFBQyxHQUFHLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQztRQUNuQyxDQUFDLENBQUMsSUFBQSxpQkFBUyxFQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FDM0IsQ0FDRixFQUNILGFBQWEsQ0FDZCxDQUFDO0lBRUYsSUFBSSxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ3JCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLFFBQVEsRUFBRSxPQUFPO0tBQ2xCLENBQUMsQ0FBQztJQUNILE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FDL0IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFDbEIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FDN0IsQ0FBQztJQUNGLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUU7UUFDOUIsR0FBRztRQUNILENBQUMsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztLQUN6RSxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyw0QkFBNEIsQ0FDbkMsS0FBb0IsRUFDcEIsSUFBMkI7SUFFM0IsTUFBTSxPQUFPLEdBQUcsMEJBQTBCLENBQ3hDLEtBQUssRUFDTCxpQ0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBRSxDQUN4RCxDQUFDO0lBRUYsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDaEMsSUFBSSx1QkFBdUIsQ0FBQyxNQUFpQyxDQUFDLEVBQUUsQ0FBQztRQUMvRCxNQUFNLEdBQUcsdUJBQXVCLENBQUMsTUFBaUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUNyQixhQUFhLEVBQUUsSUFBSTtRQUNuQixRQUFRLEVBQUUsT0FBTztLQUNsQixDQUFDLENBQUM7SUFFSCxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFFeEUsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVELFNBQVMsNkJBQTZCLENBQ3BDLEtBQW9CLEVBQ3BCLElBQTRCO0lBRTVCLE1BQU0sSUFBSSxHQUFHLDBCQUEwQixDQUNyQyxLQUFLLEVBQ0wsaUNBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUUsQ0FDdEQsQ0FBQztJQUNGLE1BQU0sS0FBSyxHQUFHLDBCQUEwQixDQUN0QyxLQUFLLEVBQ0wsaUNBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUUsQ0FDdEQsQ0FBQztJQUVGLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2hDLElBQUksd0JBQXdCLENBQUMsTUFBa0MsQ0FBQyxFQUFFLENBQUM7UUFDakUsTUFBTSxHQUFHLHdCQUF3QixDQUFDLE1BQWtDLENBQUMsQ0FBQztJQUN4RSxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDckIsYUFBYSxFQUFFLElBQUk7UUFDbkIsUUFBUSxFQUFFLE9BQU87S0FDbEIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRUQsU0FBUyw2QkFBNkIsQ0FDcEMsS0FBb0IsRUFDcEIsSUFBeUQ7SUFFekQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUMsSUFBSSxFQUFFLEtBQUs7UUFDWCxJQUFJLEVBQUUsMEJBQTBCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztLQUMvQyxDQUFDLENBQUMsQ0FBQztJQUVKLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLElBQUksQ0FBQyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDckUsa0VBQWtFO1FBQ2xFLG1FQUFtRTtRQUNuRSxtQkFBbUI7UUFDbkIsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDOUIsTUFBTSxXQUFXLEdBQW1CLEVBQUUsQ0FBQztJQUN2QyxLQUFLLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksS0FBSyxFQUFFLENBQUM7UUFDbkMsSUFDRSxpQ0FBRyxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQztZQUNwQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO1lBQ3hCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUN6QixDQUFDO1lBQ0QsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDeEMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQzNCLENBQUM7YUFBTTtRQUNMLGdEQUFnRDtRQUNoRCxzREFBc0Q7UUFDdEQsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUN4QixDQUFDO1lBQ0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3JCLGFBQWEsRUFBRSxPQUFPO2dCQUN0QixRQUFRLEVBQUUsT0FBTzthQUNsQixDQUFDLENBQUM7WUFFSCxXQUFXLENBQUMsSUFBSSxDQUNkLGtCQUFRLENBQUMsVUFBVSxDQUFDLDBCQUEwQixDQUFDLENBQUM7Z0JBQzlDLElBQUk7YUFDTCxDQUFpQixDQUNuQixDQUFDO1lBQ0YsU0FBUztRQUNYLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxpQkFBaUIsRUFBRSxDQUFDO2dCQUN0QixXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDdkMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1lBQzVCLENBQUM7UUFDSCxDQUFDO1FBQ0QsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3RCLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxPQUFPLHNDQUFzQyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRUQsU0FBUywyQkFBMkIsQ0FDbEMsS0FBb0IsRUFDcEIsSUFBMEI7SUFFMUIsT0FBTyxDQUFDLENBQUMsZ0JBQWdCLENBQ3ZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDNUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUNwQixNQUFNLFVBQVUsR0FBRyxpQ0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEIsY0FBTSxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsR0FBRyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDbEUsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUNyQixDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUNqQiwwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQzlDLENBQUM7SUFDSixDQUFDLENBQUM7U0FDRCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQXVCLENBQ25ELENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxpQ0FBaUMsQ0FDeEMsS0FBb0IsRUFDcEIsSUFBZ0M7SUFFaEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDcEMsTUFBTSxPQUFPLEdBQUcsd0JBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUUzQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixjQUFNLENBQUMsS0FBSyxDQUNWLG9CQUFvQixZQUFZLGlCQUFpQix3QkFBZ0IsRUFBRSxDQUNwRSxDQUFDO1FBQ0YsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ3RELDBCQUEwQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FDekMsQ0FBQztRQUVGLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELE1BQU0sZUFBZSxHQUErQixPQUFPLENBQUMsV0FBVztRQUNyRSxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUVULE1BQU0sbUJBQW1CLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNqRSwwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQ3pDLENBQUM7SUFFRixLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUNyQixhQUFhLEVBQUUsSUFBSTtRQUNuQixRQUFRLEVBQUUsT0FBTztLQUNsQixDQUFDLENBQUM7SUFFSCxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsZ0JBQWdCLENBQy9CLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQ2xCLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUMzQixDQUFDO0lBRUYsSUFDRSxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUMxRCxDQUFDO1FBQ0QsTUFBTSxpQkFBaUIsR0FDckIsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDekQsTUFBTSxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQ3BELENBQUMsRUFDRCxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQzlCLENBQUM7UUFFRixNQUFNLGVBQWUsR0FBRztZQUN0QixHQUFHLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUM3QyxJQUFBLHVCQUFVLEVBQ1IsS0FBSyxFQUNMLE9BQU8sRUFDUCxJQUFBLCtCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFDbEMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQy9CLENBQ0Y7WUFFRCxDQUFDLENBQUMsZUFBZSxDQUNmLG1CQUFtQjtpQkFDaEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztpQkFDcEMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDZixJQUFBLHVCQUFVLEVBQ1IsS0FBSyxFQUNMLE9BQU8sRUFDUCxJQUFBLCtCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFDbEMsaUJBQWlCLENBQ2xCLENBQ0YsQ0FDSjtTQUNGLENBQUM7UUFFRixPQUFPLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxPQUFPLENBQUMsQ0FBQyxjQUFjLENBQ3JCLE1BQU0sRUFDTixtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FDekMsSUFBQSx1QkFBVSxFQUNSLEtBQUssRUFDTCxPQUFPLEVBQ1AsSUFBQSwrQkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQ2xDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUMvQixDQUNGLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLDBCQUEwQixDQUNqQyxLQUFvQixFQUNwQixJQUF5QjtJQUV6QixNQUFNLHlCQUF5QixHQUFHLGlDQUFHLENBQUMsaUJBQWlCLENBQ3JELElBQUksRUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUMvQixDQUFDO0lBQ0YsTUFBTSxrQkFBa0IsR0FBRyxpQ0FBRyxDQUFDLGlCQUFpQixDQUM5QyxJQUFJLEVBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQ3hCLENBQUM7SUFFRixNQUFNLG9CQUFvQixHQUFHLDBCQUEwQixDQUNyRCxLQUFLLEVBQ0wseUJBQTBCLENBQzNCLENBQUM7SUFDRixNQUFNLGFBQWEsR0FBRywwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsa0JBQW1CLENBQUMsQ0FBQztJQUU3RSxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUNyQixhQUFhLEVBQUUsSUFBSTtRQUNuQixRQUFRLEVBQUUsT0FBTztLQUNsQixDQUFDLENBQUM7SUFDSCxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsZ0JBQWdCLENBQy9CLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQ2xCLENBQUMsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQzdCLENBQUM7SUFDRixPQUFPLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFO1FBQzlCLG9CQUFvQjtRQUNwQixDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDbkMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsMEJBQTBCLENBQ2pDLEtBQW9CLEVBQ3BCLElBQXlCO0lBRXpCLE1BQU0scUJBQXFCLEdBQUcsaUNBQUcsQ0FBQyxpQkFBaUIsQ0FDakQsSUFBSSxFQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQzFCLENBQUM7SUFDSCxNQUFNLGdCQUFnQixHQUFHLDBCQUEwQixDQUNqRCxLQUFLLEVBQ0wscUJBQXFCLENBQ3RCLENBQUM7SUFFRiw2RkFBNkY7SUFDN0YsV0FBVztJQUNYLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUM1RCxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUMvQjtRQUNDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7UUFDdkUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBRTdCLE1BQU0sUUFBUSxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ3JCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLFFBQVEsRUFBRSxPQUFPO0tBQ2xCLENBQUMsQ0FBQztJQUNILE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FDL0IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFDbEIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FDN0IsQ0FBQztJQUVGLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUU7UUFDOUIsZ0JBQWdCO1FBQ2hCLENBQUMsQ0FBQyxlQUFlLENBQUM7WUFDaEIsNkRBQTZEO1lBQzdELCtEQUErRDtZQUMvRCxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQztZQUNwQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztTQUNqQyxDQUFDO0tBQ0gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsZ0NBQWdDLENBQ3ZDLEtBQW9CLEVBQ3BCLElBQStCO0lBRS9CLE1BQU0sY0FBYyxHQUFHLGlDQUFHLENBQUMsaUJBQWlCLENBQzFDLElBQUksRUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUM3QixDQUFDO0lBQ0gsSUFBSSxTQUFTLEdBQUcsMEJBQTBCLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ2xFLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztRQUMzRCxpRUFBaUU7UUFDakUsc0JBQXNCO1FBQ3RCLFNBQVMsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsTUFBTSxjQUFjLEdBQUcsMEJBQTBCLENBQy9DLEtBQUssRUFDTCxpQ0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBRSxDQUN2RCxDQUFDO0lBRUYsTUFBTSxlQUFlLEdBQUcsMEJBQTBCLENBQ2hELEtBQUssRUFDTCxpQ0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBRSxDQUN4RCxDQUFDO0lBRUYsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDckIsYUFBYSxFQUFFLGFBQWE7UUFDNUIsUUFBUSxFQUFFLE9BQU87S0FDbEIsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDbkQsU0FBUztRQUNULGNBQWM7UUFDZCxlQUFlO0tBQ2hCLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFTLDBCQUEwQixDQUNqQyxLQUFvQixFQUNwQixJQUF5QjtJQUV6QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQzlDLDBCQUEwQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FDekMsQ0FBQztJQUVGLE9BQU8sQ0FBQyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsU0FBUyxzQ0FBc0MsQ0FDN0MsS0FBb0IsRUFDcEIsSUFBcUM7SUFFckMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFFckMsc0VBQXNFO0lBQ3RFLDBEQUEwRDtJQUMxRCxNQUFNLE1BQU0sR0FBRywwQkFBMEIsQ0FDdkMsS0FBSyxFQUNMLGlDQUFHLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUUsQ0FDekQsQ0FBQztJQUVGLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ3JCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLFFBQVEsRUFBRSxPQUFPO0tBQ2xCLENBQUMsQ0FBQztJQUNILE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FDL0IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFDbEIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FDN0IsQ0FBQztJQUVGLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUU7UUFDOUIsTUFBTTtRQUNOLENBQUMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztLQUNuRSxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyx3QkFBd0IsQ0FDL0IsS0FBb0IsRUFDcEIsSUFBdUI7SUFFdkIsTUFBTSxlQUFlLEdBQUcsaUNBQUcsQ0FBQyxpQkFBaUIsQ0FDM0MsSUFBSSxFQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQzlCLENBQUM7SUFFSCxJQUFJLG9CQUFvQixHQUFHLDBCQUEwQixDQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsQ0FBQztJQUU5RSxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsSUFBSSxTQUFTLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUN2RSxpRUFBaUU7UUFDakUsc0JBQXNCO1FBQ3RCLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FDdkMsb0JBQW9CLEVBQ3BCLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQ3BCLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM1RSxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDdkIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1FBQ3BDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQzVDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUVyQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMzQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM3QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDcEQsTUFBTSxlQUFlLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLEVBQUUsQ0FBQztJQUVqRSxNQUFNLE1BQU0sR0FBRyxNQUFNLFNBQVMsUUFBUSxhQUFhLE1BQU0sQ0FBQztJQUMxRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7UUFDdEMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLE9BQU8sZUFBZSxFQUFFO1FBQ3ZELENBQUMsQ0FBQyxNQUFNLGVBQWUsRUFBRSxDQUFDO0lBQzVCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDcEQsTUFBTSxNQUFNLEdBQUcsR0FBRyxRQUFRLEdBQ3hCLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDdkMsR0FBRyxVQUFVLEdBQUcsQ0FBQztJQUVqQixXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUMxQyxJQUFJLDBCQUEwQixFQUFFLENBQUM7UUFDL0IsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELFdBQVcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUN2QyxJQUFJLDBCQUEwQixFQUFFLENBQUM7UUFDL0IsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBRTFDLE9BQU8sc0NBQXNDLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ3BFLENBQUM7QUFFRCxTQUFTLDBCQUEwQixDQUNqQyxLQUFvQixFQUNwQixJQUF3QjtJQUV4QixJQUFJLGlDQUFHLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN2QyxPQUFPLGlDQUFpQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBSSxpQ0FBRyxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDekMsT0FBTyxtQ0FBbUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQUksaUNBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sNEJBQTRCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJLGlDQUFHLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxPQUFPLDZCQUE2QixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxpQ0FBRyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLGlDQUFHLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN6RSxPQUFPLDZCQUE2QixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxpQ0FBRyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDakMsT0FBTywyQkFBMkIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksaUNBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLE9BQU8saUNBQWlDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUFJLGlDQUFHLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNoQyxPQUFPLDBCQUEwQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBSSxpQ0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDaEMsT0FBTywwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELElBQUksaUNBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sZ0NBQWdDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLGlDQUFHLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNoQyxPQUFPLDBCQUEwQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBSSxpQ0FBRyxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDNUMsT0FBTyxzQ0FBc0MsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQUksaUNBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM5QixPQUFPLHdCQUF3QixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsT0FBTyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzdCLENBQUM7QUFFTSxLQUFLLFVBQVUsYUFBYSxDQUNqQyxLQUFhO0lBRWIsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFBLGtDQUF1QixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVELE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBQSwyQkFBZ0IsRUFBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFcEQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsSUFBSSxVQUFVLElBQUksQ0FBQyxJQUFJLGlDQUFHLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN6RCxPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQWZELHNDQWVDO0FBRU0sS0FBSyxVQUFVLDhCQUE4QixDQUNsRCxLQUFvQixFQUNwQixLQUFhLEVBQ2IsVUFBK0I7SUFFL0IsY0FBTSxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUN6RCxNQUFNLFlBQVksR0FBRywwQkFBMEIsQ0FDN0MsS0FBSyxFQUNMLE1BQU0sYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUMzQixDQUFDO0lBRUYsT0FBTyxJQUFBLHVCQUFVLEVBQ2YsS0FBSyxFQUNMLFlBQVksRUFDWixJQUFBLCtCQUFrQixFQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsRUFDdkMsVUFBVSxFQUFFLENBQ2IsQ0FBQztBQUNKLENBQUM7QUFqQkQsd0VBaUJDO0FBRU0sS0FBSyxVQUFVLHNDQUFzQyxDQUMxRCxLQUFhO0lBRWIsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLElBQUEsb0NBQXlCLEVBQzNELFNBQVMsRUFDVCxLQUFLLENBQ04sQ0FBQztJQUVGLE9BQU8scUJBQXFCO1NBQ3pCLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDaEQsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2QsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhO1FBQ3pCLEdBQUcsRUFBRSxJQUFJLENBQUMsV0FBVztRQUNyQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7S0FDbEIsQ0FBQyxDQUFDLENBQUM7QUFDUixDQUFDO0FBZkQsd0ZBZUM7QUFFRCxTQUFnQixvQkFBb0IsQ0FDbEMsS0FBbUIsRUFDbkIsSUFBa0MsRUFDbEMsWUFBb0IsRUFDcEIsUUFBZ0IsTUFBTTtJQUV0QixJQUFJLFlBQVksS0FBSyxlQUFlLEVBQUUsQ0FBQztRQUNyQyxPQUFPLHNDQUFzQyxDQUFDLEtBQUssRUFBRTtZQUNuRCxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztZQUNyQixDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUN0QixDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQztTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxHQUFHLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDdkMsT0FBTyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxDQUFDLGdCQUFnQixDQUN2QixDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUMxQixDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUN0QixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksS0FBSyxLQUFLLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUQsT0FBTyxDQUFDLENBQUMsZ0JBQWdCLENBQ3ZCLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQzFCLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQ3RCLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFFckMsSUFDRSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUM7UUFDbkIsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxLQUFLO1FBQzdCLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssT0FBTyxFQUMvQixDQUFDO1FBQ0QsTUFBTSxzQkFBc0IsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pELEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3JCLGFBQWEsRUFBRSxJQUFJO1lBQ25CLFFBQVEsRUFBRSxPQUFPO1NBQ2xCLENBQUMsQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FDL0IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFDbEIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FDN0IsQ0FBQztRQUNGLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUU7WUFDOUIsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyRSxDQUFDLENBQUMsZUFBZSxDQUNmLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNsQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxFQUFFLENBQUM7b0JBQ2xDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3ZDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztnQkFDOUMsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUNIO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0RBQWdELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQ25FLENBQUM7QUFDSixDQUFDO0FBL0RELG9EQStEQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgKiBhcyB0IGZyb20gXCJAYmFiZWwvdHlwZXNcIjtcbmltcG9ydCB0ZW1wbGF0ZSBmcm9tIFwiQGJhYmVsL3RlbXBsYXRlXCI7XG5pbXBvcnQgeyBjYW1lbENhc2UsIGxlYXZlQ29tbWVudFRleHQsIGxvZ2dlciB9IGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQge1xuICBJdGVyYXRvclZhcmlhYmxlUmVmZXJlbmNlLFxuICBQcm9ncmFtU2NvcGUsXG4gIFJlc291cmNlU2NvcGUsXG59IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBnZXRSZWZlcmVuY2VzSW5FeHByZXNzaW9uLCBnZXRFeHByZXNzaW9uQXN0IH0gZnJvbSBcIkBjZGt0bi9oY2wyanNvblwiO1xuaW1wb3J0IHtcbiAgVEZFeHByZXNzaW9uU3ludGF4VHJlZSBhcyB0ZXgsXG4gIHdyYXBUZXJyYWZvcm1FeHByZXNzaW9uLFxufSBmcm9tIFwiQGNka3RuL2hjbDJqc29uXCI7XG5pbXBvcnQgeyBmdW5jdGlvbnNNYXAgfSBmcm9tIFwiLi9mdW5jdGlvbi1iaW5kaW5ncy9mdW5jdGlvbnNcIjtcbmltcG9ydCB7IGNvZXJjZVR5cGUsIGZpbmRFeHByZXNzaW9uVHlwZSB9IGZyb20gXCIuL2NvZXJjZVR5cGVcIjtcbmltcG9ydCB7IEF0dHJpYnV0ZVR5cGUgfSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCB7IGdldFR5cGVBdFBhdGggfSBmcm9tIFwiLi90ZXJyYWZvcm1TY2hlbWFcIjtcbmltcG9ydCB7IGNvbnRhaW5zUmVmZXJlbmNlIH0gZnJvbSBcIi4vcmVmZXJlbmNlc1wiO1xuaW1wb3J0IHsgdmFyaWFibGVOYW1lIH0gZnJvbSBcIi4vdmFyaWFibGVzXCI7XG5cbmNvbnN0IHRmQmluYXJ5T3BlcmF0b3JzVG9DZGt0ZiA9IHtcbiAgbG9naWNhbE9yOiBcIm9yXCIsXG4gIGxvZ2ljYWxBbmQ6IFwiYW5kXCIsXG4gIGdyZWF0ZXJUaGFuOiBcImd0XCIsXG4gIGdyZWF0ZXJUaGFuT3JFcXVhbDogXCJndGVcIixcbiAgbGVzc1RoYW46IFwibHRcIixcbiAgbGVzc1RoYW5PckVxdWFsOiBcImx0ZVwiLFxuICBlcXVhbDogXCJlcVwiLFxuICBub3RFcXVhbDogXCJuZXFcIixcbiAgYWRkOiBcImFkZFwiLFxuICBzdWJ0cmFjdDogXCJzdWJcIixcbiAgbXVsdGlwbHk6IFwibXVsXCIsXG4gIGRpdmlkZTogXCJkaXZcIixcbiAgbW9kdWxvOiBcIm1vZFwiLFxufTtcblxuY29uc3QgdGZVbmFyeU9wZXJhdG9yc1RvQ2RrdGYgPSB7XG4gIGxvZ2ljYWxOb3Q6IFwibm90XCIsXG4gIG5lZ2F0ZTogXCJuZWdhdGVcIixcbn07XG5cbnR5cGUgc3VwcG9ydGVkQmluYXJ5T3BlcmF0b3JzID0ga2V5b2YgdHlwZW9mIHRmQmluYXJ5T3BlcmF0b3JzVG9DZGt0ZjtcbnR5cGUgc3VwcG9ydGVkVW5hcnlPcGVyYXRvcnMgPSBrZXlvZiB0eXBlb2YgdGZVbmFyeU9wZXJhdG9yc1RvQ2RrdGY7XG5cbmZ1bmN0aW9uIHRyYXZlcnNhbFBhcnRzVG9TdHJpbmcoXG4gIHRyYXZlcnNhbHM6IHRleC5UZXJyYWZvcm1UcmF2ZXJzYWxQYXJ0W10sXG4gIGFzU3VmZml4ID0gZmFsc2UsXG4pIHtcbiAgbGV0IHNlZWQgPSBcIlwiO1xuICBpZiAoYXNTdWZmaXggJiYgdGV4LmlzTmFtZVRyYXZlcnNhbFBhcnQodHJhdmVyc2Fsc1swXSkpIHtcbiAgICBzZWVkID0gXCIuXCI7XG4gIH1cbiAgcmV0dXJuIHRyYXZlcnNhbHMucmVkdWNlKChhY2MsIHBhcnQpID0+IHtcbiAgICBpZiAocGFydC50eXBlID09PSBcIm5hbWVUcmF2ZXJzYWxcIikge1xuICAgICAgaWYgKGFjYyA9PT0gc2VlZCkge1xuICAgICAgICByZXR1cm4gYCR7YWNjfSR7cGFydC5zZWdtZW50fWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYCR7YWNjfS4ke3BhcnQuc2VnbWVudH1gO1xuICAgIH1cbiAgICByZXR1cm4gYCR7YWNjfVske3BhcnQuc2VnbWVudH1dYDtcbiAgfSwgc2VlZCk7XG59XG5cbmZ1bmN0aW9uIGNhblVzZUZxbihleHByZXNzaW9uOiB0ZXguRXhwcmVzc2lvblR5cGUpIHtcbiAgaWYgKCF0ZXguaXNTY29wZVRyYXZlcnNhbEV4cHJlc3Npb24oZXhwcmVzc2lvbikpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCByb290U2VnbWVudCA9IGV4cHJlc3Npb24ubWV0YS50cmF2ZXJzYWxbMF0uc2VnbWVudDtcblxuICByZXR1cm4gIVtcInZhclwiLCBcImxvY2FsXCJdLmluY2x1ZGVzKHJvb3RTZWdtZW50KTtcbn1cblxuZnVuY3Rpb24gdHJhdmVyc2FsVG9WYXJpYWJsZU5hbWUoXG4gIHNjb3BlOiBQcm9ncmFtU2NvcGUsXG4gIG5vZGU6IHRleC5FeHByZXNzaW9uVHlwZSxcbikge1xuICBpZiAoIXRleC5pc1Njb3BlVHJhdmVyc2FsRXhwcmVzc2lvbihub2RlKSkge1xuICAgIGxvZ2dlci5lcnJvcihcbiAgICAgIGBVbmV4cGVjdGVkIGV4cHJlc3Npb24gdHlwZSAke25vZGUudHlwZX0gd2l0aCB2YWx1ZSAke25vZGUubWV0YS52YWx1ZX0gcGFzc2VkIHRvIGNvbnZlcnQgdG8gYSB2YXJpYWJsZS4gXG4gICAgICAgICR7bGVhdmVDb21tZW50VGV4dH1gLFxuICAgICk7XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICBjb25zdCBzZWdtZW50cyA9IG5vZGUubWV0YS50cmF2ZXJzYWw7XG4gIGlmIChzZWdtZW50cy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gbm9kZS5tZXRhLmZ1bGxBY2Nlc3NvcjtcbiAgfVxuICBjb25zdCByb290U2VnbWVudCA9IHNlZ21lbnRzWzBdLnNlZ21lbnQ7XG4gIGNvbnN0IHJlc291cmNlID1cbiAgICByb290U2VnbWVudCA9PT0gXCJkYXRhXCJcbiAgICAgID8gYCR7c2VnbWVudHNbMF0uc2VnbWVudH0uJHtzZWdtZW50c1sxXS5zZWdtZW50fWBcbiAgICAgIDogcm9vdFNlZ21lbnQ7XG4gIGNvbnN0IG5hbWUgPVxuICAgIHJvb3RTZWdtZW50ID09PSBcImRhdGFcIiA/IHNlZ21lbnRzWzJdLnNlZ21lbnQgOiBzZWdtZW50c1sxXS5zZWdtZW50O1xuXG4gIHJldHVybiB2YXJpYWJsZU5hbWUoc2NvcGUsIHJlc291cmNlLCBuYW1lKTtcbn1cblxuZnVuY3Rpb24gZXhwcmVzc2lvbkZvclNlcmlhbFN0cmluZ0NvbmNhdGVuYXRpb24oXG4gIHNjb3BlOiBSZXNvdXJjZVNjb3BlLFxuICBub2RlczogdC5FeHByZXNzaW9uW10sXG4pIHtcbiAgY29uc3QgcmVkdWNlZE5vZGVzID0gbm9kZXMucmVkdWNlKChhY2MsIG5vZGUpID0+IHtcbiAgICBjb25zdCBwcmV2ID0gYWNjW2FjYy5sZW5ndGggLSAxXTtcbiAgICBpZiAoIXByZXYpIHJldHVybiBbbm9kZV07XG5cbiAgICBpZiAodC5pc1N0cmluZ0xpdGVyYWwocHJldikgJiYgdC5pc1N0cmluZ0xpdGVyYWwobm9kZSkpIHtcbiAgICAgIGFjYy5wb3AoKTtcbiAgICAgIGFjYy5wdXNoKHQuc3RyaW5nTGl0ZXJhbChwcmV2LnZhbHVlICsgbm9kZS52YWx1ZSkpO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9XG5cbiAgICBhY2MucHVzaChub2RlKTtcbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSBhcyB0LkV4cHJlc3Npb25bXSk7XG5cbiAgcmV0dXJuIHJlZHVjZWROb2Rlcy5yZWR1Y2UoXG4gICAgKGFjYzogdC5FeHByZXNzaW9uIHwgdW5kZWZpbmVkLCBub2RlOiB0LkV4cHJlc3Npb24pID0+IHtcbiAgICAgIGlmICghYWNjKSB7XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgICAgfVxuXG4gICAgICAvLyB3cmFwIGFjY2VzcyB0byBkeW5hbWljIGJsb2NrcyBpbiBUb2tlbi5hc1N0cmluZygpIGFzIHRoZXkgcmV0dXJuIGEgTGF6eVxuICAgICAgLy8gZm9yIC5rZXkgYW5kIC52YWx1ZSB3aGljaCBjYW4ndCBiZSBjb25jYXRlbmF0ZWQgaW4gbGFuZ3VhZ2VzIGxpa2UgUHl0aG9uXG4gICAgICAvLyBiZWNhdXNlIEpTSUkgY3VycmVudGx5IGhhcyBubyBzdXBwb3J0IGZvciB0aGUgdG9TdHJpbmcoKSBtZXRob2QgaW5cbiAgICAgIC8vIGxhbmd1YWdlcyBvdGhlciB0aGFuIFR5cGVTY3JpcHQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvanNpaS9pc3N1ZXMvMzgwXG4gICAgICAvLyBleGFtcGxlOiBkeW5hbWljX2l0ZXJhdG9yMC5rZXkgLyBkeW5hbWljX2l0ZXJhdG9yMC52YWx1ZVxuICAgICAgaWYgKFxuICAgICAgICB0LmlzTWVtYmVyRXhwcmVzc2lvbihub2RlKSAmJlxuICAgICAgICB0LmlzSWRlbnRpZmllcihub2RlLm9iamVjdCkgJiZcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhzY29wZS5zY29wZWRWYXJpYWJsZXMgfHwge30pLmluY2x1ZGVzKG5vZGUub2JqZWN0Lm5hbWUpICYmXG4gICAgICAgIHQuaXNJZGVudGlmaWVyKG5vZGUucHJvcGVydHkpICYmXG4gICAgICAgIFtcImtleVwiLCBcInZhbHVlXCJdLmluY2x1ZGVzKG5vZGUucHJvcGVydHkubmFtZSlcbiAgICAgICkge1xuICAgICAgICBub2RlID0gY29lcmNlVHlwZShzY29wZSwgbm9kZSwgXCJkeW5hbWljXCIsIFwic3RyaW5nXCIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdC5iaW5hcnlFeHByZXNzaW9uKFwiK1wiLCBhY2MgYXMgdC5FeHByZXNzaW9uLCBub2RlKTtcbiAgICB9LFxuICApO1xufVxuXG5mdW5jdGlvbiBnZXRUZlJlc291cmNlUGF0aEZyb21Ob2RlKG5vZGU6IHRleC5TY29wZVRyYXZlcnNhbEV4cHJlc3Npb24pIHtcbiAgY29uc3Qgc2VnbWVudHMgPSBub2RlLm1ldGEudHJhdmVyc2FsO1xuICBsZXQgcmVzb3VyY2UgPSBzZWdtZW50c1swXS5zZWdtZW50O1xuICBsZXQgcmVzdWx0ID0gW107XG4gIGxldCBhdHRyaWJ1dGVzID0gW107XG5cbiAgaWYgKHNlZ21lbnRzWzBdLnNlZ21lbnQgPT09IFwiZGF0YVwiKSB7XG4gICAgcmVzdWx0LnB1c2goc2VnbWVudHNbMF0uc2VnbWVudCk7XG4gICAgcmVzb3VyY2UgPSBzZWdtZW50c1sxXS5zZWdtZW50O1xuICAgIGF0dHJpYnV0ZXMgPSBzZWdtZW50cy5zbGljZSgzKTsgLy8gd2Ugd2FudCB0byBza2lwIHRoZSB2YXJpYWJsZSBuYW1lXG4gIH0gZWxzZSB7XG4gICAgYXR0cmlidXRlcyA9IHNlZ21lbnRzLnNsaWNlKDIpOyAvLyB3ZSB3YW50IHRvIHNraXAgdGhlIHZhcmlhYmxlIG5hbWVcbiAgfVxuXG4gIGNvbnN0IFtwcm92aWRlciwgLi4ucmVzb3VyY2VOYW1lRnJhZ21lbnRzXSA9IHJlc291cmNlLnNwbGl0KFwiX1wiKTtcblxuICAvLyBIYWNrOiBUaGlzIGhhcHBlbnMgaW4gdGhlIGNhc2Ugb2YgYGV4dGVybmFsYCBwcm92aWRlclxuICAvLyB3aGVyZSB0aGUgZGF0YSBzb3VyY2UgZG9lcyBub3QgaGF2ZSBhIHByb3ZpZGVyIG5hbWUgcHJlZml4XG4gIGlmIChyZXNvdXJjZU5hbWVGcmFnbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmVzb3VyY2VOYW1lRnJhZ21lbnRzLnB1c2gocHJvdmlkZXIpO1xuICB9XG5cbiAgcmVzdWx0LnB1c2gocHJvdmlkZXIpO1xuICByZXN1bHQucHVzaChyZXNvdXJjZU5hbWVGcmFnbWVudHMuam9pbihcIl9cIikpO1xuICByZXN1bHQgPSBbXG4gICAgLi4ucmVzdWx0LFxuICAgIC4uLmF0dHJpYnV0ZXMubWFwKChzZWcpID0+IHtcbiAgICAgIGlmICh0ZXguaXNJbmRleFRyYXZlcnNhbFBhcnQoc2VnKSkge1xuICAgICAgICByZXR1cm4gYFske3NlZy5zZWdtZW50fV1gO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHNlZy5zZWdtZW50O1xuICAgIH0pLFxuICBdO1xuXG4gIHJldHVybiByZXN1bHQuam9pbihcIi5cIik7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRMaXRlcmFsVmFsdWVFeHByZXNzaW9uVG9UcyhcbiAgX3Njb3BlOiBSZXNvdXJjZVNjb3BlLFxuICBub2RlOiB0ZXguTGl0ZXJhbFZhbHVlRXhwcmVzc2lvbixcbikge1xuICBjb25zdCBsaXRlcmFsVHlwZSA9IG5vZGUubWV0YS50eXBlO1xuICBpZiAobGl0ZXJhbFR5cGUgPT09IFwibnVtYmVyXCIpIHtcbiAgICByZXR1cm4gdC5udW1lcmljTGl0ZXJhbChOdW1iZXIobm9kZS5tZXRhLnZhbHVlKSk7XG4gIH1cbiAgaWYgKGxpdGVyYWxUeXBlID09PSBcImJvb2xcIikge1xuICAgIHJldHVybiB0LmJvb2xlYW5MaXRlcmFsKG5vZGUubWV0YS52YWx1ZSA9PT0gXCJ0cnVlXCIgPyB0cnVlIDogZmFsc2UpO1xuICB9XG5cbiAgcmV0dXJuIHQuc3RyaW5nTGl0ZXJhbChub2RlLm1ldGEudmFsdWUpO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0U2NvcGVUcmF2ZXJzYWxFeHByZXNzaW9uVG9UcyhcbiAgc2NvcGU6IFJlc291cmNlU2NvcGUsXG4gIG5vZGU6IHRleC5TY29wZVRyYXZlcnNhbEV4cHJlc3Npb24sXG4pIHtcbiAgY29uc3QgaGFzUmVmZXJlbmNlID0gY29udGFpbnNSZWZlcmVuY2Uobm9kZSk7XG5cbiAgY29uc3Qgc2VnbWVudHMgPSBub2RlLm1ldGEudHJhdmVyc2FsO1xuXG4gIGlmIChzZWdtZW50c1swXS5zZWdtZW50ID09PSBcImVhY2hcIiAmJiBzY29wZS5mb3JFYWNoSXRlcmF0b3JOYW1lKSB7XG4gICAgcmV0dXJuIGR5bmFtaWNWYXJpYWJsZVRvQXN0KHNjb3BlLCBub2RlLCBzY29wZS5mb3JFYWNoSXRlcmF0b3JOYW1lKTtcbiAgfVxuXG4gIGlmIChzZWdtZW50c1swXS5zZWdtZW50ID09PSBcImNvdW50XCIgJiYgc2NvcGUuY291bnRJdGVyYXRvck5hbWUpIHtcbiAgICByZXR1cm4gZHluYW1pY1ZhcmlhYmxlVG9Bc3Qoc2NvcGUsIG5vZGUsIHNjb3BlLmNvdW50SXRlcmF0b3JOYW1lLCBcImNvdW50XCIpO1xuICB9XG5cbiAgaWYgKHNlZ21lbnRzWzBdLnNlZ21lbnQgPT09IFwic2VsZlwiKSB7XG4gICAgc2NvcGUuaW1wb3J0YWJsZXMucHVzaCh7XG4gICAgICBjb25zdHJ1Y3ROYW1lOiBcIlRlcnJhZm9ybVNlbGZcIixcbiAgICAgIHByb3ZpZGVyOiBcImNka3RuXCIsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdC5jYWxsRXhwcmVzc2lvbihcbiAgICAgIHQubWVtYmVyRXhwcmVzc2lvbih0LmlkZW50aWZpZXIoXCJUZXJyYWZvcm1TZWxmXCIpLCB0LmlkZW50aWZpZXIoXCJnZXRBbnlcIikpLFxuXG4gICAgICBbdC5zdHJpbmdMaXRlcmFsKHRyYXZlcnNhbFBhcnRzVG9TdHJpbmcoc2VnbWVudHMuc2xpY2UoMSkpKV0sXG4gICAgKTtcbiAgfVxuXG4gIC8vIHNldHRpbmcudmFsdWUsIHNldHRpbmcudmFsdWVbMV0uaWRcbiAgY29uc3QgZHluYW1pY0Jsb2NrID0gc2NvcGUuc2NvcGVkVmFyaWFibGVzPy5bc2VnbWVudHNbMF0uc2VnbWVudF07XG4gIGlmIChkeW5hbWljQmxvY2spIHtcbiAgICBpZiAoZHluYW1pY0Jsb2NrID09PSBcImR5bmFtaWMtYmxvY2tcIikge1xuICAgICAgcmV0dXJuIGR5bmFtaWNWYXJpYWJsZVRvQXN0KFxuICAgICAgICBzY29wZSxcbiAgICAgICAgbm9kZSxcbiAgICAgICAgZHluYW1pY0Jsb2NrLFxuICAgICAgICB0cmF2ZXJzYWxQYXJ0c1RvU3RyaW5nKHNlZ21lbnRzKSxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBkeW5hbWljVmFyaWFibGVUb0FzdChzY29wZSwgbm9kZSwgZHluYW1pY0Jsb2NrLCBzZWdtZW50c1swXS5zZWdtZW50KTtcbiAgfVxuXG4gIC8vIFRoaXMgbWF5IGJlIGEgdmFyaWFibGUgcmVmZXJlbmNlIHRoYXQgd2UgZG9uJ3QgdW5kZXJzdGFuZCB5ZXQsIHNvIHdlIHdyYXAgaXQgaW4gYSB0ZW1wbGF0ZSBzdHJpbmdcbiAgLy8gZm9yIFRlcnJhZm9ybSB0byBoYW5kbGVcbiAgbGV0IHZhcklkZW50aWZpZXI6IHQuRXhwcmVzc2lvbiA9IHQuc3RyaW5nTGl0ZXJhbChcbiAgICBgXFwkeyR7bm9kZS5tZXRhLmZ1bGxBY2Nlc3Nvcn19YCxcbiAgKTtcblxuICBpZiAoaGFzUmVmZXJlbmNlKSB7XG4gICAgdmFySWRlbnRpZmllciA9IHQuaWRlbnRpZmllcihcbiAgICAgIGNhbWVsQ2FzZSh0cmF2ZXJzYWxUb1ZhcmlhYmxlTmFtZShzY29wZSwgbm9kZSkpLFxuICAgICk7XG4gIH1cblxuICBpZiAoW1widmFyXCIsIFwibG9jYWxcIl0uaW5jbHVkZXMoc2VnbWVudHNbMF0uc2VnbWVudCkpIHtcbiAgICBjb25zdCB2YXJpYWJsZUFjY2Vzc29yID1cbiAgICAgIHNlZ21lbnRzWzBdLnNlZ21lbnQgPT09IFwidmFyXCJcbiAgICAgICAgPyB0Lm1lbWJlckV4cHJlc3Npb24odmFySWRlbnRpZmllciwgdC5pZGVudGlmaWVyKFwidmFsdWVcIikpXG4gICAgICAgIDogdmFySWRlbnRpZmllcjtcblxuICAgIGlmIChzZWdtZW50cy5sZW5ndGggPiAyKSB7XG4gICAgICBzY29wZS5pbXBvcnRhYmxlcy5wdXNoKHtcbiAgICAgICAgY29uc3RydWN0TmFtZTogXCJGblwiLFxuICAgICAgICBwcm92aWRlcjogXCJjZGt0blwiLFxuICAgICAgfSk7XG4gICAgICBjb25zdCBjYWxsZWUgPSB0Lm1lbWJlckV4cHJlc3Npb24oXG4gICAgICAgIHQuaWRlbnRpZmllcihcIkZuXCIpLFxuICAgICAgICB0LmlkZW50aWZpZXIoXCJsb29rdXBOZXN0ZWRcIiksXG4gICAgICApO1xuICAgICAgcmV0dXJuIHQuY2FsbEV4cHJlc3Npb24oY2FsbGVlLCBbXG4gICAgICAgIHZhcmlhYmxlQWNjZXNzb3IsXG4gICAgICAgIHQuYXJyYXlFeHByZXNzaW9uKFxuICAgICAgICAgIHNlZ21lbnRzLnNsaWNlKDIpLm1hcCgocykgPT4gdC5zdHJpbmdMaXRlcmFsKHMuc2VnbWVudCkpLFxuICAgICAgICApLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhcmlhYmxlQWNjZXNzb3I7XG4gIH1cblxuICBpZiAoIWhhc1JlZmVyZW5jZSB8fCBzY29wZS53aXRoaW5PdmVycmlkZUV4cHJlc3Npb24pIHtcbiAgICByZXR1cm4gdmFySWRlbnRpZmllcjtcbiAgfVxuXG4gIGNvbnN0IHJvb3RTZWdtZW50ID0gc2VnbWVudHNbMF0uc2VnbWVudDtcbiAgY29uc3QgYXR0cmlidXRlSW5kZXggPSByb290U2VnbWVudCA9PT0gXCJkYXRhXCIgPyAzIDogMjtcbiAgY29uc3QgYXR0cmlidXRlU2VnbWVudHMgPSBzZWdtZW50cy5zbGljZShhdHRyaWJ1dGVJbmRleCk7XG4gIGNvbnN0IG51bWVyaWNBY2Nlc3NvckluZGV4ID0gYXR0cmlidXRlU2VnbWVudHMuZmluZEluZGV4KChzZWcpID0+XG4gICAgdGV4LmlzSW5kZXhUcmF2ZXJzYWxQYXJ0KHNlZyksXG4gICk7XG4gIGxldCBtaW5BY2Nlc3NvckluZGV4ID0gbnVtZXJpY0FjY2Vzc29ySW5kZXg7XG4gIGxldCBtYXBBY2Nlc3NvckluZGV4ID0gLTE7XG4gIGlmIChudW1lcmljQWNjZXNzb3JJbmRleCA9PT0gLTEpIHtcbiAgICAvLyBvbmx5IGRvIHRoaXMgaWYgd2UgaGF2ZSB0bywgaWYgd2UgYWxyZWFkeSBoYXZlIGFcbiAgICAvLyBudW1lcmljIGFjY2Vzc29yLCB3ZSBkb24ndCBoYXZlIHRvIGRvIHRoaXMgYWRkaXRpb25hbCB3b3JrXG4gICAgY29uc3QgcmVzb3VyY2VQYXRoID0gZ2V0VGZSZXNvdXJjZVBhdGhGcm9tTm9kZShub2RlKTtcbiAgICBsZXQgdXNpbmdTdWJQYXRoVHlwZSA9IGZhbHNlO1xuICAgIGNvbnN0IHBhcnRzID0gcmVzb3VyY2VQYXRoLnNwbGl0KFwiLlwiKS5maWx0ZXIoKHApID0+IHAgIT09IFwiXCIpO1xuICAgIGNvbnN0IG1pblBhcnRzID0gYXR0cmlidXRlSW5kZXg7IC8vIHdlIG5lZWQgdG8gc3RvcCBiZWZvcmUgZGF0YS5hd3MucmVzb3VyY2VfbmFtZSBvciBhd3MucmVzb3VyY2VfbmFtZVxuICAgIGNvbnN0IG9yaWdpbmFsUGFydHMgPSBwYXJ0cy5sZW5ndGg7XG4gICAgbGV0IGhhc01hcEFjY2Vzc29yID0gZmFsc2U7XG4gICAgd2hpbGUgKHBhcnRzLmxlbmd0aCA+PSBtaW5QYXJ0cykge1xuICAgICAgY29uc3QgdHlwZSA9IGdldFR5cGVBdFBhdGgoc2NvcGUucHJvdmlkZXJTY2hlbWEsIHBhcnRzLmpvaW4oXCIuXCIpKTtcbiAgICAgIGlmICh0eXBlICE9PSBudWxsKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHR5cGUpICYmIHR5cGVbMF0gPT09IFwibWFwXCIgJiYgdXNpbmdTdWJQYXRoVHlwZSkge1xuICAgICAgICAgIGhhc01hcEFjY2Vzc29yID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcGFydHMucG9wKCk7XG4gICAgICB1c2luZ1N1YlBhdGhUeXBlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoaGFzTWFwQWNjZXNzb3IpIHtcbiAgICAgIG1hcEFjY2Vzc29ySW5kZXggPSBvcmlnaW5hbFBhcnRzIC0gcGFydHMubGVuZ3RoIC0gMTtcbiAgICAgIG1pbkFjY2Vzc29ySW5kZXggPSBtYXBBY2Nlc3NvckluZGV4O1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IG5lZWRzUHJvcGVydHlBY2Nlc3MgPSBtaW5BY2Nlc3NvckluZGV4ID49IDA7XG5cbiAgY29uc3QgcmVmU2VnbWVudHMgPSBuZWVkc1Byb3BlcnR5QWNjZXNzXG4gICAgPyBhdHRyaWJ1dGVTZWdtZW50cy5zbGljZSgwLCBtaW5BY2Nlc3NvckluZGV4KVxuICAgIDogYXR0cmlidXRlU2VnbWVudHM7XG4gIGNvbnN0IG5vblJlZlNlZ21lbnRzID0gbmVlZHNQcm9wZXJ0eUFjY2Vzc1xuICAgID8gYXR0cmlidXRlU2VnbWVudHMuc2xpY2UobWluQWNjZXNzb3JJbmRleClcbiAgICA6IFtdO1xuXG4gIGNvbnN0IHJlZiA9IHJlZlNlZ21lbnRzLnJlZHVjZShcbiAgICAoYWNjOiB0LkV4cHJlc3Npb24sIHNlZywgaW5kZXgpID0+XG4gICAgICB0Lm1lbWJlckV4cHJlc3Npb24oXG4gICAgICAgIGFjYyxcbiAgICAgICAgdC5pZGVudGlmaWVyKFxuICAgICAgICAgIGluZGV4ID09PSAwICYmIHJvb3RTZWdtZW50ID09PSBcIm1vZHVsZVwiXG4gICAgICAgICAgICA/IGNhbWVsQ2FzZShzZWcuc2VnbWVudCArIFwiT3V0cHV0XCIpXG4gICAgICAgICAgICA6IGNhbWVsQ2FzZShzZWcuc2VnbWVudCksXG4gICAgICAgICksXG4gICAgICApLFxuICAgIHZhcklkZW50aWZpZXIsXG4gICk7XG5cbiAgaWYgKG5vblJlZlNlZ21lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiByZWY7XG4gIH1cblxuICBzY29wZS5pbXBvcnRhYmxlcy5wdXNoKHtcbiAgICBjb25zdHJ1Y3ROYW1lOiBcIkZuXCIsXG4gICAgcHJvdmlkZXI6IFwiY2RrdG5cIixcbiAgfSk7XG4gIGNvbnN0IGNhbGxlZSA9IHQubWVtYmVyRXhwcmVzc2lvbihcbiAgICB0LmlkZW50aWZpZXIoXCJGblwiKSxcbiAgICB0LmlkZW50aWZpZXIoXCJsb29rdXBOZXN0ZWRcIiksXG4gICk7XG4gIHJldHVybiB0LmNhbGxFeHByZXNzaW9uKGNhbGxlZSwgW1xuICAgIHJlZixcbiAgICB0LmFycmF5RXhwcmVzc2lvbihub25SZWZTZWdtZW50cy5tYXAoKHMpID0+IHQuc3RyaW5nTGl0ZXJhbChzLnNlZ21lbnQpKSksXG4gIF0pO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0VW5hcnlPcEV4cHJlc3Npb25Ub1RzKFxuICBzY29wZTogUmVzb3VyY2VTY29wZSxcbiAgbm9kZTogdGV4LlVuYXJ5T3BFeHByZXNzaW9uLFxuKSB7XG4gIGNvbnN0IG9wZXJhbmQgPSBjb252ZXJ0VEZFeHByZXNzaW9uQXN0VG9UcyhcbiAgICBzY29wZSxcbiAgICB0ZXguZ2V0Q2hpbGRXaXRoVmFsdWUobm9kZSwgbm9kZS5tZXRhLnZhbHVlRXhwcmVzc2lvbikhLFxuICApO1xuXG4gIGxldCBmbk5hbWUgPSBub2RlLm1ldGEub3BlcmF0b3I7XG4gIGlmICh0ZlVuYXJ5T3BlcmF0b3JzVG9DZGt0Zltmbk5hbWUgYXMgc3VwcG9ydGVkVW5hcnlPcGVyYXRvcnNdKSB7XG4gICAgZm5OYW1lID0gdGZVbmFyeU9wZXJhdG9yc1RvQ2RrdGZbZm5OYW1lIGFzIHN1cHBvcnRlZFVuYXJ5T3BlcmF0b3JzXTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBjb252ZXJ0IHVua25vd24gb3BlcmF0b3IgJHtub2RlLm1ldGEub3BlcmF0b3J9YCk7XG4gIH1cblxuICBzY29wZS5pbXBvcnRhYmxlcy5wdXNoKHtcbiAgICBjb25zdHJ1Y3ROYW1lOiBcIk9wXCIsXG4gICAgcHJvdmlkZXI6IFwiY2RrdG5cIixcbiAgfSk7XG5cbiAgY29uc3QgZm4gPSB0Lm1lbWJlckV4cHJlc3Npb24odC5pZGVudGlmaWVyKFwiT3BcIiksIHQuaWRlbnRpZmllcihmbk5hbWUpKTtcblxuICByZXR1cm4gdC5jYWxsRXhwcmVzc2lvbihmbiwgW29wZXJhbmRdKTtcbn1cblxuZnVuY3Rpb24gY29udmVydEJpbmFyeU9wRXhwcmVzc2lvblRvVHMoXG4gIHNjb3BlOiBSZXNvdXJjZVNjb3BlLFxuICBub2RlOiB0ZXguQmluYXJ5T3BFeHByZXNzaW9uLFxuKSB7XG4gIGNvbnN0IGxlZnQgPSBjb252ZXJ0VEZFeHByZXNzaW9uQXN0VG9UcyhcbiAgICBzY29wZSxcbiAgICB0ZXguZ2V0Q2hpbGRXaXRoVmFsdWUobm9kZSwgbm9kZS5tZXRhLmxoc0V4cHJlc3Npb24pISxcbiAgKTtcbiAgY29uc3QgcmlnaHQgPSBjb252ZXJ0VEZFeHByZXNzaW9uQXN0VG9UcyhcbiAgICBzY29wZSxcbiAgICB0ZXguZ2V0Q2hpbGRXaXRoVmFsdWUobm9kZSwgbm9kZS5tZXRhLnJoc0V4cHJlc3Npb24pISxcbiAgKTtcblxuICBsZXQgZm5OYW1lID0gbm9kZS5tZXRhLm9wZXJhdG9yO1xuICBpZiAodGZCaW5hcnlPcGVyYXRvcnNUb0Nka3RmW2ZuTmFtZSBhcyBzdXBwb3J0ZWRCaW5hcnlPcGVyYXRvcnNdKSB7XG4gICAgZm5OYW1lID0gdGZCaW5hcnlPcGVyYXRvcnNUb0Nka3RmW2ZuTmFtZSBhcyBzdXBwb3J0ZWRCaW5hcnlPcGVyYXRvcnNdO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGNvbnZlcnQgdW5rbm93biBvcGVyYXRvciAke25vZGUubWV0YS5vcGVyYXRvcn1gKTtcbiAgfVxuXG4gIHNjb3BlLmltcG9ydGFibGVzLnB1c2goe1xuICAgIGNvbnN0cnVjdE5hbWU6IFwiT3BcIixcbiAgICBwcm92aWRlcjogXCJjZGt0blwiLFxuICB9KTtcblxuICBjb25zdCBmbiA9IHQubWVtYmVyRXhwcmVzc2lvbih0LmlkZW50aWZpZXIoXCJPcFwiKSwgdC5pZGVudGlmaWVyKGZuTmFtZSkpO1xuICByZXR1cm4gdC5jYWxsRXhwcmVzc2lvbihmbiwgW2xlZnQsIHJpZ2h0XSk7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRUZW1wbGF0ZUV4cHJlc3Npb25Ub1RzKFxuICBzY29wZTogUmVzb3VyY2VTY29wZSxcbiAgbm9kZTogdGV4LlRlbXBsYXRlRXhwcmVzc2lvbiB8IHRleC5UZW1wbGF0ZVdyYXBFeHByZXNzaW9uLFxuKSB7XG4gIGNvbnN0IHBhcnRzID0gbm9kZS5jaGlsZHJlbi5tYXAoKGNoaWxkKSA9PiAoe1xuICAgIG5vZGU6IGNoaWxkLFxuICAgIGV4cHI6IGNvbnZlcnRURkV4cHJlc3Npb25Bc3RUb1RzKHNjb3BlLCBjaGlsZCksXG4gIH0pKTtcblxuICBjb25zdCBsYXN0UGFydCA9IHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdO1xuICBpZiAodC5pc1N0cmluZ0xpdGVyYWwobGFzdFBhcnQuZXhwcikgJiYgbGFzdFBhcnQuZXhwci52YWx1ZSA9PT0gXCJcXG5cIikge1xuICAgIC8vIFRoaXMgaXMgYSBiaXQgb2YgYSBoYWNrLCBidXQgdGhlIHRyYWlsaW5nIG5ld2xpbmUgd2UgYWRkIGR1ZSB0b1xuICAgIC8vIGhlcmVkb2NzIGxvb2tzIHVnbHkgYW5kIHVubmVjZXNzYXJ5IGluIHRoZSBnZW5lcmF0ZWQgY29kZSwgc28gd2VcbiAgICAvLyB0cnkgdG8gcmVtb3ZlIGl0XG4gICAgcGFydHMucG9wKCk7XG4gIH1cblxuICBpZiAocGFydHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHQuc3RyaW5nTGl0ZXJhbChub2RlLm1ldGEudmFsdWUpO1xuICB9XG5cbiAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiBwYXJ0c1swXS5leHByO1xuICB9XG5cbiAgbGV0IGlzU2NvcGVkVHJhdmVyc2FsID0gZmFsc2U7XG4gIGNvbnN0IGV4cHJlc3Npb25zOiB0LkV4cHJlc3Npb25bXSA9IFtdO1xuICBmb3IgKGNvbnN0IHsgbm9kZSwgZXhwciB9IG9mIHBhcnRzKSB7XG4gICAgaWYgKFxuICAgICAgdGV4LmlzU2NvcGVUcmF2ZXJzYWxFeHByZXNzaW9uKG5vZGUpICYmXG4gICAgICAhdC5pc1N0cmluZ0xpdGVyYWwoZXhwcikgJiZcbiAgICAgICF0LmlzQ2FsbEV4cHJlc3Npb24oZXhwcilcbiAgICApIHtcbiAgICAgIGV4cHJlc3Npb25zLnB1c2godC5zdHJpbmdMaXRlcmFsKFwiJHtcIikpO1xuICAgICAgaXNTY29wZWRUcmF2ZXJzYWwgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICAvLyB3ZSBzaG91bGQgaWRlYWxseSBiZSBkb2luZyB0eXBlIGNvZXJjaW9uIG1vcmVcbiAgICAgIC8vIGNhcmVmdWxseSBoZXJlLCBiZWNhdXNlIGl0IG1heSBub3QgYWx3YXlzIGJlIG5lZWRlZFxuICAgICAgdC5pc0NhbGxFeHByZXNzaW9uKGV4cHIpXG4gICAgKSB7XG4gICAgICBzY29wZS5pbXBvcnRhYmxlcy5wdXNoKHtcbiAgICAgICAgY29uc3RydWN0TmFtZTogXCJUb2tlblwiLFxuICAgICAgICBwcm92aWRlcjogXCJjZGt0blwiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cHJlc3Npb25zLnB1c2goXG4gICAgICAgIHRlbXBsYXRlLmV4cHJlc3Npb24oYFRva2VuLmFzU3RyaW5nKCUlZXhwciUlKWApKHtcbiAgICAgICAgICBleHByLFxuICAgICAgICB9KSBhcyB0LkV4cHJlc3Npb24sXG4gICAgICApO1xuICAgICAgY29udGludWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChpc1Njb3BlZFRyYXZlcnNhbCkge1xuICAgICAgICBleHByZXNzaW9ucy5wdXNoKHQuc3RyaW5nTGl0ZXJhbChcIn1cIikpO1xuICAgICAgICBpc1Njb3BlZFRyYXZlcnNhbCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBleHByZXNzaW9ucy5wdXNoKGV4cHIpO1xuICB9XG5cbiAgaWYgKGlzU2NvcGVkVHJhdmVyc2FsKSB7XG4gICAgZXhwcmVzc2lvbnMucHVzaCh0LnN0cmluZ0xpdGVyYWwoXCJ9XCIpKTtcbiAgfVxuXG4gIHJldHVybiBleHByZXNzaW9uRm9yU2VyaWFsU3RyaW5nQ29uY2F0ZW5hdGlvbihzY29wZSwgZXhwcmVzc2lvbnMpO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0T2JqZWN0RXhwcmVzc2lvblRvVHMoXG4gIHNjb3BlOiBSZXNvdXJjZVNjb3BlLFxuICBub2RlOiB0ZXguT2JqZWN0RXhwcmVzc2lvbixcbikge1xuICByZXR1cm4gdC5vYmplY3RFeHByZXNzaW9uKFxuICAgIE9iamVjdC5lbnRyaWVzKG5vZGUubWV0YS5pdGVtcylcbiAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZUNoaWxkID0gdGV4LmdldENoaWxkV2l0aFZhbHVlKG5vZGUsIHZhbHVlKTtcbiAgICAgICAgaWYgKCF2YWx1ZUNoaWxkKSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKGBVbmFibGUgdG8gdmFsdWUgZm9yIG9iamVjdCBrZXkgJyR7a2V5fSc6ICR7dmFsdWV9YCk7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdC5vYmplY3RQcm9wZXJ0eShcbiAgICAgICAgICB0LmlkZW50aWZpZXIoa2V5KSxcbiAgICAgICAgICBjb252ZXJ0VEZFeHByZXNzaW9uQXN0VG9UcyhzY29wZSwgdmFsdWVDaGlsZCksXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigocykgPT4gcyAhPT0gbnVsbCkgYXMgdC5PYmplY3RQcm9wZXJ0eVtdLFxuICApO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0RnVuY3Rpb25DYWxsRXhwcmVzc2lvblRvVHMoXG4gIHNjb3BlOiBSZXNvdXJjZVNjb3BlLFxuICBub2RlOiB0ZXguRnVuY3Rpb25DYWxsRXhwcmVzc2lvbixcbikge1xuICBjb25zdCBmdW5jdGlvbk5hbWUgPSBub2RlLm1ldGEubmFtZTtcbiAgY29uc3QgbWFwcGluZyA9IGZ1bmN0aW9uc01hcFtmdW5jdGlvbk5hbWVdO1xuXG4gIGlmICghbWFwcGluZykge1xuICAgIGxvZ2dlci5lcnJvcihcbiAgICAgIGBVbmtub3duIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSBlbmNvdW50ZXJlZC4gJHtsZWF2ZUNvbW1lbnRUZXh0fWAsXG4gICAgKTtcbiAgICBjb25zdCBhcmd1bWVudEV4cHJlc3Npb25zID0gbm9kZS5jaGlsZHJlbi5tYXAoKGNoaWxkKSA9PlxuICAgICAgY29udmVydFRGRXhwcmVzc2lvbkFzdFRvVHMoc2NvcGUsIGNoaWxkKSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHQuY2FsbEV4cHJlc3Npb24odC5pZGVudGlmaWVyKGZ1bmN0aW9uTmFtZSksIGFyZ3VtZW50RXhwcmVzc2lvbnMpO1xuICB9XG5cbiAgY29uc3QgdHJhbnNmb3JtZWROb2RlOiB0ZXguRnVuY3Rpb25DYWxsRXhwcmVzc2lvbiA9IG1hcHBpbmcudHJhbnNmb3JtZXJcbiAgICA/IG1hcHBpbmcudHJhbnNmb3JtZXIobm9kZSlcbiAgICA6IG5vZGU7XG5cbiAgY29uc3QgYXJndW1lbnRFeHByZXNzaW9ucyA9IHRyYW5zZm9ybWVkTm9kZS5jaGlsZHJlbi5tYXAoKGNoaWxkKSA9PlxuICAgIGNvbnZlcnRURkV4cHJlc3Npb25Bc3RUb1RzKHNjb3BlLCBjaGlsZCksXG4gICk7XG5cbiAgc2NvcGUuaW1wb3J0YWJsZXMucHVzaCh7XG4gICAgY29uc3RydWN0TmFtZTogXCJGblwiLFxuICAgIHByb3ZpZGVyOiBcImNka3RuXCIsXG4gIH0pO1xuXG4gIGNvbnN0IGNhbGxlZSA9IHQubWVtYmVyRXhwcmVzc2lvbihcbiAgICB0LmlkZW50aWZpZXIoXCJGblwiKSxcbiAgICB0LmlkZW50aWZpZXIobWFwcGluZy5uYW1lKSxcbiAgKTtcblxuICBpZiAoXG4gICAgbWFwcGluZy5wYXJhbWV0ZXJzLmxlbmd0aCA+IDAgJiZcbiAgICBtYXBwaW5nLnBhcmFtZXRlcnNbbWFwcGluZy5wYXJhbWV0ZXJzLmxlbmd0aCAtIDFdLnZhcmlhZGljXG4gICkge1xuICAgIGNvbnN0IGxhc3RQYXJhbWV0ZXJUeXBlID1cbiAgICAgIG1hcHBpbmcucGFyYW1ldGVyc1ttYXBwaW5nLnBhcmFtZXRlcnMubGVuZ3RoIC0gMV0udHlwZTtcbiAgICBjb25zdCBub25WYXJpYWRpY0FyZ3VtZW50cyA9IGFyZ3VtZW50RXhwcmVzc2lvbnMuc2xpY2UoXG4gICAgICAwLFxuICAgICAgbWFwcGluZy5wYXJhbWV0ZXJzLmxlbmd0aCAtIDEsXG4gICAgKTtcblxuICAgIGNvbnN0IGZuQ2FsbEFyZ3VtZW50cyA9IFtcbiAgICAgIC4uLm5vblZhcmlhZGljQXJndW1lbnRzLm1hcCgoYXJnRXhwciwgaW5kZXgpID0+XG4gICAgICAgIGNvZXJjZVR5cGUoXG4gICAgICAgICAgc2NvcGUsXG4gICAgICAgICAgYXJnRXhwcixcbiAgICAgICAgICBmaW5kRXhwcmVzc2lvblR5cGUoc2NvcGUsIGFyZ0V4cHIpLFxuICAgICAgICAgIG1hcHBpbmcucGFyYW1ldGVyc1tpbmRleF0udHlwZSxcbiAgICAgICAgKSxcbiAgICAgICksXG5cbiAgICAgIHQuYXJyYXlFeHByZXNzaW9uKFxuICAgICAgICBhcmd1bWVudEV4cHJlc3Npb25zXG4gICAgICAgICAgLnNsaWNlKG1hcHBpbmcucGFyYW1ldGVycy5sZW5ndGggLSAxKVxuICAgICAgICAgIC5tYXAoKGFyZ0V4cHIpID0+XG4gICAgICAgICAgICBjb2VyY2VUeXBlKFxuICAgICAgICAgICAgICBzY29wZSxcbiAgICAgICAgICAgICAgYXJnRXhwcixcbiAgICAgICAgICAgICAgZmluZEV4cHJlc3Npb25UeXBlKHNjb3BlLCBhcmdFeHByKSxcbiAgICAgICAgICAgICAgbGFzdFBhcmFtZXRlclR5cGUsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICksXG4gICAgICApLFxuICAgIF07XG5cbiAgICByZXR1cm4gdC5jYWxsRXhwcmVzc2lvbihjYWxsZWUsIGZuQ2FsbEFyZ3VtZW50cyk7XG4gIH1cblxuICByZXR1cm4gdC5jYWxsRXhwcmVzc2lvbihcbiAgICBjYWxsZWUsXG4gICAgYXJndW1lbnRFeHByZXNzaW9ucy5tYXAoKGFyZ0V4cHIsIGluZGV4KSA9PlxuICAgICAgY29lcmNlVHlwZShcbiAgICAgICAgc2NvcGUsXG4gICAgICAgIGFyZ0V4cHIsXG4gICAgICAgIGZpbmRFeHByZXNzaW9uVHlwZShzY29wZSwgYXJnRXhwciksXG4gICAgICAgIG1hcHBpbmcucGFyYW1ldGVyc1tpbmRleF0udHlwZSxcbiAgICAgICksXG4gICAgKSxcbiAgKTtcbn1cblxuZnVuY3Rpb24gY29udmVydEluZGV4RXhwcmVzc2lvblRvVHMoXG4gIHNjb3BlOiBSZXNvdXJjZVNjb3BlLFxuICBub2RlOiB0ZXguSW5kZXhFeHByZXNzaW9uLFxuKSB7XG4gIGNvbnN0IGNvbGxlY3Rpb25FeHByZXNzaW9uQ2hpbGQgPSB0ZXguZ2V0Q2hpbGRXaXRoVmFsdWUoXG4gICAgbm9kZSxcbiAgICBub2RlLm1ldGEuY29sbGVjdGlvbkV4cHJlc3Npb24sXG4gICk7XG4gIGNvbnN0IGtleUV4cHJlc3Npb25DaGlsZCA9IHRleC5nZXRDaGlsZFdpdGhWYWx1ZShcbiAgICBub2RlLFxuICAgIG5vZGUubWV0YS5rZXlFeHByZXNzaW9uLFxuICApO1xuXG4gIGNvbnN0IGNvbGxlY3Rpb25FeHByZXNzaW9uID0gY29udmVydFRGRXhwcmVzc2lvbkFzdFRvVHMoXG4gICAgc2NvcGUsXG4gICAgY29sbGVjdGlvbkV4cHJlc3Npb25DaGlsZCEsXG4gICk7XG4gIGNvbnN0IGtleUV4cHJlc3Npb24gPSBjb252ZXJ0VEZFeHByZXNzaW9uQXN0VG9UcyhzY29wZSwga2V5RXhwcmVzc2lvbkNoaWxkISk7XG5cbiAgc2NvcGUuaW1wb3J0YWJsZXMucHVzaCh7XG4gICAgY29uc3RydWN0TmFtZTogXCJGblwiLFxuICAgIHByb3ZpZGVyOiBcImNka3RuXCIsXG4gIH0pO1xuICBjb25zdCBjYWxsZWUgPSB0Lm1lbWJlckV4cHJlc3Npb24oXG4gICAgdC5pZGVudGlmaWVyKFwiRm5cIiksXG4gICAgdC5pZGVudGlmaWVyKFwibG9va3VwTmVzdGVkXCIpLFxuICApO1xuICByZXR1cm4gdC5jYWxsRXhwcmVzc2lvbihjYWxsZWUsIFtcbiAgICBjb2xsZWN0aW9uRXhwcmVzc2lvbixcbiAgICB0LmFycmF5RXhwcmVzc2lvbihba2V5RXhwcmVzc2lvbl0pLFxuICBdKTtcbn1cblxuZnVuY3Rpb24gY29udmVydFNwbGF0RXhwcmVzc2lvblRvVHMoXG4gIHNjb3BlOiBSZXNvdXJjZVNjb3BlLFxuICBub2RlOiB0ZXguU3BsYXRFeHByZXNzaW9uLFxuKSB7XG4gIGNvbnN0IHNvdXJjZUV4cHJlc3Npb25DaGlsZCA9IHRleC5nZXRDaGlsZFdpdGhWYWx1ZShcbiAgICBub2RlLFxuICAgIG5vZGUubWV0YS5zb3VyY2VFeHByZXNzaW9uLFxuICApITtcbiAgY29uc3Qgc291cmNlRXhwcmVzc2lvbiA9IGNvbnZlcnRURkV4cHJlc3Npb25Bc3RUb1RzKFxuICAgIHNjb3BlLFxuICAgIHNvdXJjZUV4cHJlc3Npb25DaGlsZCxcbiAgKTtcblxuICAvLyBXZSBkb24ndCBjb252ZXJ0IHRoZSByZWxhdGl2ZSBleHByZXNzaW9uIGJlY2F1c2UgZXZlcnl0aGluZyBhZnRlciB0aGUgc3BsYXQgaXMgZ29pbmcgdG8gYmVcbiAgLy8gYSBzdHJpbmdcbiAgY29uc3QgcmVsYXRpdmVFeHByZXNzaW9uID0gbm9kZS5tZXRhLmVhY2hFeHByZXNzaW9uLnN0YXJ0c1dpdGgoXG4gICAgbm9kZS5tZXRhLmFub25TeW1ib2xFeHByZXNzaW9uLFxuICApXG4gICAgPyBub2RlLm1ldGEuZWFjaEV4cHJlc3Npb24uc2xpY2Uobm9kZS5tZXRhLmFub25TeW1ib2xFeHByZXNzaW9uLmxlbmd0aClcbiAgICA6IG5vZGUubWV0YS5lYWNoRXhwcmVzc2lvbjtcblxuICBjb25zdCBzZWdtZW50cyA9IHJlbGF0aXZlRXhwcmVzc2lvbi5zcGxpdCgvXFwufFxcW3xcXF0vKS5maWx0ZXIoKHMpID0+IHMpO1xuICBzY29wZS5pbXBvcnRhYmxlcy5wdXNoKHtcbiAgICBjb25zdHJ1Y3ROYW1lOiBcIkZuXCIsXG4gICAgcHJvdmlkZXI6IFwiY2RrdG5cIixcbiAgfSk7XG4gIGNvbnN0IGNhbGxlZSA9IHQubWVtYmVyRXhwcmVzc2lvbihcbiAgICB0LmlkZW50aWZpZXIoXCJGblwiKSxcbiAgICB0LmlkZW50aWZpZXIoXCJsb29rdXBOZXN0ZWRcIiksXG4gICk7XG5cbiAgcmV0dXJuIHQuY2FsbEV4cHJlc3Npb24oY2FsbGVlLCBbXG4gICAgc291cmNlRXhwcmVzc2lvbixcbiAgICB0LmFycmF5RXhwcmVzc2lvbihbXG4gICAgICAvLyB3ZSBkb24ndCBuZWVkIHRvIHVzZSB0aGUgYW5vblN5bWJvbEV4cHJlc3Npb24gaGVyZSBiZWNhdXNlXG4gICAgICAvLyBpdCBvbmx5IGNoYW5nZXMgYmV0d2VlbiAuKiBhbmQgWypdIHdoaWNoIHdlIGRvbid0IGNhcmUgYWJvdXRcbiAgICAgIHQuc3RyaW5nTGl0ZXJhbChcIipcIiksXG4gICAgICAuLi5zZWdtZW50cy5tYXAodC5zdHJpbmdMaXRlcmFsKSxcbiAgICBdKSxcbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRDb25kaXRpb25hbEV4cHJlc3Npb25Ub1RzKFxuICBzY29wZTogUmVzb3VyY2VTY29wZSxcbiAgbm9kZTogdGV4LkNvbmRpdGlvbmFsRXhwcmVzc2lvbixcbikge1xuICBjb25zdCBjb25kaXRpb25DaGlsZCA9IHRleC5nZXRDaGlsZFdpdGhWYWx1ZShcbiAgICBub2RlLFxuICAgIG5vZGUubWV0YS5jb25kaXRpb25FeHByZXNzaW9uLFxuICApITtcbiAgbGV0IGNvbmRpdGlvbiA9IGNvbnZlcnRURkV4cHJlc3Npb25Bc3RUb1RzKHNjb3BlLCBjb25kaXRpb25DaGlsZCk7XG4gIGlmICh0LmlzSWRlbnRpZmllcihjb25kaXRpb24pICYmIGNhblVzZUZxbihjb25kaXRpb25DaGlsZCkpIHtcbiAgICAvLyBXZSBoYXZlIGEgcmVzb3VyY2Ugb3IgZGF0YSBzb3VyY2UgaGVyZSwgd2hpY2ggd2Ugd291bGQgbmVlZCB0b1xuICAgIC8vIHJlZmVyZW5jZSB1c2luZyBmcW5cbiAgICBjb25kaXRpb24gPSB0Lm1lbWJlckV4cHJlc3Npb24oY29uZGl0aW9uLCB0LmlkZW50aWZpZXIoXCJmcW5cIikpO1xuICB9XG5cbiAgY29uc3QgdHJ1ZUV4cHJlc3Npb24gPSBjb252ZXJ0VEZFeHByZXNzaW9uQXN0VG9UcyhcbiAgICBzY29wZSxcbiAgICB0ZXguZ2V0Q2hpbGRXaXRoVmFsdWUobm9kZSwgbm9kZS5tZXRhLnRydWVFeHByZXNzaW9uKSEsXG4gICk7XG5cbiAgY29uc3QgZmFsc2VFeHByZXNzaW9uID0gY29udmVydFRGRXhwcmVzc2lvbkFzdFRvVHMoXG4gICAgc2NvcGUsXG4gICAgdGV4LmdldENoaWxkV2l0aFZhbHVlKG5vZGUsIG5vZGUubWV0YS5mYWxzZUV4cHJlc3Npb24pISxcbiAgKTtcblxuICBzY29wZS5pbXBvcnRhYmxlcy5wdXNoKHtcbiAgICBjb25zdHJ1Y3ROYW1lOiBcImNvbmRpdGlvbmFsXCIsXG4gICAgcHJvdmlkZXI6IFwiY2RrdG5cIixcbiAgfSk7XG5cbiAgcmV0dXJuIHQuY2FsbEV4cHJlc3Npb24odC5pZGVudGlmaWVyKFwiY29uZGl0aW9uYWxcIiksIFtcbiAgICBjb25kaXRpb24sXG4gICAgdHJ1ZUV4cHJlc3Npb24sXG4gICAgZmFsc2VFeHByZXNzaW9uLFxuICBdKTtcbn1cblxuZnVuY3Rpb24gY29udmVydFR1cGxlRXhwcmVzc2lvblRvVHMoXG4gIHNjb3BlOiBSZXNvdXJjZVNjb3BlLFxuICBub2RlOiB0ZXguVHVwbGVFeHByZXNzaW9uLFxuKSB7XG4gIGNvbnN0IGV4cHJlc3Npb25zID0gbm9kZS5jaGlsZHJlbi5tYXAoKGNoaWxkKSA9PlxuICAgIGNvbnZlcnRURkV4cHJlc3Npb25Bc3RUb1RzKHNjb3BlLCBjaGlsZCksXG4gICk7XG5cbiAgcmV0dXJuIHQuYXJyYXlFeHByZXNzaW9uKGV4cHJlc3Npb25zKTtcbn1cblxuZnVuY3Rpb24gY29udmVydFJlbGF0aXZlVHJhdmVyc2FsRXhwcmVzc2lvblRvVHMoXG4gIHNjb3BlOiBSZXNvdXJjZVNjb3BlLFxuICBub2RlOiB0ZXguUmVsYXRpdmVUcmF2ZXJzYWxFeHByZXNzaW9uLFxuKSB7XG4gIGNvbnN0IHNlZ21lbnRzID0gbm9kZS5tZXRhLnRyYXZlcnNhbDtcblxuICAvLyBUaGUgbGVmdCBoYW5kIHNpZGUgLyBzb3VyY2Ugb2YgYSByZWxhdGl2ZSB0cmF2ZXJzYWwgaXMgbm90IGEgcHJvcGVyXG4gIC8vIG9iamVjdCAvIHJlc291cmNlIC8gZGF0YSB0aGluZyB0aGF0IGlzIGJlaW5nIHJlZmVyZW5jZWRcbiAgY29uc3Qgc291cmNlID0gY29udmVydFRGRXhwcmVzc2lvbkFzdFRvVHMoXG4gICAgc2NvcGUsXG4gICAgdGV4LmdldENoaWxkV2l0aFZhbHVlKG5vZGUsIG5vZGUubWV0YS5zb3VyY2VFeHByZXNzaW9uKSEsXG4gICk7XG5cbiAgc2NvcGUuaW1wb3J0YWJsZXMucHVzaCh7XG4gICAgY29uc3RydWN0TmFtZTogXCJGblwiLFxuICAgIHByb3ZpZGVyOiBcImNka3RuXCIsXG4gIH0pO1xuICBjb25zdCBjYWxsZWUgPSB0Lm1lbWJlckV4cHJlc3Npb24oXG4gICAgdC5pZGVudGlmaWVyKFwiRm5cIiksXG4gICAgdC5pZGVudGlmaWVyKFwibG9va3VwTmVzdGVkXCIpLFxuICApO1xuXG4gIHJldHVybiB0LmNhbGxFeHByZXNzaW9uKGNhbGxlZSwgW1xuICAgIHNvdXJjZSxcbiAgICB0LmFycmF5RXhwcmVzc2lvbihzZWdtZW50cy5tYXAoKHMpID0+IHQuc3RyaW5nTGl0ZXJhbChzLnNlZ21lbnQpKSksXG4gIF0pO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0Rm9yRXhwcmVzc2lvblRvVHMoXG4gIHNjb3BlOiBSZXNvdXJjZVNjb3BlLFxuICBub2RlOiB0ZXguRm9yRXhwcmVzc2lvbixcbikge1xuICBjb25zdCBjb2xsZWN0aW9uQ2hpbGQgPSB0ZXguZ2V0Q2hpbGRXaXRoVmFsdWUoXG4gICAgbm9kZSxcbiAgICBub2RlLm1ldGEuY29sbGVjdGlvbkV4cHJlc3Npb24sXG4gICkhO1xuXG4gIGxldCBjb2xsZWN0aW9uRXhwcmVzc2lvbiA9IGNvbnZlcnRURkV4cHJlc3Npb25Bc3RUb1RzKHNjb3BlLCBjb2xsZWN0aW9uQ2hpbGQpO1xuXG4gIGlmICh0LmlzSWRlbnRpZmllcihjb2xsZWN0aW9uRXhwcmVzc2lvbikgJiYgY2FuVXNlRnFuKGNvbGxlY3Rpb25DaGlsZCkpIHtcbiAgICAvLyBXZSBoYXZlIGEgcmVzb3VyY2Ugb3IgZGF0YSBzb3VyY2UgaGVyZSwgd2hpY2ggd2Ugd291bGQgbmVlZCB0b1xuICAgIC8vIHJlZmVyZW5jZSB1c2luZyBmcW5cbiAgICBjb2xsZWN0aW9uRXhwcmVzc2lvbiA9IHQubWVtYmVyRXhwcmVzc2lvbihcbiAgICAgIGNvbGxlY3Rpb25FeHByZXNzaW9uLFxuICAgICAgdC5pZGVudGlmaWVyKFwiZnFuXCIpLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBjb2xsZWN0aW9uUmVxdWlyZXNXcmFwcGluZyA9ICF0LmlzU3RyaW5nTGl0ZXJhbChjb2xsZWN0aW9uRXhwcmVzc2lvbik7XG4gIGNvbnN0IGV4cHJlc3Npb25zID0gW107XG4gIGNvbnN0IGNvbmRpdGlvbkJvZHkgPSBub2RlLm1ldGEua2V5VmFyXG4gICAgPyBgJHtub2RlLm1ldGEua2V5VmFyfSwgJHtub2RlLm1ldGEudmFsVmFyfWBcbiAgICA6IG5vZGUubWV0YS52YWxWYXI7XG5cbiAgY29uc3Qgb3BlbkJyYWNlID0gbm9kZS5tZXRhLm9wZW5SYW5nZVZhbHVlO1xuICBjb25zdCBjbG9zZUJyYWNlID0gbm9kZS5tZXRhLmNsb3NlUmFuZ2VWYWx1ZTtcbiAgY29uc3QgZ3JvdXBlZCA9IG5vZGUubWV0YS5ncm91cGVkVmFsdWUgPyBcIi4uLlwiIDogXCJcIjtcbiAgY29uc3QgdmFsdWVFeHByZXNzaW9uID0gYCR7bm9kZS5tZXRhLnZhbHVlRXhwcmVzc2lvbn0ke2dyb3VwZWR9YDtcblxuICBjb25zdCBwcmVmaXggPSBgXFwkeyR7b3BlbkJyYWNlfSBmb3IgJHtjb25kaXRpb25Cb2R5fSBpbiBgO1xuICBjb25zdCBrZXlWYWx1ZSA9IG5vZGUubWV0YS5rZXlFeHByZXNzaW9uXG4gICAgPyBgIDogJHtub2RlLm1ldGEua2V5RXhwcmVzc2lvbn0gPT4gJHt2YWx1ZUV4cHJlc3Npb259YFxuICAgIDogYCA6ICR7dmFsdWVFeHByZXNzaW9ufWA7XG4gIGNvbnN0IGNvbmRpdGlvbmFsID0gbm9kZS5tZXRhLmNvbmRpdGlvbmFsRXhwcmVzc2lvbjtcbiAgY29uc3Qgc3VmZml4ID0gYCR7a2V5VmFsdWV9JHtcbiAgICBjb25kaXRpb25hbCA/IGAgaWYgJHtjb25kaXRpb25hbH1gIDogXCJcIlxuICB9JHtjbG9zZUJyYWNlfX1gO1xuXG4gIGV4cHJlc3Npb25zLnB1c2godC5zdHJpbmdMaXRlcmFsKHByZWZpeCkpO1xuICBpZiAoY29sbGVjdGlvblJlcXVpcmVzV3JhcHBpbmcpIHtcbiAgICBleHByZXNzaW9ucy5wdXNoKHQuc3RyaW5nTGl0ZXJhbChcIiR7XCIpKTtcbiAgfVxuICBleHByZXNzaW9ucy5wdXNoKGNvbGxlY3Rpb25FeHByZXNzaW9uKTtcbiAgaWYgKGNvbGxlY3Rpb25SZXF1aXJlc1dyYXBwaW5nKSB7XG4gICAgZXhwcmVzc2lvbnMucHVzaCh0LnN0cmluZ0xpdGVyYWwoXCJ9XCIpKTtcbiAgfVxuICBleHByZXNzaW9ucy5wdXNoKHQuc3RyaW5nTGl0ZXJhbChzdWZmaXgpKTtcblxuICByZXR1cm4gZXhwcmVzc2lvbkZvclNlcmlhbFN0cmluZ0NvbmNhdGVuYXRpb24oc2NvcGUsIGV4cHJlc3Npb25zKTtcbn1cblxuZnVuY3Rpb24gY29udmVydFRGRXhwcmVzc2lvbkFzdFRvVHMoXG4gIHNjb3BlOiBSZXNvdXJjZVNjb3BlLFxuICBub2RlOiB0ZXguRXhwcmVzc2lvblR5cGUsXG4pOiB0LkV4cHJlc3Npb24ge1xuICBpZiAodGV4LmlzTGl0ZXJhbFZhbHVlRXhwcmVzc2lvbihub2RlKSkge1xuICAgIHJldHVybiBjb252ZXJ0TGl0ZXJhbFZhbHVlRXhwcmVzc2lvblRvVHMoc2NvcGUsIG5vZGUpO1xuICB9XG5cbiAgaWYgKHRleC5pc1Njb3BlVHJhdmVyc2FsRXhwcmVzc2lvbihub2RlKSkge1xuICAgIHJldHVybiBjb252ZXJ0U2NvcGVUcmF2ZXJzYWxFeHByZXNzaW9uVG9UcyhzY29wZSwgbm9kZSk7XG4gIH1cblxuICBpZiAodGV4LmlzVW5hcnlPcEV4cHJlc3Npb24obm9kZSkpIHtcbiAgICByZXR1cm4gY29udmVydFVuYXJ5T3BFeHByZXNzaW9uVG9UcyhzY29wZSwgbm9kZSk7XG4gIH1cblxuICBpZiAodGV4LmlzQmluYXJ5T3BFeHByZXNzaW9uKG5vZGUpKSB7XG4gICAgcmV0dXJuIGNvbnZlcnRCaW5hcnlPcEV4cHJlc3Npb25Ub1RzKHNjb3BlLCBub2RlKTtcbiAgfVxuXG4gIGlmICh0ZXguaXNUZW1wbGF0ZUV4cHJlc3Npb24obm9kZSkgfHwgdGV4LmlzVGVtcGxhdGVXcmFwRXhwcmVzc2lvbihub2RlKSkge1xuICAgIHJldHVybiBjb252ZXJ0VGVtcGxhdGVFeHByZXNzaW9uVG9UcyhzY29wZSwgbm9kZSk7XG4gIH1cblxuICBpZiAodGV4LmlzT2JqZWN0RXhwcmVzc2lvbihub2RlKSkge1xuICAgIHJldHVybiBjb252ZXJ0T2JqZWN0RXhwcmVzc2lvblRvVHMoc2NvcGUsIG5vZGUpO1xuICB9XG5cbiAgaWYgKHRleC5pc0Z1bmN0aW9uQ2FsbEV4cHJlc3Npb24obm9kZSkpIHtcbiAgICByZXR1cm4gY29udmVydEZ1bmN0aW9uQ2FsbEV4cHJlc3Npb25Ub1RzKHNjb3BlLCBub2RlKTtcbiAgfVxuXG4gIGlmICh0ZXguaXNJbmRleEV4cHJlc3Npb24obm9kZSkpIHtcbiAgICByZXR1cm4gY29udmVydEluZGV4RXhwcmVzc2lvblRvVHMoc2NvcGUsIG5vZGUpO1xuICB9XG5cbiAgaWYgKHRleC5pc1NwbGF0RXhwcmVzc2lvbihub2RlKSkge1xuICAgIHJldHVybiBjb252ZXJ0U3BsYXRFeHByZXNzaW9uVG9UcyhzY29wZSwgbm9kZSk7XG4gIH1cblxuICBpZiAodGV4LmlzQ29uZGl0aW9uYWxFeHByZXNzaW9uKG5vZGUpKSB7XG4gICAgcmV0dXJuIGNvbnZlcnRDb25kaXRpb25hbEV4cHJlc3Npb25Ub1RzKHNjb3BlLCBub2RlKTtcbiAgfVxuXG4gIGlmICh0ZXguaXNUdXBsZUV4cHJlc3Npb24obm9kZSkpIHtcbiAgICByZXR1cm4gY29udmVydFR1cGxlRXhwcmVzc2lvblRvVHMoc2NvcGUsIG5vZGUpO1xuICB9XG5cbiAgaWYgKHRleC5pc1JlbGF0aXZlVHJhdmVyc2FsRXhwcmVzc2lvbihub2RlKSkge1xuICAgIHJldHVybiBjb252ZXJ0UmVsYXRpdmVUcmF2ZXJzYWxFeHByZXNzaW9uVG9UcyhzY29wZSwgbm9kZSk7XG4gIH1cblxuICBpZiAodGV4LmlzRm9yRXhwcmVzc2lvbihub2RlKSkge1xuICAgIHJldHVybiBjb252ZXJ0Rm9yRXhwcmVzc2lvblRvVHMoc2NvcGUsIG5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHQuc3RyaW5nTGl0ZXJhbChcIlwiKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4cHJlc3Npb25Bc3QoXG4gIGlucHV0OiBzdHJpbmcsXG4pOiBQcm9taXNlPHRleC5FeHByZXNzaW9uVHlwZT4ge1xuICBjb25zdCB7IHdyYXAsIHdyYXBPZmZzZXQgfSA9IHdyYXBUZXJyYWZvcm1FeHByZXNzaW9uKGlucHV0KTtcbiAgY29uc3QgYXN0ID0gYXdhaXQgZ2V0RXhwcmVzc2lvbkFzdChcIm1haW4udGZcIiwgd3JhcCk7XG5cbiAgaWYgKCFhc3QpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBwYXJzZSB0ZXJyYWZvcm0gZXhwcmVzc2lvbjogJHtpbnB1dH1gKTtcbiAgfVxuXG4gIGlmICh3cmFwT2Zmc2V0ICE9IDAgJiYgdGV4LmlzVGVtcGxhdGVXcmFwRXhwcmVzc2lvbihhc3QpKSB7XG4gICAgcmV0dXJuIGFzdC5jaGlsZHJlblswXTtcbiAgfVxuXG4gIHJldHVybiBhc3Q7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb252ZXJ0VGVycmFmb3JtRXhwcmVzc2lvblRvVHMoXG4gIHNjb3BlOiBSZXNvdXJjZVNjb3BlLFxuICBpbnB1dDogc3RyaW5nLFxuICB0YXJnZXRUeXBlOiAoKSA9PiBBdHRyaWJ1dGVUeXBlLFxuKTogUHJvbWlzZTx0LkV4cHJlc3Npb24+IHtcbiAgbG9nZ2VyLmRlYnVnKGBjb252ZXJ0VGVycmFmb3JtRXhwcmVzc2lvblRvVHMoJHtpbnB1dH0pYCk7XG4gIGNvbnN0IHRzRXhwcmVzc2lvbiA9IGNvbnZlcnRURkV4cHJlc3Npb25Bc3RUb1RzKFxuICAgIHNjb3BlLFxuICAgIGF3YWl0IGV4cHJlc3Npb25Bc3QoaW5wdXQpLFxuICApO1xuXG4gIHJldHVybiBjb2VyY2VUeXBlKFxuICAgIHNjb3BlLFxuICAgIHRzRXhwcmVzc2lvbixcbiAgICBmaW5kRXhwcmVzc2lvblR5cGUoc2NvcGUsIHRzRXhwcmVzc2lvbiksXG4gICAgdGFyZ2V0VHlwZSgpLFxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXh0cmFjdEl0ZXJhdG9yVmFyaWFibGVzRnJvbUV4cHJlc3Npb24oXG4gIGlucHV0OiBzdHJpbmcsXG4pOiBQcm9taXNlPEl0ZXJhdG9yVmFyaWFibGVSZWZlcmVuY2VbXT4ge1xuICBjb25zdCBwb3NzaWJsZVZhcmlhYmxlU3BvdHMgPSBhd2FpdCBnZXRSZWZlcmVuY2VzSW5FeHByZXNzaW9uKFxuICAgIFwibWFpbi50ZlwiLFxuICAgIGlucHV0LFxuICApO1xuXG4gIHJldHVybiBwb3NzaWJsZVZhcmlhYmxlU3BvdHNcbiAgICAuZmlsdGVyKChzcG90KSA9PiBzcG90LnZhbHVlLnN0YXJ0c1dpdGgoXCJlYWNoLlwiKSlcbiAgICAubWFwKChzcG90KSA9PiAoe1xuICAgICAgc3RhcnQ6IHNwb3Quc3RhcnRQb3NpdGlvbixcbiAgICAgIGVuZDogc3BvdC5lbmRQb3NpdGlvbixcbiAgICAgIHZhbHVlOiBzcG90LnZhbHVlLFxuICAgIH0pKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGR5bmFtaWNWYXJpYWJsZVRvQXN0KFxuICBzY29wZTogUHJvZ3JhbVNjb3BlLFxuICBub2RlOiB0ZXguU2NvcGVUcmF2ZXJzYWxFeHByZXNzaW9uLFxuICBpdGVyYXRvck5hbWU6IHN0cmluZyxcbiAgYmxvY2s6IHN0cmluZyA9IFwiZWFjaFwiLFxuKTogdC5FeHByZXNzaW9uIHtcbiAgaWYgKGl0ZXJhdG9yTmFtZSA9PT0gXCJkeW5hbWljLWJsb2NrXCIpIHtcbiAgICByZXR1cm4gZXhwcmVzc2lvbkZvclNlcmlhbFN0cmluZ0NvbmNhdGVuYXRpb24oc2NvcGUsIFtcbiAgICAgIHQuc3RyaW5nTGl0ZXJhbChcIiR7XCIpLFxuICAgICAgdC5zdHJpbmdMaXRlcmFsKGJsb2NrKSxcbiAgICAgIHQuc3RyaW5nTGl0ZXJhbChcIn1cIiksXG4gICAgXSk7XG4gIH1cbiAgaWYgKG5vZGUubWV0YS52YWx1ZSA9PT0gYCR7YmxvY2t9LmtleWApIHtcbiAgICByZXR1cm4gdC5tZW1iZXJFeHByZXNzaW9uKHQuaWRlbnRpZmllcihpdGVyYXRvck5hbWUpLCB0LmlkZW50aWZpZXIoXCJrZXlcIikpO1xuICB9XG4gIGlmIChub2RlLm1ldGEudmFsdWUgPT09IGAke2Jsb2NrfS52YWx1ZWApIHtcbiAgICByZXR1cm4gdC5tZW1iZXJFeHByZXNzaW9uKFxuICAgICAgdC5pZGVudGlmaWVyKGl0ZXJhdG9yTmFtZSksXG4gICAgICB0LmlkZW50aWZpZXIoXCJ2YWx1ZVwiKSxcbiAgICApO1xuICB9XG5cbiAgaWYgKGJsb2NrID09PSBcImNvdW50XCIgJiYgbm9kZS5tZXRhLnZhbHVlID09PSBgJHtibG9ja30uaW5kZXhgKSB7XG4gICAgcmV0dXJuIHQubWVtYmVyRXhwcmVzc2lvbihcbiAgICAgIHQuaWRlbnRpZmllcihpdGVyYXRvck5hbWUpLFxuICAgICAgdC5pZGVudGlmaWVyKFwiaW5kZXhcIiksXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHNlZ21lbnRzID0gbm9kZS5tZXRhLnRyYXZlcnNhbDtcblxuICBpZiAoXG4gICAgc2VnbWVudHMubGVuZ3RoID4gMiAmJlxuICAgIHNlZ21lbnRzWzBdLnNlZ21lbnQgPT09IGJsb2NrICYmXG4gICAgc2VnbWVudHNbMV0uc2VnbWVudCA9PT0gXCJ2YWx1ZVwiXG4gICkge1xuICAgIGNvbnN0IHNlZ21lbnRzQWZ0ZXJFYWNoVmFsdWUgPSBzZWdtZW50cy5zbGljZSgyKTtcbiAgICBzY29wZS5pbXBvcnRhYmxlcy5wdXNoKHtcbiAgICAgIGNvbnN0cnVjdE5hbWU6IFwiRm5cIixcbiAgICAgIHByb3ZpZGVyOiBcImNka3RuXCIsXG4gICAgfSk7XG4gICAgY29uc3QgY2FsbGVlID0gdC5tZW1iZXJFeHByZXNzaW9uKFxuICAgICAgdC5pZGVudGlmaWVyKFwiRm5cIiksXG4gICAgICB0LmlkZW50aWZpZXIoXCJsb29rdXBOZXN0ZWRcIiksXG4gICAgKTtcbiAgICByZXR1cm4gdC5jYWxsRXhwcmVzc2lvbihjYWxsZWUsIFtcbiAgICAgIHQubWVtYmVyRXhwcmVzc2lvbih0LmlkZW50aWZpZXIoaXRlcmF0b3JOYW1lKSwgdC5pZGVudGlmaWVyKFwidmFsdWVcIikpLFxuICAgICAgdC5hcnJheUV4cHJlc3Npb24oXG4gICAgICAgIHNlZ21lbnRzQWZ0ZXJFYWNoVmFsdWUubWFwKChwYXJ0KSA9PiB7XG4gICAgICAgICAgaWYgKHBhcnQudHlwZSA9PT0gXCJuYW1lVHJhdmVyc2FsXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0LnN0cmluZ0xpdGVyYWwocGFydC5zZWdtZW50KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHQuc3RyaW5nTGl0ZXJhbChgWyR7cGFydC5zZWdtZW50fV1gKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICBdKTtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihcbiAgICBgQ2FuIG5vdCBjcmVhdGUgQVNUIGZvciBpdGVyYXRvciB2YXJpYWJsZSBvZiAnJHtub2RlLm1ldGEudmFsdWV9J2AsXG4gICk7XG59XG4iXX0=
632
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZXhwcmVzc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLGdEQUFrQztBQUNsQywrREFBdUM7QUFDdkMsbUNBQWdFO0FBTWhFLDhDQUE4RTtBQUM5RSw4Q0FHeUI7QUFDekIsNkRBQTZEO0FBQzdELDZDQUE4RDtBQUU5RCx1REFBa0Q7QUFDbEQsNkNBQWlEO0FBQ2pELDJDQUEyQztBQUUzQyxNQUFNLHdCQUF3QixHQUFHO0lBQy9CLFNBQVMsRUFBRSxJQUFJO0lBQ2YsVUFBVSxFQUFFLEtBQUs7SUFDakIsV0FBVyxFQUFFLElBQUk7SUFDakIsa0JBQWtCLEVBQUUsS0FBSztJQUN6QixRQUFRLEVBQUUsSUFBSTtJQUNkLGVBQWUsRUFBRSxLQUFLO0lBQ3RCLEtBQUssRUFBRSxJQUFJO0lBQ1gsUUFBUSxFQUFFLEtBQUs7SUFDZixHQUFHLEVBQUUsS0FBSztJQUNWLFFBQVEsRUFBRSxLQUFLO0lBQ2YsUUFBUSxFQUFFLEtBQUs7SUFDZixNQUFNLEVBQUUsS0FBSztJQUNiLE1BQU0sRUFBRSxLQUFLO0NBQ2QsQ0FBQztBQUVGLE1BQU0sdUJBQXVCLEdBQUc7SUFDOUIsVUFBVSxFQUFFLEtBQUs7SUFDakIsTUFBTSxFQUFFLFFBQVE7Q0FDakIsQ0FBQztBQUtGLFNBQVMsc0JBQXNCLENBQzdCLFVBQXdDLEVBQ3hDLFFBQVEsR0FBRyxLQUFLO0lBRWhCLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNkLElBQUksUUFBUSxJQUFJLGlDQUFHLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxJQUFJLEdBQUcsR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFD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O3FCQUFNLENBQUM7b0JBQ04sT0FBTyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7Z0JBQzlDLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FDSDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLElBQUksS0FBSyxDQUNiLGdEQUFnRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUNuRSxDQUFDO0FBQ0osQ0FBQztBQS9ERCxvREErREMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0ICogYXMgdCBmcm9tIFwiQGJhYmVsL3R5cGVzXCI7XG5pbXBvcnQgdGVtcGxhdGUgZnJvbSBcIkBiYWJlbC90ZW1wbGF0ZVwiO1xuaW1wb3J0IHsgY2FtZWxDYXNlLCBmaWxlQnVnQ29tbWVudFRleHQsIGxvZ2dlciB9IGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQge1xuICBJdGVyYXRvclZhcmlhYmxlUmVmZXJlbmNlLFxuICBQcm9ncmFtU2NvcGUsXG4gIFJlc291cmNlU2NvcGUsXG59IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBnZXRSZWZlcmVuY2VzSW5FeHByZXNzaW9uLCBnZXRFeHByZXNzaW9uQXN0IH0gZnJvbSBcIkBjZGt0bi9oY2wyanNvblwiO1xuaW1wb3J0IHtcbiAgVEZFeHByZXNzaW9uU3ludGF4VHJlZSBhcyB0ZXgsXG4gIHdyYXBUZXJyYWZvcm1FeHByZXNzaW9uLFxufSBmcm9tIFwiQGNka3RuL2hjbDJqc29uXCI7XG5pbXBvcnQgeyBmdW5jdGlvbnNNYXAgfSBmcm9tIFwiLi9mdW5jdGlvbi1iaW5kaW5ncy9mdW5jdGlvbnNcIjtcbmltcG9ydCB7IGNvZXJjZVR5cGUsIGZpbmRFeHByZXNzaW9uVHlwZSB9IGZyb20gXCIuL2NvZXJjZVR5cGVcIjtcbmltcG9ydCB7IEF0dHJpYnV0ZVR5cGUgfSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCB7IGdldFR5cGVBdFBhdGggfSBmcm9tIFwiLi90ZXJyYWZvcm1TY2hlbWFcIjtcbmltcG9ydCB7IGNvbnRhaW5zUmVmZXJlbmNlIH0gZnJvbSBcIi4vcmVmZXJlbmNlc1wiO1xuaW1wb3J0IHsgdmFyaWFibGVOYW1lIH0gZnJvbSBcIi4vdmFyaWFibGVzXCI7XG5cbmNvbnN0IHRmQmluYXJ5T3BlcmF0b3JzVG9DZGt0ZiA9IHtcbiAgbG9naWNhbE9yOiBcIm9yXCIsXG4gIGxvZ2ljYWxBbmQ6IFwiYW5kXCIsXG4gIGdyZWF0ZXJUaGFuOiBcImd0XCIsXG4gIGdyZWF0ZXJUaGFuT3JFcXVhbDogXCJndGVcIixcbiAgbGVzc1RoYW46IFwibHRcIixcbiAgbGVzc1RoYW5PckVxdWFsOiBcImx0ZVwiLFxuICBlcXVhbDogXCJlcVwiLFxuICBub3RFcXVhbDogXCJuZXFcIixcbiAgYWRkOiBcImFkZFwiLFxuICBzdWJ0cmFjdDogXCJzdWJcIixcbiAgbXVsdGlwbHk6IFwibXVsXCIsXG4gIGRpdmlkZTogXCJkaXZcIixcbiAgbW9kdWxvOiBcIm1vZFwiLFxufTtcblxuY29uc3QgdGZVbmFyeU9wZXJhdG9yc1RvQ2RrdGYgPSB7XG4gIGxvZ2ljYWxOb3Q6IFwibm90XCIsXG4gIG5lZ2F0ZTogXCJuZWdhdGVcIixcbn07XG5cbnR5cGUgc3VwcG9ydGVkQmluYXJ5T3BlcmF0b3JzID0ga2V5b2YgdHlwZW9mIHRmQmluYXJ5T3BlcmF0b3JzVG9DZGt0ZjtcbnR5cGUgc3VwcG9ydGVkVW5hcnlPcGVyYXRvcnMgPSBrZXlvZiB0eXBlb2YgdGZVbmFyeU9wZXJhdG9yc1RvQ2RrdGY7XG5cbmZ1bmN0aW9uIHRyYXZlcnNhbFBhcnRzVG9TdHJpbmcoXG4gIHRyYXZlcnNhbHM6IHRleC5UZXJyYWZvcm1UcmF2ZXJzYWxQYXJ0W10sXG4gIGFzU3VmZml4ID0gZmFsc2UsXG4pIHtcbiAgbGV0IHNlZWQgPSBcIlwiO1xuICBpZiAoYXNTdWZmaXggJiYgdGV4LmlzTmFtZVRyYXZlcnNhbFBhcnQodHJhdmVyc2Fsc1swXSkpIHtcbiAgICBzZWVkID0gXCIuXCI7XG4gIH1cbiAgcmV0dXJuIHRyYXZlcnNhbHMucmVkdWNlKChhY2MsIHBhcnQpID0+IHtcbiAgICBpZiAocGFydC50eXBlID09PSBcIm5hbWVUcmF2ZXJzYWxcIikge1xuICAgICAgaWYgKGFjYyA9PT0gc2VlZCkge1xuICAgICAgICByZXR1cm4gYCR7YWNjfSR7cGFydC5zZWdtZW50fWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYCR7YWNjfS4ke3BhcnQuc2VnbWVudH1gO1xuICAgIH1cbiAgICByZXR1cm4gYCR7YWNjfVske3BhcnQuc2VnbWVudH1dYDtcbiAgfSwgc2VlZCk7XG59XG5cbmZ1bmN0aW9uIGNhblVzZUZxbihleHByZXNzaW9uOiB0ZXguRXhwcmVzc2lvblR5cGUpIHtcbiAgaWYgKCF0ZXguaXNTY29wZVRyYXZlcnNhbEV4cHJlc3Npb24oZXhwcmVzc2lvbikpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCByb290U2VnbWVudCA9IGV4cHJlc3Npb24ubWV0YS50cmF2ZXJzYWxbMF0uc2VnbWVudDtcblxuICByZXR1cm4gIVtcInZhclwiLCBcImxvY2FsXCJdLmluY2x1ZGVzKHJvb3RTZWdtZW50KTtcbn1cblxuZnVuY3Rpb24gdHJhdmVyc2FsVG9WYXJpYWJsZU5hbWUoXG4gIHNjb3BlOiBQcm9ncmFtU2NvcGUsXG4gIG5vZGU6IHRleC5FeHByZXNzaW9uVHlwZSxcbikge1xuICBpZiAoIXRleC5pc1Njb3BlVHJhdmVyc2FsRXhwcmVzc2lvbihub2RlKSkge1xuICAgIGxvZ2dlci5lcnJvcihcbiAgICAgIGBVbmV4cGVjdGVkIGV4cHJlc3Npb24gdHlwZSAke25vZGUudHlwZX0gd2l0aCB2YWx1ZSAke25vZGUubWV0YS52YWx1ZX0gcGFzc2VkIHRvIGNvbnZlcnQgdG8gYSB2YXJpYWJsZS4gJHtmaWxlQnVnQ29tbWVudFRleHR9YCxcbiAgICApO1xuICAgIHJldHVybiBcIlwiO1xuICB9XG5cbiAgY29uc3Qgc2VnbWVudHMgPSBub2RlLm1ldGEudHJhdmVyc2FsO1xuICBpZiAoc2VnbWVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIG5vZGUubWV0YS5mdWxsQWNjZXNzb3I7XG4gIH1cbiAgY29uc3Qgcm9vdFNlZ21lbnQgPSBzZWdtZW50c1swXS5zZWdtZW50O1xuICBjb25zdCByZXNvdXJjZSA9XG4gICAgcm9vdFNlZ21lbnQgPT09IFwiZGF0YVwiXG4gICAgICA/IGAke3NlZ21lbnRzWzBdLnNlZ21lbnR9LiR7c2VnbWVudHNbMV0uc2VnbWVudH1gXG4gICAgICA6IHJvb3RTZWdtZW50O1xuICBjb25zdCBuYW1lID1cbiAgICByb290U2VnbWVudCA9PT0gXCJkYXRhXCIgPyBzZWdtZW50c1syXS5zZWdtZW50IDogc2VnbWVudHNbMV0uc2VnbWVudDtcblxuICByZXR1cm4gdmFyaWFibGVOYW1lKHNjb3BlLCByZXNvdXJjZSwgbmFtZSk7XG59XG5cbmZ1bmN0aW9uIGV4cHJlc3Npb25Gb3JTZXJpYWxTdHJpbmdDb25jYXRlbmF0aW9uKFxuICBzY29wZTogUmVzb3VyY2VTY29wZSxcbiAgbm9kZXM6IHQuRXhwcmVzc2lvbltdLFxuKSB7XG4gIGNvbnN0IHJlZHVjZWROb2RlcyA9IG5vZGVzLnJlZHVjZSgoYWNjLCBub2RlKSA9PiB7XG4gICAgY29uc3QgcHJldiA9IGFjY1thY2MubGVuZ3RoIC0gMV07XG4gICAgaWYgKCFwcmV2KSByZXR1cm4gW25vZGVdO1xuXG4gICAgaWYgKHQuaXNTdHJpbmdMaXRlcmFsKHByZXYpICYmIHQuaXNTdHJpbmdMaXRlcmFsKG5vZGUpKSB7XG4gICAgICBhY2MucG9wKCk7XG4gICAgICBhY2MucHVzaCh0LnN0cmluZ0xpdGVyYWwocHJldi52YWx1ZSArIG5vZGUudmFsdWUpKTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfVxuXG4gICAgYWNjLnB1c2gobm9kZSk7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10gYXMgdC5FeHByZXNzaW9uW10pO1xuXG4gIHJldHVybiByZWR1Y2VkTm9kZXMucmVkdWNlKFxuICAgIChhY2M6IHQuRXhwcmVzc2lvbiB8IHVuZGVmaW5lZCwgbm9kZTogdC5FeHByZXNzaW9uKSA9PiB7XG4gICAgICBpZiAoIWFjYykge1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgIH1cblxuICAgICAgLy8gd3JhcCBhY2Nlc3MgdG8gZHluYW1pYyBibG9ja3MgaW4gVG9rZW4uYXNTdHJpbmcoKSBhcyB0aGV5IHJldHVybiBhIExhenlcbiAgICAgIC8vIGZvciAua2V5IGFuZCAudmFsdWUgd2hpY2ggY2FuJ3QgYmUgY29uY2F0ZW5hdGVkIGluIGxhbmd1YWdlcyBsaWtlIFB5dGhvblxuICAgICAgLy8gYmVjYXVzZSBKU0lJIGN1cnJlbnRseSBoYXMgbm8gc3VwcG9ydCBmb3IgdGhlIHRvU3RyaW5nKCkgbWV0aG9kIGluXG4gICAgICAvLyBsYW5ndWFnZXMgb3RoZXIgdGhhbiBUeXBlU2NyaXB0OiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2pzaWkvaXNzdWVzLzM4MFxuICAgICAgLy8gZXhhbXBsZTogZHluYW1pY19pdGVyYXRvcjAua2V5IC8gZHluYW1pY19pdGVyYXRvcjAudmFsdWVcbiAgICAgIGlmIChcbiAgICAgICAgdC5pc01lbWJlckV4cHJlc3Npb24obm9kZSkgJiZcbiAgICAgICAgdC5pc0lkZW50aWZpZXIobm9kZS5vYmplY3QpICYmXG4gICAgICAgIE9iamVjdC52YWx1ZXMoc2NvcGUuc2NvcGVkVmFyaWFibGVzIHx8IHt9KS5pbmNsdWRlcyhub2RlLm9iamVjdC5uYW1lKSAmJlxuICAgICAgICB0LmlzSWRlbnRpZmllcihub2RlLnByb3BlcnR5KSAmJlxuICAgICAgICBbXCJrZXlcIiwgXCJ2YWx1ZVwiXS5pbmNsdWRlcyhub2RlLnByb3BlcnR5Lm5hbWUpXG4gICAgICApIHtcbiAgICAgICAgbm9kZSA9IGNvZXJjZVR5cGUoc2NvcGUsIG5vZGUsIFwiZHluYW1pY1wiLCBcInN0cmluZ1wiKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHQuYmluYXJ5RXhwcmVzc2lvbihcIitcIiwgYWNjIGFzIHQuRXhwcmVzc2lvbiwgbm9kZSk7XG4gICAgfSxcbiAgKTtcbn1cblxuZnVuY3Rpb24gZ2V0VGZSZXNvdXJjZVBhdGhGcm9tTm9kZShub2RlOiB0ZXguU2NvcGVUcmF2ZXJzYWxFeHByZXNzaW9uKSB7XG4gIGNvbnN0IHNlZ21lbnRzID0gbm9kZS5tZXRhLnRyYXZlcnNhbDtcbiAgbGV0IHJlc291cmNlID0gc2VnbWVudHNbMF0uc2VnbWVudDtcbiAgbGV0IHJlc3VsdCA9IFtdO1xuICBsZXQgYXR0cmlidXRlcyA9IFtdO1xuXG4gIGlmIChzZWdtZW50c1swXS5zZWdtZW50ID09PSBcImRhdGFcIikge1xuICAgIHJlc3VsdC5wdXNoKHNlZ21lbnRzWzBdLnNlZ21lbnQpO1xuICAgIHJlc291cmNlID0gc2VnbWVudHNbMV0uc2VnbWVudDtcbiAgICBhdHRyaWJ1dGVzID0gc2VnbWVudHMuc2xpY2UoMyk7IC8vIHdlIHdhbnQgdG8gc2tpcCB0aGUgdmFyaWFibGUgbmFtZVxuICB9IGVsc2Uge1xuICAgIGF0dHJpYnV0ZXMgPSBzZWdtZW50cy5zbGljZSgyKTsgLy8gd2Ugd2FudCB0byBza2lwIHRoZSB2YXJpYWJsZSBuYW1lXG4gIH1cblxuICBjb25zdCBbcHJvdmlkZXIsIC4uLnJlc291cmNlTmFtZUZyYWdtZW50c10gPSByZXNvdXJjZS5zcGxpdChcIl9cIik7XG5cbiAgLy8gSGFjazogVGhpcyBoYXBwZW5zIGluIHRoZSBjYXNlIG9mIGBleHRlcm5hbGAgcHJvdmlkZXJcbiAgLy8gd2hlcmUgdGhlIGRhdGEgc291cmNlIGRvZXMgbm90IGhhdmUgYSBwcm92aWRlciBuYW1lIHByZWZpeFxuICBpZiAocmVzb3VyY2VOYW1lRnJhZ21lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJlc291cmNlTmFtZUZyYWdtZW50cy5wdXNoKHByb3ZpZGVyKTtcbiAgfVxuXG4gIHJlc3VsdC5wdXNoKHByb3ZpZGVyKTtcbiAgcmVzdWx0LnB1c2gocmVzb3VyY2VOYW1lRnJhZ21lbnRzLmpvaW4oXCJfXCIpKTtcbiAgcmVzdWx0ID0gW1xuICAgIC4uLnJlc3VsdCxcbiAgICAuLi5hdHRyaWJ1dGVzLm1hcCgoc2VnKSA9PiB7XG4gICAgICBpZiAodGV4LmlzSW5kZXhUcmF2ZXJzYWxQYXJ0KHNlZykpIHtcbiAgICAgICAgcmV0dXJuIGBbJHtzZWcuc2VnbWVudH1dYDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzZWcuc2VnbWVudDtcbiAgICB9KSxcbiAgXTtcblxuICByZXR1cm4gcmVzdWx0LmpvaW4oXCIuXCIpO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0TGl0ZXJhbFZhbHVlRXhwcmVzc2lvblRvVHMoXG4gIF9zY29wZTogUmVzb3VyY2VTY29wZSxcbiAgbm9kZTogdGV4LkxpdGVyYWxWYWx1ZUV4cHJlc3Npb24sXG4pIHtcbiAgY29uc3QgbGl0ZXJhbFR5cGUgPSBub2RlLm1ldGEudHlwZTtcbiAgaWYgKGxpdGVyYWxUeXBlID09PSBcIm51bWJlclwiKSB7XG4gICAgcmV0dXJuIHQubnVtZXJpY0xpdGVyYWwoTnVtYmVyKG5vZGUubWV0YS52YWx1ZSkpO1xuICB9XG4gIGlmIChsaXRlcmFsVHlwZSA9PT0gXCJib29sXCIpIHtcbiAgICByZXR1cm4gdC5ib29sZWFuTGl0ZXJhbChub2RlLm1ldGEudmFsdWUgPT09IFwidHJ1ZVwiID8gdHJ1ZSA6IGZhbHNlKTtcbiAgfVxuXG4gIHJldHVybiB0LnN0cmluZ0xpdGVyYWwobm9kZS5tZXRhLnZhbHVlKTtcbn1cblxuZnVuY3Rpb24gY29udmVydFNjb3BlVHJhdmVyc2FsRXhwcmVzc2lvblRvVHMoXG4gIHNjb3BlOiBSZXNvdXJjZVNjb3BlLFxuICBub2RlOiB0ZXguU2NvcGVUcmF2ZXJzYWxFeHByZXNzaW9uLFxuKSB7XG4gIGNvbnN0IGhhc1JlZmVyZW5jZSA9IGNvbnRhaW5zUmVmZXJlbmNlKG5vZGUpO1xuXG4gIGNvbnN0IHNlZ21lbnRzID0gbm9kZS5tZXRhLnRyYXZlcnNhbDtcblxuICBpZiAoc2VnbWVudHNbMF0uc2VnbWVudCA9PT0gXCJlYWNoXCIgJiYgc2NvcGUuZm9yRWFjaEl0ZXJhdG9yTmFtZSkge1xuICAgIHJldHVybiBkeW5hbWljVmFyaWFibGVUb0FzdChzY29wZSwgbm9kZSwgc2NvcGUuZm9yRWFjaEl0ZXJhdG9yTmFtZSk7XG4gIH1cblxuICBpZiAoc2VnbWVudHNbMF0uc2VnbWVudCA9PT0gXCJjb3VudFwiICYmIHNjb3BlLmNvdW50SXRlcmF0b3JOYW1lKSB7XG4gICAgcmV0dXJuIGR5bmFtaWNWYXJpYWJsZVRvQXN0KHNjb3BlLCBub2RlLCBzY29wZS5jb3VudEl0ZXJhdG9yTmFtZSwgXCJjb3VudFwiKTtcbiAgfVxuXG4gIGlmIChzZWdtZW50c1swXS5zZWdtZW50ID09PSBcInNlbGZcIikge1xuICAgIHNjb3BlLmltcG9ydGFibGVzLnB1c2goe1xuICAgICAgY29uc3RydWN0TmFtZTogXCJUZXJyYWZvcm1TZWxmXCIsXG4gICAgICBwcm92aWRlcjogXCJjZGt0blwiLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHQuY2FsbEV4cHJlc3Npb24oXG4gICAgICB0Lm1lbWJlckV4cHJlc3Npb24odC5pZGVudGlmaWVyKFwiVGVycmFmb3JtU2VsZlwiKSwgdC5pZGVudGlmaWVyKFwiZ2V0QW55XCIpKSxcblxuICAgICAgW3Quc3RyaW5nTGl0ZXJhbCh0cmF2ZXJzYWxQYXJ0c1RvU3RyaW5nKHNlZ21lbnRzLnNsaWNlKDEpKSldLFxuICAgICk7XG4gIH1cblxuICAvLyBzZXR0aW5nLnZhbHVlLCBzZXR0aW5nLnZhbHVlWzFdLmlkXG4gIGNvbnN0IGR5bmFtaWNCbG9jayA9IHNjb3BlLnNjb3BlZFZhcmlhYmxlcz8uW3NlZ21lbnRzWzBdLnNlZ21lbnRdO1xuICBpZiAoZHluYW1pY0Jsb2NrKSB7XG4gICAgaWYgKGR5bmFtaWNCbG9jayA9PT0gXCJkeW5hbWljLWJsb2NrXCIpIHtcbiAgICAgIHJldHVybiBkeW5hbWljVmFyaWFibGVUb0FzdChcbiAgICAgICAgc2NvcGUsXG4gICAgICAgIG5vZGUsXG4gICAgICAgIGR5bmFtaWNCbG9jayxcbiAgICAgICAgdHJhdmVyc2FsUGFydHNUb1N0cmluZyhzZWdtZW50cyksXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZHluYW1pY1ZhcmlhYmxlVG9Bc3Qoc2NvcGUsIG5vZGUsIGR5bmFtaWNCbG9jaywgc2VnbWVudHNbMF0uc2VnbWVudCk7XG4gIH1cblxuICAvLyBUaGlzIG1heSBiZSBhIHZhcmlhYmxlIHJlZmVyZW5jZSB0aGF0IHdlIGRvbid0IHVuZGVyc3RhbmQgeWV0LCBzbyB3ZSB3cmFwIGl0IGluIGEgdGVtcGxhdGUgc3RyaW5nXG4gIC8vIGZvciBUZXJyYWZvcm0gdG8gaGFuZGxlXG4gIGxldCB2YXJJZGVudGlmaWVyOiB0LkV4cHJlc3Npb24gPSB0LnN0cmluZ0xpdGVyYWwoXG4gICAgYFxcJHske25vZGUubWV0YS5mdWxsQWNjZXNzb3J9fWAsXG4gICk7XG5cbiAgaWYgKGhhc1JlZmVyZW5jZSkge1xuICAgIHZhcklkZW50aWZpZXIgPSB0LmlkZW50aWZpZXIoXG4gICAgICBjYW1lbENhc2UodHJhdmVyc2FsVG9WYXJpYWJsZU5hbWUoc2NvcGUsIG5vZGUpKSxcbiAgICApO1xuICB9XG5cbiAgaWYgKFtcInZhclwiLCBcImxvY2FsXCJdLmluY2x1ZGVzKHNlZ21lbnRzWzBdLnNlZ21lbnQpKSB7XG4gICAgY29uc3QgdmFyaWFibGVBY2Nlc3NvciA9XG4gICAgICBzZWdtZW50c1swXS5zZWdtZW50ID09PSBcInZhclwiXG4gICAgICAgID8gdC5tZW1iZXJFeHByZXNzaW9uKHZhcklkZW50aWZpZXIsIHQuaWRlbnRpZmllcihcInZhbHVlXCIpKVxuICAgICAgICA6IHZhcklkZW50aWZpZXI7XG5cbiAgICBpZiAoc2VnbWVudHMubGVuZ3RoID4gMikge1xuICAgICAgc2NvcGUuaW1wb3J0YWJsZXMucHVzaCh7XG4gICAgICAgIGNvbnN0cnVjdE5hbWU6IFwiRm5cIixcbiAgICAgICAgcHJvdmlkZXI6IFwiY2RrdG5cIixcbiAgICAgIH0pO1xuICAgICAgY29uc3QgY2FsbGVlID0gdC5tZW1iZXJFeHByZXNzaW9uKFxuICAgICAgICB0LmlkZW50aWZpZXIoXCJGblwiKSxcbiAgICAgICAgdC5pZGVudGlmaWVyKFwibG9va3VwTmVzdGVkXCIpLFxuICAgICAgKTtcbiAgICAgIHJldHVybiB0LmNhbGxFeHByZXNzaW9uKGNhbGxlZSwgW1xuICAgICAgICB2YXJpYWJsZUFjY2Vzc29yLFxuICAgICAgICB0LmFycmF5RXhwcmVzc2lvbihcbiAgICAgICAgICBzZWdtZW50cy5zbGljZSgyKS5tYXAoKHMpID0+IHQuc3RyaW5nTGl0ZXJhbChzLnNlZ21lbnQpKSxcbiAgICAgICAgKSxcbiAgICAgIF0pO1xuICAgIH1cblxuICAgIHJldHVybiB2YXJpYWJsZUFjY2Vzc29yO1xuICB9XG5cbiAgaWYgKCFoYXNSZWZlcmVuY2UgfHwgc2NvcGUud2l0aGluT3ZlcnJpZGVFeHByZXNzaW9uKSB7XG4gICAgcmV0dXJuIHZhcklkZW50aWZpZXI7XG4gIH1cblxuICBjb25zdCByb290U2VnbWVudCA9IHNlZ21lbnRzWzBdLnNlZ21lbnQ7XG4gIGNvbnN0IGF0dHJpYnV0ZUluZGV4ID0gcm9vdFNlZ21lbnQgPT09IFwiZGF0YVwiID8gMyA6IDI7XG4gIGNvbnN0IGF0dHJpYnV0ZVNlZ21lbnRzID0gc2VnbWVudHMuc2xpY2UoYXR0cmlidXRlSW5kZXgpO1xuICBjb25zdCBudW1lcmljQWNjZXNzb3JJbmRleCA9IGF0dHJpYnV0ZVNlZ21lbnRzLmZpbmRJbmRleCgoc2VnKSA9PlxuICAgIHRleC5pc0luZGV4VHJhdmVyc2FsUGFydChzZWcpLFxuICApO1xuICBsZXQgbWluQWNjZXNzb3JJbmRleCA9IG51bWVyaWNBY2Nlc3NvckluZGV4O1xuICBsZXQgbWFwQWNjZXNzb3JJbmRleCA9IC0xO1xuICBpZiAobnVtZXJpY0FjY2Vzc29ySW5kZXggPT09IC0xKSB7XG4gICAgLy8gb25seSBkbyB0aGlzIGlmIHdlIGhhdmUgdG8sIGlmIHdlIGFscmVhZHkgaGF2ZSBhXG4gICAgLy8gbnVtZXJpYyBhY2Nlc3Nvciwgd2UgZG9uJ3QgaGF2ZSB0byBkbyB0aGlzIGFkZGl0aW9uYWwgd29ya1xuICAgIGNvbnN0IHJlc291cmNlUGF0aCA9IGdldFRmUmVzb3VyY2VQYXRoRnJvbU5vZGUobm9kZSk7XG4gICAgbGV0IHVzaW5nU3ViUGF0aFR5cGUgPSBmYWxzZTtcbiAgICBjb25zdCBwYXJ0cyA9IHJlc291cmNlUGF0aC5zcGxpdChcIi5cIikuZmlsdGVyKChwKSA9PiBwICE9PSBcIlwiKTtcbiAgICBjb25zdCBtaW5QYXJ0cyA9IGF0dHJpYnV0ZUluZGV4OyAvLyB3ZSBuZWVkIHRvIHN0b3AgYmVmb3JlIGRhdGEuYXdzLnJlc291cmNlX25hbWUgb3IgYXdzLnJlc291cmNlX25hbWVcbiAgICBjb25zdCBvcmlnaW5hbFBhcnRzID0gcGFydHMubGVuZ3RoO1xuICAgIGxldCBoYXNNYXBBY2Nlc3NvciA9IGZhbHNlO1xuICAgIHdoaWxlIChwYXJ0cy5sZW5ndGggPj0gbWluUGFydHMpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSBnZXRUeXBlQXRQYXRoKHNjb3BlLnByb3ZpZGVyU2NoZW1hLCBwYXJ0cy5qb2luKFwiLlwiKSk7XG4gICAgICBpZiAodHlwZSAhPT0gbnVsbCkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0eXBlKSAmJiB0eXBlWzBdID09PSBcIm1hcFwiICYmIHVzaW5nU3ViUGF0aFR5cGUpIHtcbiAgICAgICAgICBoYXNNYXBBY2Nlc3NvciA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHBhcnRzLnBvcCgpO1xuICAgICAgdXNpbmdTdWJQYXRoVHlwZSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGhhc01hcEFjY2Vzc29yKSB7XG4gICAgICBtYXBBY2Nlc3NvckluZGV4ID0gb3JpZ2luYWxQYXJ0cyAtIHBhcnRzLmxlbmd0aCAtIDE7XG4gICAgICBtaW5BY2Nlc3NvckluZGV4ID0gbWFwQWNjZXNzb3JJbmRleDtcbiAgICB9XG4gIH1cblxuICBjb25zdCBuZWVkc1Byb3BlcnR5QWNjZXNzID0gbWluQWNjZXNzb3JJbmRleCA+PSAwO1xuXG4gIGNvbnN0IHJlZlNlZ21lbnRzID0gbmVlZHNQcm9wZXJ0eUFjY2Vzc1xuICAgID8gYXR0cmlidXRlU2VnbWVudHMuc2xpY2UoMCwgbWluQWNjZXNzb3JJbmRleClcbiAgICA6IGF0dHJpYnV0ZVNlZ21lbnRzO1xuICBjb25zdCBub25SZWZTZWdtZW50cyA9IG5lZWRzUHJvcGVydHlBY2Nlc3NcbiAgICA/IGF0dHJpYnV0ZVNlZ21lbnRzLnNsaWNlKG1pbkFjY2Vzc29ySW5kZXgpXG4gICAgOiBbXTtcblxuICBjb25zdCByZWYgPSByZWZTZWdtZW50cy5yZWR1Y2UoXG4gICAgKGFjYzogdC5FeHByZXNzaW9uLCBzZWcsIGluZGV4KSA9PlxuICAgICAgdC5tZW1iZXJFeHByZXNzaW9uKFxuICAgICAgICBhY2MsXG4gICAgICAgIHQuaWRlbnRpZmllcihcbiAgICAgICAgICBpbmRleCA9PT0gMCAmJiByb290U2VnbWVudCA9PT0gXCJtb2R1bGVcIlxuICAgICAgICAgICAgPyBjYW1lbENhc2Uoc2VnLnNlZ21lbnQgKyBcIk91dHB1dFwiKVxuICAgICAgICAgICAgOiBjYW1lbENhc2Uoc2VnLnNlZ21lbnQpLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICB2YXJJZGVudGlmaWVyLFxuICApO1xuXG4gIGlmIChub25SZWZTZWdtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gcmVmO1xuICB9XG5cbiAgc2NvcGUuaW1wb3J0YWJsZXMucHVzaCh7XG4gICAgY29uc3RydWN0TmFtZTogXCJGblwiLFxuICAgIHByb3ZpZGVyOiBcImNka3RuXCIsXG4gIH0pO1xuICBjb25zdCBjYWxsZWUgPSB0Lm1lbWJlckV4cHJlc3Npb24oXG4gICAgdC5pZGVudGlmaWVyKFwiRm5cIiksXG4gICAgdC5pZGVudGlmaWVyKFwibG9va3VwTmVzdGVkXCIpLFxuICApO1xuICByZXR1cm4gdC5jYWxsRXhwcmVzc2lvbihjYWxsZWUsIFtcbiAgICByZWYsXG4gICAgdC5hcnJheUV4cHJlc3Npb24obm9uUmVmU2VnbWVudHMubWFwKChzKSA9PiB0LnN0cmluZ0xpdGVyYWwocy5zZWdtZW50KSkpLFxuICBdKTtcbn1cblxuZnVuY3Rpb24gY29udmVydFVuYXJ5T3BFeHByZXNzaW9uVG9UcyhcbiAgc2NvcGU6IFJlc291cmNlU2NvcGUsXG4gIG5vZGU6IHRleC5VbmFyeU9wRXhwcmVzc2lvbixcbikge1xuICBjb25zdCBvcGVyYW5kID0gY29udmVydFRGRXhwcmVzc2lvbkFzdFRvVHMoXG4gICAgc2NvcGUsXG4gICAgdGV4LmdldENoaWxkV2l0aFZhbHVlKG5vZGUsIG5vZGUubWV0YS52YWx1ZUV4cHJlc3Npb24pISxcbiAgKTtcblxuICBsZXQgZm5OYW1lID0gbm9kZS5tZXRhLm9wZXJhdG9yO1xuICBpZiAodGZVbmFyeU9wZXJhdG9yc1RvQ2RrdGZbZm5OYW1lIGFzIHN1cHBvcnRlZFVuYXJ5T3BlcmF0b3JzXSkge1xuICAgIGZuTmFtZSA9IHRmVW5hcnlPcGVyYXRvcnNUb0Nka3RmW2ZuTmFtZSBhcyBzdXBwb3J0ZWRVbmFyeU9wZXJhdG9yc107XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgY29udmVydCB1bmtub3duIG9wZXJhdG9yICR7bm9kZS5tZXRhLm9wZXJhdG9yfWApO1xuICB9XG5cbiAgc2NvcGUuaW1wb3J0YWJsZXMucHVzaCh7XG4gICAgY29uc3RydWN0TmFtZTogXCJPcFwiLFxuICAgIHByb3ZpZGVyOiBcImNka3RuXCIsXG4gIH0pO1xuXG4gIGNvbnN0IGZuID0gdC5tZW1iZXJFeHByZXNzaW9uKHQuaWRlbnRpZmllcihcIk9wXCIpLCB0LmlkZW50aWZpZXIoZm5OYW1lKSk7XG5cbiAgcmV0dXJuIHQuY2FsbEV4cHJlc3Npb24oZm4sIFtvcGVyYW5kXSk7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRCaW5hcnlPcEV4cHJlc3Npb25Ub1RzKFxuICBzY29wZTogUmVzb3VyY2VTY29wZSxcbiAgbm9kZTogdGV4LkJpbmFyeU9wRXhwcmVzc2lvbixcbikge1xuICBjb25zdCBsZWZ0ID0gY29udmVydFRGRXhwcmVzc2lvbkFzdFRvVHMoXG4gICAgc2NvcGUsXG4gICAgdGV4LmdldENoaWxkV2l0aFZhbHVlKG5vZGUsIG5vZGUubWV0YS5saHNFeHByZXNzaW9uKSEsXG4gICk7XG4gIGNvbnN0IHJpZ2h0ID0gY29udmVydFRGRXhwcmVzc2lvbkFzdFRvVHMoXG4gICAgc2NvcGUsXG4gICAgdGV4LmdldENoaWxkV2l0aFZhbHVlKG5vZGUsIG5vZGUubWV0YS5yaHNFeHByZXNzaW9uKSEsXG4gICk7XG5cbiAgbGV0IGZuTmFtZSA9IG5vZGUubWV0YS5vcGVyYXRvcjtcbiAgaWYgKHRmQmluYXJ5T3BlcmF0b3JzVG9DZGt0Zltmbk5hbWUgYXMgc3VwcG9ydGVkQmluYXJ5T3BlcmF0b3JzXSkge1xuICAgIGZuTmFtZSA9IHRmQmluYXJ5T3BlcmF0b3JzVG9DZGt0Zltmbk5hbWUgYXMgc3VwcG9ydGVkQmluYXJ5T3BlcmF0b3JzXTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBjb252ZXJ0IHVua25vd24gb3BlcmF0b3IgJHtub2RlLm1ldGEub3BlcmF0b3J9YCk7XG4gIH1cblxuICBzY29wZS5pbXBvcnRhYmxlcy5wdXNoKHtcbiAgICBjb25zdHJ1Y3ROYW1lOiBcIk9wXCIsXG4gICAgcHJvdmlkZXI6IFwiY2RrdG5cIixcbiAgfSk7XG5cbiAgY29uc3QgZm4gPSB0Lm1lbWJlckV4cHJlc3Npb24odC5pZGVudGlmaWVyKFwiT3BcIiksIHQuaWRlbnRpZmllcihmbk5hbWUpKTtcbiAgcmV0dXJuIHQuY2FsbEV4cHJlc3Npb24oZm4sIFtsZWZ0LCByaWdodF0pO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0VGVtcGxhdGVFeHByZXNzaW9uVG9UcyhcbiAgc2NvcGU6IFJlc291cmNlU2NvcGUsXG4gIG5vZGU6IHRleC5UZW1wbGF0ZUV4cHJlc3Npb24gfCB0ZXguVGVtcGxhdGVXcmFwRXhwcmVzc2lvbixcbikge1xuICBjb25zdCBwYXJ0cyA9IG5vZGUuY2hpbGRyZW4ubWFwKChjaGlsZCkgPT4gKHtcbiAgICBub2RlOiBjaGlsZCxcbiAgICBleHByOiBjb252ZXJ0VEZFeHByZXNzaW9uQXN0VG9UcyhzY29wZSwgY2hpbGQpLFxuICB9KSk7XG5cbiAgY29uc3QgbGFzdFBhcnQgPSBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXTtcbiAgaWYgKHQuaXNTdHJpbmdMaXRlcmFsKGxhc3RQYXJ0LmV4cHIpICYmIGxhc3RQYXJ0LmV4cHIudmFsdWUgPT09IFwiXFxuXCIpIHtcbiAgICAvLyBUaGlzIGlzIGEgYml0IG9mIGEgaGFjaywgYnV0IHRoZSB0cmFpbGluZyBuZXdsaW5lIHdlIGFkZCBkdWUgdG9cbiAgICAvLyBoZXJlZG9jcyBsb29rcyB1Z2x5IGFuZCB1bm5lY2Vzc2FyeSBpbiB0aGUgZ2VuZXJhdGVkIGNvZGUsIHNvIHdlXG4gICAgLy8gdHJ5IHRvIHJlbW92ZSBpdFxuICAgIHBhcnRzLnBvcCgpO1xuICB9XG5cbiAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB0LnN0cmluZ0xpdGVyYWwobm9kZS5tZXRhLnZhbHVlKTtcbiAgfVxuXG4gIGlmIChwYXJ0cy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gcGFydHNbMF0uZXhwcjtcbiAgfVxuXG4gIGxldCBpc1Njb3BlZFRyYXZlcnNhbCA9IGZhbHNlO1xuICBjb25zdCBleHByZXNzaW9uczogdC5FeHByZXNzaW9uW10gPSBbXTtcbiAgZm9yIChjb25zdCB7IG5vZGUsIGV4cHIgfSBvZiBwYXJ0cykge1xuICAgIGlmIChcbiAgICAgIHRleC5pc1Njb3BlVHJhdmVyc2FsRXhwcmVzc2lvbihub2RlKSAmJlxuICAgICAgIXQuaXNTdHJpbmdMaXRlcmFsKGV4cHIpICYmXG4gICAgICAhdC5pc0NhbGxFeHByZXNzaW9uKGV4cHIpXG4gICAgKSB7XG4gICAgICBleHByZXNzaW9ucy5wdXNoKHQuc3RyaW5nTGl0ZXJhbChcIiR7XCIpKTtcbiAgICAgIGlzU2NvcGVkVHJhdmVyc2FsID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgLy8gd2Ugc2hvdWxkIGlkZWFsbHkgYmUgZG9pbmcgdHlwZSBjb2VyY2lvbiBtb3JlXG4gICAgICAvLyBjYXJlZnVsbHkgaGVyZSwgYmVjYXVzZSBpdCBtYXkgbm90IGFsd2F5cyBiZSBuZWVkZWRcbiAgICAgIHQuaXNDYWxsRXhwcmVzc2lvbihleHByKVxuICAgICkge1xuICAgICAgc2NvcGUuaW1wb3J0YWJsZXMucHVzaCh7XG4gICAgICAgIGNvbnN0cnVjdE5hbWU6IFwiVG9rZW5cIixcbiAgICAgICAgcHJvdmlkZXI6IFwiY2RrdG5cIixcbiAgICAgIH0pO1xuXG4gICAgICBleHByZXNzaW9ucy5wdXNoKFxuICAgICAgICB0ZW1wbGF0ZS5leHByZXNzaW9uKGBUb2tlbi5hc1N0cmluZyglJWV4cHIlJSlgKSh7XG4gICAgICAgICAgZXhwcixcbiAgICAgICAgfSkgYXMgdC5FeHByZXNzaW9uLFxuICAgICAgKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaXNTY29wZWRUcmF2ZXJzYWwpIHtcbiAgICAgICAgZXhwcmVzc2lvbnMucHVzaCh0LnN0cmluZ0xpdGVyYWwoXCJ9XCIpKTtcbiAgICAgICAgaXNTY29wZWRUcmF2ZXJzYWwgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgZXhwcmVzc2lvbnMucHVzaChleHByKTtcbiAgfVxuXG4gIGlmIChpc1Njb3BlZFRyYXZlcnNhbCkge1xuICAgIGV4cHJlc3Npb25zLnB1c2godC5zdHJpbmdMaXRlcmFsKFwifVwiKSk7XG4gIH1cblxuICByZXR1cm4gZXhwcmVzc2lvbkZvclNlcmlhbFN0cmluZ0NvbmNhdGVuYXRpb24oc2NvcGUsIGV4cHJlc3Npb25zKTtcbn1cblxuZnVuY3Rpb24gY29udmVydE9iamVjdEV4cHJlc3Npb25Ub1RzKFxuICBzY29wZTogUmVzb3VyY2VTY29wZSxcbiAgbm9kZTogdGV4Lk9iamVjdEV4cHJlc3Npb24sXG4pIHtcbiAgcmV0dXJuIHQub2JqZWN0RXhwcmVzc2lvbihcbiAgICBPYmplY3QuZW50cmllcyhub2RlLm1ldGEuaXRlbXMpXG4gICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWVDaGlsZCA9IHRleC5nZXRDaGlsZFdpdGhWYWx1ZShub2RlLCB2YWx1ZSk7XG4gICAgICAgIGlmICghdmFsdWVDaGlsZCkge1xuICAgICAgICAgIGxvZ2dlci5lcnJvcihgVW5hYmxlIHRvIHZhbHVlIGZvciBvYmplY3Qga2V5ICcke2tleX0nOiAke3ZhbHVlfWApO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHQub2JqZWN0UHJvcGVydHkoXG4gICAgICAgICAgdC5pZGVudGlmaWVyKGtleSksXG4gICAgICAgICAgY29udmVydFRGRXhwcmVzc2lvbkFzdFRvVHMoc2NvcGUsIHZhbHVlQ2hpbGQpLFxuICAgICAgICApO1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoKHMpID0+IHMgIT09IG51bGwpIGFzIHQuT2JqZWN0UHJvcGVydHlbXSxcbiAgKTtcbn1cblxuZnVuY3Rpb24gY29udmVydEZ1bmN0aW9uQ2FsbEV4cHJlc3Npb25Ub1RzKFxuICBzY29wZTogUmVzb3VyY2VTY29wZSxcbiAgbm9kZTogdGV4LkZ1bmN0aW9uQ2FsbEV4cHJlc3Npb24sXG4pIHtcbiAgY29uc3QgZnVuY3Rpb25OYW1lID0gbm9kZS5tZXRhLm5hbWU7XG4gIGNvbnN0IG1hcHBpbmcgPSBmdW5jdGlvbnNNYXBbZnVuY3Rpb25OYW1lXTtcblxuICBpZiAoIW1hcHBpbmcpIHtcbiAgICBsb2dnZXIuZXJyb3IoXG4gICAgICBgVW5rbm93biBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gZW5jb3VudGVyZWQuICR7ZmlsZUJ1Z0NvbW1lbnRUZXh0fWAsXG4gICAgKTtcbiAgICBjb25zdCBhcmd1bWVudEV4cHJlc3Npb25zID0gbm9kZS5jaGlsZHJlbi5tYXAoKGNoaWxkKSA9PlxuICAgICAgY29udmVydFRGRXhwcmVzc2lvbkFzdFRvVHMoc2NvcGUsIGNoaWxkKSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHQuY2FsbEV4cHJlc3Npb24odC5pZGVudGlmaWVyKGZ1bmN0aW9uTmFtZSksIGFyZ3VtZW50RXhwcmVzc2lvbnMpO1xuICB9XG5cbiAgY29uc3QgdHJhbnNmb3JtZWROb2RlOiB0ZXguRnVuY3Rpb25DYWxsRXhwcmVzc2lvbiA9IG1hcHBpbmcudHJhbnNmb3JtZXJcbiAgICA/IG1hcHBpbmcudHJhbnNmb3JtZXIobm9kZSlcbiAgICA6IG5vZGU7XG5cbiAgY29uc3QgYXJndW1lbnRFeHByZXNzaW9ucyA9IHRyYW5zZm9ybWVkTm9kZS5jaGlsZHJlbi5tYXAoKGNoaWxkKSA9PlxuICAgIGNvbnZlcnRURkV4cHJlc3Npb25Bc3RUb1RzKHNjb3BlLCBjaGlsZCksXG4gICk7XG5cbiAgc2NvcGUuaW1wb3J0YWJsZXMucHVzaCh7XG4gICAgY29uc3RydWN0TmFtZTogXCJGblwiLFxuICAgIHByb3ZpZGVyOiBcImNka3RuXCIsXG4gIH0pO1xuXG4gIGNvbnN0IGNhbGxlZSA9IHQubWVtYmVyRXhwcmVzc2lvbihcbiAgICB0LmlkZW50aWZpZXIoXCJGblwiKSxcbiAgICB0LmlkZW50aWZpZXIobWFwcGluZy5uYW1lKSxcbiAgKTtcblxuICBpZiAoXG4gICAgbWFwcGluZy5wYXJhbWV0ZXJzLmxlbmd0aCA+IDAgJiZcbiAgICBtYXBwaW5nLnBhcmFtZXRlcnNbbWFwcGluZy5wYXJhbWV0ZXJzLmxlbmd0aCAtIDFdLnZhcmlhZGljXG4gICkge1xuICAgIGNvbnN0IGxhc3RQYXJhbWV0ZXJUeXBlID1cbiAgICAgIG1hcHBpbmcucGFyYW1ldGVyc1ttYXBwaW5nLnBhcmFtZXRlcnMubGVuZ3RoIC0gMV0udHlwZTtcbiAgICBjb25zdCBub25WYXJpYWRpY0FyZ3VtZW50cyA9IGFyZ3VtZW50RXhwcmVzc2lvbnMuc2xpY2UoXG4gICAgICAwLFxuICAgICAgbWFwcGluZy5wYXJhbWV0ZXJzLmxlbmd0aCAtIDEsXG4gICAgKTtcblxuICAgIGNvbnN0IGZuQ2FsbEFyZ3VtZW50cyA9IFtcbiAgICAgIC4uLm5vblZhcmlhZGljQXJndW1lbnRzLm1hcCgoYXJnRXhwciwgaW5kZXgpID0+XG4gICAgICAgIGNvZXJjZVR5cGUoXG4gICAgICAgICAgc2NvcGUsXG4gICAgICAgICAgYXJnRXhwcixcbiAgICAgICAgICBmaW5kRXhwcmVzc2lvblR5cGUoc2NvcGUsIGFyZ0V4cHIpLFxuICAgICAgICAgIG1hcHBpbmcucGFyYW1ldGVyc1tpbmRleF0udHlwZSxcbiAgICAgICAgKSxcbiAgICAgICksXG5cbiAgICAgIHQuYXJyYXlFeHByZXNzaW9uKFxuICAgICAgICBhcmd1bWVudEV4cHJlc3Npb25zXG4gICAgICAgICAgLnNsaWNlKG1hcHBpbmcucGFyYW1ldGVycy5sZW5ndGggLSAxKVxuICAgICAgICAgIC5tYXAoKGFyZ0V4cHIpID0+XG4gICAgICAgICAgICBjb2VyY2VUeXBlKFxuICAgICAgICAgICAgICBzY29wZSxcbiAgICAgICAgICAgICAgYXJnRXhwcixcbiAgICAgICAgICAgICAgZmluZEV4cHJlc3Npb25UeXBlKHNjb3BlLCBhcmdFeHByKSxcbiAgICAgICAgICAgICAgbGFzdFBhcmFtZXRlclR5cGUsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICksXG4gICAgICApLFxuICAgIF07XG5cbiAgICByZXR1cm4gdC5jYWxsRXhwcmVzc2lvbihjYWxsZWUsIGZuQ2FsbEFyZ3VtZW50cyk7XG4gIH1cblxuICByZXR1cm4gdC5jYWxsRXhwcmVzc2lvbihcbiAgICBjYWxsZWUsXG4gICAgYXJndW1lbnRFeHByZXNzaW9ucy5tYXAoKGFyZ0V4cHIsIGluZGV4KSA9PlxuICAgICAgY29lcmNlVHlwZShcbiAgICAgICAgc2NvcGUsXG4gICAgICAgIGFyZ0V4cHIsXG4gICAgICAgIGZpbmRFeHByZXNzaW9uVHlwZShzY29wZSwgYXJnRXhwciksXG4gICAgICAgIG1hcHBpbmcucGFyYW1ldGVyc1tpbmRleF0udHlwZSxcbiAgICAgICksXG4gICAgKSxcbiAgKTtcbn1cblxuZnVuY3Rpb24gY29udmVydEluZGV4RXhwcmVzc2lvblRvVHMoXG4gIHNjb3BlOiBSZXNvdXJjZVNjb3BlLFxuICBub2RlOiB0ZXguSW5kZXhFeHByZXNzaW9uLFxuKSB7XG4gIGNvbnN0IGNvbGxlY3Rpb25FeHByZXNzaW9uQ2hpbGQgPSB0ZXguZ2V0Q2hpbGRXaXRoVmFsdWUoXG4gICAgbm9kZSxcbiAgICBub2RlLm1ldGEuY29sbGVjdGlvbkV4cHJlc3Npb24sXG4gICk7XG4gIGNvbnN0IGtleUV4cHJlc3Npb25DaGlsZCA9IHRleC5nZXRDaGlsZFdpdGhWYWx1ZShcbiAgICBub2RlLFxuICAgIG5vZGUubWV0YS5rZXlFeHByZXNzaW9uLFxuICApO1xuXG4gIGNvbnN0IGNvbGxlY3Rpb25FeHByZXNzaW9uID0gY29udmVydFRGRXhwcmVzc2lvbkFzdFRvVHMoXG4gICAgc2NvcGUsXG4gICAgY29sbGVjdGlvbkV4cHJlc3Npb25DaGlsZCEsXG4gICk7XG4gIGNvbnN0IGtleUV4cHJlc3Npb24gPSBjb252ZXJ0VEZFeHByZXNzaW9uQXN0VG9UcyhzY29wZSwga2V5RXhwcmVzc2lvbkNoaWxkISk7XG5cbiAgc2NvcGUuaW1wb3J0YWJsZXMucHVzaCh7XG4gICAgY29uc3RydWN0TmFtZTogXCJGblwiLFxuICAgIHByb3ZpZGVyOiBcImNka3RuXCIsXG4gIH0pO1xuICBjb25zdCBjYWxsZWUgPSB0Lm1lbWJlckV4cHJlc3Npb24oXG4gICAgdC5pZGVudGlmaWVyKFwiRm5cIiksXG4gICAgdC5pZGVudGlmaWVyKFwibG9va3VwTmVzdGVkXCIpLFxuICApO1xuICByZXR1cm4gdC5jYWxsRXhwcmVzc2lvbihjYWxsZWUsIFtcbiAgICBjb2xsZWN0aW9uRXhwcmVzc2lvbixcbiAgICB0LmFycmF5RXhwcmVzc2lvbihba2V5RXhwcmVzc2lvbl0pLFxuICBdKTtcbn1cblxuZnVuY3Rpb24gY29udmVydFNwbGF0RXhwcmVzc2lvblRvVHMoXG4gIHNjb3BlOiBSZXNvdXJjZVNjb3BlLFxuICBub2RlOiB0ZXguU3BsYXRFeHByZXNzaW9uLFxuKSB7XG4gIGNvbnN0IHNvdXJjZUV4cHJlc3Npb25DaGlsZCA9IHRleC5nZXRDaGlsZFdpdGhWYWx1ZShcbiAgICBub2RlLFxuICAgIG5vZGUubWV0YS5zb3VyY2VFeHByZXNzaW9uLFxuICApITtcbiAgY29uc3Qgc291cmNlRXhwcmVzc2lvbiA9IGNvbnZlcnRURkV4cHJlc3Npb25Bc3RUb1RzKFxuICAgIHNjb3BlLFxuICAgIHNvdXJjZUV4cHJlc3Npb25DaGlsZCxcbiAgKTtcblxuICAvLyBXZSBkb24ndCBjb252ZXJ0IHRoZSByZWxhdGl2ZSBleHByZXNzaW9uIGJlY2F1c2UgZXZlcnl0aGluZyBhZnRlciB0aGUgc3BsYXQgaXMgZ29pbmcgdG8gYmVcbiAgLy8gYSBzdHJpbmdcbiAgY29uc3QgcmVsYXRpdmVFeHByZXNzaW9uID0gbm9kZS5tZXRhLmVhY2hFeHByZXNzaW9uLnN0YXJ0c1dpdGgoXG4gICAgbm9kZS5tZXRhLmFub25TeW1ib2xFeHByZXNzaW9uLFxuICApXG4gICAgPyBub2RlLm1ldGEuZWFjaEV4cHJlc3Npb24uc2xpY2Uobm9kZS5tZXRhLmFub25TeW1ib2xFeHByZXNzaW9uLmxlbmd0aClcbiAgICA6IG5vZGUubWV0YS5lYWNoRXhwcmVzc2lvbjtcblxuICBjb25zdCBzZWdtZW50cyA9IHJlbGF0aXZlRXhwcmVzc2lvbi5zcGxpdCgvXFwufFxcW3xcXF0vKS5maWx0ZXIoKHMpID0+IHMpO1xuICBzY29wZS5pbXBvcnRhYmxlcy5wdXNoKHtcbiAgICBjb25zdHJ1Y3ROYW1lOiBcIkZuXCIsXG4gICAgcHJvdmlkZXI6IFwiY2RrdG5cIixcbiAgfSk7XG4gIGNvbnN0IGNhbGxlZSA9IHQubWVtYmVyRXhwcmVzc2lvbihcbiAgICB0LmlkZW50aWZpZXIoXCJGblwiKSxcbiAgICB0LmlkZW50aWZpZXIoXCJsb29rdXBOZXN0ZWRcIiksXG4gICk7XG5cbiAgcmV0dXJuIHQuY2FsbEV4cHJlc3Npb24oY2FsbGVlLCBbXG4gICAgc291cmNlRXhwcmVzc2lvbixcbiAgICB0LmFycmF5RXhwcmVzc2lvbihbXG4gICAgICAvLyB3ZSBkb24ndCBuZWVkIHRvIHVzZSB0aGUgYW5vblN5bWJvbEV4cHJlc3Npb24gaGVyZSBiZWNhdXNlXG4gICAgICAvLyBpdCBvbmx5IGNoYW5nZXMgYmV0d2VlbiAuKiBhbmQgWypdIHdoaWNoIHdlIGRvbid0IGNhcmUgYWJvdXRcbiAgICAgIHQuc3RyaW5nTGl0ZXJhbChcIipcIiksXG4gICAgICAuLi5zZWdtZW50cy5tYXAodC5zdHJpbmdMaXRlcmFsKSxcbiAgICBdKSxcbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRDb25kaXRpb25hbEV4cHJlc3Npb25Ub1RzKFxuICBzY29wZTogUmVzb3VyY2VTY29wZSxcbiAgbm9kZTogdGV4LkNvbmRpdGlvbmFsRXhwcmVzc2lvbixcbikge1xuICBjb25zdCBjb25kaXRpb25DaGlsZCA9IHRleC5nZXRDaGlsZFdpdGhWYWx1ZShcbiAgICBub2RlLFxuICAgIG5vZGUubWV0YS5jb25kaXRpb25FeHByZXNzaW9uLFxuICApITtcbiAgbGV0IGNvbmRpdGlvbiA9IGNvbnZlcnRURkV4cHJlc3Npb25Bc3RUb1RzKHNjb3BlLCBjb25kaXRpb25DaGlsZCk7XG4gIGlmICh0LmlzSWRlbnRpZmllcihjb25kaXRpb24pICYmIGNhblVzZUZxbihjb25kaXRpb25DaGlsZCkpIHtcbiAgICAvLyBXZSBoYXZlIGEgcmVzb3VyY2Ugb3IgZGF0YSBzb3VyY2UgaGVyZSwgd2hpY2ggd2Ugd291bGQgbmVlZCB0b1xuICAgIC8vIHJlZmVyZW5jZSB1c2luZyBmcW5cbiAgICBjb25kaXRpb24gPSB0Lm1lbWJlckV4cHJlc3Npb24oY29uZGl0aW9uLCB0LmlkZW50aWZpZXIoXCJmcW5cIikpO1xuICB9XG5cbiAgY29uc3QgdHJ1ZUV4cHJlc3Npb24gPSBjb252ZXJ0VEZFeHByZXNzaW9uQXN0VG9UcyhcbiAgICBzY29wZSxcbiAgICB0ZXguZ2V0Q2hpbGRXaXRoVmFsdWUobm9kZSwgbm9kZS5tZXRhLnRydWVFeHByZXNzaW9uKSEsXG4gICk7XG5cbiAgY29uc3QgZmFsc2VFeHByZXNzaW9uID0gY29udmVydFRGRXhwcmVzc2lvbkFzdFRvVHMoXG4gICAgc2NvcGUsXG4gICAgdGV4LmdldENoaWxkV2l0aFZhbHVlKG5vZGUsIG5vZGUubWV0YS5mYWxzZUV4cHJlc3Npb24pISxcbiAgKTtcblxuICBzY29wZS5pbXBvcnRhYmxlcy5wdXNoKHtcbiAgICBjb25zdHJ1Y3ROYW1lOiBcImNvbmRpdGlvbmFsXCIsXG4gICAgcHJvdmlkZXI6IFwiY2RrdG5cIixcbiAgfSk7XG5cbiAgcmV0dXJuIHQuY2FsbEV4cHJlc3Npb24odC5pZGVudGlmaWVyKFwiY29uZGl0aW9uYWxcIiksIFtcbiAgICBjb25kaXRpb24sXG4gICAgdHJ1ZUV4cHJlc3Npb24sXG4gICAgZmFsc2VFeHByZXNzaW9uLFxuICBdKTtcbn1cblxuZnVuY3Rpb24gY29udmVydFR1cGxlRXhwcmVzc2lvblRvVHMoXG4gIHNjb3BlOiBSZXNvdXJjZVNjb3BlLFxuICBub2RlOiB0ZXguVHVwbGVFeHByZXNzaW9uLFxuKSB7XG4gIGNvbnN0IGV4cHJlc3Npb25zID0gbm9kZS5jaGlsZHJlbi5tYXAoKGNoaWxkKSA9PlxuICAgIGNvbnZlcnRURkV4cHJlc3Npb25Bc3RUb1RzKHNjb3BlLCBjaGlsZCksXG4gICk7XG5cbiAgcmV0dXJuIHQuYXJyYXlFeHByZXNzaW9uKGV4cHJlc3Npb25zKTtcbn1cblxuZnVuY3Rpb24gY29udmVydFJlbGF0aXZlVHJhdmVyc2FsRXhwcmVzc2lvblRvVHMoXG4gIHNjb3BlOiBSZXNvdXJjZVNjb3BlLFxuICBub2RlOiB0ZXguUmVsYXRpdmVUcmF2ZXJzYWxFeHByZXNzaW9uLFxuKSB7XG4gIGNvbnN0IHNlZ21lbnRzID0gbm9kZS5tZXRhLnRyYXZlcnNhbDtcblxuICAvLyBUaGUgbGVmdCBoYW5kIHNpZGUgLyBzb3VyY2Ugb2YgYSByZWxhdGl2ZSB0cmF2ZXJzYWwgaXMgbm90IGEgcHJvcGVyXG4gIC8vIG9iamVjdCAvIHJlc291cmNlIC8gZGF0YSB0aGluZyB0aGF0IGlzIGJlaW5nIHJlZmVyZW5jZWRcbiAgY29uc3Qgc291cmNlID0gY29udmVydFRGRXhwcmVzc2lvbkFzdFRvVHMoXG4gICAgc2NvcGUsXG4gICAgdGV4LmdldENoaWxkV2l0aFZhbHVlKG5vZGUsIG5vZGUubWV0YS5zb3VyY2VFeHByZXNzaW9uKSEsXG4gICk7XG5cbiAgc2NvcGUuaW1wb3J0YWJsZXMucHVzaCh7XG4gICAgY29uc3RydWN0TmFtZTogXCJGblwiLFxuICAgIHByb3ZpZGVyOiBcImNka3RuXCIsXG4gIH0pO1xuICBjb25zdCBjYWxsZWUgPSB0Lm1lbWJlckV4cHJlc3Npb24oXG4gICAgdC5pZGVudGlmaWVyKFwiRm5cIiksXG4gICAgdC5pZGVudGlmaWVyKFwibG9va3VwTmVzdGVkXCIpLFxuICApO1xuXG4gIHJldHVybiB0LmNhbGxFeHByZXNzaW9uKGNhbGxlZSwgW1xuICAgIHNvdXJjZSxcbiAgICB0LmFycmF5RXhwcmVzc2lvbihzZWdtZW50cy5tYXAoKHMpID0+IHQuc3RyaW5nTGl0ZXJhbChzLnNlZ21lbnQpKSksXG4gIF0pO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0Rm9yRXhwcmVzc2lvblRvVHMoXG4gIHNjb3BlOiBSZXNvdXJjZVNjb3BlLFxuICBub2RlOiB0ZXguRm9yRXhwcmVzc2lvbixcbikge1xuICBjb25zdCBjb2xsZWN0aW9uQ2hpbGQgPSB0ZXguZ2V0Q2hpbGRXaXRoVmFsdWUoXG4gICAgbm9kZSxcbiAgICBub2RlLm1ldGEuY29sbGVjdGlvbkV4cHJlc3Npb24sXG4gICkhO1xuXG4gIGxldCBjb2xsZWN0aW9uRXhwcmVzc2lvbiA9IGNvbnZlcnRURkV4cHJlc3Npb25Bc3RUb1RzKHNjb3BlLCBjb2xsZWN0aW9uQ2hpbGQpO1xuXG4gIGlmICh0LmlzSWRlbnRpZmllcihjb2xsZWN0aW9uRXhwcmVzc2lvbikgJiYgY2FuVXNlRnFuKGNvbGxlY3Rpb25DaGlsZCkpIHtcbiAgICAvLyBXZSBoYXZlIGEgcmVzb3VyY2Ugb3IgZGF0YSBzb3VyY2UgaGVyZSwgd2hpY2ggd2Ugd291bGQgbmVlZCB0b1xuICAgIC8vIHJlZmVyZW5jZSB1c2luZyBmcW5cbiAgICBjb2xsZWN0aW9uRXhwcmVzc2lvbiA9IHQubWVtYmVyRXhwcmVzc2lvbihcbiAgICAgIGNvbGxlY3Rpb25FeHByZXNzaW9uLFxuICAgICAgdC5pZGVudGlmaWVyKFwiZnFuXCIpLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBjb2xsZWN0aW9uUmVxdWlyZXNXcmFwcGluZyA9ICF0LmlzU3RyaW5nTGl0ZXJhbChjb2xsZWN0aW9uRXhwcmVzc2lvbik7XG4gIGNvbnN0IGV4cHJlc3Npb25zID0gW107XG4gIGNvbnN0IGNvbmRpdGlvbkJvZHkgPSBub2RlLm1ldGEua2V5VmFyXG4gICAgPyBgJHtub2RlLm1ldGEua2V5VmFyfSwgJHtub2RlLm1ldGEudmFsVmFyfWBcbiAgICA6IG5vZGUubWV0YS52YWxWYXI7XG5cbiAgY29uc3Qgb3BlbkJyYWNlID0gbm9kZS5tZXRhLm9wZW5SYW5nZVZhbHVlO1xuICBjb25zdCBjbG9zZUJyYWNlID0gbm9kZS5tZXRhLmNsb3NlUmFuZ2VWYWx1ZTtcbiAgY29uc3QgZ3JvdXBlZCA9IG5vZGUubWV0YS5ncm91cGVkVmFsdWUgPyBcIi4uLlwiIDogXCJcIjtcbiAgY29uc3QgdmFsdWVFeHByZXNzaW9uID0gYCR7bm9kZS5tZXRhLnZhbHVlRXhwcmVzc2lvbn0ke2dyb3VwZWR9YDtcblxuICBjb25zdCBwcmVmaXggPSBgXFwkeyR7b3BlbkJyYWNlfSBmb3IgJHtjb25kaXRpb25Cb2R5fSBpbiBgO1xuICBjb25zdCBrZXlWYWx1ZSA9IG5vZGUubWV0YS5rZXlFeHByZXNzaW9uXG4gICAgPyBgIDogJHtub2RlLm1ldGEua2V5RXhwcmVzc2lvbn0gPT4gJHt2YWx1ZUV4cHJlc3Npb259YFxuICAgIDogYCA6ICR7dmFsdWVFeHByZXNzaW9ufWA7XG4gIGNvbnN0IGNvbmRpdGlvbmFsID0gbm9kZS5tZXRhLmNvbmRpdGlvbmFsRXhwcmVzc2lvbjtcbiAgY29uc3Qgc3VmZml4ID0gYCR7a2V5VmFsdWV9JHtcbiAgICBjb25kaXRpb25hbCA/IGAgaWYgJHtjb25kaXRpb25hbH1gIDogXCJcIlxuICB9JHtjbG9zZUJyYWNlfX1gO1xuXG4gIGV4cHJlc3Npb25zLnB1c2godC5zdHJpbmdMaXRlcmFsKHByZWZpeCkpO1xuICBpZiAoY29sbGVjdGlvblJlcXVpcmVzV3JhcHBpbmcpIHtcbiAgICBleHByZXNzaW9ucy5wdXNoKHQuc3RyaW5nTGl0ZXJhbChcIiR7XCIpKTtcbiAgfVxuICBleHByZXNzaW9ucy5wdXNoKGNvbGxlY3Rpb25FeHByZXNzaW9uKTtcbiAgaWYgKGNvbGxlY3Rpb25SZXF1aXJlc1dyYXBwaW5nKSB7XG4gICAgZXhwcmVzc2lvbnMucHVzaCh0LnN0cmluZ0xpdGVyYWwoXCJ9XCIpKTtcbiAgfVxuICBleHByZXNzaW9ucy5wdXNoKHQuc3RyaW5nTGl0ZXJhbChzdWZmaXgpKTtcblxuICByZXR1cm4gZXhwcmVzc2lvbkZvclNlcmlhbFN0cmluZ0NvbmNhdGVuYXRpb24oc2NvcGUsIGV4cHJlc3Npb25zKTtcbn1cblxuZnVuY3Rpb24gY29udmVydFRGRXhwcmVzc2lvbkFzdFRvVHMoXG4gIHNjb3BlOiBSZXNvdXJjZVNjb3BlLFxuICBub2RlOiB0ZXguRXhwcmVzc2lvblR5cGUsXG4pOiB0LkV4cHJlc3Npb24ge1xuICBpZiAodGV4LmlzTGl0ZXJhbFZhbHVlRXhwcmVzc2lvbihub2RlKSkge1xuICAgIHJldHVybiBjb252ZXJ0TGl0ZXJhbFZhbHVlRXhwcmVzc2lvblRvVHMoc2NvcGUsIG5vZGUpO1xuICB9XG5cbiAgaWYgKHRleC5pc1Njb3BlVHJhdmVyc2FsRXhwcmVzc2lvbihub2RlKSkge1xuICAgIHJldHVybiBjb252ZXJ0U2NvcGVUcmF2ZXJzYWxFeHByZXNzaW9uVG9UcyhzY29wZSwgbm9kZSk7XG4gIH1cblxuICBpZiAodGV4LmlzVW5hcnlPcEV4cHJlc3Npb24obm9kZSkpIHtcbiAgICByZXR1cm4gY29udmVydFVuYXJ5T3BFeHByZXNzaW9uVG9UcyhzY29wZSwgbm9kZSk7XG4gIH1cblxuICBpZiAodGV4LmlzQmluYXJ5T3BFeHByZXNzaW9uKG5vZGUpKSB7XG4gICAgcmV0dXJuIGNvbnZlcnRCaW5hcnlPcEV4cHJlc3Npb25Ub1RzKHNjb3BlLCBub2RlKTtcbiAgfVxuXG4gIGlmICh0ZXguaXNUZW1wbGF0ZUV4cHJlc3Npb24obm9kZSkgfHwgdGV4LmlzVGVtcGxhdGVXcmFwRXhwcmVzc2lvbihub2RlKSkge1xuICAgIHJldHVybiBjb252ZXJ0VGVtcGxhdGVFeHByZXNzaW9uVG9UcyhzY29wZSwgbm9kZSk7XG4gIH1cblxuICBpZiAodGV4LmlzT2JqZWN0RXhwcmVzc2lvbihub2RlKSkge1xuICAgIHJldHVybiBjb252ZXJ0T2JqZWN0RXhwcmVzc2lvblRvVHMoc2NvcGUsIG5vZGUpO1xuICB9XG5cbiAgaWYgKHRleC5pc0Z1bmN0aW9uQ2FsbEV4cHJlc3Npb24obm9kZSkpIHtcbiAgICByZXR1cm4gY29udmVydEZ1bmN0aW9uQ2FsbEV4cHJlc3Npb25Ub1RzKHNjb3BlLCBub2RlKTtcbiAgfVxuXG4gIGlmICh0ZXguaXNJbmRleEV4cHJlc3Npb24obm9kZSkpIHtcbiAgICByZXR1cm4gY29udmVydEluZGV4RXhwcmVzc2lvblRvVHMoc2NvcGUsIG5vZGUpO1xuICB9XG5cbiAgaWYgKHRleC5pc1NwbGF0RXhwcmVzc2lvbihub2RlKSkge1xuICAgIHJldHVybiBjb252ZXJ0U3BsYXRFeHByZXNzaW9uVG9UcyhzY29wZSwgbm9kZSk7XG4gIH1cblxuICBpZiAodGV4LmlzQ29uZGl0aW9uYWxFeHByZXNzaW9uKG5vZGUpKSB7XG4gICAgcmV0dXJuIGNvbnZlcnRDb25kaXRpb25hbEV4cHJlc3Npb25Ub1RzKHNjb3BlLCBub2RlKTtcbiAgfVxuXG4gIGlmICh0ZXguaXNUdXBsZUV4cHJlc3Npb24obm9kZSkpIHtcbiAgICByZXR1cm4gY29udmVydFR1cGxlRXhwcmVzc2lvblRvVHMoc2NvcGUsIG5vZGUpO1xuICB9XG5cbiAgaWYgKHRleC5pc1JlbGF0aXZlVHJhdmVyc2FsRXhwcmVzc2lvbihub2RlKSkge1xuICAgIHJldHVybiBjb252ZXJ0UmVsYXRpdmVUcmF2ZXJzYWxFeHByZXNzaW9uVG9UcyhzY29wZSwgbm9kZSk7XG4gIH1cblxuICBpZiAodGV4LmlzRm9yRXhwcmVzc2lvbihub2RlKSkge1xuICAgIHJldHVybiBjb252ZXJ0Rm9yRXhwcmVzc2lvblRvVHMoc2NvcGUsIG5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHQuc3RyaW5nTGl0ZXJhbChcIlwiKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4cHJlc3Npb25Bc3QoXG4gIGlucHV0OiBzdHJpbmcsXG4pOiBQcm9taXNlPHRleC5FeHByZXNzaW9uVHlwZT4ge1xuICBjb25zdCB7IHdyYXAsIHdyYXBPZmZzZXQgfSA9IHdyYXBUZXJyYWZvcm1FeHByZXNzaW9uKGlucHV0KTtcbiAgY29uc3QgYXN0ID0gYXdhaXQgZ2V0RXhwcmVzc2lvbkFzdChcIm1haW4udGZcIiwgd3JhcCk7XG5cbiAgaWYgKCFhc3QpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBwYXJzZSB0ZXJyYWZvcm0gZXhwcmVzc2lvbjogJHtpbnB1dH1gKTtcbiAgfVxuXG4gIGlmICh3cmFwT2Zmc2V0ICE9IDAgJiYgdGV4LmlzVGVtcGxhdGVXcmFwRXhwcmVzc2lvbihhc3QpKSB7XG4gICAgcmV0dXJuIGFzdC5jaGlsZHJlblswXTtcbiAgfVxuXG4gIHJldHVybiBhc3Q7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb252ZXJ0VGVycmFmb3JtRXhwcmVzc2lvblRvVHMoXG4gIHNjb3BlOiBSZXNvdXJjZVNjb3BlLFxuICBpbnB1dDogc3RyaW5nLFxuICB0YXJnZXRUeXBlOiAoKSA9PiBBdHRyaWJ1dGVUeXBlLFxuKTogUHJvbWlzZTx0LkV4cHJlc3Npb24+IHtcbiAgbG9nZ2VyLmRlYnVnKGBjb252ZXJ0VGVycmFmb3JtRXhwcmVzc2lvblRvVHMoJHtpbnB1dH0pYCk7XG4gIGNvbnN0IHRzRXhwcmVzc2lvbiA9IGNvbnZlcnRURkV4cHJlc3Npb25Bc3RUb1RzKFxuICAgIHNjb3BlLFxuICAgIGF3YWl0IGV4cHJlc3Npb25Bc3QoaW5wdXQpLFxuICApO1xuXG4gIHJldHVybiBjb2VyY2VUeXBlKFxuICAgIHNjb3BlLFxuICAgIHRzRXhwcmVzc2lvbixcbiAgICBmaW5kRXhwcmVzc2lvblR5cGUoc2NvcGUsIHRzRXhwcmVzc2lvbiksXG4gICAgdGFyZ2V0VHlwZSgpLFxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXh0cmFjdEl0ZXJhdG9yVmFyaWFibGVzRnJvbUV4cHJlc3Npb24oXG4gIGlucHV0OiBzdHJpbmcsXG4pOiBQcm9taXNlPEl0ZXJhdG9yVmFyaWFibGVSZWZlcmVuY2VbXT4ge1xuICBjb25zdCBwb3NzaWJsZVZhcmlhYmxlU3BvdHMgPSBhd2FpdCBnZXRSZWZlcmVuY2VzSW5FeHByZXNzaW9uKFxuICAgIFwibWFpbi50ZlwiLFxuICAgIGlucHV0LFxuICApO1xuXG4gIHJldHVybiBwb3NzaWJsZVZhcmlhYmxlU3BvdHNcbiAgICAuZmlsdGVyKChzcG90KSA9PiBzcG90LnZhbHVlLnN0YXJ0c1dpdGgoXCJlYWNoLlwiKSlcbiAgICAubWFwKChzcG90KSA9PiAoe1xuICAgICAgc3RhcnQ6IHNwb3Quc3RhcnRQb3NpdGlvbixcbiAgICAgIGVuZDogc3BvdC5lbmRQb3NpdGlvbixcbiAgICAgIHZhbHVlOiBzcG90LnZhbHVlLFxuICAgIH0pKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGR5bmFtaWNWYXJpYWJsZVRvQXN0KFxuICBzY29wZTogUHJvZ3JhbVNjb3BlLFxuICBub2RlOiB0ZXguU2NvcGVUcmF2ZXJzYWxFeHByZXNzaW9uLFxuICBpdGVyYXRvck5hbWU6IHN0cmluZyxcbiAgYmxvY2s6IHN0cmluZyA9IFwiZWFjaFwiLFxuKTogdC5FeHByZXNzaW9uIHtcbiAgaWYgKGl0ZXJhdG9yTmFtZSA9PT0gXCJkeW5hbWljLWJsb2NrXCIpIHtcbiAgICByZXR1cm4gZXhwcmVzc2lvbkZvclNlcmlhbFN0cmluZ0NvbmNhdGVuYXRpb24oc2NvcGUsIFtcbiAgICAgIHQuc3RyaW5nTGl0ZXJhbChcIiR7XCIpLFxuICAgICAgdC5zdHJpbmdMaXRlcmFsKGJsb2NrKSxcbiAgICAgIHQuc3RyaW5nTGl0ZXJhbChcIn1cIiksXG4gICAgXSk7XG4gIH1cbiAgaWYgKG5vZGUubWV0YS52YWx1ZSA9PT0gYCR7YmxvY2t9LmtleWApIHtcbiAgICByZXR1cm4gdC5tZW1iZXJFeHByZXNzaW9uKHQuaWRlbnRpZmllcihpdGVyYXRvck5hbWUpLCB0LmlkZW50aWZpZXIoXCJrZXlcIikpO1xuICB9XG4gIGlmIChub2RlLm1ldGEudmFsdWUgPT09IGAke2Jsb2NrfS52YWx1ZWApIHtcbiAgICByZXR1cm4gdC5tZW1iZXJFeHByZXNzaW9uKFxuICAgICAgdC5pZGVudGlmaWVyKGl0ZXJhdG9yTmFtZSksXG4gICAgICB0LmlkZW50aWZpZXIoXCJ2YWx1ZVwiKSxcbiAgICApO1xuICB9XG5cbiAgaWYgKGJsb2NrID09PSBcImNvdW50XCIgJiYgbm9kZS5tZXRhLnZhbHVlID09PSBgJHtibG9ja30uaW5kZXhgKSB7XG4gICAgcmV0dXJuIHQubWVtYmVyRXhwcmVzc2lvbihcbiAgICAgIHQuaWRlbnRpZmllcihpdGVyYXRvck5hbWUpLFxuICAgICAgdC5pZGVudGlmaWVyKFwiaW5kZXhcIiksXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHNlZ21lbnRzID0gbm9kZS5tZXRhLnRyYXZlcnNhbDtcblxuICBpZiAoXG4gICAgc2VnbWVudHMubGVuZ3RoID4gMiAmJlxuICAgIHNlZ21lbnRzWzBdLnNlZ21lbnQgPT09IGJsb2NrICYmXG4gICAgc2VnbWVudHNbMV0uc2VnbWVudCA9PT0gXCJ2YWx1ZVwiXG4gICkge1xuICAgIGNvbnN0IHNlZ21lbnRzQWZ0ZXJFYWNoVmFsdWUgPSBzZWdtZW50cy5zbGljZSgyKTtcbiAgICBzY29wZS5pbXBvcnRhYmxlcy5wdXNoKHtcbiAgICAgIGNvbnN0cnVjdE5hbWU6IFwiRm5cIixcbiAgICAgIHByb3ZpZGVyOiBcImNka3RuXCIsXG4gICAgfSk7XG4gICAgY29uc3QgY2FsbGVlID0gdC5tZW1iZXJFeHByZXNzaW9uKFxuICAgICAgdC5pZGVudGlmaWVyKFwiRm5cIiksXG4gICAgICB0LmlkZW50aWZpZXIoXCJsb29rdXBOZXN0ZWRcIiksXG4gICAgKTtcbiAgICByZXR1cm4gdC5jYWxsRXhwcmVzc2lvbihjYWxsZWUsIFtcbiAgICAgIHQubWVtYmVyRXhwcmVzc2lvbih0LmlkZW50aWZpZXIoaXRlcmF0b3JOYW1lKSwgdC5pZGVudGlmaWVyKFwidmFsdWVcIikpLFxuICAgICAgdC5hcnJheUV4cHJlc3Npb24oXG4gICAgICAgIHNlZ21lbnRzQWZ0ZXJFYWNoVmFsdWUubWFwKChwYXJ0KSA9PiB7XG4gICAgICAgICAgaWYgKHBhcnQudHlwZSA9PT0gXCJuYW1lVHJhdmVyc2FsXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0LnN0cmluZ0xpdGVyYWwocGFydC5zZWdtZW50KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHQuc3RyaW5nTGl0ZXJhbChgWyR7cGFydC5zZWdtZW50fV1gKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICBdKTtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihcbiAgICBgQ2FuIG5vdCBjcmVhdGUgQVNUIGZvciBpdGVyYXRvciB2YXJpYWJsZSBvZiAnJHtub2RlLm1ldGEudmFsdWV9J2AsXG4gICk7XG59XG4iXX0=
@@ -4,7 +4,7 @@
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.functionsMapGenerated = void 0;
6
6
  // This file is generated by tools/generate-function-bindings.
7
- // To update this file execute 'yarn run generate-function-bindings' in the root of the repository
7
+ // To update this file execute 'pnpm generate-function-bindings' in the root of the repository
8
8
  exports.functionsMapGenerated = {
9
9
  abs: {
10
10
  name: "abs",
@@ -1139,4 +1139,4 @@ exports.functionsMapGenerated = {
1139
1139
  ],
1140
1140
  },
1141
1141
  };
1142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mdW5jdGlvbi1iaW5kaW5ncy9mdW5jdGlvbnMuZ2VuZXJhdGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DOzs7QUFFbkMsOERBQThEO0FBQzlELGtHQUFrRztBQUNyRixRQUFBLHFCQUFxQixHQUFHO0lBQ25DLEdBQUcsRUFBRTtRQUNILElBQUksRUFBRSxLQUFLO1FBQ1gsVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUsU0FBUztRQUNmLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsSUFBSSxFQUFFLFNBQVM7UUFDZixVQUFVLEVBQUUsTUFBTTtRQUNsQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO2FBQ3ZCO1NBQ0Y7S0FDRjtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxTQUFTO1FBQ2YsVUFBVSxFQUFFLE1BQU07UUFDbEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQzthQUN2QjtTQUNGO0tBQ0Y7SUFDRCxZQUFZLEVBQUU7UUFDWixJQUFJLEVBQUUsY0FBYztRQUNwQixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELFlBQVksRUFBRTtRQUNaLElBQUksRUFBRSxjQUFjO1FBQ3BCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFB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RCxNQUFNLEVBQUU7UUFDTixJQUFJLEVBQUUsUUFBUTtRQUNkLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELE1BQU0sRUFBRTtRQUNOLElBQUksRUFBRSxRQUFRO1FBQ2QsVUFBVSxFQUFFLFNBQVM7UUFDckIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtLQUNGO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFlBQVk7UUFDbEIsVUFBVSxFQUFFLFNBQVM7UUFDckIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxVQUFVLEVBQUU7UUFDVixJQUFJLEVBQUUsWUFBWTtRQUNsQixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO0tBQ0Y7SUFDRCxNQUFNLEVBQUU7UUFDTixJQUFJLEVBQUUsUUFBUTtRQUNkLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7YUFDekI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcblxuLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSB0b29scy9nZW5lcmF0ZS1mdW5jdGlvbi1iaW5kaW5ncy5cbi8vIFRvIHVwZGF0ZSB0aGlzIGZpbGUgZXhlY3V0ZSAneWFybiBydW4gZ2VuZXJhdGUtZnVuY3Rpb24tYmluZGluZ3MnIGluIHRoZSByb290IG9mIHRoZSByZXBvc2l0b3J5XG5leHBvcnQgY29uc3QgZnVuY3Rpb25zTWFwR2VuZXJhdGVkID0ge1xuICBhYnM6IHtcbiAgICBuYW1lOiBcImFic1wiLFxuICAgIHJldHVyblR5cGU6IFwibnVtYmVyXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBhYnNwYXRoOiB7XG4gICAgbmFtZTogXCJhYnNwYXRoXCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGFsbHRydWU6IHtcbiAgICBuYW1lOiBcImFsbHRydWVcIixcbiAgICByZXR1cm5UeXBlOiBcImJvb2xcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJib29sXCJdLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBhbnl0cnVlOiB7XG4gICAgbmFtZTogXCJhbnl0cnVlXCIsXG4gICAgcmV0dXJuVHlwZTogXCJib29sXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwiYm9vbFwiXSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgYmFzZTY0ZGVjb2RlOiB7XG4gICAgbmFtZTogXCJiYXNlNjRkZWNvZGVcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgYmFzZTY0ZW5jb2RlOiB7XG4gICAgbmFtZTogXCJiYXNlNjRlbmNvZGVcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgYmFzZTY0Z3ppcDoge1xuICAgIG5hbWU6IFwiYmFzZTY0Z3ppcFwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBiYXNlNjRzaGEyNTY6IHtcbiAgICBuYW1lOiBcImJhc2U2NHNoYTI1NlwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBiYXNlNjRzaGE1MTI6IHtcbiAgICBuYW1lOiBcImJhc2U2NHNoYTUxMlwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBiYXNlbmFtZToge1xuICAgIG5hbWU6IFwiYmFzZW5hbWVcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgY2FuOiB7XG4gICAgbmFtZTogXCJjYW5cIixcbiAgICByZXR1cm5UeXBlOiBcImJvb2xcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBjZWlsOiB7XG4gICAgbmFtZTogXCJjZWlsXCIsXG4gICAgcmV0dXJuVHlwZTogXCJudW1iZXJcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGNob21wOiB7XG4gICAgbmFtZTogXCJjaG9tcFwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBjaHVua2xpc3Q6IHtcbiAgICBuYW1lOiBcImNodW5rbGlzdFwiLFxuICAgIHJldHVyblR5cGU6IFtcImxpc3RcIiwgW1wibGlzdFwiLCBcImR5bmFtaWNcIl1dLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcImR5bmFtaWNcIl0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBjaWRyaG9zdDoge1xuICAgIG5hbWU6IFwiY2lkcmhvc3RcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGNpZHJuZXRtYXNrOiB7XG4gICAgbmFtZTogXCJjaWRybmV0bWFza1wiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBjaWRyc3VibmV0OiB7XG4gICAgbmFtZTogXCJjaWRyc3VibmV0XCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgY2lkcnN1Ym5ldHM6IHtcbiAgICBuYW1lOiBcImNpZHJzdWJuZXRzXCIsXG4gICAgcmV0dXJuVHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiXSxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgICB2YXJpYWRpYzogdHJ1ZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgY29hbGVzY2U6IHtcbiAgICBuYW1lOiBcImNvYWxlc2NlXCIsXG4gICAgcmV0dXJuVHlwZTogXCJkeW5hbWljXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgICAgdmFyaWFkaWM6IHRydWUsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGNvYWxlc2NlbGlzdDoge1xuICAgIG5hbWU6IFwiY29hbGVzY2VsaXN0XCIsXG4gICAgcmV0dXJuVHlwZTogXCJkeW5hbWljXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgICAgdmFyaWFkaWM6IHRydWUsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGNvbXBhY3Q6IHtcbiAgICBuYW1lOiBcImNvbXBhY3RcIixcbiAgICByZXR1cm5UeXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCJdLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiXSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgY29uY2F0OiB7XG4gICAgbmFtZTogXCJjb25jYXRcIixcbiAgICByZXR1cm5UeXBlOiBcImR5bmFtaWNcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgICB2YXJpYWRpYzogdHJ1ZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgY29udGFpbnM6IHtcbiAgICBuYW1lOiBcImNvbnRhaW5zXCIsXG4gICAgcmV0dXJuVHlwZTogXCJkeW5hbWljXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBjc3ZkZWNvZGU6IHtcbiAgICBuYW1lOiBcImNzdmRlY29kZVwiLFxuICAgIHJldHVyblR5cGU6IFwiZHluYW1pY1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgZGlybmFtZToge1xuICAgIG5hbWU6IFwiZGlybmFtZVwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBkaXN0aW5jdDoge1xuICAgIG5hbWU6IFwiZGlzdGluY3RcIixcbiAgICByZXR1cm5UeXBlOiBbXCJsaXN0XCIsIFwiZHluYW1pY1wiXSxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJkeW5hbWljXCJdLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBlbGVtZW50OiB7XG4gICAgbmFtZTogXCJlbGVtZW50XCIsXG4gICAgcmV0dXJuVHlwZTogXCJkeW5hbWljXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGVuZHN3aXRoOiB7XG4gICAgbmFtZTogXCJlbmRzd2l0aFwiLFxuICAgIHJldHVyblR5cGU6IFwiYm9vbFwiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGZpbGU6IHtcbiAgICBuYW1lOiBcImZpbGVcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgZmlsZWJhc2U2NDoge1xuICAgIG5hbWU6IFwiZmlsZWJhc2U2NFwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBmaWxlYmFzZTY0c2hhMjU2OiB7XG4gICAgbmFtZTogXCJmaWxlYmFzZTY0c2hhMjU2XCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGZpbGViYXNlNjRzaGE1MTI6IHtcbiAgICBuYW1lOiBcImZpbGViYXNlNjRzaGE1MTJcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgZmlsZWV4aXN0czoge1xuICAgIG5hbWU6IFwiZmlsZWV4aXN0c1wiLFxuICAgIHJldHVyblR5cGU6IFwiYm9vbFwiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgZmlsZW1kNToge1xuICAgIG5hbWU6IFwiZmlsZW1kNVwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBmaWxlc2V0OiB7XG4gICAgbmFtZTogXCJmaWxlc2V0XCIsXG4gICAgcmV0dXJuVHlwZTogW1wic2V0XCIsIFwic3RyaW5nXCJdLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGZpbGVzaGExOiB7XG4gICAgbmFtZTogXCJmaWxlc2hhMVwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBmaWxlc2hhMjU2OiB7XG4gICAgbmFtZTogXCJmaWxlc2hhMjU2XCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGZpbGVzaGE1MTI6IHtcbiAgICBuYW1lOiBcImZpbGVzaGE1MTJcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgZmxhdHRlbjoge1xuICAgIG5hbWU6IFwiZmxhdHRlblwiLFxuICAgIHJldHVyblR5cGU6IFwiZHluYW1pY1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGZsb29yOiB7XG4gICAgbmFtZTogXCJmbG9vclwiLFxuICAgIHJldHVyblR5cGU6IFwibnVtYmVyXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBmb3JtYXQ6IHtcbiAgICBuYW1lOiBcImZvcm1hdFwiLFxuICAgIHJldHVyblR5cGU6IFwiZHluYW1pY1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgICB2YXJpYWRpYzogdHJ1ZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgZm9ybWF0ZGF0ZToge1xuICAgIG5hbWU6IFwiZm9ybWF0ZGF0ZVwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgZm9ybWF0bGlzdDoge1xuICAgIG5hbWU6IFwiZm9ybWF0bGlzdFwiLFxuICAgIHJldHVyblR5cGU6IFwiZHluYW1pY1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgICB2YXJpYWRpYzogdHJ1ZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgaW5kZW50OiB7XG4gICAgbmFtZTogXCJpbmRlbnRcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGluZGV4OiB7XG4gICAgbmFtZTogXCJpbmRleFwiLFxuICAgIHJldHVyblR5cGU6IFwiZHluYW1pY1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAganNvbmRlY29kZToge1xuICAgIG5hbWU6IFwianNvbmRlY29kZVwiLFxuICAgIHJldHVyblR5cGU6IFwiZHluYW1pY1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAganNvbmVuY29kZToge1xuICAgIG5hbWU6IFwianNvbmVuY29kZVwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAga2V5czoge1xuICAgIG5hbWU6IFwia2V5c1wiLFxuICAgIHJldHVyblR5cGU6IFwiZHluYW1pY1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGxlbmd0aDoge1xuICAgIG5hbWU6IFwibGVuZ3RoT2ZcIixcbiAgICByZXR1cm5UeXBlOiBcIm51bWJlclwiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGxvZzoge1xuICAgIG5hbWU6IFwibG9nXCIsXG4gICAgcmV0dXJuVHlwZTogXCJudW1iZXJcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBsb3dlcjoge1xuICAgIG5hbWU6IFwibG93ZXJcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgbWF0Y2hrZXlzOiB7XG4gICAgbmFtZTogXCJtYXRjaGtleXNcIixcbiAgICByZXR1cm5UeXBlOiBbXCJsaXN0XCIsIFwiZHluYW1pY1wiXSxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJkeW5hbWljXCJdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcImR5bmFtaWNcIl0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwiZHluYW1pY1wiXSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgbWF4OiB7XG4gICAgbmFtZTogXCJtYXhcIixcbiAgICByZXR1cm5UeXBlOiBcIm51bWJlclwiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgICAgdmFyaWFkaWM6IHRydWUsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIG1kNToge1xuICAgIG5hbWU6IFwibWQ1XCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIG1lcmdlOiB7XG4gICAgbmFtZTogXCJtZXJnZVwiLFxuICAgIHJldHVyblR5cGU6IFwiZHluYW1pY1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICAgIHZhcmlhZGljOiB0cnVlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBtaW46IHtcbiAgICBuYW1lOiBcIm1pblwiLFxuICAgIHJldHVyblR5cGU6IFwibnVtYmVyXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgICB2YXJpYWRpYzogdHJ1ZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgbm9uc2Vuc2l0aXZlOiB7XG4gICAgbmFtZTogXCJub25zZW5zaXRpdmVcIixcbiAgICByZXR1cm5UeXBlOiBcImR5bmFtaWNcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBvbmU6IHtcbiAgICBuYW1lOiBcIm9uZVwiLFxuICAgIHJldHVyblR5cGU6IFwiZHluYW1pY1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHBhcnNlaW50OiB7XG4gICAgbmFtZTogXCJwYXJzZWludFwiLFxuICAgIHJldHVyblR5cGU6IFwiZHluYW1pY1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBwYXRoZXhwYW5kOiB7XG4gICAgbmFtZTogXCJwYXRoZXhwYW5kXCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHBsYW50aW1lc3RhbXA6IHtcbiAgICBuYW1lOiBcInBsYW50aW1lc3RhbXBcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtdLFxuICB9LFxuICBwb3c6IHtcbiAgICBuYW1lOiBcInBvd1wiLFxuICAgIHJldHVyblR5cGU6IFwibnVtYmVyXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgcmVnZXg6IHtcbiAgICBuYW1lOiBcInJlZ2V4XCIsXG4gICAgcmV0dXJuVHlwZTogXCJkeW5hbWljXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgcmVnZXhhbGw6IHtcbiAgICBuYW1lOiBcInJlZ2V4YWxsXCIsXG4gICAgcmV0dXJuVHlwZTogW1wibGlzdFwiLCBcImR5bmFtaWNcIl0sXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgcmVwbGFjZToge1xuICAgIG5hbWU6IFwicmVwbGFjZVwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHJldmVyc2U6IHtcbiAgICBuYW1lOiBcInJldmVyc2VcIixcbiAgICByZXR1cm5UeXBlOiBcImR5bmFtaWNcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICByc2FkZWNyeXB0OiB7XG4gICAgbmFtZTogXCJyc2FkZWNyeXB0XCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBzZW5zaXRpdmU6IHtcbiAgICBuYW1lOiBcInNlbnNpdGl2ZVwiLFxuICAgIHJldHVyblR5cGU6IFwiZHluYW1pY1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHNldGludGVyc2VjdGlvbjoge1xuICAgIG5hbWU6IFwic2V0aW50ZXJzZWN0aW9uXCIsXG4gICAgcmV0dXJuVHlwZTogW1wic2V0XCIsIFwiZHluYW1pY1wiXSxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFtcInNldFwiLCBcImR5bmFtaWNcIl0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBbXCJzZXRcIiwgXCJkeW5hbWljXCJdLFxuICAgICAgICB2YXJpYWRpYzogdHJ1ZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgc2V0cHJvZHVjdDoge1xuICAgIG5hbWU6IFwic2V0cHJvZHVjdFwiLFxuICAgIHJldHVyblR5cGU6IFwiZHluYW1pY1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICAgIHZhcmlhZGljOiB0cnVlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBzZXRzdWJ0cmFjdDoge1xuICAgIG5hbWU6IFwic2V0c3VidHJhY3RcIixcbiAgICByZXR1cm5UeXBlOiBbXCJzZXRcIiwgXCJkeW5hbWljXCJdLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogW1wic2V0XCIsIFwiZHluYW1pY1wiXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFtcInNldFwiLCBcImR5bmFtaWNcIl0sXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHNldHVuaW9uOiB7XG4gICAgbmFtZTogXCJzZXR1bmlvblwiLFxuICAgIHJldHVyblR5cGU6IFtcInNldFwiLCBcImR5bmFtaWNcIl0sXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBbXCJzZXRcIiwgXCJkeW5hbWljXCJdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogW1wic2V0XCIsIFwiZHluYW1pY1wiXSxcbiAgICAgICAgdmFyaWFkaWM6IHRydWUsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHNoYTE6IHtcbiAgICBuYW1lOiBcInNoYTFcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgc2hhMjU2OiB7XG4gICAgbmFtZTogXCJzaGEyNTZcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgc2hhNTEyOiB7XG4gICAgbmFtZTogXCJzaGE1MTJcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgc2lnbnVtOiB7XG4gICAgbmFtZTogXCJzaWdudW1cIixcbiAgICByZXR1cm5UeXBlOiBcIm51bWJlclwiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgc2xpY2U6IHtcbiAgICBuYW1lOiBcInNsaWNlXCIsXG4gICAgcmV0dXJuVHlwZTogXCJkeW5hbWljXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBzb3J0OiB7XG4gICAgbmFtZTogXCJzb3J0XCIsXG4gICAgcmV0dXJuVHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiXSxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIl0sXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHNwbGl0OiB7XG4gICAgbmFtZTogXCJzcGxpdFwiLFxuICAgIHJldHVyblR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIl0sXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgc3RhcnRzd2l0aDoge1xuICAgIG5hbWU6IFwic3RhcnRzd2l0aFwiLFxuICAgIHJldHVyblR5cGU6IFwiYm9vbFwiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHN0cmNvbnRhaW5zOiB7XG4gICAgbmFtZTogXCJzdHJjb250YWluc1wiLFxuICAgIHJldHVyblR5cGU6IFwiYm9vbFwiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHN0cnJldjoge1xuICAgIG5hbWU6IFwic3RycmV2XCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHN1YnN0cjoge1xuICAgIG5hbWU6IFwic3Vic3RyXCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgc3VtOiB7XG4gICAgbmFtZTogXCJzdW1cIixcbiAgICByZXR1cm5UeXBlOiBcImR5bmFtaWNcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB0ZW1wbGF0ZWZpbGU6IHtcbiAgICBuYW1lOiBcInRlbXBsYXRlZmlsZVwiLFxuICAgIHJldHVyblR5cGU6IFwiZHluYW1pY1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB0ZXh0ZGVjb2RlYmFzZTY0OiB7XG4gICAgbmFtZTogXCJ0ZXh0ZGVjb2RlYmFzZTY0XCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB0ZXh0ZW5jb2RlYmFzZTY0OiB7XG4gICAgbmFtZTogXCJ0ZXh0ZW5jb2RlYmFzZTY0XCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB0aW1lYWRkOiB7XG4gICAgbmFtZTogXCJ0aW1lYWRkXCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB0aW1lY21wOiB7XG4gICAgbmFtZTogXCJ0aW1lY21wXCIsXG4gICAgcmV0dXJuVHlwZTogXCJudW1iZXJcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB0aW1lc3RhbXA6IHtcbiAgICBuYW1lOiBcInRpbWVzdGFtcFwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW10sXG4gIH0sXG4gIHRpdGxlOiB7XG4gICAgbmFtZTogXCJ0aXRsZVwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB0b2Jvb2w6IHtcbiAgICBuYW1lOiBcInRvYm9vbFwiLFxuICAgIHJldHVyblR5cGU6IFwiYm9vbFwiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHRvbGlzdDoge1xuICAgIG5hbWU6IFwidG9saXN0XCIsXG4gICAgcmV0dXJuVHlwZTogW1wibGlzdFwiLCBcImR5bmFtaWNcIl0sXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgdG9tYXA6IHtcbiAgICBuYW1lOiBcInRvbWFwXCIsXG4gICAgcmV0dXJuVHlwZTogW1wibWFwXCIsIFwiZHluYW1pY1wiXSxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB0b251bWJlcjoge1xuICAgIG5hbWU6IFwidG9udW1iZXJcIixcbiAgICByZXR1cm5UeXBlOiBcIm51bWJlclwiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHRvc2V0OiB7XG4gICAgbmFtZTogXCJ0b3NldFwiLFxuICAgIHJldHVyblR5cGU6IFtcInNldFwiLCBcImR5bmFtaWNcIl0sXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgdG9zdHJpbmc6IHtcbiAgICBuYW1lOiBcInRvc3RyaW5nXCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB0cmFuc3Bvc2U6IHtcbiAgICBuYW1lOiBcInRyYW5zcG9zZVwiLFxuICAgIHJldHVyblR5cGU6IFtcIm1hcFwiLCBbXCJsaXN0XCIsIFwic3RyaW5nXCJdXSxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFtcIm1hcFwiLCBbXCJsaXN0XCIsIFwic3RyaW5nXCJdXSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgdHJpbToge1xuICAgIG5hbWU6IFwidHJpbVwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgdHJpbXByZWZpeDoge1xuICAgIG5hbWU6IFwidHJpbXByZWZpeFwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgdHJpbXNwYWNlOiB7XG4gICAgbmFtZTogXCJ0cmltc3BhY2VcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgdHJpbXN1ZmZpeDoge1xuICAgIG5hbWU6IFwidHJpbXN1ZmZpeFwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgdHJ5OiB7XG4gICAgbmFtZTogXCJ0cnlcIixcbiAgICByZXR1cm5UeXBlOiBcImR5bmFtaWNcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgICB2YXJpYWRpYzogdHJ1ZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgdXBwZXI6IHtcbiAgICBuYW1lOiBcInVwcGVyXCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHVybGVuY29kZToge1xuICAgIG5hbWU6IFwidXJsZW5jb2RlXCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHV1aWQ6IHtcbiAgICBuYW1lOiBcInV1aWRcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtdLFxuICB9LFxuICB1dWlkdjU6IHtcbiAgICBuYW1lOiBcInV1aWR2NVwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgdmFsdWVzOiB7XG4gICAgbmFtZTogXCJ2YWx1ZXNcIixcbiAgICByZXR1cm5UeXBlOiBcImR5bmFtaWNcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB5YW1sZGVjb2RlOiB7XG4gICAgbmFtZTogXCJ5YW1sZGVjb2RlXCIsXG4gICAgcmV0dXJuVHlwZTogXCJkeW5hbWljXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB5YW1sZW5jb2RlOiB7XG4gICAgbmFtZTogXCJ5YW1sZW5jb2RlXCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB6aXBtYXA6IHtcbiAgICBuYW1lOiBcInppcG1hcFwiLFxuICAgIHJldHVyblR5cGU6IFwiZHluYW1pY1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxufTtcbiJdfQ==
1142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mdW5jdGlvbi1iaW5kaW5ncy9mdW5jdGlvbnMuZ2VuZXJhdGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DOzs7QUFFbkMsOERBQThEO0FBQzlELDhGQUE4RjtBQUNqRixRQUFBLHFCQUFxQixHQUFHO0lBQ25DLEdBQUcsRUFBRTtRQUNILElBQUksRUFBRSxLQUFLO1FBQ1gsVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUsU0FBUztRQUNmLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsSUFBSSxFQUFFLFNBQVM7UUFDZixVQUFVLEVBQUUsTUFBTTtRQUNsQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO2FBQ3ZCO1NBQ0Y7S0FDRjtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxTQUFTO1FBQ2YsVUFBVSxFQUFFLE1BQU07UUFDbEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQzthQUN2QjtTQUNGO0tBQ0Y7SUFDRCxZQUFZLEVBQUU7UUFDWixJQUFJLEVBQUUsY0FBYztRQUNwQixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELFlBQVksRUFBRTtRQUNaLElBQUksRUFBRSxjQUFjO1FBQ3BCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFlBQVk7UUFDbEIsVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxZQUFZLEVBQUU7UUFDWixJQUFJLEVBQUUsY0FBYztRQUNwQixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELFlBQVksRUFBRTtRQUNaLElBQUksRUFBRSxjQUFjO1FBQ3BCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsSUFBSSxFQUFFLFVBQVU7UUFDaEIsVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxHQUFHLEVBQUU7UUFDSCxJQUFJLEVBQUUsS0FBSztRQUNYLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLElBQUksRUFBRSxNQUFNO1FBQ1osVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxLQUFLLEVBQUU7UUFDTCxJQUFJLEVBQUUsT0FBTztRQUNiLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsSUFBSSxFQUFFLFdBQVc7UUFDakIsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUM7YUFDMUI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELFFBQVEsRUFBRTtRQUNSLElBQUksRUFBRSxVQUFVO1FBQ2hCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELFdBQVcsRUFBRTtRQUNYLElBQUksRUFBRSxhQUFhO1FBQ25CLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFlBQVk7UUFDbEIsVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELFdBQVcsRUFBRTtRQUNYLElBQUksRUFBRSxhQUFhO1FBQ25CLFVBQVUsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7UUFDOUIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxRQUFRO2dCQUNkLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsSUFBSSxFQUFFLFVBQVU7UUFDaEIsVUFBVSxFQUFFLFNBQVM7UUFDckIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsUUFBUSxFQUFFLElBQUk7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxZQUFZLEVBQUU7UUFDWixJQUFJLEVBQUUsY0FBYztRQUNwQixVQUFVLEVBQUUsU0FBUztRQUNyQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsU0FBUztnQkFDZixRQUFRLEVBQUUsSUFBSTthQUNmO1NBQ0Y7S0FDRjtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxTQUFTO1FBQ2YsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQztRQUM5QixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO2FBQ3pCO1NBQ0Y7S0FDRjtJQUNELE1BQU0sRUFBRTtRQUNOLElBQUksRUFBRSxRQUFRO1FBQ2QsVUFBVSxFQUFFLFNBQVM7UUFDckIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsUUFBUSxFQUFFLElBQUk7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxRQUFRLEVBQUU7UUFDUixJQUFJLEVBQUUsVUFBVTtRQUNoQixVQUFVLEVBQUUsU0FBUztRQUNyQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7S0FDRjtJQUNELFNBQVMsRUFBRTtRQUNULElBQUksRUFBRSxXQUFXO1FBQ2pCLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsSUFBSSxFQUFFLFNBQVM7UUFDZixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELFFBQVEsRUFBRTtRQUNSLElBQUksRUFBRSxVQUFVO1FBQ2hCLFVBQVUsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUM7UUFDL0IsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQzthQUMxQjtTQUNGO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUsU0FBUztRQUNmLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxRQUFRLEVBQUU7UUFDUixJQUFJLEVBQUUsVUFBVTtRQUNoQixVQUFVLEVBQUUsTUFBTTtRQUNsQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsTUFBTTtRQUNaLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFlBQVk7UUFDbEIsVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixJQUFJLEVBQUUsa0JBQWtCO1FBQ3hCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsZ0JBQWdCLEVBQUU7UUFDaEIsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRSxZQUFZO1FBQ2xCLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsSUFBSSxFQUFFLFNBQVM7UUFDZixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxTQUFTO1FBQ2YsVUFBVSxFQUFFLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQztRQUM3QixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxRQUFRLEVBQUU7UUFDUixJQUFJLEVBQUUsVUFBVTtRQUNoQixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRSxZQUFZO1FBQ2xCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFlBQVk7UUFDbEIsVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUsU0FBUztRQUNmLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7S0FDRjtJQUNELEtBQUssRUFBRTtRQUNMLElBQUksRUFBRSxPQUFPO1FBQ2IsVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxNQUFNLEVBQUU7UUFDTixJQUFJLEVBQUUsUUFBUTtRQUNkLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsU0FBUztnQkFDZixRQUFRLEVBQUUsSUFBSTthQUNmO1NBQ0Y7S0FDRjtJQUNELFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRSxZQUFZO1FBQ2xCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRSxZQUFZO1FBQ2xCLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsU0FBUztnQkFDZixRQUFRLEVBQUUsSUFBSTthQUNmO1NBQ0Y7S0FDRjtJQUNELE1BQU0sRUFBRTtRQUNOLElBQUksRUFBRSxRQUFRO1FBQ2QsVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsSUFBSSxFQUFFLE9BQU87UUFDYixVQUFVLEVBQUUsU0FBUztRQUNyQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7S0FDRjtJQUNELFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRSxZQUFZO1FBQ2xCLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFlBQVk7UUFDbEIsVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtLQUNGO0lBQ0QsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLE1BQU07UUFDWixVQUFVLEVBQUUsU0FBUztRQUNyQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO0tBQ0Y7SUFDRCxNQUFNLEVBQUU7UUFDTixJQUFJLEVBQUUsVUFBVTtRQUNoQixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO0tBQ0Y7SUFDRCxHQUFHLEVBQUU7UUFDSCxJQUFJLEVBQUUsS0FBSztRQUNYLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELEtBQUssRUFBRTtRQUNMLElBQUksRUFBRSxPQUFPO1FBQ2IsVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxTQUFTLEVBQUU7UUFDVCxJQUFJLEVBQUUsV0FBVztRQUNqQixVQUFVLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDO1FBQy9CLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUM7YUFDMUI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDO2FBQzFCO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQzthQUMxQjtTQUNGO0tBQ0Y7SUFDRCxHQUFHLEVBQUU7UUFDSCxJQUFJLEVBQUUsS0FBSztRQUNYLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2dCQUNkLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsSUFBSSxFQUFFLEtBQUs7UUFDWCxVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELEtBQUssRUFBRTtRQUNMLElBQUksRUFBRSxPQUFPO1FBQ2IsVUFBVSxFQUFFLFNBQVM7UUFDckIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsUUFBUSxFQUFFLElBQUk7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxHQUFHLEVBQUU7UUFDSCxJQUFJLEVBQUUsS0FBSztRQUNYLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2dCQUNkLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsWUFBWSxFQUFFO1FBQ1osSUFBSSxFQUFFLGNBQWM7UUFDcEIsVUFBVSxFQUFFLFNBQVM7UUFDckIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtLQUNGO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsSUFBSSxFQUFFLEtBQUs7UUFDWCxVQUFVLEVBQUUsU0FBUztRQUNyQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO0tBQ0Y7SUFDRCxRQUFRLEVBQUU7UUFDUixJQUFJLEVBQUUsVUFBVTtRQUNoQixVQUFVLEVBQUUsU0FBUztRQUNyQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFlBQVk7UUFDbEIsVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxhQUFhLEVBQUU7UUFDYixJQUFJLEVBQUUsZUFBZTtRQUNyQixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUUsRUFBRTtLQUNmO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsSUFBSSxFQUFFLEtBQUs7UUFDWCxVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxLQUFLLEVBQUU7UUFDTCxJQUFJLEVBQUUsT0FBTztRQUNiLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELFFBQVEsRUFBRTtRQUNSLElBQUksRUFBRSxVQUFVO1FBQ2hCLFVBQVUsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUM7UUFDL0IsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsSUFBSSxFQUFFLFNBQVM7UUFDZixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsSUFBSSxFQUFFLFNBQVM7UUFDZixVQUFVLEVBQUUsU0FBUztRQUNyQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO0tBQ0Y7SUFDRCxVQUFVLEVBQUU7UUFDVixJQUFJLEVBQUUsWUFBWTtRQUNsQixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxTQUFTLEVBQUU7UUFDVCxJQUFJLEVBQUUsV0FBVztRQUNqQixVQUFVLEVBQUUsU0FBUztRQUNyQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO0tBQ0Y7SUFDRCxlQUFlLEVBQUU7UUFDZixJQUFJLEVBQUUsaUJBQWlCO1FBQ3ZCLFVBQVUsRUFBRSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUM7UUFDOUIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQzthQUN6QjtZQUNEO2dCQUNFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUM7Z0JBQ3hCLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFlBQVk7UUFDbEIsVUFBVSxFQUFFLFNBQVM7UUFDckIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsUUFBUSxFQUFFLElBQUk7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxXQUFXLEVBQUU7UUFDWCxJQUFJLEVBQUUsYUFBYTtRQUNuQixVQUFVLEVBQUUsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDO1FBQzlCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUM7YUFDekI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDO2FBQ3pCO1NBQ0Y7S0FDRjtJQUNELFFBQVEsRUFBRTtRQUNSLElBQUksRUFBRSxVQUFVO1FBQ2hCLFVBQVUsRUFBRSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUM7UUFDOUIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQzthQUN6QjtZQUNEO2dCQUNFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUM7Z0JBQ3hCLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLE1BQU07UUFDWixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELE1BQU0sRUFBRTtRQUNOLElBQUksRUFBRSxRQUFRO1FBQ2QsVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxNQUFNLEVBQUU7UUFDTixJQUFJLEVBQUUsUUFBUTtRQUNkLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsTUFBTSxFQUFFO1FBQ04sSUFBSSxFQUFFLFFBQVE7UUFDZCxVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELEtBQUssRUFBRTtRQUNMLElBQUksRUFBRSxPQUFPO1FBQ2IsVUFBVSxFQUFFLFNBQVM7UUFDckIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsTUFBTTtRQUNaLFVBQVUsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7UUFDOUIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQzthQUN6QjtTQUNGO0tBQ0Y7SUFDRCxLQUFLLEVBQUU7UUFDTCxJQUFJLEVBQUUsT0FBTztRQUNiLFVBQVUsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7UUFDOUIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFlBQVk7UUFDbEIsVUFBVSxFQUFFLE1BQU07UUFDbEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsSUFBSSxFQUFFLGFBQWE7UUFDbkIsVUFBVSxFQUFFLE1BQU07UUFDbEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsTUFBTSxFQUFFO1FBQ04sSUFBSSxFQUFFLFFBQVE7UUFDZCxVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELE1BQU0sRUFBRTtRQUNOLElBQUksRUFBRSxRQUFRO1FBQ2QsVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELEdBQUcsRUFBRTtRQUNILElBQUksRUFBRSxLQUFLO1FBQ1gsVUFBVSxFQUFFLFNBQVM7UUFDckIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtLQUNGO0lBQ0QsWUFBWSxFQUFFO1FBQ1osSUFBSSxFQUFFLGNBQWM7UUFDcEIsVUFBVSxFQUFFLFNBQVM7UUFDckIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7S0FDRjtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLElBQUksRUFBRSxrQkFBa0I7UUFDeEIsVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsZ0JBQWdCLEVBQUU7UUFDaEIsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUsU0FBUztRQUNmLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxTQUFTO1FBQ2YsVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsSUFBSSxFQUFFLFdBQVc7UUFDakIsVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFLEVBQUU7S0FDZjtJQUNELEtBQUssRUFBRTtRQUNMLElBQUksRUFBRSxPQUFPO1FBQ2IsVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxNQUFNLEVBQUU7UUFDTixJQUFJLEVBQUUsUUFBUTtRQUNkLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7S0FDRjtJQUNELE1BQU0sRUFBRTtRQUNOLElBQUksRUFBRSxRQUFRO1FBQ2QsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQztRQUMvQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO0tBQ0Y7SUFDRCxLQUFLLEVBQUU7UUFDTCxJQUFJLEVBQUUsT0FBTztRQUNiLFVBQVUsRUFBRSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUM7UUFDOUIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtLQUNGO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsSUFBSSxFQUFFLFVBQVU7UUFDaEIsVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtLQUNGO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsSUFBSSxFQUFFLE9BQU87UUFDYixVQUFVLEVBQUUsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDO1FBQzlCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7S0FDRjtJQUNELFFBQVEsRUFBRTtRQUNSLElBQUksRUFBRSxVQUFVO1FBQ2hCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7S0FDRjtJQUNELFNBQVMsRUFBRTtRQUNULElBQUksRUFBRSxXQUFXO1FBQ2pCLFVBQVUsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN2QyxVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDbEM7U0FDRjtLQUNGO0lBQ0QsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLE1BQU07UUFDWixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxVQUFVLEVBQUU7UUFDVixJQUFJLEVBQUUsWUFBWTtRQUNsQixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxTQUFTLEVBQUU7UUFDVCxJQUFJLEVBQUUsV0FBVztRQUNqQixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRSxZQUFZO1FBQ2xCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELEdBQUcsRUFBRTtRQUNILElBQUksRUFBRSxLQUFLO1FBQ1gsVUFBVSxFQUFFLFNBQVM7UUFDckIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsUUFBUSxFQUFFLElBQUk7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxLQUFLLEVBQUU7UUFDTCxJQUFJLEVBQUUsT0FBTztRQUNiLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsSUFBSSxFQUFFLFdBQVc7UUFDakIsVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsTUFBTTtRQUNaLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRSxFQUFFO0tBQ2Y7SUFDRCxNQUFNLEVBQUU7UUFDTixJQUFJLEVBQUUsUUFBUTtRQUNkLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRjtJQUNELE1BQU0sRUFBRTtRQUNOLElBQUksRUFBRSxRQUFRO1FBQ2QsVUFBVSxFQUFFLFNBQVM7UUFDckIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtLQUNGO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFlBQVk7UUFDbEIsVUFBVSxFQUFFLFNBQVM7UUFDckIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxVQUFVLEVBQUU7UUFDVixJQUFJLEVBQUUsWUFBWTtRQUNsQixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO0tBQ0Y7SUFDRCxNQUFNLEVBQUU7UUFDTixJQUFJLEVBQUUsUUFBUTtRQUNkLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7YUFDekI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcblxuLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSB0b29scy9nZW5lcmF0ZS1mdW5jdGlvbi1iaW5kaW5ncy5cbi8vIFRvIHVwZGF0ZSB0aGlzIGZpbGUgZXhlY3V0ZSAncG5wbSBnZW5lcmF0ZS1mdW5jdGlvbi1iaW5kaW5ncycgaW4gdGhlIHJvb3Qgb2YgdGhlIHJlcG9zaXRvcnlcbmV4cG9ydCBjb25zdCBmdW5jdGlvbnNNYXBHZW5lcmF0ZWQgPSB7XG4gIGFiczoge1xuICAgIG5hbWU6IFwiYWJzXCIsXG4gICAgcmV0dXJuVHlwZTogXCJudW1iZXJcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGFic3BhdGg6IHtcbiAgICBuYW1lOiBcImFic3BhdGhcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgYWxsdHJ1ZToge1xuICAgIG5hbWU6IFwiYWxsdHJ1ZVwiLFxuICAgIHJldHVyblR5cGU6IFwiYm9vbFwiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcImJvb2xcIl0sXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGFueXRydWU6IHtcbiAgICBuYW1lOiBcImFueXRydWVcIixcbiAgICByZXR1cm5UeXBlOiBcImJvb2xcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJib29sXCJdLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBiYXNlNjRkZWNvZGU6IHtcbiAgICBuYW1lOiBcImJhc2U2NGRlY29kZVwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBiYXNlNjRlbmNvZGU6IHtcbiAgICBuYW1lOiBcImJhc2U2NGVuY29kZVwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBiYXNlNjRnemlwOiB7XG4gICAgbmFtZTogXCJiYXNlNjRnemlwXCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGJhc2U2NHNoYTI1Njoge1xuICAgIG5hbWU6IFwiYmFzZTY0c2hhMjU2XCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGJhc2U2NHNoYTUxMjoge1xuICAgIG5hbWU6IFwiYmFzZTY0c2hhNTEyXCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGJhc2VuYW1lOiB7XG4gICAgbmFtZTogXCJiYXNlbmFtZVwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBjYW46IHtcbiAgICBuYW1lOiBcImNhblwiLFxuICAgIHJldHVyblR5cGU6IFwiYm9vbFwiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGNlaWw6IHtcbiAgICBuYW1lOiBcImNlaWxcIixcbiAgICByZXR1cm5UeXBlOiBcIm51bWJlclwiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgY2hvbXA6IHtcbiAgICBuYW1lOiBcImNob21wXCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGNodW5rbGlzdDoge1xuICAgIG5hbWU6IFwiY2h1bmtsaXN0XCIsXG4gICAgcmV0dXJuVHlwZTogW1wibGlzdFwiLCBbXCJsaXN0XCIsIFwiZHluYW1pY1wiXV0sXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwiZHluYW1pY1wiXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGNpZHJob3N0OiB7XG4gICAgbmFtZTogXCJjaWRyaG9zdFwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgY2lkcm5ldG1hc2s6IHtcbiAgICBuYW1lOiBcImNpZHJuZXRtYXNrXCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGNpZHJzdWJuZXQ6IHtcbiAgICBuYW1lOiBcImNpZHJzdWJuZXRcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBjaWRyc3VibmV0czoge1xuICAgIG5hbWU6IFwiY2lkcnN1Ym5ldHNcIixcbiAgICByZXR1cm5UeXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCJdLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICAgIHZhcmlhZGljOiB0cnVlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBjb2FsZXNjZToge1xuICAgIG5hbWU6IFwiY29hbGVzY2VcIixcbiAgICByZXR1cm5UeXBlOiBcImR5bmFtaWNcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgICB2YXJpYWRpYzogdHJ1ZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgY29hbGVzY2VsaXN0OiB7XG4gICAgbmFtZTogXCJjb2FsZXNjZWxpc3RcIixcbiAgICByZXR1cm5UeXBlOiBcImR5bmFtaWNcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgICB2YXJpYWRpYzogdHJ1ZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgY29tcGFjdDoge1xuICAgIG5hbWU6IFwiY29tcGFjdFwiLFxuICAgIHJldHVyblR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIl0sXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCJdLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBjb25jYXQ6IHtcbiAgICBuYW1lOiBcImNvbmNhdFwiLFxuICAgIHJldHVyblR5cGU6IFwiZHluYW1pY1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICAgIHZhcmlhZGljOiB0cnVlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBjb250YWluczoge1xuICAgIG5hbWU6IFwiY29udGFpbnNcIixcbiAgICByZXR1cm5UeXBlOiBcImR5bmFtaWNcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGNzdmRlY29kZToge1xuICAgIG5hbWU6IFwiY3N2ZGVjb2RlXCIsXG4gICAgcmV0dXJuVHlwZTogXCJkeW5hbWljXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBkaXJuYW1lOiB7XG4gICAgbmFtZTogXCJkaXJuYW1lXCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGRpc3RpbmN0OiB7XG4gICAgbmFtZTogXCJkaXN0aW5jdFwiLFxuICAgIHJldHVyblR5cGU6IFtcImxpc3RcIiwgXCJkeW5hbWljXCJdLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcImR5bmFtaWNcIl0sXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGVsZW1lbnQ6IHtcbiAgICBuYW1lOiBcImVsZW1lbnRcIixcbiAgICByZXR1cm5UeXBlOiBcImR5bmFtaWNcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgZW5kc3dpdGg6IHtcbiAgICBuYW1lOiBcImVuZHN3aXRoXCIsXG4gICAgcmV0dXJuVHlwZTogXCJib29sXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgZmlsZToge1xuICAgIG5hbWU6IFwiZmlsZVwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBmaWxlYmFzZTY0OiB7XG4gICAgbmFtZTogXCJmaWxlYmFzZTY0XCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGZpbGViYXNlNjRzaGEyNTY6IHtcbiAgICBuYW1lOiBcImZpbGViYXNlNjRzaGEyNTZcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgZmlsZWJhc2U2NHNoYTUxMjoge1xuICAgIG5hbWU6IFwiZmlsZWJhc2U2NHNoYTUxMlwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBmaWxlZXhpc3RzOiB7XG4gICAgbmFtZTogXCJmaWxlZXhpc3RzXCIsXG4gICAgcmV0dXJuVHlwZTogXCJib29sXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBmaWxlbWQ1OiB7XG4gICAgbmFtZTogXCJmaWxlbWQ1XCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGZpbGVzZXQ6IHtcbiAgICBuYW1lOiBcImZpbGVzZXRcIixcbiAgICByZXR1cm5UeXBlOiBbXCJzZXRcIiwgXCJzdHJpbmdcIl0sXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgZmlsZXNoYTE6IHtcbiAgICBuYW1lOiBcImZpbGVzaGExXCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGZpbGVzaGEyNTY6IHtcbiAgICBuYW1lOiBcImZpbGVzaGEyNTZcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgZmlsZXNoYTUxMjoge1xuICAgIG5hbWU6IFwiZmlsZXNoYTUxMlwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBmbGF0dGVuOiB7XG4gICAgbmFtZTogXCJmbGF0dGVuXCIsXG4gICAgcmV0dXJuVHlwZTogXCJkeW5hbWljXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgZmxvb3I6IHtcbiAgICBuYW1lOiBcImZsb29yXCIsXG4gICAgcmV0dXJuVHlwZTogXCJudW1iZXJcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGZvcm1hdDoge1xuICAgIG5hbWU6IFwiZm9ybWF0XCIsXG4gICAgcmV0dXJuVHlwZTogXCJkeW5hbWljXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICAgIHZhcmlhZGljOiB0cnVlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBmb3JtYXRkYXRlOiB7XG4gICAgbmFtZTogXCJmb3JtYXRkYXRlXCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBmb3JtYXRsaXN0OiB7XG4gICAgbmFtZTogXCJmb3JtYXRsaXN0XCIsXG4gICAgcmV0dXJuVHlwZTogXCJkeW5hbWljXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICAgIHZhcmlhZGljOiB0cnVlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBpbmRlbnQ6IHtcbiAgICBuYW1lOiBcImluZGVudFwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgaW5kZXg6IHtcbiAgICBuYW1lOiBcImluZGV4XCIsXG4gICAgcmV0dXJuVHlwZTogXCJkeW5hbWljXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBqc29uZGVjb2RlOiB7XG4gICAgbmFtZTogXCJqc29uZGVjb2RlXCIsXG4gICAgcmV0dXJuVHlwZTogXCJkeW5hbWljXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBqc29uZW5jb2RlOiB7XG4gICAgbmFtZTogXCJqc29uZW5jb2RlXCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBrZXlzOiB7XG4gICAgbmFtZTogXCJrZXlzXCIsXG4gICAgcmV0dXJuVHlwZTogXCJkeW5hbWljXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgbGVuZ3RoOiB7XG4gICAgbmFtZTogXCJsZW5ndGhPZlwiLFxuICAgIHJldHVyblR5cGU6IFwibnVtYmVyXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgbG9nOiB7XG4gICAgbmFtZTogXCJsb2dcIixcbiAgICByZXR1cm5UeXBlOiBcIm51bWJlclwiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGxvd2VyOiB7XG4gICAgbmFtZTogXCJsb3dlclwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBtYXRjaGtleXM6IHtcbiAgICBuYW1lOiBcIm1hdGNoa2V5c1wiLFxuICAgIHJldHVyblR5cGU6IFtcImxpc3RcIiwgXCJkeW5hbWljXCJdLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcImR5bmFtaWNcIl0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwiZHluYW1pY1wiXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJkeW5hbWljXCJdLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBtYXg6IHtcbiAgICBuYW1lOiBcIm1heFwiLFxuICAgIHJldHVyblR5cGU6IFwibnVtYmVyXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgICB2YXJpYWRpYzogdHJ1ZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgbWQ1OiB7XG4gICAgbmFtZTogXCJtZDVcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgbWVyZ2U6IHtcbiAgICBuYW1lOiBcIm1lcmdlXCIsXG4gICAgcmV0dXJuVHlwZTogXCJkeW5hbWljXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgICAgdmFyaWFkaWM6IHRydWUsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIG1pbjoge1xuICAgIG5hbWU6IFwibWluXCIsXG4gICAgcmV0dXJuVHlwZTogXCJudW1iZXJcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICAgIHZhcmlhZGljOiB0cnVlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBub25zZW5zaXRpdmU6IHtcbiAgICBuYW1lOiBcIm5vbnNlbnNpdGl2ZVwiLFxuICAgIHJldHVyblR5cGU6IFwiZHluYW1pY1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIG9uZToge1xuICAgIG5hbWU6IFwib25lXCIsXG4gICAgcmV0dXJuVHlwZTogXCJkeW5hbWljXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgcGFyc2VpbnQ6IHtcbiAgICBuYW1lOiBcInBhcnNlaW50XCIsXG4gICAgcmV0dXJuVHlwZTogXCJkeW5hbWljXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHBhdGhleHBhbmQ6IHtcbiAgICBuYW1lOiBcInBhdGhleHBhbmRcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgcGxhbnRpbWVzdGFtcDoge1xuICAgIG5hbWU6IFwicGxhbnRpbWVzdGFtcFwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW10sXG4gIH0sXG4gIHBvdzoge1xuICAgIG5hbWU6IFwicG93XCIsXG4gICAgcmV0dXJuVHlwZTogXCJudW1iZXJcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICByZWdleDoge1xuICAgIG5hbWU6IFwicmVnZXhcIixcbiAgICByZXR1cm5UeXBlOiBcImR5bmFtaWNcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICByZWdleGFsbDoge1xuICAgIG5hbWU6IFwicmVnZXhhbGxcIixcbiAgICByZXR1cm5UeXBlOiBbXCJsaXN0XCIsIFwiZHluYW1pY1wiXSxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICByZXBsYWNlOiB7XG4gICAgbmFtZTogXCJyZXBsYWNlXCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgcmV2ZXJzZToge1xuICAgIG5hbWU6IFwicmV2ZXJzZVwiLFxuICAgIHJldHVyblR5cGU6IFwiZHluYW1pY1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHJzYWRlY3J5cHQ6IHtcbiAgICBuYW1lOiBcInJzYWRlY3J5cHRcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHNlbnNpdGl2ZToge1xuICAgIG5hbWU6IFwic2Vuc2l0aXZlXCIsXG4gICAgcmV0dXJuVHlwZTogXCJkeW5hbWljXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgc2V0aW50ZXJzZWN0aW9uOiB7XG4gICAgbmFtZTogXCJzZXRpbnRlcnNlY3Rpb25cIixcbiAgICByZXR1cm5UeXBlOiBbXCJzZXRcIiwgXCJkeW5hbWljXCJdLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogW1wic2V0XCIsIFwiZHluYW1pY1wiXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFtcInNldFwiLCBcImR5bmFtaWNcIl0sXG4gICAgICAgIHZhcmlhZGljOiB0cnVlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBzZXRwcm9kdWN0OiB7XG4gICAgbmFtZTogXCJzZXRwcm9kdWN0XCIsXG4gICAgcmV0dXJuVHlwZTogXCJkeW5hbWljXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgICAgdmFyaWFkaWM6IHRydWUsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHNldHN1YnRyYWN0OiB7XG4gICAgbmFtZTogXCJzZXRzdWJ0cmFjdFwiLFxuICAgIHJldHVyblR5cGU6IFtcInNldFwiLCBcImR5bmFtaWNcIl0sXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBbXCJzZXRcIiwgXCJkeW5hbWljXCJdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogW1wic2V0XCIsIFwiZHluYW1pY1wiXSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgc2V0dW5pb246IHtcbiAgICBuYW1lOiBcInNldHVuaW9uXCIsXG4gICAgcmV0dXJuVHlwZTogW1wic2V0XCIsIFwiZHluYW1pY1wiXSxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFtcInNldFwiLCBcImR5bmFtaWNcIl0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBbXCJzZXRcIiwgXCJkeW5hbWljXCJdLFxuICAgICAgICB2YXJpYWRpYzogdHJ1ZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgc2hhMToge1xuICAgIG5hbWU6IFwic2hhMVwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBzaGEyNTY6IHtcbiAgICBuYW1lOiBcInNoYTI1NlwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBzaGE1MTI6IHtcbiAgICBuYW1lOiBcInNoYTUxMlwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBzaWdudW06IHtcbiAgICBuYW1lOiBcInNpZ251bVwiLFxuICAgIHJldHVyblR5cGU6IFwibnVtYmVyXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBzbGljZToge1xuICAgIG5hbWU6IFwic2xpY2VcIixcbiAgICByZXR1cm5UeXBlOiBcImR5bmFtaWNcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHNvcnQ6IHtcbiAgICBuYW1lOiBcInNvcnRcIixcbiAgICByZXR1cm5UeXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCJdLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiXSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgc3BsaXQ6IHtcbiAgICBuYW1lOiBcInNwbGl0XCIsXG4gICAgcmV0dXJuVHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiXSxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBzdGFydHN3aXRoOiB7XG4gICAgbmFtZTogXCJzdGFydHN3aXRoXCIsXG4gICAgcmV0dXJuVHlwZTogXCJib29sXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgc3RyY29udGFpbnM6IHtcbiAgICBuYW1lOiBcInN0cmNvbnRhaW5zXCIsXG4gICAgcmV0dXJuVHlwZTogXCJib29sXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgc3RycmV2OiB7XG4gICAgbmFtZTogXCJzdHJyZXZcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgc3Vic3RyOiB7XG4gICAgbmFtZTogXCJzdWJzdHJcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBzdW06IHtcbiAgICBuYW1lOiBcInN1bVwiLFxuICAgIHJldHVyblR5cGU6IFwiZHluYW1pY1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHRlbXBsYXRlZmlsZToge1xuICAgIG5hbWU6IFwidGVtcGxhdGVmaWxlXCIsXG4gICAgcmV0dXJuVHlwZTogXCJkeW5hbWljXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHRleHRkZWNvZGViYXNlNjQ6IHtcbiAgICBuYW1lOiBcInRleHRkZWNvZGViYXNlNjRcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHRleHRlbmNvZGViYXNlNjQ6IHtcbiAgICBuYW1lOiBcInRleHRlbmNvZGViYXNlNjRcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHRpbWVhZGQ6IHtcbiAgICBuYW1lOiBcInRpbWVhZGRcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHRpbWVjbXA6IHtcbiAgICBuYW1lOiBcInRpbWVjbXBcIixcbiAgICByZXR1cm5UeXBlOiBcIm51bWJlclwiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHRpbWVzdGFtcDoge1xuICAgIG5hbWU6IFwidGltZXN0YW1wXCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXSxcbiAgfSxcbiAgdGl0bGU6IHtcbiAgICBuYW1lOiBcInRpdGxlXCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHRvYm9vbDoge1xuICAgIG5hbWU6IFwidG9ib29sXCIsXG4gICAgcmV0dXJuVHlwZTogXCJib29sXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgdG9saXN0OiB7XG4gICAgbmFtZTogXCJ0b2xpc3RcIixcbiAgICByZXR1cm5UeXBlOiBbXCJsaXN0XCIsIFwiZHluYW1pY1wiXSxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB0b21hcDoge1xuICAgIG5hbWU6IFwidG9tYXBcIixcbiAgICByZXR1cm5UeXBlOiBbXCJtYXBcIiwgXCJkeW5hbWljXCJdLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHRvbnVtYmVyOiB7XG4gICAgbmFtZTogXCJ0b251bWJlclwiLFxuICAgIHJldHVyblR5cGU6IFwibnVtYmVyXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgdG9zZXQ6IHtcbiAgICBuYW1lOiBcInRvc2V0XCIsXG4gICAgcmV0dXJuVHlwZTogW1wic2V0XCIsIFwiZHluYW1pY1wiXSxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB0b3N0cmluZzoge1xuICAgIG5hbWU6IFwidG9zdHJpbmdcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHRyYW5zcG9zZToge1xuICAgIG5hbWU6IFwidHJhbnNwb3NlXCIsXG4gICAgcmV0dXJuVHlwZTogW1wibWFwXCIsIFtcImxpc3RcIiwgXCJzdHJpbmdcIl1dLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogW1wibWFwXCIsIFtcImxpc3RcIiwgXCJzdHJpbmdcIl1dLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB0cmltOiB7XG4gICAgbmFtZTogXCJ0cmltXCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB0cmltcHJlZml4OiB7XG4gICAgbmFtZTogXCJ0cmltcHJlZml4XCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB0cmltc3BhY2U6IHtcbiAgICBuYW1lOiBcInRyaW1zcGFjZVwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB0cmltc3VmZml4OiB7XG4gICAgbmFtZTogXCJ0cmltc3VmZml4XCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB0cnk6IHtcbiAgICBuYW1lOiBcInRyeVwiLFxuICAgIHJldHVyblR5cGU6IFwiZHluYW1pY1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICAgIHZhcmlhZGljOiB0cnVlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB1cHBlcjoge1xuICAgIG5hbWU6IFwidXBwZXJcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgdXJsZW5jb2RlOiB7XG4gICAgbmFtZTogXCJ1cmxlbmNvZGVcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgdXVpZDoge1xuICAgIG5hbWU6IFwidXVpZFwiLFxuICAgIHJldHVyblR5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW10sXG4gIH0sXG4gIHV1aWR2NToge1xuICAgIG5hbWU6IFwidXVpZHY1XCIsXG4gICAgcmV0dXJuVHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB2YWx1ZXM6IHtcbiAgICBuYW1lOiBcInZhbHVlc1wiLFxuICAgIHJldHVyblR5cGU6IFwiZHluYW1pY1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHlhbWxkZWNvZGU6IHtcbiAgICBuYW1lOiBcInlhbWxkZWNvZGVcIixcbiAgICByZXR1cm5UeXBlOiBcImR5bmFtaWNcIixcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHlhbWxlbmNvZGU6IHtcbiAgICBuYW1lOiBcInlhbWxlbmNvZGVcIixcbiAgICByZXR1cm5UeXBlOiBcInN0cmluZ1wiLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHppcG1hcDoge1xuICAgIG5hbWU6IFwiemlwbWFwXCIsXG4gICAgcmV0dXJuVHlwZTogXCJkeW5hbWljXCIsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCJdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG59O1xuIl19