@aws-amplify/graphql-api-construct 1.10.0 → 1.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. package/.jsii +155 -36
  2. package/API.md +12 -0
  3. package/CHANGELOG.md +6 -0
  4. package/lib/amplify-dynamodb-table-wrapper.js +2 -2
  5. package/lib/amplify-graphql-api.js +3 -3
  6. package/lib/amplify-graphql-definition.js +2 -2
  7. package/lib/internal/asset-provider.js +1 -1
  8. package/lib/internal/authorization-modes.js +1 -1
  9. package/lib/internal/conflict-resolution.js +1 -1
  10. package/lib/internal/construct-exports.js +1 -1
  11. package/lib/internal/construct-tree.js +1 -1
  12. package/lib/internal/data-source-config.js +1 -1
  13. package/lib/internal/model-type-name.js +1 -1
  14. package/lib/internal/user-defined-slots.js +1 -1
  15. package/lib/model-datasource-strategy-types.d.ts +36 -1
  16. package/lib/model-datasource-strategy-types.js +1 -1
  17. package/lib/sql-model-datasource-strategy.js +1 -1
  18. package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +6 -0
  19. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/query.d.ts.map +1 -1
  20. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/query.js +3 -1
  21. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/query.js.map +1 -1
  22. package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +11 -11
  23. package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +4 -0
  24. package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +6 -6
  25. package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +4 -0
  26. package/node_modules/@aws-amplify/graphql-function-transformer/package.json +5 -5
  27. package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +4 -0
  28. package/node_modules/@aws-amplify/graphql-http-transformer/package.json +5 -5
  29. package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +6 -0
  30. package/node_modules/@aws-amplify/graphql-index-transformer/package.json +6 -6
  31. package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +6 -0
  32. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
  33. package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +9 -9
  34. package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +10 -0
  35. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
  36. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
  37. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
  38. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/rds-vtl-generator.js +1 -1
  39. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/rds-vtl-generator.js.map +1 -1
  40. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.d.ts +3 -2
  41. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.d.ts.map +1 -1
  42. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.js +40 -18
  43. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.js.map +1 -1
  44. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.d.ts.map +1 -1
  45. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js +7 -1
  46. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js.map +1 -1
  47. package/node_modules/@aws-amplify/graphql-model-transformer/package.json +5 -5
  48. package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +4 -0
  49. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
  50. package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +5 -5
  51. package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +4 -0
  52. package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +7 -7
  53. package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +4 -0
  54. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
  55. package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +6 -6
  56. package/node_modules/@aws-amplify/graphql-sql-transformer/CHANGELOG.md +4 -0
  57. package/node_modules/@aws-amplify/graphql-sql-transformer/package.json +6 -6
  58. package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +4 -0
  59. package/node_modules/@aws-amplify/graphql-transformer/package.json +15 -15
  60. package/node_modules/@aws-amplify/graphql-transformer-core/API.md +1 -1
  61. package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +6 -0
  62. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.d.ts +1 -1
  63. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.d.ts.map +1 -1
  64. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.js +6 -1
  65. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.js.map +1 -1
  66. package/node_modules/@aws-amplify/graphql-transformer-core/package.json +3 -3
  67. package/node_modules/@aws-amplify/graphql-transformer-interfaces/API.md +19 -0
  68. package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +6 -0
  69. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.d.ts +9 -0
  70. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.d.ts.map +1 -1
  71. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.js +3 -1
  72. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.js.map +1 -1
  73. package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +2 -2
  74. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/model-datasource/types.ts +44 -1
  75. package/node_modules/@aws-amplify/graphql-transformer-interfaces/tsconfig.tsbuildinfo +1 -1
  76. package/node_modules/graphql-transformer-common/package.json +1 -2
  77. package/package.json +18 -18
  78. package/src/amplify-graphql-api.ts +1 -1
  79. package/src/model-datasource-strategy-types.ts +41 -1
  80. package/node_modules/graphql-transformer-common/LICENSE +0 -201
@@ -61,7 +61,7 @@ class AmplifyGraphqlApi extends constructs_1.Construct {
61
61
  validateNoOtherAmplifyGraphqlApiInStack(this);
62
62
  const { definition, authorizationModes, conflictResolution, functionSlots, transformerPlugins, predictionsBucket, stackMappings, translationBehavior, functionNameMap, outputStorageStrategy, dataStoreConfiguration, } = props;
63
63
  if (conflictResolution && dataStoreConfiguration) {
64
- throw new Error(`conflictResolution is deprecated. conflictResolution and dataStoreConfiguration cannot be used together. Please use dataStoreConfiguration.`);
64
+ throw new Error('conflictResolution is deprecated. conflictResolution and dataStoreConfiguration cannot be used together. Please use dataStoreConfiguration.');
65
65
  }
66
66
  this.dataStoreConfiguration = dataStoreConfiguration || conflictResolution;
67
67
  const dataSources = getMetadataDataSources(definition);
@@ -261,7 +261,7 @@ class AmplifyGraphqlApi extends constructs_1.Construct {
261
261
  }
262
262
  exports.AmplifyGraphqlApi = AmplifyGraphqlApi;
263
263
  _a = JSII_RTTI_SYMBOL_1;
264
- AmplifyGraphqlApi[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlApi", version: "1.10.0" };
264
+ AmplifyGraphqlApi[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlApi", version: "1.11.0" };
265
265
  /**
266
266
  * Given the provided scope, walk the node tree, and throw an exception if any other AmplifyGraphqlApi constructs
267
267
  * are found in the stack.
@@ -285,4 +285,4 @@ const getMetadataDataSources = (definition) => {
285
285
  const dataSources = [...new Set([...dataSourceDbTypes, ...customSqlDbTypes])].sort();
286
286
  return dataSources.join(',');
287
287
  };
288
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1ncmFwaHFsLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hbXBsaWZ5LWdyYXBocWwtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDJDQUF1QztBQUN2QywwRUFBNEY7QUFDNUYsNkNBQWlEO0FBQ2pELGdGQUE0SDtBQUM1SCxnRkFBdUU7QUFFdkUseURBY2lDO0FBUWpDLHNFQUE0RztBQVU1Ryx5Q0FVb0I7QUFDcEIsOERBQWtGO0FBQ2xGLHNFQUFnRjtBQUVoRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Qkc7QUFDSCxNQUFhLGlCQUFrQixTQUFRLHNCQUFTO0lBK0M5Qzs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTZCO1FBQ3JFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFibkI7O1dBRUc7UUFDYyxjQUFTLEdBQUcsYUFBYSxDQUFDO1FBWXpDLHVDQUF1QyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTlDLE1BQU0sRUFDSixVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsc0JBQXNCLEdBQ3ZCLEdBQUcsS0FBSyxDQUFDO1FBRVYsSUFBSSxrQkFBa0IsSUFBSSxzQkFBc0IsRUFBRTtZQUNoRCxNQUFNLElBQUksS0FBSyxDQUNiLDZJQUE2SSxDQUM5SSxDQUFDO1NBQ0g7UUFFRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsc0JBQXNCLElBQUksa0JBQWtCLENBQUM7UUFFM0UsTUFBTSxXQUFXLEdBQUcsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFdkQsSUFBSSxtREFBMEIsRUFBRSxDQUFDLHdCQUF3QixDQUFDLG1CQUFLLENB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QUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUNoSSxNQUFNLGdCQUFnQixHQUFHLENBQUMsVUFBVSxDQUFDLDZCQUE2QixJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQzFJLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyRixPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgRXhlY3V0ZVRyYW5zZm9ybUNvbmZpZywgZXhlY3V0ZVRyYW5zZm9ybSB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9ncmFwaHFsLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IE5lc3RlZFN0YWNrLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEF0dHJpYnV0aW9uTWV0YWRhdGFTdG9yYWdlLCBTdGFja01ldGFkYXRhQmFja2VuZE91dHB1dFN0b3JhZ2VTdHJhdGVneSB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9iYWNrZW5kLW91dHB1dC1zdG9yYWdlJztcbmltcG9ydCB7IGdyYXBocWxPdXRwdXRLZXkgfSBmcm9tICdAYXdzLWFtcGxpZnkvYmFja2VuZC1vdXRwdXQtc2NoZW1hcyc7XG5pbXBvcnQgdHlwZSB7IEdyYXBocWxPdXRwdXQsIEF3c0FwcHN5bmNBdXRoZW50aWNhdGlvblR5cGUgfSBmcm9tICdAYXdzLWFtcGxpZnkvYmFja2VuZC1vdXRwdXQtc2NoZW1hcyc7XG5pbXBvcnQge1xuICBBcHBzeW5jRnVuY3Rpb24sXG4gIERhdGFTb3VyY2VPcHRpb25zLFxuICBEeW5hbW9EYkRhdGFTb3VyY2UsXG4gIEVsYXN0aWNzZWFyY2hEYXRhU291cmNlLFxuICBFdmVudEJyaWRnZURhdGFTb3VyY2UsXG4gIEV4dGVuZGVkUmVzb2x2ZXJQcm9wcyxcbiAgSHR0cERhdGFTb3VyY2UsXG4gIEh0dHBEYXRhU291cmNlT3B0aW9ucyxcbiAgTGFtYmRhRGF0YVNvdXJjZSxcbiAgTm9uZURhdGFTb3VyY2UsXG4gIE9wZW5TZWFyY2hEYXRhU291cmNlLFxuICBSZHNEYXRhU291cmNlLFxuICBSZXNvbHZlcixcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWFwcHN5bmMnO1xuaW1wb3J0IHsgSVRhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiJztcbmltcG9ydCB7IElEb21haW4gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY3NlYXJjaCc7XG5pbXBvcnQgeyBJRG9tYWluIGFzIElPcGVuU2VhcmNoRG9tYWluIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLW9wZW5zZWFyY2hzZXJ2aWNlJztcbmltcG9ydCB7IElFdmVudEJ1cyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnO1xuaW1wb3J0IHsgSUZ1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBJU2VydmVybGVzc0NsdXN0ZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtcmRzJztcbmltcG9ydCB7IElTZWNyZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXInO1xuaW1wb3J0IHsgcGFyc2VVc2VyRGVmaW5lZFNsb3RzLCB2YWxpZGF0ZUZ1bmN0aW9uU2xvdHMsIHNlcGFyYXRlU2xvdHMgfSBmcm9tICcuL2ludGVybmFsL3VzZXItZGVmaW5lZC1zbG90cyc7XG5pbXBvcnQgdHlwZSB7XG4gIEFtcGxpZnlHcmFwaHFsQXBpUmVzb3VyY2VzLFxuICBBbXBsaWZ5R3JhcGhxbEFwaVByb3BzLFxuICBGdW5jdGlvblNsb3QsXG4gIElCYWNrZW5kT3V0cHV0U3RvcmFnZVN0cmF0ZWd5LFxuICBBZGRGdW5jdGlvblByb3BzLFxuICBEYXRhU3RvcmVDb25maWd1cmF0aW9uLFxuICBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uLFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7XG4gIGNvbnZlcnRBdXRob3JpemF0aW9uTW9kZXNUb1RyYW5zZm9ybWVyQXV0aENvbmZpZyxcbiAgY29udmVydFRvUmVzb2x2ZXJDb25maWcsXG4gIGRlZmF1bHRUcmFuc2xhdGlvbkJlaGF2aW9yLFxuICBBc3NldFByb3ZpZGVyLFxuICBnZXRHZW5lcmF0ZWRSZXNvdXJjZXMsXG4gIGdldEdlbmVyYXRlZEZ1bmN0aW9uU2xvdHMsXG4gIENvZGVnZW5Bc3NldHMsXG4gIGdldEFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblR5cGVzLFxuICB2YWxpZGF0ZUF1dGhvcml6YXRpb25Nb2Rlcyxcbn0gZnJvbSAnLi9pbnRlcm5hbCc7XG5pbXBvcnQgeyBnZXRTdGFja0ZvclNjb3BlLCB3YWxrQW5kUHJvY2Vzc05vZGVzIH0gZnJvbSAnLi9pbnRlcm5hbC9jb25zdHJ1Y3QtdHJlZSc7XG5pbXBvcnQgeyBnZXREYXRhU291cmNlU3RyYXRlZ2llc1Byb3ZpZGVyIH0gZnJvbSAnLi9pbnRlcm5hbC9kYXRhLXNvdXJjZS1jb25maWcnO1xuXG4vKipcbiAqIEwzIENvbnN0cnVjdCB3aGljaCBpbnZva2VzIHRoZSBBbXBsaWZ5IFRyYW5zZm9ybWVyIFBhdHRlcm4gb3ZlciBhbiBpbnB1dCBHcmFwaHFsIFNjaGVtYS5cbiAqXG4gKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHF1aWNrbHkgZGVmaW5lIGFwcHN5bmMgYXBpcyB3aGljaCBzdXBwb3J0IGZ1bGwgQ1JVRCtMaXN0IGFuZCBTdWJzY3JpcHRpb25zLCByZWxhdGlvbnNoaXBzLFxuICogYXV0aCwgc2VhcmNoIG92ZXIgZGF0YSwgdGhlIGFiaWxpdHkgdG8gaW5qZWN0IGN1c3RvbSBidXNpbmVzcyBsb2dpYyBhbmQgcXVlcnkvbXV0YXRpb24gb3BlcmF0aW9ucywgYW5kIGNvbm5lY3QgdG8gTUwgc2VydmljZXMuXG4gKlxuICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlZmVyIHRvIHRoZSBkb2NzIGxpbmtzIGJlbG93OlxuICogRGF0YSBNb2RlbGluZyAtIGh0dHBzOi8vZG9jcy5hbXBsaWZ5LmF3cy9jbGkvZ3JhcGhxbC9kYXRhLW1vZGVsaW5nL1xuICogQXV0aG9yaXphdGlvbiAtIGh0dHBzOi8vZG9jcy5hbXBsaWZ5LmF3cy9jbGkvZ3JhcGhxbC9hdXRob3JpemF0aW9uLXJ1bGVzL1xuICogQ3VzdG9tIEJ1c2luZXNzIExvZ2ljIC0gaHR0cHM6Ly9kb2NzLmFtcGxpZnkuYXdzL2NsaS9ncmFwaHFsL2N1c3RvbS1idXNpbmVzcy1sb2dpYy9cbiAqIFNlYXJjaCAtIGh0dHBzOi8vZG9jcy5hbXBsaWZ5LmF3cy9jbGkvZ3JhcGhxbC9zZWFyY2gtYW5kLXJlc3VsdC1hZ2dyZWdhdGlvbnMvXG4gKiBNTCBTZXJ2aWNlcyAtIGh0dHBzOi8vZG9jcy5hbXBsaWZ5LmF3cy9jbGkvZ3JhcGhxbC9jb25uZWN0LXRvLW1hY2hpbmUtbGVhcm5pbmctc2VydmljZXMvXG4gKlxuICogRm9yIGEgZnVsbCByZWZlcmVuY2Ugb2YgdGhlIHN1cHBvcnRlZCBjdXN0b20gZ3JhcGhxbCBkaXJlY3RpdmVzIC0gaHR0cHM6Ly9kb2NzLmFtcGxpZnkuYXdzL2NsaS9ncmFwaHFsL2RpcmVjdGl2ZXMtcmVmZXJlbmNlL1xuICpcbiAqIFRoZSBvdXRwdXQgb2YgdGhpcyBjb25zdHJ1Y3QgaXMgYSBtYXBwaW5nIG9mIEwyIG9yIEwxIHJlc291cmNlcyBnZW5lcmF0ZWQgYnkgdGhlIHRyYW5zZm9ybWVyLCB3aGljaCBnZW5lcmFsbHkgZm9sbG93IHRoZSBhY2Nlc3MgcGF0dGVyblxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqICAgY29uc3QgYXBpID0gbmV3IEFtcGxpZnlHcmFwaFFsQXBpKHRoaXMsICdhcGknLCB7IDxwYXJhbXM+IH0pO1xuICogICAvLyBBY2Nlc3MgTDIgcmVzb3VyY2VzIHVuZGVyIGAucmVzb3VyY2VzYFxuICogICBhcGkucmVzb3VyY2VzLnRhYmxlc1tcIlRvZG9cIl0udGFibGVBcm47XG4gKlxuICogICAvLyBBY2Nlc3MgTDEgcmVzb3VyY2VzIHVuZGVyIGAucmVzb3VyY2VzLmNmblJlc291cmNlc2BcbiAqICAgYXBpLnJlc291cmNlcy5jZm5SZXNvdXJjZXMuY2ZuR3JhcGhxbEFwaS54cmF5RW5hYmxlZCA9IHRydWU7XG4gKiAgIE9iamVjdC52YWx1ZXMoYXBpLnJlc291cmNlcy5jZm5SZXNvdXJjZXMuY2ZuVGFibGVzKS5mb3JFYWNoKHRhYmxlID0+IHtcbiAqICAgICB0YWJsZS5wb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvbiA9IHsgcG9pbnRJblRpbWVSZWNvdmVyeUVuYWJsZWQ6IGZhbHNlIH07XG4gKiAgIH0pO1xuICogYGBgXG4gKiBgcmVzb3VyY2VzLjxSZXNvdXJjZVR5cGU+LjxSZXNvdXJjZU5hbWU+YCAtIHlvdSBjYW4gdGhlbiBwZXJmb3JtIGFueSBDREsgYWN0aW9uIG9uIHRoZXNlIHJlc3VsdGluZyByZXNvdXJlY2VzLlxuICovXG5leHBvcnQgY2xhc3MgQW1wbGlmeUdyYXBocWxBcGkgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogR2VuZXJhdGVkIEwxIGFuZCBMMiBDREsgcmVzb3VyY2VzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlczogQW1wbGlmeUdyYXBocWxBcGlSZXNvdXJjZXM7XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlZCBhc3NldHMgcmVxdWlyZWQgZm9yIGNvZGVnZW4gc3RlcHMuIFBlcnNpc3RlZCBpbiBvcmRlciB0byByZW5kZXIgYXMgcGFydCBvZiB0aGUgb3V0cHV0IHN0cmF0ZWd5LlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBjb2RlZ2VuQXNzZXRzOiBDb2RlZ2VuQXNzZXRzO1xuXG4gIC8qKlxuICAgKiBSZXNvbHZlcnMgZ2VuZXJhdGVkIGJ5IHRoZSB0cmFuc2Zvcm0gcHJvY2VzcywgcGVyc2lzdGVkIG9uIHRoZSBzaWRlIGluIG9yZGVyIHRvIGZhY2lsaXRhdGUgcHVsbGluZyBhIG1hbmlmZXN0XG4gICAqIGZvciB0aGUgcHVycG9zZXMgb2YgaW5zcGVjdGluZyBhbmQgcHJvZHVjaW5nIG92ZXJyaWRlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBnZW5lcmF0ZWRGdW5jdGlvblNsb3RzOiBGdW5jdGlvblNsb3RbXTtcblxuICAvKipcbiAgICogR3JhcGhxbCBVUkwgRm9yIHRoZSBnZW5lcmF0ZWQgQVBJLiBNYXkgYmUgYSBDREsgVG9rZW4uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ3JhcGhxbFVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZWFsdGltZSBVUkwgRm9yIHRoZSBnZW5lcmF0ZWQgQVBJLiBNYXkgYmUgYSBDREsgVG9rZW4uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVhbHRpbWVVcmw6IHN0cmluZztcblxuICAvKipcbiAgICogR2VuZXJhdGVkIEFwaSBLZXkgaWYgZ2VuZXJhdGVkLiBNYXkgYmUgYSBDREsgVG9rZW4uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXBpS2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlZCBBcGkgSWQuIE1heSBiZSBhIENESyBUb2tlbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhcGlJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEYXRhU3RvcmUgY29uZmxpY3QgcmVzb2x1dGlvbiBzZXR0aW5nXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFTdG9yZUNvbmZpZ3VyYXRpb246IERhdGFTdG9yZUNvbmZpZ3VyYXRpb24gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEJlIHZlcnkgY2FyZWZ1bCBlZGl0aW5nIHRoaXMgdmFsdWUuIFRoaXMgaXMgdGhlIHN0cmluZyB0aGF0IGlzIHVzZWQgdG8gaWRlbnRpZnkgZ3JhcGhxbCBzdGFja3MgaW4gQkkgbWV0cmljc1xuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBzdGFja1R5cGUgPSAnYXBpLUFwcFN5bmMnO1xuXG4gIC8qKlxuICAgKiBOZXcgQW1wbGlmeUdyYXBocWxBcGkgY29uc3RydWN0LCB0aGlzIHdpbGwgY3JlYXRlIGFuIGFwcHN5bmMgYXBpIHdpdGggYXV0aG9yaXphdGlvbiwgYSBzY2hlbWEsIGFuZCBhbGwgbmVjZXNzYXJ5IHJlc29sdmVycywgZnVuY3Rpb25zLFxuICAgKiBhbmQgZGF0YXNvdXJjZXMuXG4gICAqIEBwYXJhbSBzY29wZSB0aGUgc2NvcGUgdG8gY3JlYXRlIHRoaXMgY29uc3RydWN0IHdpdGhpbi5cbiAgICogQHBhcmFtIGlkIHRoZSBpZCB0byB1c2UgZm9yIHRoaXMgYXBpLlxuICAgKiBAcGFyYW0gcHJvcHMgdGhlIHByb3BlcnRpZXMgdXNlZCB0byBjb25maWd1cmUgdGhlIGdlbmVyYXRlZCBhcGkuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQW1wbGlmeUdyYXBocWxBcGlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB2YWxpZGF0ZU5vT3RoZXJBbXBsaWZ5R3JhcGhxbEFwaUluU3RhY2sodGhpcyk7XG5cbiAgICBjb25zdCB7XG4gICAgICBkZWZpbml0aW9uLFxuICAgICAgYXV0aG9yaXphdGlvbk1vZGVzLFxuICAgICAgY29uZmxpY3RSZXNvbHV0aW9uLFxuICAgICAgZnVuY3Rpb25TbG90cyxcbiAgICAgIHRyYW5zZm9ybWVyUGx1Z2lucyxcbiAgICAgIHByZWRpY3Rpb25zQnVja2V0LFxuICAgICAgc3RhY2tNYXBwaW5ncyxcbiAgICAgIHRyYW5zbGF0aW9uQmVoYXZpb3IsXG4gICAgICBmdW5jdGlvbk5hbWVNYXAsXG4gICAgICBvdXRwdXRTdG9yYWdlU3RyYXRlZ3ksXG4gICAgICBkYXRhU3RvcmVDb25maWd1cmF0aW9uLFxuICAgIH0gPSBwcm9wcztcblxuICAgIGlmIChjb25mbGljdFJlc29sdXRpb24gJiYgZGF0YVN0b3JlQ29uZmlndXJhdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgY29uZmxpY3RSZXNvbHV0aW9uIGlzIGRlcHJlY2F0ZWQuIGNvbmZsaWN0UmVzb2x1dGlvbiBhbmQgZGF0YVN0b3JlQ29uZmlndXJhdGlvbiBjYW5ub3QgYmUgdXNlZCB0b2dldGhlci4gUGxlYXNlIHVzZSBkYXRhU3RvcmVDb25maWd1cmF0aW9uLmAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuZGF0YVN0b3JlQ29uZmlndXJhdGlvbiA9IGRhdGFTdG9yZUNvbmZpZ3VyYXRpb24gfHwgY29uZmxpY3RSZXNvbHV0aW9uO1xuXG4gICAgY29uc3QgZGF0YVNvdXJjZXMgPSBnZXRNZXRhZGF0YURhdGFTb3VyY2VzKGRlZmluaXRpb24pO1xuXG4gICAgbmV3IEF0dHJpYnV0aW9uTWV0YWRhdGFTdG9yYWdlKCkuc3RvcmVBdHRyaWJ1dGlvbk1ldGFkYXRhKFN0YWNrLm9mKHNjb3BlKSwgdGhpcy5zdGFja1R5cGUsIHBhdGguam9pbihfX2Rpcm5hbWUsICcuLicsICdwYWNrYWdlLmpzb24nKSwge1xuICAgICAgZGF0YVNvdXJjZXMsXG4gICAgfSk7XG5cbiAgICB2YWxpZGF0ZUF1dGhvcml6YXRpb25Nb2RlcyhhdXRob3JpemF0aW9uTW9kZXMpO1xuICAgIGNvbnN0IHsgYXV0aENvbmZpZywgYXV0aFN5bnRoUGFyYW1ldGVycyB9ID0gY29udmVydEF1dGhvcml6YXRpb25Nb2Rlc1RvVHJhbnNmb3JtZXJBdXRoQ29uZmlnKGF1dGhvcml6YXRpb25Nb2Rlcyk7XG5cbiAgICB2YWxpZGF0ZUZ1bmN0aW9uU2xvdHMoZnVuY3Rpb25TbG90cyA/PyBbXSk7XG4gICAgY29uc3Qgc2VwYXJhdGVkRnVuY3Rpb25TbG90cyA9IHNlcGFyYXRlU2xvdHMoWy4uLihmdW5jdGlvblNsb3RzID8/IFtdKSwgLi4uZGVmaW5pdGlvbi5mdW5jdGlvblNsb3RzXSk7XG5cbiAgICAvLyBBbGxvdyBhbXBsaWZ5RW52aXJvbm1lbnROYW1lIHRvIGJlIHJldHJpZXZlIGZyb20gY29udGV4dCwgYW5kIHVzZSB2YWx1ZSAnTk9ORScgaWYgbm8gdmFsdWUgY2FuIGJlIGZvdW5kLlxuICAgIC8vIGFtcGxpZnlFbnZpcm9ubWVudE5hbWUgaXMgcmVxdWlyZWQgZm9yIGxvZ2ljYWwgaWQgc3VmZml4aW5nLCBhcyB3ZWxsIGFzIEV4cG9ydHMgZnJvbSB0aGUgbmVzdGVkIHN0YWNrcy5cbiAgICAvLyBBbGxvdyBleHBvcnQgc28gY3VzdG9tZXJzIGNhbiByZXVzZSB0aGUgZW52IGluIHRoZWlyIG93biByZWZlcmVuY2VzIGRvd25zdHJlYW0uXG4gICAgY29uc3QgYW1wbGlmeUVudmlyb25tZW50TmFtZSA9IHRoaXMubm9kZS50cnlHZXRDb250ZXh0KCdhbXBsaWZ5RW52aXJvbm1lbnROYW1lJykgPz8gJ05PTkUnO1xuICAgIGlmIChhbXBsaWZ5RW52aXJvbm1lbnROYW1lLmxlbmd0aCA+IDgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgb3IgY2RrIC0tY29udGV4dCBlbnYgbXVzdCBoYXZlIGEgbGVuZ3RoIDw9IDgsIGZvdW5kICR7YW1wbGlmeUVudmlyb25tZW50TmFtZX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBhc3NldFByb3ZpZGVyID0gbmV3IEFzc2V0UHJvdmlkZXIodGhpcyk7XG5cbiAgICBjb25zdCBleGVjdXRlVHJhbnNmb3JtQ29uZmlnOiBFeGVjdXRlVHJhbnNmb3JtQ29uZmlnID0ge1xuICAgICAgc2NvcGU6IHRoaXMsXG4gICAgICBuZXN0ZWRTdGFja1Byb3ZpZGVyOiB7XG4gICAgICAgIHByb3ZpZGU6IChuZXN0ZWRTdGFja1Njb3BlOiBDb25zdHJ1Y3QsIG5hbWU6IHN0cmluZykgPT4gbmV3IE5lc3RlZFN0YWNrKG5lc3RlZFN0YWNrU2NvcGUsIG5hbWUpLFxuICAgICAgfSxcbiAgICAgIGFzc2V0UHJvdmlkZXIsXG4gICAgICBzeW50aFBhcmFtZXRlcnM6IHtcbiAgICAgICAgYW1wbGlmeUVudmlyb25tZW50TmFtZTogYW1wbGlmeUVudmlyb25tZW50TmFtZSxcbiAgICAgICAgYXBpTmFtZTogcHJvcHMuYXBpTmFtZSA/PyBpZCxcbiAgICAgICAgLi4uYXV0aFN5bnRoUGFyYW1ldGVycyxcbiAgICAgIH0sXG4gICAgICBzY2hlbWE6IGRlZmluaXRpb24uc2NoZW1hLFxuICAgICAgdXNlckRlZmluZWRTbG90czogcGFyc2VVc2VyRGVmaW5lZFNsb3RzKHNlcGFyYXRlZEZ1bmN0aW9uU2xvdHMpLFxuICAgICAgdHJhbnNmb3JtZXJzRmFjdG9yeUFyZ3M6IHtcbiAgICAgICAgY3VzdG9tVHJhbnNmb3JtZXJzOiB0cmFuc2Zvcm1lclBsdWdpbnMgPz8gW10sXG4gICAgICAgIC4uLihwcmVkaWN0aW9uc0J1Y2tldCA/IHsgc3RvcmFnZUNvbmZpZzogeyBidWNrZXROYW1lOiBwcmVkaWN0aW9uc0J1Y2tldC5idWNrZXROYW1lIH0gfSA6IHt9KSxcbiAgICAgICAgZnVuY3Rpb25OYW1lTWFwOiB7XG4gICAgICAgICAgLi4uZGVmaW5pdGlvbi5yZWZlcmVuY2VkTGFtYmRhRnVuY3Rpb25zLFxuICAgICAgICAgIC4uLmZ1bmN0aW9uTmFtZU1hcCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBhdXRoQ29uZmlnLFxuICAgICAgc3RhY2tNYXBwaW5nOiBzdGFja01hcHBpbmdzID8/IHt9LFxuICAgICAgcmVzb2x2ZXJDb25maWc6IHRoaXMuZGF0YVN0b3JlQ29uZmlndXJhdGlvbiA/IGNvbnZlcnRUb1Jlc29sdmVyQ29uZmlnKHRoaXMuZGF0YVN0b3JlQ29uZmlndXJhdGlvbikgOiB1bmRlZmluZWQsXG4gICAgICB0cmFuc2Zvcm1QYXJhbWV0ZXJzOiB7XG4gICAgICAgIC4uLmRlZmF1bHRUcmFuc2xhdGlvbkJlaGF2aW9yLFxuICAgICAgICAuLi4odHJhbnNsYXRpb25CZWhhdmlvciA/PyB7fSksXG4gICAgICB9LFxuICAgICAgLy8gQ0RLIGNvbnN0cnVjdCB1c2VzIGEgY3VzdG9tIHJlc291cmNlLiBXZSdsbCBkZWZpbmUgdGhpcyBleHBsaWNpdGx5IGhlcmUgdG8gcmVtaW5kIG91cnNlbHZlcyB0aGF0IHRoaXMgdmFsdWUgaXMgdW51c2VkIGluIHRoZSBDREtcbiAgICAgIC8vIGNvbnN0cnVjdCBmbG93XG4gICAgICByZHNMYXllck1hcHBpbmc6IHVuZGVmaW5lZCxcbiAgICAgIHJkc1Nuc1RvcGljTWFwcGluZzogdW5kZWZpbmVkLFxuICAgICAgLi4uZ2V0RGF0YVNvdXJjZVN0cmF0ZWdpZXNQcm92aWRlcihkZWZpbml0aW9uKSxcbiAgICB9O1xuXG4gICAgZXhlY3V0ZVRyYW5zZm9ybShleGVjdXRlVHJhbnNmb3JtQ29uZmlnKTtcblxuICAgIHRoaXMuY29kZWdlbkFzc2V0cyA9IG5ldyBDb2RlZ2VuQXNzZXRzKHRoaXMsICdBbXBsaWZ5Q29kZWdlbkFzc2V0cycsIHsgbW9kZWxTY2hlbWE6IGRlZmluaXRpb24uc2NoZW1hIH0pO1xuXG4gICAgdGhpcy5yZXNvdXJjZXMgPSBnZXRHZW5lcmF0ZWRSZXNvdXJjZXModGhpcyk7XG4gICAgdGhpcy5nZW5lcmF0ZWRGdW5jdGlvblNsb3RzID0gZ2V0R2VuZXJhdGVkRnVuY3Rpb25TbG90cyhhc3NldFByb3ZpZGVyLnJlc29sdmVyQXNzZXRzKTtcbiAgICB0aGlzLnN0b3JlT3V0cHV0KG91dHB1dFN0b3JhZ2VTdHJhdGVneSk7XG5cbiAgICB0aGlzLmFwaUlkID0gdGhpcy5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkdyYXBocWxBcGkuYXR0ckFwaUlkO1xuICAgIHRoaXMuZ3JhcGhxbFVybCA9IHRoaXMucmVzb3VyY2VzLmNmblJlc291cmNlcy5jZm5HcmFwaHFsQXBpLmF0dHJHcmFwaFFsVXJsO1xuICAgIHRoaXMucmVhbHRpbWVVcmwgPSB0aGlzLnJlc291cmNlcy5jZm5SZXNvdXJjZXMuY2ZuR3JhcGhxbEFwaS5hdHRyUmVhbHRpbWVVcmw7XG4gICAgdGhpcy5hcGlLZXkgPSB0aGlzLnJlc291cmNlcy5jZm5SZXNvdXJjZXMuY2ZuQXBpS2V5Py5hdHRyQXBpS2V5O1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3JlcyBncmFwaHFsIGFwaSBvdXRwdXQgdG8gYmUgdXNlZCBmb3IgY2xpZW50IGNvbmZpZyBnZW5lcmF0aW9uXG4gICAqIEBwYXJhbSBvdXRwdXRTdG9yYWdlU3RyYXRlZ3kgU3RyYXRlZ3kgdG8gc3RvcmUgY29uc3RydWN0IG91dHB1dHMuIElmIG5vIHN0cmF0ZWd5IGlzIHByb3ZpZGVkIGEgZGVmYXVsdCBzdHJhdGVneSB3aWxsIGJlIHVzZWQuXG4gICAqL1xuICBwcml2YXRlIHN0b3JlT3V0cHV0KFxuICAgIG91dHB1dFN0b3JhZ2VTdHJhdGVneTogSUJhY2tlbmRPdXRwdXRTdG9yYWdlU3RyYXRlZ3kgPSBuZXcgU3RhY2tNZXRhZGF0YUJhY2tlbmRPdXRwdXRTdG9yYWdlU3RyYXRlZ3koU3RhY2sub2YodGhpcykpLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKHRoaXMpO1xuICAgIGNvbnN0IG91dHB1dDogR3JhcGhxbE91dHB1dCA9IHtcbiAgICAgIHZlcnNpb246ICcxJyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgYXdzQXBwc3luY0FwaUlkOiB0aGlzLnJlc291cmNlcy5jZm5SZXNvdXJjZXMuY2ZuR3JhcGhxbEFwaS5hdHRyQXBpSWQsXG4gICAgICAgIGF3c0FwcHN5bmNBcGlFbmRwb2ludDogdGhpcy5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkdyYXBocWxBcGkuYXR0ckdyYXBoUWxVcmwsXG4gICAgICAgIGF3c0FwcHN5bmNBdXRoZW50aWNhdGlvblR5cGU6IHRoaXMucmVzb3VyY2VzLmNmblJlc291cmNlcy5jZm5HcmFwaHFsQXBpLmF1dGhlbnRpY2F0aW9uVHlwZSBhcyBBd3NBcHBzeW5jQXV0aGVudGljYXRpb25UeXBlLFxuICAgICAgICBhd3NBcHBzeW5jUmVnaW9uOiBzdGFjay5yZWdpb24sXG4gICAgICAgIGFtcGxpZnlBcGlNb2RlbFNjaGVtYVMzVXJpOiB0aGlzLmNvZGVnZW5Bc3NldHMubW9kZWxTY2hlbWFTM1VyaSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGlmICh0aGlzLnJlc291cmNlcy5jZm5SZXNvdXJjZXMuY2ZuQXBpS2V5KSB7XG4gICAgICBvdXRwdXQucGF5bG9hZC5hd3NBcHBzeW5jQXBpS2V5ID0gdGhpcy5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkFwaUtleS5hdHRyQXBpS2V5O1xuICAgIH1cblxuICAgIGNvbnN0IGFkZGl0aW9uYWxBdXRoVHlwZXMgPSBnZXRBZGRpdGlvbmFsQXV0aGVudGljYXRpb25UeXBlcyh0aGlzLnJlc291cmNlcy5jZm5SZXNvdXJjZXMuY2ZuR3JhcGhxbEFwaSk7XG4gICAgaWYgKGFkZGl0aW9uYWxBdXRoVHlwZXMpIHtcbiAgICAgIG91dHB1dC5wYXlsb2FkLmF3c0FwcHN5bmNBZGRpdGlvbmFsQXV0aGVudGljYXRpb25UeXBlcyA9IGFkZGl0aW9uYWxBdXRoVHlwZXM7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0YVN0b3JlQ29uZmlndXJhdGlvbj8ucHJvamVjdD8uaGFuZGxlclR5cGUpIHtcbiAgICAgIG91dHB1dC5wYXlsb2FkLmF3c0FwcHN5bmNDb25mbGljdFJlc29sdXRpb25Nb2RlID0gdGhpcy5kYXRhU3RvcmVDb25maWd1cmF0aW9uPy5wcm9qZWN0Py5oYW5kbGVyVHlwZTtcbiAgICB9XG5cbiAgICBvdXRwdXRTdG9yYWdlU3RyYXRlZ3kuYWRkQmFja2VuZE91dHB1dEVudHJ5KGdyYXBocWxPdXRwdXRLZXksIG91dHB1dCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGZvbGxvd2luZyBhcmUgcHJveHkgbWV0aG9kcyB0byB0aGUgTDIgSUdyYXBocWxBcGkgaW50ZXJmYWNlLCB0byBmYWNpbGl0YXRlIGVhc2llciB1c2Ugb2YgdGhlIEwzIHdpdGhvdXQgbmVlZGluZ1xuICAgKiB0byBhY2Nlc3MgdGhlIHVuZGVybHlpbmcgcmVzb3VyY2VzLlxuICAgKi9cblxuICAvKipcbiAgICogQWRkIGEgbmV3IER5bmFtb0RCIGRhdGEgc291cmNlIHRvIHRoaXMgQVBJLiBUaGlzIGlzIGEgcHJveHkgbWV0aG9kIHRvIHRoZSBMMiBHcmFwaHFsQXBpIENvbnN0cnVjdC5cbiAgICogQHBhcmFtIGlkIFRoZSBkYXRhIHNvdXJjZSdzIGlkLlxuICAgKiBAcGFyYW0gdGFibGUgVGhlIER5bmFtb0RCIHRhYmxlIGJhY2tpbmcgdGhpcyBkYXRhIHNvdXJjZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqIEByZXR1cm5zIHRoZSBnZW5lcmF0ZWQgZGF0YSBzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkRHluYW1vRGJEYXRhU291cmNlKGlkOiBzdHJpbmcsIHRhYmxlOiBJVGFibGUsIG9wdGlvbnM/OiBEYXRhU291cmNlT3B0aW9ucyk6IER5bmFtb0RiRGF0YVNvdXJjZSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzLmdyYXBocWxBcGkuYWRkRHluYW1vRGJEYXRhU291cmNlKGlkLCB0YWJsZSwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbmV3IGVsYXN0aWNzZWFyY2ggZGF0YSBzb3VyY2UgdG8gdGhpcyBBUEkuIFRoaXMgaXMgYSBwcm94eSBtZXRob2QgdG8gdGhlIEwyIEdyYXBocWxBcGkgQ29uc3RydWN0LlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYGFkZE9wZW5TZWFyY2hEYXRhU291cmNlYFxuICAgKiBAcGFyYW0gaWQgVGhlIGRhdGEgc291cmNlJ3MgaWQuXG4gICAqIEBwYXJhbSBkb21haW4gVGhlIGVsYXN0aWNzZWFyY2ggZG9tYWluIGZvciB0aGlzIGRhdGEgc291cmNlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBkYXRhIHNvdXJjZS5cbiAgICogQHJldHVybnMgdGhlIGdlbmVyYXRlZCBkYXRhIHNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyBhZGRFbGFzdGljc2VhcmNoRGF0YVNvdXJjZShpZDogc3RyaW5nLCBkb21haW46IElEb21haW4sIG9wdGlvbnM/OiBEYXRhU291cmNlT3B0aW9ucyk6IEVsYXN0aWNzZWFyY2hEYXRhU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXMuZ3JhcGhxbEFwaS5hZGRFbGFzdGljc2VhcmNoRGF0YVNvdXJjZShpZCwgZG9tYWluLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYW4gRXZlbnRCcmlkZ2UgZGF0YSBzb3VyY2UgdG8gdGhpcyBhcGkuIFRoaXMgaXMgYSBwcm94eSBtZXRob2QgdG8gdGhlIEwyIEdyYXBocWxBcGkgQ29uc3RydWN0LlxuICAgKiBAcGFyYW0gaWQgVGhlIGRhdGEgc291cmNlJ3MgaWQuXG4gICAqIEBwYXJhbSBldmVudEJ1cyBUaGUgRXZlbnRCcmlkZ2UgRXZlbnRCdXMgb24gd2hpY2ggdG8gcHV0IGV2ZW50cy5cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkRXZlbnRCcmlkZ2VEYXRhU291cmNlKGlkOiBzdHJpbmcsIGV2ZW50QnVzOiBJRXZlbnRCdXMsIG9wdGlvbnM/OiBEYXRhU291cmNlT3B0aW9ucyk6IEV2ZW50QnJpZGdlRGF0YVNvdXJjZSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzLmdyYXBocWxBcGkuYWRkRXZlbnRCcmlkZ2VEYXRhU291cmNlKGlkLCBldmVudEJ1cywgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbmV3IGh0dHAgZGF0YSBzb3VyY2UgdG8gdGhpcyBBUEkuIFRoaXMgaXMgYSBwcm94eSBtZXRob2QgdG8gdGhlIEwyIEdyYXBocWxBcGkgQ29uc3RydWN0LlxuICAgKiBAcGFyYW0gaWQgVGhlIGRhdGEgc291cmNlJ3MgaWQuXG4gICAqIEBwYXJhbSBlbmRwb2ludCBUaGUgaHR0cCBlbmRwb2ludC5cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqIEByZXR1cm5zIHRoZSBnZW5lcmF0ZWQgZGF0YSBzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkSHR0cERhdGFTb3VyY2UoaWQ6IHN0cmluZywgZW5kcG9pbnQ6IHN0cmluZywgb3B0aW9ucz86IEh0dHBEYXRhU291cmNlT3B0aW9ucyk6IEh0dHBEYXRhU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXMuZ3JhcGhxbEFwaS5hZGRIdHRwRGF0YVNvdXJjZShpZCwgZW5kcG9pbnQsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBMYW1iZGEgZGF0YSBzb3VyY2UgdG8gdGhpcyBBUEkuIFRoaXMgaXMgYSBwcm94eSBtZXRob2QgdG8gdGhlIEwyIEdyYXBocWxBcGkgQ29uc3RydWN0LlxuICAgKiBAcGFyYW0gaWQgVGhlIGRhdGEgc291cmNlJ3MgaWQuXG4gICAqIEBwYXJhbSBsYW1iZGFGdW5jdGlvbiBUaGUgTGFtYmRhIGZ1bmN0aW9uIHRvIGNhbGwgdG8gaW50ZXJhY3Qgd2l0aCB0aGlzIGRhdGEgc291cmNlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBkYXRhIHNvdXJjZS5cbiAgICogQHJldHVybnMgdGhlIGdlbmVyYXRlZCBkYXRhIHNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyBhZGRMYW1iZGFEYXRhU291cmNlKGlkOiBzdHJpbmcsIGxhbWJkYUZ1bmN0aW9uOiBJRnVuY3Rpb24sIG9wdGlvbnM/OiBEYXRhU291cmNlT3B0aW9ucyk6IExhbWJkYURhdGFTb3VyY2Uge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlcy5ncmFwaHFsQXBpLmFkZExhbWJkYURhdGFTb3VyY2UoaWQsIGxhbWJkYUZ1bmN0aW9uLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgZHVtbXkgZGF0YSBzb3VyY2UgdG8gdGhpcyBBUEkuIFRoaXMgaXMgYSBwcm94eSBtZXRob2QgdG8gdGhlIEwyIEdyYXBocWxBcGkgQ29uc3RydWN0LlxuICAgKiBVc2VmdWwgZm9yIHBpcGVsaW5lIHJlc29sdmVycyBhbmQgZm9yIGJhY2tlbmQgY2hhbmdlcyB0aGF0IGRvbid0IHJlcXVpcmUgYSBkYXRhIHNvdXJjZS5cbiAgICogQHBhcmFtIGlkIFRoZSBkYXRhIHNvdXJjZSdzIGlkLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBkYXRhIHNvdXJjZS5cbiAgICogQHJldHVybnMgdGhlIGdlbmVyYXRlZCBkYXRhIHNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyBhZGROb25lRGF0YVNvdXJjZShpZDogc3RyaW5nLCBvcHRpb25zPzogRGF0YVNvdXJjZU9wdGlvbnMpOiBOb25lRGF0YVNvdXJjZSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzLmdyYXBocWxBcGkuYWRkTm9uZURhdGFTb3VyY2UoaWQsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIGRkIGEgbmV3IE9wZW5TZWFyY2ggZGF0YSBzb3VyY2UgdG8gdGhpcyBBUEkuIFRoaXMgaXMgYSBwcm94eSBtZXRob2QgdG8gdGhlIEwyIEdyYXBocWxBcGkgQ29uc3RydWN0LlxuICAgKiBAcGFyYW0gaWQgVGhlIGRhdGEgc291cmNlJ3MgaWQuXG4gICAqIEBwYXJhbSBkb21haW4gVGhlIE9wZW5TZWFyY2ggZG9tYWluIGZvciB0aGlzIGRhdGEgc291cmNlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBkYXRhIHNvdXJjZS5cbiAgICogQHJldHVybnMgdGhlIGdlbmVyYXRlZCBkYXRhIHNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyBhZGRPcGVuU2VhcmNoRGF0YVNvdXJjZShpZDogc3RyaW5nLCBkb21haW46IElPcGVuU2VhcmNoRG9tYWluLCBvcHRpb25zPzogRGF0YVNvdXJjZU9wdGlvbnMpOiBPcGVuU2VhcmNoRGF0YVNvdXJjZSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzLmdyYXBocWxBcGkuYWRkT3BlblNlYXJjaERhdGFTb3VyY2UoaWQsIGRvbWFpbiwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbmV3IFJkcyBkYXRhIHNvdXJjZSB0byB0aGlzIEFQSS4gVGhpcyBpcyBhIHByb3h5IG1ldGhvZCB0byB0aGUgTDIgR3JhcGhxbEFwaSBDb25zdHJ1Y3QuXG4gICAqIEBwYXJhbSBpZCBUaGUgZGF0YSBzb3VyY2UncyBpZC5cbiAgICogQHBhcmFtIHNlcnZlcmxlc3NDbHVzdGVyIFRoZSBzZXJ2ZXJsZXNzIGNsdXN0ZXIgdG8gaW50ZXJhY3Qgd2l0aCB0aGlzIGRhdGEgc291cmNlLlxuICAgKiBAcGFyYW0gc2VjcmV0U3RvcmUgVGhlIHNlY3JldCBzdG9yZSB0aGF0IGNvbnRhaW5zIHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQgZm9yIHRoZSBzZXJ2ZXJsZXNzIGNsdXN0ZXIuXG4gICAqIEBwYXJhbSBkYXRhYmFzZU5hbWUgVGhlIG9wdGlvbmFsIG5hbWUgb2YgdGhlIGRhdGFiYXNlIHRvIHVzZSB3aXRoaW4gdGhlIGNsdXN0ZXIuXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGlzIGRhdGEgc291cmNlLlxuICAgKiBAcmV0dXJucyB0aGUgZ2VuZXJhdGVkIGRhdGEgc291cmNlLlxuICAgKi9cbiAgcHVibGljIGFkZFJkc0RhdGFTb3VyY2UoXG4gICAgaWQ6IHN0cmluZyxcbiAgICBzZXJ2ZXJsZXNzQ2x1c3RlcjogSVNlcnZlcmxlc3NDbHVzdGVyLFxuICAgIHNlY3JldFN0b3JlOiBJU2VjcmV0LFxuICAgIGRhdGFiYXNlTmFtZT86IHN0cmluZyxcbiAgICBvcHRpb25zPzogRGF0YVNvdXJjZU9wdGlvbnMsXG4gICk6IFJkc0RhdGFTb3VyY2Uge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlcy5ncmFwaHFsQXBpLmFkZFJkc0RhdGFTb3VyY2UoaWQsIHNlcnZlcmxlc3NDbHVzdGVyLCBzZWNyZXRTdG9yZSwgZGF0YWJhc2VOYW1lLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSByZXNvbHZlciB0byB0aGUgYXBpLiBUaGlzIGlzIGEgcHJveHkgbWV0aG9kIHRvIHRoZSBMMiBHcmFwaHFsQXBpIENvbnN0cnVjdC5cbiAgICogQHBhcmFtIGlkIFRoZSByZXNvbHZlcidzIGlkLlxuICAgKiBAcGFyYW0gcHJvcHMgdGhlIHJlc29sdmVyIHByb3BlcnRpZXMuXG4gICAqIEByZXR1cm5zIHRoZSBnZW5lcmF0ZWQgcmVzb2x2ZXIuXG4gICAqL1xuICBwdWJsaWMgYWRkUmVzb2x2ZXIoaWQ6IHN0cmluZywgcHJvcHM6IEV4dGVuZGVkUmVzb2x2ZXJQcm9wcyk6IFJlc29sdmVyIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXMuZ3JhcGhxbEFwaS5jcmVhdGVSZXNvbHZlcihpZCwgcHJvcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhbiBhcHBzeW5jIGZ1bmN0aW9uIHRvIHRoZSBhcGkuXG4gICAqIEBwYXJhbSBpZCB0aGUgZnVuY3Rpb24ncyBpZC5cbiAgICogQHJldHVybnMgdGhlIGdlbmVyYXRlZCBhcHBzeW5jIGZ1bmN0aW9uLlxuICAgKi9cbiAgcHVibGljIGFkZEZ1bmN0aW9uKGlkOiBzdHJpbmcsIHByb3BzOiBBZGRGdW5jdGlvblByb3BzKTogQXBwc3luY0Z1bmN0aW9uIHtcbiAgICByZXR1cm4gbmV3IEFwcHN5bmNGdW5jdGlvbih0aGlzLCBpZCwge1xuICAgICAgYXBpOiB0aGlzLnJlc291cmNlcy5ncmFwaHFsQXBpLFxuICAgICAgLi4ucHJvcHMsXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBHaXZlbiB0aGUgcHJvdmlkZWQgc2NvcGUsIHdhbGsgdGhlIG5vZGUgdHJlZSwgYW5kIHRocm93IGFuIGV4Y2VwdGlvbiBpZiBhbnkgb3RoZXIgQW1wbGlmeUdyYXBocWxBcGkgY29uc3RydWN0c1xuICogYXJlIGZvdW5kIGluIHRoZSBzdGFjay5cbiAqIEBwYXJhbSBzY29wZSB0aGUgc2NvcGUgdGhpcyBjb25zdHJ1Y3QgaXMgY3JlYXRlZCBpbi5cbiAqL1xuY29uc3QgdmFsaWRhdGVOb090aGVyQW1wbGlmeUdyYXBocWxBcGlJblN0YWNrID0gKHNjb3BlOiBDb25zdHJ1Y3QpOiB2b2lkID0+IHtcbiAgY29uc3Qgcm9vdFN0YWNrID0gZ2V0U3RhY2tGb3JTY29wZShzY29wZSwgZmFsc2UpO1xuXG4gIGxldCB3YXNPdGhlckFtcGxpZnlHcmFwaGxBcGlGb3VuZCA9IGZhbHNlO1xuICB3YWxrQW5kUHJvY2Vzc05vZGVzKHJvb3RTdGFjaywgKG5vZGU6IENvbnN0cnVjdCkgPT4ge1xuICAgIGlmIChub2RlIGluc3RhbmNlb2YgQW1wbGlmeUdyYXBocWxBcGkgJiYgc2NvcGUgIT09IG5vZGUpIHtcbiAgICAgIHdhc090aGVyQW1wbGlmeUdyYXBobEFwaUZvdW5kID0gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmICh3YXNPdGhlckFtcGxpZnlHcmFwaGxBcGlGb3VuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignT25seSBvbmUgQW1wbGlmeUdyYXBocWxBcGkgaXMgZXhwZWN0ZWQgaW4gYSBzdGFjay4gUGxhY2UgdGhlIEFtcGxpZnlHcmFwaHFsQXBpcyBpbiBzZXBhcmF0ZSBuZXN0ZWQgc3RhY2tzLicpO1xuICB9XG59O1xuXG5jb25zdCBnZXRNZXRhZGF0YURhdGFTb3VyY2VzID0gKGRlZmluaXRpb246IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24pOiBzdHJpbmcgPT4ge1xuICBjb25zdCBkYXRhU291cmNlRGJUeXBlcyA9IE9iamVjdC52YWx1ZXMoZGVmaW5pdGlvbi5kYXRhU291cmNlU3RyYXRlZ2llcykubWFwKChzdHJhdGVneSkgPT4gc3RyYXRlZ3kuZGJUeXBlLnRvTG9jYWxlTG93ZXJDYXNlKCkpO1xuICBjb25zdCBjdXN0b21TcWxEYlR5cGVzID0gKGRlZmluaXRpb24uY3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXMgPz8gW10pLm1hcCgoc3RyYXRlZ3kpID0+IHN0cmF0ZWd5LnN0cmF0ZWd5LmRiVHlwZS50b0xvY2FsZUxvd2VyQ2FzZSgpKTtcbiAgY29uc3QgZGF0YVNvdXJjZXMgPSBbLi4ubmV3IFNldChbLi4uZGF0YVNvdXJjZURiVHlwZXMsIC4uLmN1c3RvbVNxbERiVHlwZXNdKV0uc29ydCgpO1xuICByZXR1cm4gZGF0YVNvdXJjZXMuam9pbignLCcpO1xufTtcbiJdfQ==
288
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1ncmFwaHFsLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hbXBsaWZ5LWdyYXBocWwtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDJDQUF1QztBQUN2QywwRUFBNEY7QUFDNUYsNkNBQWlEO0FBQ2pELGdGQUE0SDtBQUM1SCxnRkFBdUU7QUFFdkUseURBY2lDO0FBUWpDLHNFQUE0RztBQVU1Ryx5Q0FVb0I7QUFDcEIsOERBQWtGO0FBQ2xGLHNFQUFnRjtBQUVoRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Qkc7QUFDSCxNQUFhLGlCQUFrQixTQUFRLHNCQUFTO0lBK0M5Qzs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTZCO1FBQ3JFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFibkI7O1dBRUc7UUFDYyxjQUFTLEdBQUcsYUFBYSxDQUFDO1FBWXpDLHVDQUF1QyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTlDLE1BQU0sRUFDSixVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsc0JBQXNCLEdBQ3ZCLEdBQUcsS0FBSyxDQUFDO1FBRVYsSUFBSSxrQkFBa0IsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1lBQ2pELE1BQU0sSUFBSSxLQUFLLENBQ2IsNklBQTZJLENBQzlJLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLHNCQUFzQixHQUFHLHNCQUFzQixJQUFJLGtCQUFrQixDQUFDO1FBRTNFLE1BQU0sV0FBVyxHQUFHLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXZELElBQUksbURBQTBCLEVBQUUsQ0FBQyx3QkFBd0IsQ0FB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QUU7SUFDL0UsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7SUFDaEksTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFVBQVUsQ0FBQyw2QkFBNkIsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUMxSSxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixFQUFFLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckYsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEV4ZWN1dGVUcmFuc2Zvcm1Db25maWcsIGV4ZWN1dGVUcmFuc2Zvcm0gfSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBOZXN0ZWRTdGFjaywgU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBBdHRyaWJ1dGlvbk1ldGFkYXRhU3RvcmFnZSwgU3RhY2tNZXRhZGF0YUJhY2tlbmRPdXRwdXRTdG9yYWdlU3RyYXRlZ3kgfSBmcm9tICdAYXdzLWFtcGxpZnkvYmFja2VuZC1vdXRwdXQtc3RvcmFnZSc7XG5pbXBvcnQgeyBncmFwaHFsT3V0cHV0S2V5IH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2JhY2tlbmQtb3V0cHV0LXNjaGVtYXMnO1xuaW1wb3J0IHR5cGUgeyBHcmFwaHFsT3V0cHV0LCBBd3NBcHBzeW5jQXV0aGVudGljYXRpb25UeXBlIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2JhY2tlbmQtb3V0cHV0LXNjaGVtYXMnO1xuaW1wb3J0IHtcbiAgQXBwc3luY0Z1bmN0aW9uLFxuICBEYXRhU291cmNlT3B0aW9ucyxcbiAgRHluYW1vRGJEYXRhU291cmNlLFxuICBFbGFzdGljc2VhcmNoRGF0YVNvdXJjZSxcbiAgRXZlbnRCcmlkZ2VEYXRhU291cmNlLFxuICBFeHRlbmRlZFJlc29sdmVyUHJvcHMsXG4gIEh0dHBEYXRhU291cmNlLFxuICBIdHRwRGF0YVNvdXJjZU9wdGlvbnMsXG4gIExhbWJkYURhdGFTb3VyY2UsXG4gIE5vbmVEYXRhU291cmNlLFxuICBPcGVuU2VhcmNoRGF0YVNvdXJjZSxcbiAgUmRzRGF0YVNvdXJjZSxcbiAgUmVzb2x2ZXIsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcHBzeW5jJztcbmltcG9ydCB7IElUYWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1keW5hbW9kYic7XG5pbXBvcnQgeyBJRG9tYWluIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVsYXN0aWNzZWFyY2gnO1xuaW1wb3J0IHsgSURvbWFpbiBhcyBJT3BlblNlYXJjaERvbWFpbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1vcGVuc2VhcmNoc2VydmljZSc7XG5pbXBvcnQgeyBJRXZlbnRCdXMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzJztcbmltcG9ydCB7IElGdW5jdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgSVNlcnZlcmxlc3NDbHVzdGVyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXJkcyc7XG5pbXBvcnQgeyBJU2VjcmV0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyJztcbmltcG9ydCB7IHBhcnNlVXNlckRlZmluZWRTbG90cywgdmFsaWRhdGVGdW5jdGlvblNsb3RzLCBzZXBhcmF0ZVNsb3RzIH0gZnJvbSAnLi9pbnRlcm5hbC91c2VyLWRlZmluZWQtc2xvdHMnO1xuaW1wb3J0IHR5cGUge1xuICBBbXBsaWZ5R3JhcGhxbEFwaVJlc291cmNlcyxcbiAgQW1wbGlmeUdyYXBocWxBcGlQcm9wcyxcbiAgRnVuY3Rpb25TbG90LFxuICBJQmFja2VuZE91dHB1dFN0b3JhZ2VTdHJhdGVneSxcbiAgQWRkRnVuY3Rpb25Qcm9wcyxcbiAgRGF0YVN0b3JlQ29uZmlndXJhdGlvbixcbiAgSUFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbixcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge1xuICBjb252ZXJ0QXV0aG9yaXphdGlvbk1vZGVzVG9UcmFuc2Zvcm1lckF1dGhDb25maWcsXG4gIGNvbnZlcnRUb1Jlc29sdmVyQ29uZmlnLFxuICBkZWZhdWx0VHJhbnNsYXRpb25CZWhhdmlvcixcbiAgQXNzZXRQcm92aWRlcixcbiAgZ2V0R2VuZXJhdGVkUmVzb3VyY2VzLFxuICBnZXRHZW5lcmF0ZWRGdW5jdGlvblNsb3RzLFxuICBDb2RlZ2VuQXNzZXRzLFxuICBnZXRBZGRpdGlvbmFsQXV0aGVudGljYXRpb25UeXBlcyxcbiAgdmFsaWRhdGVBdXRob3JpemF0aW9uTW9kZXMsXG59IGZyb20gJy4vaW50ZXJuYWwnO1xuaW1wb3J0IHsgZ2V0U3RhY2tGb3JTY29wZSwgd2Fsa0FuZFByb2Nlc3NOb2RlcyB9IGZyb20gJy4vaW50ZXJuYWwvY29uc3RydWN0LXRyZWUnO1xuaW1wb3J0IHsgZ2V0RGF0YVNvdXJjZVN0cmF0ZWdpZXNQcm92aWRlciB9IGZyb20gJy4vaW50ZXJuYWwvZGF0YS1zb3VyY2UtY29uZmlnJztcblxuLyoqXG4gKiBMMyBDb25zdHJ1Y3Qgd2hpY2ggaW52b2tlcyB0aGUgQW1wbGlmeSBUcmFuc2Zvcm1lciBQYXR0ZXJuIG92ZXIgYW4gaW5wdXQgR3JhcGhxbCBTY2hlbWEuXG4gKlxuICogVGhpcyBjYW4gYmUgdXNlZCB0byBxdWlja2x5IGRlZmluZSBhcHBzeW5jIGFwaXMgd2hpY2ggc3VwcG9ydCBmdWxsIENSVUQrTGlzdCBhbmQgU3Vic2NyaXB0aW9ucywgcmVsYXRpb25zaGlwcyxcbiAqIGF1dGgsIHNlYXJjaCBvdmVyIGRhdGEsIHRoZSBhYmlsaXR5IHRvIGluamVjdCBjdXN0b20gYnVzaW5lc3MgbG9naWMgYW5kIHF1ZXJ5L211dGF0aW9uIG9wZXJhdGlvbnMsIGFuZCBjb25uZWN0IHRvIE1MIHNlcnZpY2VzLlxuICpcbiAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCByZWZlciB0byB0aGUgZG9jcyBsaW5rcyBiZWxvdzpcbiAqIERhdGEgTW9kZWxpbmcgLSBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvY2xpL2dyYXBocWwvZGF0YS1tb2RlbGluZy9cbiAqIEF1dGhvcml6YXRpb24gLSBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvY2xpL2dyYXBocWwvYXV0aG9yaXphdGlvbi1ydWxlcy9cbiAqIEN1c3RvbSBCdXNpbmVzcyBMb2dpYyAtIGh0dHBzOi8vZG9jcy5hbXBsaWZ5LmF3cy9jbGkvZ3JhcGhxbC9jdXN0b20tYnVzaW5lc3MtbG9naWMvXG4gKiBTZWFyY2ggLSBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvY2xpL2dyYXBocWwvc2VhcmNoLWFuZC1yZXN1bHQtYWdncmVnYXRpb25zL1xuICogTUwgU2VydmljZXMgLSBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvY2xpL2dyYXBocWwvY29ubmVjdC10by1tYWNoaW5lLWxlYXJuaW5nLXNlcnZpY2VzL1xuICpcbiAqIEZvciBhIGZ1bGwgcmVmZXJlbmNlIG9mIHRoZSBzdXBwb3J0ZWQgY3VzdG9tIGdyYXBocWwgZGlyZWN0aXZlcyAtIGh0dHBzOi8vZG9jcy5hbXBsaWZ5LmF3cy9jbGkvZ3JhcGhxbC9kaXJlY3RpdmVzLXJlZmVyZW5jZS9cbiAqXG4gKiBUaGUgb3V0cHV0IG9mIHRoaXMgY29uc3RydWN0IGlzIGEgbWFwcGluZyBvZiBMMiBvciBMMSByZXNvdXJjZXMgZ2VuZXJhdGVkIGJ5IHRoZSB0cmFuc2Zvcm1lciwgd2hpY2ggZ2VuZXJhbGx5IGZvbGxvdyB0aGUgYWNjZXNzIHBhdHRlcm5cbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAgIGNvbnN0IGFwaSA9IG5ldyBBbXBsaWZ5R3JhcGhRbEFwaSh0aGlzLCAnYXBpJywgeyA8cGFyYW1zPiB9KTtcbiAqICAgLy8gQWNjZXNzIEwyIHJlc291cmNlcyB1bmRlciBgLnJlc291cmNlc2BcbiAqICAgYXBpLnJlc291cmNlcy50YWJsZXNbXCJUb2RvXCJdLnRhYmxlQXJuO1xuICpcbiAqICAgLy8gQWNjZXNzIEwxIHJlc291cmNlcyB1bmRlciBgLnJlc291cmNlcy5jZm5SZXNvdXJjZXNgXG4gKiAgIGFwaS5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkdyYXBocWxBcGkueHJheUVuYWJsZWQgPSB0cnVlO1xuICogICBPYmplY3QudmFsdWVzKGFwaS5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmblRhYmxlcykuZm9yRWFjaCh0YWJsZSA9PiB7XG4gKiAgICAgdGFibGUucG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb24gPSB7IHBvaW50SW5UaW1lUmVjb3ZlcnlFbmFibGVkOiBmYWxzZSB9O1xuICogICB9KTtcbiAqIGBgYFxuICogYHJlc291cmNlcy48UmVzb3VyY2VUeXBlPi48UmVzb3VyY2VOYW1lPmAgLSB5b3UgY2FuIHRoZW4gcGVyZm9ybSBhbnkgQ0RLIGFjdGlvbiBvbiB0aGVzZSByZXN1bHRpbmcgcmVzb3VyZWNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFtcGxpZnlHcmFwaHFsQXBpIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIEdlbmVyYXRlZCBMMSBhbmQgTDIgQ0RLIHJlc291cmNlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZXM6IEFtcGxpZnlHcmFwaHFsQXBpUmVzb3VyY2VzO1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZWQgYXNzZXRzIHJlcXVpcmVkIGZvciBjb2RlZ2VuIHN0ZXBzLiBQZXJzaXN0ZWQgaW4gb3JkZXIgdG8gcmVuZGVyIGFzIHBhcnQgb2YgdGhlIG91dHB1dCBzdHJhdGVneS5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgY29kZWdlbkFzc2V0czogQ29kZWdlbkFzc2V0cztcblxuICAvKipcbiAgICogUmVzb2x2ZXJzIGdlbmVyYXRlZCBieSB0aGUgdHJhbnNmb3JtIHByb2Nlc3MsIHBlcnNpc3RlZCBvbiB0aGUgc2lkZSBpbiBvcmRlciB0byBmYWNpbGl0YXRlIHB1bGxpbmcgYSBtYW5pZmVzdFxuICAgKiBmb3IgdGhlIHB1cnBvc2VzIG9mIGluc3BlY3RpbmcgYW5kIHByb2R1Y2luZyBvdmVycmlkZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ2VuZXJhdGVkRnVuY3Rpb25TbG90czogRnVuY3Rpb25TbG90W107XG5cbiAgLyoqXG4gICAqIEdyYXBocWwgVVJMIEZvciB0aGUgZ2VuZXJhdGVkIEFQSS4gTWF5IGJlIGEgQ0RLIFRva2VuLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGdyYXBocWxVcmw6IHN0cmluZztcblxuICAvKipcbiAgICogUmVhbHRpbWUgVVJMIEZvciB0aGUgZ2VuZXJhdGVkIEFQSS4gTWF5IGJlIGEgQ0RLIFRva2VuLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJlYWx0aW1lVXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlZCBBcGkgS2V5IGlmIGdlbmVyYXRlZC4gTWF5IGJlIGEgQ0RLIFRva2VuLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFwaUtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZWQgQXBpIElkLiBNYXkgYmUgYSBDREsgVG9rZW4uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXBpSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogRGF0YVN0b3JlIGNvbmZsaWN0IHJlc29sdXRpb24gc2V0dGluZ1xuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhU3RvcmVDb25maWd1cmF0aW9uOiBEYXRhU3RvcmVDb25maWd1cmF0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBCZSB2ZXJ5IGNhcmVmdWwgZWRpdGluZyB0aGlzIHZhbHVlLiBUaGlzIGlzIHRoZSBzdHJpbmcgdGhhdCBpcyB1c2VkIHRvIGlkZW50aWZ5IGdyYXBocWwgc3RhY2tzIGluIEJJIG1ldHJpY3NcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhY2tUeXBlID0gJ2FwaS1BcHBTeW5jJztcblxuICAvKipcbiAgICogTmV3IEFtcGxpZnlHcmFwaHFsQXBpIGNvbnN0cnVjdCwgdGhpcyB3aWxsIGNyZWF0ZSBhbiBhcHBzeW5jIGFwaSB3aXRoIGF1dGhvcml6YXRpb24sIGEgc2NoZW1hLCBhbmQgYWxsIG5lY2Vzc2FyeSByZXNvbHZlcnMsIGZ1bmN0aW9ucyxcbiAgICogYW5kIGRhdGFzb3VyY2VzLlxuICAgKiBAcGFyYW0gc2NvcGUgdGhlIHNjb3BlIHRvIGNyZWF0ZSB0aGlzIGNvbnN0cnVjdCB3aXRoaW4uXG4gICAqIEBwYXJhbSBpZCB0aGUgaWQgdG8gdXNlIGZvciB0aGlzIGFwaS5cbiAgICogQHBhcmFtIHByb3BzIHRoZSBwcm9wZXJ0aWVzIHVzZWQgdG8gY29uZmlndXJlIHRoZSBnZW5lcmF0ZWQgYXBpLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFtcGxpZnlHcmFwaHFsQXBpUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdmFsaWRhdGVOb090aGVyQW1wbGlmeUdyYXBocWxBcGlJblN0YWNrKHRoaXMpO1xuXG4gICAgY29uc3Qge1xuICAgICAgZGVmaW5pdGlvbixcbiAgICAgIGF1dGhvcml6YXRpb25Nb2RlcyxcbiAgICAgIGNvbmZsaWN0UmVzb2x1dGlvbixcbiAgICAgIGZ1bmN0aW9uU2xvdHMsXG4gICAgICB0cmFuc2Zvcm1lclBsdWdpbnMsXG4gICAgICBwcmVkaWN0aW9uc0J1Y2tldCxcbiAgICAgIHN0YWNrTWFwcGluZ3MsXG4gICAgICB0cmFuc2xhdGlvbkJlaGF2aW9yLFxuICAgICAgZnVuY3Rpb25OYW1lTWFwLFxuICAgICAgb3V0cHV0U3RvcmFnZVN0cmF0ZWd5LFxuICAgICAgZGF0YVN0b3JlQ29uZmlndXJhdGlvbixcbiAgICB9ID0gcHJvcHM7XG5cbiAgICBpZiAoY29uZmxpY3RSZXNvbHV0aW9uICYmIGRhdGFTdG9yZUNvbmZpZ3VyYXRpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ2NvbmZsaWN0UmVzb2x1dGlvbiBpcyBkZXByZWNhdGVkLiBjb25mbGljdFJlc29sdXRpb24gYW5kIGRhdGFTdG9yZUNvbmZpZ3VyYXRpb24gY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIuIFBsZWFzZSB1c2UgZGF0YVN0b3JlQ29uZmlndXJhdGlvbi4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24gPSBkYXRhU3RvcmVDb25maWd1cmF0aW9uIHx8IGNvbmZsaWN0UmVzb2x1dGlvbjtcblxuICAgIGNvbnN0IGRhdGFTb3VyY2VzID0gZ2V0TWV0YWRhdGFEYXRhU291cmNlcyhkZWZpbml0aW9uKTtcblxuICAgIG5ldyBBdHRyaWJ1dGlvbk1ldGFkYXRhU3RvcmFnZSgpLnN0b3JlQXR0cmlidXRpb25NZXRhZGF0YShTdGFjay5vZihzY29wZSksIHRoaXMuc3RhY2tUeXBlLCBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAncGFja2FnZS5qc29uJyksIHtcbiAgICAgIGRhdGFTb3VyY2VzLFxuICAgIH0pO1xuXG4gICAgdmFsaWRhdGVBdXRob3JpemF0aW9uTW9kZXMoYXV0aG9yaXphdGlvbk1vZGVzKTtcbiAgICBjb25zdCB7IGF1dGhDb25maWcsIGF1dGhTeW50aFBhcmFtZXRlcnMgfSA9IGNvbnZlcnRBdXRob3JpemF0aW9uTW9kZXNUb1RyYW5zZm9ybWVyQXV0aENvbmZpZyhhdXRob3JpemF0aW9uTW9kZXMpO1xuXG4gICAgdmFsaWRhdGVGdW5jdGlvblNsb3RzKGZ1bmN0aW9uU2xvdHMgPz8gW10pO1xuICAgIGNvbnN0IHNlcGFyYXRlZEZ1bmN0aW9uU2xvdHMgPSBzZXBhcmF0ZVNsb3RzKFsuLi4oZnVuY3Rpb25TbG90cyA/PyBbXSksIC4uLmRlZmluaXRpb24uZnVuY3Rpb25TbG90c10pO1xuXG4gICAgLy8gQWxsb3cgYW1wbGlmeUVudmlyb25tZW50TmFtZSB0byBiZSByZXRyaWV2ZSBmcm9tIGNvbnRleHQsIGFuZCB1c2UgdmFsdWUgJ05PTkUnIGlmIG5vIHZhbHVlIGNhbiBiZSBmb3VuZC5cbiAgICAvLyBhbXBsaWZ5RW52aXJvbm1lbnROYW1lIGlzIHJlcXVpcmVkIGZvciBsb2dpY2FsIGlkIHN1ZmZpeGluZywgYXMgd2VsbCBhcyBFeHBvcnRzIGZyb20gdGhlIG5lc3RlZCBzdGFja3MuXG4gICAgLy8gQWxsb3cgZXhwb3J0IHNvIGN1c3RvbWVycyBjYW4gcmV1c2UgdGhlIGVudiBpbiB0aGVpciBvd24gcmVmZXJlbmNlcyBkb3duc3RyZWFtLlxuICAgIGNvbnN0IGFtcGxpZnlFbnZpcm9ubWVudE5hbWUgPSB0aGlzLm5vZGUudHJ5R2V0Q29udGV4dCgnYW1wbGlmeUVudmlyb25tZW50TmFtZScpID8/ICdOT05FJztcbiAgICBpZiAoYW1wbGlmeUVudmlyb25tZW50TmFtZS5sZW5ndGggPiA4KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYG9yIGNkayAtLWNvbnRleHQgZW52IG11c3QgaGF2ZSBhIGxlbmd0aCA8PSA4LCBmb3VuZCAke2FtcGxpZnlFbnZpcm9ubWVudE5hbWV9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgYXNzZXRQcm92aWRlciA9IG5ldyBBc3NldFByb3ZpZGVyKHRoaXMpO1xuXG4gICAgY29uc3QgZXhlY3V0ZVRyYW5zZm9ybUNvbmZpZzogRXhlY3V0ZVRyYW5zZm9ybUNvbmZpZyA9IHtcbiAgICAgIHNjb3BlOiB0aGlzLFxuICAgICAgbmVzdGVkU3RhY2tQcm92aWRlcjoge1xuICAgICAgICBwcm92aWRlOiAobmVzdGVkU3RhY2tTY29wZTogQ29uc3RydWN0LCBuYW1lOiBzdHJpbmcpID0+IG5ldyBOZXN0ZWRTdGFjayhuZXN0ZWRTdGFja1Njb3BlLCBuYW1lKSxcbiAgICAgIH0sXG4gICAgICBhc3NldFByb3ZpZGVyLFxuICAgICAgc3ludGhQYXJhbWV0ZXJzOiB7XG4gICAgICAgIGFtcGxpZnlFbnZpcm9ubWVudE5hbWU6IGFtcGxpZnlFbnZpcm9ubWVudE5hbWUsXG4gICAgICAgIGFwaU5hbWU6IHByb3BzLmFwaU5hbWUgPz8gaWQsXG4gICAgICAgIC4uLmF1dGhTeW50aFBhcmFtZXRlcnMsXG4gICAgICB9LFxuICAgICAgc2NoZW1hOiBkZWZpbml0aW9uLnNjaGVtYSxcbiAgICAgIHVzZXJEZWZpbmVkU2xvdHM6IHBhcnNlVXNlckRlZmluZWRTbG90cyhzZXBhcmF0ZWRGdW5jdGlvblNsb3RzKSxcbiAgICAgIHRyYW5zZm9ybWVyc0ZhY3RvcnlBcmdzOiB7XG4gICAgICAgIGN1c3RvbVRyYW5zZm9ybWVyczogdHJhbnNmb3JtZXJQbHVnaW5zID8/IFtdLFxuICAgICAgICAuLi4ocHJlZGljdGlvbnNCdWNrZXQgPyB7IHN0b3JhZ2VDb25maWc6IHsgYnVja2V0TmFtZTogcHJlZGljdGlvbnNCdWNrZXQuYnVja2V0TmFtZSB9IH0gOiB7fSksXG4gICAgICAgIGZ1bmN0aW9uTmFtZU1hcDoge1xuICAgICAgICAgIC4uLmRlZmluaXRpb24ucmVmZXJlbmNlZExhbWJkYUZ1bmN0aW9ucyxcbiAgICAgICAgICAuLi5mdW5jdGlvbk5hbWVNYXAsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgYXV0aENvbmZpZyxcbiAgICAgIHN0YWNrTWFwcGluZzogc3RhY2tNYXBwaW5ncyA/PyB7fSxcbiAgICAgIHJlc29sdmVyQ29uZmlnOiB0aGlzLmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24gPyBjb252ZXJ0VG9SZXNvbHZlckNvbmZpZyh0aGlzLmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24pIDogdW5kZWZpbmVkLFxuICAgICAgdHJhbnNmb3JtUGFyYW1ldGVyczoge1xuICAgICAgICAuLi5kZWZhdWx0VHJhbnNsYXRpb25CZWhhdmlvcixcbiAgICAgICAgLi4uKHRyYW5zbGF0aW9uQmVoYXZpb3IgPz8ge30pLFxuICAgICAgfSxcbiAgICAgIC8vIENESyBjb25zdHJ1Y3QgdXNlcyBhIGN1c3RvbSByZXNvdXJjZS4gV2UnbGwgZGVmaW5lIHRoaXMgZXhwbGljaXRseSBoZXJlIHRvIHJlbWluZCBvdXJzZWx2ZXMgdGhhdCB0aGlzIHZhbHVlIGlzIHVudXNlZCBpbiB0aGUgQ0RLXG4gICAgICAvLyBjb25zdHJ1Y3QgZmxvd1xuICAgICAgcmRzTGF5ZXJNYXBwaW5nOiB1bmRlZmluZWQsXG4gICAgICByZHNTbnNUb3BpY01hcHBpbmc6IHVuZGVmaW5lZCxcbiAgICAgIC4uLmdldERhdGFTb3VyY2VTdHJhdGVnaWVzUHJvdmlkZXIoZGVmaW5pdGlvbiksXG4gICAgfTtcblxuICAgIGV4ZWN1dGVUcmFuc2Zvcm0oZXhlY3V0ZVRyYW5zZm9ybUNvbmZpZyk7XG5cbiAgICB0aGlzLmNvZGVnZW5Bc3NldHMgPSBuZXcgQ29kZWdlbkFzc2V0cyh0aGlzLCAnQW1wbGlmeUNvZGVnZW5Bc3NldHMnLCB7IG1vZGVsU2NoZW1hOiBkZWZpbml0aW9uLnNjaGVtYSB9KTtcblxuICAgIHRoaXMucmVzb3VyY2VzID0gZ2V0R2VuZXJhdGVkUmVzb3VyY2VzKHRoaXMpO1xuICAgIHRoaXMuZ2VuZXJhdGVkRnVuY3Rpb25TbG90cyA9IGdldEdlbmVyYXRlZEZ1bmN0aW9uU2xvdHMoYXNzZXRQcm92aWRlci5yZXNvbHZlckFzc2V0cyk7XG4gICAgdGhpcy5zdG9yZU91dHB1dChvdXRwdXRTdG9yYWdlU3RyYXRlZ3kpO1xuXG4gICAgdGhpcy5hcGlJZCA9IHRoaXMucmVzb3VyY2VzLmNmblJlc291cmNlcy5jZm5HcmFwaHFsQXBpLmF0dHJBcGlJZDtcbiAgICB0aGlzLmdyYXBocWxVcmwgPSB0aGlzLnJlc291cmNlcy5jZm5SZXNvdXJjZXMuY2ZuR3JhcGhxbEFwaS5hdHRyR3JhcGhRbFVybDtcbiAgICB0aGlzLnJlYWx0aW1lVXJsID0gdGhpcy5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkdyYXBocWxBcGkuYXR0clJlYWx0aW1lVXJsO1xuICAgIHRoaXMuYXBpS2V5ID0gdGhpcy5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkFwaUtleT8uYXR0ckFwaUtleTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9yZXMgZ3JhcGhxbCBhcGkgb3V0cHV0IHRvIGJlIHVzZWQgZm9yIGNsaWVudCBjb25maWcgZ2VuZXJhdGlvblxuICAgKiBAcGFyYW0gb3V0cHV0U3RvcmFnZVN0cmF0ZWd5IFN0cmF0ZWd5IHRvIHN0b3JlIGNvbnN0cnVjdCBvdXRwdXRzLiBJZiBubyBzdHJhdGVneSBpcyBwcm92aWRlZCBhIGRlZmF1bHQgc3RyYXRlZ3kgd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcHJpdmF0ZSBzdG9yZU91dHB1dChcbiAgICBvdXRwdXRTdG9yYWdlU3RyYXRlZ3k6IElCYWNrZW5kT3V0cHV0U3RvcmFnZVN0cmF0ZWd5ID0gbmV3IFN0YWNrTWV0YWRhdGFCYWNrZW5kT3V0cHV0U3RvcmFnZVN0cmF0ZWd5KFN0YWNrLm9mKHRoaXMpKSxcbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZih0aGlzKTtcbiAgICBjb25zdCBvdXRwdXQ6IEdyYXBocWxPdXRwdXQgPSB7XG4gICAgICB2ZXJzaW9uOiAnMScsXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIGF3c0FwcHN5bmNBcGlJZDogdGhpcy5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkdyYXBocWxBcGkuYXR0ckFwaUlkLFxuICAgICAgICBhd3NBcHBzeW5jQXBpRW5kcG9pbnQ6IHRoaXMucmVzb3VyY2VzLmNmblJlc291cmNlcy5jZm5HcmFwaHFsQXBpLmF0dHJHcmFwaFFsVXJsLFxuICAgICAgICBhd3NBcHBzeW5jQXV0aGVudGljYXRpb25UeXBlOiB0aGlzLnJlc291cmNlcy5jZm5SZXNvdXJjZXMuY2ZuR3JhcGhxbEFwaS5hdXRoZW50aWNhdGlvblR5cGUgYXMgQXdzQXBwc3luY0F1dGhlbnRpY2F0aW9uVHlwZSxcbiAgICAgICAgYXdzQXBwc3luY1JlZ2lvbjogc3RhY2sucmVnaW9uLFxuICAgICAgICBhbXBsaWZ5QXBpTW9kZWxTY2hlbWFTM1VyaTogdGhpcy5jb2RlZ2VuQXNzZXRzLm1vZGVsU2NoZW1hUzNVcmksXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkFwaUtleSkge1xuICAgICAgb3V0cHV0LnBheWxvYWQuYXdzQXBwc3luY0FwaUtleSA9IHRoaXMucmVzb3VyY2VzLmNmblJlc291cmNlcy5jZm5BcGlLZXkuYXR0ckFwaUtleTtcbiAgICB9XG5cbiAgICBjb25zdCBhZGRpdGlvbmFsQXV0aFR5cGVzID0gZ2V0QWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uVHlwZXModGhpcy5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkdyYXBocWxBcGkpO1xuICAgIGlmIChhZGRpdGlvbmFsQXV0aFR5cGVzKSB7XG4gICAgICBvdXRwdXQucGF5bG9hZC5hd3NBcHBzeW5jQWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uVHlwZXMgPSBhZGRpdGlvbmFsQXV0aFR5cGVzO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24/LnByb2plY3Q/LmhhbmRsZXJUeXBlKSB7XG4gICAgICBvdXRwdXQucGF5bG9hZC5hd3NBcHBzeW5jQ29uZmxpY3RSZXNvbHV0aW9uTW9kZSA9IHRoaXMuZGF0YVN0b3JlQ29uZmlndXJhdGlvbj8ucHJvamVjdD8uaGFuZGxlclR5cGU7XG4gICAgfVxuXG4gICAgb3V0cHV0U3RvcmFnZVN0cmF0ZWd5LmFkZEJhY2tlbmRPdXRwdXRFbnRyeShncmFwaHFsT3V0cHV0S2V5LCBvdXRwdXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBmb2xsb3dpbmcgYXJlIHByb3h5IG1ldGhvZHMgdG8gdGhlIEwyIElHcmFwaHFsQXBpIGludGVyZmFjZSwgdG8gZmFjaWxpdGF0ZSBlYXNpZXIgdXNlIG9mIHRoZSBMMyB3aXRob3V0IG5lZWRpbmdcbiAgICogdG8gYWNjZXNzIHRoZSB1bmRlcmx5aW5nIHJlc291cmNlcy5cbiAgICovXG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBEeW5hbW9EQiBkYXRhIHNvdXJjZSB0byB0aGlzIEFQSS4gVGhpcyBpcyBhIHByb3h5IG1ldGhvZCB0byB0aGUgTDIgR3JhcGhxbEFwaSBDb25zdHJ1Y3QuXG4gICAqIEBwYXJhbSBpZCBUaGUgZGF0YSBzb3VyY2UncyBpZC5cbiAgICogQHBhcmFtIHRhYmxlIFRoZSBEeW5hbW9EQiB0YWJsZSBiYWNraW5nIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGlzIGRhdGEgc291cmNlLlxuICAgKiBAcmV0dXJucyB0aGUgZ2VuZXJhdGVkIGRhdGEgc291cmNlLlxuICAgKi9cbiAgcHVibGljIGFkZER5bmFtb0RiRGF0YVNvdXJjZShpZDogc3RyaW5nLCB0YWJsZTogSVRhYmxlLCBvcHRpb25zPzogRGF0YVNvdXJjZU9wdGlvbnMpOiBEeW5hbW9EYkRhdGFTb3VyY2Uge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlcy5ncmFwaHFsQXBpLmFkZER5bmFtb0RiRGF0YVNvdXJjZShpZCwgdGFibGUsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBlbGFzdGljc2VhcmNoIGRhdGEgc291cmNlIHRvIHRoaXMgQVBJLiBUaGlzIGlzIGEgcHJveHkgbWV0aG9kIHRvIHRoZSBMMiBHcmFwaHFsQXBpIENvbnN0cnVjdC5cbiAgICogQGRlcHJlY2F0ZWQgdXNlIGBhZGRPcGVuU2VhcmNoRGF0YVNvdXJjZWBcbiAgICogQHBhcmFtIGlkIFRoZSBkYXRhIHNvdXJjZSdzIGlkLlxuICAgKiBAcGFyYW0gZG9tYWluIFRoZSBlbGFzdGljc2VhcmNoIGRvbWFpbiBmb3IgdGhpcyBkYXRhIHNvdXJjZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqIEByZXR1cm5zIHRoZSBnZW5lcmF0ZWQgZGF0YSBzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkRWxhc3RpY3NlYXJjaERhdGFTb3VyY2UoaWQ6IHN0cmluZywgZG9tYWluOiBJRG9tYWluLCBvcHRpb25zPzogRGF0YVNvdXJjZU9wdGlvbnMpOiBFbGFzdGljc2VhcmNoRGF0YVNvdXJjZSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzLmdyYXBocWxBcGkuYWRkRWxhc3RpY3NlYXJjaERhdGFTb3VyY2UoaWQsIGRvbWFpbiwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGFuIEV2ZW50QnJpZGdlIGRhdGEgc291cmNlIHRvIHRoaXMgYXBpLiBUaGlzIGlzIGEgcHJveHkgbWV0aG9kIHRvIHRoZSBMMiBHcmFwaHFsQXBpIENvbnN0cnVjdC5cbiAgICogQHBhcmFtIGlkIFRoZSBkYXRhIHNvdXJjZSdzIGlkLlxuICAgKiBAcGFyYW0gZXZlbnRCdXMgVGhlIEV2ZW50QnJpZGdlIEV2ZW50QnVzIG9uIHdoaWNoIHRvIHB1dCBldmVudHMuXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGlzIGRhdGEgc291cmNlLlxuICAgKi9cbiAgcHVibGljIGFkZEV2ZW50QnJpZGdlRGF0YVNvdXJjZShpZDogc3RyaW5nLCBldmVudEJ1czogSUV2ZW50QnVzLCBvcHRpb25zPzogRGF0YVNvdXJjZU9wdGlvbnMpOiBFdmVudEJyaWRnZURhdGFTb3VyY2Uge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlcy5ncmFwaHFsQXBpLmFkZEV2ZW50QnJpZGdlRGF0YVNvdXJjZShpZCwgZXZlbnRCdXMsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBodHRwIGRhdGEgc291cmNlIHRvIHRoaXMgQVBJLiBUaGlzIGlzIGEgcHJveHkgbWV0aG9kIHRvIHRoZSBMMiBHcmFwaHFsQXBpIENvbnN0cnVjdC5cbiAgICogQHBhcmFtIGlkIFRoZSBkYXRhIHNvdXJjZSdzIGlkLlxuICAgKiBAcGFyYW0gZW5kcG9pbnQgVGhlIGh0dHAgZW5kcG9pbnQuXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGlzIGRhdGEgc291cmNlLlxuICAgKiBAcmV0dXJucyB0aGUgZ2VuZXJhdGVkIGRhdGEgc291cmNlLlxuICAgKi9cbiAgcHVibGljIGFkZEh0dHBEYXRhU291cmNlKGlkOiBzdHJpbmcsIGVuZHBvaW50OiBzdHJpbmcsIG9wdGlvbnM/OiBIdHRwRGF0YVNvdXJjZU9wdGlvbnMpOiBIdHRwRGF0YVNvdXJjZSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzLmdyYXBocWxBcGkuYWRkSHR0cERhdGFTb3VyY2UoaWQsIGVuZHBvaW50LCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgTGFtYmRhIGRhdGEgc291cmNlIHRvIHRoaXMgQVBJLiBUaGlzIGlzIGEgcHJveHkgbWV0aG9kIHRvIHRoZSBMMiBHcmFwaHFsQXBpIENvbnN0cnVjdC5cbiAgICogQHBhcmFtIGlkIFRoZSBkYXRhIHNvdXJjZSdzIGlkLlxuICAgKiBAcGFyYW0gbGFtYmRhRnVuY3Rpb24gVGhlIExhbWJkYSBmdW5jdGlvbiB0byBjYWxsIHRvIGludGVyYWN0IHdpdGggdGhpcyBkYXRhIHNvdXJjZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqIEByZXR1cm5zIHRoZSBnZW5lcmF0ZWQgZGF0YSBzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkTGFtYmRhRGF0YVNvdXJjZShpZDogc3RyaW5nLCBsYW1iZGFGdW5jdGlvbjogSUZ1bmN0aW9uLCBvcHRpb25zPzogRGF0YVNvdXJjZU9wdGlvbnMpOiBMYW1iZGFEYXRhU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXMuZ3JhcGhxbEFwaS5hZGRMYW1iZGFEYXRhU291cmNlKGlkLCBsYW1iZGFGdW5jdGlvbiwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbmV3IGR1bW15IGRhdGEgc291cmNlIHRvIHRoaXMgQVBJLiBUaGlzIGlzIGEgcHJveHkgbWV0aG9kIHRvIHRoZSBMMiBHcmFwaHFsQXBpIENvbnN0cnVjdC5cbiAgICogVXNlZnVsIGZvciBwaXBlbGluZSByZXNvbHZlcnMgYW5kIGZvciBiYWNrZW5kIGNoYW5nZXMgdGhhdCBkb24ndCByZXF1aXJlIGEgZGF0YSBzb3VyY2UuXG4gICAqIEBwYXJhbSBpZCBUaGUgZGF0YSBzb3VyY2UncyBpZC5cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqIEByZXR1cm5zIHRoZSBnZW5lcmF0ZWQgZGF0YSBzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkTm9uZURhdGFTb3VyY2UoaWQ6IHN0cmluZywgb3B0aW9ucz86IERhdGFTb3VyY2VPcHRpb25zKTogTm9uZURhdGFTb3VyY2Uge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlcy5ncmFwaHFsQXBpLmFkZE5vbmVEYXRhU291cmNlKGlkLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZCBhIG5ldyBPcGVuU2VhcmNoIGRhdGEgc291cmNlIHRvIHRoaXMgQVBJLiBUaGlzIGlzIGEgcHJveHkgbWV0aG9kIHRvIHRoZSBMMiBHcmFwaHFsQXBpIENvbnN0cnVjdC5cbiAgICogQHBhcmFtIGlkIFRoZSBkYXRhIHNvdXJjZSdzIGlkLlxuICAgKiBAcGFyYW0gZG9tYWluIFRoZSBPcGVuU2VhcmNoIGRvbWFpbiBmb3IgdGhpcyBkYXRhIHNvdXJjZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqIEByZXR1cm5zIHRoZSBnZW5lcmF0ZWQgZGF0YSBzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkT3BlblNlYXJjaERhdGFTb3VyY2UoaWQ6IHN0cmluZywgZG9tYWluOiBJT3BlblNlYXJjaERvbWFpbiwgb3B0aW9ucz86IERhdGFTb3VyY2VPcHRpb25zKTogT3BlblNlYXJjaERhdGFTb3VyY2Uge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlcy5ncmFwaHFsQXBpLmFkZE9wZW5TZWFyY2hEYXRhU291cmNlKGlkLCBkb21haW4sIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBSZHMgZGF0YSBzb3VyY2UgdG8gdGhpcyBBUEkuIFRoaXMgaXMgYSBwcm94eSBtZXRob2QgdG8gdGhlIEwyIEdyYXBocWxBcGkgQ29uc3RydWN0LlxuICAgKiBAcGFyYW0gaWQgVGhlIGRhdGEgc291cmNlJ3MgaWQuXG4gICAqIEBwYXJhbSBzZXJ2ZXJsZXNzQ2x1c3RlciBUaGUgc2VydmVybGVzcyBjbHVzdGVyIHRvIGludGVyYWN0IHdpdGggdGhpcyBkYXRhIHNvdXJjZS5cbiAgICogQHBhcmFtIHNlY3JldFN0b3JlIFRoZSBzZWNyZXQgc3RvcmUgdGhhdCBjb250YWlucyB0aGUgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGZvciB0aGUgc2VydmVybGVzcyBjbHVzdGVyLlxuICAgKiBAcGFyYW0gZGF0YWJhc2VOYW1lIFRoZSBvcHRpb25hbCBuYW1lIG9mIHRoZSBkYXRhYmFzZSB0byB1c2Ugd2l0aGluIHRoZSBjbHVzdGVyLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBkYXRhIHNvdXJjZS5cbiAgICogQHJldHVybnMgdGhlIGdlbmVyYXRlZCBkYXRhIHNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyBhZGRSZHNEYXRhU291cmNlKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgc2VydmVybGVzc0NsdXN0ZXI6IElTZXJ2ZXJsZXNzQ2x1c3RlcixcbiAgICBzZWNyZXRTdG9yZTogSVNlY3JldCxcbiAgICBkYXRhYmFzZU5hbWU/OiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IERhdGFTb3VyY2VPcHRpb25zLFxuICApOiBSZHNEYXRhU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXMuZ3JhcGhxbEFwaS5hZGRSZHNEYXRhU291cmNlKGlkLCBzZXJ2ZXJsZXNzQ2x1c3Rlciwgc2VjcmV0U3RvcmUsIGRhdGFiYXNlTmFtZSwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgcmVzb2x2ZXIgdG8gdGhlIGFwaS4gVGhpcyBpcyBhIHByb3h5IG1ldGhvZCB0byB0aGUgTDIgR3JhcGhxbEFwaSBDb25zdHJ1Y3QuXG4gICAqIEBwYXJhbSBpZCBUaGUgcmVzb2x2ZXIncyBpZC5cbiAgICogQHBhcmFtIHByb3BzIHRoZSByZXNvbHZlciBwcm9wZXJ0aWVzLlxuICAgKiBAcmV0dXJucyB0aGUgZ2VuZXJhdGVkIHJlc29sdmVyLlxuICAgKi9cbiAgcHVibGljIGFkZFJlc29sdmVyKGlkOiBzdHJpbmcsIHByb3BzOiBFeHRlbmRlZFJlc29sdmVyUHJvcHMpOiBSZXNvbHZlciB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzLmdyYXBocWxBcGkuY3JlYXRlUmVzb2x2ZXIoaWQsIHByb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYW4gYXBwc3luYyBmdW5jdGlvbiB0byB0aGUgYXBpLlxuICAgKiBAcGFyYW0gaWQgdGhlIGZ1bmN0aW9uJ3MgaWQuXG4gICAqIEByZXR1cm5zIHRoZSBnZW5lcmF0ZWQgYXBwc3luYyBmdW5jdGlvbi5cbiAgICovXG4gIHB1YmxpYyBhZGRGdW5jdGlvbihpZDogc3RyaW5nLCBwcm9wczogQWRkRnVuY3Rpb25Qcm9wcyk6IEFwcHN5bmNGdW5jdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBBcHBzeW5jRnVuY3Rpb24odGhpcywgaWQsIHtcbiAgICAgIGFwaTogdGhpcy5yZXNvdXJjZXMuZ3JhcGhxbEFwaSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogR2l2ZW4gdGhlIHByb3ZpZGVkIHNjb3BlLCB3YWxrIHRoZSBub2RlIHRyZWUsIGFuZCB0aHJvdyBhbiBleGNlcHRpb24gaWYgYW55IG90aGVyIEFtcGxpZnlHcmFwaHFsQXBpIGNvbnN0cnVjdHNcbiAqIGFyZSBmb3VuZCBpbiB0aGUgc3RhY2suXG4gKiBAcGFyYW0gc2NvcGUgdGhlIHNjb3BlIHRoaXMgY29uc3RydWN0IGlzIGNyZWF0ZWQgaW4uXG4gKi9cbmNvbnN0IHZhbGlkYXRlTm9PdGhlckFtcGxpZnlHcmFwaHFsQXBpSW5TdGFjayA9IChzY29wZTogQ29uc3RydWN0KTogdm9pZCA9PiB7XG4gIGNvbnN0IHJvb3RTdGFjayA9IGdldFN0YWNrRm9yU2NvcGUoc2NvcGUsIGZhbHNlKTtcblxuICBsZXQgd2FzT3RoZXJBbXBsaWZ5R3JhcGhsQXBpRm91bmQgPSBmYWxzZTtcbiAgd2Fsa0FuZFByb2Nlc3NOb2Rlcyhyb290U3RhY2ssIChub2RlOiBDb25zdHJ1Y3QpID0+IHtcbiAgICBpZiAobm9kZSBpbnN0YW5jZW9mIEFtcGxpZnlHcmFwaHFsQXBpICYmIHNjb3BlICE9PSBub2RlKSB7XG4gICAgICB3YXNPdGhlckFtcGxpZnlHcmFwaGxBcGlGb3VuZCA9IHRydWU7XG4gICAgfVxuICB9KTtcblxuICBpZiAod2FzT3RoZXJBbXBsaWZ5R3JhcGhsQXBpRm91bmQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgb25lIEFtcGxpZnlHcmFwaHFsQXBpIGlzIGV4cGVjdGVkIGluIGEgc3RhY2suIFBsYWNlIHRoZSBBbXBsaWZ5R3JhcGhxbEFwaXMgaW4gc2VwYXJhdGUgbmVzdGVkIHN0YWNrcy4nKTtcbiAgfVxufTtcblxuY29uc3QgZ2V0TWV0YWRhdGFEYXRhU291cmNlcyA9IChkZWZpbml0aW9uOiBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uKTogc3RyaW5nID0+IHtcbiAgY29uc3QgZGF0YVNvdXJjZURiVHlwZXMgPSBPYmplY3QudmFsdWVzKGRlZmluaXRpb24uZGF0YVNvdXJjZVN0cmF0ZWdpZXMpLm1hcCgoc3RyYXRlZ3kpID0+IHN0cmF0ZWd5LmRiVHlwZS50b0xvY2FsZUxvd2VyQ2FzZSgpKTtcbiAgY29uc3QgY3VzdG9tU3FsRGJUeXBlcyA9IChkZWZpbml0aW9uLmN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzID8/IFtdKS5tYXAoKHN0cmF0ZWd5KSA9PiBzdHJhdGVneS5zdHJhdGVneS5kYlR5cGUudG9Mb2NhbGVMb3dlckNhc2UoKSk7XG4gIGNvbnN0IGRhdGFTb3VyY2VzID0gWy4uLm5ldyBTZXQoWy4uLmRhdGFTb3VyY2VEYlR5cGVzLCAuLi5jdXN0b21TcWxEYlR5cGVzXSldLnNvcnQoKTtcbiAgcmV0dXJuIGRhdGFTb3VyY2VzLmpvaW4oJywnKTtcbn07XG4iXX0=
@@ -101,5 +101,5 @@ class AmplifyGraphqlDefinition {
101
101
  }
102
102
  exports.AmplifyGraphqlDefinition = AmplifyGraphqlDefinition;
103
103
  _a = JSII_RTTI_SYMBOL_1;
104
- AmplifyGraphqlDefinition[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition", version: "1.10.0" };
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1ncmFwaHFsLWRlZmluaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYW1wbGlmeS1ncmFwaHFsLWRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIseURBQXFEO0FBQ3JELG9GQUFzRTtBQUV0RSx5Q0FBMkQ7QUFFM0Qsc0VBSXVDO0FBRTFCLFFBQUEsa0NBQWtDLEdBQTRCO0lBQ3pFLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLGlCQUFpQixFQUFFLFNBQVM7Q0FDN0IsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBYSx3QkFBd0I7SUFDbkM7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FDZixNQUFjLEVBQ2QscUJBQThDLDBDQUFrQztRQUVoRixJQUFBLCtDQUEwQixFQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDL0MsT0FBTztZQUNMLE1BQU07WUFDTixhQUFhLEVBQUUsRUFBRTtZQUNqQix5QkFBeUIsRUFBRSxFQUFFO1lBQzdCLG9CQUFvQixFQUFFLElBQUEsd0NBQTZCLEVBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDO1lBQy9FLDZCQUE2QixFQUFFLElBQUEsMkRBQXNDLEVBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDO1NBQ2xHLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFtQjtRQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUM3QixTQUFTLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN6QjtRQUNELE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksd0JBQVUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUs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LEVBQUUsRUFBRSxDQUFDO1lBQ3JHLDZCQUE2QjtTQUM5QixDQUFDO0lBQ0osQ0FBQzs7QUFwR0gsNERBcUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0IHsgU2NoZW1hRmlsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcHBzeW5jJztcbmltcG9ydCB7IGlzU3FsU3RyYXRlZ3kgfSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lci1jb3JlJztcbmltcG9ydCB7IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24gfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGNvbnN0cnVjdERhdGFTb3VyY2VTdHJhdGVnaWVzIH0gZnJvbSAnLi9pbnRlcm5hbCc7XG5pbXBvcnQgeyBDdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ3ksIE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IH0gZnJvbSAnLi9tb2RlbC1kYXRhc291cmNlLXN0cmF0ZWd5LXR5cGVzJztcbmltcG9ydCB7XG4gIGNvbnN0cnVjdEN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzLFxuICBzY2hlbWFCeU1lcmdpbmdEZWZpbml0aW9ucyxcbiAgdmFsaWRhdGVEYXRhU291cmNlU3RyYXRlZ3ksXG59IGZyb20gJy4vaW50ZXJuYWwvZGF0YS1zb3VyY2UtY29uZmlnJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTU9ERUxfREFUQV9TT1VSQ0VfU1RSQVRFR1k6IE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5ID0ge1xuICBkYlR5cGU6ICdEWU5BTU9EQicsXG4gIHByb3Zpc2lvblN0cmF0ZWd5OiAnREVGQVVMVCcsXG59O1xuXG4vKipcbiAqIENsYXNzIGV4cG9zaW5nIHV0aWxpdGllcyB0byBwcm9kdWNlIElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24gb2JqZWN0cyBnaXZlbiB2YXJpb3VzIGlucHV0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbiB7XG4gIC8qKlxuICAgKiBQcm9kdWNlIGEgc2NoZW1hIGRlZmluaXRpb24gZnJvbSBhIHN0cmluZyBpbnB1dC5cbiAgICogQHBhcmFtIHNjaGVtYSB0aGUgZ3JhcGhxbCBpbnB1dCBhcyBhIHN0cmluZ1xuICAgKiBAcGFyYW0gZGF0YVNvdXJjZVN0cmF0ZWd5IHRoZSBwcm92aXNpb25pbmcgZGVmaW5pdGlvbiBmb3IgZGF0YXNvdXJjZXMgdGhhdCByZXNvbHZlIGBAbW9kZWxgcyBhbmQgY3VzdG9tIFNRTCBzdGF0ZW1lbnRzIGluIHRoaXMgc2NoZW1hLlxuICAgKiBUaGUgRHluYW1vREIgZnJvbSBDbG91ZEZvcm1hdGlvbiB3aWxsIGJlIHVzZWQgYnkgZGVmYXVsdC5cbiAgICogQHJldHVybnMgYSBmdWxseSBmb3JtZWQgYW1wbGlmeSBncmFwaHFsIGRlZmluaXRpb25cbiAgICovXG4gIHN0YXRpYyBmcm9tU3RyaW5nKFxuICAgIHNjaGVtYTogc3RyaW5nLFxuICAgIGRhdGFTb3VyY2VTdHJhdGVneTogTW9kZWxEYXRhU291cmNlU3RyYXRlZ3kgPSBERUZBVUxUX01PREVMX0RBVEFfU09VUkNFX1NUUkFURUdZLFxuICApOiBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uIHtcbiAgICB2YWxpZGF0ZURhdGFTb3VyY2VTdHJhdGVneShkYXRhU291cmNlU3RyYXRlZ3kpO1xuICAgIHJldHVybiB7XG4gICAgICBzY2hlbWEsXG4gICAgICBmdW5jdGlvblNsb3RzOiBbXSxcbiAgICAgIHJlZmVyZW5jZWRMYW1iZGFGdW5jdGlvbnM6IHt9LFxuICAgICAgZGF0YVNvdXJjZVN0cmF0ZWdpZXM6IGNvbnN0cnVjdERhdGFTb3VyY2VTdHJhdGVnaWVzKHNjaGVtYSwgZGF0YVNvdXJjZVN0cmF0ZWd5KSxcbiAgICAgIGN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzOiBjb25zdHJ1Y3RDdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ2llcyhzY2hlbWEsIGRhdGFTb3VyY2VTdHJhdGVneSksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IG9uZSBvciBtb3JlIGFwcHN5bmMgU2NoZW1hRmlsZSBvYmplY3RzIGludG8gYW4gQW1wbGlmeSBHcmFwaHFsIFNjaGVtYSwgYmluZGluZyB0aGVtIHRvIGEgRHluYW1vREIgZGF0YSBzb3VyY2UuXG4gICAqIEBwYXJhbSBmaWxlUGF0aHMgb25lIG9yIG1vcmUgcGF0aHMgdG8gdGhlIGdyYXBocWwgZmlsZXMgdG8gcHJvY2Vzc1xuICAgKiBAcmV0dXJucyBhIGZ1bGx5IGZvcm1lZCBhbXBsaWZ5IGdyYXBocWwgZGVmaW5pdGlvbiwgd2hvc2UgbW9kZWxzIHdpbGwgYmUgcmVzb2x2ZWQgYnkgRHluYW1vREIgdGFibGVzIGNyZWF0ZWQgZHVyaW5nIGRlcGxveW1lbnQuXG4gICAqL1xuICBzdGF0aWMgZnJvbUZpbGVzKC4uLmZpbGVQYXRoczogc3RyaW5nW10pOiBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZmlsZVBhdGhzKSkge1xuICAgICAgZmlsZVBhdGhzID0gW2ZpbGVQYXRoc107XG4gICAgfVxuICAgIGNvbnN0IHNjaGVtYSA9IGZpbGVQYXRocy5tYXAoKGZpbGVQYXRoKSA9PiBuZXcgU2NoZW1hRmlsZSh7IGZpbGVQYXRoIH0pLmRlZmluaXRpb24pLmpvaW4ob3MuRU9MKTtcbiAgICByZXR1cm4gQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uLmZyb21TdHJpbmcoc2NoZW1hLCBERUZBVUxUX01PREVMX0RBVEFfU09VUkNFX1NUUkFURUdZKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IG9uZSBvciBtb3JlIGFwcHN5bmMgU2NoZW1hRmlsZSBvYmplY3RzIGludG8gYW4gQW1wbGlmeSBHcmFwaHFsIFNjaGVtYVxuICAgKiBAcGFyYW0gZmlsZVBhdGhzIG9uZSBvciBtb3JlIHBhdGhzIHRvIHRoZSBncmFwaHFsIGZpbGVzIHRvIHByb2Nlc3NcbiAgICogQHBhcmFtIGRhdGFTb3VyY2VTdHJhdGVneSB0aGUgcHJvdmlzaW9uaW5nIGRlZmluaXRpb24gZm9yIGRhdGFzb3VyY2VzIHRoYXQgcmVzb2x2ZSBgQG1vZGVsYHMgaW4gdGhpcyBzY2hlbWEuIFRoZSBEeW5hbW9EQiBmcm9tXG4gICAqIENsb3VkRm9ybWF0aW9uIHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0LlxuICAgKiBAcmV0dXJucyBhIGZ1bGx5IGZvcm1lZCBhbXBsaWZ5IGdyYXBocWwgZGVmaW5pdGlvblxuICAgKi9cbiAgc3RhdGljIGZyb21GaWxlc0FuZFN0cmF0ZWd5KFxuICAgIGZpbGVQYXRoczogc3RyaW5nIHwgc3RyaW5nW10sXG4gICAgZGF0YVNvdXJjZVN0cmF0ZWd5OiBNb2RlbERhdGFTb3VyY2VTdHJhdGVneSA9IERFRkFVTFRfTU9ERUxfREFUQV9TT1VSQ0VfU1RSQVRFR1ksXG4gICk6IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShmaWxlUGF0aHMpKSB7XG4gICAgICBmaWxlUGF0aHMgPSBbZmlsZVBhdGhzXTtcbiAgICB9XG4gICAgY29uc3Qgc2NoZW1hID0gZmlsZVBhdGhzLm1hcCgoZmlsZVBhdGgpID0+IG5ldyBTY2hlbWFGaWxlKHsgZmlsZVBhdGggfSkuZGVmaW5pdGlvbikuam9pbihvcy5FT0wpO1xuICAgIHJldHVybiBBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24uZnJvbVN0cmluZyhzY2hlbWEsIGRhdGFTb3VyY2VTdHJhdGVneSk7XG4gIH1cblxuICAvKipcbiAgICogQ29tYmluZXMgbXVsdGlwbGUgSUFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbnMgaW50byBhIHNpbmdsZSBkZWZpbml0aW9uLlxuICAgKiBAcGFyYW0gZGVmaW5pdGlvbnMgdGhlIGRlZmluaXRpb25zIHRvIGNvbWJpbmVcbiAgICovXG4gIHN0YXRpYyBjb21iaW5lKGRlZmluaXRpb25zOiBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uW10pOiBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uIHtcbiAgICBpZiAoZGVmaW5pdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBkZWZpbml0aW9ucyBvZiBhbXBsaWZ5IEdyYXBoUUwgY2Fubm90IGJlIGVtcHR5LicpO1xuICAgIH1cbiAgICBpZiAoZGVmaW5pdGlvbnMubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gZGVmaW5pdGlvbnNbMF07XG4gICAgfVxuXG4gICAgLy8gQSBzdHJhdGVneSB3aWxsIGJlIHByZXNlbnQgbXVsdGlwbGUgdGltZXMgaW4gYSBnaXZlbiBkZWZpbml0aW9uOiBvbmNlIHBlciBtb2RlbC4gV2UnbGwgY3JlYXRlIGEgdW5pcXVlIGxpc3QgcGVyIGRlZmluaXRpb24gdG8gZW5zdXJlXG4gICAgLy8gbm8gcmV1c2UgYWNyb3NzIGRlZmluaXRpb25zLlxuICAgIGxldCBjb21iaW5lZFN0cmF0ZWd5TmFtZXM6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChjb25zdCBkZWZpbml0aW9uIG9mIGRlZmluaXRpb25zKSB7XG4gICAgICBjb25zdCBkZWZpbml0aW9uU3RyYXRlZ3lOYW1lcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgZm9yIChjb25zdCBzdHJhdGVneSBvZiBPYmplY3QudmFsdWVzKGRlZmluaXRpb24uZGF0YVNvdXJjZVN0cmF0ZWdpZXMpKSB7XG4gICAgICAgIGlmICghaXNTcWxTdHJhdGVneShzdHJhdGVneSkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdHJhdGVneU5hbWUgPSBzdHJhdGVneS5uYW1lO1xuICAgICAgICBpZiAoY29tYmluZWRTdHJhdGVneU5hbWVzLmluY2x1ZGVzKHN0cmF0ZWd5TmFtZSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgVGhlIFNRTC1iYXNlZCBNb2RlbERhdGFTb3VyY2VTdHJhdGVneSAnJHtzdHJhdGVneU5hbWV9JyB3YXMgZm91bmQgaW4gbXVsdGlwbGUgZGVmaW5pdGlvbnMsIGJ1dCBhIHN0cmF0ZWd5IG5hbWUgY2Fubm90IGJlIGAgK1xuICAgICAgICAgICAgICBcInNoYXJlZCBiZXR3ZWVuIGRlZmluaXRpb25zLiBUbyBzcGVjaWZ5IGEgU1FMLWJhc2VkIEFQSSB3aXRoIHNjaGVtYXMgYWNyb3NzIG11bHRpcGxlIGZpbGVzLCB1c2UgJ2Zyb21GaWxlc0FuZFN0cmF0ZWd5J1wiLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgZGVmaW5pdGlvblN0cmF0ZWd5TmFtZXMuYWRkKHN0cmF0ZWd5TmFtZSk7XG4gICAgICB9XG4gICAgICBjb21iaW5lZFN0cmF0ZWd5TmFtZXMgPSBbLi4uY29tYmluZWRTdHJhdGVneU5hbWVzLCAuLi5kZWZpbml0aW9uU3RyYXRlZ3lOYW1lc107XG4gICAgfVxuXG4gICAgY29uc3QgY3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXMgPSBkZWZpbml0aW9ucy5yZWR1Y2UoXG4gICAgICAoYWNjLCBjdXIpID0+IFsuLi5hY2MsIC4uLihjdXIuY3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXMgPz8gW10pXSxcbiAgICAgIFtdIGFzIEN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVneVtdLFxuICAgICk7XG5cbiAgICBjb25zdCBtZXJnZWRTY2hlbWEgPSBzY2hlbWFCeU1lcmdpbmdEZWZpbml0aW9ucyhkZWZpbml0aW9ucyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2NoZW1hOiBtZXJnZWRTY2hlbWEsXG4gICAgICBmdW5jdGlvblNsb3RzOiBbXSxcbiAgICAgIHJlZmVyZW5jZWRMYW1iZGFGdW5jdGlvbnM6IGRlZmluaXRpb25zLnJlZHVjZSgoYWNjLCBjdXIpID0+ICh7IC4uLmFjYywgLi4uY3VyLnJlZmVyZW5jZWRMYW1iZGFGdW5jdGlvbnMgfSksIHt9KSxcbiAgICAgIGRhdGFTb3VyY2VTdHJhdGVnaWVzOiBkZWZpbml0aW9ucy5yZWR1Y2UoKGFjYywgY3VyKSA9PiAoeyAuLi5hY2MsIC4uLmN1ci5kYXRhU291cmNlU3RyYXRlZ2llcyB9KSwge30pLFxuICAgICAgY3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXMsXG4gICAgfTtcbiAgfVxufVxuIl19
104
+ AmplifyGraphqlDefinition[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition", version: "1.11.0" };
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1ncmFwaHFsLWRlZmluaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYW1wbGlmeS1ncmFwaHFsLWRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIseURBQXFEO0FBQ3JELG9GQUFzRTtBQUV0RSx5Q0FBMkQ7QUFFM0Qsc0VBSXVDO0FBRTFCLFFBQUEsa0NBQWtDLEdBQTRCO0lBQ3pFLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLGlCQUFpQixFQUFFLFNBQVM7Q0FDN0IsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBYSx3QkFBd0I7SUFDbkM7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FDZixNQUFjLEVBQ2QscUJBQThDLDBDQUFrQztRQUVoRixJQUFBLCtDQUEwQixFQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDL0MsT0FBTztZQUNMLE1BQU07WUFDTixhQUFhLEVBQUUsRUFBRTtZQUNqQix5QkFBeUIsRUFBRSxFQUFFO1lBQzdCLG9CQUFvQixFQUFFLElBQUEsd0NBQTZCLEVBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDO1lBQy9FLDZCQUE2QixFQUFFLElBQUEsMkRBQXNDLEVBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDO1NBQ2xHLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFtQjtRQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzlCLFNBQVMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLHdCQUFVLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUks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QUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLG9CQUFvQixFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDckcsNkJBQTZCO1NBQzlCLENBQUM7SUFDSixDQUFDOztBQXBHSCw0REFxR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgeyBTY2hlbWFGaWxlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWFwcHN5bmMnO1xuaW1wb3J0IHsgaXNTcWxTdHJhdGVneSB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9ncmFwaHFsLXRyYW5zZm9ybWVyLWNvcmUnO1xuaW1wb3J0IHsgSUFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgY29uc3RydWN0RGF0YVNvdXJjZVN0cmF0ZWdpZXMgfSBmcm9tICcuL2ludGVybmFsJztcbmltcG9ydCB7IEN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVneSwgTW9kZWxEYXRhU291cmNlU3RyYXRlZ3kgfSBmcm9tICcuL21vZGVsLWRhdGFzb3VyY2Utc3RyYXRlZ3ktdHlwZXMnO1xuaW1wb3J0IHtcbiAgY29uc3RydWN0Q3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXMsXG4gIHNjaGVtYUJ5TWVyZ2luZ0RlZmluaXRpb25zLFxuICB2YWxpZGF0ZURhdGFTb3VyY2VTdHJhdGVneSxcbn0gZnJvbSAnLi9pbnRlcm5hbC9kYXRhLXNvdXJjZS1jb25maWcnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9NT0RFTF9EQVRBX1NPVVJDRV9TVFJBVEVHWTogTW9kZWxEYXRhU291cmNlU3RyYXRlZ3kgPSB7XG4gIGRiVHlwZTogJ0RZTkFNT0RCJyxcbiAgcHJvdmlzaW9uU3RyYXRlZ3k6ICdERUZBVUxUJyxcbn07XG5cbi8qKlxuICogQ2xhc3MgZXhwb3NpbmcgdXRpbGl0aWVzIHRvIHByb2R1Y2UgSUFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbiBvYmplY3RzIGdpdmVuIHZhcmlvdXMgaW5wdXRzLlxuICovXG5leHBvcnQgY2xhc3MgQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uIHtcbiAgLyoqXG4gICAqIFByb2R1Y2UgYSBzY2hlbWEgZGVmaW5pdGlvbiBmcm9tIGEgc3RyaW5nIGlucHV0LlxuICAgKiBAcGFyYW0gc2NoZW1hIHRoZSBncmFwaHFsIGlucHV0IGFzIGEgc3RyaW5nXG4gICAqIEBwYXJhbSBkYXRhU291cmNlU3RyYXRlZ3kgdGhlIHByb3Zpc2lvbmluZyBkZWZpbml0aW9uIGZvciBkYXRhc291cmNlcyB0aGF0IHJlc29sdmUgYEBtb2RlbGBzIGFuZCBjdXN0b20gU1FMIHN0YXRlbWVudHMgaW4gdGhpcyBzY2hlbWEuXG4gICAqIFRoZSBEeW5hbW9EQiBmcm9tIENsb3VkRm9ybWF0aW9uIHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0LlxuICAgKiBAcmV0dXJucyBhIGZ1bGx5IGZvcm1lZCBhbXBsaWZ5IGdyYXBocWwgZGVmaW5pdGlvblxuICAgKi9cbiAgc3RhdGljIGZyb21TdHJpbmcoXG4gICAgc2NoZW1hOiBzdHJpbmcsXG4gICAgZGF0YVNvdXJjZVN0cmF0ZWd5OiBNb2RlbERhdGFTb3VyY2VTdHJhdGVneSA9IERFRkFVTFRfTU9ERUxfREFUQV9TT1VSQ0VfU1RSQVRFR1ksXG4gICk6IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24ge1xuICAgIHZhbGlkYXRlRGF0YVNvdXJjZVN0cmF0ZWd5KGRhdGFTb3VyY2VTdHJhdGVneSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjaGVtYSxcbiAgICAgIGZ1bmN0aW9uU2xvdHM6IFtdLFxuICAgICAgcmVmZXJlbmNlZExhbWJkYUZ1bmN0aW9uczoge30sXG4gICAgICBkYXRhU291cmNlU3RyYXRlZ2llczogY29uc3RydWN0RGF0YVNvdXJjZVN0cmF0ZWdpZXMoc2NoZW1hLCBkYXRhU291cmNlU3RyYXRlZ3kpLFxuICAgICAgY3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXM6IGNvbnN0cnVjdEN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzKHNjaGVtYSwgZGF0YVNvdXJjZVN0cmF0ZWd5KSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgb25lIG9yIG1vcmUgYXBwc3luYyBTY2hlbWFGaWxlIG9iamVjdHMgaW50byBhbiBBbXBsaWZ5IEdyYXBocWwgU2NoZW1hLCBiaW5kaW5nIHRoZW0gdG8gYSBEeW5hbW9EQiBkYXRhIHNvdXJjZS5cbiAgICogQHBhcmFtIGZpbGVQYXRocyBvbmUgb3IgbW9yZSBwYXRocyB0byB0aGUgZ3JhcGhxbCBmaWxlcyB0byBwcm9jZXNzXG4gICAqIEByZXR1cm5zIGEgZnVsbHkgZm9ybWVkIGFtcGxpZnkgZ3JhcGhxbCBkZWZpbml0aW9uLCB3aG9zZSBtb2RlbHMgd2lsbCBiZSByZXNvbHZlZCBieSBEeW5hbW9EQiB0YWJsZXMgY3JlYXRlZCBkdXJpbmcgZGVwbG95bWVudC5cbiAgICovXG4gIHN0YXRpYyBmcm9tRmlsZXMoLi4uZmlsZVBhdGhzOiBzdHJpbmdbXSk6IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShmaWxlUGF0aHMpKSB7XG4gICAgICBmaWxlUGF0aHMgPSBbZmlsZVBhdGhzXTtcbiAgICB9XG4gICAgY29uc3Qgc2NoZW1hID0gZmlsZVBhdGhzLm1hcCgoZmlsZVBhdGgpID0+IG5ldyBTY2hlbWFGaWxlKHsgZmlsZVBhdGggfSkuZGVmaW5pdGlvbikuam9pbihvcy5FT0wpO1xuICAgIHJldHVybiBBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24uZnJvbVN0cmluZyhzY2hlbWEsIERFRkFVTFRfTU9ERUxfREFUQV9TT1VSQ0VfU1RSQVRFR1kpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgb25lIG9yIG1vcmUgYXBwc3luYyBTY2hlbWFGaWxlIG9iamVjdHMgaW50byBhbiBBbXBsaWZ5IEdyYXBocWwgU2NoZW1hXG4gICAqIEBwYXJhbSBmaWxlUGF0aHMgb25lIG9yIG1vcmUgcGF0aHMgdG8gdGhlIGdyYXBocWwgZmlsZXMgdG8gcHJvY2Vzc1xuICAgKiBAcGFyYW0gZGF0YVNvdXJjZVN0cmF0ZWd5IHRoZSBwcm92aXNpb25pbmcgZGVmaW5pdGlvbiBmb3IgZGF0YXNvdXJjZXMgdGhhdCByZXNvbHZlIGBAbW9kZWxgcyBpbiB0aGlzIHNjaGVtYS4gVGhlIER5bmFtb0RCIGZyb21cbiAgICogQ2xvdWRGb3JtYXRpb24gd2lsbCBiZSB1c2VkIGJ5IGRlZmF1bHQuXG4gICAqIEByZXR1cm5zIGEgZnVsbHkgZm9ybWVkIGFtcGxpZnkgZ3JhcGhxbCBkZWZpbml0aW9uXG4gICAqL1xuICBzdGF0aWMgZnJvbUZpbGVzQW5kU3RyYXRlZ3koXG4gICAgZmlsZVBhdGhzOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgICBkYXRhU291cmNlU3RyYXRlZ3k6IE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5ID0gREVGQVVMVF9NT0RFTF9EQVRBX1NPVVJDRV9TVFJBVEVHWSxcbiAgKTogSUFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGZpbGVQYXRocykpIHtcbiAgICAgIGZpbGVQYXRocyA9IFtmaWxlUGF0aHNdO1xuICAgIH1cbiAgICBjb25zdCBzY2hlbWEgPSBmaWxlUGF0aHMubWFwKChmaWxlUGF0aCkgPT4gbmV3IFNjaGVtYUZpbGUoeyBmaWxlUGF0aCB9KS5kZWZpbml0aW9uKS5qb2luKG9zLkVPTCk7XG4gICAgcmV0dXJuIEFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbi5mcm9tU3RyaW5nKHNjaGVtYSwgZGF0YVNvdXJjZVN0cmF0ZWd5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21iaW5lcyBtdWx0aXBsZSBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9ucyBpbnRvIGEgc2luZ2xlIGRlZmluaXRpb24uXG4gICAqIEBwYXJhbSBkZWZpbml0aW9ucyB0aGUgZGVmaW5pdGlvbnMgdG8gY29tYmluZVxuICAgKi9cbiAgc3RhdGljIGNvbWJpbmUoZGVmaW5pdGlvbnM6IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb25bXSk6IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24ge1xuICAgIGlmIChkZWZpbml0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGRlZmluaXRpb25zIG9mIGFtcGxpZnkgR3JhcGhRTCBjYW5ub3QgYmUgZW1wdHkuJyk7XG4gICAgfVxuICAgIGlmIChkZWZpbml0aW9ucy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiBkZWZpbml0aW9uc1swXTtcbiAgICB9XG5cbiAgICAvLyBBIHN0cmF0ZWd5IHdpbGwgYmUgcHJlc2VudCBtdWx0aXBsZSB0aW1lcyBpbiBhIGdpdmVuIGRlZmluaXRpb246IG9uY2UgcGVyIG1vZGVsLiBXZSdsbCBjcmVhdGUgYSB1bmlxdWUgbGlzdCBwZXIgZGVmaW5pdGlvbiB0byBlbnN1cmVcbiAgICAvLyBubyByZXVzZSBhY3Jvc3MgZGVmaW5pdGlvbnMuXG4gICAgbGV0IGNvbWJpbmVkU3RyYXRlZ3lOYW1lczogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGRlZmluaXRpb24gb2YgZGVmaW5pdGlvbnMpIHtcbiAgICAgIGNvbnN0IGRlZmluaXRpb25TdHJhdGVneU5hbWVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgICBmb3IgKGNvbnN0IHN0cmF0ZWd5IG9mIE9iamVjdC52YWx1ZXMoZGVmaW5pdGlvbi5kYXRhU291cmNlU3RyYXRlZ2llcykpIHtcbiAgICAgICAgaWYgKCFpc1NxbFN0cmF0ZWd5KHN0cmF0ZWd5KSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0cmF0ZWd5TmFtZSA9IHN0cmF0ZWd5Lm5hbWU7XG4gICAgICAgIGlmIChjb21iaW5lZFN0cmF0ZWd5TmFtZXMuaW5jbHVkZXMoc3RyYXRlZ3lOYW1lKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBUaGUgU1FMLWJhc2VkIE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5ICcke3N0cmF0ZWd5TmFtZX0nIHdhcyBmb3VuZCBpbiBtdWx0aXBsZSBkZWZpbml0aW9ucywgYnV0IGEgc3RyYXRlZ3kgbmFtZSBjYW5ub3QgYmUgYCArXG4gICAgICAgICAgICAgIFwic2hhcmVkIGJldHdlZW4gZGVmaW5pdGlvbnMuIFRvIHNwZWNpZnkgYSBTUUwtYmFzZWQgQVBJIHdpdGggc2NoZW1hcyBhY3Jvc3MgbXVsdGlwbGUgZmlsZXMsIHVzZSAnZnJvbUZpbGVzQW5kU3RyYXRlZ3knXCIsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBkZWZpbml0aW9uU3RyYXRlZ3lOYW1lcy5hZGQoc3RyYXRlZ3lOYW1lKTtcbiAgICAgIH1cbiAgICAgIGNvbWJpbmVkU3RyYXRlZ3lOYW1lcyA9IFsuLi5jb21iaW5lZFN0cmF0ZWd5TmFtZXMsIC4uLmRlZmluaXRpb25TdHJhdGVneU5hbWVzXTtcbiAgICB9XG5cbiAgICBjb25zdCBjdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ2llcyA9IGRlZmluaXRpb25zLnJlZHVjZShcbiAgICAgIChhY2MsIGN1cikgPT4gWy4uLmFjYywgLi4uKGN1ci5jdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ2llcyA/PyBbXSldLFxuICAgICAgW10gYXMgQ3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWd5W10sXG4gICAgKTtcblxuICAgIGNvbnN0IG1lcmdlZFNjaGVtYSA9IHNjaGVtYUJ5TWVyZ2luZ0RlZmluaXRpb25zKGRlZmluaXRpb25zKTtcblxuICAgIHJldHVybiB7XG4gICAgICBzY2hlbWE6IG1lcmdlZFNjaGVtYSxcbiAgICAgIGZ1bmN0aW9uU2xvdHM6IFtdLFxuICAgICAgcmVmZXJlbmNlZExhbWJkYUZ1bmN0aW9uczogZGVmaW5pdGlvbnMucmVkdWNlKChhY2MsIGN1cikgPT4gKHsgLi4uYWNjLCAuLi5jdXIucmVmZXJlbmNlZExhbWJkYUZ1bmN0aW9ucyB9KSwge30pLFxuICAgICAgZGF0YVNvdXJjZVN0cmF0ZWdpZXM6IGRlZmluaXRpb25zLnJlZHVjZSgoYWNjLCBjdXIpID0+ICh7IC4uLmFjYywgLi4uY3VyLmRhdGFTb3VyY2VTdHJhdGVnaWVzIH0pLCB7fSksXG4gICAgICBjdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ2llcyxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -55,4 +55,4 @@ class AssetProvider {
55
55
  }
56
56
  }
57
57
  exports.AssetProvider = AssetProvider;
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvYXNzZXQtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUU3QixtQ0FBbUM7QUFDbkMsNkRBQWtEO0FBR2xELE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUFDO0FBQ3pDLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQztBQUNwQyxNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUM7QUFFcEM7Ozs7OztHQU1HO0FBQ0gsTUFBYSxhQUFhO0lBSXhCLFlBQVksS0FBZ0I7UUFGWixtQkFBYyxHQUEyQixFQUFFLENBQUM7UUFHMUQsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLFdBQVcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLE9BQU8sQ0FBQyxVQUFxQixFQUFFLE9BQWUsRUFBRSxVQUFzQjtRQUMzRSxPQUFPLElBQUkscUJBQUssQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFTyxRQUFRLENBQUMsUUFBZ0IsRUFBRSxRQUFnQjtRQUNqRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUM3RyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDeEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMvQixFQUFFLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ2hEO1FBQ0QsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUM3QyxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRU8sb0JBQW9CLENBQUMsUUFBZ0I7UUFDM0MsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxRQUFnQjtRQUMxQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDM0QsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ3hDLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsUUFBUSxDQUFDO1NBQ2xEO0lBQ0gsQ0FBQztDQUNGO0FBN0NELHNDQTZDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBBc3NldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1hc3NldHMnO1xuaW1wb3J0IHsgQXNzZXRQcm9wcywgUzNBc3NldCwgQXNzZXRQcm92aWRlciBhcyBBc3NldFByb3ZpZGVySW50ZXJmYWNlIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2dyYXBocWwtdHJhbnNmb3JtZXItaW50ZXJmYWNlcyc7XG5cbmNvbnN0IFRFTVBfUFJFRklYID0gJ3RyYW5zZm9ybWVyLWFzc2V0cyc7XG5jb25zdCBGVU5DVElPTl9QUkVGSVggPSAnZnVuY3Rpb25zJztcbmNvbnN0IFJFU09MVkVSX1BSRUZJWCA9ICdyZXNvbHZlcnMnO1xuXG4vKipcbiAqIFRoZSBhc3NldCBwcm92aWRlciBicmlkZ2VzIHRoZSBnYXAgYmV0d2VlbiBjcmVhdGlvbiBvZiBmaWxlIGFzc2V0cyBpbiB0aGUgdHJhbnNmb3JtZXIgKHdoaWNoIHByb3ZpZGUgYSBuYW1lK2NvbnRlbnRzIHR1cGxlKVxuICogd2l0aCB0aGUgcGF0aCBtZXRob2Qgd2hpY2ggaXMgdXNlZCBpbiBDREsuXG4gKiBUaGUgQ0RLIFMzIGFzc2V0IHJlcXVpcmUgdGhlIGNvbnRlbnRzIHRvIGJlIHdyaXR0ZW4gdG8gdGhlIGZpbGUgc3lzdGVtIGZpcnN0LlxuICogVGhlIGFzc2V0IHByb3ZpZGVyIHdyaXRlcyB0byBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgYmVmb3JlIGNyZWF0aW5nIHRoZSBDREsgUzMgYXNzZXQuXG4gKlxuICovXG5leHBvcnQgY2xhc3MgQXNzZXRQcm92aWRlciBpbXBsZW1lbnRzIEFzc2V0UHJvdmlkZXJJbnRlcmZhY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHRlbXBBc3NldERpcjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzb2x2ZXJBc3NldHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0KSB7XG4gICAgdGhpcy50ZW1wQXNzZXREaXIgPSBjZGsuRmlsZVN5c3RlbS5ta2R0ZW1wKGAke1RFTVBfUFJFRklYfS0ke3Njb3BlLm5vZGUuYWRkcn1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IENESyBTMyBhc3NldC4gVGhlIGZpbGUgY29udGVudHMgaW4gYXNzZXRQcm9wcyBpcyBmaXJzdCBzdG9yZWQgaW4gYSB0ZW1wb3JhcnkgZmlsZSB0aGF0IGlzIHJlZmVyZW5jZWQgYnkgdGhlIENESyBTMyBhc3NldC5cbiAgICogQHBhcmFtIGFzc2V0U2NvcGUgdGhlIHBhcmVudCBvZiB0aGUgYXNzZXRcbiAgICogQHBhcmFtIGFzc2V0SWQgdW5pcXVlIElEIGZvciBDREsgUzMgYXNzZXRcbiAgICogQHBhcmFtIGFzc2V0UHJvcHMgbmFtZSBhbmQgY29udGVudHMgb2YgZmlsZSB0byBiZSBhZGRlZCB0byBDREsgUzMgYXNzZXRcbiAgICogQHJldHVybnMgdGhlIENESyBTMyBhc3NldFxuICAgKi9cbiAgcHVibGljIHByb3ZpZGUoYXNzZXRTY29wZTogQ29uc3RydWN0LCBhc3NldElkOiBzdHJpbmcsIGFzc2V0UHJvcHM6IEFzc2V0UHJvcHMpOiBTM0Fzc2V0IHtcbiAgICByZXR1cm4gbmV3IEFzc2V0KGFzc2V0U2NvcGUsIGFzc2V0SWQsIHsgcGF0aDogdGhpcy5hZGRBc3NldChhc3NldFByb3BzLmZpbGVOYW1lLCBhc3NldFByb3BzLmZpbGVDb250ZW50KSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkQXNzZXQoZmlsZU5hbWU6IHN0cmluZywgY29udGVudHM6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdGhpcy50cmFja1Jlc29sdmVyQXNzZXQoZmlsZU5hbWUsIGNvbnRlbnRzKTtcbiAgICBjb25zdCB3cml0YWJsZUNvbnRlbnRzID0gdGhpcy5pc0NvbnRlbnRzQVJlZmVyZW5jZShmaWxlTmFtZSkgPyB0aGlzLmRlcmVmZXJlbmNlQ29udGVudHMoY29udGVudHMpIDogY29udGVudHM7XG4gICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4odGhpcy50ZW1wQXNzZXREaXIsIGZpbGVOYW1lKTtcbiAgICBjb25zdCBmaWxlRGlyTmFtZSA9IHBhdGguZGlybmFtZShmaWxlUGF0aCk7XG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKGZpbGVEaXJOYW1lKSkge1xuICAgICAgZnMubWtkaXJTeW5jKGZpbGVEaXJOYW1lLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICB9XG4gICAgZnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgd3JpdGFibGVDb250ZW50cyk7XG4gICAgcmV0dXJuIGZpbGVQYXRoO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0NvbnRlbnRzQVJlZmVyZW5jZShmaWxlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZpbGVOYW1lLnN0YXJ0c1dpdGgoRlVOQ1RJT05fUFJFRklYKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVyZWZlcmVuY2VDb250ZW50cyhjb250ZW50czogc3RyaW5nKTogQnVmZmVyIHtcbiAgICByZXR1cm4gZnMucmVhZEZpbGVTeW5jKGNvbnRlbnRzKTtcbiAgfVxuXG4gIHByaXZhdGUgdHJhY2tSZXNvbHZlckFzc2V0KGZpbGVOYW1lOiBzdHJpbmcsIGNvbnRlbnRzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoZmlsZU5hbWUuc3RhcnRzV2l0aChSRVNPTFZFUl9QUkVGSVgpKSB7XG4gICAgICBjb25zdCByZXNvbHZlckZpbGVOYW1lID0gZmlsZU5hbWUuc3BsaXQoJy8nKVsxXTtcbiAgICAgIHRoaXMucmVzb2x2ZXJBc3NldHNbcmVzb2x2ZXJGaWxlTmFtZV0gPSBjb250ZW50cztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvYXNzZXQtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUU3QixtQ0FBbUM7QUFDbkMsNkRBQWtEO0FBR2xELE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUFDO0FBQ3pDLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQztBQUNwQyxNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUM7QUFFcEM7Ozs7OztHQU1HO0FBQ0gsTUFBYSxhQUFhO0lBSXhCLFlBQVksS0FBZ0I7UUFGWixtQkFBYyxHQUEyQixFQUFFLENBQUM7UUFHMUQsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLFdBQVcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLE9BQU8sQ0FBQyxVQUFxQixFQUFFLE9BQWUsRUFBRSxVQUFzQjtRQUMzRSxPQUFPLElBQUkscUJBQUssQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFTyxRQUFRLENBQUMsUUFBZ0IsRUFBRSxRQUFnQjtRQUNqRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUM3RyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDeEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2hDLEVBQUUsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUNELEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDN0MsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVPLG9CQUFvQixDQUFDLFFBQWdCO1FBQzNDLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU8sbUJBQW1CLENBQUMsUUFBZ0I7UUFDMUMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxRQUFnQixFQUFFLFFBQWdCO1FBQzNELElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUE3Q0Qsc0NBNkNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEFzc2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgeyBBc3NldFByb3BzLCBTM0Fzc2V0LCBBc3NldFByb3ZpZGVyIGFzIEFzc2V0UHJvdmlkZXJJbnRlcmZhY2UgfSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lci1pbnRlcmZhY2VzJztcblxuY29uc3QgVEVNUF9QUkVGSVggPSAndHJhbnNmb3JtZXItYXNzZXRzJztcbmNvbnN0IEZVTkNUSU9OX1BSRUZJWCA9ICdmdW5jdGlvbnMnO1xuY29uc3QgUkVTT0xWRVJfUFJFRklYID0gJ3Jlc29sdmVycyc7XG5cbi8qKlxuICogVGhlIGFzc2V0IHByb3ZpZGVyIGJyaWRnZXMgdGhlIGdhcCBiZXR3ZWVuIGNyZWF0aW9uIG9mIGZpbGUgYXNzZXRzIGluIHRoZSB0cmFuc2Zvcm1lciAod2hpY2ggcHJvdmlkZSBhIG5hbWUrY29udGVudHMgdHVwbGUpXG4gKiB3aXRoIHRoZSBwYXRoIG1ldGhvZCB3aGljaCBpcyB1c2VkIGluIENESy5cbiAqIFRoZSBDREsgUzMgYXNzZXQgcmVxdWlyZSB0aGUgY29udGVudHMgdG8gYmUgd3JpdHRlbiB0byB0aGUgZmlsZSBzeXN0ZW0gZmlyc3QuXG4gKiBUaGUgYXNzZXQgcHJvdmlkZXIgd3JpdGVzIHRvIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBiZWZvcmUgY3JlYXRpbmcgdGhlIENESyBTMyBhc3NldC5cbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBBc3NldFByb3ZpZGVyIGltcGxlbWVudHMgQXNzZXRQcm92aWRlckludGVyZmFjZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGVtcEFzc2V0RGlyOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSByZXNvbHZlckFzc2V0czogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QpIHtcbiAgICB0aGlzLnRlbXBBc3NldERpciA9IGNkay5GaWxlU3lzdGVtLm1rZHRlbXAoYCR7VEVNUF9QUkVGSVh9LSR7c2NvcGUubm9kZS5hZGRyfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQ0RLIFMzIGFzc2V0LiBUaGUgZmlsZSBjb250ZW50cyBpbiBhc3NldFByb3BzIGlzIGZpcnN0IHN0b3JlZCBpbiBhIHRlbXBvcmFyeSBmaWxlIHRoYXQgaXMgcmVmZXJlbmNlZCBieSB0aGUgQ0RLIFMzIGFzc2V0LlxuICAgKiBAcGFyYW0gYXNzZXRTY29wZSB0aGUgcGFyZW50IG9mIHRoZSBhc3NldFxuICAgKiBAcGFyYW0gYXNzZXRJZCB1bmlxdWUgSUQgZm9yIENESyBTMyBhc3NldFxuICAgKiBAcGFyYW0gYXNzZXRQcm9wcyBuYW1lIGFuZCBjb250ZW50cyBvZiBmaWxlIHRvIGJlIGFkZGVkIHRvIENESyBTMyBhc3NldFxuICAgKiBAcmV0dXJucyB0aGUgQ0RLIFMzIGFzc2V0XG4gICAqL1xuICBwdWJsaWMgcHJvdmlkZShhc3NldFNjb3BlOiBDb25zdHJ1Y3QsIGFzc2V0SWQ6IHN0cmluZywgYXNzZXRQcm9wczogQXNzZXRQcm9wcyk6IFMzQXNzZXQge1xuICAgIHJldHVybiBuZXcgQXNzZXQoYXNzZXRTY29wZSwgYXNzZXRJZCwgeyBwYXRoOiB0aGlzLmFkZEFzc2V0KGFzc2V0UHJvcHMuZmlsZU5hbWUsIGFzc2V0UHJvcHMuZmlsZUNvbnRlbnQpIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRBc3NldChmaWxlTmFtZTogc3RyaW5nLCBjb250ZW50czogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB0aGlzLnRyYWNrUmVzb2x2ZXJBc3NldChmaWxlTmFtZSwgY29udGVudHMpO1xuICAgIGNvbnN0IHdyaXRhYmxlQ29udGVudHMgPSB0aGlzLmlzQ29udGVudHNBUmVmZXJlbmNlKGZpbGVOYW1lKSA/IHRoaXMuZGVyZWZlcmVuY2VDb250ZW50cyhjb250ZW50cykgOiBjb250ZW50cztcbiAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbih0aGlzLnRlbXBBc3NldERpciwgZmlsZU5hbWUpO1xuICAgIGNvbnN0IGZpbGVEaXJOYW1lID0gcGF0aC5kaXJuYW1lKGZpbGVQYXRoKTtcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZmlsZURpck5hbWUpKSB7XG4gICAgICBmcy5ta2RpclN5bmMoZmlsZURpck5hbWUsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIH1cbiAgICBmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCB3cml0YWJsZUNvbnRlbnRzKTtcbiAgICByZXR1cm4gZmlsZVBhdGg7XG4gIH1cblxuICBwcml2YXRlIGlzQ29udGVudHNBUmVmZXJlbmNlKGZpbGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmlsZU5hbWUuc3RhcnRzV2l0aChGVU5DVElPTl9QUkVGSVgpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXJlZmVyZW5jZUNvbnRlbnRzKGNvbnRlbnRzOiBzdHJpbmcpOiBCdWZmZXIge1xuICAgIHJldHVybiBmcy5yZWFkRmlsZVN5bmMoY29udGVudHMpO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFja1Jlc29sdmVyQXNzZXQoZmlsZU5hbWU6IHN0cmluZywgY29udGVudHM6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChmaWxlTmFtZS5zdGFydHNXaXRoKFJFU09MVkVSX1BSRUZJWCkpIHtcbiAgICAgIGNvbnN0IHJlc29sdmVyRmlsZU5hbWUgPSBmaWxlTmFtZS5zcGxpdCgnLycpWzFdO1xuICAgICAgdGhpcy5yZXNvbHZlckFzc2V0c1tyZXNvbHZlckZpbGVOYW1lXSA9IGNvbnRlbnRzO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -180,4 +180,4 @@ const getSynthParameters = (authModes) => ({
180
180
  }
181
181
  : {}),
182
182
  });
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi1tb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcm5hbC9hdXRob3JpemF0aW9uLW1vZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLG1DQUFpQztBQUNqQyxpREFBOEQ7QUFnQjlEOzs7Ozs7Ozs7R0FTRztBQUNJLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxrQkFBc0MsRUFBUSxFQUFFO0lBQ3pGLE1BQU0sbUNBQW1DLEdBQ3ZDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxxQkFBcUI7UUFDbkQsa0JBQWtCLENBQUMsU0FBUyxFQUFFLHVCQUF1QjtRQUNyRCxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDO0lBQy9DLE1BQU0sb0NBQW9DLEdBQ3hDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxxQkFBcUI7UUFDbkQsa0JBQWtCLENBQUMsU0FBUyxFQUFFLHVCQUF1QjtRQUNyRCxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDO0lBQy9DLE1BQU0sd0JBQXdCLEdBQzVCLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxxQkFBcUI7UUFDbkQsa0JBQWtCLENBQUMsU0FBUyxFQUFFLHVCQUF1QjtRQUNyRCxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsY0FBYztRQUM1QyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCO1FBQzlDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztJQUNoQyxNQUFNLDBCQUEwQixHQUM5QixPQUFPLGtCQUFrQixDQUFDLFNBQVMsRUFBRSwwQkFBMEIsS0FBSyxXQUFXLElBQUksa0JBQWtCLENBQUMsa0JBQWtCLENBQUM7SUFFM0gsSUFBSSx3QkFBd0IsSUFBSSwwQkFBMEIsRUFBRTtRQUMxRCxNQUFNLElBQUksS0FBSyxDQUNiLHNEQUFzRDtZQUNwRCxpSUFBaUksQ0FDcEksQ0FBQztLQUNIO0lBRUQsSUFBSSxtQ0FBbUMsSUFBSSxDQUFDLG9DQUFvQyxFQUFF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QUFDLGtCQUFrQixFQUFFLGNBQWMsSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFLGNBQWM7SUFDbkcsZUFBZSxFQUFFLFNBQVMsQ0FBQyxTQUFTLEVBQUUsMEJBQTBCO0lBQ2hFLEdBQUcsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2pHLEdBQUcsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCO1FBQy9CLENBQUMsQ0FBQztZQUNFLHlCQUF5QixFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRO1lBQ3RGLDJCQUEyQixFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRO1NBQzNGO1FBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNQLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxJQUFJLFNBQVMsRUFBRSxTQUFTLENBQUMscUJBQXFCLElBQUksU0FBUyxFQUFFLFNBQVMsQ0FBQyx1QkFBdUI7UUFDcEgsQ0FBQyxDQUFDO1lBQ0UseUJBQXlCLEVBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxRQUFRO1lBQzlFLDJCQUEyQixFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsdUJBQXVCLEVBQUUsUUFBUTtTQUNuRjtRQUNILENBQUMsQ0FBQyxFQUFFLENBQUM7Q0FDUixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBTeW5jQXV0aENvbmZpZ3VyYXRpb24sIEFwcFN5bmNBdXRoQ29uZmlndXJhdGlvbkVudHJ5LCBTeW50aFBhcmFtZXRlcnMgfSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lci1pbnRlcmZhY2VzJztcbmltcG9ydCB7IENmbkdyYXBoUUxBcGkgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBwc3luYyc7XG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IElSb2xlLCBTZXJ2aWNlUHJpbmNpcGFsIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQge1xuICBBdXRob3JpemF0aW9uTW9kZXMsXG4gIEFwaUtleUF1dGhvcml6YXRpb25Db25maWcsXG4gIExhbWJkYUF1dGhvcml6YXRpb25Db25maWcsXG4gIE9JRENBdXRob3JpemF0aW9uQ29uZmlnLFxuICBVc2VyUG9vbEF1dGhvcml6YXRpb25Db25maWcsXG59IGZyb20gJy4uL3R5cGVzJztcblxudHlwZSBBdXRob3JpemF0aW9uQ29uZmlnTW9kZSA9XG4gIHwgeyB0eXBlOiAnQVdTX0lBTScgfVxuICB8IChVc2VyUG9vbEF1dGhvcml6YXRpb25Db25maWcgJiB7IHR5cGU6ICdBTUFaT05fQ09HTklUT19VU0VSX1BPT0xTJyB9KVxuICB8IChPSURDQXV0aG9yaXphdGlvbkNvbmZpZyAmIHsgdHlwZTogJ09QRU5JRF9DT05ORUNUJyB9KVxuICB8IChBcGlLZXlBdXRob3JpemF0aW9uQ29uZmlnICYgeyB0eXBlOiAnQVBJX0tFWScgfSlcbiAgfCAoTGFtYmRhQXV0aG9yaXphdGlvbkNvbmZpZyAmIHsgdHlwZTogJ0FXU19MQU1CREEnIH0pO1xuXG4vKipcbiAqIFZhbGlkYXRlcyBhdXRob3JpemF0aW9uIG1vZGVzLlxuICpcbiAqIFJ1bGVzOlxuICogMS4gVmFsaWRhdGVzIHRoYXQgZGVwcmVjYXRlZCBzZXR0aW5ncyAoJ2lhbUNvbmZpZy5hdXRoZW50aWNhdGVkVXNlclJvbGUnLCAnaWFtQ29uZmlnLnVuYXV0aGVudGljYXRlZFVzZXJSb2xlJyxcbiAqICAgICdpYW1Db25maWcuaWRlbnRpdHlQb29sSWQnLCAnaWFtQ29uZmlnLmFsbG93TGlzdGVkUm9sZXMnIGFuZCAnYWRtaW5Sb2xlcycpIGFyZSBtdXR1YWxseSBleGNsdXNpdmUgd2l0aCBuZXcgc2V0dGluZ3MgdGhhdFxuICogICAgcmVwbGFjZWQgdGhlbSAoJ2lhbUNvbmZpZy5lbmFibGVJYW1BdXRob3JpemF0aW9uTW9kZScgYW5kIGFueSBvZiAnYXV0aG9yaXphdGlvbk1vZGVzLmlkZW50aXR5UG9vbENvbmZpZycpXG4gKiAyLiBJZiBkZXByZWNhdGVkIGlkZW50aXR5IHBvb2wgc2V0dGluZ3MgYXJlIHVzZWQgKCdpYW1Db25maWcuYXV0aGVudGljYXRlZFVzZXJSb2xlJywgJ2lhbUNvbmZpZy51bmF1dGhlbnRpY2F0ZWRVc2VyUm9sZScsXG4gKiAgICBhbmQgJ2lhbUNvbmZpZy5pZGVudGl0eVBvb2xJZCcpIHZhbGlkYXRlIHRoYXQgYWxsIGFyZSBwcm92aWRlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlQXV0aG9yaXphdGlvbk1vZGVzID0gKGF1dGhvcml6YXRpb25Nb2RlczogQXV0aG9yaXphdGlvbk1vZGVzKTogdm9pZCA9PiB7XG4gIGNvbnN0IGhhc0FueURlcHJlY2F0ZWRJZGVudGl0eVBvb2xTZXR0aW5nID1cbiAgICBhdXRob3JpemF0aW9uTW9kZXMuaWFtQ29uZmlnPy5hdXRoZW50aWNhdGVkVXNlclJvbGUgfHxcbiAgICBhdXRob3JpemF0aW9uTW9kZXMuaWFtQ29uZmlnPy51bmF1dGhlbnRpY2F0ZWRVc2VyUm9sZSB8fFxuICAgIGF1dGhvcml6YXRpb25Nb2Rlcy5pYW1Db25maWc/LmlkZW50aXR5UG9vbElkO1xuICBjb25zdCBoYXNBbGxEZXByZWNhdGVkSWRlbnRpdHlQb29sU2V0dGluZ3MgPVxuICAgIGF1dGhvcml6YXRpb25Nb2Rlcy5pYW1Db25maWc/LmF1dGhlbnRpY2F0ZWRVc2VyUm9sZSAmJlxuICAgIGF1dGhvcml6YXRpb25Nb2Rlcy5pYW1Db25maWc/LnVuYXV0aGVudGljYXRlZFVzZXJSb2xlICYmXG4gICAgYXV0aG9yaXphdGlvbk1vZGVzLmlhbUNvbmZpZz8uaWRlbnRpdHlQb29sSWQ7XG4gIGNvbnN0IGhhc0RlcHJlY2F0ZWRJYW1TZXR0aW5ncyA9XG4gICAgYXV0aG9yaXphdGlvbk1vZGVzLmlhbUNvbmZpZz8uYXV0aGVudGljYXRlZFVzZXJSb2xlIHx8XG4gICAgYXV0aG9yaXphdGlvbk1vZGVzLmlhbUNvbmZpZz8udW5hdXRoZW50aWNhdGVkVXNlclJvbGUgfHxcbiAgICBhdXRob3JpemF0aW9uTW9kZXMuaWFtQ29uZmlnPy5pZGVudGl0eVBvb2xJZCB8fFxuICAgIGF1dGhvcml6YXRpb25Nb2Rlcy5pYW1Db25maWc/LmFsbG93TGlzdGVkUm9sZXMgfHxcbiAgICBhdXRob3JpemF0aW9uTW9kZXMuYWRtaW5Sb2xlcztcbiAgY29uc3QgaGFzVW5EZXByZWNhdGVkSWFtU2V0dGluZ3MgPVxuICAgIHR5cGVvZiBhdXRob3JpemF0aW9uTW9kZXMuaWFtQ29uZmlnPy5lbmFibGVJYW1BdXRob3JpemF0aW9uTW9kZSAhPT0gJ3VuZGVmaW5lZCcgfHwgYXV0aG9yaXphdGlvbk1vZGVzLmlkZW50aXR5UG9vbENvbmZpZztcblxuICBpZiAoaGFzRGVwcmVjYXRlZElhbVNldHRpbmdzICYmIGhhc1VuRGVwcmVjYXRlZElhbVNldHRpbmdzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0ludmFsaWQgYXV0aG9yaXphdGlvbiBtb2RlcyBjb25maWd1cmF0aW9uIHByb3ZpZGVkLiAnICtcbiAgICAgICAgXCJEZXByZWNhdGVkIElBTSBjb25maWd1cmF0aW9uIGNhbm5vdCBiZSB1c2VkIHdpdGggaWRlbnRpdHkgcG9vbCBjb25maWd1cmF0aW9uIG9yIHdoZW4gJ2VuYWJsZUlhbUF1dGhvcml6YXRpb25Nb2RlJyBpcyBzcGVjaWZpZWQuXCIsXG4gICAgKTtcbiAgfVxuXG4gIGlmIChoYXNBbnlEZXByZWNhdGVkSWRlbnRpdHlQb29sU2V0dGluZyAmJiAhaGFzQWxsRGVwcmVjYXRlZElkZW50aXR5UG9vbFNldHRpbmdzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCInYXV0aG9yaXphdGlvbk1vZGVzLmlhbUNvbmZpZy5hdXRoZW50aWNhdGVkVXNlclJvbGUnLCAnYXV0aG9yaXphdGlvbk1vZGVzLmlhbUNvbmZpZy51bmF1dGhlbnRpY2F0ZWRVc2VyUm9sZScgYW5kXCIgK1xuICAgICAgICBcIiAnYXV0aG9yaXphdGlvbk1vZGVzLmlhbUNvbmZpZy5pZGVudGl0eVBvb2xJZCcgbXVzdCBiZSBwcm92aWRlZC5cIixcbiAgICApO1xuICB9XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGEgc2luZ2xlIGF1dGggbW9kZSBjb25maWcgaW50byB0aGUgYW1wbGlmeS1pbnRlcm5hbCByZXByZXNlbnRhdGlvbi5cbiAqIEBwYXJhbSBhdXRoTW9kZSB0aGUgYXV0aCBtb2RlIHRvIGNvbnZlcnQgaW50byB0aGUgQXBwc3luYyBDREsgcmVwcmVzZW50YXRpb24uXG4gKi9cbmNvbnN0IGNvbnZlcnRBdXRoTW9kZVRvQXV0aFByb3ZpZGVyID0gKGF1dGhNb2RlOiBBdXRob3JpemF0aW9uQ29uZmlnTW9kZSk6IEFwcFN5bmNBdXRoQ29uZmlndXJhdGlvbkVudHJ5ID0+IHtcbiAgY29uc3QgYXV0aGVudGljYXRpb25UeXBlID0gYXV0aE1vZGUudHlwZTtcbiAgc3dpdGNoIChhdXRoTW9kZS50eXBlKSB7XG4gICAgY2FzZSAnQVBJX0tFWSc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhdXRoZW50aWNhdGlvblR5cGUsXG4gICAgICAgIGFwaUtleUNvbmZpZzoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiBhdXRoTW9kZS5kZXNjcmlwdGlvbixcbiAgICAgICAgICBhcGlLZXlFeHBpcmF0aW9uRGF5czogYXV0aE1vZGUuZXhwaXJlcy50b0RheXMoKSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgY2FzZSAnQVdTX0lBTSc6XG4gICAgICByZXR1cm4geyBhdXRoZW50aWNhdGlvblR5cGUgfTtcbiAgICBjYXNlICdBTUFaT05fQ09HTklUT19VU0VSX1BPT0xTJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGF1dGhlbnRpY2F0aW9uVHlwZSxcbiAgICAgICAgdXNlclBvb2xDb25maWc6IHtcbiAgICAgICAgICB1c2VyUG9vbElkOiBhdXRoTW9kZS51c2VyUG9vbC51c2VyUG9vbElkLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICBjYXNlICdPUEVOSURfQ09OTkVDVCc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhdXRoZW50aWNhdGlvblR5cGUsXG4gICAgICAgIG9wZW5JRENvbm5lY3RDb25maWc6IHtcbiAgICAgICAgICBuYW1lOiBhdXRoTW9kZS5vaWRjUHJvdmlkZXJOYW1lLFxuICAgICAgICAgIGlzc3VlclVybDogYXV0aE1vZGUub2lkY0lzc3VlclVybCxcbiAgICAgICAgICBjbGllbnRJZDogYXV0aE1vZGUuY2xpZW50SWQsXG4gICAgICAgICAgaWF0VFRMOiBhdXRoTW9kZS50b2tlbkV4cGlyeUZyb21Jc3N1ZS50b1NlY29uZHMoKSxcbiAgICAgICAgICBhdXRoVFRMOiBhdXRoTW9kZS50b2tlbkV4cGlyeUZyb21BdXRoLnRvU2Vjb25kcygpLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICBjYXNlICdBV1NfTEFNQkRBJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGF1dGhlbnRpY2F0aW9uVHlwZSxcbiAgICAgICAgbGFtYmRhQXV0aG9yaXplckNvbmZpZzoge1xuICAgICAgICAgIGxhbWJkYUFybjogYXV0aE1vZGUuZnVuY3Rpb24uZnVuY3Rpb25Bcm4sXG4gICAgICAgICAgbGFtYmRhRnVuY3Rpb246IGF1dGhNb2RlLmZ1bmN0aW9uLmZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICB0dGxTZWNvbmRzOiBhdXRoTW9kZS50dGwudG9TZWNvbmRzKCksXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgQXV0aE1vZGUgdHlwZSAke2F1dGhlbnRpY2F0aW9uVHlwZX0gZW5jb3VudGVyZWQuYCk7XG4gIH1cbn07XG5cbi8qKlxuICogR2l2ZW4gYW4gYXBwc3luYyBhdXRoIGNvbmZpZ3VyYXRpb24sIGNvbnZlcnQgaW50byBhcHBzeW5jIGF1dGggcHJvdmlkZXIgc2V0dXAuXG4gKiBAcGFyYW0gYXV0aE1vZGVzIHRoZSBjb25maWcgdG8gdHJhbnNmb3JtXG4gKiBAcmV0dXJucyB0aGUgYXBwc3luYyBjb25maWcgb2JqZWN0LlxuICovXG5jb25zdCBjb252ZXJ0QXV0aENvbmZpZ1RvQXBwU3luY0F1dGggPSAoYXV0aE1vZGVzOiBBdXRob3JpemF0aW9uTW9kZXMpOiBBcHBTeW5jQXV0aENvbmZpZ3VyYXRpb24gPT4ge1xuICAvLyBDb252ZXJ0IGF1dGggbW9kZXMgaW50byBhbiBhcnJheSBvZiBhcHBzeW5jIGNvbmZpZ3MsIGFuZCBpbmNsdWRlIHRoZSB0eXBlIHNvIHdlIGNhbiB1c2UgdGhhdCBmb3Igc3dpdGNoaW5nIGFuZCBwYXJ0aXRpb25pbmcgbGF0ZXIuXG4gIGNvbnN0IGF1dGhDb25maWcgPSBbXG4gICAgYXV0aE1vZGVzLmFwaUtleUNvbmZpZyA/IHsgdHlwZTogJ0FQSV9LRVknLCAuLi5hdXRoTW9kZXMuYXBpS2V5Q29uZmlnIH0gOiBudWxsLFxuICAgIGF1dGhNb2Rlcy5sYW1iZGFDb25maWcgPyB7IHR5cGU6ICdBV1NfTEFNQkRBJywgLi4uYXV0aE1vZGVzLmxhbWJkYUNvbmZpZyB9IDogbnVsbCxcbiAgICBhdXRoTW9kZXMub2lkY0NvbmZpZyA/IHsgdHlwZTogJ09QRU5JRF9DT05ORUNUJywgLi4uYXV0aE1vZGVzLm9pZGNDb25maWcgfSA6IG51bGwsXG4gICAgYXV0aE1vZGVzLnVzZXJQb29sQ29uZmlnID8geyB0eXBlOiAnQU1BWk9OX0NPR05JVE9fVVNFUl9QT09MUycsIC4uLmF1dGhNb2Rlcy51c2VyUG9vbENvbmZpZyB9IDogbnVsbCxcbiAgICBhdXRoTW9kZXMuaWFtQ29uZmlnIHx8IGF1dGhNb2Rlcy5pZGVudGl0eVBvb2xDb25maWcgPyB7IHR5cGU6ICdBV1NfSUFNJyB9IDogbnVsbCxcbiAgXS5maWx0ZXIoKG1vZGUpID0+IG1vZGUpIGFzIEF1dGhvcml6YXRpb25Db25maWdNb2RlW107XG4gIGNvbnN0IGF1dGhQcm92aWRlcnMgPSBhdXRoQ29uZmlnLm1hcChjb252ZXJ0QXV0aE1vZGVUb0F1dGhQcm92aWRlcik7XG5cbiAgLy8gVmFsaWRhdGUgaW5wdXRzIG1ha2Ugc2Vuc2UsIG5lZWRzIGF0IGxlYXN0IG9uZSBtb2RlLCBhbmQgYSBkZWZhdWx0IG1vZGUgaXMgcmVxdWlyZWQgaWYgdGhlcmUgYXJlIG11bHRpcGxlIG1vZGVzLlxuICBpZiAoYXV0aFByb3ZpZGVycy5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0IGxlYXN0IG9uZSBhdXRoIGNvbmZpZyBpcyByZXF1aXJlZCwgYnV0IG5vbmUgd2VyZSBmb3VuZC4nKTtcbiAgfVxuICBpZiAoYXV0aFByb3ZpZGVycy5sZW5ndGggPiAxICYmICFhdXRoTW9kZXMuZGVmYXVsdEF1dGhvcml6YXRpb25Nb2RlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdBIGRlZmF1bHRBdXRob3JpemF0aW9uTW9kZSBpcyByZXF1aXJlZCBpZiBtdWx0aXBsZSBhdXRob3JpemF0aW9uIG1vZGVzIGFyZSBjb25maWd1cmVkLicpO1xuICB9XG5cbiAgLy8gRW5hYmxlIGFwcHN5bmMgdG8gaW52b2tlIGEgcHJvdmlkZWQgbGFtYmRhIGF1dGhvcml6ZXIgZnVuY3Rpb25cbiAgYXV0aE1vZGVzLmxhbWJkYUNvbmZpZz8uZnVuY3Rpb24uYWRkUGVybWlzc2lvbignYXBwc3luYy1hdXRoLWludm9rZScsIHtcbiAgICBwcmluY2lwYWw6IG5ldyBTZXJ2aWNlUHJpbmNpcGFsKCdhcHBzeW5jLmFtYXpvbmF3cy5jb20nKSxcbiAgICBhY3Rpb246ICdsYW1iZGE6SW52b2tlRnVuY3Rpb24nLFxuICB9KTtcblxuICAvLyBJbiB0aGUgY2FzZSBvZiBhIHNpbmdsZSBtb2RlLCBkZWZhdWx0QXV0aG9yaXphdGlvbk1vZGUgaXMgbm90IHJlcXVpcmVkLCBqdXN0IHVzZSB0aGUgcHJvdmlkZWQgdmFsdWUuXG4gIGlmIChhdXRoUHJvdmlkZXJzLmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiB7XG4gICAgICBkZWZhdWx0QXV0aGVudGljYXRpb246IGF1dGhQcm92aWRlcnNbMF0sXG4gICAgICBhZGRpdGlvbmFsQXV0aGVudGljYXRpb25Qcm92aWRlcnM6IFtdLFxuICAgIH07XG4gIH1cblxuICAvLyBGb3IgbXVsdGktYXV0aCwgcGFydGl0aW9uIGludG8gdGhlIGRlZmF1bHRNb2RlIGFuZCBub24tZGVmYXVsdCBtb2Rlcy5cbiAgcmV0dXJuIHtcbiAgICBkZWZhdWx0QXV0aGVudGljYXRpb246IGF1dGhQcm92aWRlcnMuZmlsdGVyKChwcm92aWRlcikgPT4gcHJvdmlkZXIuYXV0aGVudGljYXRpb25UeXBlID09PSBhdXRoTW9kZXMuZGVmYXVsdEF1dGhvcml6YXRpb25Nb2RlKVswXSxcbiAgICBhZGRpdGlvbmFsQXV0aGVudGljYXRpb25Qcm92aWRlcnM6IGF1dGhQcm92aWRlcnMuZmlsdGVyKFxuICAgICAgKHByb3ZpZGVyKSA9PiBwcm92aWRlci5hdXRoZW50aWNhdGlvblR5cGUgIT09IGF1dGhNb2Rlcy5kZWZhdWx0QXV0aG9yaXphdGlvbk1vZGUsXG4gICAgKSxcbiAgfTtcbn07XG5cbnR5cGUgQXV0aFN5bnRoUGFyYW1ldGVycyA9IFBpY2s8XG4gIFN5bnRoUGFyYW1ldGVycyxcbiAgJ3VzZXJQb29sSWQnIHwgJ2F1dGhlbnRpY2F0ZWRVc2VyUm9sZU5hbWUnIHwgJ3VuYXV0aGVudGljYXRlZFVzZXJSb2xlTmFtZScgfCAnaWRlbnRpdHlQb29sSWQnIHwgJ2FkbWluUm9sZXMnIHwgJ2VuYWJsZUlhbUFjY2Vzcydcbj47XG5cbmludGVyZmFjZSBBdXRoQ29uZmlnIHtcbiAgLyoqXG4gICAqIHVzZWQgbWFpbmx5IGluIHRoZSBiZWZvcmUgc3RlcCB0byBwYXNzIHRoZSBhdXRoQ29uZmlnIGZyb20gdGhlIHRyYW5zZm9ybWVyIGNvcmUgZG93biB0byB0aGUgZGlyZWN0aXZlXG4gICAqL1xuICBhdXRoQ29uZmlnPzogQXBwU3luY0F1dGhDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBQYXJhbXMgdG8gaW5jbHVkZSB0aGUgdHJhbnNmb3JtZXIuXG4gICAqL1xuICBhdXRoU3ludGhQYXJhbWV0ZXJzOiBBdXRoU3ludGhQYXJhbWV0ZXJzO1xufVxuXG4vKipcbiAqIFRyYW5zZm9ybXMgYWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uVHlwZXMgZm9yIHN0b3JhZ2UgaW4gQ0ZOIG91dHB1dFxuICovXG5leHBvcnQgY29uc3QgZ2V0QWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uVHlwZXMgPSAoY2ZuR3JhcGhxbEFwaTogQ2ZuR3JhcGhRTEFwaSk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmICghaXNBcnJheShjZm5HcmFwaHFsQXBpLmFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblByb3ZpZGVycykpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIChjZm5HcmFwaHFsQXBpLmFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblByb3ZpZGVycyBhcyBDZm5HcmFwaFFMQXBpLkFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblByb3ZpZGVyUHJvcGVydHlbXSlcbiAgICAubWFwKFxuICAgICAgKGFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblByb3ZpZGVyOiBDZm5HcmFwaFFMQXBpLkFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblByb3ZpZGVyUHJvcGVydHkpID0+XG4gICAgICAgIGFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblByb3ZpZGVyLmF1dGhlbnRpY2F0aW9uVHlwZSxcbiAgICApXG4gICAgLmpvaW4oJywnKTtcbn07XG5cbi8qKlxuICogQ29udmVydCB0aGUgbGlzdCBvZiBhdXRoIG1vZGVzIGludG8gdGhlIG5lY2Vzc2FyeSBmbGFncyBhbmQgcGFyYW1zIChlZmZlY3RpdmVseSBhIHJlZHVjZXIgb24gdGhlIHJ1bGUgbGlzdClcbiAqIEBwYXJhbSBhdXRoTW9kZXMgdGhlIGxpc3Qgb2YgYXV0aCBtb2RlcyBjb25maWd1cmVkIG9uIHRoZSBBUEkuXG4gKiBAcmV0dXJucyB0aGUgQXV0aENvbmZpZyB3aGljaCB0aGUgQXV0aFRyYW5zZm9ybWVyIG5lZWRzIGFzIGlucHV0LlxuICovXG5leHBvcnQgY29uc3QgY29udmVydEF1dGhvcml6YXRpb25Nb2Rlc1RvVHJhbnNmb3JtZXJBdXRoQ29uZmlnID0gKGF1dGhNb2RlczogQXV0aG9yaXphdGlvbk1vZGVzKTogQXV0aENvbmZpZyA9PiAoe1xuICBhdXRoQ29uZmlnOiBjb252ZXJ0QXV0aENvbmZpZ1RvQXBwU3luY0F1dGgoYXV0aE1vZGVzKSxcbiAgYXV0aFN5bnRoUGFyYW1ldGVyczogZ2V0U3ludGhQYXJhbWV0ZXJzKGF1dGhNb2RlcyksXG59KTtcblxuLyoqXG4gKiBNZXJnZSBpYW1Db25maWcgYWxsb3dMaXN0ZWRSb2xlcyB3aXRoIGRlcHJlY2F0ZWQgYWRtaW5Sb2xlcyBwcm9wZXJ0eSwgY29udmVydGluZyB0byBzdHJpbmdzLlxuICogQHBhcmFtIGF1dGhNb2RlcyB0aGUgYXV0aCBtb2RlcyBwcm92aWRlZCB0byB0aGUgY29uc3RydWN0LlxuICogQHJldHVybnMgdGhlIGxpc3Qgb2YgYWRtaW4gcm9sZXMgYXMgc3RyaW5ncyB0byBwYXNzIGludG8gdGhlIHRyYW5zZm9ybWVyXG4gKi9cbmNvbnN0IGdldEFsbG93TGlzdGVkUm9sZXMgPSAoYXV0aE1vZGVzOiBBdXRob3JpemF0aW9uTW9kZXMpOiBzdHJpbmdbXSA9PlxuICBbLi4uKGF1dGhNb2Rlcz8uaWFtQ29uZmlnPy5hbGxvd0xpc3RlZFJvbGVzID8/IFtdKSwgLi4uKGF1dGhNb2Rlcy5hZG1pblJvbGVzID8/IFtdKV0ubWFwKChyb2xlT3JSb2xlTmFtZTogSVJvbGUgfCBzdHJpbmcpID0+IHtcbiAgICBpZiAodHlwZW9mIHJvbGVPclJvbGVOYW1lID09PSAnc3RyaW5nJyB8fCByb2xlT3JSb2xlTmFtZSBpbnN0YW5jZW9mIFN0cmluZykge1xuICAgICAgcmV0dXJuIHJvbGVPclJvbGVOYW1lIGFzIHN0cmluZztcbiAgICB9XG4gICAgcmV0dXJuIHJvbGVPclJvbGVOYW1lLnJvbGVOYW1lO1xuICB9KTtcblxuLyoqXG4gKiBUcmFuc2Zvcm0gdGhlIGF1dGhvcml6YXRpb24gY29uZmlnIGludG8gdGhlIHRyYW5zZm9ybWVyIHN5bnRoIHBhcmFtZXRlcnMgcGVydGFpbmluZyB0byBhdXRoLlxuICogQHBhcmFtIGF1dGhNb2RlcyB0aGUgYXV0aCBtb2RlcyBwcm92aWRlZCB0byB0aGUgY29uc3RydWN0LlxuICogQHJldHVybnMgYSByZWNvcmQgb2YgcGFyYW1zIHRvIGJlIGNvbnN1bWVkIGJ5IHRoZSB0cmFuc2Zvcm1lci5cbiAqL1xuY29uc3QgZ2V0U3ludGhQYXJhbWV0ZXJzID0gKGF1dGhNb2RlczogQXV0aG9yaXphdGlvbk1vZGVzKTogQXV0aFN5bnRoUGFyYW1ldGVycyA9PiAoe1xuICBhZG1pblJvbGVzOiBnZXRBbGxvd0xpc3RlZFJvbGVzKGF1dGhNb2RlcyksXG4gIGlkZW50aXR5UG9vbElkOiBhdXRoTW9kZXMuaWRlbnRpdHlQb29sQ29uZmlnPy5pZGVudGl0eVBvb2xJZCA/PyBhdXRoTW9kZXMuaWFtQ29uZmlnPy5pZGVudGl0eVBvb2xJZCxcbiAgZW5hYmxlSWFtQWNjZXNzOiBhdXRoTW9kZXMuaWFtQ29uZmlnPy5lbmFibGVJYW1BdXRob3JpemF0aW9uTW9kZSxcbiAgLi4uKGF1dGhNb2Rlcy51c2VyUG9vbENvbmZpZyA/IHsgdXNlclBvb2xJZDogYXV0aE1vZGVzLnVzZXJQb29sQ29uZmlnLnVzZXJQb29sLnVzZXJQb29sSWQgfSA6IHt9KSxcbiAgLi4uKGF1dGhNb2Rlcz8uaWRlbnRpdHlQb29sQ29uZmlnXG4gICAgPyB7XG4gICAgICAgIGF1dGhlbnRpY2F0ZWRVc2VyUm9sZU5hbWU6IGF1dGhNb2Rlcy5pZGVudGl0eVBvb2xDb25maWcuYXV0aGVudGljYXRlZFVzZXJSb2xlLnJvbGVOYW1lLFxuICAgICAgICB1bmF1dGhlbnRpY2F0ZWRVc2VyUm9sZU5hbWU6IGF1dGhNb2Rlcy5pZGVudGl0eVBvb2xDb25maWcudW5hdXRoZW50aWNhdGVkVXNlclJvbGUucm9sZU5hbWUsXG4gICAgICB9XG4gICAgOiB7fSksXG4gIC4uLihhdXRoTW9kZXM/LmlhbUNvbmZpZyAmJiBhdXRoTW9kZXM/LmlhbUNvbmZpZy5hdXRoZW50aWNhdGVkVXNlclJvbGUgJiYgYXV0aE1vZGVzPy5pYW1Db25maWcudW5hdXRoZW50aWNhdGVkVXNlclJvbGVcbiAgICA/IHtcbiAgICAgICAgYXV0aGVudGljYXRlZFVzZXJSb2xlTmFtZTogYXV0aE1vZGVzLmlhbUNvbmZpZy5hdXRoZW50aWNhdGVkVXNlclJvbGU/LnJvbGVOYW1lLFxuICAgICAgICB1bmF1dGhlbnRpY2F0ZWRVc2VyUm9sZU5hbWU6IGF1dGhNb2Rlcy5pYW1Db25maWcudW5hdXRoZW50aWNhdGVkVXNlclJvbGU/LnJvbGVOYW1lLFxuICAgICAgfVxuICAgIDoge30pLFxufSk7XG4iXX0=
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi1tb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcm5hbC9hdXRob3JpemF0aW9uLW1vZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLG1DQUFpQztBQUNqQyxpREFBOEQ7QUFnQjlEOzs7Ozs7Ozs7R0FTRztBQUNJLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxrQkFBc0MsRUFBUSxFQUFFO0lBQ3pGLE1BQU0sbUNBQW1DLEdBQ3ZDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxxQkFBcUI7UUFDbkQsa0JBQWtCLENBQUMsU0FBUyxFQUFFLHVCQUF1QjtRQUNyRCxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDO0lBQy9DLE1BQU0sb0NBQW9DLEdBQ3hDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxxQkFBcUI7UUFDbkQsa0JBQWtCLENBQUMsU0FBUyxFQUFFLHVCQUF1QjtRQUNyRCxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDO0lBQy9DLE1BQU0sd0JBQXdCLEdBQzVCLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxxQkFBcUI7UUFDbkQsa0JBQWtCLENBQUMsU0FBUyxFQUFFLHVCQUF1QjtRQUNyRCxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsY0FBYztRQUM1QyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCO1FBQzlDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztJQUNoQyxNQUFNLDBCQUEwQixHQUM5QixPQUFPLGtCQUFrQixDQUFDLFNBQVMsRUFBRSwwQkFBMEIsS0FBSyxXQUFXLElBQUksa0JBQWtCLENBQUMsa0JBQWtCLENBQUM7SUFFM0gsSUFBSSx3QkFBd0IsSUFBSSwwQkFBMEIsRUFBRSxDQUFDO1FBQzNELE1BQU0sSUFBSSxLQUFLLENBQ2Isc0RBQXNEO1lBQ3BELGlJQUFpSSxDQUNwSSxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksbUNBQW1DLElBQUksQ0FBQyxv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QUF1QixFQUFFLENBQUMsQ0FBQztJQUNsRixVQUFVLEVBQUUsbUJBQW1CLENBQUMsU0FBUyxDQUFDO0lBQzFDLGNBQWMsRUFBRSxTQUFTLENBQUMsa0JBQWtCLEVBQUUsY0FBYyxJQUFJLFNBQVMsQ0FBQyxTQUFTLEVBQUUsY0FBYztJQUNuRyxlQUFlLEVBQUUsU0FBUyxDQUFDLFNBQVMsRUFBRSwwQkFBMEI7SUFDaEUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDakcsR0FBRyxDQUFDLFNBQVMsRUFBRSxrQkFBa0I7UUFDL0IsQ0FBQyxDQUFDO1lBQ0UseUJBQXlCLEVBQUUsU0FBUyxDQUFDLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLFFBQVE7WUFDdEYsMkJBQTJCLEVBQUUsU0FBUyxDQUFDLGtCQUFrQixDQUFDLHVCQUF1QixDQUFDLFFBQVE7U0FDM0Y7UUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1AsR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLElBQUksU0FBUyxFQUFFLFNBQVMsQ0FBQyxxQkFBcUIsSUFBSSxTQUFTLEVBQUUsU0FBUyxDQUFDLHVCQUF1QjtRQUNwSCxDQUFDLENBQUM7WUFDRSx5QkFBeUIsRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLHFCQUFxQixFQUFFLFFBQVE7WUFDOUUsMkJBQTJCLEVBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRO1NBQ25GO1FBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztDQUNSLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcFN5bmNBdXRoQ29uZmlndXJhdGlvbiwgQXBwU3luY0F1dGhDb25maWd1cmF0aW9uRW50cnksIFN5bnRoUGFyYW1ldGVycyB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9ncmFwaHFsLXRyYW5zZm9ybWVyLWludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ2ZuR3JhcGhRTEFwaSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcHBzeW5jJztcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgSVJvbGUsIFNlcnZpY2VQcmluY2lwYWwgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7XG4gIEF1dGhvcml6YXRpb25Nb2RlcyxcbiAgQXBpS2V5QXV0aG9yaXphdGlvbkNvbmZpZyxcbiAgTGFtYmRhQXV0aG9yaXphdGlvbkNvbmZpZyxcbiAgT0lEQ0F1dGhvcml6YXRpb25Db25maWcsXG4gIFVzZXJQb29sQXV0aG9yaXphdGlvbkNvbmZpZyxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG50eXBlIEF1dGhvcml6YXRpb25Db25maWdNb2RlID1cbiAgfCB7IHR5cGU6ICdBV1NfSUFNJyB9XG4gIHwgKFVzZXJQb29sQXV0aG9yaXphdGlvbkNvbmZpZyAmIHsgdHlwZTogJ0FNQVpPTl9DT0dOSVRPX1VTRVJfUE9PTFMnIH0pXG4gIHwgKE9JRENBdXRob3JpemF0aW9uQ29uZmlnICYgeyB0eXBlOiAnT1BFTklEX0NPTk5FQ1QnIH0pXG4gIHwgKEFwaUtleUF1dGhvcml6YXRpb25Db25maWcgJiB7IHR5cGU6ICdBUElfS0VZJyB9KVxuICB8IChMYW1iZGFBdXRob3JpemF0aW9uQ29uZmlnICYgeyB0eXBlOiAnQVdTX0xBTUJEQScgfSk7XG5cbi8qKlxuICogVmFsaWRhdGVzIGF1dGhvcml6YXRpb24gbW9kZXMuXG4gKlxuICogUnVsZXM6XG4gKiAxLiBWYWxpZGF0ZXMgdGhhdCBkZXByZWNhdGVkIHNldHRpbmdzICgnaWFtQ29uZmlnLmF1dGhlbnRpY2F0ZWRVc2VyUm9sZScsICdpYW1Db25maWcudW5hdXRoZW50aWNhdGVkVXNlclJvbGUnLFxuICogICAgJ2lhbUNvbmZpZy5pZGVudGl0eVBvb2xJZCcsICdpYW1Db25maWcuYWxsb3dMaXN0ZWRSb2xlcycgYW5kICdhZG1pblJvbGVzJykgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIG5ldyBzZXR0aW5ncyB0aGF0XG4gKiAgICByZXBsYWNlZCB0aGVtICgnaWFtQ29uZmlnLmVuYWJsZUlhbUF1dGhvcml6YXRpb25Nb2RlJyBhbmQgYW55IG9mICdhdXRob3JpemF0aW9uTW9kZXMuaWRlbnRpdHlQb29sQ29uZmlnJylcbiAqIDIuIElmIGRlcHJlY2F0ZWQgaWRlbnRpdHkgcG9vbCBzZXR0aW5ncyBhcmUgdXNlZCAoJ2lhbUNvbmZpZy5hdXRoZW50aWNhdGVkVXNlclJvbGUnLCAnaWFtQ29uZmlnLnVuYXV0aGVudGljYXRlZFVzZXJSb2xlJyxcbiAqICAgIGFuZCAnaWFtQ29uZmlnLmlkZW50aXR5UG9vbElkJykgdmFsaWRhdGUgdGhhdCBhbGwgYXJlIHByb3ZpZGVkLlxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVBdXRob3JpemF0aW9uTW9kZXMgPSAoYXV0aG9yaXphdGlvbk1vZGVzOiBBdXRob3JpemF0aW9uTW9kZXMpOiB2b2lkID0+IHtcbiAgY29uc3QgaGFzQW55RGVwcmVjYXRlZElkZW50aXR5UG9vbFNldHRpbmcgPVxuICAgIGF1dGhvcml6YXRpb25Nb2Rlcy5pYW1Db25maWc/LmF1dGhlbnRpY2F0ZWRVc2VyUm9sZSB8fFxuICAgIGF1dGhvcml6YXRpb25Nb2Rlcy5pYW1Db25maWc/LnVuYXV0aGVudGljYXRlZFVzZXJSb2xlIHx8XG4gICAgYXV0aG9yaXphdGlvbk1vZGVzLmlhbUNvbmZpZz8uaWRlbnRpdHlQb29sSWQ7XG4gIGNvbnN0IGhhc0FsbERlcHJlY2F0ZWRJZGVudGl0eVBvb2xTZXR0aW5ncyA9XG4gICAgYXV0aG9yaXphdGlvbk1vZGVzLmlhbUNvbmZpZz8uYXV0aGVudGljYXRlZFVzZXJSb2xlICYmXG4gICAgYXV0aG9yaXphdGlvbk1vZGVzLmlhbUNvbmZpZz8udW5hdXRoZW50aWNhdGVkVXNlclJvbGUgJiZcbiAgICBhdXRob3JpemF0aW9uTW9kZXMuaWFtQ29uZmlnPy5pZGVudGl0eVBvb2xJZDtcbiAgY29uc3QgaGFzRGVwcmVjYXRlZElhbVNldHRpbmdzID1cbiAgICBhdXRob3JpemF0aW9uTW9kZXMuaWFtQ29uZmlnPy5hdXRoZW50aWNhdGVkVXNlclJvbGUgfHxcbiAgICBhdXRob3JpemF0aW9uTW9kZXMuaWFtQ29uZmlnPy51bmF1dGhlbnRpY2F0ZWRVc2VyUm9sZSB8fFxuICAgIGF1dGhvcml6YXRpb25Nb2Rlcy5pYW1Db25maWc/LmlkZW50aXR5UG9vbElkIHx8XG4gICAgYXV0aG9yaXphdGlvbk1vZGVzLmlhbUNvbmZpZz8uYWxsb3dMaXN0ZWRSb2xlcyB8fFxuICAgIGF1dGhvcml6YXRpb25Nb2Rlcy5hZG1pblJvbGVzO1xuICBjb25zdCBoYXNVbkRlcHJlY2F0ZWRJYW1TZXR0aW5ncyA9XG4gICAgdHlwZW9mIGF1dGhvcml6YXRpb25Nb2Rlcy5pYW1Db25maWc/LmVuYWJsZUlhbUF1dGhvcml6YXRpb25Nb2RlICE9PSAndW5kZWZpbmVkJyB8fCBhdXRob3JpemF0aW9uTW9kZXMuaWRlbnRpdHlQb29sQ29uZmlnO1xuXG4gIGlmIChoYXNEZXByZWNhdGVkSWFtU2V0dGluZ3MgJiYgaGFzVW5EZXByZWNhdGVkSWFtU2V0dGluZ3MpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnSW52YWxpZCBhdXRob3JpemF0aW9uIG1vZGVzIGNvbmZpZ3VyYXRpb24gcHJvdmlkZWQuICcgK1xuICAgICAgICBcIkRlcHJlY2F0ZWQgSUFNIGNvbmZpZ3VyYXRpb24gY2Fubm90IGJlIHVzZWQgd2l0aCBpZGVudGl0eSBwb29sIGNvbmZpZ3VyYXRpb24gb3Igd2hlbiAnZW5hYmxlSWFtQXV0aG9yaXphdGlvbk1vZGUnIGlzIHNwZWNpZmllZC5cIixcbiAgICApO1xuICB9XG5cbiAgaWYgKGhhc0FueURlcHJlY2F0ZWRJZGVudGl0eVBvb2xTZXR0aW5nICYmICFoYXNBbGxEZXByZWNhdGVkSWRlbnRpdHlQb29sU2V0dGluZ3MpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcIidhdXRob3JpemF0aW9uTW9kZXMuaWFtQ29uZmlnLmF1dGhlbnRpY2F0ZWRVc2VyUm9sZScsICdhdXRob3JpemF0aW9uTW9kZXMuaWFtQ29uZmlnLnVuYXV0aGVudGljYXRlZFVzZXJSb2xlJyBhbmRcIiArXG4gICAgICAgIFwiICdhdXRob3JpemF0aW9uTW9kZXMuaWFtQ29uZmlnLmlkZW50aXR5UG9vbElkJyBtdXN0IGJlIHByb3ZpZGVkLlwiLFxuICAgICk7XG4gIH1cbn07XG5cbi8qKlxuICogQ29udmVydHMgYSBzaW5nbGUgYXV0aCBtb2RlIGNvbmZpZyBpbnRvIHRoZSBhbXBsaWZ5LWludGVybmFsIHJlcHJlc2VudGF0aW9uLlxuICogQHBhcmFtIGF1dGhNb2RlIHRoZSBhdXRoIG1vZGUgdG8gY29udmVydCBpbnRvIHRoZSBBcHBzeW5jIENESyByZXByZXNlbnRhdGlvbi5cbiAqL1xuY29uc3QgY29udmVydEF1dGhNb2RlVG9BdXRoUHJvdmlkZXIgPSAoYXV0aE1vZGU6IEF1dGhvcml6YXRpb25Db25maWdNb2RlKTogQXBwU3luY0F1dGhDb25maWd1cmF0aW9uRW50cnkgPT4ge1xuICBjb25zdCBhdXRoZW50aWNhdGlvblR5cGUgPSBhdXRoTW9kZS50eXBlO1xuICBzd2l0Y2ggKGF1dGhNb2RlLnR5cGUpIHtcbiAgICBjYXNlICdBUElfS0VZJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGF1dGhlbnRpY2F0aW9uVHlwZSxcbiAgICAgICAgYXBpS2V5Q29uZmlnOiB7XG4gICAgICAgICAgZGVzY3JpcHRpb246IGF1dGhNb2RlLmRlc2NyaXB0aW9uLFxuICAgICAgICAgIGFwaUtleUV4cGlyYXRpb25EYXlzOiBhdXRoTW9kZS5leHBpcmVzLnRvRGF5cygpLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICBjYXNlICdBV1NfSUFNJzpcbiAgICAgIHJldHVybiB7IGF1dGhlbnRpY2F0aW9uVHlwZSB9O1xuICAgIGNhc2UgJ0FNQVpPTl9DT0dOSVRPX1VTRVJfUE9PTFMnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYXV0aGVudGljYXRpb25UeXBlLFxuICAgICAgICB1c2VyUG9vbENvbmZpZzoge1xuICAgICAgICAgIHVzZXJQb29sSWQ6IGF1dGhNb2RlLnVzZXJQb29sLnVzZXJQb29sSWQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIGNhc2UgJ09QRU5JRF9DT05ORUNUJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGF1dGhlbnRpY2F0aW9uVHlwZSxcbiAgICAgICAgb3BlbklEQ29ubmVjdENvbmZpZzoge1xuICAgICAgICAgIG5hbWU6IGF1dGhNb2RlLm9pZGNQcm92aWRlck5hbWUsXG4gICAgICAgICAgaXNzdWVyVXJsOiBhdXRoTW9kZS5vaWRjSXNzdWVyVXJsLFxuICAgICAgICAgIGNsaWVudElkOiBhdXRoTW9kZS5jbGllbnRJZCxcbiAgICAgICAgICBpYXRUVEw6IGF1dGhNb2RlLnRva2VuRXhwaXJ5RnJvbUlzc3VlLnRvU2Vjb25kcygpLFxuICAgICAgICAgIGF1dGhUVEw6IGF1dGhNb2RlLnRva2VuRXhwaXJ5RnJvbUF1dGgudG9TZWNvbmRzKCksXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIGNhc2UgJ0FXU19MQU1CREEnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYXV0aGVudGljYXRpb25UeXBlLFxuICAgICAgICBsYW1iZGFBdXRob3JpemVyQ29uZmlnOiB7XG4gICAgICAgICAgbGFtYmRhQXJuOiBhdXRoTW9kZS5mdW5jdGlvbi5mdW5jdGlvbkFybixcbiAgICAgICAgICBsYW1iZGFGdW5jdGlvbjogYXV0aE1vZGUuZnVuY3Rpb24uZnVuY3Rpb25OYW1lLFxuICAgICAgICAgIHR0bFNlY29uZHM6IGF1dGhNb2RlLnR0bC50b1NlY29uZHMoKSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBBdXRoTW9kZSB0eXBlICR7YXV0aGVudGljYXRpb25UeXBlfSBlbmNvdW50ZXJlZC5gKTtcbiAgfVxufTtcblxuLyoqXG4gKiBHaXZlbiBhbiBhcHBzeW5jIGF1dGggY29uZmlndXJhdGlvbiwgY29udmVydCBpbnRvIGFwcHN5bmMgYXV0aCBwcm92aWRlciBzZXR1cC5cbiAqIEBwYXJhbSBhdXRoTW9kZXMgdGhlIGNvbmZpZyB0byB0cmFuc2Zvcm1cbiAqIEByZXR1cm5zIHRoZSBhcHBzeW5jIGNvbmZpZyBvYmplY3QuXG4gKi9cbmNvbnN0IGNvbnZlcnRBdXRoQ29uZmlnVG9BcHBTeW5jQXV0aCA9IChhdXRoTW9kZXM6IEF1dGhvcml6YXRpb25Nb2Rlcyk6IEFwcFN5bmNBdXRoQ29uZmlndXJhdGlvbiA9PiB7XG4gIC8vIENvbnZlcnQgYXV0aCBtb2RlcyBpbnRvIGFuIGFycmF5IG9mIGFwcHN5bmMgY29uZmlncywgYW5kIGluY2x1ZGUgdGhlIHR5cGUgc28gd2UgY2FuIHVzZSB0aGF0IGZvciBzd2l0Y2hpbmcgYW5kIHBhcnRpdGlvbmluZyBsYXRlci5cbiAgY29uc3QgYXV0aENvbmZpZyA9IFtcbiAgICBhdXRoTW9kZXMuYXBpS2V5Q29uZmlnID8geyB0eXBlOiAnQVBJX0tFWScsIC4uLmF1dGhNb2Rlcy5hcGlLZXlDb25maWcgfSA6IG51bGwsXG4gICAgYXV0aE1vZGVzLmxhbWJkYUNvbmZpZyA/IHsgdHlwZTogJ0FXU19MQU1CREEnLCAuLi5hdXRoTW9kZXMubGFtYmRhQ29uZmlnIH0gOiBudWxsLFxuICAgIGF1dGhNb2Rlcy5vaWRjQ29uZmlnID8geyB0eXBlOiAnT1BFTklEX0NPTk5FQ1QnLCAuLi5hdXRoTW9kZXMub2lkY0NvbmZpZyB9IDogbnVsbCxcbiAgICBhdXRoTW9kZXMudXNlclBvb2xDb25maWcgPyB7IHR5cGU6ICdBTUFaT05fQ09HTklUT19VU0VSX1BPT0xTJywgLi4uYXV0aE1vZGVzLnVzZXJQb29sQ29uZmlnIH0gOiBudWxsLFxuICAgIGF1dGhNb2Rlcy5pYW1Db25maWcgfHwgYXV0aE1vZGVzLmlkZW50aXR5UG9vbENvbmZpZyA/IHsgdHlwZTogJ0FXU19JQU0nIH0gOiBudWxsLFxuICBdLmZpbHRlcigobW9kZSkgPT4gbW9kZSkgYXMgQXV0aG9yaXphdGlvbkNvbmZpZ01vZGVbXTtcbiAgY29uc3QgYXV0aFByb3ZpZGVycyA9IGF1dGhDb25maWcubWFwKGNvbnZlcnRBdXRoTW9kZVRvQXV0aFByb3ZpZGVyKTtcblxuICAvLyBWYWxpZGF0ZSBpbnB1dHMgbWFrZSBzZW5zZSwgbmVlZHMgYXQgbGVhc3Qgb25lIG1vZGUsIGFuZCBhIGRlZmF1bHQgbW9kZSBpcyByZXF1aXJlZCBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgbW9kZXMuXG4gIGlmIChhdXRoUHJvdmlkZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQXQgbGVhc3Qgb25lIGF1dGggY29uZmlnIGlzIHJlcXVpcmVkLCBidXQgbm9uZSB3ZXJlIGZvdW5kLicpO1xuICB9XG4gIGlmIChhdXRoUHJvdmlkZXJzLmxlbmd0aCA+IDEgJiYgIWF1dGhNb2Rlcy5kZWZhdWx0QXV0aG9yaXphdGlvbk1vZGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0EgZGVmYXVsdEF1dGhvcml6YXRpb25Nb2RlIGlzIHJlcXVpcmVkIGlmIG11bHRpcGxlIGF1dGhvcml6YXRpb24gbW9kZXMgYXJlIGNvbmZpZ3VyZWQuJyk7XG4gIH1cblxuICAvLyBFbmFibGUgYXBwc3luYyB0byBpbnZva2UgYSBwcm92aWRlZCBsYW1iZGEgYXV0aG9yaXplciBmdW5jdGlvblxuICBhdXRoTW9kZXMubGFtYmRhQ29uZmlnPy5mdW5jdGlvbi5hZGRQZXJtaXNzaW9uKCdhcHBzeW5jLWF1dGgtaW52b2tlJywge1xuICAgIHByaW5jaXBhbDogbmV3IFNlcnZpY2VQcmluY2lwYWwoJ2FwcHN5bmMuYW1hem9uYXdzLmNvbScpLFxuICAgIGFjdGlvbjogJ2xhbWJkYTpJbnZva2VGdW5jdGlvbicsXG4gIH0pO1xuXG4gIC8vIEluIHRoZSBjYXNlIG9mIGEgc2luZ2xlIG1vZGUsIGRlZmF1bHRBdXRob3JpemF0aW9uTW9kZSBpcyBub3QgcmVxdWlyZWQsIGp1c3QgdXNlIHRoZSBwcm92aWRlZCB2YWx1ZS5cbiAgaWYgKGF1dGhQcm92aWRlcnMubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRlZmF1bHRBdXRoZW50aWNhdGlvbjogYXV0aFByb3ZpZGVyc1swXSxcbiAgICAgIGFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblByb3ZpZGVyczogW10sXG4gICAgfTtcbiAgfVxuXG4gIC8vIEZvciBtdWx0aS1hdXRoLCBwYXJ0aXRpb24gaW50byB0aGUgZGVmYXVsdE1vZGUgYW5kIG5vbi1kZWZhdWx0IG1vZGVzLlxuICByZXR1cm4ge1xuICAgIGRlZmF1bHRBdXRoZW50aWNhdGlvbjogYXV0aFByb3ZpZGVycy5maWx0ZXIoKHByb3ZpZGVyKSA9PiBwcm92aWRlci5hdXRoZW50aWNhdGlvblR5cGUgPT09IGF1dGhNb2Rlcy5kZWZhdWx0QXV0aG9yaXphdGlvbk1vZGUpWzBdLFxuICAgIGFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblByb3ZpZGVyczogYXV0aFByb3ZpZGVycy5maWx0ZXIoXG4gICAgICAocHJvdmlkZXIpID0+IHByb3ZpZGVyLmF1dGhlbnRpY2F0aW9uVHlwZSAhPT0gYXV0aE1vZGVzLmRlZmF1bHRBdXRob3JpemF0aW9uTW9kZSxcbiAgICApLFxuICB9O1xufTtcblxudHlwZSBBdXRoU3ludGhQYXJhbWV0ZXJzID0gUGljazxcbiAgU3ludGhQYXJhbWV0ZXJzLFxuICAndXNlclBvb2xJZCcgfCAnYXV0aGVudGljYXRlZFVzZXJSb2xlTmFtZScgfCAndW5hdXRoZW50aWNhdGVkVXNlclJvbGVOYW1lJyB8ICdpZGVudGl0eVBvb2xJZCcgfCAnYWRtaW5Sb2xlcycgfCAnZW5hYmxlSWFtQWNjZXNzJ1xuPjtcblxuaW50ZXJmYWNlIEF1dGhDb25maWcge1xuICAvKipcbiAgICogdXNlZCBtYWlubHkgaW4gdGhlIGJlZm9yZSBzdGVwIHRvIHBhc3MgdGhlIGF1dGhDb25maWcgZnJvbSB0aGUgdHJhbnNmb3JtZXIgY29yZSBkb3duIHRvIHRoZSBkaXJlY3RpdmVcbiAgICovXG4gIGF1dGhDb25maWc/OiBBcHBTeW5jQXV0aENvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIFBhcmFtcyB0byBpbmNsdWRlIHRoZSB0cmFuc2Zvcm1lci5cbiAgICovXG4gIGF1dGhTeW50aFBhcmFtZXRlcnM6IEF1dGhTeW50aFBhcmFtZXRlcnM7XG59XG5cbi8qKlxuICogVHJhbnNmb3JtcyBhZGRpdGlvbmFsQXV0aGVudGljYXRpb25UeXBlcyBmb3Igc3RvcmFnZSBpbiBDRk4gb3V0cHV0XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRBZGRpdGlvbmFsQXV0aGVudGljYXRpb25UeXBlcyA9IChjZm5HcmFwaHFsQXBpOiBDZm5HcmFwaFFMQXBpKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKCFpc0FycmF5KGNmbkdyYXBocWxBcGkuYWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJzKSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4gKGNmbkdyYXBocWxBcGkuYWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJzIGFzIENmbkdyYXBoUUxBcGkuQWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJQcm9wZXJ0eVtdKVxuICAgIC5tYXAoXG4gICAgICAoYWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXI6IENmbkdyYXBoUUxBcGkuQWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJQcm9wZXJ0eSkgPT5cbiAgICAgICAgYWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXIuYXV0aGVudGljYXRpb25UeXBlLFxuICAgIClcbiAgICAuam9pbignLCcpO1xufTtcblxuLyoqXG4gKiBDb252ZXJ0IHRoZSBsaXN0IG9mIGF1dGggbW9kZXMgaW50byB0aGUgbmVjZXNzYXJ5IGZsYWdzIGFuZCBwYXJhbXMgKGVmZmVjdGl2ZWx5IGEgcmVkdWNlciBvbiB0aGUgcnVsZSBsaXN0KVxuICogQHBhcmFtIGF1dGhNb2RlcyB0aGUgbGlzdCBvZiBhdXRoIG1vZGVzIGNvbmZpZ3VyZWQgb24gdGhlIEFQSS5cbiAqIEByZXR1cm5zIHRoZSBBdXRoQ29uZmlnIHdoaWNoIHRoZSBBdXRoVHJhbnNmb3JtZXIgbmVlZHMgYXMgaW5wdXQuXG4gKi9cbmV4cG9ydCBjb25zdCBjb252ZXJ0QXV0aG9yaXphdGlvbk1vZGVzVG9UcmFuc2Zvcm1lckF1dGhDb25maWcgPSAoYXV0aE1vZGVzOiBBdXRob3JpemF0aW9uTW9kZXMpOiBBdXRoQ29uZmlnID0+ICh7XG4gIGF1dGhDb25maWc6IGNvbnZlcnRBdXRoQ29uZmlnVG9BcHBTeW5jQXV0aChhdXRoTW9kZXMpLFxuICBhdXRoU3ludGhQYXJhbWV0ZXJzOiBnZXRTeW50aFBhcmFtZXRlcnMoYXV0aE1vZGVzKSxcbn0pO1xuXG4vKipcbiAqIE1lcmdlIGlhbUNvbmZpZyBhbGxvd0xpc3RlZFJvbGVzIHdpdGggZGVwcmVjYXRlZCBhZG1pblJvbGVzIHByb3BlcnR5LCBjb252ZXJ0aW5nIHRvIHN0cmluZ3MuXG4gKiBAcGFyYW0gYXV0aE1vZGVzIHRoZSBhdXRoIG1vZGVzIHByb3ZpZGVkIHRvIHRoZSBjb25zdHJ1Y3QuXG4gKiBAcmV0dXJucyB0aGUgbGlzdCBvZiBhZG1pbiByb2xlcyBhcyBzdHJpbmdzIHRvIHBhc3MgaW50byB0aGUgdHJhbnNmb3JtZXJcbiAqL1xuY29uc3QgZ2V0QWxsb3dMaXN0ZWRSb2xlcyA9IChhdXRoTW9kZXM6IEF1dGhvcml6YXRpb25Nb2Rlcyk6IHN0cmluZ1tdID0+XG4gIFsuLi4oYXV0aE1vZGVzPy5pYW1Db25maWc/LmFsbG93TGlzdGVkUm9sZXMgPz8gW10pLCAuLi4oYXV0aE1vZGVzLmFkbWluUm9sZXMgPz8gW10pXS5tYXAoKHJvbGVPclJvbGVOYW1lOiBJUm9sZSB8IHN0cmluZykgPT4ge1xuICAgIGlmICh0eXBlb2Ygcm9sZU9yUm9sZU5hbWUgPT09ICdzdHJpbmcnIHx8IHJvbGVPclJvbGVOYW1lIGluc3RhbmNlb2YgU3RyaW5nKSB7XG4gICAgICByZXR1cm4gcm9sZU9yUm9sZU5hbWUgYXMgc3RyaW5nO1xuICAgIH1cbiAgICByZXR1cm4gcm9sZU9yUm9sZU5hbWUucm9sZU5hbWU7XG4gIH0pO1xuXG4vKipcbiAqIFRyYW5zZm9ybSB0aGUgYXV0aG9yaXphdGlvbiBjb25maWcgaW50byB0aGUgdHJhbnNmb3JtZXIgc3ludGggcGFyYW1ldGVycyBwZXJ0YWluaW5nIHRvIGF1dGguXG4gKiBAcGFyYW0gYXV0aE1vZGVzIHRoZSBhdXRoIG1vZGVzIHByb3ZpZGVkIHRvIHRoZSBjb25zdHJ1Y3QuXG4gKiBAcmV0dXJucyBhIHJlY29yZCBvZiBwYXJhbXMgdG8gYmUgY29uc3VtZWQgYnkgdGhlIHRyYW5zZm9ybWVyLlxuICovXG5jb25zdCBnZXRTeW50aFBhcmFtZXRlcnMgPSAoYXV0aE1vZGVzOiBBdXRob3JpemF0aW9uTW9kZXMpOiBBdXRoU3ludGhQYXJhbWV0ZXJzID0+ICh7XG4gIGFkbWluUm9sZXM6IGdldEFsbG93TGlzdGVkUm9sZXMoYXV0aE1vZGVzKSxcbiAgaWRlbnRpdHlQb29sSWQ6IGF1dGhNb2Rlcy5pZGVudGl0eVBvb2xDb25maWc/LmlkZW50aXR5UG9vbElkID8/IGF1dGhNb2Rlcy5pYW1Db25maWc/LmlkZW50aXR5UG9vbElkLFxuICBlbmFibGVJYW1BY2Nlc3M6IGF1dGhNb2Rlcy5pYW1Db25maWc/LmVuYWJsZUlhbUF1dGhvcml6YXRpb25Nb2RlLFxuICAuLi4oYXV0aE1vZGVzLnVzZXJQb29sQ29uZmlnID8geyB1c2VyUG9vbElkOiBhdXRoTW9kZXMudXNlclBvb2xDb25maWcudXNlclBvb2wudXNlclBvb2xJZCB9IDoge30pLFxuICAuLi4oYXV0aE1vZGVzPy5pZGVudGl0eVBvb2xDb25maWdcbiAgICA/IHtcbiAgICAgICAgYXV0aGVudGljYXRlZFVzZXJSb2xlTmFtZTogYXV0aE1vZGVzLmlkZW50aXR5UG9vbENvbmZpZy5hdXRoZW50aWNhdGVkVXNlclJvbGUucm9sZU5hbWUsXG4gICAgICAgIHVuYXV0aGVudGljYXRlZFVzZXJSb2xlTmFtZTogYXV0aE1vZGVzLmlkZW50aXR5UG9vbENvbmZpZy51bmF1dGhlbnRpY2F0ZWRVc2VyUm9sZS5yb2xlTmFtZSxcbiAgICAgIH1cbiAgICA6IHt9KSxcbiAgLi4uKGF1dGhNb2Rlcz8uaWFtQ29uZmlnICYmIGF1dGhNb2Rlcz8uaWFtQ29uZmlnLmF1dGhlbnRpY2F0ZWRVc2VyUm9sZSAmJiBhdXRoTW9kZXM/LmlhbUNvbmZpZy51bmF1dGhlbnRpY2F0ZWRVc2VyUm9sZVxuICAgID8ge1xuICAgICAgICBhdXRoZW50aWNhdGVkVXNlclJvbGVOYW1lOiBhdXRoTW9kZXMuaWFtQ29uZmlnLmF1dGhlbnRpY2F0ZWRVc2VyUm9sZT8ucm9sZU5hbWUsXG4gICAgICAgIHVuYXV0aGVudGljYXRlZFVzZXJSb2xlTmFtZTogYXV0aE1vZGVzLmlhbUNvbmZpZy51bmF1dGhlbnRpY2F0ZWRVc2VyUm9sZT8ucm9sZU5hbWUsXG4gICAgICB9XG4gICAgOiB7fSksXG59KTtcbiJdfQ==
@@ -43,4 +43,4 @@ const convertToSyncConfig = (strategy) => {
43
43
  throw new Error(`Encountered unexpected handlerType: ${strategy.handlerType}`);
44
44
  }
45
45
  };
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmxpY3QtcmVzb2x1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcm5hbC9jb25mbGljdC1yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBOzs7Ozs7R0FNRztBQUNJLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQXNCLEVBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQ25HLE9BQU8sRUFBRSxPQUFPLElBQUksbUJBQW1CLENBQUMsT0FBTyxDQUFDO0lBQ2hELE1BQU0sRUFBRSxNQUFNLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDeEksQ0FBQyxDQUFDO0FBSFUsUUFBQSx1QkFBdUIsMkJBR2pDO0FBRUg7Ozs7R0FJRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxRQUFvQyxFQUFjLEVBQUU7SUFDL0UsUUFBUSxRQUFRLENBQUMsV0FBVyxFQUFFO1FBQzVCLEtBQUssd0JBQXdCO1lBQzNCLE9BQU87Z0JBQ0wsZUFBZSwrREFBZ0M7Z0JBQy9DLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxhQUFhO2FBQzFDLENBQUM7UUFDSixLQUFLLFdBQVc7WUFDZCxPQUFPO2dCQUNMLGVBQWUsaURBQStCO2dCQUM5QyxpQkFBaUIsRUFBRSxRQUFRLENBQUMsYUFBYTthQUMxQyxDQUFDO1FBQ0osS0FBSyxRQUFRO1lBQ1gsT0FBTztnQkFDTCxlQUFlLDJDQUE0QjtnQkFDM0MsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLGFBQWE7Z0JBQ3pDLHFCQUFxQixFQUFFO29CQUNyQixJQUFJLEVBQUUsUUFBUSxDQUFDLGVBQWUsQ0FBQyxZQUFZO29CQUMzQyxTQUFTLEVBQUUsUUFBUSxDQUFDLGVBQWUsQ0FBQyxXQUFXO2lCQUNoRDthQUNGLENBQUM7UUFDSjtZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXdDLFFBQWdCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztLQUMzRjtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc29sdmVyQ29uZmlnLCBTeW5jQ29uZmlnLCBDb25mbGljdEhhbmRsZXJUeXBlIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2dyYXBocWwtdHJhbnNmb3JtZXItY29yZSc7XG5pbXBvcnQgeyBDb25mbGljdFJlc29sdXRpb25TdHJhdGVneSwgQ29uZmxpY3RSZXNvbHV0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIENvbnZlcnQgcHJvamVjdCBjb25mbGljdCByZXNvbHV0aW9uIGNvbmZpZyB0byB0cmFuc2Zvcm1lciBSZXNvbHZlckNvbmZpZyBvYmplY3QuXG4gKiBAcGFyYW0gcGFyYW0wIGlucHV0IHNoYXBlXG4gKiBAcGFyYW0gcGFyYW0wLnByb2plY3QgdGhlIHByb2plY3QgbGV2ZWwgY29uZmlnXG4gKiBAcGFyYW0gcGFyYW0wLm1vZGVscyB0aGUgbW9kZWwtc3BlY2lmaWMgb3ZlcnJpZGUgY29uZmlnXG4gKiBAcmV0dXJucyB0aGUgdHJhbnNmb3JtZXIgcmVwcmVzZW50YXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IGNvbnZlcnRUb1Jlc29sdmVyQ29uZmlnID0gKHsgcHJvamVjdCwgbW9kZWxzIH06IENvbmZsaWN0UmVzb2x1dGlvbik6IFJlc29sdmVyQ29uZmlnID0+ICh7XG4gIHByb2plY3Q6IHByb2plY3QgJiYgY29udmVydFRvU3luY0NvbmZpZyhwcm9qZWN0KSxcbiAgbW9kZWxzOiBtb2RlbHMgJiYgT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKG1vZGVscykubWFwKChbbW9kZWxOYW1lLCBzdHJhdGVneV0pID0+IFttb2RlbE5hbWUsIGNvbnZlcnRUb1N5bmNDb25maWcoc3RyYXRlZ3kpXSkpLFxufSk7XG5cbi8qKlxuICogQ29udmVydCBmcm9tIGV4dGVybmFsIHRvIGludGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIGNvbmZsaWN0IHJlc29sdXRpb24gY29uZmlnLlxuICogQHBhcmFtIHN0cmF0ZWd5IHRoZSBzdHJhdGVneSB0byBjb252ZXJ0XG4gKiBAcmV0dXJucyB0aGUgY29udmVydGVkIHN0cmF0ZWd5XG4gKi9cbmNvbnN0IGNvbnZlcnRUb1N5bmNDb25maWcgPSAoc3RyYXRlZ3k6IENvbmZsaWN0UmVzb2x1dGlvblN0cmF0ZWd5KTogU3luY0NvbmZpZyA9PiB7XG4gIHN3aXRjaCAoc3RyYXRlZ3kuaGFuZGxlclR5cGUpIHtcbiAgICBjYXNlICdPUFRJTUlTVElDX0NPTkNVUlJFTkNZJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIENvbmZsaWN0SGFuZGxlcjogQ29uZmxpY3RIYW5kbGVyVHlwZS5PUFRJTUlTVElDLFxuICAgICAgICBDb25mbGljdERldGVjdGlvbjogc3RyYXRlZ3kuZGV0ZWN0aW9uVHlwZSxcbiAgICAgIH07XG4gICAgY2FzZSAnQVVUT01FUkdFJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIENvbmZsaWN0SGFuZGxlcjogQ29uZmxpY3RIYW5kbGVyVHlwZS5BVVRPTUVSR0UsXG4gICAgICAgIENvbmZsaWN0RGV0ZWN0aW9uOiBzdHJhdGVneS5kZXRlY3Rpb25UeXBlLFxuICAgICAgfTtcbiAgICBjYXNlICdMQU1CREEnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgQ29uZmxpY3RIYW5kbGVyOiBDb25mbGljdEhhbmRsZXJUeXBlLkxBTUJEQSxcbiAgICAgICAgQ29uZmxpY3REZXRlY3Rpb246IHN0cmF0ZWd5LmRldGVjdGlvblR5cGUsXG4gICAgICAgIExhbWJkYUNvbmZsaWN0SGFuZGxlcjoge1xuICAgICAgICAgIG5hbWU6IHN0cmF0ZWd5LmNvbmZsaWN0SGFuZGxlci5mdW5jdGlvbk5hbWUsXG4gICAgICAgICAgbGFtYmRhQXJuOiBzdHJhdGVneS5jb25mbGljdEhhbmRsZXIuZnVuY3Rpb25Bcm4sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEVuY291bnRlcmVkIHVuZXhwZWN0ZWQgaGFuZGxlclR5cGU6ICR7KHN0cmF0ZWd5IGFzIGFueSkuaGFuZGxlclR5cGV9YCk7XG4gIH1cbn07XG4iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmxpY3QtcmVzb2x1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcm5hbC9jb25mbGljdC1yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBOzs7Ozs7R0FNRztBQUNJLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQXNCLEVBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQ25HLE9BQU8sRUFBRSxPQUFPLElBQUksbUJBQW1CLENBQUMsT0FBTyxDQUFDO0lBQ2hELE1BQU0sRUFBRSxNQUFNLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDeEksQ0FBQyxDQUFDO0FBSFUsUUFBQSx1QkFBdUIsMkJBR2pDO0FBRUg7Ozs7R0FJRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxRQUFvQyxFQUFjLEVBQUU7SUFDL0UsUUFBUSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDN0IsS0FBSyx3QkFBd0I7WUFDM0IsT0FBTztnQkFDTCxlQUFlLCtEQUFnQztnQkFDL0MsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLGFBQWE7YUFDMUMsQ0FBQztRQUNKLEtBQUssV0FBVztZQUNkLE9BQU87Z0JBQ0wsZUFBZSxpREFBK0I7Z0JBQzlDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxhQUFhO2FBQzFDLENBQUM7UUFDSixLQUFLLFFBQVE7WUFDWCxPQUFPO2dCQUNMLGVBQWUsMkNBQTRCO2dCQUMzQyxpQkFBaUIsRUFBRSxRQUFRLENBQUMsYUFBYTtnQkFDekMscUJBQXFCLEVBQUU7b0JBQ3JCLElBQUksRUFBRSxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVk7b0JBQzNDLFNBQVMsRUFBRSxRQUFRLENBQUMsZUFBZSxDQUFDLFdBQVc7aUJBQ2hEO2FBQ0YsQ0FBQztRQUNKO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBd0MsUUFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNvbHZlckNvbmZpZywgU3luY0NvbmZpZywgQ29uZmxpY3RIYW5kbGVyVHlwZSB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9ncmFwaHFsLXRyYW5zZm9ybWVyLWNvcmUnO1xuaW1wb3J0IHsgQ29uZmxpY3RSZXNvbHV0aW9uU3RyYXRlZ3ksIENvbmZsaWN0UmVzb2x1dGlvbiB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBDb252ZXJ0IHByb2plY3QgY29uZmxpY3QgcmVzb2x1dGlvbiBjb25maWcgdG8gdHJhbnNmb3JtZXIgUmVzb2x2ZXJDb25maWcgb2JqZWN0LlxuICogQHBhcmFtIHBhcmFtMCBpbnB1dCBzaGFwZVxuICogQHBhcmFtIHBhcmFtMC5wcm9qZWN0IHRoZSBwcm9qZWN0IGxldmVsIGNvbmZpZ1xuICogQHBhcmFtIHBhcmFtMC5tb2RlbHMgdGhlIG1vZGVsLXNwZWNpZmljIG92ZXJyaWRlIGNvbmZpZ1xuICogQHJldHVybnMgdGhlIHRyYW5zZm9ybWVyIHJlcHJlc2VudGF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBjb252ZXJ0VG9SZXNvbHZlckNvbmZpZyA9ICh7IHByb2plY3QsIG1vZGVscyB9OiBDb25mbGljdFJlc29sdXRpb24pOiBSZXNvbHZlckNvbmZpZyA9PiAoe1xuICBwcm9qZWN0OiBwcm9qZWN0ICYmIGNvbnZlcnRUb1N5bmNDb25maWcocHJvamVjdCksXG4gIG1vZGVsczogbW9kZWxzICYmIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhtb2RlbHMpLm1hcCgoW21vZGVsTmFtZSwgc3RyYXRlZ3ldKSA9PiBbbW9kZWxOYW1lLCBjb252ZXJ0VG9TeW5jQ29uZmlnKHN0cmF0ZWd5KV0pKSxcbn0pO1xuXG4vKipcbiAqIENvbnZlcnQgZnJvbSBleHRlcm5hbCB0byBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiBjb25mbGljdCByZXNvbHV0aW9uIGNvbmZpZy5cbiAqIEBwYXJhbSBzdHJhdGVneSB0aGUgc3RyYXRlZ3kgdG8gY29udmVydFxuICogQHJldHVybnMgdGhlIGNvbnZlcnRlZCBzdHJhdGVneVxuICovXG5jb25zdCBjb252ZXJ0VG9TeW5jQ29uZmlnID0gKHN0cmF0ZWd5OiBDb25mbGljdFJlc29sdXRpb25TdHJhdGVneSk6IFN5bmNDb25maWcgPT4ge1xuICBzd2l0Y2ggKHN0cmF0ZWd5LmhhbmRsZXJUeXBlKSB7XG4gICAgY2FzZSAnT1BUSU1JU1RJQ19DT05DVVJSRU5DWSc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBDb25mbGljdEhhbmRsZXI6IENvbmZsaWN0SGFuZGxlclR5cGUuT1BUSU1JU1RJQyxcbiAgICAgICAgQ29uZmxpY3REZXRlY3Rpb246IHN0cmF0ZWd5LmRldGVjdGlvblR5cGUsXG4gICAgICB9O1xuICAgIGNhc2UgJ0FVVE9NRVJHRSc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBDb25mbGljdEhhbmRsZXI6IENvbmZsaWN0SGFuZGxlclR5cGUuQVVUT01FUkdFLFxuICAgICAgICBDb25mbGljdERldGVjdGlvbjogc3RyYXRlZ3kuZGV0ZWN0aW9uVHlwZSxcbiAgICAgIH07XG4gICAgY2FzZSAnTEFNQkRBJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIENvbmZsaWN0SGFuZGxlcjogQ29uZmxpY3RIYW5kbGVyVHlwZS5MQU1CREEsXG4gICAgICAgIENvbmZsaWN0RGV0ZWN0aW9uOiBzdHJhdGVneS5kZXRlY3Rpb25UeXBlLFxuICAgICAgICBMYW1iZGFDb25mbGljdEhhbmRsZXI6IHtcbiAgICAgICAgICBuYW1lOiBzdHJhdGVneS5jb25mbGljdEhhbmRsZXIuZnVuY3Rpb25OYW1lLFxuICAgICAgICAgIGxhbWJkYUFybjogc3RyYXRlZ3kuY29uZmxpY3RIYW5kbGVyLmZ1bmN0aW9uQXJuLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFbmNvdW50ZXJlZCB1bmV4cGVjdGVkIGhhbmRsZXJUeXBlOiAkeyhzdHJhdGVneSBhcyBhbnkpLmhhbmRsZXJUeXBlfWApO1xuICB9XG59O1xuIl19
@@ -157,4 +157,4 @@ const getGeneratedFunctionSlots = (generatedResolvers) => Object.entries(generat
157
157
  };
158
158
  });
159
159
  exports.getGeneratedFunctionSlots = getGeneratedFunctionSlots;
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0LWV4cG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvY29uc3RydWN0LWV4cG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseURBUWlDO0FBQ2pDLDJEQUFtRTtBQUNuRSxpREFBb0Q7QUFDcEQsNkNBQXVEO0FBQ3ZELG9GQUF3RTtBQUN4RSx1REFBaUY7QUFFakYsc0ZBQWdGO0FBQ2hGLHFEQUF1RDtBQUV2RDs7Ozs7O0dBTUc7QUFDSCxTQUFTLFFBQVEsQ0FBQyxLQUFVO0lBQzFCLE9BQU8sS0FBSyxJQUFJLEtBQUssSUFBSSxNQUFNLElBQUksS0FBSyxJQUFJLE9BQU8sSUFBSSxLQUFLLElBQUksVUFBVSxJQUFJLEtBQUssSUFBSSxXQUFXLElBQUksS0FBSyxDQUFDO0FBQzlHLENBQUM7QUFDRDs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxLQUFnQixFQUE4QixFQUFFO0lBQ3BGLElBQUksYUFBd0MsQ0FBQztJQUM3QyxJQUFJLGdCQUE4QyxDQUFDO0lBQ25ELElBQUksU0FBZ0MsQ0FBQztJQUNyQyxNQUFNLFlBQVksR0FBZ0MsRUFBRSxDQUFDO0lBQ3JELE1BQU0seUJBQXlCLEdBQTZDLEVBQUUsQ0FBQztJQUMvRSxNQUFNLGNBQWMsR0FBa0MsRUFBRSxDQUFDO0lBQ3pELE1BQU0sTUFBTSxHQUEyQixFQUFFLENBQUM7SUFDMUMsTUFBTSxTQUFTLEdBQTZCLEVBQUUsQ0FBQztJQUMvQyxNQUFNLHFCQUFxQixHQUFnRCxFQUFFLENBQUM7SUFDOUUsTUFBTSxLQUFLLEdBQXlCLEVBQUUsQ0FBQztJQUN2QyxNQUFNLFFBQVEsR0FBNEIsRUFBRSxDQUFDO0lBQzdDLE1BQU0sU0FBUyxHQUFtQyxFQUFFLENBQUM7SUFDckQsTUFBTSxZQUFZLEdBQWdDLEVBQUUsQ0FBQztJQUNyRCxNQUFNLHNCQUFzQixHQUFnQyxFQUFFLENBQUM7SUFFL0QsTUFB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O1lBQ1IsNkRBQTZEO1lBQzdELEdBQUcsQ0FBQyxZQUFZLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDM0UsR0FBRyxDQUFDLFlBQVksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsdUJBQXVCLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUM3RTtLQUNjLENBQUM7QUFDcEIsQ0FBQyxDQUFDLENBQUM7QUFoQk0sUUFBQSx5QkFBeUIsNkJBZ0IvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHtcbiAgQ2ZuR3JhcGhRTEFwaSxcbiAgQ2ZuR3JhcGhRTFNjaGVtYSxcbiAgQ2ZuQXBpS2V5LFxuICBDZm5SZXNvbHZlcixcbiAgQ2ZuRnVuY3Rpb25Db25maWd1cmF0aW9uLFxuICBDZm5EYXRhU291cmNlLFxuICBHcmFwaHFsQXBpLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBwc3luYyc7XG5pbXBvcnQgeyBDZm5UYWJsZSwgVGFibGUsIElUYWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1keW5hbW9kYic7XG5pbXBvcnQgeyBDZm5Sb2xlLCBSb2xlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBDZm5SZXNvdXJjZSwgTmVzdGVkU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBnZXRSZXNvdXJjZU5hbWUgfSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lci1jb3JlJztcbmltcG9ydCB7IENmbkZ1bmN0aW9uLCBGdW5jdGlvbiBhcyBMYW1iZGFGdW5jdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQW1wbGlmeUdyYXBocWxBcGlSZXNvdXJjZXMsIEZ1bmN0aW9uU2xvdCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEFtcGxpZnlEeW5hbW9EYlRhYmxlV3JhcHBlciB9IGZyb20gJy4uL2FtcGxpZnktZHluYW1vZGItdGFibGUtd3JhcHBlcic7XG5pbXBvcnQgeyB3YWxrQW5kUHJvY2Vzc05vZGVzIH0gZnJvbSAnLi9jb25zdHJ1Y3QtdHJlZSc7XG5cbi8qKlxuICogQ2hlY2sgaWYgYSByZXNvdXJjZSBpcyBpbXBsZW1lbnRpbmcgdGFibGUgaW50ZXJmYWNlXG4gKiBUaGUgcmVxdWlyZWQgcHJvcGVydGllcyBuZWVkIHRvIGJlIHByZXNlbnQgaW4gdGhlIGlucHV0XG4gKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2RrL2FwaS92Mi9kb2NzL2F3cy1jZGstbGliLmF3c19keW5hbW9kYi5JVGFibGUuaHRtbCNwcm9wZXJ0aWVzXG4gKiBAcGFyYW0gdGFibGUgdGFibGUgcmVzb3VyY2VcbiAqIEByZXR1cm5zIHdoZXRoZXIgdGhlIHJlc291cmNlIGlzIGEgSVRhYmxlIG9yIG5vdFxuICovXG5mdW5jdGlvbiBpc0lUYWJsZSh0YWJsZTogYW55KTogdGFibGUgaXMgSVRhYmxlIHtcbiAgcmV0dXJuICdlbnYnIGluIHRhYmxlICYmICdub2RlJyBpbiB0YWJsZSAmJiAnc3RhY2snIGluIHRhYmxlICYmICd0YWJsZUFybicgaW4gdGFibGUgJiYgJ3RhYmxlTmFtZScgaW4gdGFibGU7XG59XG4vKipcbiAqIEV2ZXJ5dGhpbmcgYmVsb3cgaGVyZSBpcyBpbnRlbmRlZCB0byBoZWxwIHVzIGdhdGhlciB0aGVcbiAqIG91dHB1dCB2YWx1ZXMgYW5kIHJlbmRlciBvdXQgdGhlIEwxIHJlc291cmNlcyBmb3IgYWNjZXNzLlxuICpcbiAqIFRoaXMgaXMgZG9uZSBieSByZWN1cnNpbmcgYWxvbmcgdGhlIGNvbnN0cnVjdCB0cmVlLCBhbmQgY2xhc3NpZnlpbmcgdGhlIGdlbmVyYXRlZCByZXNvdXJjZXMuXG4gKlxuICogQHBhcmFtIHNjb3BlIHJvb3QgdG8gc2VhcmNoIGZvciBnZW5lcmF0ZWQgcmVzb3VyY2UgYWdhaW5zdFxuICogQHJldHVybnMgYSBtYXBwaW5nIG9mIEwxIGFuZCBMMiBjb25zdHJ1Y3RzIGdlbmVyYXRlZCBieSB0aGUgR3JhcGhxbCBUcmFuc2Zvcm1lci5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEdlbmVyYXRlZFJlc291cmNlcyA9IChzY29wZTogQ29uc3RydWN0KTogQW1wbGlmeUdyYXBocWxBcGlSZXNvdXJjZXMgPT4ge1xuICBsZXQgY2ZuR3JhcGhxbEFwaTogQ2ZuR3JhcGhRTEFwaSB8IHVuZGVmaW5lZDtcbiAgbGV0IGNmbkdyYXBocWxTY2hlbWE6IENmbkdyYXBoUUxTY2hlbWEgfCB1bmRlZmluZWQ7XG4gIGxldCBjZm5BcGlLZXk6IENmbkFwaUtleSB8IHVuZGVmaW5lZDtcbiAgY29uc3QgY2ZuUmVzb2x2ZXJzOiBSZWNvcmQ8c3RyaW5nLCBDZm5SZXNvbHZlcj4gPSB7fTtcbiAgY29uc3QgY2ZuRnVuY3Rpb25Db25maWd1cmF0aW9uczogUmVjb3JkPHN0cmluZywgQ2ZuRnVuY3Rpb25Db25maWd1cmF0aW9uPiA9IHt9O1xuICBjb25zdCBjZm5EYXRhU291cmNlczogUmVjb3JkPHN0cmluZywgQ2ZuRGF0YVNvdXJjZT4gPSB7fTtcbiAgY29uc3QgdGFibGVzOiBSZWNvcmQ8c3RyaW5nLCBJVGFibGU+ID0ge307XG4gIGNvbnN0IGNmblRhYmxlczogUmVjb3JkPHN0cmluZywgQ2ZuVGFibGU+ID0ge307XG4gIGNvbnN0IGFtcGxpZnlEeW5hbW9EYlRhYmxlczogUmVjb3JkPHN0cmluZywgQW1wbGlmeUR5bmFtb0RiVGFibGVXcmFwcGVyPiA9IHt9O1xuICBjb25zdCByb2xlczogUmVjb3JkPHN0cmluZywgUm9sZT4gPSB7fTtcbiAgY29uc3QgY2ZuUm9sZXM6IFJlY29yZDxzdHJpbmcsIENmblJvbGU+ID0ge307XG4gIGNvbnN0IGZ1bmN0aW9uczogUmVjb3JkPHN0cmluZywgTGFtYmRhRnVuY3Rpb24+ID0ge307XG4gIGNvbnN0IGNmbkZ1bmN0aW9uczogUmVjb3JkPHN0cmluZywgQ2ZuRnVuY3Rpb24+ID0ge307XG4gIGNvbnN0IGFkZGl0aW9uYWxDZm5SZXNvdXJjZXM6IFJlY29yZDxzdHJpbmcsIENmblJlc291cmNlPiA9IHt9O1xuXG4gIGNvbnN0IGNsYXNzaWZ5Q29uc3RydWN0ID0gKGN1cnJlbnRTY29wZTogQ29uc3RydWN0KTogdm9pZCA9PiB7XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmbkdyYXBoUUxBcGkpIHtcbiAgICAgIGNmbkdyYXBocWxBcGkgPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5HcmFwaFFMU2NoZW1hKSB7XG4gICAgICBjZm5HcmFwaHFsU2NoZW1hID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY3VycmVudFNjb3BlIGluc3RhbmNlb2YgQ2ZuQXBpS2V5KSB7XG4gICAgICBjZm5BcGlLZXkgPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUmV0cmlldmUgcmVmZXJlbmNlIG5hbWUgZm9yIGluZGV4ZWQgcmVzb3VyY2VzLCBhbmQgYmFpbCBpZiBub25lIGlzIGZvdW5kLlxuICAgIGNvbnN0IHJlc291cmNlTmFtZSA9IGdldFJlc291cmNlTmFtZShjdXJyZW50U2NvcGUpO1xuICAgIGlmICghcmVzb3VyY2VOYW1lKSByZXR1cm47XG5cbiAgICBpZiAoY3VycmVudFNjb3BlIGluc3RhbmNlb2YgQ2ZuRGF0YVNvdXJjZSkge1xuICAgICAgY2ZuRGF0YVNvdXJjZXNbcmVzb3VyY2VOYW1lXSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmblJlc29sdmVyKSB7XG4gICAgICBjZm5SZXNvbHZlcnNbcmVzb3VyY2VOYW1lXSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmbkZ1bmN0aW9uQ29uZmlndXJhdGlvbikge1xuICAgICAgY2ZuRnVuY3Rpb25Db25maWd1cmF0aW9uc1tyZXNvdXJjZU5hbWVdID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY3VycmVudFNjb3BlIGluc3RhbmNlb2YgVGFibGUgfHwgaXNJVGFibGUoY3VycmVudFNjb3BlKSkge1xuICAgICAgdGFibGVzW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5UYWJsZSkge1xuICAgICAgY2ZuVGFibGVzW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChBbXBsaWZ5RHluYW1vRGJUYWJsZVdyYXBwZXIuaXNBbXBsaWZ5RHluYW1vRGJUYWJsZVJlc291cmNlKGN1cnJlbnRTY29wZSkpIHtcbiAgICAgIGFtcGxpZnlEeW5hbW9EYlRhYmxlc1tyZXNvdXJjZU5hbWVdID0gbmV3IEFtcGxpZnlEeW5hbW9EYlRhYmxlV3JhcHBlcihjdXJyZW50U2NvcGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY3VycmVudFNjb3BlIGluc3RhbmNlb2YgUm9sZSkge1xuICAgICAgcm9sZXNbcmVzb3VyY2VOYW1lXSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmblJvbGUpIHtcbiAgICAgIGNmblJvbGVzW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBMYW1iZGFGdW5jdGlvbikge1xuICAgICAgZnVuY3Rpb25zW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5GdW5jdGlvbikge1xuICAgICAgY2ZuRnVuY3Rpb25zW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5SZXNvdXJjZSkge1xuICAgICAgYWRkaXRpb25hbENmblJlc291cmNlc1tyZXNvdXJjZU5hbWVdID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfTtcblxuICBzY29wZS5ub2RlLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB3YWxrQW5kUHJvY2Vzc05vZGVzKGNoaWxkLCBjbGFzc2lmeUNvbnN0cnVjdCkpO1xuXG4gIGlmICghY2ZuR3JhcGhxbEFwaSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgdG8gZmluZCBBV1M6OkFwcFN5bmM6OkdyYXBoUUxBcGkgaW4gdGhlIGdlbmVyYXRlZCByZXNvdXJjZSBzY29wZS4nKTtcbiAgfVxuXG4gIGlmICghY2ZuR3JhcGhxbFNjaGVtYSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgdG8gZmluZCBBV1M6OkFwcFN5bmM6OkdyYXBoUUxTY2hlbWEgaW4gdGhlIGdlbmVyYXRlZCByZXNvdXJjZSBzY29wZS4nKTtcbiAgfVxuXG4gIGNvbnN0IG5lc3RlZFN0YWNrczogUmVjb3JkPHN0cmluZywgTmVzdGVkU3RhY2s+ID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIHNjb3BlLm5vZGUuY2hpbGRyZW4uZmlsdGVyKE5lc3RlZFN0YWNrLmlzTmVzdGVkU3RhY2spLm1hcCgobmVzdGVkU3RhY2s6IE5lc3RlZFN0YWNrKSA9PiBbbmVzdGVkU3RhY2subm9kZS5pZCwgbmVzdGVkU3RhY2tdKSxcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIGdyYXBocWxBcGk6IEdyYXBocWxBcGkuZnJvbUdyYXBocWxBcGlBdHRyaWJ1dGVzKHNjb3BlLCAnTDJHcmFwaHFsQXBpJywgeyBncmFwaHFsQXBpSWQ6IGNmbkdyYXBocWxBcGkuYXR0ckFwaUlkIH0pLFxuICAgIHRhYmxlcyxcbiAgICByb2xlcyxcbiAgICBmdW5jdGlvbnMsXG4gICAgbmVzdGVkU3RhY2tzLFxuICAgIGNmblJlc291cmNlczoge1xuICAgICAgY2ZuR3JhcGhxbEFwaSxcbiAgICAgIGNmbkdyYXBocWxTY2hlbWEsXG4gICAgICBjZm5BcGlLZXksXG4gICAgICBjZm5SZXNvbHZlcnMsXG4gICAgICBjZm5GdW5jdGlvbkNvbmZpZ3VyYXRpb25zLFxuICAgICAgY2ZuRGF0YVNvdXJjZXMsXG4gICAgICBjZm5UYWJsZXMsXG4gICAgICBhbXBsaWZ5RHluYW1vRGJUYWJsZXMsXG4gICAgICBjZm5Sb2xlcyxcbiAgICAgIGNmbkZ1bmN0aW9ucyxcbiAgICAgIGFkZGl0aW9uYWxDZm5SZXNvdXJjZXMsXG4gICAgfSxcbiAgfTtcbn07XG5cbi8qKlxuICogR2V0IHRoZSBmdW5jdGlvbiBzbG90cyBnZW5lcmF0ZWQgYnkgdGhlIEdyYXBocWwgdHJhbnNmb3JtIG9wZXJhdGlvbiwgYWRoZXJpbmcgdG8gdGhlIEZ1bmN0aW9uU2xvdCBpbnRlcmZhY2UuXG4gKiBAcGFyYW0gZ2VuZXJhdGVkUmVzb2x2ZXJzIHRoZSByZXNvbHZlcnMgZ2VuZXJhdGVkIGJ5IHRoZSB0cmFuc2Zvcm1lciB0byBzcGl0IGJhY2sgb3V0LlxuICogQHJldHVybnMgdGhlIGxpc3Qgb2YgZ2VuZXJhdGVkIGZ1bmN0aW9uIHNsb3RzIGluIHRoZSB0cmFuc2Zvcm1lciwgaW4gb3JkZXIgdG8gZmFjaWxpdGF0ZSBvdmVycmlkZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRHZW5lcmF0ZWRGdW5jdGlvblNsb3RzID0gKGdlbmVyYXRlZFJlc29sdmVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IEZ1bmN0aW9uU2xvdFtdID0+XG4gIE9iamVjdC5lbnRyaWVzKGdlbmVyYXRlZFJlc29sdmVycylcbiAgICAuZmlsdGVyKChbbmFtZV0pID0+IG5hbWUuc3BsaXQoJy4nKS5sZW5ndGggPT09IDYpXG4gICAgLm1hcCgoW25hbWUsIHJlc29sdmVyQ29kZV0pID0+IHtcbiAgICAgIGNvbnN0IFt0eXBlTmFtZSwgZmllbGROYW1lLCBzbG90TmFtZSwgc2xvdEluZGV4LCB0ZW1wbGF0ZVR5cGVdID0gbmFtZS5zcGxpdCgnLicpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZU5hbWUsXG4gICAgICAgIGZpZWxkTmFtZSxcbiAgICAgICAgc2xvdE5hbWUsXG4gICAgICAgIHNsb3RJbmRleDogTnVtYmVyLnBhcnNlSW50KHNsb3RJbmRleCwgMTApLFxuICAgICAgICBmdW5jdGlvbjoge1xuICAgICAgICAgIC8vIFRPRE86IHRoaXMgc2hvdWxkIGNvbnNvbGlkYXRlIHJlcS9yZXEgdmFsdWVzIGJhY2sgdG9nZXRoZXJcbiAgICAgICAgICAuLi4odGVtcGxhdGVUeXBlID09PSAncmVxJyA/IHsgcmVxdWVzdE1hcHBpbmdUZW1wbGF0ZTogcmVzb2x2ZXJDb2RlIH0gOiB7fSksXG4gICAgICAgICAgLi4uKHRlbXBsYXRlVHlwZSA9PT0gJ3JlcycgPyB7IHJlc3BvbnNlTWFwcGluZ1RlbXBsYXRlOiByZXNvbHZlckNvZGUgfSA6IHt9KSxcbiAgICAgICAgfSxcbiAgICAgIH0gYXMgRnVuY3Rpb25TbG90O1xuICAgIH0pO1xuIl19
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0LWV4cG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvY29uc3RydWN0LWV4cG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseURBUWlDO0FBQ2pDLDJEQUFtRTtBQUNuRSxpREFBb0Q7QUFDcEQsNkNBQXVEO0FBQ3ZELG9GQUF3RTtBQUN4RSx1REFBaUY7QUFFakYsc0ZBQWdGO0FBQ2hGLHFEQUF1RDtBQUV2RDs7Ozs7O0dBTUc7QUFDSCxTQUFTLFFBQVEsQ0FBQyxLQUFVO0lBQzFCLE9BQU8sS0FBSyxJQUFJLEtBQUssSUFBSSxNQUFNLElBQUksS0FBSyxJQUFJLE9BQU8sSUFBSSxLQUFLLElBQUksVUFBVSxJQUFJLEtBQUssSUFBSSxXQUFXLElBQUksS0FBSyxDQUFDO0FBQzlHLENBQUM7QUFDRDs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxLQUFnQixFQUE4QixFQUFFO0lBQ3BGLElBQUksYUFBd0MsQ0FBQztJQUM3QyxJQUFJLGdCQUE4QyxDQUFDO0lBQ25ELElBQUksU0FBZ0MsQ0FBQztJQUNyQyxNQUFNLFlBQVksR0FBZ0MsRUFBRSxDQUFDO0lBQ3JELE1BQU0seUJBQXlCLEdBQTZDLEVBQUUsQ0FBQztJQUMvRSxNQUFNLGNBQWMsR0FBa0MsRUFBRSxDQUFDO0lBQ3pELE1BQU0sTUFBTSxHQUEyQixFQUFFLENBQUM7SUFDMUMsTUFBTSxTQUFTLEdBQTZCLEVBQUUsQ0FBQztJQUMvQyxNQUFNLHFCQUFxQixHQUFnRCxFQUFFLENBQUM7SUFDOUUsTUFBTSxLQUFLLEdBQXlCLEVBQUUsQ0FBQztJQUN2QyxNQUFNLFFBQVEsR0FBNEIsRUFBRSxDQUFDO0lBQzdDLE1BQU0sU0FBUyxHQUFtQyxFQUFFLENBQUM7SUFDckQsTUFBTSxZQUFZLEdBQWdDLEVBQUUsQ0FBQztJQUNyRCxNQUFNLHNCQUFzQixHQUFnQyxFQUFFLENBQUM7SUFFL0QsTUFB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QUFZLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pGLE9BQU87UUFDTCxRQUFRO1FBQ1IsU0FBUztRQUNULFFBQVE7UUFDUixTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1FBQ3pDLFFBQVEsRUFBRTtZQUNSLDZEQUE2RDtZQUM3RCxHQUFHLENBQUMsWUFBWSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzNFLEdBQUcsQ0FBQyxZQUFZLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLHVCQUF1QixFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDN0U7S0FDYyxDQUFDO0FBQ3BCLENBQUMsQ0FBQyxDQUFDO0FBaEJNLFFBQUEseUJBQXlCLDZCQWdCL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7XG4gIENmbkdyYXBoUUxBcGksXG4gIENmbkdyYXBoUUxTY2hlbWEsXG4gIENmbkFwaUtleSxcbiAgQ2ZuUmVzb2x2ZXIsXG4gIENmbkZ1bmN0aW9uQ29uZmlndXJhdGlvbixcbiAgQ2ZuRGF0YVNvdXJjZSxcbiAgR3JhcGhxbEFwaSxcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWFwcHN5bmMnO1xuaW1wb3J0IHsgQ2ZuVGFibGUsIFRhYmxlLCBJVGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGInO1xuaW1wb3J0IHsgQ2ZuUm9sZSwgUm9sZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQ2ZuUmVzb3VyY2UsIE5lc3RlZFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgZ2V0UmVzb3VyY2VOYW1lIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2dyYXBocWwtdHJhbnNmb3JtZXItY29yZSc7XG5pbXBvcnQgeyBDZm5GdW5jdGlvbiwgRnVuY3Rpb24gYXMgTGFtYmRhRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IEFtcGxpZnlHcmFwaHFsQXBpUmVzb3VyY2VzLCBGdW5jdGlvblNsb3QgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBBbXBsaWZ5RHluYW1vRGJUYWJsZVdyYXBwZXIgfSBmcm9tICcuLi9hbXBsaWZ5LWR5bmFtb2RiLXRhYmxlLXdyYXBwZXInO1xuaW1wb3J0IHsgd2Fsa0FuZFByb2Nlc3NOb2RlcyB9IGZyb20gJy4vY29uc3RydWN0LXRyZWUnO1xuXG4vKipcbiAqIENoZWNrIGlmIGEgcmVzb3VyY2UgaXMgaW1wbGVtZW50aW5nIHRhYmxlIGludGVyZmFjZVxuICogVGhlIHJlcXVpcmVkIHByb3BlcnRpZXMgbmVlZCB0byBiZSBwcmVzZW50IGluIHRoZSBpbnB1dFxuICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9hcGkvdjIvZG9jcy9hd3MtY2RrLWxpYi5hd3NfZHluYW1vZGIuSVRhYmxlLmh0bWwjcHJvcGVydGllc1xuICogQHBhcmFtIHRhYmxlIHRhYmxlIHJlc291cmNlXG4gKiBAcmV0dXJucyB3aGV0aGVyIHRoZSByZXNvdXJjZSBpcyBhIElUYWJsZSBvciBub3RcbiAqL1xuZnVuY3Rpb24gaXNJVGFibGUodGFibGU6IGFueSk6IHRhYmxlIGlzIElUYWJsZSB7XG4gIHJldHVybiAnZW52JyBpbiB0YWJsZSAmJiAnbm9kZScgaW4gdGFibGUgJiYgJ3N0YWNrJyBpbiB0YWJsZSAmJiAndGFibGVBcm4nIGluIHRhYmxlICYmICd0YWJsZU5hbWUnIGluIHRhYmxlO1xufVxuLyoqXG4gKiBFdmVyeXRoaW5nIGJlbG93IGhlcmUgaXMgaW50ZW5kZWQgdG8gaGVscCB1cyBnYXRoZXIgdGhlXG4gKiBvdXRwdXQgdmFsdWVzIGFuZCByZW5kZXIgb3V0IHRoZSBMMSByZXNvdXJjZXMgZm9yIGFjY2Vzcy5cbiAqXG4gKiBUaGlzIGlzIGRvbmUgYnkgcmVjdXJzaW5nIGFsb25nIHRoZSBjb25zdHJ1Y3QgdHJlZSwgYW5kIGNsYXNzaWZ5aW5nIHRoZSBnZW5lcmF0ZWQgcmVzb3VyY2VzLlxuICpcbiAqIEBwYXJhbSBzY29wZSByb290IHRvIHNlYXJjaCBmb3IgZ2VuZXJhdGVkIHJlc291cmNlIGFnYWluc3RcbiAqIEByZXR1cm5zIGEgbWFwcGluZyBvZiBMMSBhbmQgTDIgY29uc3RydWN0cyBnZW5lcmF0ZWQgYnkgdGhlIEdyYXBocWwgVHJhbnNmb3JtZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRHZW5lcmF0ZWRSZXNvdXJjZXMgPSAoc2NvcGU6IENvbnN0cnVjdCk6IEFtcGxpZnlHcmFwaHFsQXBpUmVzb3VyY2VzID0+IHtcbiAgbGV0IGNmbkdyYXBocWxBcGk6IENmbkdyYXBoUUxBcGkgfCB1bmRlZmluZWQ7XG4gIGxldCBjZm5HcmFwaHFsU2NoZW1hOiBDZm5HcmFwaFFMU2NoZW1hIHwgdW5kZWZpbmVkO1xuICBsZXQgY2ZuQXBpS2V5OiBDZm5BcGlLZXkgfCB1bmRlZmluZWQ7XG4gIGNvbnN0IGNmblJlc29sdmVyczogUmVjb3JkPHN0cmluZywgQ2ZuUmVzb2x2ZXI+ID0ge307XG4gIGNvbnN0IGNmbkZ1bmN0aW9uQ29uZmlndXJhdGlvbnM6IFJlY29yZDxzdHJpbmcsIENmbkZ1bmN0aW9uQ29uZmlndXJhdGlvbj4gPSB7fTtcbiAgY29uc3QgY2ZuRGF0YVNvdXJjZXM6IFJlY29yZDxzdHJpbmcsIENmbkRhdGFTb3VyY2U+ID0ge307XG4gIGNvbnN0IHRhYmxlczogUmVjb3JkPHN0cmluZywgSVRhYmxlPiA9IHt9O1xuICBjb25zdCBjZm5UYWJsZXM6IFJlY29yZDxzdHJpbmcsIENmblRhYmxlPiA9IHt9O1xuICBjb25zdCBhbXBsaWZ5RHluYW1vRGJUYWJsZXM6IFJlY29yZDxzdHJpbmcsIEFtcGxpZnlEeW5hbW9EYlRhYmxlV3JhcHBlcj4gPSB7fTtcbiAgY29uc3Qgcm9sZXM6IFJlY29yZDxzdHJpbmcsIFJvbGU+ID0ge307XG4gIGNvbnN0IGNmblJvbGVzOiBSZWNvcmQ8c3RyaW5nLCBDZm5Sb2xlPiA9IHt9O1xuICBjb25zdCBmdW5jdGlvbnM6IFJlY29yZDxzdHJpbmcsIExhbWJkYUZ1bmN0aW9uPiA9IHt9O1xuICBjb25zdCBjZm5GdW5jdGlvbnM6IFJlY29yZDxzdHJpbmcsIENmbkZ1bmN0aW9uPiA9IHt9O1xuICBjb25zdCBhZGRpdGlvbmFsQ2ZuUmVzb3VyY2VzOiBSZWNvcmQ8c3RyaW5nLCBDZm5SZXNvdXJjZT4gPSB7fTtcblxuICBjb25zdCBjbGFzc2lmeUNvbnN0cnVjdCA9IChjdXJyZW50U2NvcGU6IENvbnN0cnVjdCk6IHZvaWQgPT4ge1xuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5HcmFwaFFMQXBpKSB7XG4gICAgICBjZm5HcmFwaHFsQXBpID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY3VycmVudFNjb3BlIGluc3RhbmNlb2YgQ2ZuR3JhcGhRTFNjaGVtYSkge1xuICAgICAgY2ZuR3JhcGhxbFNjaGVtYSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmbkFwaUtleSkge1xuICAgICAgY2ZuQXBpS2V5ID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFJldHJpZXZlIHJlZmVyZW5jZSBuYW1lIGZvciBpbmRleGVkIHJlc291cmNlcywgYW5kIGJhaWwgaWYgbm9uZSBpcyBmb3VuZC5cbiAgICBjb25zdCByZXNvdXJjZU5hbWUgPSBnZXRSZXNvdXJjZU5hbWUoY3VycmVudFNjb3BlKTtcbiAgICBpZiAoIXJlc291cmNlTmFtZSkgcmV0dXJuO1xuXG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmbkRhdGFTb3VyY2UpIHtcbiAgICAgIGNmbkRhdGFTb3VyY2VzW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5SZXNvbHZlcikge1xuICAgICAgY2ZuUmVzb2x2ZXJzW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5GdW5jdGlvbkNvbmZpZ3VyYXRpb24pIHtcbiAgICAgIGNmbkZ1bmN0aW9uQ29uZmlndXJhdGlvbnNbcmVzb3VyY2VOYW1lXSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIFRhYmxlIHx8IGlzSVRhYmxlKGN1cnJlbnRTY29wZSkpIHtcbiAgICAgIHRhYmxlc1tyZXNvdXJjZU5hbWVdID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY3VycmVudFNjb3BlIGluc3RhbmNlb2YgQ2ZuVGFibGUpIHtcbiAgICAgIGNmblRhYmxlc1tyZXNvdXJjZU5hbWVdID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoQW1wbGlmeUR5bmFtb0RiVGFibGVXcmFwcGVyLmlzQW1wbGlmeUR5bmFtb0RiVGFibGVSZXNvdXJjZShjdXJyZW50U2NvcGUpKSB7XG4gICAgICBhbXBsaWZ5RHluYW1vRGJUYWJsZXNbcmVzb3VyY2VOYW1lXSA9IG5ldyBBbXBsaWZ5RHluYW1vRGJUYWJsZVdyYXBwZXIoY3VycmVudFNjb3BlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIFJvbGUpIHtcbiAgICAgIHJvbGVzW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5Sb2xlKSB7XG4gICAgICBjZm5Sb2xlc1tyZXNvdXJjZU5hbWVdID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY3VycmVudFNjb3BlIGluc3RhbmNlb2YgTGFtYmRhRnVuY3Rpb24pIHtcbiAgICAgIGZ1bmN0aW9uc1tyZXNvdXJjZU5hbWVdID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY3VycmVudFNjb3BlIGluc3RhbmNlb2YgQ2ZuRnVuY3Rpb24pIHtcbiAgICAgIGNmbkZ1bmN0aW9uc1tyZXNvdXJjZU5hbWVdID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY3VycmVudFNjb3BlIGluc3RhbmNlb2YgQ2ZuUmVzb3VyY2UpIHtcbiAgICAgIGFkZGl0aW9uYWxDZm5SZXNvdXJjZXNbcmVzb3VyY2VOYW1lXSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH07XG5cbiAgc2NvcGUubm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4gd2Fsa0FuZFByb2Nlc3NOb2RlcyhjaGlsZCwgY2xhc3NpZnlDb25zdHJ1Y3QpKTtcblxuICBpZiAoIWNmbkdyYXBocWxBcGkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHRvIGZpbmQgQVdTOjpBcHBTeW5jOjpHcmFwaFFMQXBpIGluIHRoZSBnZW5lcmF0ZWQgcmVzb3VyY2Ugc2NvcGUuJyk7XG4gIH1cblxuICBpZiAoIWNmbkdyYXBocWxTY2hlbWEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHRvIGZpbmQgQVdTOjpBcHBTeW5jOjpHcmFwaFFMU2NoZW1hIGluIHRoZSBnZW5lcmF0ZWQgcmVzb3VyY2Ugc2NvcGUuJyk7XG4gIH1cblxuICBjb25zdCBuZXN0ZWRTdGFja3M6IFJlY29yZDxzdHJpbmcsIE5lc3RlZFN0YWNrPiA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBzY29wZS5ub2RlLmNoaWxkcmVuLmZpbHRlcihOZXN0ZWRTdGFjay5pc05lc3RlZFN0YWNrKS5tYXAoKG5lc3RlZFN0YWNrOiBOZXN0ZWRTdGFjaykgPT4gW25lc3RlZFN0YWNrLm5vZGUuaWQsIG5lc3RlZFN0YWNrXSksXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBncmFwaHFsQXBpOiBHcmFwaHFsQXBpLmZyb21HcmFwaHFsQXBpQXR0cmlidXRlcyhzY29wZSwgJ0wyR3JhcGhxbEFwaScsIHsgZ3JhcGhxbEFwaUlkOiBjZm5HcmFwaHFsQXBpLmF0dHJBcGlJZCB9KSxcbiAgICB0YWJsZXMsXG4gICAgcm9sZXMsXG4gICAgZnVuY3Rpb25zLFxuICAgIG5lc3RlZFN0YWNrcyxcbiAgICBjZm5SZXNvdXJjZXM6IHtcbiAgICAgIGNmbkdyYXBocWxBcGksXG4gICAgICBjZm5HcmFwaHFsU2NoZW1hLFxuICAgICAgY2ZuQXBpS2V5LFxuICAgICAgY2ZuUmVzb2x2ZXJzLFxuICAgICAgY2ZuRnVuY3Rpb25Db25maWd1cmF0aW9ucyxcbiAgICAgIGNmbkRhdGFTb3VyY2VzLFxuICAgICAgY2ZuVGFibGVzLFxuICAgICAgYW1wbGlmeUR5bmFtb0RiVGFibGVzLFxuICAgICAgY2ZuUm9sZXMsXG4gICAgICBjZm5GdW5jdGlvbnMsXG4gICAgICBhZGRpdGlvbmFsQ2ZuUmVzb3VyY2VzLFxuICAgIH0sXG4gIH07XG59O1xuXG4vKipcbiAqIEdldCB0aGUgZnVuY3Rpb24gc2xvdHMgZ2VuZXJhdGVkIGJ5IHRoZSBHcmFwaHFsIHRyYW5zZm9ybSBvcGVyYXRpb24sIGFkaGVyaW5nIHRvIHRoZSBGdW5jdGlvblNsb3QgaW50ZXJmYWNlLlxuICogQHBhcmFtIGdlbmVyYXRlZFJlc29sdmVycyB0aGUgcmVzb2x2ZXJzIGdlbmVyYXRlZCBieSB0aGUgdHJhbnNmb3JtZXIgdG8gc3BpdCBiYWNrIG91dC5cbiAqIEByZXR1cm5zIHRoZSBsaXN0IG9mIGdlbmVyYXRlZCBmdW5jdGlvbiBzbG90cyBpbiB0aGUgdHJhbnNmb3JtZXIsIGluIG9yZGVyIHRvIGZhY2lsaXRhdGUgb3ZlcnJpZGVzLlxuICovXG5leHBvcnQgY29uc3QgZ2V0R2VuZXJhdGVkRnVuY3Rpb25TbG90cyA9IChnZW5lcmF0ZWRSZXNvbHZlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBGdW5jdGlvblNsb3RbXSA9PlxuICBPYmplY3QuZW50cmllcyhnZW5lcmF0ZWRSZXNvbHZlcnMpXG4gICAgLmZpbHRlcigoW25hbWVdKSA9PiBuYW1lLnNwbGl0KCcuJykubGVuZ3RoID09PSA2KVxuICAgIC5tYXAoKFtuYW1lLCByZXNvbHZlckNvZGVdKSA9PiB7XG4gICAgICBjb25zdCBbdHlwZU5hbWUsIGZpZWxkTmFtZSwgc2xvdE5hbWUsIHNsb3RJbmRleCwgdGVtcGxhdGVUeXBlXSA9IG5hbWUuc3BsaXQoJy4nKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGVOYW1lLFxuICAgICAgICBmaWVsZE5hbWUsXG4gICAgICAgIHNsb3ROYW1lLFxuICAgICAgICBzbG90SW5kZXg6IE51bWJlci5wYXJzZUludChzbG90SW5kZXgsIDEwKSxcbiAgICAgICAgZnVuY3Rpb246IHtcbiAgICAgICAgICAvLyBUT0RPOiB0aGlzIHNob3VsZCBjb25zb2xpZGF0ZSByZXEvcmVxIHZhbHVlcyBiYWNrIHRvZ2V0aGVyXG4gICAgICAgICAgLi4uKHRlbXBsYXRlVHlwZSA9PT0gJ3JlcScgPyB7IHJlcXVlc3RNYXBwaW5nVGVtcGxhdGU6IHJlc29sdmVyQ29kZSB9IDoge30pLFxuICAgICAgICAgIC4uLih0ZW1wbGF0ZVR5cGUgPT09ICdyZXMnID8geyByZXNwb25zZU1hcHBpbmdUZW1wbGF0ZTogcmVzb2x2ZXJDb2RlIH0gOiB7fSksXG4gICAgICAgIH0sXG4gICAgICB9IGFzIEZ1bmN0aW9uU2xvdDtcbiAgICB9KTtcbiJdfQ==
@@ -25,4 +25,4 @@ const walkAndProcessNodes = (currentScope, processNode) => {
25
25
  currentScope.node.children.forEach((child) => (0, exports.walkAndProcessNodes)(child, processNode));
26
26
  };
27
27
  exports.walkAndProcessNodes = walkAndProcessNodes;
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0LXRyZWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvY29uc3RydWN0LXRyZWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0E7Ozs7R0FJRztBQUNJLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFnQixFQUFFLFlBQVksR0FBRyxLQUFLLEVBQVMsRUFBRTtJQUNoRixNQUFNLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsaUJBQWlCLElBQUksV0FBVyxDQUFDLENBQUM7SUFDdEcsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ2xDLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztLQUN0RDtJQUNELE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzlFLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBVSxDQUFDO0FBQzVCLENBQUMsQ0FBQztBQVBXLFFBQUEsZ0JBQWdCLG9CQU8zQjtBQUVGOzs7O0dBSUc7QUFDSSxNQUFNLG1CQUFtQixHQUFHLENBQUMsWUFBdUIsRUFBRSxXQUF1QyxFQUFRLEVBQUU7SUFDNUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzFCLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBQSwyQkFBbUIsRUFBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztBQUN6RixDQUFDLENBQUM7QUFIVyxRQUFBLG1CQUFtQix1QkFHOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIEdpdmVuIGEgc2NvcGUsIHNlYXJjaCB1cCBmb3IgdGhlIHBhcmVudCBzdGFjay4gVGhpcyBzaG91bGQgYmUgdGhlIG5lYXJlc3Qgc3RhY2sgb2JqZWN0LlxuICogQHBhcmFtIHNjb3BlIHRoZSBzY29wZSB0byBzZWFyY2ggdXAgYWdhaW5zdC5cbiAqIEByZXR1cm5zIHRoZSBzdGFjaywgaWYgb25lIGNhbiBiZSBmb3VuZCwgZWxzZSB0aHJvd3MgYW4gZXJyb3IuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRTdGFja0ZvclNjb3BlID0gKHNjb3BlOiBDb25zdHJ1Y3QsIGdldFJvb3RTdGFjayA9IGZhbHNlKTogU3RhY2sgPT4ge1xuICBjb25zdCBzdGFja3NJbkhpZXJhcmNoeSA9IHNjb3BlLm5vZGUuc2NvcGVzLmZpbHRlcigocGFyZW50U2NvcGUpID0+ICd0ZW1wbGF0ZU9wdGlvbnMnIGluIHBhcmVudFNjb3BlKTtcbiAgaWYgKHN0YWNrc0luSGllcmFyY2h5Lmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTm8gU3RhY2sgRm91bmQgaW4gQ29uc3RydWN0IFNjb3BlJyk7XG4gIH1cbiAgY29uc3Qgc3RhY2tzID0gZ2V0Um9vdFN0YWNrID8gc3RhY2tzSW5IaWVyYXJjaHkgOiBzdGFja3NJbkhpZXJhcmNoeS5yZXZlcnNlKCk7XG4gIHJldHVybiBzdGFja3NbMF0gYXMgU3RhY2s7XG59O1xuXG4vKipcbiAqIFV0aWxpdHkgdG8gaXRlcmF0aXZlbHkgd2FsayB0aGUgY29uc3RydWN0IHRyZWUgc3RhcnRpbmcgYXQgYSBwYXJ0aWN1bGFyIG5vZGUsIGV4ZWN1dGluZyBhIG5vZGUgcHJvY2Vzc29yIGF0IGVhY2ggc3RlcC5cbiAqIEBwYXJhbSBjdXJyZW50U2NvcGUgdGhlIHNjb3BlIHRvIHByb2Nlc3MuXG4gKiBAcGFyYW0gcHJvY2Vzc05vZGUgdGhlIGZuIHRvIGludm9rZSBvbiB3YWxrLlxuICovXG5leHBvcnQgY29uc3Qgd2Fsa0FuZFByb2Nlc3NOb2RlcyA9IChjdXJyZW50U2NvcGU6IENvbnN0cnVjdCwgcHJvY2Vzc05vZGU6IChzY29wZTogQ29uc3RydWN0KSA9PiB2b2lkKTogdm9pZCA9PiB7XG4gIHByb2Nlc3NOb2RlKGN1cnJlbnRTY29wZSk7XG4gIGN1cnJlbnRTY29wZS5ub2RlLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB3YWxrQW5kUHJvY2Vzc05vZGVzKGNoaWxkLCBwcm9jZXNzTm9kZSkpO1xufTtcbiJdfQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0LXRyZWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvY29uc3RydWN0LXRyZWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0E7Ozs7R0FJRztBQUNJLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFnQixFQUFFLFlBQVksR0FBRyxLQUFLLEVBQVMsRUFBRTtJQUNoRixNQUFNLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsaUJBQWlCLElBQUksV0FBVyxDQUFDLENBQUM7SUFDdEcsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM5RSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQVUsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFQVyxRQUFBLGdCQUFnQixvQkFPM0I7QUFFRjs7OztHQUlHO0FBQ0ksTUFBTSxtQkFBbUIsR0FBRyxDQUFDLFlBQXVCLEVBQUUsV0FBdUMsRUFBUSxFQUFFO0lBQzVHLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxQixZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUEsMkJBQW1CLEVBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7QUFDekYsQ0FBQyxDQUFDO0FBSFcsUUFBQSxtQkFBbUIsdUJBRzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBHaXZlbiBhIHNjb3BlLCBzZWFyY2ggdXAgZm9yIHRoZSBwYXJlbnQgc3RhY2suIFRoaXMgc2hvdWxkIGJlIHRoZSBuZWFyZXN0IHN0YWNrIG9iamVjdC5cbiAqIEBwYXJhbSBzY29wZSB0aGUgc2NvcGUgdG8gc2VhcmNoIHVwIGFnYWluc3QuXG4gKiBAcmV0dXJucyB0aGUgc3RhY2ssIGlmIG9uZSBjYW4gYmUgZm91bmQsIGVsc2UgdGhyb3dzIGFuIGVycm9yLlxuICovXG5leHBvcnQgY29uc3QgZ2V0U3RhY2tGb3JTY29wZSA9IChzY29wZTogQ29uc3RydWN0LCBnZXRSb290U3RhY2sgPSBmYWxzZSk6IFN0YWNrID0+IHtcbiAgY29uc3Qgc3RhY2tzSW5IaWVyYXJjaHkgPSBzY29wZS5ub2RlLnNjb3Blcy5maWx0ZXIoKHBhcmVudFNjb3BlKSA9PiAndGVtcGxhdGVPcHRpb25zJyBpbiBwYXJlbnRTY29wZSk7XG4gIGlmIChzdGFja3NJbkhpZXJhcmNoeS5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIFN0YWNrIEZvdW5kIGluIENvbnN0cnVjdCBTY29wZScpO1xuICB9XG4gIGNvbnN0IHN0YWNrcyA9IGdldFJvb3RTdGFjayA/IHN0YWNrc0luSGllcmFyY2h5IDogc3RhY2tzSW5IaWVyYXJjaHkucmV2ZXJzZSgpO1xuICByZXR1cm4gc3RhY2tzWzBdIGFzIFN0YWNrO1xufTtcblxuLyoqXG4gKiBVdGlsaXR5IHRvIGl0ZXJhdGl2ZWx5IHdhbGsgdGhlIGNvbnN0cnVjdCB0cmVlIHN0YXJ0aW5nIGF0IGEgcGFydGljdWxhciBub2RlLCBleGVjdXRpbmcgYSBub2RlIHByb2Nlc3NvciBhdCBlYWNoIHN0ZXAuXG4gKiBAcGFyYW0gY3VycmVudFNjb3BlIHRoZSBzY29wZSB0byBwcm9jZXNzLlxuICogQHBhcmFtIHByb2Nlc3NOb2RlIHRoZSBmbiB0byBpbnZva2Ugb24gd2Fsay5cbiAqL1xuZXhwb3J0IGNvbnN0IHdhbGtBbmRQcm9jZXNzTm9kZXMgPSAoY3VycmVudFNjb3BlOiBDb25zdHJ1Y3QsIHByb2Nlc3NOb2RlOiAoc2NvcGU6IENvbnN0cnVjdCkgPT4gdm9pZCk6IHZvaWQgPT4ge1xuICBwcm9jZXNzTm9kZShjdXJyZW50U2NvcGUpO1xuICBjdXJyZW50U2NvcGUubm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4gd2Fsa0FuZFByb2Nlc3NOb2RlcyhjaGlsZCwgcHJvY2Vzc05vZGUpKTtcbn07XG4iXX0=