@aws-cdk/aws-glue-alpha 2.268.0-alpha.0 → 2.270.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/.jsii +1820 -1612
  2. package/.jsii.tabl.json.gz +0 -0
  3. package/.warnings.jsii.js +1649 -10
  4. package/README.md +105 -35
  5. package/adr/job-arguments.md +212 -0
  6. package/lib/catalog.js +88 -4
  7. package/lib/code.js +59 -4
  8. package/lib/connection.d.ts +44 -29
  9. package/lib/connection.js +147 -31
  10. package/lib/constants.d.ts +17 -0
  11. package/lib/constants.js +20 -2
  12. package/lib/data-format.js +43 -6
  13. package/lib/data-quality-ruleset.js +60 -4
  14. package/lib/database.js +48 -2
  15. package/lib/external-table.js +48 -2
  16. package/lib/jobs/job.d.ts +90 -9
  17. package/lib/jobs/job.js +219 -38
  18. package/lib/jobs/pyspark-etl-job.d.ts +1 -3
  19. package/lib/jobs/pyspark-etl-job.js +28 -14
  20. package/lib/jobs/pyspark-flex-etl-job.d.ts +1 -3
  21. package/lib/jobs/pyspark-flex-etl-job.js +28 -14
  22. package/lib/jobs/pyspark-streaming-job.d.ts +1 -3
  23. package/lib/jobs/pyspark-streaming-job.js +28 -14
  24. package/lib/jobs/python-shell-job.d.ts +20 -7
  25. package/lib/jobs/python-shell-job.js +49 -33
  26. package/lib/jobs/ray-job.js +8 -13
  27. package/lib/jobs/scala-spark-etl-job.d.ts +1 -3
  28. package/lib/jobs/scala-spark-etl-job.js +29 -14
  29. package/lib/jobs/scala-spark-flex-etl-job.d.ts +1 -3
  30. package/lib/jobs/scala-spark-flex-etl-job.js +29 -14
  31. package/lib/jobs/scala-spark-streaming-job.d.ts +1 -3
  32. package/lib/jobs/scala-spark-streaming-job.js +29 -14
  33. package/lib/jobs/spark-job.d.ts +9 -7
  34. package/lib/jobs/spark-job.js +26 -32
  35. package/lib/partition-projection.d.ts +36 -47
  36. package/lib/partition-projection.js +34 -40
  37. package/lib/s3-table.js +106 -5
  38. package/lib/schema.js +50 -3
  39. package/lib/security-configuration.js +60 -5
  40. package/lib/storage-parameter.js +91 -2
  41. package/lib/table-base.js +32 -2
  42. package/lib/triggers/trigger-options.d.ts +102 -42
  43. package/lib/triggers/trigger-options.js +242 -3
  44. package/lib/triggers/workflow.d.ts +31 -47
  45. package/lib/triggers/workflow.js +87 -142
  46. package/package.json +10 -10
@@ -8,7 +8,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
8
8
  */
9
9
  class InputFormat {
10
10
  className;
11
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.InputFormat", version: "2.268.0-alpha.0" };
11
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.InputFormat", version: "2.270.0-alpha.0" };
12
12
  /**
13
13
  * InputFormat for Avro files.
14
14
  *
@@ -44,6 +44,15 @@ class InputFormat {
44
44
  static TEXT = new InputFormat('org.apache.hadoop.mapred.TextInputFormat');
45
45
  constructor(className) {
46
46
  this.className = className;
47
+ try {
48
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.InputFormat", "");
49
+ }
50
+ catch (error) {
51
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
52
+ Error.captureStackTrace(error, InputFormat);
53
+ }
54
+ throw error;
55
+ }
47
56
  }
48
57
  }
49
58
  exports.InputFormat = InputFormat;
@@ -52,7 +61,7 @@ exports.InputFormat = InputFormat;
52
61
  */
53
62
  class OutputFormat {
54
63
  className;
55
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.OutputFormat", version: "2.268.0-alpha.0" };
64
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.OutputFormat", version: "2.270.0-alpha.0" };
56
65
  /**
57
66
  * Writes text data with a null key (value only).
58
67
  *
@@ -79,6 +88,15 @@ class OutputFormat {
79
88
  static PARQUET = new OutputFormat('org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat');
80
89
  constructor(className) {
81
90
  this.className = className;
91
+ try {
92
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.OutputFormat", "");
93
+ }
94
+ catch (error) {
95
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
96
+ Error.captureStackTrace(error, OutputFormat);
97
+ }
98
+ throw error;
99
+ }
82
100
  }
83
101
  }
84
102
  exports.OutputFormat = OutputFormat;
@@ -89,7 +107,7 @@ exports.OutputFormat = OutputFormat;
89
107
  */
90
108
  class SerializationLibrary {
91
109
  className;
92
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.SerializationLibrary", version: "2.268.0-alpha.0" };
110
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.SerializationLibrary", version: "2.270.0-alpha.0" };
93
111
  /**
94
112
  * @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/serde2/avro/AvroSerDe.html
95
113
  */
@@ -132,6 +150,15 @@ class SerializationLibrary {
132
150
  static REGEXP = new SerializationLibrary('org.apache.hadoop.hive.serde2.RegexSerDe');
133
151
  constructor(className) {
134
152
  this.className = className;
153
+ try {
154
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.SerializationLibrary", "");
155
+ }
156
+ catch (error) {
157
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
158
+ Error.captureStackTrace(error, SerializationLibrary);
159
+ }
160
+ throw error;
161
+ }
135
162
  }
136
163
  }
137
164
  exports.SerializationLibrary = SerializationLibrary;
@@ -142,7 +169,7 @@ exports.SerializationLibrary = SerializationLibrary;
142
169
  */
143
170
  class ClassificationString {
144
171
  value;
145
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.ClassificationString", version: "2.268.0-alpha.0" };
172
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.ClassificationString", version: "2.270.0-alpha.0" };
146
173
  /**
147
174
  * @see https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html#aws-glue-programming-etl-format-avro
148
175
  */
@@ -169,6 +196,15 @@ class ClassificationString {
169
196
  static ORC = new ClassificationString('orc');
170
197
  constructor(value) {
171
198
  this.value = value;
199
+ try {
200
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.ClassificationString", "");
201
+ }
202
+ catch (error) {
203
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
204
+ Error.captureStackTrace(error, ClassificationString);
205
+ }
206
+ throw error;
207
+ }
172
208
  }
173
209
  }
174
210
  exports.ClassificationString = ClassificationString;
@@ -176,7 +212,7 @@ exports.ClassificationString = ClassificationString;
176
212
  * Defines the input/output formats and ser/de for a single DataFormat.
177
213
  */
178
214
  class DataFormat {
179
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.DataFormat", version: "2.268.0-alpha.0" };
215
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.DataFormat", version: "2.270.0-alpha.0" };
180
216
  /**
181
217
  * DataFormat for Apache Web Server Logs. Also works for CloudFront logs
182
218
  *
@@ -291,6 +327,7 @@ class DataFormat {
291
327
  classificationString;
292
328
  constructor(props) {
293
329
  try {
330
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.DataFormat", "");
294
331
  jsiiDeprecationWarnings._aws_cdk_aws_glue_alpha_DataFormatProps(props);
295
332
  }
296
333
  catch (error) {
@@ -306,4 +343,4 @@ class DataFormat {
306
343
  }
307
344
  }
308
345
  exports.DataFormat = DataFormat;
309
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1mb3JtYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkYXRhLWZvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOztHQUVHO0FBQ0gsTUFBYSxXQUFXO0lBdUNNOztJQXRDNUI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBVSxJQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsNERBQTRELENBQUMsQ0FBQztJQUU1Rzs7OztPQUlHO0lBQ0ksTUFBTSxDQUFVLFVBQVUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO0lBRXZHOzs7O09BSUc7SUFDSSxNQUFNLENBQVUsR0FBRyxHQUFHLElBQUksV0FBVyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7SUFFaEc7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBVSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsK0RBQStELENBQUMsQ0FBQztJQUVsSDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFVLElBQUksR0FBRyxJQUFJLFdBQVcsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0lBRTFGLFlBQTRCLFNBQWlCO1FBQWpCLGNBQVMsR0FBVCxTQUFTLENBQVE7S0FBSTs7QUF2Q25ELGtDQXdDQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxZQUFZO0lBNkJLOztJQTVCNUI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBVSxvQkFBb0IsR0FBRyxJQUFJLFlBQVksQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO0lBRTdIOzs7O09BSUc7SUFDSSxNQUFNLENBQVUsSUFBSSxHQUFHLElBQUksWUFBWSxDQUFDLDZEQUE2RCxDQUFDLENBQUM7SUFFOUc7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBVSxHQUFHLEdBQUcsSUFBSSxZQUFZLENBQUMsa0RBQWtELENBQUMsQ0FBQztJQUVsRzs7OztPQUlHO0lBQ0ksTUFBTSxDQUFVLE9BQU8sR0FBRyxJQUFJLFlBQVksQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO0lBRXBILFlBQTRCLFNB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RztLQUMvQyxDQUFDLENBQUM7SUFFSDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFVLE9BQU8sR0FBRyxJQUFJLFVBQVUsQ0FBQztRQUM5QyxXQUFXLEVBQUUsV0FBVyxDQUFDLE9BQU87UUFDaEMsWUFBWSxFQUFFLFlBQVksQ0FBQyxPQUFPO1FBQ2xDLG9CQUFvQixFQUFFLG9CQUFvQixDQUFDLE9BQU87UUFDbEQsb0JBQW9CLEVBQUUsb0JBQW9CLENBQUMsT0FBTztLQUNuRCxDQUFDLENBQUM7SUFFSDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFVLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQztRQUMxQyxXQUFXLEVBQUUsV0FBVyxDQUFDLElBQUk7UUFDN0IsWUFBWSxFQUFFLFlBQVksQ0FBQyxvQkFBb0I7UUFDL0Msb0JBQW9CLEVBQUUsb0JBQW9CLENBQUMsV0FBVztLQUN2RCxDQUFDLENBQUM7SUFFSDs7T0FFRztJQUNhLFdBQVcsQ0FBYztJQUV6Qzs7T0FFRztJQUNhLFlBQVksQ0FBZTtJQUUzQzs7T0FFRztJQUNhLG9CQUFvQixDQUF1QjtJQUUzRDs7T0FFRztJQUNhLG9CQUFvQixDQUF3QjtJQUU1RCxZQUFtQixLQUFzQjs7Ozs7OytDQTlIOUIsVUFBVTs7OztRQStIbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDLG9CQUFvQixDQUFDO1FBQ3ZELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUMsb0JBQW9CLENBQUM7S0FDeEQ7O0FBbklILGdDQW9JQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWJzb2x1dGUgY2xhc3MgbmFtZSBvZiB0aGUgSGFkb29wIGBJbnB1dEZvcm1hdGAgdG8gdXNlIHdoZW4gcmVhZGluZyB0YWJsZSBmaWxlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIElucHV0Rm9ybWF0IHtcbiAgLyoqXG4gICAqIElucHV0Rm9ybWF0IGZvciBBdnJvIGZpbGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL2F2cm8vQXZyb0NvbnRhaW5lcklucHV0Rm9ybWF0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVZSTyA9IG5ldyBJbnB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5hdnJvLkF2cm9Db250YWluZXJJbnB1dEZvcm1hdCcpO1xuXG4gIC8qKlxuICAgKiBJbnB1dEZvcm1hdCBmb3IgQ2xvdWR0cmFpbCBMb2dzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2Nsb3VkdHJhaWwuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDTE9VRFRSQUlMID0gbmV3IElucHV0Rm9ybWF0KCdjb20uYW1hem9uLmVtci5jbG91ZHRyYWlsLkNsb3VkVHJhaWxJbnB1dEZvcm1hdCcpO1xuXG4gIC8qKlxuICAgKiBJbnB1dEZvcm1hdCBmb3IgT3JjIGZpbGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL29yYy9PcmNJbnB1dEZvcm1hdC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9SQyA9IG5ldyBJbnB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5vcmMuT3JjSW5wdXRGb3JtYXQnKTtcblxuICAvKipcbiAgICogSW5wdXRGb3JtYXQgZm9yIFBhcnF1ZXQgZmlsZXMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvcWwvaW8vcGFycXVldC9NYXByZWRQYXJxdWV0SW5wdXRGb3JtYXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJRVUVUID0gbmV3IElucHV0Rm9ybWF0KCdvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnFsLmlvLnBhcnF1ZXQuTWFwcmVkUGFycXVldElucHV0Rm9ybWF0Jyk7XG5cbiAgLyoqXG4gICAqIEFuIElucHV0Rm9ybWF0IGZvciBwbGFpbiB0ZXh0IGZpbGVzLiBGaWxlcyBhcmUgYnJva2VuIGludG8gbGluZXMuIEVpdGhlciBsaW5lZmVlZCBvclxuICAgKiBjYXJyaWFnZS1yZXR1cm4gYXJlIHVzZWQgdG8gc2lnbmFsIGVuZCBvZiBsaW5lLiBLZXlzIGFyZSB0aGUgcG9zaXRpb24gaW4gdGhlIGZpbGUsIGFuZFxuICAgKiB2YWx1ZXMgYXJlIHRoZSBsaW5lIG9mIHRleHQuXG4gICAqIEpTT04gJiBDU1YgZmlsZXMgYXJlIGV4YW1wbGVzIG9mIHRoaXMgSW5wdXRGb3JtYXRcbiAgICpcbiAgICogQHNlZSBodHRwczovL2hhZG9vcC5hcGFjaGUub3JnL2RvY3Mvc3RhYmxlL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9tYXByZWQvVGV4dElucHV0Rm9ybWF0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVEVYVCA9IG5ldyBJbnB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AubWFwcmVkLlRleHRJbnB1dEZvcm1hdCcpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjbGFzc05hbWU6IHN0cmluZykge31cbn1cblxuLyoqXG4gKiBBYnNvbHV0ZSBjbGFzcyBuYW1lIG9mIHRoZSBIYWRvb3AgYE91dHB1dEZvcm1hdGAgdG8gdXNlIHdoZW4gd3JpdGluZyB0YWJsZSBmaWxlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIE91dHB1dEZvcm1hdCB7XG4gIC8qKlxuICAgKiBXcml0ZXMgdGV4dCBkYXRhIHdpdGggYSBudWxsIGtleSAodmFsdWUgb25seSkuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvcWwvaW8vSGl2ZUlnbm9yZUtleVRleHRPdXRwdXRGb3JtYXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBISVZFX0lHTk9SRV9LRVlfVEVYVCA9IG5ldyBPdXRwdXRGb3JtYXQoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUucWwuaW8uSGl2ZUlnbm9yZUtleVRleHRPdXRwdXRGb3JtYXQnKTtcblxuICAvKipcbiAgICogT3V0cHV0Rm9ybWF0IGZvciBBdnJvIGZpbGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL2F2cm8vQXZyb0NvbnRhaW5lck91dHB1dEZvcm1hdC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWUk8gPSBuZXcgT3V0cHV0Rm9ybWF0KCdvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnFsLmlvLmF2cm8uQXZyb0NvbnRhaW5lck91dHB1dEZvcm1hdCcpO1xuXG4gIC8qKlxuICAgKiBPdXRwdXRGb3JtYXQgZm9yIE9yYyBmaWxlcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oYWRvb3AvaGl2ZS9xbC9pby9vcmMvT3JjT3V0cHV0Rm9ybWF0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1JDID0gbmV3IE91dHB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5vcmMuT3JjT3V0cHV0Rm9ybWF0Jyk7XG5cbiAgLyoqXG4gICAqIE91dHB1dEZvcm1hdCBmb3IgUGFycXVldCBmaWxlcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oYWRvb3AvaGl2ZS9xbC9pby9wYXJxdWV0L01hcHJlZFBhcnF1ZXRPdXRwdXRGb3JtYXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJRVUVUID0gbmV3IE91dHB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5wYXJxdWV0Lk1hcHJlZFBhcnF1ZXRPdXRwdXRGb3JtYXQnKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgY2xhc3NOYW1lOiBzdHJpbmcpIHt9XG59XG5cbi8qKlxuICogU2VyaWFsaXphdGlvbiBsaWJyYXJ5IHRvIHVzZSB3aGVuIHNlcmlhbGl6aW5nL2Rlc2VyaWFsaXppbmcgKFNlckRlKSB0YWJsZSByZWNvcmRzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9IaXZlL1NlckRlXG4gKi9cbmV4cG9ydCBjbGFzcyBTZXJpYWxpemF0aW9uTGlicmFyeSB7XG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3NlcmRlMi9hdnJvL0F2cm9TZXJEZS5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWUk8gPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUuc2VyZGUyLmF2cm8uQXZyb1NlckRlJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvY2xvdWR0cmFpbC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENMT1VEVFJBSUwgPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ2NvbS5hbWF6b24uZW1yLmhpdmUuc2VyZGUuQ2xvdWRUcmFpbFNlcmRlJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvZ3Jvay5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEdST0sgPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ2NvbS5hbWF6b25hd3MuZ2x1ZS5zZXJkZS5Hcm9rU2VyRGUnKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oaXZlL2hjYXRhbG9nL2RhdGEvSnNvblNlckRlLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSElWRV9KU09OID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdvcmcuYXBhY2hlLmhpdmUuaGNhdGFsb2cuZGF0YS5Kc29uU2VyRGUnKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oYWRvb3AvaGl2ZS9zZXJkZTIvbGF6eS9MYXp5U2ltcGxlU2VyRGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMQVpZX1NJTVBMRSA9IG5ldyBTZXJpYWxpemF0aW9uTGlicmFyeSgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5zZXJkZTIubGF6eS5MYXp5U2ltcGxlU2VyRGUnKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oYWRvb3AvaGl2ZS9zZXJkZTIvT3BlbkNTVlNlcmRlLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1BFTl9DU1YgPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUuc2VyZGUyLk9wZW5DU1ZTZXJkZScpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9yY29uZ2l1L0hpdmUtSlNPTi1TZXJkZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBPUEVOWF9KU09OID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdvcmcub3BlbnguZGF0YS5qc29uc2VyZGUuSnNvblNlckRlJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvcWwvaW8vb3JjL09yY1NlcmRlLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1JDID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnFsLmlvLm9yYy5PcmNTZXJkZScpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL3BhcnF1ZXQvc2VyZGUvUGFycXVldEhpdmVTZXJEZS5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUlFVRVQgPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUucWwuaW8ucGFycXVldC5zZXJkZS5QYXJxdWV0SGl2ZVNlckRlJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvc2VyZGUyL1JlZ2V4U2VyRGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBSRUdFWFAgPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUuc2VyZGUyLlJlZ2V4U2VyRGUnKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgY2xhc3NOYW1lOiBzdHJpbmcpIHt9XG59XG5cbi8qKlxuICogQ2xhc3NpZmljYXRpb24gc3RyaW5nIGdpdmVuIHRvIHRhYmxlcyB3aXRoIHRoaXMgZGF0YSBmb3JtYXQuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYWRkLWNsYXNzaWZpZXIuaHRtbCNjbGFzc2lmaWVyLWJ1aWx0LWluXG4gKi9cbmV4cG9ydCBjbGFzcyBDbGFzc2lmaWNhdGlvblN0cmluZyB7XG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0Lmh0bWwjYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC1hdnJvXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWUk8gPSBuZXcgQ2xhc3NpZmljYXRpb25TdHJpbmcoJ2F2cm8nKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC5odG1sI2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQtY3N2XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENTViA9IG5ldyBDbGFzc2lmaWNhdGlvblN0cmluZygnY3N2Jyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQuaHRtbCNhd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0LWpzb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSlNPTiA9IG5ldyBDbGFzc2lmaWNhdGlvblN0cmluZygnanNvbicpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0Lmh0bWwjYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC14bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgWE1MID0gbmV3IENsYXNzaWZpY2F0aW9uU3RyaW5nKCd4bWwnKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC5odG1sI2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQtcGFycXVldFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJRVUVUID0gbmV3IENsYXNzaWZpY2F0aW9uU3RyaW5nKCdwYXJxdWV0Jyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQuaHRtbCNhd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0LW9yY1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBPUkMgPSBuZXcgQ2xhc3NpZmljYXRpb25TdHJpbmcoJ29yYycpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nKSB7fVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgb2YgYSBEYXRhRm9ybWF0IGluc3RhbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFGb3JtYXRQcm9wcyB7XG4gIC8qKlxuICAgKiBgSW5wdXRGb3JtYXRgIGZvciB0aGlzIGRhdGEgZm9ybWF0LlxuICAgKi9cbiAgcmVhZG9ubHkgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0O1xuXG4gIC8qKlxuICAgKiBgT3V0cHV0Rm9ybWF0YCBmb3IgdGhpcyBkYXRhIGZvcm1hdC5cbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0O1xuXG4gIC8qKlxuICAgKiBTZXJpYWxpemF0aW9uIGxpYnJhcnkgZm9yIHRoaXMgZGF0YSBmb3JtYXQuXG4gICAqL1xuICByZWFkb25seSBzZXJpYWxpemF0aW9uTGlicmFyeTogU2VyaWFsaXphdGlvbkxpYnJhcnk7XG5cbiAgLyoqXG4gICAqIENsYXNzaWZpY2F0aW9uIHN0cmluZyBnaXZlbiB0byB0YWJsZXMgd2l0aCB0aGlzIGRhdGEgZm9ybWF0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGNsYXNzaWZpY2F0aW9uIGlzIHNwZWNpZmllZC5cbiAgICovXG4gIHJlYWRvbmx5IGNsYXNzaWZpY2F0aW9uU3RyaW5nPzogQ2xhc3NpZmljYXRpb25TdHJpbmc7XG59XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgaW5wdXQvb3V0cHV0IGZvcm1hdHMgYW5kIHNlci9kZSBmb3IgYSBzaW5nbGUgRGF0YUZvcm1hdC5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFGb3JtYXQge1xuICAvKipcbiAgICogRGF0YUZvcm1hdCBmb3IgQXBhY2hlIFdlYiBTZXJ2ZXIgTG9ncy4gQWxzbyB3b3JrcyBmb3IgQ2xvdWRGcm9udCBsb2dzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvYXBhY2hlLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVBBQ0hFX0xPR1MgPSBuZXcgRGF0YUZvcm1hdCh7XG4gICAgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0LlRFWFQsXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuSElWRV9JR05PUkVfS0VZX1RFWFQsXG4gICAgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5LlJFR0VYUCxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIEFwYWNoZSBBdnJvXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvYXZyby5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWUk8gPSBuZXcgRGF0YUZvcm1hdCh7XG4gICAgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0LkFWUk8sXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuQVZSTyxcbiAgICBzZXJpYWxpemF0aW9uTGlicmFyeTogU2VyaWFsaXphdGlvbkxpYnJhcnkuQVZSTyxcbiAgICBjbGFzc2lmaWNhdGlvblN0cmluZzogQ2xhc3NpZmljYXRpb25TdHJpbmcuQVZSTyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIENsb3VkVHJhaWwgbG9ncyBzdG9yZWQgb24gUzNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXRoZW5hL2xhdGVzdC91Zy9jbG91ZHRyYWlsLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ0xPVURUUkFJTF9MT0dTID0gbmV3IERhdGFGb3JtYXQoe1xuICAgIGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdC5DTE9VRFRSQUlMLFxuICAgIG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0LkhJVkVfSUdOT1JFX0tFWV9URVhULFxuICAgIHNlcmlhbGl6YXRpb25MaWJyYXJ5OiBTZXJpYWxpemF0aW9uTGlicmFyeS5DTE9VRFRSQUlMLFxuICB9KTtcblxuICAvKipcbiAgICogRGF0YUZvcm1hdCBmb3IgQ1NWIEZpbGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvY3N2Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ1NWID0gbmV3IERhdGFGb3JtYXQoe1xuICAgIGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdC5URVhULFxuICAgIG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0LkhJVkVfSUdOT1JFX0tFWV9URVhULFxuICAgIHNlcmlhbGl6YXRpb25MaWJyYXJ5OiBTZXJpYWxpemF0aW9uTGlicmFyeS5PUEVOX0NTVixcbiAgICBjbGFzc2lmaWNhdGlvblN0cmluZzogQ2xhc3NpZmljYXRpb25TdHJpbmcuQ1NWLFxuICB9KTtcblxuICAvKipcbiAgICogU3RvcmVkIGFzIHBsYWluIHRleHQgZmlsZXMgaW4gSlNPTiBmb3JtYXQuXG4gICAqIFVzZXMgT3BlblggSnNvbiBTZXJEZSBmb3Igc2VyaWFsaXphdGlvbiBhbmQgZGVzZXJhbGl6YXRpb24uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvanNvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEpTT04gPSBuZXcgRGF0YUZvcm1hdCh7XG4gICAgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0LlRFWFQsXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuSElWRV9JR05PUkVfS0VZX1RFWFQsXG4gICAgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5Lk9QRU5YX0pTT04sXG4gICAgY2xhc3NpZmljYXRpb25TdHJpbmc6IENsYXNzaWZpY2F0aW9uU3RyaW5nLkpTT04sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBEYXRhRm9ybWF0IGZvciBMb2dzdGFzaCBMb2dzLCB1c2luZyB0aGUgR1JPSyBTZXJEZVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2dyb2suaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMT0dTVEFTSCA9IG5ldyBEYXRhRm9ybWF0KHtcbiAgICBpbnB1dEZvcm1hdDogSW5wdXRGb3JtYXQuVEVYVCxcbiAgICBvdXRwdXRGb3JtYXQ6IE91dHB1dEZvcm1hdC5ISVZFX0lHTk9SRV9LRVlfVEVYVCxcbiAgICBzZXJpYWxpemF0aW9uTGlicmFyeTogU2VyaWFsaXphdGlvbkxpYnJhcnkuR1JPSyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIEFwYWNoZSBPUkMgKE9wdGltaXplZCBSb3cgQ29sdW1uYXIpXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvb3JjLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1JDID0gbmV3IERhdGFGb3JtYXQoe1xuICAgIGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdC5PUkMsXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuT1JDLFxuICAgIHNlcmlhbGl6YXRpb25MaWJyYXJ5OiBTZXJpYWxpemF0aW9uTGlicmFyeS5PUkMsXG4gICAgY2xhc3NpZmljYXRpb25TdHJpbmc6IENsYXNzaWZpY2F0aW9uU3RyaW5nLk9SQyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIEFwYWNoZSBQYXJxdWV0XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvcGFycXVldC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUlFVRVQgPSBuZXcgRGF0YUZvcm1hdCh7XG4gICAgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0LlBBUlFVRVQsXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuUEFSUVVFVCxcbiAgICBzZXJpYWxpemF0aW9uTGlicmFyeTogU2VyaWFsaXphdGlvbkxpYnJhcnkuUEFSUVVFVCxcbiAgICBjbGFzc2lmaWNhdGlvblN0cmluZzogQ2xhc3NpZmljYXRpb25TdHJpbmcuUEFSUVVFVCxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIFRTViAoVGFiLVNlcGFyYXRlZCBWYWx1ZXMpXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvbGF6eS1zaW1wbGUtc2VyZGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBUU1YgPSBuZXcgRGF0YUZvcm1hdCh7XG4gICAgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0LlRFWFQsXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuSElWRV9JR05PUkVfS0VZX1RFWFQsXG4gICAgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5LkxBWllfU0lNUExFLFxuICB9KTtcblxuICAvKipcbiAgICogYElucHV0Rm9ybWF0YCBmb3IgdGhpcyBkYXRhIGZvcm1hdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpbnB1dEZvcm1hdDogSW5wdXRGb3JtYXQ7XG5cbiAgLyoqXG4gICAqIGBPdXRwdXRGb3JtYXRgIGZvciB0aGlzIGRhdGEgZm9ybWF0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0O1xuXG4gIC8qKlxuICAgKiBTZXJpYWxpemF0aW9uIGxpYnJhcnkgZm9yIHRoaXMgZGF0YSBmb3JtYXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5O1xuXG4gIC8qKlxuICAgKiBDbGFzc2lmaWNhdGlvbiBzdHJpbmcgZ2l2ZW4gdG8gdGFibGVzIHdpdGggdGhpcyBkYXRhIGZvcm1hdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjbGFzc2lmaWNhdGlvblN0cmluZz86IENsYXNzaWZpY2F0aW9uU3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm9wczogRGF0YUZvcm1hdFByb3BzKSB7XG4gICAgdGhpcy5pbnB1dEZvcm1hdCA9IHByb3BzLmlucHV0Rm9ybWF0O1xuICAgIHRoaXMub3V0cHV0Rm9ybWF0ID0gcHJvcHMub3V0cHV0Rm9ybWF0O1xuICAgIHRoaXMuc2VyaWFsaXphdGlvbkxpYnJhcnkgPSBwcm9wcy5zZXJpYWxpemF0aW9uTGlicmFyeTtcbiAgICB0aGlzLmNsYXNzaWZpY2F0aW9uU3RyaW5nID0gcHJvcHMuY2xhc3NpZmljYXRpb25TdHJpbmc7XG4gIH1cbn1cbiJdfQ==
346
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1mb3JtYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkYXRhLWZvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOztHQUVHO0FBQ0gsTUFBYSxXQUFXO0lBdUNNOztJQXRDNUI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBVSxJQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsNERBQTRELENBQUMsQ0FBQztJQUU1Rzs7OztPQUlHO0lBQ0ksTUFBTSxDQUFVLFVBQVUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO0lBRXZHOzs7O09BSUc7SUFDSSxNQUFNLENBQVUsR0FBRyxHQUFHLElBQUksV0FBVyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7SUFFaEc7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBVSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsK0RBQStELENBQUMsQ0FBQztJQUVsSDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFVLElBQUksR0FBRyxJQUFJLFdBQVcsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0lBRTFGLFlBQTRCLFNBQWlCO1FBQWpCLGNBQVMsR0FBVCxTQUFTLENBQVE7Ozs7OzsrQ0F2Q2xDLFdBQVc7Ozs7S0F1QzJCOztBQXZDbkQsa0NBd0NDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLFlBQVk7SUE2Qks7O0lBNUI1Qjs7OztPQUlHO0lBQ0ksTUFBTSxDQUFVLG9CQUFvQixHQUFHLElBQUksWUFBWSxDQUFDLDREQUE0RCxDQUFDLENBQUM7SUFFN0g7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBVSxJQUFJLEdBQUcsSUFBSSxZQUFZLENBQUMsNkRBQTZELENBQUMsQ0FBQztJQUU5Rzs7OztPQUlHO0lBQ0ksTUFBTSxDQUFVLEdBQUcsR0FBRyxJQUFJLFlBQVksQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0lBRWxHOzs7O09BSUc7SUFDSSxNQUFNLENBQVUsT0FBTyxHQUFHLElBQUksWUFBWSxDQUFDLGdFQUFnRSxD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aGUgSGFkb29wIGBJbnB1dEZvcm1hdGAgdG8gdXNlIHdoZW4gcmVhZGluZyB0YWJsZSBmaWxlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIElucHV0Rm9ybWF0IHtcbiAgLyoqXG4gICAqIElucHV0Rm9ybWF0IGZvciBBdnJvIGZpbGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL2F2cm8vQXZyb0NvbnRhaW5lcklucHV0Rm9ybWF0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVZSTyA9IG5ldyBJbnB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5hdnJvLkF2cm9Db250YWluZXJJbnB1dEZvcm1hdCcpO1xuXG4gIC8qKlxuICAgKiBJbnB1dEZvcm1hdCBmb3IgQ2xvdWR0cmFpbCBMb2dzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2Nsb3VkdHJhaWwuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDTE9VRFRSQUlMID0gbmV3IElucHV0Rm9ybWF0KCdjb20uYW1hem9uLmVtci5jbG91ZHRyYWlsLkNsb3VkVHJhaWxJbnB1dEZvcm1hdCcpO1xuXG4gIC8qKlxuICAgKiBJbnB1dEZvcm1hdCBmb3IgT3JjIGZpbGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL29yYy9PcmNJbnB1dEZvcm1hdC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9SQyA9IG5ldyBJbnB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5vcmMuT3JjSW5wdXRGb3JtYXQnKTtcblxuICAvKipcbiAgICogSW5wdXRGb3JtYXQgZm9yIFBhcnF1ZXQgZmlsZXMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvcWwvaW8vcGFycXVldC9NYXByZWRQYXJxdWV0SW5wdXRGb3JtYXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJRVUVUID0gbmV3IElucHV0Rm9ybWF0KCdvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnFsLmlvLnBhcnF1ZXQuTWFwcmVkUGFycXVldElucHV0Rm9ybWF0Jyk7XG5cbiAgLyoqXG4gICAqIEFuIElucHV0Rm9ybWF0IGZvciBwbGFpbiB0ZXh0IGZpbGVzLiBGaWxlcyBhcmUgYnJva2VuIGludG8gbGluZXMuIEVpdGhlciBsaW5lZmVlZCBvclxuICAgKiBjYXJyaWFnZS1yZXR1cm4gYXJlIHVzZWQgdG8gc2lnbmFsIGVuZCBvZiBsaW5lLiBLZXlzIGFyZSB0aGUgcG9zaXRpb24gaW4gdGhlIGZpbGUsIGFuZFxuICAgKiB2YWx1ZXMgYXJlIHRoZSBsaW5lIG9mIHRleHQuXG4gICAqIEpTT04gJiBDU1YgZmlsZXMgYXJlIGV4YW1wbGVzIG9mIHRoaXMgSW5wdXRGb3JtYXRcbiAgICpcbiAgICogQHNlZSBodHRwczovL2hhZG9vcC5hcGFjaGUub3JnL2RvY3Mvc3RhYmxlL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9tYXByZWQvVGV4dElucHV0Rm9ybWF0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVEVYVCA9IG5ldyBJbnB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AubWFwcmVkLlRleHRJbnB1dEZvcm1hdCcpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjbGFzc05hbWU6IHN0cmluZykge31cbn1cblxuLyoqXG4gKiBBYnNvbHV0ZSBjbGFzcyBuYW1lIG9mIHRoZSBIYWRvb3AgYE91dHB1dEZvcm1hdGAgdG8gdXNlIHdoZW4gd3JpdGluZyB0YWJsZSBmaWxlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIE91dHB1dEZvcm1hdCB7XG4gIC8qKlxuICAgKiBXcml0ZXMgdGV4dCBkYXRhIHdpdGggYSBudWxsIGtleSAodmFsdWUgb25seSkuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvcWwvaW8vSGl2ZUlnbm9yZUtleVRleHRPdXRwdXRGb3JtYXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBISVZFX0lHTk9SRV9LRVlfVEVYVCA9IG5ldyBPdXRwdXRGb3JtYXQoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUucWwuaW8uSGl2ZUlnbm9yZUtleVRleHRPdXRwdXRGb3JtYXQnKTtcblxuICAvKipcbiAgICogT3V0cHV0Rm9ybWF0IGZvciBBdnJvIGZpbGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL2F2cm8vQXZyb0NvbnRhaW5lck91dHB1dEZvcm1hdC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWUk8gPSBuZXcgT3V0cHV0Rm9ybWF0KCdvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnFsLmlvLmF2cm8uQXZyb0NvbnRhaW5lck91dHB1dEZvcm1hdCcpO1xuXG4gIC8qKlxuICAgKiBPdXRwdXRGb3JtYXQgZm9yIE9yYyBmaWxlcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oYWRvb3AvaGl2ZS9xbC9pby9vcmMvT3JjT3V0cHV0Rm9ybWF0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1JDID0gbmV3IE91dHB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5vcmMuT3JjT3V0cHV0Rm9ybWF0Jyk7XG5cbiAgLyoqXG4gICAqIE91dHB1dEZvcm1hdCBmb3IgUGFycXVldCBmaWxlcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oYWRvb3AvaGl2ZS9xbC9pby9wYXJxdWV0L01hcHJlZFBhcnF1ZXRPdXRwdXRGb3JtYXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJRVUVUID0gbmV3IE91dHB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5wYXJxdWV0Lk1hcHJlZFBhcnF1ZXRPdXRwdXRGb3JtYXQnKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgY2xhc3NOYW1lOiBzdHJpbmcpIHt9XG59XG5cbi8qKlxuICogU2VyaWFsaXphdGlvbiBsaWJyYXJ5IHRvIHVzZSB3aGVuIHNlcmlhbGl6aW5nL2Rlc2VyaWFsaXppbmcgKFNlckRlKSB0YWJsZSByZWNvcmRzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9IaXZlL1NlckRlXG4gKi9cbmV4cG9ydCBjbGFzcyBTZXJpYWxpemF0aW9uTGlicmFyeSB7XG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3NlcmRlMi9hdnJvL0F2cm9TZXJEZS5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWUk8gPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUuc2VyZGUyLmF2cm8uQXZyb1NlckRlJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvY2xvdWR0cmFpbC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENMT1VEVFJBSUwgPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ2NvbS5hbWF6b24uZW1yLmhpdmUuc2VyZGUuQ2xvdWRUcmFpbFNlcmRlJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvZ3Jvay5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEdST0sgPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ2NvbS5hbWF6b25hd3MuZ2x1ZS5zZXJkZS5Hcm9rU2VyRGUnKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oaXZlL2hjYXRhbG9nL2RhdGEvSnNvblNlckRlLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSElWRV9KU09OID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdvcmcuYXBhY2hlLmhpdmUuaGNhdGFsb2cuZGF0YS5Kc29uU2VyRGUnKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oYWRvb3AvaGl2ZS9zZXJkZTIvbGF6eS9MYXp5U2ltcGxlU2VyRGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMQVpZX1NJTVBMRSA9IG5ldyBTZXJpYWxpemF0aW9uTGlicmFyeSgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5zZXJkZTIubGF6eS5MYXp5U2ltcGxlU2VyRGUnKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oYWRvb3AvaGl2ZS9zZXJkZTIvT3BlbkNTVlNlcmRlLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1BFTl9DU1YgPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUuc2VyZGUyLk9wZW5DU1ZTZXJkZScpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9yY29uZ2l1L0hpdmUtSlNPTi1TZXJkZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBPUEVOWF9KU09OID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdvcmcub3BlbnguZGF0YS5qc29uc2VyZGUuSnNvblNlckRlJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvcWwvaW8vb3JjL09yY1NlcmRlLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1JDID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnFsLmlvLm9yYy5PcmNTZXJkZScpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL3BhcnF1ZXQvc2VyZGUvUGFycXVldEhpdmVTZXJEZS5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUlFVRVQgPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUucWwuaW8ucGFycXVldC5zZXJkZS5QYXJxdWV0SGl2ZVNlckRlJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvc2VyZGUyL1JlZ2V4U2VyRGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBSRUdFWFAgPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUuc2VyZGUyLlJlZ2V4U2VyRGUnKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgY2xhc3NOYW1lOiBzdHJpbmcpIHt9XG59XG5cbi8qKlxuICogQ2xhc3NpZmljYXRpb24gc3RyaW5nIGdpdmVuIHRvIHRhYmxlcyB3aXRoIHRoaXMgZGF0YSBmb3JtYXQuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYWRkLWNsYXNzaWZpZXIuaHRtbCNjbGFzc2lmaWVyLWJ1aWx0LWluXG4gKi9cbmV4cG9ydCBjbGFzcyBDbGFzc2lmaWNhdGlvblN0cmluZyB7XG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0Lmh0bWwjYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC1hdnJvXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWUk8gPSBuZXcgQ2xhc3NpZmljYXRpb25TdHJpbmcoJ2F2cm8nKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC5odG1sI2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQtY3N2XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENTViA9IG5ldyBDbGFzc2lmaWNhdGlvblN0cmluZygnY3N2Jyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQuaHRtbCNhd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0LWpzb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSlNPTiA9IG5ldyBDbGFzc2lmaWNhdGlvblN0cmluZygnanNvbicpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0Lmh0bWwjYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC14bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgWE1MID0gbmV3IENsYXNzaWZpY2F0aW9uU3RyaW5nKCd4bWwnKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC5odG1sI2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQtcGFycXVldFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJRVUVUID0gbmV3IENsYXNzaWZpY2F0aW9uU3RyaW5nKCdwYXJxdWV0Jyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQuaHRtbCNhd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0LW9yY1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBPUkMgPSBuZXcgQ2xhc3NpZmljYXRpb25TdHJpbmcoJ29yYycpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nKSB7fVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgb2YgYSBEYXRhRm9ybWF0IGluc3RhbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFGb3JtYXRQcm9wcyB7XG4gIC8qKlxuICAgKiBgSW5wdXRGb3JtYXRgIGZvciB0aGlzIGRhdGEgZm9ybWF0LlxuICAgKi9cbiAgcmVhZG9ubHkgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0O1xuXG4gIC8qKlxuICAgKiBgT3V0cHV0Rm9ybWF0YCBmb3IgdGhpcyBkYXRhIGZvcm1hdC5cbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0O1xuXG4gIC8qKlxuICAgKiBTZXJpYWxpemF0aW9uIGxpYnJhcnkgZm9yIHRoaXMgZGF0YSBmb3JtYXQuXG4gICAqL1xuICByZWFkb25seSBzZXJpYWxpemF0aW9uTGlicmFyeTogU2VyaWFsaXphdGlvbkxpYnJhcnk7XG5cbiAgLyoqXG4gICAqIENsYXNzaWZpY2F0aW9uIHN0cmluZyBnaXZlbiB0byB0YWJsZXMgd2l0aCB0aGlzIGRhdGEgZm9ybWF0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGNsYXNzaWZpY2F0aW9uIGlzIHNwZWNpZmllZC5cbiAgICovXG4gIHJlYWRvbmx5IGNsYXNzaWZpY2F0aW9uU3RyaW5nPzogQ2xhc3NpZmljYXRpb25TdHJpbmc7XG59XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgaW5wdXQvb3V0cHV0IGZvcm1hdHMgYW5kIHNlci9kZSBmb3IgYSBzaW5nbGUgRGF0YUZvcm1hdC5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFGb3JtYXQge1xuICAvKipcbiAgICogRGF0YUZvcm1hdCBmb3IgQXBhY2hlIFdlYiBTZXJ2ZXIgTG9ncy4gQWxzbyB3b3JrcyBmb3IgQ2xvdWRGcm9udCBsb2dzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvYXBhY2hlLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVBBQ0hFX0xPR1MgPSBuZXcgRGF0YUZvcm1hdCh7XG4gICAgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0LlRFWFQsXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuSElWRV9JR05PUkVfS0VZX1RFWFQsXG4gICAgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5LlJFR0VYUCxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIEFwYWNoZSBBdnJvXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvYXZyby5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWUk8gPSBuZXcgRGF0YUZvcm1hdCh7XG4gICAgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0LkFWUk8sXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuQVZSTyxcbiAgICBzZXJpYWxpemF0aW9uTGlicmFyeTogU2VyaWFsaXphdGlvbkxpYnJhcnkuQVZSTyxcbiAgICBjbGFzc2lmaWNhdGlvblN0cmluZzogQ2xhc3NpZmljYXRpb25TdHJpbmcuQVZSTyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIENsb3VkVHJhaWwgbG9ncyBzdG9yZWQgb24gUzNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXRoZW5hL2xhdGVzdC91Zy9jbG91ZHRyYWlsLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ0xPVURUUkFJTF9MT0dTID0gbmV3IERhdGFGb3JtYXQoe1xuICAgIGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdC5DTE9VRFRSQUlMLFxuICAgIG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0LkhJVkVfSUdOT1JFX0tFWV9URVhULFxuICAgIHNlcmlhbGl6YXRpb25MaWJyYXJ5OiBTZXJpYWxpemF0aW9uTGlicmFyeS5DTE9VRFRSQUlMLFxuICB9KTtcblxuICAvKipcbiAgICogRGF0YUZvcm1hdCBmb3IgQ1NWIEZpbGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvY3N2Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ1NWID0gbmV3IERhdGFGb3JtYXQoe1xuICAgIGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdC5URVhULFxuICAgIG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0LkhJVkVfSUdOT1JFX0tFWV9URVhULFxuICAgIHNlcmlhbGl6YXRpb25MaWJyYXJ5OiBTZXJpYWxpemF0aW9uTGlicmFyeS5PUEVOX0NTVixcbiAgICBjbGFzc2lmaWNhdGlvblN0cmluZzogQ2xhc3NpZmljYXRpb25TdHJpbmcuQ1NWLFxuICB9KTtcblxuICAvKipcbiAgICogU3RvcmVkIGFzIHBsYWluIHRleHQgZmlsZXMgaW4gSlNPTiBmb3JtYXQuXG4gICAqIFVzZXMgT3BlblggSnNvbiBTZXJEZSBmb3Igc2VyaWFsaXphdGlvbiBhbmQgZGVzZXJhbGl6YXRpb24uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvanNvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEpTT04gPSBuZXcgRGF0YUZvcm1hdCh7XG4gICAgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0LlRFWFQsXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuSElWRV9JR05PUkVfS0VZX1RFWFQsXG4gICAgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5Lk9QRU5YX0pTT04sXG4gICAgY2xhc3NpZmljYXRpb25TdHJpbmc6IENsYXNzaWZpY2F0aW9uU3RyaW5nLkpTT04sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBEYXRhRm9ybWF0IGZvciBMb2dzdGFzaCBMb2dzLCB1c2luZyB0aGUgR1JPSyBTZXJEZVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2dyb2suaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMT0dTVEFTSCA9IG5ldyBEYXRhRm9ybWF0KHtcbiAgICBpbnB1dEZvcm1hdDogSW5wdXRGb3JtYXQuVEVYVCxcbiAgICBvdXRwdXRGb3JtYXQ6IE91dHB1dEZvcm1hdC5ISVZFX0lHTk9SRV9LRVlfVEVYVCxcbiAgICBzZXJpYWxpemF0aW9uTGlicmFyeTogU2VyaWFsaXphdGlvbkxpYnJhcnkuR1JPSyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIEFwYWNoZSBPUkMgKE9wdGltaXplZCBSb3cgQ29sdW1uYXIpXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvb3JjLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1JDID0gbmV3IERhdGFGb3JtYXQoe1xuICAgIGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdC5PUkMsXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuT1JDLFxuICAgIHNlcmlhbGl6YXRpb25MaWJyYXJ5OiBTZXJpYWxpemF0aW9uTGlicmFyeS5PUkMsXG4gICAgY2xhc3NpZmljYXRpb25TdHJpbmc6IENsYXNzaWZpY2F0aW9uU3RyaW5nLk9SQyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIEFwYWNoZSBQYXJxdWV0XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvcGFycXVldC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUlFVRVQgPSBuZXcgRGF0YUZvcm1hdCh7XG4gICAgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0LlBBUlFVRVQsXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuUEFSUVVFVCxcbiAgICBzZXJpYWxpemF0aW9uTGlicmFyeTogU2VyaWFsaXphdGlvbkxpYnJhcnkuUEFSUVVFVCxcbiAgICBjbGFzc2lmaWNhdGlvblN0cmluZzogQ2xhc3NpZmljYXRpb25TdHJpbmcuUEFSUVVFVCxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIFRTViAoVGFiLVNlcGFyYXRlZCBWYWx1ZXMpXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvbGF6eS1zaW1wbGUtc2VyZGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBUU1YgPSBuZXcgRGF0YUZvcm1hdCh7XG4gICAgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0LlRFWFQsXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuSElWRV9JR05PUkVfS0VZX1RFWFQsXG4gICAgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5LkxBWllfU0lNUExFLFxuICB9KTtcblxuICAvKipcbiAgICogYElucHV0Rm9ybWF0YCBmb3IgdGhpcyBkYXRhIGZvcm1hdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpbnB1dEZvcm1hdDogSW5wdXRGb3JtYXQ7XG5cbiAgLyoqXG4gICAqIGBPdXRwdXRGb3JtYXRgIGZvciB0aGlzIGRhdGEgZm9ybWF0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0O1xuXG4gIC8qKlxuICAgKiBTZXJpYWxpemF0aW9uIGxpYnJhcnkgZm9yIHRoaXMgZGF0YSBmb3JtYXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5O1xuXG4gIC8qKlxuICAgKiBDbGFzc2lmaWNhdGlvbiBzdHJpbmcgZ2l2ZW4gdG8gdGFibGVzIHdpdGggdGhpcyBkYXRhIGZvcm1hdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjbGFzc2lmaWNhdGlvblN0cmluZz86IENsYXNzaWZpY2F0aW9uU3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm9wczogRGF0YUZvcm1hdFByb3BzKSB7XG4gICAgdGhpcy5pbnB1dEZvcm1hdCA9IHByb3BzLmlucHV0Rm9ybWF0O1xuICAgIHRoaXMub3V0cHV0Rm9ybWF0ID0gcHJvcHMub3V0cHV0Rm9ybWF0O1xuICAgIHRoaXMuc2VyaWFsaXphdGlvbkxpYnJhcnkgPSBwcm9wcy5zZXJpYWxpemF0aW9uTGlicmFyeTtcbiAgICB0aGlzLmNsYXNzaWZpY2F0aW9uU3RyaW5nID0gcHJvcHMuY2xhc3NpZmljYXRpb25TdHJpbmc7XG4gIH1cbn1cbiJdfQ==
@@ -80,7 +80,7 @@ const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
80
80
  * The Glue table a `DataQualityRuleset` evaluates.
81
81
  */
82
82
  class DataQualityTargetTable {
83
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.DataQualityTargetTable", version: "2.268.0-alpha.0" };
83
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.DataQualityTargetTable", version: "2.270.0-alpha.0" };
84
84
  /**
85
85
  * Target an L2 table in a database.
86
86
  *
@@ -89,6 +89,7 @@ class DataQualityTargetTable {
89
89
  */
90
90
  static fromTable(database, table) {
91
91
  try {
92
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.DataQualityTargetTable#fromTable", "");
92
93
  jsiiDeprecationWarnings._aws_cdk_aws_glue_alpha_ITable(table);
93
94
  }
94
95
  catch (error) {
@@ -107,6 +108,15 @@ class DataQualityTargetTable {
107
108
  * @param tableName the name of the table to evaluate.
108
109
  */
109
110
  static fromTableName(database, tableName) {
111
+ try {
112
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.DataQualityTargetTable#fromTableName", "");
113
+ }
114
+ catch (error) {
115
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
116
+ Error.captureStackTrace(error, this.fromTableName);
117
+ }
118
+ throw error;
119
+ }
110
120
  return new DataQualityTargetTable(database.databaseRef.databaseName, tableName);
111
121
  }
112
122
  /**
@@ -133,13 +143,22 @@ exports.DataQualityTargetTable = DataQualityTargetTable;
133
143
  */
134
144
  class Dqdl {
135
145
  dqdl;
136
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.Dqdl", version: "2.268.0-alpha.0" };
146
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.Dqdl", version: "2.270.0-alpha.0" };
137
147
  /**
138
148
  * Create a `Dqdl` from a raw DQDL string.
139
149
  *
140
150
  * @param dqdl the DQDL document, e.g. `Rules = [ RowCount > 100 ]`.
141
151
  */
142
152
  static fromString(dqdl) {
153
+ try {
154
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.Dqdl#fromString", "");
155
+ }
156
+ catch (error) {
157
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
158
+ Error.captureStackTrace(error, this.fromString);
159
+ }
160
+ throw error;
161
+ }
143
162
  return new Dqdl(dqdl);
144
163
  }
145
164
  constructor(dqdl) {
@@ -179,10 +198,19 @@ let DataQualityRuleset = (() => {
179
198
  DataQualityRuleset = _classThis = _classDescriptor.value;
180
199
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
181
200
  }
182
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.DataQualityRuleset", version: "2.268.0-alpha.0" };
201
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.DataQualityRuleset", version: "2.270.0-alpha.0" };
183
202
  /** Uniquely identifies this class. */
184
203
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-glue-alpha.DataQualityRuleset';
185
204
  static fromRulesetArn(scope, id, rulesetArn) {
205
+ try {
206
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.DataQualityRuleset#fromRulesetArn", "");
207
+ }
208
+ catch (error) {
209
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
210
+ Error.captureStackTrace(error, this.fromRulesetArn);
211
+ }
212
+ throw error;
213
+ }
186
214
  class Import extends core_1.Resource {
187
215
  rulesetArn = rulesetArn;
188
216
  rulesetName = cdk.Arn.extractResourceName(rulesetArn, 'dataqualityruleset');
@@ -190,6 +218,15 @@ let DataQualityRuleset = (() => {
190
218
  return new Import(scope, id);
191
219
  }
192
220
  static fromRulesetName(scope, id, rulesetName) {
221
+ try {
222
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.DataQualityRuleset#fromRulesetName", "");
223
+ }
224
+ catch (error) {
225
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
226
+ Error.captureStackTrace(error, this.fromRulesetName);
227
+ }
228
+ throw error;
229
+ }
193
230
  class Import extends core_1.Resource {
194
231
  rulesetArn = DataQualityRuleset.buildRulesetArn(scope, rulesetName);
195
232
  rulesetName = rulesetName;
@@ -209,6 +246,7 @@ let DataQualityRuleset = (() => {
209
246
  physicalName: props.rulesetName,
210
247
  });
211
248
  try {
249
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.DataQualityRuleset", "");
212
250
  jsiiDeprecationWarnings._aws_cdk_aws_glue_alpha_DataQualityRulesetProps(props);
213
251
  }
214
252
  catch (error) {
@@ -232,12 +270,30 @@ let DataQualityRuleset = (() => {
232
270
  * Name of this ruleset.
233
271
  */
234
272
  get rulesetName() {
273
+ try {
274
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.DataQualityRuleset#rulesetName", "");
275
+ }
276
+ catch (error) {
277
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
278
+ Error.captureStackTrace(error, jsiiDeprecationWarnings.getPropertyDescriptor(this, "rulesetName").get);
279
+ }
280
+ throw error;
281
+ }
235
282
  return this.getResourceNameAttribute(this.resource.ref);
236
283
  }
237
284
  /**
238
285
  * ARN of this ruleset.
239
286
  */
240
287
  get rulesetArn() {
288
+ try {
289
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.DataQualityRuleset#rulesetArn", "");
290
+ }
291
+ catch (error) {
292
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
293
+ Error.captureStackTrace(error, jsiiDeprecationWarnings.getPropertyDescriptor(this, "rulesetArn").get);
294
+ }
295
+ throw error;
296
+ }
241
297
  return DataQualityRuleset.buildRulesetArn(this, this.rulesetName);
242
298
  }
243
299
  static {
@@ -247,4 +303,4 @@ let DataQualityRuleset = (() => {
247
303
  return DataQualityRuleset = _classThis;
248
304
  })();
249
305
  exports.DataQualityRuleset = DataQualityRuleset;
250
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1xdWFsaXR5LXJ1bGVzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkYXRhLXF1YWxpdHktcnVsZXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBbUM7QUFDbkMsbURBQWdGO0FBRWhGLDJDQUE0QztBQUM1Qyw0RUFBdUU7QUFDdkUsOEVBQThFO0FBQzlFLDBFQUEwRTtBQUkxRTs7R0FFRztBQUNILE1BQWEsc0JBQXNCOztJQUNqQzs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBc0IsRUFBRSxLQUFhOzs7Ozs7Ozs7O1FBQzNELE9BQU8sSUFBSSxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDdkY7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLFFBQXNCLEVBQUUsU0FBaUI7UUFDbkUsT0FBTyxJQUFJLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0tBQ2pGO0lBRUQ7O09BRUc7SUFDYSxZQUFZLENBQVM7SUFFckM7O09BRUc7SUFDYSxTQUFTLENBQVM7SUFFbEMsWUFBb0IsWUFBb0IsRUFBRSxTQUFpQjtRQUN6RCxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztLQUM1Qjs7QUFuQ0gsd0RBb0NDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQWEsSUFBSTtJQVVzQjs7SUFUckM7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBWTtRQUNuQyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3ZCO0lBRUQs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Q29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ2ZuRGF0YVF1YWxpdHlSdWxlc2V0LCB0eXBlIElEYXRhYmFzZVJlZiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1nbHVlJztcbmltcG9ydCB0eXBlIHsgSVJlc291cmNlLCBSZW1vdmFsUG9saWN5IH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBSZXNvdXJjZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgbWVtb2l6ZWRHZXR0ZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB0eXBlICogYXMgY29uc3RydWN0cyBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgSVRhYmxlIH0gZnJvbSAnLi90YWJsZS1iYXNlJztcblxuLyoqXG4gKiBUaGUgR2x1ZSB0YWJsZSBhIGBEYXRhUXVhbGl0eVJ1bGVzZXRgIGV2YWx1YXRlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFRdWFsaXR5VGFyZ2V0VGFibGUge1xuICAvKipcbiAgICogVGFyZ2V0IGFuIEwyIHRhYmxlIGluIGEgZGF0YWJhc2UuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhYmFzZSB0aGUgZGF0YWJhc2UgdGhhdCBob2xkcyB0aGUgdGFibGUuXG4gICAqIEBwYXJhbSB0YWJsZSB0aGUgdGFibGUgdG8gZXZhbHVhdGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21UYWJsZShkYXRhYmFzZTogSURhdGFiYXNlUmVmLCB0YWJsZTogSVRhYmxlKTogRGF0YVF1YWxpdHlUYXJnZXRUYWJsZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRhUXVhbGl0eVRhcmdldFRhYmxlKGRhdGFiYXNlLmRhdGFiYXNlUmVmLmRhdGFiYXNlTmFtZSwgdGFibGUudGFibGVOYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUYXJnZXQgYSB0YWJsZSBieSBuYW1lIGluIGEgZGF0YWJhc2UuIFVzZSB0aGlzIHdoZW4gdGhlIHRhYmxlIGlzIG5vdFxuICAgKiBtb2RlbGVkIGFzIGFuIEwyIGNvbnN0cnVjdCAoZS5nLiBpdCBpcyBpbXBvcnRlZCBvciBjcmVhdGVkIGVsc2V3aGVyZSkuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhYmFzZSB0aGUgZGF0YWJhc2UgdGhhdCBob2xkcyB0aGUgdGFibGUuXG4gICAqIEBwYXJhbSB0YWJsZU5hbWUgdGhlIG5hbWUgb2YgdGhlIHRhYmxlIHRvIGV2YWx1YXRlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tVGFibGVOYW1lKGRhdGFiYXNlOiBJRGF0YWJhc2VSZWYsIHRhYmxlTmFtZTogc3RyaW5nKTogRGF0YVF1YWxpdHlUYXJnZXRUYWJsZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRhUXVhbGl0eVRhcmdldFRhYmxlKGRhdGFiYXNlLmRhdGFiYXNlUmVmLmRhdGFiYXNlTmFtZSwgdGFibGVOYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZGF0YWJhc2UgbmFtZSBvZiB0aGUgdGFyZ2V0IHRhYmxlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRhdGFiYXNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFibGUgbmFtZSBvZiB0aGUgdGFyZ2V0IHRhYmxlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhYmxlTmFtZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoZGF0YWJhc2VOYW1lOiBzdHJpbmcsIHRhYmxlTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5kYXRhYmFzZU5hbWUgPSBkYXRhYmFzZU5hbWU7XG4gICAgdGhpcy50YWJsZU5hbWUgPSB0YWJsZU5hbWU7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGUgRGF0YSBRdWFsaXR5IERlZmluaXRpb24gTGFuZ3VhZ2UgKERRREwpIGRvY3VtZW50IGZvciBhIGBEYXRhUXVhbGl0eVJ1bGVzZXRgLlxuICpcbiAqIERRREwgaXMgYW4gYXV0aG9yZWQgc3RyaW5nIHRoYXQgR2x1ZSBwYXJzZXMgYW5kIHZhbGlkYXRlcyBhdCBkZXBsb3kgdGltZS4gQnVpbGRcbiAqIG9uZSBmcm9tIGEgcmF3IERRREwgc3RyaW5nIHdpdGgge0BsaW5rIERxZGwuZnJvbVN0cmluZ30uXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvZHFkbC5odG1sXG4gKi9cbmV4cG9ydCBjbGFzcyBEcWRsIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIGBEcWRsYCBmcm9tIGEgcmF3IERRREwgc3RyaW5nLlxuICAgKlxuICAgKiBAcGFyYW0gZHFkbCB0aGUgRFFETCBkb2N1bWVudCwgZS5nLiBgUnVsZXMgPSBbIFJvd0NvdW50ID4gMTAwIF1gLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tU3RyaW5nKGRxZGw6IHN0cmluZyk6IERxZGwge1xuICAgIHJldHVybiBuZXcgRHFkbChkcWRsKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkcWRsOiBzdHJpbmcpIHt9XG5cbiAgLyoqXG4gICAqIFJlbmRlciB0aGlzIERRREwgdG8gdGhlIHN0cmluZyBleHBlY3RlZCBieSB0aGUgR2x1ZSBydWxlc2V0IHJlc291cmNlLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfcmVuZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZHFkbDtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRhUXVhbGl0eVJ1bGVzZXQgZXh0ZW5kcyBJUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgcnVsZXNldFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBydWxlc2V0QXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBydWxlc2V0XG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHJ1bGVzZXROYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uc3RydWN0aW9uIHByb3BlcnRpZXMgZm9yIGBEYXRhUXVhbGl0eVJ1bGVzZXRgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVF1YWxpdHlSdWxlc2V0UHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJ1bGVzZXRcbiAgICovXG4gIHJlYWRvbmx5IHJ1bGVzZXROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgcnVsZXNldFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIERRREwgZG9jdW1lbnQgZGVmaW5pbmcgdGhlIHJ1bGVzZXQncyBkYXRhIHF1YWxpdHkgcnVsZXMuXG4gICAqXG4gICAqIEJ1aWxkIGl0IHdpdGggYERxZGwuZnJvbVN0cmluZyguLi4pYC5cbiAgICovXG4gIHJlYWRvbmx5IGRxZGw6IERxZGw7XG5cbiAgLyoqXG4gICAqICBLZXktVmFsdWUgcGFpcnMgdGhhdCBkZWZpbmUgdGFncyBmb3IgdGhlIHJ1bGVzZXQuXG4gICAqICBAZGVmYXVsdCBlbXB0eSB0YWdzXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVGhlIHRhcmdldCB0YWJsZSBvZiB0aGUgcnVsZXNldFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRUYWJsZTogRGF0YVF1YWxpdHlUYXJnZXRUYWJsZTtcblxuICAvKipcbiAgICogUG9saWN5IHRvIGFwcGx5IHdoZW4gdGhlIHJ1bGVzZXQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBzdGFjay5cbiAgICpcbiAgICogQGRlZmF1bHQgLSByZXNvdXJjZSB3aWxsIGJlIGRlc3Ryb3llZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG59XG5cbi8qKlxuICogQSBHbHVlIERhdGEgUXVhbGl0eSBydWxlc2V0LlxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgRGF0YVF1YWxpdHlSdWxlc2V0IGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJRGF0YVF1YWxpdHlSdWxlc2V0IHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtZ2x1ZS1hbHBoYS5EYXRhUXVhbGl0eVJ1bGVzZXQnO1xuXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVJ1bGVzZXRBcm4oc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBydWxlc2V0QXJuOiBzdHJpbmcpOiBJRGF0YVF1YWxpdHlSdWxlc2V0IHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElEYXRhUXVhbGl0eVJ1bGVzZXQge1xuICAgICAgcHVibGljIHJ1bGVzZXRBcm4gPSBydWxlc2V0QXJuO1xuICAgICAgcHVibGljIHJ1bGVzZXROYW1lID0gY2RrLkFybi5leHRyYWN0UmVzb3VyY2VOYW1lKHJ1bGVzZXRBcm4sICdkYXRhcXVhbGl0eXJ1bGVzZXQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tUnVsZXNldE5hbWUoc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBydWxlc2V0TmFtZTogc3RyaW5nKTogSURhdGFRdWFsaXR5UnVsZXNldCB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJRGF0YVF1YWxpdHlSdWxlc2V0IHtcbiAgICAgIHB1YmxpYyBydWxlc2V0QXJuID0gRGF0YVF1YWxpdHlSdWxlc2V0LmJ1aWxkUnVsZXNldEFybihzY29wZSwgcnVsZXNldE5hbWUpO1xuICAgICAgcHVibGljIHJ1bGVzZXROYW1lID0gcnVsZXNldE5hbWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGJ1aWxkUnVsZXNldEFybihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIHJ1bGVzZXROYW1lOiBzdHJpbmcpIDogc3RyaW5nIHtcbiAgICByZXR1cm4gY2RrLlN0YWNrLm9mKHNjb3BlKS5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogJ2dsdWUnLFxuICAgICAgcmVzb3VyY2U6ICdkYXRhcXVhbGl0eXJ1bGVzZXQnLFxuICAgICAgcmVzb3VyY2VOYW1lOiBydWxlc2V0TmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb3VyY2U6IENmbkRhdGFRdWFsaXR5UnVsZXNldDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhUXVhbGl0eVJ1bGVzZXRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy5ydWxlc2V0TmFtZSxcbiAgICB9KTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgQ2ZuRGF0YVF1YWxpdHlSdWxlc2V0KHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIG5hbWU6IHByb3BzLnJ1bGVzZXROYW1lLFxuICAgICAgcnVsZXNldDogcHJvcHMuZHFkbC5fcmVuZGVyKCksXG4gICAgICB0YWdzOiBwcm9wcy50YWdzLFxuICAgICAgdGFyZ2V0VGFibGU6IHByb3BzLnRhcmdldFRhYmxlLFxuICAgIH0pO1xuXG4gICAgdGhpcy5yZXNvdXJjZS5hcHBseVJlbW92YWxQb2xpY3kocHJvcHMucmVtb3ZhbFBvbGljeSk7XG4gIH1cblxuICAvKipcbiAgICogTmFtZSBvZiB0aGlzIHJ1bGVzZXQuXG4gICAqL1xuICBAbWVtb2l6ZWRHZXR0ZXJcbiAgcHVibGljIGdldCBydWxlc2V0TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFJlc291cmNlTmFtZUF0dHJpYnV0ZSh0aGlzLnJlc291cmNlLnJlZik7XG4gIH1cblxuICAvKipcbiAgICogQVJOIG9mIHRoaXMgcnVsZXNldC5cbiAgICovXG4gIEBtZW1vaXplZEdldHRlclxuICBwdWJsaWMgZ2V0IHJ1bGVzZXRBcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gRGF0YVF1YWxpdHlSdWxlc2V0LmJ1aWxkUnVsZXNldEFybih0aGlzLCB0aGlzLnJ1bGVzZXROYW1lKTtcbiAgfVxufVxuIl19
306
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1xdWFsaXR5LXJ1bGVzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkYXRhLXF1YWxpdHktcnVsZXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBbUM7QUFDbkMsbURBQWdGO0FBRWhGLDJDQUE0QztBQUM1Qyw0RUFBdUU7QUFDdkUsOEVBQThFO0FBQzlFLDBFQUEwRTtBQUkxRTs7R0FFRztBQUNILE1BQWEsc0JBQXNCOztJQUNqQzs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBc0IsRUFBRSxLQUFhOzs7Ozs7Ozs7OztRQUMzRCxPQUFPLElBQUksc0JBQXNCLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBQ3ZGO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFzQixFQUFFLFNBQWlCOzs7Ozs7Ozs7O1FBQ25FLE9BQU8sSUFBSSxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztLQUNqRjtJQUVEOztPQUVHO0lBQ2EsWUFBWSxDQUFTO0lBRXJDOztPQUVHO0lBQ2EsU0FBUyxDQUFTO0lBRWxDLFlBQW9CLFlBQW9CLEVBQUUsU0FBaUI7UUFDekQsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7S0FDNUI7O0FBbkNILHdEQW9DQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLElBQUk7SUFVc0I7O0lBVHJDOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsVUFBVSxDQUFDLElBQVk7Ozs7Ozs7Ozs7UUFDbkMsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENB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Q0FBQyxDQUFDO1NBQ25FOztZQWhFVSx1REFBa0I7Ozs7O0FBQWxCLGdEQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDZm5EYXRhUXVhbGl0eVJ1bGVzZXQsIHR5cGUgSURhdGFiYXNlUmVmIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWdsdWUnO1xuaW1wb3J0IHR5cGUgeyBJUmVzb3VyY2UsIFJlbW92YWxQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IFJlc291cmNlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBtZW1vaXplZEdldHRlciB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2hlbHBlcnMtaW50ZXJuYWwnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHR5cGUgKiBhcyBjb25zdHJ1Y3RzIGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHR5cGUgeyBJVGFibGUgfSBmcm9tICcuL3RhYmxlLWJhc2UnO1xuXG4vKipcbiAqIFRoZSBHbHVlIHRhYmxlIGEgYERhdGFRdWFsaXR5UnVsZXNldGAgZXZhbHVhdGVzLlxuICovXG5leHBvcnQgY2xhc3MgRGF0YVF1YWxpdHlUYXJnZXRUYWJsZSB7XG4gIC8qKlxuICAgKiBUYXJnZXQgYW4gTDIgdGFibGUgaW4gYSBkYXRhYmFzZS5cbiAgICpcbiAgICogQHBhcmFtIGRhdGFiYXNlIHRoZSBkYXRhYmFzZSB0aGF0IGhvbGRzIHRoZSB0YWJsZS5cbiAgICogQHBhcmFtIHRhYmxlIHRoZSB0YWJsZSB0byBldmFsdWF0ZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVRhYmxlKGRhdGFiYXNlOiBJRGF0YWJhc2VSZWYsIHRhYmxlOiBJVGFibGUpOiBEYXRhUXVhbGl0eVRhcmdldFRhYmxlIHtcbiAgICByZXR1cm4gbmV3IERhdGFRdWFsaXR5VGFyZ2V0VGFibGUoZGF0YWJhc2UuZGF0YWJhc2VSZWYuZGF0YWJhc2VOYW1lLCB0YWJsZS50YWJsZU5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRhcmdldCBhIHRhYmxlIGJ5IG5hbWUgaW4gYSBkYXRhYmFzZS4gVXNlIHRoaXMgd2hlbiB0aGUgdGFibGUgaXMgbm90XG4gICAqIG1vZGVsZWQgYXMgYW4gTDIgY29uc3RydWN0IChlLmcuIGl0IGlzIGltcG9ydGVkIG9yIGNyZWF0ZWQgZWxzZXdoZXJlKS5cbiAgICpcbiAgICogQHBhcmFtIGRhdGFiYXNlIHRoZSBkYXRhYmFzZSB0aGF0IGhvbGRzIHRoZSB0YWJsZS5cbiAgICogQHBhcmFtIHRhYmxlTmFtZSB0aGUgbmFtZSBvZiB0aGUgdGFibGUgdG8gZXZhbHVhdGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21UYWJsZU5hbWUoZGF0YWJhc2U6IElEYXRhYmFzZVJlZiwgdGFibGVOYW1lOiBzdHJpbmcpOiBEYXRhUXVhbGl0eVRhcmdldFRhYmxlIHtcbiAgICByZXR1cm4gbmV3IERhdGFRdWFsaXR5VGFyZ2V0VGFibGUoZGF0YWJhc2UuZGF0YWJhc2VSZWYuZGF0YWJhc2VOYW1lLCB0YWJsZU5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRhYmFzZSBuYW1lIG9mIHRoZSB0YXJnZXQgdGFibGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0YWJhc2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWJsZSBuYW1lIG9mIHRoZSB0YXJnZXQgdGFibGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFibGVOYW1lOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihkYXRhYmFzZU5hbWU6IHN0cmluZywgdGFibGVOYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmRhdGFiYXNlTmFtZSA9IGRhdGFiYXNlTmFtZTtcbiAgICB0aGlzLnRhYmxlTmFtZSA9IHRhYmxlTmFtZTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSBEYXRhIFF1YWxpdHkgRGVmaW5pdGlvbiBMYW5ndWFnZSAoRFFETCkgZG9jdW1lbnQgZm9yIGEgYERhdGFRdWFsaXR5UnVsZXNldGAuXG4gKlxuICogRFFETCBpcyBhbiBhdXRob3JlZCBzdHJpbmcgdGhhdCBHbHVlIHBhcnNlcyBhbmQgdmFsaWRhdGVzIGF0IGRlcGxveSB0aW1lLiBCdWlsZFxuICogb25lIGZyb20gYSByYXcgRFFETCBzdHJpbmcgd2l0aCB7QGxpbmsgRHFkbC5mcm9tU3RyaW5nfS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9kcWRsLmh0bWxcbiAqL1xuZXhwb3J0IGNsYXNzIERxZGwge1xuICAvKipcbiAgICogQ3JlYXRlIGEgYERxZGxgIGZyb20gYSByYXcgRFFETCBzdHJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBkcWRsIHRoZSBEUURMIGRvY3VtZW50LCBlLmcuIGBSdWxlcyA9IFsgUm93Q291bnQgPiAxMDAgXWAuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TdHJpbmcoZHFkbDogc3RyaW5nKTogRHFkbCB7XG4gICAgcmV0dXJuIG5ldyBEcWRsKGRxZGwpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRxZGw6IHN0cmluZykge31cblxuICAvKipcbiAgICogUmVuZGVyIHRoaXMgRFFETCB0byB0aGUgc3RyaW5nIGV4cGVjdGVkIGJ5IHRoZSBHbHVlIHJ1bGVzZXQgcmVzb3VyY2UuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIF9yZW5kZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kcWRsO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFRdWFsaXR5UnVsZXNldCBleHRlbmRzIElSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBydWxlc2V0XG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHJ1bGVzZXRBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJ1bGVzZXRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgcnVsZXNldE5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3Rpb24gcHJvcGVydGllcyBmb3IgYERhdGFRdWFsaXR5UnVsZXNldGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhUXVhbGl0eVJ1bGVzZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcnVsZXNldFxuICAgKi9cbiAgcmVhZG9ubHkgcnVsZXNldE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBydWxlc2V0XG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgRFFETCBkb2N1bWVudCBkZWZpbmluZyB0aGUgcnVsZXNldCdzIGRhdGEgcXVhbGl0eSBydWxlcy5cbiAgICpcbiAgICogQnVpbGQgaXQgd2l0aCBgRHFkbC5mcm9tU3RyaW5nKC4uLilgLlxuICAgKi9cbiAgcmVhZG9ubHkgZHFkbDogRHFkbDtcblxuICAvKipcbiAgICogIEtleS1WYWx1ZSBwYWlycyB0aGF0IGRlZmluZSB0YWdzIGZvciB0aGUgcnVsZXNldC5cbiAgICogIEBkZWZhdWx0IGVtcHR5IHRhZ3NcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBUaGUgdGFyZ2V0IHRhYmxlIG9mIHRoZSBydWxlc2V0XG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldFRhYmxlOiBEYXRhUXVhbGl0eVRhcmdldFRhYmxlO1xuXG4gIC8qKlxuICAgKiBQb2xpY3kgdG8gYXBwbHkgd2hlbiB0aGUgcnVsZXNldCBpcyByZW1vdmVkIGZyb20gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHJlc291cmNlIHdpbGwgYmUgZGVzdHJveWVkXG4gICAqL1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcbn1cblxuLyoqXG4gKiBBIEdsdWUgRGF0YSBRdWFsaXR5IHJ1bGVzZXQuXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBEYXRhUXVhbGl0eVJ1bGVzZXQgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElEYXRhUXVhbGl0eVJ1bGVzZXQge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1nbHVlLWFscGhhLkRhdGFRdWFsaXR5UnVsZXNldCc7XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tUnVsZXNldEFybihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHJ1bGVzZXRBcm46IHN0cmluZyk6IElEYXRhUXVhbGl0eVJ1bGVzZXQge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSURhdGFRdWFsaXR5UnVsZXNldCB7XG4gICAgICBwdWJsaWMgcnVsZXNldEFybiA9IHJ1bGVzZXRBcm47XG4gICAgICBwdWJsaWMgcnVsZXNldE5hbWUgPSBjZGsuQXJuLmV4dHJhY3RSZXNvdXJjZU5hbWUocnVsZXNldEFybiwgJ2RhdGFxdWFsaXR5cnVsZXNldCcpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGZyb21SdWxlc2V0TmFtZShzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHJ1bGVzZXROYW1lOiBzdHJpbmcpOiBJRGF0YVF1YWxpdHlSdWxlc2V0IHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElEYXRhUXVhbGl0eVJ1bGVzZXQge1xuICAgICAgcHVibGljIHJ1bGVzZXRBcm4gPSBEYXRhUXVhbGl0eVJ1bGVzZXQuYnVpbGRSdWxlc2V0QXJuKHNjb3BlLCBydWxlc2V0TmFtZSk7XG4gICAgICBwdWJsaWMgcnVsZXNldE5hbWUgPSBydWxlc2V0TmFtZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRSdWxlc2V0QXJuKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgcnVsZXNldE5hbWU6IHN0cmluZykgOiBzdHJpbmcge1xuICAgIHJldHVybiBjZGsuU3RhY2sub2Yoc2NvcGUpLmZvcm1hdEFybih7XG4gICAgICBzZXJ2aWNlOiAnZ2x1ZScsXG4gICAgICByZXNvdXJjZTogJ2RhdGFxdWFsaXR5cnVsZXNldCcsXG4gICAgICByZXNvdXJjZU5hbWU6IHJ1bGVzZXROYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvdXJjZTogQ2ZuRGF0YVF1YWxpdHlSdWxlc2V0O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERhdGFRdWFsaXR5UnVsZXNldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLnJ1bGVzZXROYW1lLFxuICAgIH0pO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBDZm5EYXRhUXVhbGl0eVJ1bGVzZXQodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgbmFtZTogcHJvcHMucnVsZXNldE5hbWUsXG4gICAgICBydWxlc2V0OiBwcm9wcy5kcWRsLl9yZW5kZXIoKSxcbiAgICAgIHRhZ3M6IHByb3BzLnRhZ3MsXG4gICAgICB0YXJnZXRUYWJsZTogcHJvcHMudGFyZ2V0VGFibGUsXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlc291cmNlLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5yZW1vdmFsUG9saWN5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoaXMgcnVsZXNldC5cbiAgICovXG4gIEBtZW1vaXplZEdldHRlclxuICBwdWJsaWMgZ2V0IHJ1bGVzZXROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVzb3VyY2VOYW1lQXR0cmlidXRlKHRoaXMucmVzb3VyY2UucmVmKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBUk4gb2YgdGhpcyBydWxlc2V0LlxuICAgKi9cbiAgQG1lbW9pemVkR2V0dGVyXG4gIHB1YmxpYyBnZXQgcnVsZXNldEFybigpOiBzdHJpbmcge1xuICAgIHJldHVybiBEYXRhUXVhbGl0eVJ1bGVzZXQuYnVpbGRSdWxlc2V0QXJuKHRoaXMsIHRoaXMucnVsZXNldE5hbWUpO1xuICB9XG59XG4iXX0=
package/lib/database.js CHANGED
@@ -70,10 +70,19 @@ let Database = (() => {
70
70
  Database = _classThis = _classDescriptor.value;
71
71
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
72
72
  }
73
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.Database", version: "2.268.0-alpha.0" };
73
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.Database", version: "2.270.0-alpha.0" };
74
74
  /** Uniquely identifies this class. */
75
75
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-glue-alpha.Database';
76
76
  static fromDatabaseArn(scope, id, databaseArn) {
77
+ try {
78
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.Database#fromDatabaseArn", "");
79
+ }
80
+ catch (error) {
81
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
82
+ Error.captureStackTrace(error, this.fromDatabaseArn);
83
+ }
84
+ throw error;
85
+ }
77
86
  const stack = core_1.Stack.of(scope);
78
87
  let Import = (() => {
79
88
  let _classSuper = core_1.Resource;
@@ -114,6 +123,7 @@ let Database = (() => {
114
123
  }),
115
124
  });
116
125
  try {
126
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.Database", "");
117
127
  jsiiDeprecationWarnings._aws_cdk_aws_glue_alpha_DatabaseProps(props);
118
128
  }
119
129
  catch (error) {
@@ -159,12 +169,39 @@ let Database = (() => {
159
169
  * access.
160
170
  */
161
171
  get catalog() {
172
+ try {
173
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.Database#catalog", "");
174
+ }
175
+ catch (error) {
176
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
177
+ Error.captureStackTrace(error, jsiiDeprecationWarnings.getPropertyDescriptor(this, "catalog").get);
178
+ }
179
+ throw error;
180
+ }
162
181
  return this._catalog ?? catalog_1.Catalog.forAccount(this);
163
182
  }
164
183
  get databaseName() {
184
+ try {
185
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.Database#databaseName", "");
186
+ }
187
+ catch (error) {
188
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
189
+ Error.captureStackTrace(error, jsiiDeprecationWarnings.getPropertyDescriptor(this, "databaseName").get);
190
+ }
191
+ throw error;
192
+ }
165
193
  return this.getResourceNameAttribute(this.resource.ref);
166
194
  }
167
195
  get databaseArn() {
196
+ try {
197
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.Database#databaseArn", "");
198
+ }
199
+ catch (error) {
200
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
201
+ Error.captureStackTrace(error, jsiiDeprecationWarnings.getPropertyDescriptor(this, "databaseArn").get);
202
+ }
203
+ throw error;
204
+ }
168
205
  return this.stack.formatArn({
169
206
  service: 'glue',
170
207
  resource: 'database',
@@ -172,6 +209,15 @@ let Database = (() => {
172
209
  });
173
210
  }
174
211
  get databaseRef() {
212
+ try {
213
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.Database#databaseRef", "");
214
+ }
215
+ catch (error) {
216
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
217
+ Error.captureStackTrace(error, jsiiDeprecationWarnings.getPropertyDescriptor(this, "databaseRef").get);
218
+ }
219
+ throw error;
220
+ }
175
221
  return { databaseName: this.databaseName };
176
222
  }
177
223
  static {
@@ -191,4 +237,4 @@ function validateDescription(description) {
191
237
  throw new core_1.UnscopedValidationError((0, helpers_internal_1.lit) `InvalidDescriptionLength`, `description length must be less than or equal to 2048, got ${description.length}`);
192
238
  }
193
239
  }
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkYXRhYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFBOEY7QUFFOUYsMkNBQW1IO0FBQ25ILDRFQUE0RTtBQUM1RSw4RUFBOEU7QUFDOUUsMEVBQTBFO0FBRzFFLHVDQUFvQztBQWlFcEM7O0dBRUc7SUFFVSxRQUFROzRCQURwQixvQ0FBa0I7Ozs7c0JBQ1csZUFBUTs7Ozs7d0JBQWhCLFNBQVEsV0FBUTs7Ozt1Q0FxRm5DLGlDQUFjOzRDQUtkLGlDQUFjOzJDQUtkLGlDQUFjO1lBVGYsNEtBQVcsT0FBTyw2REFFakI7WUFHRCwyTEFBVyxZQUFZLDZEQUV0QjtZQUdELHdMQUFXLFdBQVcsNkRBTXJCO1lBdEdILDZLQTJHQzs7Ozs7UUExR0Msc0NBQXNDO1FBQy9CLE1BQU0sQ0FBVSxxQkFBcUIsR0FBVyxrQ0FBa0MsQ0FBQztRQUVuRixNQUFNLENBQUMsZUFBZSxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFdBQW1CO1lBQzdFLE1BQU0sS0FBSyxHQUFHLFlBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRXhCLE1BQU07a0NBQVMsZUFBUTs7OzZCQUF2QixNQUFPLFNBQVEsV0FBUTs7O3FEQVUxQixpQ0FBYzt3QkFDZiw4S0FBVyxPQUFPLDZEQUVqQjs7O29CQVpNLFdBQVcsSUFEZCxtREFBTSxFQUNXLFdBQVcsRUFBQztvQkFDMUIsWUFBWSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLGdCQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxZQUFhLENBQUM7b0JBRS9GLElBQVcsV0FBVzt3QkFDcEIsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQzdDLENBQUM7b0JBRUQsMEVBQTBFO29CQUMxRSw0REFBNEQ7b0JBRTVELElBQVcsT0FBTzt3QkFDaEIsT0FBTyxpQkFBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDbEMsQ0FBQzs7O1lBR0gsT0FBTyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDOUI7UUFFRDs7V0FFRztRQUNhLFdBQVcsR0E3QmhCLG1EQUFRLENBNkJrQjtRQUVwQixRQUFRLENBQVk7UUFFN0IsUUFBUSxDQUFjO1FBRTlCLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBdUIsRUFBRTtZQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtnQkFDZixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7b0JBQzlCLFdBQUksQ0FBQyxNQUFNLENBQUM7d0JBQ1YsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLFlBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFO3FCQUNoRSxDQUFDO2FBQ0wsQ0FBQyxDQUFDOzs7Ozs7bURBekNNLFFBQVE7Ozs7WUEwQ2pCLG1DQUFtQztZQUNuQyxJQUFBLHdDQUFvQixFQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUVsQyxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3BDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6QyxDQUFDO1lBRUQsSUFBSSxhQUFhLEdBQXNDO2dCQUNyRCxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQ3ZCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVzthQUMvQixDQUFDO1lBRUYsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNwQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztnQkFDckMsYUFBYSxHQUFHO29CQUNkLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztvQkFDN0IsR0FBRyxhQUFhO2lCQUNqQixDQUFDO1lBQ0osQ0FBQztZQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUU5QixxRUFBcUU7WUFDckUsNEVBQTRFO1lBQzVFLG1FQUFtRTtZQUNuRSw0Q0FBNEM7WUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHNCQUFXLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFDaEQsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxJQUFJLFlBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTztnQkFDN0QsYUFBYTthQUNkLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRTtnQkFDcEQsT0FBTyxFQUFFLG9CQUFhLENBQUMsTUFBTTthQUM5QixDQUFDLENBQUM7U0FDSjtRQUVEOzs7OztXQUtHO1FBRUgsSUFBVyxPQUFPO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxpQkFBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNsRDtRQUdELElBQVcsWUFBWTtZQUNyQixPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pEO1FBR0QsSUFBVyxXQUFXO1lBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7Z0JBQzFCLE9BQU8sRUFBRSxNQUFNO2dCQUNmLFFBQVEsRUFBRSxVQUFVO2dCQUNwQixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7YUFDaEMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFXLFdBQVc7WUFDcEIsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDNUM7O1lBMUdVLHVEQUFROzs7OztBQUFSLDRCQUFRO0FBNkdyQixTQUFTLG1CQUFtQixDQUFDLFdBQW1CO0lBQzlDLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUN4RCxNQUFNLElBQUksOEJBQXVCLENBQUMsSUFBQSxzQkFBRyxFQUFBLDBCQUEwQixFQUFFLG9FQUFvRSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM3SixDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsV0FBbUI7SUFDOUMsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDO1FBQzlCLE1BQU0sSUFBSSw4QkFBdUIsQ0FBQyxJQUFBLHNCQUFHLEVBQUEsMEJBQTBCLEVBQUUsOERBQThELFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZKLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuRGF0YWJhc2UsIHR5cGUgRGF0YWJhc2VSZWZlcmVuY2UsIHR5cGUgSURhdGFiYXNlUmVmIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWdsdWUnO1xuaW1wb3J0IHR5cGUgeyBJUmVzb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IEFybkZvcm1hdCwgTGF6eSwgTmFtZXMsIFJlbW92YWxQb2xpY3ksIFJlc291cmNlLCBTdGFjaywgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IGxpdCwgbWVtb2l6ZWRHZXR0ZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IElDYXRhbG9nIH0gZnJvbSAnLi9jYXRhbG9nJztcbmltcG9ydCB7IENhdGFsb2cgfSBmcm9tICcuL2NhdGFsb2cnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRhYmFzZSBleHRlbmRzIElSZXNvdXJjZSwgSURhdGFiYXNlUmVmIHtcblxuICAvKipcbiAgICogVGhlIGNhdGFsb2cgdGhpcyBkYXRhYmFzZSBiZWxvbmdzIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgY2F0YWxvZzogSUNhdGFsb2c7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGRhdGFiYXNlLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBkYXRhYmFzZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZGF0YWJhc2UuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFiYXNlTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFiYXNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGRhdGFiYXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGdlbmVyYXRlZCBieSBDREsuXG4gICAqL1xuICByZWFkb25seSBkYXRhYmFzZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiBvZiB0aGUgZGF0YWJhc2UgKGZvciBleGFtcGxlLCBhbiBIREZTIHBhdGgpLlxuICAgKlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWQuIFRoaXMgZmllbGQgaXMgb3B0aW9uYWwgaW4gQVdTOjpHbHVlOjpEYXRhYmFzZSBEYXRhYmFzZUlucHV0XG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZ2x1ZS1kYXRhYmFzZS1kYXRhYmFzZWlucHV0Lmh0bWxcbiAgICovXG4gIHJlYWRvbmx5IGxvY2F0aW9uVXJpPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGRlc2NyaXB0aW9uIG9mIHRoZSBkYXRhYmFzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkYXRhYmFzZSBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjYXRhbG9nIGluIHdoaWNoIHRoZSBkYXRhYmFzZSB3aWxsIGJlIHBsYWNlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgVGhlIGRlZmF1bHQsIGFjY291bnQtd2lkZSBjYXRhbG9nLlxuICAgKi9cbiAgcmVhZG9ubHkgY2F0YWxvZz86IElDYXRhbG9nO1xuXG4gIC8qKlxuICAgKiBQb2xpY3kgdG8gYXBwbHkgd2hlbiB0aGUgZGF0YWJhc2UgaXMgcmVtb3ZlZCBmcm9tIHRoZSBzdGFjay5cbiAgICpcbiAgICogQSBkYXRhYmFzZSBpcyBhIGNvbnRhaW5lciBmb3IgdGFibGVzIGFuZCB0aGVpciBtZXRhZGF0YSwgc28gaXQgaXMgcmV0YWluZWRcbiAgICogYnkgZGVmYXVsdCB0byBhdm9pZCBhY2NpZGVudGFsIGRhdGEgbG9zcyB3aGVuIGl0IGlzIHJlbW92ZWQgZnJvbSBhIHN0YWNrLlxuICAgKlxuICAgKiBAZGVmYXVsdCBSZW1vdmFsUG9saWN5LlJFVEFJTlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG59XG5cbi8qKlxuICogQSBHbHVlIGRhdGFiYXNlLlxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgRGF0YWJhc2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElEYXRhYmFzZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWdsdWUtYWxwaGEuRGF0YWJhc2UnO1xuXG4gIHB1YmxpYyBzdGF0aWMgZnJvbURhdGFiYXNlQXJuKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGRhdGFiYXNlQXJuOiBzdHJpbmcpOiBJRGF0YWJhc2Uge1xuICAgIGNvbnN0IHN0YWNrID0gU3RhY2sub2Yoc2NvcGUpO1xuXG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJRGF0YWJhc2Uge1xuICAgICAgcHVibGljIGRhdGFiYXNlQXJuID0gZGF0YWJhc2VBcm47XG4gICAgICBwdWJsaWMgZGF0YWJhc2VOYW1lID0gc3RhY2suc3BsaXRBcm4oZGF0YWJhc2VBcm4sIEFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FKS5yZXNvdXJjZU5hbWUhO1xuXG4gICAgICBwdWJsaWMgZ2V0IGRhdGFiYXNlUmVmKCk6IERhdGFiYXNlUmVmZXJlbmNlIHtcbiAgICAgICAgcmV0dXJuIHsgZGF0YWJhc2VOYW1lOiB0aGlzLmRhdGFiYXNlTmFtZSB9O1xuICAgICAgfVxuXG4gICAgICAvLyBNYXRlcmlhbGl6ZSB0aGUgYWNjb3VudCBjYXRhbG9nIG9ubHkgb24gYWNjZXNzLCBzbyBpbXBvcnRpbmcgYSBkYXRhYmFzZVxuICAgICAgLy8gZG9lcyBub3QgcHJlLWVtcHQgQ2F0YWxvZy5lbmNyeXB0QWNjb3VudCgpIGZvciB0aGUgc3RhY2suXG4gICAgICBAbWVtb2l6ZWRHZXR0ZXJcbiAgICAgIHB1YmxpYyBnZXQgY2F0YWxvZygpOiBJQ2F0YWxvZyB7XG4gICAgICAgIHJldHVybiBDYXRhbG9nLmZvckFjY291bnQodGhpcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2NhdGlvbiBVUkkgb2YgdGhpcyBkYXRhYmFzZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBsb2NhdGlvblVyaT86IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jYXRhbG9nPzogSUNhdGFsb2c7XG5cbiAgcHJpdmF0ZSByZXNvdXJjZTogQ2ZuRGF0YWJhc2U7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERhdGFiYXNlUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy5kYXRhYmFzZU5hbWUgPz9cbiAgICAgICAgTGF6eS5zdHJpbmcoe1xuICAgICAgICAgIHByb2R1Y2U6ICgpID0+IE5hbWVzLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7fSkudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgfSksXG4gICAgfSk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICBpZiAocHJvcHMuZGVzY3JpcHRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFsaWRhdGVEZXNjcmlwdGlvbihwcm9wcy5kZXNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgbGV0IGRhdGFiYXNlSW5wdXQ6IENmbkRhdGFiYXNlLkRhdGFiYXNlSW5wdXRQcm9wZXJ0eSA9IHtcbiAgICAgIG5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgIH07XG5cbiAgICBpZiAocHJvcHMubG9jYXRpb25VcmkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFsaWRhdGVMb2NhdGlvblVyaShwcm9wcy5sb2NhdGlvblVyaSk7XG4gICAgICB0aGlzLmxvY2F0aW9uVXJpID0gcHJvcHMubG9jYXRpb25Vcmk7XG4gICAgICBkYXRhYmFzZUlucHV0ID0ge1xuICAgICAgICBsb2NhdGlvblVyaTogdGhpcy5sb2NhdGlvblVyaSxcbiAgICAgICAgLi4uZGF0YWJhc2VJbnB1dCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGhpcy5fY2F0YWxvZyA9IHByb3BzLmNhdGFsb2c7XG5cbiAgICAvLyBXaGVuIHRoZSBkYXRhYmFzZSB1c2VzIHRoZSBpbXBsaWNpdCBhY2NvdW50IGNhdGFsb2csIGl0cyBpZCBpcyB0aGVcbiAgICAvLyBhY2NvdW50IGlkLiBSZWZlcmVuY2UgdGhhdCBkaXJlY3RseSByYXRoZXIgdGhhbiBtYXRlcmlhbGl6aW5nIHRoZSBhY2NvdW50XG4gICAgLy8gY2F0YWxvZyBzaW5nbGV0b24sIHNvIGEgcGxhaW4gYG5ldyBEYXRhYmFzZSgpYCBkb2VzIG5vdCBwcmUtZW1wdFxuICAgIC8vIGBDYXRhbG9nLmVuY3J5cHRBY2NvdW50KClgIGZvciB0aGUgc3RhY2suXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBDZm5EYXRhYmFzZSh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBjYXRhbG9nSWQ6IHRoaXMuX2NhdGFsb2c/LmNhdGFsb2dJZCA/PyBTdGFjay5vZih0aGlzKS5hY2NvdW50LFxuICAgICAgZGF0YWJhc2VJbnB1dCxcbiAgICB9KTtcblxuICAgIHRoaXMucmVzb3VyY2UuYXBwbHlSZW1vdmFsUG9saWN5KHByb3BzLnJlbW92YWxQb2xpY3ksIHtcbiAgICAgIGRlZmF1bHQ6IFJlbW92YWxQb2xpY3kuUkVUQUlOLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjYXRhbG9nIHRoaXMgZGF0YWJhc2UgYmVsb25ncyB0by5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gdGhlIGltcGxpY2l0LCBhY2NvdW50LXdpZGUgY2F0YWxvZywgbWF0ZXJpYWxpemVkIG9uIGZpcnN0XG4gICAqIGFjY2Vzcy5cbiAgICovXG4gIEBtZW1vaXplZEdldHRlclxuICBwdWJsaWMgZ2V0IGNhdGFsb2coKTogSUNhdGFsb2cge1xuICAgIHJldHVybiB0aGlzLl9jYXRhbG9nID8/IENhdGFsb2cuZm9yQWNjb3VudCh0aGlzKTtcbiAgfVxuXG4gIEBtZW1vaXplZEdldHRlclxuICBwdWJsaWMgZ2V0IGRhdGFiYXNlTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFJlc291cmNlTmFtZUF0dHJpYnV0ZSh0aGlzLnJlc291cmNlLnJlZik7XG4gIH1cblxuICBAbWVtb2l6ZWRHZXR0ZXJcbiAgcHVibGljIGdldCBkYXRhYmFzZUFybigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnN0YWNrLmZvcm1hdEFybih7XG4gICAgICBzZXJ2aWNlOiAnZ2x1ZScsXG4gICAgICByZXNvdXJjZTogJ2RhdGFiYXNlJyxcbiAgICAgIHJlc291cmNlTmFtZTogdGhpcy5kYXRhYmFzZU5hbWUsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRhdGFiYXNlUmVmKCk6IERhdGFiYXNlUmVmZXJlbmNlIHtcbiAgICByZXR1cm4geyBkYXRhYmFzZU5hbWU6IHRoaXMuZGF0YWJhc2VOYW1lIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVMb2NhdGlvblVyaShsb2NhdGlvblVyaTogc3RyaW5nKTogdm9pZCB7XG4gIGlmIChsb2NhdGlvblVyaS5sZW5ndGggPCAxIHx8IGxvY2F0aW9uVXJpLmxlbmd0aCA+IDEwMjQpIHtcbiAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IobGl0YEludmFsaWRMb2NhdGlvblVyaUxlbmd0aGAsIGBsb2NhdGlvblVyaSBsZW5ndGggbXVzdCBiZSAoaW5jbHVzaXZlbHkpIGJldHdlZW4gMSBhbmQgMTAyNCwgZ290ICR7bG9jYXRpb25VcmkubGVuZ3RofWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlRGVzY3JpcHRpb24oZGVzY3JpcHRpb246IHN0cmluZyk6IHZvaWQge1xuICBpZiAoZGVzY3JpcHRpb24ubGVuZ3RoID4gMjA0OCkge1xuICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihsaXRgSW52YWxpZERlc2NyaXB0aW9uTGVuZ3RoYCwgYGRlc2NyaXB0aW9uIGxlbmd0aCBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAyMDQ4LCBnb3QgJHtkZXNjcmlwdGlvbi5sZW5ndGh9YCk7XG4gIH1cbn1cbiJdfQ==
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkYXRhYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFBOEY7QUFFOUYsMkNBQW1IO0FBQ25ILDRFQUE0RTtBQUM1RSw4RUFBOEU7QUFDOUUsMEVBQTBFO0FBRzFFLHVDQUFvQztBQWlFcEM7O0dBRUc7SUFFVSxRQUFROzRCQURwQixvQ0FBa0I7Ozs7c0JBQ1csZUFBUTs7Ozs7d0JBQWhCLFNBQVEsV0FBUTs7Ozt1Q0FxRm5DLGlDQUFjOzRDQUtkLGlDQUFjOzJDQUtkLGlDQUFjO1lBVGYsNEtBQVcsT0FBTyw2REFFakI7WUFHRCwyTEFBVyxZQUFZLDZEQUV0QjtZQUdELHdMQUFXLFdBQVcsNkRBTXJCO1lBdEdILDZLQTJHQzs7Ozs7UUExR0Msc0NBQXNDO1FBQy9CLE1BQU0sQ0FBVSxxQkFBcUIsR0FBVyxrQ0FBa0MsQ0FBQztRQUVuRixNQUFNLENBQUMsZUFBZSxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFdBQW1COzs7Ozs7Ozs7O1lBQzdFLE1BQU0sS0FBSyxHQUFHLFlBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRXhCLE1BQU07a0NBQVMsZUFBUTs7OzZCQUF2QixNQUFPLFNBQVEsV0FBUTs7O3FEQVUxQixpQ0FBYzt3QkFDZiw4S0FBVyxPQUFPLDZEQUVqQjs7O29CQVpNLFdBQVcsSUFEZCxtREFBTSxFQUNXLFdBQVcsRUFBQztvQkFDMUIsWUFBWSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLGdCQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxZQUFhLENBQUM7b0JBRS9GLElBQVcsV0FBVzt3QkFDcEIsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQzdDLENBQUM7b0JBRUQsMEVBQTBFO29CQUMxRSw0REFB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OztZQTFHVSx1REFBUTs7Ozs7QUFBUiw0QkFBUTtBQTZHckIsU0FBUyxtQkFBbUIsQ0FBQyxXQUFtQjtJQUM5QyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDeEQsTUFBTSxJQUFJLDhCQUF1QixDQUFDLElBQUEsc0JBQUcsRUFBQSwwQkFBMEIsRUFBRSxvRUFBb0UsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDN0osQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLFdBQW1CO0lBQzlDLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUM5QixNQUFNLElBQUksOEJBQXVCLENBQUMsSUFBQSxzQkFBRyxFQUFBLDBCQUEwQixFQUFFLDhEQUE4RCxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN2SixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmbkRhdGFiYXNlLCB0eXBlIERhdGFiYXNlUmVmZXJlbmNlLCB0eXBlIElEYXRhYmFzZVJlZiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1nbHVlJztcbmltcG9ydCB0eXBlIHsgSVJlc291cmNlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBBcm5Gb3JtYXQsIExhenksIE5hbWVzLCBSZW1vdmFsUG9saWN5LCBSZXNvdXJjZSwgU3RhY2ssIFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBsaXQsIG1lbW9pemVkR2V0dGVyIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvaGVscGVycy1pbnRlcm5hbCc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHR5cGUgeyBJQ2F0YWxvZyB9IGZyb20gJy4vY2F0YWxvZyc7XG5pbXBvcnQgeyBDYXRhbG9nIH0gZnJvbSAnLi9jYXRhbG9nJztcblxuZXhwb3J0IGludGVyZmFjZSBJRGF0YWJhc2UgZXh0ZW5kcyBJUmVzb3VyY2UsIElEYXRhYmFzZVJlZiB7XG5cbiAgLyoqXG4gICAqIFRoZSBjYXRhbG9nIHRoaXMgZGF0YWJhc2UgYmVsb25ncyB0by5cbiAgICovXG4gIHJlYWRvbmx5IGNhdGFsb2c6IElDYXRhbG9nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBkYXRhYmFzZS5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2VBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGRhdGFiYXNlLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBkYXRhYmFzZU5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBkYXRhYmFzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBnZW5lcmF0ZWQgYnkgQ0RLLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2VOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb24gb2YgdGhlIGRhdGFiYXNlIChmb3IgZXhhbXBsZSwgYW4gSERGUyBwYXRoKS5cbiAgICpcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkLiBUaGlzIGZpZWxkIGlzIG9wdGlvbmFsIGluIEFXUzo6R2x1ZTo6RGF0YWJhc2UgRGF0YWJhc2VJbnB1dFxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWdsdWUtZGF0YWJhc2UtZGF0YWJhc2VpbnB1dC5odG1sXG4gICAqL1xuICByZWFkb25seSBsb2NhdGlvblVyaT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBkZXNjcmlwdGlvbiBvZiB0aGUgZGF0YWJhc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZGF0YWJhc2UgZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY2F0YWxvZyBpbiB3aGljaCB0aGUgZGF0YWJhc2Ugd2lsbCBiZSBwbGFjZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFRoZSBkZWZhdWx0LCBhY2NvdW50LXdpZGUgY2F0YWxvZy5cbiAgICovXG4gIHJlYWRvbmx5IGNhdGFsb2c/OiBJQ2F0YWxvZztcblxuICAvKipcbiAgICogUG9saWN5IHRvIGFwcGx5IHdoZW4gdGhlIGRhdGFiYXNlIGlzIHJlbW92ZWQgZnJvbSB0aGUgc3RhY2suXG4gICAqXG4gICAqIEEgZGF0YWJhc2UgaXMgYSBjb250YWluZXIgZm9yIHRhYmxlcyBhbmQgdGhlaXIgbWV0YWRhdGEsIHNvIGl0IGlzIHJldGFpbmVkXG4gICAqIGJ5IGRlZmF1bHQgdG8gYXZvaWQgYWNjaWRlbnRhbCBkYXRhIGxvc3Mgd2hlbiBpdCBpcyByZW1vdmVkIGZyb20gYSBzdGFjay5cbiAgICpcbiAgICogQGRlZmF1bHQgUmVtb3ZhbFBvbGljeS5SRVRBSU5cbiAgICovXG4gIHJlYWRvbmx5IHJlbW92YWxQb2xpY3k/OiBSZW1vdmFsUG9saWN5O1xufVxuXG4vKipcbiAqIEEgR2x1ZSBkYXRhYmFzZS5cbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIERhdGFiYXNlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJRGF0YWJhc2Uge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1nbHVlLWFscGhhLkRhdGFiYXNlJztcblxuICBwdWJsaWMgc3RhdGljIGZyb21EYXRhYmFzZUFybihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBkYXRhYmFzZUFybjogc3RyaW5nKTogSURhdGFiYXNlIHtcbiAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKHNjb3BlKTtcblxuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSURhdGFiYXNlIHtcbiAgICAgIHB1YmxpYyBkYXRhYmFzZUFybiA9IGRhdGFiYXNlQXJuO1xuICAgICAgcHVibGljIGRhdGFiYXNlTmFtZSA9IHN0YWNrLnNwbGl0QXJuKGRhdGFiYXNlQXJuLCBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSkucmVzb3VyY2VOYW1lITtcblxuICAgICAgcHVibGljIGdldCBkYXRhYmFzZVJlZigpOiBEYXRhYmFzZVJlZmVyZW5jZSB7XG4gICAgICAgIHJldHVybiB7IGRhdGFiYXNlTmFtZTogdGhpcy5kYXRhYmFzZU5hbWUgfTtcbiAgICAgIH1cblxuICAgICAgLy8gTWF0ZXJpYWxpemUgdGhlIGFjY291bnQgY2F0YWxvZyBvbmx5IG9uIGFjY2Vzcywgc28gaW1wb3J0aW5nIGEgZGF0YWJhc2VcbiAgICAgIC8vIGRvZXMgbm90IHByZS1lbXB0IENhdGFsb2cuZW5jcnlwdEFjY291bnQoKSBmb3IgdGhlIHN0YWNrLlxuICAgICAgQG1lbW9pemVkR2V0dGVyXG4gICAgICBwdWJsaWMgZ2V0IGNhdGFsb2coKTogSUNhdGFsb2cge1xuICAgICAgICByZXR1cm4gQ2F0YWxvZy5mb3JBY2NvdW50KHRoaXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogTG9jYXRpb24gVVJJIG9mIHRoaXMgZGF0YWJhc2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbG9jYXRpb25Vcmk/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY2F0YWxvZz86IElDYXRhbG9nO1xuXG4gIHByaXZhdGUgcmVzb3VyY2U6IENmbkRhdGFiYXNlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhYmFzZVByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBoeXNpY2FsTmFtZTogcHJvcHMuZGF0YWJhc2VOYW1lID8/XG4gICAgICAgIExhenkuc3RyaW5nKHtcbiAgICAgICAgICBwcm9kdWNlOiAoKSA9PiBOYW1lcy51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywge30pLnRvTG93ZXJDYXNlKCksXG4gICAgICAgIH0pLFxuICAgIH0pO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgaWYgKHByb3BzLmRlc2NyaXB0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHZhbGlkYXRlRGVzY3JpcHRpb24ocHJvcHMuZGVzY3JpcHRpb24pO1xuICAgIH1cblxuICAgIGxldCBkYXRhYmFzZUlucHV0OiBDZm5EYXRhYmFzZS5EYXRhYmFzZUlucHV0UHJvcGVydHkgPSB7XG4gICAgICBuYW1lOiB0aGlzLnBoeXNpY2FsTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICB9O1xuXG4gICAgaWYgKHByb3BzLmxvY2F0aW9uVXJpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHZhbGlkYXRlTG9jYXRpb25VcmkocHJvcHMubG9jYXRpb25VcmkpO1xuICAgICAgdGhpcy5sb2NhdGlvblVyaSA9IHByb3BzLmxvY2F0aW9uVXJpO1xuICAgICAgZGF0YWJhc2VJbnB1dCA9IHtcbiAgICAgICAgbG9jYXRpb25Vcmk6IHRoaXMubG9jYXRpb25VcmksXG4gICAgICAgIC4uLmRhdGFiYXNlSW5wdXQsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHRoaXMuX2NhdGFsb2cgPSBwcm9wcy5jYXRhbG9nO1xuXG4gICAgLy8gV2hlbiB0aGUgZGF0YWJhc2UgdXNlcyB0aGUgaW1wbGljaXQgYWNjb3VudCBjYXRhbG9nLCBpdHMgaWQgaXMgdGhlXG4gICAgLy8gYWNjb3VudCBpZC4gUmVmZXJlbmNlIHRoYXQgZGlyZWN0bHkgcmF0aGVyIHRoYW4gbWF0ZXJpYWxpemluZyB0aGUgYWNjb3VudFxuICAgIC8vIGNhdGFsb2cgc2luZ2xldG9uLCBzbyBhIHBsYWluIGBuZXcgRGF0YWJhc2UoKWAgZG9lcyBub3QgcHJlLWVtcHRcbiAgICAvLyBgQ2F0YWxvZy5lbmNyeXB0QWNjb3VudCgpYCBmb3IgdGhlIHN0YWNrLlxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgQ2ZuRGF0YWJhc2UodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgY2F0YWxvZ0lkOiB0aGlzLl9jYXRhbG9nPy5jYXRhbG9nSWQgPz8gU3RhY2sub2YodGhpcykuYWNjb3VudCxcbiAgICAgIGRhdGFiYXNlSW5wdXQsXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlc291cmNlLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5yZW1vdmFsUG9saWN5LCB7XG4gICAgICBkZWZhdWx0OiBSZW1vdmFsUG9saWN5LlJFVEFJTixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY2F0YWxvZyB0aGlzIGRhdGFiYXNlIGJlbG9uZ3MgdG8uXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIHRoZSBpbXBsaWNpdCwgYWNjb3VudC13aWRlIGNhdGFsb2csIG1hdGVyaWFsaXplZCBvbiBmaXJzdFxuICAgKiBhY2Nlc3MuXG4gICAqL1xuICBAbWVtb2l6ZWRHZXR0ZXJcbiAgcHVibGljIGdldCBjYXRhbG9nKCk6IElDYXRhbG9nIHtcbiAgICByZXR1cm4gdGhpcy5fY2F0YWxvZyA/PyBDYXRhbG9nLmZvckFjY291bnQodGhpcyk7XG4gIH1cblxuICBAbWVtb2l6ZWRHZXR0ZXJcbiAgcHVibGljIGdldCBkYXRhYmFzZU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRSZXNvdXJjZU5hbWVBdHRyaWJ1dGUodGhpcy5yZXNvdXJjZS5yZWYpO1xuICB9XG5cbiAgQG1lbW9pemVkR2V0dGVyXG4gIHB1YmxpYyBnZXQgZGF0YWJhc2VBcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zdGFjay5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogJ2dsdWUnLFxuICAgICAgcmVzb3VyY2U6ICdkYXRhYmFzZScsXG4gICAgICByZXNvdXJjZU5hbWU6IHRoaXMuZGF0YWJhc2VOYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBkYXRhYmFzZVJlZigpOiBEYXRhYmFzZVJlZmVyZW5jZSB7XG4gICAgcmV0dXJuIHsgZGF0YWJhc2VOYW1lOiB0aGlzLmRhdGFiYXNlTmFtZSB9O1xuICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlTG9jYXRpb25VcmkobG9jYXRpb25Vcmk6IHN0cmluZyk6IHZvaWQge1xuICBpZiAobG9jYXRpb25VcmkubGVuZ3RoIDwgMSB8fCBsb2NhdGlvblVyaS5sZW5ndGggPiAxMDI0KSB7XG4gICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKGxpdGBJbnZhbGlkTG9jYXRpb25VcmlMZW5ndGhgLCBgbG9jYXRpb25VcmkgbGVuZ3RoIG11c3QgYmUgKGluY2x1c2l2ZWx5KSBiZXR3ZWVuIDEgYW5kIDEwMjQsIGdvdCAke2xvY2F0aW9uVXJpLmxlbmd0aH1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKGRlc2NyaXB0aW9uLmxlbmd0aCA+IDIwNDgpIHtcbiAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IobGl0YEludmFsaWREZXNjcmlwdGlvbkxlbmd0aGAsIGBkZXNjcmlwdGlvbiBsZW5ndGggbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMjA0OCwgZ290ICR7ZGVzY3JpcHRpb24ubGVuZ3RofWApO1xuICB9XG59XG4iXX0=