@aws-cdk/aws-glue-alpha 2.219.0-alpha.0 → 2.221.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.
- package/.jsii +3 -3
- package/.jsii.tabl.json.gz +0 -0
- package/lib/code.js +9 -8
- package/lib/connection.js +261 -214
- package/lib/data-format.js +243 -229
- package/lib/data-quality-ruleset.js +115 -66
- package/lib/database.js +133 -75
- package/lib/external-table.js +169 -110
- package/lib/jobs/job.js +6 -12
- package/lib/jobs/pyspark-etl-job.js +113 -70
- package/lib/jobs/pyspark-flex-etl-job.js +115 -72
- package/lib/jobs/pyspark-streaming-job.js +113 -70
- package/lib/jobs/python-shell-job.js +129 -84
- package/lib/jobs/ray-job.js +119 -74
- package/lib/jobs/scala-spark-etl-job.js +115 -72
- package/lib/jobs/scala-spark-flex-etl-job.js +115 -72
- package/lib/jobs/scala-spark-streaming-job.js +115 -72
- package/lib/jobs/spark-job.js +11 -4
- package/lib/s3-table.js +196 -125
- package/lib/schema.js +67 -69
- package/lib/security-configuration.js +144 -89
- package/lib/storage-parameter.js +4 -4
- package/lib/table-base.js +39 -15
- package/lib/table-deprecated.js +57 -16
- package/lib/triggers/trigger-options.js +3 -4
- package/lib/triggers/workflow.js +114 -75
- package/package.json +9 -8
package/lib/data-format.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a, _b, _c, _d, _e;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.DataFormat = exports.ClassificationString = exports.SerializationLibrary = exports.OutputFormat = exports.InputFormat = void 0;
|
|
5
4
|
const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
|
|
@@ -8,175 +7,288 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
8
7
|
* Absolute class name of the Hadoop `InputFormat` to use when reading table files.
|
|
9
8
|
*/
|
|
10
9
|
class InputFormat {
|
|
10
|
+
className;
|
|
11
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.InputFormat", version: "2.221.0-alpha.0" };
|
|
12
|
+
/**
|
|
13
|
+
* InputFormat for Avro files.
|
|
14
|
+
*
|
|
15
|
+
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/ql/io/avro/AvroContainerInputFormat.html
|
|
16
|
+
*/
|
|
17
|
+
static AVRO = new InputFormat('org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat');
|
|
18
|
+
/**
|
|
19
|
+
* InputFormat for Cloudtrail Logs.
|
|
20
|
+
*
|
|
21
|
+
* @see https://docs.aws.amazon.com/athena/latest/ug/cloudtrail.html
|
|
22
|
+
*/
|
|
23
|
+
static CLOUDTRAIL = new InputFormat('com.amazon.emr.cloudtrail.CloudTrailInputFormat');
|
|
24
|
+
/**
|
|
25
|
+
* InputFormat for Orc files.
|
|
26
|
+
*
|
|
27
|
+
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.html
|
|
28
|
+
*/
|
|
29
|
+
static ORC = new InputFormat('org.apache.hadoop.hive.ql.io.orc.OrcInputFormat');
|
|
30
|
+
/**
|
|
31
|
+
* InputFormat for Parquet files.
|
|
32
|
+
*
|
|
33
|
+
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/ql/io/parquet/MapredParquetInputFormat.html
|
|
34
|
+
*/
|
|
35
|
+
static PARQUET = new InputFormat('org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat');
|
|
36
|
+
/**
|
|
37
|
+
* An InputFormat for plain text files. Files are broken into lines. Either linefeed or
|
|
38
|
+
* carriage-return are used to signal end of line. Keys are the position in the file, and
|
|
39
|
+
* values are the line of text.
|
|
40
|
+
* JSON & CSV files are examples of this InputFormat
|
|
41
|
+
*
|
|
42
|
+
* @see https://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapred/TextInputFormat.html
|
|
43
|
+
*/
|
|
44
|
+
static TEXT = new InputFormat('org.apache.hadoop.mapred.TextInputFormat');
|
|
11
45
|
constructor(className) {
|
|
12
46
|
this.className = className;
|
|
13
47
|
}
|
|
14
48
|
}
|
|
15
49
|
exports.InputFormat = InputFormat;
|
|
16
|
-
_a = JSII_RTTI_SYMBOL_1;
|
|
17
|
-
InputFormat[_a] = { fqn: "@aws-cdk/aws-glue-alpha.InputFormat", version: "2.219.0-alpha.0" };
|
|
18
|
-
/**
|
|
19
|
-
* InputFormat for Avro files.
|
|
20
|
-
*
|
|
21
|
-
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/ql/io/avro/AvroContainerInputFormat.html
|
|
22
|
-
*/
|
|
23
|
-
InputFormat.AVRO = new InputFormat('org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat');
|
|
24
|
-
/**
|
|
25
|
-
* InputFormat for Cloudtrail Logs.
|
|
26
|
-
*
|
|
27
|
-
* @see https://docs.aws.amazon.com/athena/latest/ug/cloudtrail.html
|
|
28
|
-
*/
|
|
29
|
-
InputFormat.CLOUDTRAIL = new InputFormat('com.amazon.emr.cloudtrail.CloudTrailInputFormat');
|
|
30
|
-
/**
|
|
31
|
-
* InputFormat for Orc files.
|
|
32
|
-
*
|
|
33
|
-
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.html
|
|
34
|
-
*/
|
|
35
|
-
InputFormat.ORC = new InputFormat('org.apache.hadoop.hive.ql.io.orc.OrcInputFormat');
|
|
36
|
-
/**
|
|
37
|
-
* InputFormat for Parquet files.
|
|
38
|
-
*
|
|
39
|
-
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/ql/io/parquet/MapredParquetInputFormat.html
|
|
40
|
-
*/
|
|
41
|
-
InputFormat.PARQUET = new InputFormat('org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat');
|
|
42
|
-
/**
|
|
43
|
-
* An InputFormat for plain text files. Files are broken into lines. Either linefeed or
|
|
44
|
-
* carriage-return are used to signal end of line. Keys are the position in the file, and
|
|
45
|
-
* values are the line of text.
|
|
46
|
-
* JSON & CSV files are examples of this InputFormat
|
|
47
|
-
*
|
|
48
|
-
* @see https://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapred/TextInputFormat.html
|
|
49
|
-
*/
|
|
50
|
-
InputFormat.TEXT = new InputFormat('org.apache.hadoop.mapred.TextInputFormat');
|
|
51
50
|
/**
|
|
52
51
|
* Absolute class name of the Hadoop `OutputFormat` to use when writing table files.
|
|
53
52
|
*/
|
|
54
53
|
class OutputFormat {
|
|
54
|
+
className;
|
|
55
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.OutputFormat", version: "2.221.0-alpha.0" };
|
|
56
|
+
/**
|
|
57
|
+
* Writes text data with a null key (value only).
|
|
58
|
+
*
|
|
59
|
+
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/ql/io/HiveIgnoreKeyTextOutputFormat.html
|
|
60
|
+
*/
|
|
61
|
+
static HIVE_IGNORE_KEY_TEXT = new OutputFormat('org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat');
|
|
62
|
+
/**
|
|
63
|
+
* OutputFormat for Avro files.
|
|
64
|
+
*
|
|
65
|
+
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/ql/io/avro/AvroContainerOutputFormat.html
|
|
66
|
+
*/
|
|
67
|
+
static AVRO = new InputFormat('org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat');
|
|
68
|
+
/**
|
|
69
|
+
* OutputFormat for Orc files.
|
|
70
|
+
*
|
|
71
|
+
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/ql/io/orc/OrcOutputFormat.html
|
|
72
|
+
*/
|
|
73
|
+
static ORC = new InputFormat('org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat');
|
|
74
|
+
/**
|
|
75
|
+
* OutputFormat for Parquet files.
|
|
76
|
+
*
|
|
77
|
+
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/ql/io/parquet/MapredParquetOutputFormat.html
|
|
78
|
+
*/
|
|
79
|
+
static PARQUET = new OutputFormat('org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat');
|
|
55
80
|
constructor(className) {
|
|
56
81
|
this.className = className;
|
|
57
82
|
}
|
|
58
83
|
}
|
|
59
84
|
exports.OutputFormat = OutputFormat;
|
|
60
|
-
_b = JSII_RTTI_SYMBOL_1;
|
|
61
|
-
OutputFormat[_b] = { fqn: "@aws-cdk/aws-glue-alpha.OutputFormat", version: "2.219.0-alpha.0" };
|
|
62
|
-
/**
|
|
63
|
-
* Writes text data with a null key (value only).
|
|
64
|
-
*
|
|
65
|
-
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/ql/io/HiveIgnoreKeyTextOutputFormat.html
|
|
66
|
-
*/
|
|
67
|
-
OutputFormat.HIVE_IGNORE_KEY_TEXT = new OutputFormat('org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat');
|
|
68
|
-
/**
|
|
69
|
-
* OutputFormat for Avro files.
|
|
70
|
-
*
|
|
71
|
-
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/ql/io/avro/AvroContainerOutputFormat.html
|
|
72
|
-
*/
|
|
73
|
-
OutputFormat.AVRO = new InputFormat('org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat');
|
|
74
|
-
/**
|
|
75
|
-
* OutputFormat for Orc files.
|
|
76
|
-
*
|
|
77
|
-
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/ql/io/orc/OrcOutputFormat.html
|
|
78
|
-
*/
|
|
79
|
-
OutputFormat.ORC = new InputFormat('org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat');
|
|
80
|
-
/**
|
|
81
|
-
* OutputFormat for Parquet files.
|
|
82
|
-
*
|
|
83
|
-
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/ql/io/parquet/MapredParquetOutputFormat.html
|
|
84
|
-
*/
|
|
85
|
-
OutputFormat.PARQUET = new OutputFormat('org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat');
|
|
86
85
|
/**
|
|
87
86
|
* Serialization library to use when serializing/deserializing (SerDe) table records.
|
|
88
87
|
*
|
|
89
88
|
* @see https://cwiki.apache.org/confluence/display/Hive/SerDe
|
|
90
89
|
*/
|
|
91
90
|
class SerializationLibrary {
|
|
91
|
+
className;
|
|
92
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.SerializationLibrary", version: "2.221.0-alpha.0" };
|
|
93
|
+
/**
|
|
94
|
+
* @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
|
+
*/
|
|
96
|
+
static AVRO = new SerializationLibrary('org.apache.hadoop.hive.serde2.avro.AvroSerDe');
|
|
97
|
+
/**
|
|
98
|
+
* @see https://docs.aws.amazon.com/athena/latest/ug/cloudtrail.html
|
|
99
|
+
*/
|
|
100
|
+
static CLOUDTRAIL = new SerializationLibrary('com.amazon.emr.hive.serde.CloudTrailSerde');
|
|
101
|
+
/**
|
|
102
|
+
* @see https://docs.aws.amazon.com/athena/latest/ug/grok.html
|
|
103
|
+
*/
|
|
104
|
+
static GROK = new SerializationLibrary('com.amazonaws.glue.serde.GrokSerDe');
|
|
105
|
+
/**
|
|
106
|
+
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hive/hcatalog/data/JsonSerDe.html
|
|
107
|
+
*/
|
|
108
|
+
static HIVE_JSON = new SerializationLibrary('org.apache.hive.hcatalog.data.JsonSerDe');
|
|
109
|
+
/**
|
|
110
|
+
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/serde2/lazy/LazySimpleSerDe.html
|
|
111
|
+
*/
|
|
112
|
+
static LAZY_SIMPLE = new SerializationLibrary('org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe');
|
|
113
|
+
/**
|
|
114
|
+
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/serde2/OpenCSVSerde.html
|
|
115
|
+
*/
|
|
116
|
+
static OPEN_CSV = new SerializationLibrary('org.apache.hadoop.hive.serde2.OpenCSVSerde');
|
|
117
|
+
/**
|
|
118
|
+
* @see https://github.com/rcongiu/Hive-JSON-Serde
|
|
119
|
+
*/
|
|
120
|
+
static OPENX_JSON = new SerializationLibrary('org.openx.data.jsonserde.JsonSerDe');
|
|
121
|
+
/**
|
|
122
|
+
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/ql/io/orc/OrcSerde.html
|
|
123
|
+
*/
|
|
124
|
+
static ORC = new SerializationLibrary('org.apache.hadoop.hive.ql.io.orc.OrcSerde');
|
|
125
|
+
/**
|
|
126
|
+
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/ql/io/parquet/serde/ParquetHiveSerDe.html
|
|
127
|
+
*/
|
|
128
|
+
static PARQUET = new SerializationLibrary('org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe');
|
|
129
|
+
/**
|
|
130
|
+
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/serde2/RegexSerDe.html
|
|
131
|
+
*/
|
|
132
|
+
static REGEXP = new SerializationLibrary('org.apache.hadoop.hive.serde2.RegexSerDe');
|
|
92
133
|
constructor(className) {
|
|
93
134
|
this.className = className;
|
|
94
135
|
}
|
|
95
136
|
}
|
|
96
137
|
exports.SerializationLibrary = SerializationLibrary;
|
|
97
|
-
_c = JSII_RTTI_SYMBOL_1;
|
|
98
|
-
SerializationLibrary[_c] = { fqn: "@aws-cdk/aws-glue-alpha.SerializationLibrary", version: "2.219.0-alpha.0" };
|
|
99
|
-
/**
|
|
100
|
-
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/serde2/avro/AvroSerDe.html
|
|
101
|
-
*/
|
|
102
|
-
SerializationLibrary.AVRO = new SerializationLibrary('org.apache.hadoop.hive.serde2.avro.AvroSerDe');
|
|
103
|
-
/**
|
|
104
|
-
* @see https://docs.aws.amazon.com/athena/latest/ug/cloudtrail.html
|
|
105
|
-
*/
|
|
106
|
-
SerializationLibrary.CLOUDTRAIL = new SerializationLibrary('com.amazon.emr.hive.serde.CloudTrailSerde');
|
|
107
|
-
/**
|
|
108
|
-
* @see https://docs.aws.amazon.com/athena/latest/ug/grok.html
|
|
109
|
-
*/
|
|
110
|
-
SerializationLibrary.GROK = new SerializationLibrary('com.amazonaws.glue.serde.GrokSerDe');
|
|
111
|
-
/**
|
|
112
|
-
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hive/hcatalog/data/JsonSerDe.html
|
|
113
|
-
*/
|
|
114
|
-
SerializationLibrary.HIVE_JSON = new SerializationLibrary('org.apache.hive.hcatalog.data.JsonSerDe');
|
|
115
|
-
/**
|
|
116
|
-
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/serde2/lazy/LazySimpleSerDe.html
|
|
117
|
-
*/
|
|
118
|
-
SerializationLibrary.LAZY_SIMPLE = new SerializationLibrary('org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe');
|
|
119
|
-
/**
|
|
120
|
-
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/serde2/OpenCSVSerde.html
|
|
121
|
-
*/
|
|
122
|
-
SerializationLibrary.OPEN_CSV = new SerializationLibrary('org.apache.hadoop.hive.serde2.OpenCSVSerde');
|
|
123
|
-
/**
|
|
124
|
-
* @see https://github.com/rcongiu/Hive-JSON-Serde
|
|
125
|
-
*/
|
|
126
|
-
SerializationLibrary.OPENX_JSON = new SerializationLibrary('org.openx.data.jsonserde.JsonSerDe');
|
|
127
|
-
/**
|
|
128
|
-
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/ql/io/orc/OrcSerde.html
|
|
129
|
-
*/
|
|
130
|
-
SerializationLibrary.ORC = new SerializationLibrary('org.apache.hadoop.hive.ql.io.orc.OrcSerde');
|
|
131
|
-
/**
|
|
132
|
-
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/ql/io/parquet/serde/ParquetHiveSerDe.html
|
|
133
|
-
*/
|
|
134
|
-
SerializationLibrary.PARQUET = new SerializationLibrary('org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe');
|
|
135
|
-
/**
|
|
136
|
-
* @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/serde2/RegexSerDe.html
|
|
137
|
-
*/
|
|
138
|
-
SerializationLibrary.REGEXP = new SerializationLibrary('org.apache.hadoop.hive.serde2.RegexSerDe');
|
|
139
138
|
/**
|
|
140
139
|
* Classification string given to tables with this data format.
|
|
141
140
|
*
|
|
142
141
|
* @see https://docs.aws.amazon.com/glue/latest/dg/add-classifier.html#classifier-built-in
|
|
143
142
|
*/
|
|
144
143
|
class ClassificationString {
|
|
144
|
+
value;
|
|
145
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.ClassificationString", version: "2.221.0-alpha.0" };
|
|
146
|
+
/**
|
|
147
|
+
* @see https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html#aws-glue-programming-etl-format-avro
|
|
148
|
+
*/
|
|
149
|
+
static AVRO = new ClassificationString('avro');
|
|
150
|
+
/**
|
|
151
|
+
* @see https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html#aws-glue-programming-etl-format-csv
|
|
152
|
+
*/
|
|
153
|
+
static CSV = new ClassificationString('csv');
|
|
154
|
+
/**
|
|
155
|
+
* @see https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html#aws-glue-programming-etl-format-json
|
|
156
|
+
*/
|
|
157
|
+
static JSON = new ClassificationString('json');
|
|
158
|
+
/**
|
|
159
|
+
* @see https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html#aws-glue-programming-etl-format-xml
|
|
160
|
+
*/
|
|
161
|
+
static XML = new ClassificationString('xml');
|
|
162
|
+
/**
|
|
163
|
+
* @see https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html#aws-glue-programming-etl-format-parquet
|
|
164
|
+
*/
|
|
165
|
+
static PARQUET = new ClassificationString('parquet');
|
|
166
|
+
/**
|
|
167
|
+
* @see https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html#aws-glue-programming-etl-format-orc
|
|
168
|
+
*/
|
|
169
|
+
static ORC = new ClassificationString('orc');
|
|
145
170
|
constructor(value) {
|
|
146
171
|
this.value = value;
|
|
147
172
|
}
|
|
148
173
|
}
|
|
149
174
|
exports.ClassificationString = ClassificationString;
|
|
150
|
-
_d = JSII_RTTI_SYMBOL_1;
|
|
151
|
-
ClassificationString[_d] = { fqn: "@aws-cdk/aws-glue-alpha.ClassificationString", version: "2.219.0-alpha.0" };
|
|
152
|
-
/**
|
|
153
|
-
* @see https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html#aws-glue-programming-etl-format-avro
|
|
154
|
-
*/
|
|
155
|
-
ClassificationString.AVRO = new ClassificationString('avro');
|
|
156
|
-
/**
|
|
157
|
-
* @see https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html#aws-glue-programming-etl-format-csv
|
|
158
|
-
*/
|
|
159
|
-
ClassificationString.CSV = new ClassificationString('csv');
|
|
160
|
-
/**
|
|
161
|
-
* @see https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html#aws-glue-programming-etl-format-json
|
|
162
|
-
*/
|
|
163
|
-
ClassificationString.JSON = new ClassificationString('json');
|
|
164
|
-
/**
|
|
165
|
-
* @see https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html#aws-glue-programming-etl-format-xml
|
|
166
|
-
*/
|
|
167
|
-
ClassificationString.XML = new ClassificationString('xml');
|
|
168
|
-
/**
|
|
169
|
-
* @see https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html#aws-glue-programming-etl-format-parquet
|
|
170
|
-
*/
|
|
171
|
-
ClassificationString.PARQUET = new ClassificationString('parquet');
|
|
172
|
-
/**
|
|
173
|
-
* @see https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html#aws-glue-programming-etl-format-orc
|
|
174
|
-
*/
|
|
175
|
-
ClassificationString.ORC = new ClassificationString('orc');
|
|
176
175
|
/**
|
|
177
176
|
* Defines the input/output formats and ser/de for a single DataFormat.
|
|
178
177
|
*/
|
|
179
178
|
class DataFormat {
|
|
179
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.DataFormat", version: "2.221.0-alpha.0" };
|
|
180
|
+
/**
|
|
181
|
+
* DataFormat for Apache Web Server Logs. Also works for CloudFront logs
|
|
182
|
+
*
|
|
183
|
+
* @see https://docs.aws.amazon.com/athena/latest/ug/apache.html
|
|
184
|
+
*/
|
|
185
|
+
static APACHE_LOGS = new DataFormat({
|
|
186
|
+
inputFormat: InputFormat.TEXT,
|
|
187
|
+
outputFormat: OutputFormat.HIVE_IGNORE_KEY_TEXT,
|
|
188
|
+
serializationLibrary: SerializationLibrary.REGEXP,
|
|
189
|
+
});
|
|
190
|
+
/**
|
|
191
|
+
* DataFormat for Apache Avro
|
|
192
|
+
*
|
|
193
|
+
* @see https://docs.aws.amazon.com/athena/latest/ug/avro.html
|
|
194
|
+
*/
|
|
195
|
+
static AVRO = new DataFormat({
|
|
196
|
+
inputFormat: InputFormat.AVRO,
|
|
197
|
+
outputFormat: OutputFormat.AVRO,
|
|
198
|
+
serializationLibrary: SerializationLibrary.AVRO,
|
|
199
|
+
classificationString: ClassificationString.AVRO,
|
|
200
|
+
});
|
|
201
|
+
/**
|
|
202
|
+
* DataFormat for CloudTrail logs stored on S3
|
|
203
|
+
*
|
|
204
|
+
* @see https://docs.aws.amazon.com/athena/latest/ug/cloudtrail.html
|
|
205
|
+
*/
|
|
206
|
+
static CLOUDTRAIL_LOGS = new DataFormat({
|
|
207
|
+
inputFormat: InputFormat.CLOUDTRAIL,
|
|
208
|
+
outputFormat: OutputFormat.HIVE_IGNORE_KEY_TEXT,
|
|
209
|
+
serializationLibrary: SerializationLibrary.CLOUDTRAIL,
|
|
210
|
+
});
|
|
211
|
+
/**
|
|
212
|
+
* DataFormat for CSV Files
|
|
213
|
+
*
|
|
214
|
+
* @see https://docs.aws.amazon.com/athena/latest/ug/csv.html
|
|
215
|
+
*/
|
|
216
|
+
static CSV = new DataFormat({
|
|
217
|
+
inputFormat: InputFormat.TEXT,
|
|
218
|
+
outputFormat: OutputFormat.HIVE_IGNORE_KEY_TEXT,
|
|
219
|
+
serializationLibrary: SerializationLibrary.OPEN_CSV,
|
|
220
|
+
classificationString: ClassificationString.CSV,
|
|
221
|
+
});
|
|
222
|
+
/**
|
|
223
|
+
* Stored as plain text files in JSON format.
|
|
224
|
+
* Uses OpenX Json SerDe for serialization and deseralization.
|
|
225
|
+
*
|
|
226
|
+
* @see https://docs.aws.amazon.com/athena/latest/ug/json.html
|
|
227
|
+
*/
|
|
228
|
+
static JSON = new DataFormat({
|
|
229
|
+
inputFormat: InputFormat.TEXT,
|
|
230
|
+
outputFormat: OutputFormat.HIVE_IGNORE_KEY_TEXT,
|
|
231
|
+
serializationLibrary: SerializationLibrary.OPENX_JSON,
|
|
232
|
+
classificationString: ClassificationString.JSON,
|
|
233
|
+
});
|
|
234
|
+
/**
|
|
235
|
+
* DataFormat for Logstash Logs, using the GROK SerDe
|
|
236
|
+
*
|
|
237
|
+
* @see https://docs.aws.amazon.com/athena/latest/ug/grok.html
|
|
238
|
+
*/
|
|
239
|
+
static LOGSTASH = new DataFormat({
|
|
240
|
+
inputFormat: InputFormat.TEXT,
|
|
241
|
+
outputFormat: OutputFormat.HIVE_IGNORE_KEY_TEXT,
|
|
242
|
+
serializationLibrary: SerializationLibrary.GROK,
|
|
243
|
+
});
|
|
244
|
+
/**
|
|
245
|
+
* DataFormat for Apache ORC (Optimized Row Columnar)
|
|
246
|
+
*
|
|
247
|
+
* @see https://docs.aws.amazon.com/athena/latest/ug/orc.html
|
|
248
|
+
*/
|
|
249
|
+
static ORC = new DataFormat({
|
|
250
|
+
inputFormat: InputFormat.ORC,
|
|
251
|
+
outputFormat: OutputFormat.ORC,
|
|
252
|
+
serializationLibrary: SerializationLibrary.ORC,
|
|
253
|
+
classificationString: ClassificationString.ORC,
|
|
254
|
+
});
|
|
255
|
+
/**
|
|
256
|
+
* DataFormat for Apache Parquet
|
|
257
|
+
*
|
|
258
|
+
* @see https://docs.aws.amazon.com/athena/latest/ug/parquet.html
|
|
259
|
+
*/
|
|
260
|
+
static PARQUET = new DataFormat({
|
|
261
|
+
inputFormat: InputFormat.PARQUET,
|
|
262
|
+
outputFormat: OutputFormat.PARQUET,
|
|
263
|
+
serializationLibrary: SerializationLibrary.PARQUET,
|
|
264
|
+
classificationString: ClassificationString.PARQUET,
|
|
265
|
+
});
|
|
266
|
+
/**
|
|
267
|
+
* DataFormat for TSV (Tab-Separated Values)
|
|
268
|
+
*
|
|
269
|
+
* @see https://docs.aws.amazon.com/athena/latest/ug/lazy-simple-serde.html
|
|
270
|
+
*/
|
|
271
|
+
static TSV = new DataFormat({
|
|
272
|
+
inputFormat: InputFormat.TEXT,
|
|
273
|
+
outputFormat: OutputFormat.HIVE_IGNORE_KEY_TEXT,
|
|
274
|
+
serializationLibrary: SerializationLibrary.LAZY_SIMPLE,
|
|
275
|
+
});
|
|
276
|
+
/**
|
|
277
|
+
* `InputFormat` for this data format.
|
|
278
|
+
*/
|
|
279
|
+
inputFormat;
|
|
280
|
+
/**
|
|
281
|
+
* `OutputFormat` for this data format.
|
|
282
|
+
*/
|
|
283
|
+
outputFormat;
|
|
284
|
+
/**
|
|
285
|
+
* Serialization library for this data format.
|
|
286
|
+
*/
|
|
287
|
+
serializationLibrary;
|
|
288
|
+
/**
|
|
289
|
+
* Classification string given to tables with this data format.
|
|
290
|
+
*/
|
|
291
|
+
classificationString;
|
|
180
292
|
constructor(props) {
|
|
181
293
|
try {
|
|
182
294
|
jsiiDeprecationWarnings._aws_cdk_aws_glue_alpha_DataFormatProps(props);
|
|
@@ -194,102 +306,4 @@ class DataFormat {
|
|
|
194
306
|
}
|
|
195
307
|
}
|
|
196
308
|
exports.DataFormat = DataFormat;
|
|
197
|
-
_e = JSII_RTTI_SYMBOL_1;
|
|
198
|
-
DataFormat[_e] = { fqn: "@aws-cdk/aws-glue-alpha.DataFormat", version: "2.219.0-alpha.0" };
|
|
199
|
-
/**
|
|
200
|
-
* DataFormat for Apache Web Server Logs. Also works for CloudFront logs
|
|
201
|
-
*
|
|
202
|
-
* @see https://docs.aws.amazon.com/athena/latest/ug/apache.html
|
|
203
|
-
*/
|
|
204
|
-
DataFormat.APACHE_LOGS = new DataFormat({
|
|
205
|
-
inputFormat: InputFormat.TEXT,
|
|
206
|
-
outputFormat: OutputFormat.HIVE_IGNORE_KEY_TEXT,
|
|
207
|
-
serializationLibrary: SerializationLibrary.REGEXP,
|
|
208
|
-
});
|
|
209
|
-
/**
|
|
210
|
-
* DataFormat for Apache Avro
|
|
211
|
-
*
|
|
212
|
-
* @see https://docs.aws.amazon.com/athena/latest/ug/avro.html
|
|
213
|
-
*/
|
|
214
|
-
DataFormat.AVRO = new DataFormat({
|
|
215
|
-
inputFormat: InputFormat.AVRO,
|
|
216
|
-
outputFormat: OutputFormat.AVRO,
|
|
217
|
-
serializationLibrary: SerializationLibrary.AVRO,
|
|
218
|
-
classificationString: ClassificationString.AVRO,
|
|
219
|
-
});
|
|
220
|
-
/**
|
|
221
|
-
* DataFormat for CloudTrail logs stored on S3
|
|
222
|
-
*
|
|
223
|
-
* @see https://docs.aws.amazon.com/athena/latest/ug/cloudtrail.html
|
|
224
|
-
*/
|
|
225
|
-
DataFormat.CLOUDTRAIL_LOGS = new DataFormat({
|
|
226
|
-
inputFormat: InputFormat.CLOUDTRAIL,
|
|
227
|
-
outputFormat: OutputFormat.HIVE_IGNORE_KEY_TEXT,
|
|
228
|
-
serializationLibrary: SerializationLibrary.CLOUDTRAIL,
|
|
229
|
-
});
|
|
230
|
-
/**
|
|
231
|
-
* DataFormat for CSV Files
|
|
232
|
-
*
|
|
233
|
-
* @see https://docs.aws.amazon.com/athena/latest/ug/csv.html
|
|
234
|
-
*/
|
|
235
|
-
DataFormat.CSV = new DataFormat({
|
|
236
|
-
inputFormat: InputFormat.TEXT,
|
|
237
|
-
outputFormat: OutputFormat.HIVE_IGNORE_KEY_TEXT,
|
|
238
|
-
serializationLibrary: SerializationLibrary.OPEN_CSV,
|
|
239
|
-
classificationString: ClassificationString.CSV,
|
|
240
|
-
});
|
|
241
|
-
/**
|
|
242
|
-
* Stored as plain text files in JSON format.
|
|
243
|
-
* Uses OpenX Json SerDe for serialization and deseralization.
|
|
244
|
-
*
|
|
245
|
-
* @see https://docs.aws.amazon.com/athena/latest/ug/json.html
|
|
246
|
-
*/
|
|
247
|
-
DataFormat.JSON = new DataFormat({
|
|
248
|
-
inputFormat: InputFormat.TEXT,
|
|
249
|
-
outputFormat: OutputFormat.HIVE_IGNORE_KEY_TEXT,
|
|
250
|
-
serializationLibrary: SerializationLibrary.OPENX_JSON,
|
|
251
|
-
classificationString: ClassificationString.JSON,
|
|
252
|
-
});
|
|
253
|
-
/**
|
|
254
|
-
* DataFormat for Logstash Logs, using the GROK SerDe
|
|
255
|
-
*
|
|
256
|
-
* @see https://docs.aws.amazon.com/athena/latest/ug/grok.html
|
|
257
|
-
*/
|
|
258
|
-
DataFormat.LOGSTASH = new DataFormat({
|
|
259
|
-
inputFormat: InputFormat.TEXT,
|
|
260
|
-
outputFormat: OutputFormat.HIVE_IGNORE_KEY_TEXT,
|
|
261
|
-
serializationLibrary: SerializationLibrary.GROK,
|
|
262
|
-
});
|
|
263
|
-
/**
|
|
264
|
-
* DataFormat for Apache ORC (Optimized Row Columnar)
|
|
265
|
-
*
|
|
266
|
-
* @see https://docs.aws.amazon.com/athena/latest/ug/orc.html
|
|
267
|
-
*/
|
|
268
|
-
DataFormat.ORC = new DataFormat({
|
|
269
|
-
inputFormat: InputFormat.ORC,
|
|
270
|
-
outputFormat: OutputFormat.ORC,
|
|
271
|
-
serializationLibrary: SerializationLibrary.ORC,
|
|
272
|
-
classificationString: ClassificationString.ORC,
|
|
273
|
-
});
|
|
274
|
-
/**
|
|
275
|
-
* DataFormat for Apache Parquet
|
|
276
|
-
*
|
|
277
|
-
* @see https://docs.aws.amazon.com/athena/latest/ug/parquet.html
|
|
278
|
-
*/
|
|
279
|
-
DataFormat.PARQUET = new DataFormat({
|
|
280
|
-
inputFormat: InputFormat.PARQUET,
|
|
281
|
-
outputFormat: OutputFormat.PARQUET,
|
|
282
|
-
serializationLibrary: SerializationLibrary.PARQUET,
|
|
283
|
-
classificationString: ClassificationString.PARQUET,
|
|
284
|
-
});
|
|
285
|
-
/**
|
|
286
|
-
* DataFormat for TSV (Tab-Separated Values)
|
|
287
|
-
*
|
|
288
|
-
* @see https://docs.aws.amazon.com/athena/latest/ug/lazy-simple-serde.html
|
|
289
|
-
*/
|
|
290
|
-
DataFormat.TSV = new DataFormat({
|
|
291
|
-
inputFormat: InputFormat.TEXT,
|
|
292
|
-
outputFormat: OutputFormat.HIVE_IGNORE_KEY_TEXT,
|
|
293
|
-
serializationLibrary: SerializationLibrary.LAZY_SIMPLE,
|
|
294
|
-
});
|
|
295
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1mb3JtYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkYXRhLWZvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7R0FFRztBQUNILE1BQWEsV0FBVztJQXVDdEIsWUFBNEIsU0FBaUI7UUFBakIsY0FBUyxHQUFULFNBQVMsQ0FBUTtLQUFJOztBQXZDbkQsa0NBd0NDOzs7QUF2Q0M7Ozs7R0FJRztBQUNvQixnQkFBSSxHQUFHLElBQUksV0FBVyxDQUFDLDREQUE0RCxDQUFDLENBQUM7QUFFNUc7Ozs7R0FJRztBQUNvQixzQkFBVSxHQUFHLElBQUksV0FBVyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7QUFFdkc7Ozs7R0FJRztBQUNvQixlQUFHLEdBQUcsSUFBSSxXQUFXLENBQUMsaURBQWlELENBQUMsQ0FBQztBQUVoRzs7OztHQUlHO0FBQ29CLG1CQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsK0RBQStELENBQUMsQ0FBQztBQUVsSDs7Ozs7OztHQU9HO0FBQ29CLGdCQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsMENBQTBDLENBQUMsQ0FBQztBQUs1Rjs7R0FFRztBQUNILE1BQWEsWUFBWTtJQTZCdkIsWUFBNEIsU0FBaUI7UUFBakIsY0FBUyxHQUFULFNBQVMsQ0FBUTtLQUFJOztBQTdCbkQsb0NBOEJDOzs7QUE3QkM7Ozs7R0FJRztBQUNvQixpQ0FBb0IsR0FBRyxJQUFJLFlBQVksQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO0FBRTdIOzs7O0dBSUc7QUFDb0IsaUJBQUksR0FBRyxJQUFJLFdBQVcsQ0FBQyw2REFBNkQsQ0FBQyxDQUFDO0FBRTdHOzs7O0dBSUc7QUFDb0IsZ0JBQUcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0FBRWpHOzs7O0dBSUc7QUFDb0Isb0JBQU8sR0FBRyxJQUFJLFlBQVksQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO0FBS3RIOzs7O0dBSUc7QUFDSCxNQUFhLG9CQUFvQjtJ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Ozs7R0FJRztBQUNvQixrQkFBTyxHQUFHLElBQUksVUFBVSxDQUFDO0lBQzlDLFdBQVcsRUFBRSxXQUFXLENBQUMsT0FBTztJQUNoQyxZQUFZLEVBQUUsWUFBWSxDQUFDLE9BQU87SUFDbEMsb0JBQW9CLEVBQUUsb0JBQW9CLENBQUMsT0FBTztJQUNsRCxvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPO0NBQ25ELENBQUMsQ0FBQztBQUVIOzs7O0dBSUc7QUFDb0IsY0FBRyxHQUFHLElBQUksVUFBVSxDQUFDO0lBQzFDLFdBQVcsRUFBRSxXQUFXLENBQUMsSUFBSTtJQUM3QixZQUFZLEVBQUUsWUFBWSxDQUFDLG9CQUFvQjtJQUMvQyxvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQyxXQUFXO0NBQ3ZELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWJzb2x1dGUgY2xhc3MgbmFtZSBvZiB0aGUgSGFkb29wIGBJbnB1dEZvcm1hdGAgdG8gdXNlIHdoZW4gcmVhZGluZyB0YWJsZSBmaWxlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIElucHV0Rm9ybWF0IHtcbiAgLyoqXG4gICAqIElucHV0Rm9ybWF0IGZvciBBdnJvIGZpbGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL2F2cm8vQXZyb0NvbnRhaW5lcklucHV0Rm9ybWF0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVZSTyA9IG5ldyBJbnB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5hdnJvLkF2cm9Db250YWluZXJJbnB1dEZvcm1hdCcpO1xuXG4gIC8qKlxuICAgKiBJbnB1dEZvcm1hdCBmb3IgQ2xvdWR0cmFpbCBMb2dzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2Nsb3VkdHJhaWwuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDTE9VRFRSQUlMID0gbmV3IElucHV0Rm9ybWF0KCdjb20uYW1hem9uLmVtci5jbG91ZHRyYWlsLkNsb3VkVHJhaWxJbnB1dEZvcm1hdCcpO1xuXG4gIC8qKlxuICAgKiBJbnB1dEZvcm1hdCBmb3IgT3JjIGZpbGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL29yYy9PcmNJbnB1dEZvcm1hdC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9SQyA9IG5ldyBJbnB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5vcmMuT3JjSW5wdXRGb3JtYXQnKTtcblxuICAvKipcbiAgICogSW5wdXRGb3JtYXQgZm9yIFBhcnF1ZXQgZmlsZXMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvcWwvaW8vcGFycXVldC9NYXByZWRQYXJxdWV0SW5wdXRGb3JtYXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJRVUVUID0gbmV3IElucHV0Rm9ybWF0KCdvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnFsLmlvLnBhcnF1ZXQuTWFwcmVkUGFycXVldElucHV0Rm9ybWF0Jyk7XG5cbiAgLyoqXG4gICAqIEFuIElucHV0Rm9ybWF0IGZvciBwbGFpbiB0ZXh0IGZpbGVzLiBGaWxlcyBhcmUgYnJva2VuIGludG8gbGluZXMuIEVpdGhlciBsaW5lZmVlZCBvclxuICAgKiBjYXJyaWFnZS1yZXR1cm4gYXJlIHVzZWQgdG8gc2lnbmFsIGVuZCBvZiBsaW5lLiBLZXlzIGFyZSB0aGUgcG9zaXRpb24gaW4gdGhlIGZpbGUsIGFuZFxuICAgKiB2YWx1ZXMgYXJlIHRoZSBsaW5lIG9mIHRleHQuXG4gICAqIEpTT04gJiBDU1YgZmlsZXMgYXJlIGV4YW1wbGVzIG9mIHRoaXMgSW5wdXRGb3JtYXRcbiAgICpcbiAgICogQHNlZSBodHRwczovL2hhZG9vcC5hcGFjaGUub3JnL2RvY3Mvc3RhYmxlL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9tYXByZWQvVGV4dElucHV0Rm9ybWF0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVEVYVCA9IG5ldyBJbnB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AubWFwcmVkLlRleHRJbnB1dEZvcm1hdCcpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjbGFzc05hbWU6IHN0cmluZykge31cbn1cblxuLyoqXG4gKiBBYnNvbHV0ZSBjbGFzcyBuYW1lIG9mIHRoZSBIYWRvb3AgYE91dHB1dEZvcm1hdGAgdG8gdXNlIHdoZW4gd3JpdGluZyB0YWJsZSBmaWxlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIE91dHB1dEZvcm1hdCB7XG4gIC8qKlxuICAgKiBXcml0ZXMgdGV4dCBkYXRhIHdpdGggYSBudWxsIGtleSAodmFsdWUgb25seSkuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvcWwvaW8vSGl2ZUlnbm9yZUtleVRleHRPdXRwdXRGb3JtYXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBISVZFX0lHTk9SRV9LRVlfVEVYVCA9IG5ldyBPdXRwdXRGb3JtYXQoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUucWwuaW8uSGl2ZUlnbm9yZUtleVRleHRPdXRwdXRGb3JtYXQnKTtcblxuICAvKipcbiAgICogT3V0cHV0Rm9ybWF0IGZvciBBdnJvIGZpbGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL2F2cm8vQXZyb0NvbnRhaW5lck91dHB1dEZvcm1hdC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWUk8gPSBuZXcgSW5wdXRGb3JtYXQoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUucWwuaW8uYXZyby5BdnJvQ29udGFpbmVyT3V0cHV0Rm9ybWF0Jyk7XG5cbiAgLyoqXG4gICAqIE91dHB1dEZvcm1hdCBmb3IgT3JjIGZpbGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL29yYy9PcmNPdXRwdXRGb3JtYXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBPUkMgPSBuZXcgSW5wdXRGb3JtYXQoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUucWwuaW8ub3JjLk9yY091dHB1dEZvcm1hdCcpO1xuXG4gIC8qKlxuICAgKiBPdXRwdXRGb3JtYXQgZm9yIFBhcnF1ZXQgZmlsZXMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvcWwvaW8vcGFycXVldC9NYXByZWRQYXJxdWV0T3V0cHV0Rm9ybWF0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFSUVVFVCA9IG5ldyBPdXRwdXRGb3JtYXQoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUucWwuaW8ucGFycXVldC5NYXByZWRQYXJxdWV0T3V0cHV0Rm9ybWF0Jyk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGNsYXNzTmFtZTogc3RyaW5nKSB7fVxufVxuXG4vKipcbiAqIFNlcmlhbGl6YXRpb24gbGlicmFyeSB0byB1c2Ugd2hlbiBzZXJpYWxpemluZy9kZXNlcmlhbGl6aW5nIChTZXJEZSkgdGFibGUgcmVjb3Jkcy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvSGl2ZS9TZXJEZVxuICovXG5leHBvcnQgY2xhc3MgU2VyaWFsaXphdGlvbkxpYnJhcnkge1xuICAvKipcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oYWRvb3AvaGl2ZS9zZXJkZTIvYXZyby9BdnJvU2VyRGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVlJPID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnNlcmRlMi5hdnJvLkF2cm9TZXJEZScpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2Nsb3VkdHJhaWwuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDTE9VRFRSQUlMID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdjb20uYW1hem9uLmVtci5oaXZlLnNlcmRlLkNsb3VkVHJhaWxTZXJkZScpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2dyb2suaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBHUk9LID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdjb20uYW1hem9uYXdzLmdsdWUuc2VyZGUuR3Jva1NlckRlJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGl2ZS9oY2F0YWxvZy9kYXRhL0pzb25TZXJEZS5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEhJVkVfSlNPTiA9IG5ldyBTZXJpYWxpemF0aW9uTGlicmFyeSgnb3JnLmFwYWNoZS5oaXZlLmhjYXRhbG9nLmRhdGEuSnNvblNlckRlJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvc2VyZGUyL2xhenkvTGF6eVNpbXBsZVNlckRlLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTEFaWV9TSU1QTEUgPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUuc2VyZGUyLmxhenkuTGF6eVNpbXBsZVNlckRlJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvc2VyZGUyL09wZW5DU1ZTZXJkZS5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9QRU5fQ1NWID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnNlcmRlMi5PcGVuQ1NWU2VyZGUnKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vcmNvbmdpdS9IaXZlLUpTT04tU2VyZGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1BFTlhfSlNPTiA9IG5ldyBTZXJpYWxpemF0aW9uTGlicmFyeSgnb3JnLm9wZW54LmRhdGEuanNvbnNlcmRlLkpzb25TZXJEZScpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL29yYy9PcmNTZXJkZS5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9SQyA9IG5ldyBTZXJpYWxpemF0aW9uTGlicmFyeSgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5vcmMuT3JjU2VyZGUnKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oYWRvb3AvaGl2ZS9xbC9pby9wYXJxdWV0L3NlcmRlL1BhcnF1ZXRIaXZlU2VyRGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJRVUVUID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnFsLmlvLnBhcnF1ZXQuc2VyZGUuUGFycXVldEhpdmVTZXJEZScpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3NlcmRlMi9SZWdleFNlckRlLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUkVHRVhQID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnNlcmRlMi5SZWdleFNlckRlJyk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGNsYXNzTmFtZTogc3RyaW5nKSB7fVxufVxuXG4vKipcbiAqIENsYXNzaWZpY2F0aW9uIHN0cmluZyBnaXZlbiB0byB0YWJsZXMgd2l0aCB0aGlzIGRhdGEgZm9ybWF0LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2FkZC1jbGFzc2lmaWVyLmh0bWwjY2xhc3NpZmllci1idWlsdC1pblxuICovXG5leHBvcnQgY2xhc3MgQ2xhc3NpZmljYXRpb25TdHJpbmcge1xuICAvKipcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC5odG1sI2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQtYXZyb1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVlJPID0gbmV3IENsYXNzaWZpY2F0aW9uU3RyaW5nKCdhdnJvJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQuaHRtbCNhd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0LWNzdlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDU1YgPSBuZXcgQ2xhc3NpZmljYXRpb25TdHJpbmcoJ2NzdicpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0Lmh0bWwjYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC1qc29uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEpTT04gPSBuZXcgQ2xhc3NpZmljYXRpb25TdHJpbmcoJ2pzb24nKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC5odG1sI2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQteG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFhNTCA9IG5ldyBDbGFzc2lmaWNhdGlvblN0cmluZygneG1sJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQuaHRtbCNhd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0LXBhcnF1ZXRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFSUVVFVCA9IG5ldyBDbGFzc2lmaWNhdGlvblN0cmluZygncGFycXVldCcpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0Lmh0bWwjYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC1vcmNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1JDID0gbmV3IENsYXNzaWZpY2F0aW9uU3RyaW5nKCdvcmMnKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZykge31cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIGEgRGF0YUZvcm1hdCBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhRm9ybWF0UHJvcHMge1xuICAvKipcbiAgICogYElucHV0Rm9ybWF0YCBmb3IgdGhpcyBkYXRhIGZvcm1hdC5cbiAgICovXG4gIHJlYWRvbmx5IGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdDtcblxuICAvKipcbiAgICogYE91dHB1dEZvcm1hdGAgZm9yIHRoaXMgZGF0YSBmb3JtYXQuXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRGb3JtYXQ6IE91dHB1dEZvcm1hdDtcblxuICAvKipcbiAgICogU2VyaWFsaXphdGlvbiBsaWJyYXJ5IGZvciB0aGlzIGRhdGEgZm9ybWF0LlxuICAgKi9cbiAgcmVhZG9ubHkgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5O1xuXG4gIC8qKlxuICAgKiBDbGFzc2lmaWNhdGlvbiBzdHJpbmcgZ2l2ZW4gdG8gdGFibGVzIHdpdGggdGhpcyBkYXRhIGZvcm1hdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBjbGFzc2lmaWNhdGlvbiBpcyBzcGVjaWZpZWQuXG4gICAqL1xuICByZWFkb25seSBjbGFzc2lmaWNhdGlvblN0cmluZz86IENsYXNzaWZpY2F0aW9uU3RyaW5nO1xufVxuXG4vKipcbiAqIERlZmluZXMgdGhlIGlucHV0L291dHB1dCBmb3JtYXRzIGFuZCBzZXIvZGUgZm9yIGEgc2luZ2xlIERhdGFGb3JtYXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhRm9ybWF0IHtcbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIEFwYWNoZSBXZWIgU2VydmVyIExvZ3MuIEFsc28gd29ya3MgZm9yIENsb3VkRnJvbnQgbG9nc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2FwYWNoZS5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFQQUNIRV9MT0dTID0gbmV3IERhdGFGb3JtYXQoe1xuICAgIGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdC5URVhULFxuICAgIG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0LkhJVkVfSUdOT1JFX0tFWV9URVhULFxuICAgIHNlcmlhbGl6YXRpb25MaWJyYXJ5OiBTZXJpYWxpemF0aW9uTGlicmFyeS5SRUdFWFAsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBEYXRhRm9ybWF0IGZvciBBcGFjaGUgQXZyb1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2F2cm8uaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVlJPID0gbmV3IERhdGFGb3JtYXQoe1xuICAgIGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdC5BVlJPLFxuICAgIG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0LkFWUk8sXG4gICAgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5LkFWUk8sXG4gICAgY2xhc3NpZmljYXRpb25TdHJpbmc6IENsYXNzaWZpY2F0aW9uU3RyaW5nLkFWUk8sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBEYXRhRm9ybWF0IGZvciBDbG91ZFRyYWlsIGxvZ3Mgc3RvcmVkIG9uIFMzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvY2xvdWR0cmFpbC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENMT1VEVFJBSUxfTE9HUyA9IG5ldyBEYXRhRm9ybWF0KHtcbiAgICBpbnB1dEZvcm1hdDogSW5wdXRGb3JtYXQuQ0xPVURUUkFJTCxcbiAgICBvdXRwdXRGb3JtYXQ6IE91dHB1dEZvcm1hdC5ISVZFX0lHTk9SRV9LRVlfVEVYVCxcbiAgICBzZXJpYWxpemF0aW9uTGlicmFyeTogU2VyaWFsaXphdGlvbkxpYnJhcnkuQ0xPVURUUkFJTCxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIENTViBGaWxlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2Nzdi5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENTViA9IG5ldyBEYXRhRm9ybWF0KHtcbiAgICBpbnB1dEZvcm1hdDogSW5wdXRGb3JtYXQuVEVYVCxcbiAgICBvdXRwdXRGb3JtYXQ6IE91dHB1dEZvcm1hdC5ISVZFX0lHTk9SRV9LRVlfVEVYVCxcbiAgICBzZXJpYWxpemF0aW9uTGlicmFyeTogU2VyaWFsaXphdGlvbkxpYnJhcnkuT1BFTl9DU1YsXG4gICAgY2xhc3NpZmljYXRpb25TdHJpbmc6IENsYXNzaWZpY2F0aW9uU3RyaW5nLkNTVixcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFN0b3JlZCBhcyBwbGFpbiB0ZXh0IGZpbGVzIGluIEpTT04gZm9ybWF0LlxuICAgKiBVc2VzIE9wZW5YIEpzb24gU2VyRGUgZm9yIHNlcmlhbGl6YXRpb24gYW5kIGRlc2VyYWxpemF0aW9uLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2pzb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBKU09OID0gbmV3IERhdGFGb3JtYXQoe1xuICAgIGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdC5URVhULFxuICAgIG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0LkhJVkVfSUdOT1JFX0tFWV9URVhULFxuICAgIHNlcmlhbGl6YXRpb25MaWJyYXJ5OiBTZXJpYWxpemF0aW9uTGlicmFyeS5PUEVOWF9KU09OLFxuICAgIGNsYXNzaWZpY2F0aW9uU3RyaW5nOiBDbGFzc2lmaWNhdGlvblN0cmluZy5KU09OLFxuICB9KTtcblxuICAvKipcbiAgICogRGF0YUZvcm1hdCBmb3IgTG9nc3Rhc2ggTG9ncywgdXNpbmcgdGhlIEdST0sgU2VyRGVcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXRoZW5hL2xhdGVzdC91Zy9ncm9rLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTE9HU1RBU0ggPSBuZXcgRGF0YUZvcm1hdCh7XG4gICAgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0LlRFWFQsXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuSElWRV9JR05PUkVfS0VZX1RFWFQsXG4gICAgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5LkdST0ssXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBEYXRhRm9ybWF0IGZvciBBcGFjaGUgT1JDIChPcHRpbWl6ZWQgUm93IENvbHVtbmFyKVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL29yYy5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9SQyA9IG5ldyBEYXRhRm9ybWF0KHtcbiAgICBpbnB1dEZvcm1hdDogSW5wdXRGb3JtYXQuT1JDLFxuICAgIG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0Lk9SQyxcbiAgICBzZXJpYWxpemF0aW9uTGlicmFyeTogU2VyaWFsaXphdGlvbkxpYnJhcnkuT1JDLFxuICAgIGNsYXNzaWZpY2F0aW9uU3RyaW5nOiBDbGFzc2lmaWNhdGlvblN0cmluZy5PUkMsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBEYXRhRm9ybWF0IGZvciBBcGFjaGUgUGFycXVldFxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL3BhcnF1ZXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJRVUVUID0gbmV3IERhdGFGb3JtYXQoe1xuICAgIGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdC5QQVJRVUVULFxuICAgIG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0LlBBUlFVRVQsXG4gICAgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5LlBBUlFVRVQsXG4gICAgY2xhc3NpZmljYXRpb25TdHJpbmc6IENsYXNzaWZpY2F0aW9uU3RyaW5nLlBBUlFVRVQsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBEYXRhRm9ybWF0IGZvciBUU1YgKFRhYi1TZXBhcmF0ZWQgVmFsdWVzKVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2xhenktc2ltcGxlLXNlcmRlLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVFNWID0gbmV3IERhdGFGb3JtYXQoe1xuICAgIGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdC5URVhULFxuICAgIG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0LkhJVkVfSUdOT1JFX0tFWV9URVhULFxuICAgIHNlcmlhbGl6YXRpb25MaWJyYXJ5OiBTZXJpYWxpemF0aW9uTGlicmFyeS5MQVpZX1NJTVBMRSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIGBJbnB1dEZvcm1hdGAgZm9yIHRoaXMgZGF0YSBmb3JtYXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0O1xuXG4gIC8qKlxuICAgKiBgT3V0cHV0Rm9ybWF0YCBmb3IgdGhpcyBkYXRhIGZvcm1hdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvdXRwdXRGb3JtYXQ6IE91dHB1dEZvcm1hdDtcblxuICAvKipcbiAgICogU2VyaWFsaXphdGlvbiBsaWJyYXJ5IGZvciB0aGlzIGRhdGEgZm9ybWF0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNlcmlhbGl6YXRpb25MaWJyYXJ5OiBTZXJpYWxpemF0aW9uTGlicmFyeTtcblxuICAvKipcbiAgICogQ2xhc3NpZmljYXRpb24gc3RyaW5nIGdpdmVuIHRvIHRhYmxlcyB3aXRoIHRoaXMgZGF0YSBmb3JtYXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2xhc3NpZmljYXRpb25TdHJpbmc/OiBDbGFzc2lmaWNhdGlvblN0cmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJvcHM6IERhdGFGb3JtYXRQcm9wcykge1xuICAgIHRoaXMuaW5wdXRGb3JtYXQgPSBwcm9wcy5pbnB1dEZvcm1hdDtcbiAgICB0aGlzLm91dHB1dEZvcm1hdCA9IHByb3BzLm91dHB1dEZvcm1hdDtcbiAgICB0aGlzLnNlcmlhbGl6YXRpb25MaWJyYXJ5ID0gcHJvcHMuc2VyaWFsaXphdGlvbkxpYnJhcnk7XG4gICAgdGhpcy5jbGFzc2lmaWNhdGlvblN0cmluZyA9IHByb3BzLmNsYXNzaWZpY2F0aW9uU3RyaW5nO1xuICB9XG59XG4iXX0=
|
|
309
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1mb3JtYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkYXRhLWZvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOztHQUVHO0FBQ0gsTUFBYSxXQUFXO0lBdUNNOztJQXRDNUI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBVSxJQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsNERBQTRELENBQUMsQ0FBQztJQUU1Rzs7OztPQUlHO0lBQ0ksTUFBTSxDQUFVLFVBQVUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO0lBRXZHOzs7O09BSUc7SUFDSSxNQUFNLENBQVUsR0FBRyxHQUFHLElBQUksV0FBVyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7SUFFaEc7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBVSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsK0RBQStELENBQUMsQ0FBQztJQUVsSDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFVLElBQUksR0FBRyxJQUFJLFdBQVcsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0lBRTFGLFlBQTRCLFNBQWlCO1FBQWpCLGNBQVMsR0FBVCxTQUFTLENBQVE7S0FBSTs7QUF2Q25ELGtDQXdDQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxZQUFZO0lBNkJLOztJQTVCNUI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBVSxvQkFBb0IsR0FBRyxJQUFJLFlBQVksQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO0lBRTdIOzs7O09BSUc7SUFDSSxNQUFNLENBQVUsSUFBSSxHQUFHLElBQUksV0FBVyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7SUFFN0c7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBVSxHQUFHLEdBQUcsSUFBSSxXQUFXLENBQUMsa0RBQWtELENBQUMsQ0FBQztJQUVqRzs7OztPQUlHO0lBQ0ksTUFBTSxDQUFVLE9BQU8sR0FBRyxJQUFJLFlBQVksQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO0lBRXBILFlBQTRCLFNB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RztLQUMvQyxDQUFDLENBQUM7SUFFSDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFVLE9BQU8sR0FBRyxJQUFJLFVBQVUsQ0FBQztRQUM5QyxXQUFXLEVBQUUsV0FBVyxDQUFDLE9BQU87UUFDaEMsWUFBWSxFQUFFLFlBQVksQ0FBQyxPQUFPO1FBQ2xDLG9CQUFvQixFQUFFLG9CQUFvQixDQUFDLE9BQU87UUFDbEQsb0JBQW9CLEVBQUUsb0JBQW9CLENBQUMsT0FBTztLQUNuRCxDQUFDLENBQUM7SUFFSDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFVLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQztRQUMxQyxXQUFXLEVBQUUsV0FBVyxDQUFDLElBQUk7UUFDN0IsWUFBWSxFQUFFLFlBQVksQ0FBQyxvQkFBb0I7UUFDL0Msb0JBQW9CLEVBQUUsb0JBQW9CLENBQUMsV0FBVztLQUN2RCxDQUFDLENBQUM7SUFFSDs7T0FFRztJQUNhLFdBQVcsQ0FBYztJQUV6Qzs7T0FFRztJQUNhLFlBQVksQ0FBZTtJQUUzQzs7T0FFRztJQUNhLG9CQUFvQixDQUF1QjtJQUUzRDs7T0FFRztJQUNhLG9CQUFvQixDQUF3QjtJQUU1RCxZQUFtQixLQUFzQjs7Ozs7OytDQTlIOUIsVUFBVTs7OztRQStIbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDLG9CQUFvQixDQUFDO1FBQ3ZELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUMsb0JBQW9CLENBQUM7S0FDeEQ7O0FBbklILGdDQW9JQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWJzb2x1dGUgY2xhc3MgbmFtZSBvZiB0aGUgSGFkb29wIGBJbnB1dEZvcm1hdGAgdG8gdXNlIHdoZW4gcmVhZGluZyB0YWJsZSBmaWxlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIElucHV0Rm9ybWF0IHtcbiAgLyoqXG4gICAqIElucHV0Rm9ybWF0IGZvciBBdnJvIGZpbGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL2F2cm8vQXZyb0NvbnRhaW5lcklucHV0Rm9ybWF0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVZSTyA9IG5ldyBJbnB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5hdnJvLkF2cm9Db250YWluZXJJbnB1dEZvcm1hdCcpO1xuXG4gIC8qKlxuICAgKiBJbnB1dEZvcm1hdCBmb3IgQ2xvdWR0cmFpbCBMb2dzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2Nsb3VkdHJhaWwuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDTE9VRFRSQUlMID0gbmV3IElucHV0Rm9ybWF0KCdjb20uYW1hem9uLmVtci5jbG91ZHRyYWlsLkNsb3VkVHJhaWxJbnB1dEZvcm1hdCcpO1xuXG4gIC8qKlxuICAgKiBJbnB1dEZvcm1hdCBmb3IgT3JjIGZpbGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL29yYy9PcmNJbnB1dEZvcm1hdC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9SQyA9IG5ldyBJbnB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5vcmMuT3JjSW5wdXRGb3JtYXQnKTtcblxuICAvKipcbiAgICogSW5wdXRGb3JtYXQgZm9yIFBhcnF1ZXQgZmlsZXMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvcWwvaW8vcGFycXVldC9NYXByZWRQYXJxdWV0SW5wdXRGb3JtYXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJRVUVUID0gbmV3IElucHV0Rm9ybWF0KCdvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnFsLmlvLnBhcnF1ZXQuTWFwcmVkUGFycXVldElucHV0Rm9ybWF0Jyk7XG5cbiAgLyoqXG4gICAqIEFuIElucHV0Rm9ybWF0IGZvciBwbGFpbiB0ZXh0IGZpbGVzLiBGaWxlcyBhcmUgYnJva2VuIGludG8gbGluZXMuIEVpdGhlciBsaW5lZmVlZCBvclxuICAgKiBjYXJyaWFnZS1yZXR1cm4gYXJlIHVzZWQgdG8gc2lnbmFsIGVuZCBvZiBsaW5lLiBLZXlzIGFyZSB0aGUgcG9zaXRpb24gaW4gdGhlIGZpbGUsIGFuZFxuICAgKiB2YWx1ZXMgYXJlIHRoZSBsaW5lIG9mIHRleHQuXG4gICAqIEpTT04gJiBDU1YgZmlsZXMgYXJlIGV4YW1wbGVzIG9mIHRoaXMgSW5wdXRGb3JtYXRcbiAgICpcbiAgICogQHNlZSBodHRwczovL2hhZG9vcC5hcGFjaGUub3JnL2RvY3Mvc3RhYmxlL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9tYXByZWQvVGV4dElucHV0Rm9ybWF0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVEVYVCA9IG5ldyBJbnB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AubWFwcmVkLlRleHRJbnB1dEZvcm1hdCcpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjbGFzc05hbWU6IHN0cmluZykge31cbn1cblxuLyoqXG4gKiBBYnNvbHV0ZSBjbGFzcyBuYW1lIG9mIHRoZSBIYWRvb3AgYE91dHB1dEZvcm1hdGAgdG8gdXNlIHdoZW4gd3JpdGluZyB0YWJsZSBmaWxlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIE91dHB1dEZvcm1hdCB7XG4gIC8qKlxuICAgKiBXcml0ZXMgdGV4dCBkYXRhIHdpdGggYSBudWxsIGtleSAodmFsdWUgb25seSkuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvcWwvaW8vSGl2ZUlnbm9yZUtleVRleHRPdXRwdXRGb3JtYXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBISVZFX0lHTk9SRV9LRVlfVEVYVCA9IG5ldyBPdXRwdXRGb3JtYXQoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUucWwuaW8uSGl2ZUlnbm9yZUtleVRleHRPdXRwdXRGb3JtYXQnKTtcblxuICAvKipcbiAgICogT3V0cHV0Rm9ybWF0IGZvciBBdnJvIGZpbGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL2F2cm8vQXZyb0NvbnRhaW5lck91dHB1dEZvcm1hdC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWUk8gPSBuZXcgSW5wdXRGb3JtYXQoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUucWwuaW8uYXZyby5BdnJvQ29udGFpbmVyT3V0cHV0Rm9ybWF0Jyk7XG5cbiAgLyoqXG4gICAqIE91dHB1dEZvcm1hdCBmb3IgT3JjIGZpbGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL29yYy9PcmNPdXRwdXRGb3JtYXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBPUkMgPSBuZXcgSW5wdXRGb3JtYXQoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUucWwuaW8ub3JjLk9yY091dHB1dEZvcm1hdCcpO1xuXG4gIC8qKlxuICAgKiBPdXRwdXRGb3JtYXQgZm9yIFBhcnF1ZXQgZmlsZXMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvcWwvaW8vcGFycXVldC9NYXByZWRQYXJxdWV0T3V0cHV0Rm9ybWF0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFSUVVFVCA9IG5ldyBPdXRwdXRGb3JtYXQoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUucWwuaW8ucGFycXVldC5NYXByZWRQYXJxdWV0T3V0cHV0Rm9ybWF0Jyk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGNsYXNzTmFtZTogc3RyaW5nKSB7fVxufVxuXG4vKipcbiAqIFNlcmlhbGl6YXRpb24gbGlicmFyeSB0byB1c2Ugd2hlbiBzZXJpYWxpemluZy9kZXNlcmlhbGl6aW5nIChTZXJEZSkgdGFibGUgcmVjb3Jkcy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvSGl2ZS9TZXJEZVxuICovXG5leHBvcnQgY2xhc3MgU2VyaWFsaXphdGlvbkxpYnJhcnkge1xuICAvKipcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oYWRvb3AvaGl2ZS9zZXJkZTIvYXZyby9BdnJvU2VyRGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVlJPID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnNlcmRlMi5hdnJvLkF2cm9TZXJEZScpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2Nsb3VkdHJhaWwuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDTE9VRFRSQUlMID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdjb20uYW1hem9uLmVtci5oaXZlLnNlcmRlLkNsb3VkVHJhaWxTZXJkZScpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2dyb2suaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBHUk9LID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdjb20uYW1hem9uYXdzLmdsdWUuc2VyZGUuR3Jva1NlckRlJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGl2ZS9oY2F0YWxvZy9kYXRhL0pzb25TZXJEZS5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEhJVkVfSlNPTiA9IG5ldyBTZXJpYWxpemF0aW9uTGlicmFyeSgnb3JnLmFwYWNoZS5oaXZlLmhjYXRhbG9nLmRhdGEuSnNvblNlckRlJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvc2VyZGUyL2xhenkvTGF6eVNpbXBsZVNlckRlLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTEFaWV9TSU1QTEUgPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUuc2VyZGUyLmxhenkuTGF6eVNpbXBsZVNlckRlJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvc2VyZGUyL09wZW5DU1ZTZXJkZS5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9QRU5fQ1NWID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnNlcmRlMi5PcGVuQ1NWU2VyZGUnKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vcmNvbmdpdS9IaXZlLUpTT04tU2VyZGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1BFTlhfSlNPTiA9IG5ldyBTZXJpYWxpemF0aW9uTGlicmFyeSgnb3JnLm9wZW54LmRhdGEuanNvbnNlcmRlLkpzb25TZXJEZScpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL29yYy9PcmNTZXJkZS5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9SQyA9IG5ldyBTZXJpYWxpemF0aW9uTGlicmFyeSgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5vcmMuT3JjU2VyZGUnKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oYWRvb3AvaGl2ZS9xbC9pby9wYXJxdWV0L3NlcmRlL1BhcnF1ZXRIaXZlU2VyRGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJRVUVUID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnFsLmlvLnBhcnF1ZXQuc2VyZGUuUGFycXVldEhpdmVTZXJEZScpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3NlcmRlMi9SZWdleFNlckRlLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUkVHRVhQID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnNlcmRlMi5SZWdleFNlckRlJyk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGNsYXNzTmFtZTogc3RyaW5nKSB7fVxufVxuXG4vKipcbiAqIENsYXNzaWZpY2F0aW9uIHN0cmluZyBnaXZlbiB0byB0YWJsZXMgd2l0aCB0aGlzIGRhdGEgZm9ybWF0LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2FkZC1jbGFzc2lmaWVyLmh0bWwjY2xhc3NpZmllci1idWlsdC1pblxuICovXG5leHBvcnQgY2xhc3MgQ2xhc3NpZmljYXRpb25TdHJpbmcge1xuICAvKipcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC5odG1sI2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQtYXZyb1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVlJPID0gbmV3IENsYXNzaWZpY2F0aW9uU3RyaW5nKCdhdnJvJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQuaHRtbCNhd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0LWNzdlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDU1YgPSBuZXcgQ2xhc3NpZmljYXRpb25TdHJpbmcoJ2NzdicpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0Lmh0bWwjYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC1qc29uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEpTT04gPSBuZXcgQ2xhc3NpZmljYXRpb25TdHJpbmcoJ2pzb24nKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC5odG1sI2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQteG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFhNTCA9IG5ldyBDbGFzc2lmaWNhdGlvblN0cmluZygneG1sJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQuaHRtbCNhd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0LXBhcnF1ZXRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFSUVVFVCA9IG5ldyBDbGFzc2lmaWNhdGlvblN0cmluZygncGFycXVldCcpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0Lmh0bWwjYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC1vcmNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1JDID0gbmV3IENsYXNzaWZpY2F0aW9uU3RyaW5nKCdvcmMnKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZykge31cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIGEgRGF0YUZvcm1hdCBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhRm9ybWF0UHJvcHMge1xuICAvKipcbiAgICogYElucHV0Rm9ybWF0YCBmb3IgdGhpcyBkYXRhIGZvcm1hdC5cbiAgICovXG4gIHJlYWRvbmx5IGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdDtcblxuICAvKipcbiAgICogYE91dHB1dEZvcm1hdGAgZm9yIHRoaXMgZGF0YSBmb3JtYXQuXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRGb3JtYXQ6IE91dHB1dEZvcm1hdDtcblxuICAvKipcbiAgICogU2VyaWFsaXphdGlvbiBsaWJyYXJ5IGZvciB0aGlzIGRhdGEgZm9ybWF0LlxuICAgKi9cbiAgcmVhZG9ubHkgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5O1xuXG4gIC8qKlxuICAgKiBDbGFzc2lmaWNhdGlvbiBzdHJpbmcgZ2l2ZW4gdG8gdGFibGVzIHdpdGggdGhpcyBkYXRhIGZvcm1hdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBjbGFzc2lmaWNhdGlvbiBpcyBzcGVjaWZpZWQuXG4gICAqL1xuICByZWFkb25seSBjbGFzc2lmaWNhdGlvblN0cmluZz86IENsYXNzaWZpY2F0aW9uU3RyaW5nO1xufVxuXG4vKipcbiAqIERlZmluZXMgdGhlIGlucHV0L291dHB1dCBmb3JtYXRzIGFuZCBzZXIvZGUgZm9yIGEgc2luZ2xlIERhdGFGb3JtYXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhRm9ybWF0IHtcbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIEFwYWNoZSBXZWIgU2VydmVyIExvZ3MuIEFsc28gd29ya3MgZm9yIENsb3VkRnJvbnQgbG9nc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2FwYWNoZS5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFQQUNIRV9MT0dTID0gbmV3IERhdGFGb3JtYXQoe1xuICAgIGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdC5URVhULFxuICAgIG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0LkhJVkVfSUdOT1JFX0tFWV9URVhULFxuICAgIHNlcmlhbGl6YXRpb25MaWJyYXJ5OiBTZXJpYWxpemF0aW9uTGlicmFyeS5SRUdFWFAsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBEYXRhRm9ybWF0IGZvciBBcGFjaGUgQXZyb1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2F2cm8uaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVlJPID0gbmV3IERhdGFGb3JtYXQoe1xuICAgIGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdC5BVlJPLFxuICAgIG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0LkFWUk8sXG4gICAgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5LkFWUk8sXG4gICAgY2xhc3NpZmljYXRpb25TdHJpbmc6IENsYXNzaWZpY2F0aW9uU3RyaW5nLkFWUk8sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBEYXRhRm9ybWF0IGZvciBDbG91ZFRyYWlsIGxvZ3Mgc3RvcmVkIG9uIFMzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvY2xvdWR0cmFpbC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENMT1VEVFJBSUxfTE9HUyA9IG5ldyBEYXRhRm9ybWF0KHtcbiAgICBpbnB1dEZvcm1hdDogSW5wdXRGb3JtYXQuQ0xPVURUUkFJTCxcbiAgICBvdXRwdXRGb3JtYXQ6IE91dHB1dEZvcm1hdC5ISVZFX0lHTk9SRV9LRVlfVEVYVCxcbiAgICBzZXJpYWxpemF0aW9uTGlicmFyeTogU2VyaWFsaXphdGlvbkxpYnJhcnkuQ0xPVURUUkFJTCxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIENTViBGaWxlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2Nzdi5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENTViA9IG5ldyBEYXRhRm9ybWF0KHtcbiAgICBpbnB1dEZvcm1hdDogSW5wdXRGb3JtYXQuVEVYVCxcbiAgICBvdXRwdXRGb3JtYXQ6IE91dHB1dEZvcm1hdC5ISVZFX0lHTk9SRV9LRVlfVEVYVCxcbiAgICBzZXJpYWxpemF0aW9uTGlicmFyeTogU2VyaWFsaXphdGlvbkxpYnJhcnkuT1BFTl9DU1YsXG4gICAgY2xhc3NpZmljYXRpb25TdHJpbmc6IENsYXNzaWZpY2F0aW9uU3RyaW5nLkNTVixcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFN0b3JlZCBhcyBwbGFpbiB0ZXh0IGZpbGVzIGluIEpTT04gZm9ybWF0LlxuICAgKiBVc2VzIE9wZW5YIEpzb24gU2VyRGUgZm9yIHNlcmlhbGl6YXRpb24gYW5kIGRlc2VyYWxpemF0aW9uLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2pzb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBKU09OID0gbmV3IERhdGFGb3JtYXQoe1xuICAgIGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdC5URVhULFxuICAgIG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0LkhJVkVfSUdOT1JFX0tFWV9URVhULFxuICAgIHNlcmlhbGl6YXRpb25MaWJyYXJ5OiBTZXJpYWxpemF0aW9uTGlicmFyeS5PUEVOWF9KU09OLFxuICAgIGNsYXNzaWZpY2F0aW9uU3RyaW5nOiBDbGFzc2lmaWNhdGlvblN0cmluZy5KU09OLFxuICB9KTtcblxuICAvKipcbiAgICogRGF0YUZvcm1hdCBmb3IgTG9nc3Rhc2ggTG9ncywgdXNpbmcgdGhlIEdST0sgU2VyRGVcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXRoZW5hL2xhdGVzdC91Zy9ncm9rLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTE9HU1RBU0ggPSBuZXcgRGF0YUZvcm1hdCh7XG4gICAgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0LlRFWFQsXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuSElWRV9JR05PUkVfS0VZX1RFWFQsXG4gICAgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5LkdST0ssXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBEYXRhRm9ybWF0IGZvciBBcGFjaGUgT1JDIChPcHRpbWl6ZWQgUm93IENvbHVtbmFyKVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL29yYy5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9SQyA9IG5ldyBEYXRhRm9ybWF0KHtcbiAgICBpbnB1dEZvcm1hdDogSW5wdXRGb3JtYXQuT1JDLFxuICAgIG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0Lk9SQyxcbiAgICBzZXJpYWxpemF0aW9uTGlicmFyeTogU2VyaWFsaXphdGlvbkxpYnJhcnkuT1JDLFxuICAgIGNsYXNzaWZpY2F0aW9uU3RyaW5nOiBDbGFzc2lmaWNhdGlvblN0cmluZy5PUkMsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBEYXRhRm9ybWF0IGZvciBBcGFjaGUgUGFycXVldFxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL3BhcnF1ZXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJRVUVUID0gbmV3IERhdGFGb3JtYXQoe1xuICAgIGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdC5QQVJRVUVULFxuICAgIG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0LlBBUlFVRVQsXG4gICAgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5LlBBUlFVRVQsXG4gICAgY2xhc3NpZmljYXRpb25TdHJpbmc6IENsYXNzaWZpY2F0aW9uU3RyaW5nLlBBUlFVRVQsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBEYXRhRm9ybWF0IGZvciBUU1YgKFRhYi1TZXBhcmF0ZWQgVmFsdWVzKVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2xhenktc2ltcGxlLXNlcmRlLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVFNWID0gbmV3IERhdGFGb3JtYXQoe1xuICAgIGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdC5URVhULFxuICAgIG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0LkhJVkVfSUdOT1JFX0tFWV9URVhULFxuICAgIHNlcmlhbGl6YXRpb25MaWJyYXJ5OiBTZXJpYWxpemF0aW9uTGlicmFyeS5MQVpZX1NJTVBMRSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIGBJbnB1dEZvcm1hdGAgZm9yIHRoaXMgZGF0YSBmb3JtYXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0O1xuXG4gIC8qKlxuICAgKiBgT3V0cHV0Rm9ybWF0YCBmb3IgdGhpcyBkYXRhIGZvcm1hdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvdXRwdXRGb3JtYXQ6IE91dHB1dEZvcm1hdDtcblxuICAvKipcbiAgICogU2VyaWFsaXphdGlvbiBsaWJyYXJ5IGZvciB0aGlzIGRhdGEgZm9ybWF0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNlcmlhbGl6YXRpb25MaWJyYXJ5OiBTZXJpYWxpemF0aW9uTGlicmFyeTtcblxuICAvKipcbiAgICogQ2xhc3NpZmljYXRpb24gc3RyaW5nIGdpdmVuIHRvIHRhYmxlcyB3aXRoIHRoaXMgZGF0YSBmb3JtYXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2xhc3NpZmljYXRpb25TdHJpbmc/OiBDbGFzc2lmaWNhdGlvblN0cmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJvcHM6IERhdGFGb3JtYXRQcm9wcykge1xuICAgIHRoaXMuaW5wdXRGb3JtYXQgPSBwcm9wcy5pbnB1dEZvcm1hdDtcbiAgICB0aGlzLm91dHB1dEZvcm1hdCA9IHByb3BzLm91dHB1dEZvcm1hdDtcbiAgICB0aGlzLnNlcmlhbGl6YXRpb25MaWJyYXJ5ID0gcHJvcHMuc2VyaWFsaXphdGlvbkxpYnJhcnk7XG4gICAgdGhpcy5jbGFzc2lmaWNhdGlvblN0cmluZyA9IHByb3BzLmNsYXNzaWZpY2F0aW9uU3RyaW5nO1xuICB9XG59XG4iXX0=
|