@aws-cdk/aws-elasticache-alpha 2.253.1-alpha.0 → 2.255.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 CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "aws-cdk-lib": "^2.253.1",
11
+ "aws-cdk-lib": "^2.255.0",
12
12
  "constructs": "^10.5.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -9987,7 +9987,7 @@
9987
9987
  "kind": "interface",
9988
9988
  "locationInModule": {
9989
9989
  "filename": "lib/user-group.ts",
9990
- "line": 40
9990
+ "line": 41
9991
9991
  },
9992
9992
  "methods": [
9993
9993
  {
@@ -9998,7 +9998,7 @@
9998
9998
  },
9999
9999
  "locationInModule": {
10000
10000
  "filename": "lib/user-group.ts",
10001
- "line": 66
10001
+ "line": 67
10002
10002
  },
10003
10003
  "name": "addUser",
10004
10004
  "parameters": [
@@ -10028,7 +10028,7 @@
10028
10028
  "immutable": true,
10029
10029
  "locationInModule": {
10030
10030
  "filename": "lib/user-group.ts",
10031
- "line": 60
10031
+ "line": 61
10032
10032
  },
10033
10033
  "name": "userGroupArn",
10034
10034
  "type": {
@@ -10047,7 +10047,7 @@
10047
10047
  "immutable": true,
10048
10048
  "locationInModule": {
10049
10049
  "filename": "lib/user-group.ts",
10050
- "line": 46
10050
+ "line": 47
10051
10051
  },
10052
10052
  "name": "userGroupName",
10053
10053
  "type": {
@@ -10063,7 +10063,7 @@
10063
10063
  "immutable": true,
10064
10064
  "locationInModule": {
10065
10065
  "filename": "lib/user-group.ts",
10066
- "line": 50
10066
+ "line": 51
10067
10067
  },
10068
10068
  "name": "engine",
10069
10069
  "optional": true,
@@ -10080,7 +10080,7 @@
10080
10080
  "immutable": true,
10081
10081
  "locationInModule": {
10082
10082
  "filename": "lib/user-group.ts",
10083
- "line": 54
10083
+ "line": 55
10084
10084
  },
10085
10085
  "name": "users",
10086
10086
  "optional": true,
@@ -13155,7 +13155,7 @@
13155
13155
  },
13156
13156
  "locationInModule": {
13157
13157
  "filename": "lib/user-group.ts",
13158
- "line": 250
13158
+ "line": 252
13159
13159
  },
13160
13160
  "parameters": [
13161
13161
  {
@@ -13182,7 +13182,7 @@
13182
13182
  "kind": "class",
13183
13183
  "locationInModule": {
13184
13184
  "filename": "lib/user-group.ts",
13185
- "line": 141
13185
+ "line": 142
13186
13186
  },
13187
13187
  "methods": [
13188
13188
  {
@@ -13192,7 +13192,7 @@
13192
13192
  },
13193
13193
  "locationInModule": {
13194
13194
  "filename": "lib/user-group.ts",
13195
- "line": 173
13195
+ "line": 175
13196
13196
  },
13197
13197
  "name": "fromUserGroupArn",
13198
13198
  "parameters": [
@@ -13238,7 +13238,7 @@
13238
13238
  },
13239
13239
  "locationInModule": {
13240
13240
  "filename": "lib/user-group.ts",
13241
- "line": 184
13241
+ "line": 186
13242
13242
  },
13243
13243
  "name": "fromUserGroupAttributes",
13244
13244
  "parameters": [
@@ -13284,7 +13284,7 @@
13284
13284
  },
13285
13285
  "locationInModule": {
13286
13286
  "filename": "lib/user-group.ts",
13287
- "line": 162
13287
+ "line": 164
13288
13288
  },
13289
13289
  "name": "fromUserGroupName",
13290
13290
  "parameters": [
@@ -13330,7 +13330,7 @@
13330
13330
  },
13331
13331
  "locationInModule": {
13332
13332
  "filename": "lib/user-group.ts",
13333
- "line": 151
13333
+ "line": 153
13334
13334
  },
13335
13335
  "name": "isUserGroup",
13336
13336
  "parameters": [
@@ -13355,7 +13355,7 @@
13355
13355
  },
13356
13356
  "locationInModule": {
13357
13357
  "filename": "lib/user-group.ts",
13358
- "line": 332
13358
+ "line": 331
13359
13359
  },
13360
13360
  "name": "addUser",
13361
13361
  "overrides": "@aws-cdk/aws-elasticache-alpha.UserGroupBase",
@@ -13383,7 +13383,7 @@
13383
13383
  "immutable": true,
13384
13384
  "locationInModule": {
13385
13385
  "filename": "lib/user-group.ts",
13386
- "line": 146
13386
+ "line": 148
13387
13387
  },
13388
13388
  "name": "PROPERTY_INJECTION_ID",
13389
13389
  "static": true,
@@ -13402,7 +13402,7 @@
13402
13402
  "immutable": true,
13403
13403
  "locationInModule": {
13404
13404
  "filename": "lib/user-group.ts",
13405
- "line": 239
13405
+ "line": 241
13406
13406
  },
13407
13407
  "name": "userGroupArn",
13408
13408
  "overrides": "@aws-cdk/aws-elasticache-alpha.UserGroupBase",
@@ -13418,7 +13418,7 @@
13418
13418
  "immutable": true,
13419
13419
  "locationInModule": {
13420
13420
  "filename": "lib/user-group.ts",
13421
- "line": 232
13421
+ "line": 234
13422
13422
  },
13423
13423
  "name": "userGroupName",
13424
13424
  "overrides": "@aws-cdk/aws-elasticache-alpha.UserGroupBase",
@@ -13437,7 +13437,7 @@
13437
13437
  "immutable": true,
13438
13438
  "locationInModule": {
13439
13439
  "filename": "lib/user-group.ts",
13440
- "line": 246
13440
+ "line": 248
13441
13441
  },
13442
13442
  "name": "userGroupStatus",
13443
13443
  "type": {
@@ -13452,7 +13452,7 @@
13452
13452
  "immutable": true,
13453
13453
  "locationInModule": {
13454
13454
  "filename": "lib/user-group.ts",
13455
- "line": 231
13455
+ "line": 233
13456
13456
  },
13457
13457
  "name": "engine",
13458
13458
  "optional": true,
@@ -13470,7 +13470,7 @@
13470
13470
  "immutable": true,
13471
13471
  "locationInModule": {
13472
13472
  "filename": "lib/user-group.ts",
13473
- "line": 300
13473
+ "line": 298
13474
13474
  },
13475
13475
  "name": "users",
13476
13476
  "optional": true,
@@ -13502,7 +13502,7 @@
13502
13502
  "kind": "interface",
13503
13503
  "locationInModule": {
13504
13504
  "filename": "lib/user-group.ts",
13505
- "line": 105
13505
+ "line": 106
13506
13506
  },
13507
13507
  "name": "UserGroupAttributes",
13508
13508
  "properties": [
@@ -13516,7 +13516,7 @@
13516
13516
  "immutable": true,
13517
13517
  "locationInModule": {
13518
13518
  "filename": "lib/user-group.ts",
13519
- "line": 119
13519
+ "line": 120
13520
13520
  },
13521
13521
  "name": "engine",
13522
13522
  "optional": true,
@@ -13535,7 +13535,7 @@
13535
13535
  "immutable": true,
13536
13536
  "locationInModule": {
13537
13537
  "filename": "lib/user-group.ts",
13538
- "line": 133
13538
+ "line": 134
13539
13539
  },
13540
13540
  "name": "userGroupArn",
13541
13541
  "optional": true,
@@ -13554,7 +13554,7 @@
13554
13554
  "immutable": true,
13555
13555
  "locationInModule": {
13556
13556
  "filename": "lib/user-group.ts",
13557
- "line": 113
13557
+ "line": 114
13558
13558
  },
13559
13559
  "name": "userGroupName",
13560
13560
  "optional": true,
@@ -13572,7 +13572,7 @@
13572
13572
  "immutable": true,
13573
13573
  "locationInModule": {
13574
13574
  "filename": "lib/user-group.ts",
13575
- "line": 125
13575
+ "line": 126
13576
13576
  },
13577
13577
  "name": "users",
13578
13578
  "optional": true,
@@ -13633,7 +13633,7 @@
13633
13633
  "kind": "class",
13634
13634
  "locationInModule": {
13635
13635
  "filename": "lib/user-group.ts",
13636
- "line": 72
13636
+ "line": 73
13637
13637
  },
13638
13638
  "methods": [
13639
13639
  {
@@ -13643,7 +13643,7 @@
13643
13643
  },
13644
13644
  "locationInModule": {
13645
13645
  "filename": "lib/user-group.ts",
13646
- "line": 97
13646
+ "line": 98
13647
13647
  },
13648
13648
  "name": "addUser",
13649
13649
  "overrides": "@aws-cdk/aws-elasticache-alpha.IUserGroup",
@@ -13674,7 +13674,7 @@
13674
13674
  "immutable": true,
13675
13675
  "locationInModule": {
13676
13676
  "filename": "lib/user-group.ts",
13677
- "line": 91
13677
+ "line": 92
13678
13678
  },
13679
13679
  "name": "userGroupArn",
13680
13680
  "overrides": "@aws-cdk/aws-elasticache-alpha.IUserGroup",
@@ -13694,7 +13694,7 @@
13694
13694
  "immutable": true,
13695
13695
  "locationInModule": {
13696
13696
  "filename": "lib/user-group.ts",
13697
- "line": 78
13697
+ "line": 79
13698
13698
  },
13699
13699
  "name": "userGroupName",
13700
13700
  "overrides": "@aws-cdk/aws-elasticache-alpha.IUserGroup",
@@ -13711,7 +13711,7 @@
13711
13711
  "immutable": true,
13712
13712
  "locationInModule": {
13713
13713
  "filename": "lib/user-group.ts",
13714
- "line": 82
13714
+ "line": 83
13715
13715
  },
13716
13716
  "name": "engine",
13717
13717
  "optional": true,
@@ -13729,7 +13729,7 @@
13729
13729
  "immutable": true,
13730
13730
  "locationInModule": {
13731
13731
  "filename": "lib/user-group.ts",
13732
- "line": 86
13732
+ "line": 87
13733
13733
  },
13734
13734
  "name": "users",
13735
13735
  "optional": true,
@@ -13761,7 +13761,7 @@
13761
13761
  "kind": "interface",
13762
13762
  "locationInModule": {
13763
13763
  "filename": "lib/user-group.ts",
13764
- "line": 16
13764
+ "line": 17
13765
13765
  },
13766
13766
  "name": "UserGroupProps",
13767
13767
  "properties": [
@@ -13775,7 +13775,7 @@
13775
13775
  "immutable": true,
13776
13776
  "locationInModule": {
13777
13777
  "filename": "lib/user-group.ts",
13778
- "line": 28
13778
+ "line": 29
13779
13779
  },
13780
13780
  "name": "engine",
13781
13781
  "optional": true,
@@ -13793,7 +13793,7 @@
13793
13793
  "immutable": true,
13794
13794
  "locationInModule": {
13795
13795
  "filename": "lib/user-group.ts",
13796
- "line": 21
13796
+ "line": 22
13797
13797
  },
13798
13798
  "name": "userGroupName",
13799
13799
  "optional": true,
@@ -13811,7 +13811,7 @@
13811
13811
  "immutable": true,
13812
13812
  "locationInModule": {
13813
13813
  "filename": "lib/user-group.ts",
13814
- "line": 34
13814
+ "line": 35
13815
13815
  },
13816
13816
  "name": "users",
13817
13817
  "optional": true,
@@ -13828,6 +13828,6 @@
13828
13828
  "symbolId": "lib/user-group:UserGroupProps"
13829
13829
  }
13830
13830
  },
13831
- "version": "2.253.1-alpha.0",
13831
+ "version": "2.255.0-alpha.0",
13832
13832
  "fingerprint": "**********"
13833
13833
  }
Binary file
@@ -9,7 +9,7 @@ const iam = require("aws-cdk-lib/aws-iam");
9
9
  * Collection of grant methods for a IServerlessCacheRef
10
10
  */
11
11
  class ServerlessCacheGrants {
12
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.ServerlessCacheGrants", version: "2.253.1-alpha.0" };
12
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.ServerlessCacheGrants", version: "2.255.0-alpha.0" };
13
13
  /**
14
14
  * Creates grants for ServerlessCacheGrants
15
15
  */
package/lib/iam-user.js CHANGED
@@ -72,7 +72,7 @@ let IamUser = (() => {
72
72
  IamUser = _classThis = _classDescriptor.value;
73
73
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
74
74
  }
75
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.IamUser", version: "2.253.1-alpha.0" };
75
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.IamUser", version: "2.255.0-alpha.0" };
76
76
  /**
77
77
  * Uniquely identifies this class.
78
78
  */
@@ -68,7 +68,7 @@ let NoPasswordUser = (() => {
68
68
  NoPasswordUser = _classThis = _classDescriptor.value;
69
69
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
70
70
  }
71
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.NoPasswordUser", version: "2.253.1-alpha.0" };
71
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.NoPasswordUser", version: "2.255.0-alpha.0" };
72
72
  /**
73
73
  * Uniquely identifies this class.
74
74
  */
@@ -64,7 +64,7 @@ let PasswordUser = (() => {
64
64
  PasswordUser = _classThis = _classDescriptor.value;
65
65
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
66
66
  }
67
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.PasswordUser", version: "2.253.1-alpha.0" };
67
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.PasswordUser", version: "2.255.0-alpha.0" };
68
68
  /**
69
69
  * Uniquely identifies this class.
70
70
  */
@@ -51,7 +51,7 @@ var CacheEngine;
51
51
  * Base class for ServerlessCache constructs
52
52
  */
53
53
  class ServerlessCacheBase extends core_1.Resource {
54
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.ServerlessCacheBase", version: "2.253.1-alpha.0" };
54
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.ServerlessCacheBase", version: "2.255.0-alpha.0" };
55
55
  /**
56
56
  * Collection of grant methods for this cache
57
57
  */
@@ -91,7 +91,7 @@ let ServerlessCache = (() => {
91
91
  ServerlessCache = _classThis = _classDescriptor.value;
92
92
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
93
93
  }
94
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.ServerlessCache", version: "2.253.1-alpha.0" };
94
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.ServerlessCache", version: "2.255.0-alpha.0" };
95
95
  /**
96
96
  * Uniquely identifies this class.
97
97
  */
package/lib/user-base.js CHANGED
@@ -9,7 +9,7 @@ const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
9
9
  * Access control configuration for ElastiCache users.
10
10
  */
11
11
  class AccessControl {
12
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.AccessControl", version: "2.253.1-alpha.0" };
12
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.AccessControl", version: "2.255.0-alpha.0" };
13
13
  /**
14
14
  * Create access control from an access string.
15
15
  *
@@ -37,7 +37,7 @@ class AccessControlString extends AccessControl {
37
37
  * Base class for ElastiCache users.
38
38
  */
39
39
  class UserBase extends core_1.Resource {
40
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.UserBase", version: "2.253.1-alpha.0" };
40
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.UserBase", version: "2.255.0-alpha.0" };
41
41
  /**
42
42
  * Import an existing user by ID.
43
43
  *
package/lib/user-group.js CHANGED
@@ -48,7 +48,7 @@ const ELASTICACHE_USERGROUP_SYMBOL = Symbol.for('@aws-cdk/aws-elasticache.UserGr
48
48
  * Base class for UserGroup constructs
49
49
  */
50
50
  class UserGroupBase extends core_1.Resource {
51
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.UserGroupBase", version: "2.253.1-alpha.0" };
51
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.UserGroupBase", version: "2.255.0-alpha.0" };
52
52
  /**
53
53
  * Add a user to this user group
54
54
  *
@@ -74,7 +74,7 @@ exports.UserGroupBase = UserGroupBase;
74
74
  * @resource AWS::ElastiCache::UserGroup
75
75
  */
76
76
  let UserGroup = (() => {
77
- let _classDecorators = [prop_injectable_1.propertyInjectable];
77
+ let _classDecorators = [helpers_internal_1.noBoxStackTraces, prop_injectable_1.propertyInjectable];
78
78
  let _classDescriptor;
79
79
  let _classExtraInitializers = [];
80
80
  let _classThis;
@@ -91,7 +91,7 @@ let UserGroup = (() => {
91
91
  UserGroup = _classThis = _classDescriptor.value;
92
92
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
93
93
  }
94
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.UserGroup", version: "2.253.1-alpha.0" };
94
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.UserGroup", version: "2.255.0-alpha.0" };
95
95
  /**
96
96
  * Uniquely identifies this class
97
97
  */
@@ -182,7 +182,7 @@ let UserGroup = (() => {
182
182
  }
183
183
  engine = __runInitializers(this, _instanceExtraInitializers);
184
184
  userGroupName;
185
- _users = [];
185
+ _users;
186
186
  /**
187
187
  * The ARN of the user group
188
188
  *
@@ -215,18 +215,14 @@ let UserGroup = (() => {
215
215
  // ElastiCache is allowing only uppercase and max 40 characters for user group id
216
216
  produce: () => core_1.Names.uniqueResourceName(this, { maxLength: 40 }).toLocaleLowerCase(),
217
217
  });
218
- if (props.users) {
219
- this._users.push(...props.users);
220
- }
218
+ this._users = helpers_internal_1.Box.fromArray(props.users ?? [], { omitEmpty: false });
221
219
  this.resource = new aws_elasticache_1.CfnUserGroup(this, 'Resource', {
222
220
  engine: this.engine,
223
221
  userGroupId: this.userGroupName,
224
- userIds: core_1.Lazy.list({
225
- produce: () => {
226
- this.validateUsers();
227
- return this._users.map(user => user.userId);
228
- },
229
- }),
222
+ userIds: core_1.Token.asList(this._users.derive(users => {
223
+ this.validateUsers();
224
+ return users.map(user => user.userId);
225
+ })),
230
226
  });
231
227
  if (props.users) {
232
228
  props.users.forEach(user => this.addUserDependency(user));
@@ -248,19 +244,20 @@ let UserGroup = (() => {
248
244
  * Use addUser() instead to ensure proper validation and dependency management.
249
245
  */
250
246
  get users() {
251
- return this._users;
247
+ return this._users.getMutable();
252
248
  }
253
249
  /**
254
250
  * Validates users in the user group for duplicate usernames and Redis-specific requirements.
255
251
  */
256
252
  validateUsers() {
257
- const userNames = this._users.map(user => user.userName);
253
+ const users = this._users.get();
254
+ const userNames = users.map(user => user.userName);
258
255
  const duplicates = userNames.filter((name, index) => userNames.indexOf(name) !== index);
259
256
  if (duplicates.length > 0) {
260
257
  throw new core_1.ValidationError((0, helpers_internal_1.lit) `DuplicateUserName`, 'User group cannot have users with the same user name.', this);
261
258
  }
262
259
  if (this.engine === common_1.UserEngine.REDIS) {
263
- this._users.forEach(user => {
260
+ users.forEach(user => {
264
261
  if (user.engine !== common_1.UserEngine.REDIS) {
265
262
  throw new core_1.ValidationError((0, helpers_internal_1.lit) `RedisUserGroupEngineMismatch`, 'Redis user group can only contain Redis users.', this);
266
263
  }
@@ -296,4 +293,4 @@ let UserGroup = (() => {
296
293
  return UserGroup = _classThis;
297
294
  })();
298
295
  exports.UserGroup = UserGroup;
299
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInVzZXItZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUVBQTJEO0FBRTNELDJDQUFxSDtBQUNySCw0RUFBNEQ7QUFDNUQsOEVBQThGO0FBQzlGLDBFQUEwRTtBQUUxRSxxQ0FBc0M7QUFHdEMsTUFBTSw0QkFBNEIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7QUEwRHRGOztHQUVHO0FBQ0gsTUFBc0IsYUFBYyxTQUFRLGVBQVE7O0lBb0JsRDs7OztPQUlHO0lBQ0ksT0FBTyxDQUFDLEtBQVk7Ozs7Ozs7Ozs7UUFDekIsTUFBTSxJQUFJLDhCQUF1QixDQUFDLElBQUEsc0JBQUcsRUFBQSwrQkFBK0IsRUFBRSxtR0FBbUcsQ0FBQyxDQUFDO0tBQzVLOztBQTNCSCxzQ0E0QkM7QUFvQ0Q7Ozs7R0FJRztJQUVVLFNBQVM7NEJBRHJCLG9DQUFrQjs7OztzQkFDWSxhQUFhOzs7eUJBQXJCLFNBQVEsV0FBYTs7OzttQ0E4THpDLElBQUEsa0NBQWMsR0FBRTtZQUNqQix3S0FBTyxPQUFPLDZEQUdiO1lBbE1ILDZLQW1NQzs7Ozs7UUFsTUM7O1dBRUc7UUFDSSxNQUFNLENBQVUscUJBQXFCLEdBQVcsdUNBQXVDLENBQUM7UUFFL0Y7O1dBRUc7UUFDSSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQU07WUFDOUIsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLElBQUksNEJBQTRCLElBQUksQ0FBQyxDQUFDO1NBQ25GO1FBRUQ7Ozs7OztXQU1HO1FBQ0ksTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLGFBQXFCO1lBQ2pGLE9BQU8sU0FBUyxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1NBQ3hFO1FBRUQ7Ozs7OztXQU1HO1FBQ0ksTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFlBQW9CO1lBQy9FLE9BQU8sU0FBUyxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZFO1FBRUQ7Ozs7OztXQU1HO1FBQ0ksTUFBTSxDQUFDLHVCQUF1QixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCOzs7Ozs7Ozs7O1lBQzVGLElBQUksYUFBcUIsQ0FBQztZQUMxQixJQUFJLFlBQW9CLENBQUM7WUFDekIsTUFBTSxLQUFLLEdBQUcsWUFBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU5QixJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUM5QyxNQUFNLElBQUksc0JBQWUsQ0FBQyxJQUFBLHNCQUFHLEVBQUEsaUNBQWlDLEVBQUUsNERBQTRELEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdkksQ0FBQztZQUVELElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN2QixZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztnQkFDbEMsTUFBTSxzQkFBc0IsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsZ0JBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFlBQVksQ0FBQztnQkFDOUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7b0JBQzVCLE1BQU0sSUFBSSxzQkFBZSxDQUFDLElBQUEsc0JBQUcsRUFBQSxxQkFBcUIsRUFBRSw2Q0FBNkMsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDNUcsQ0FBQztnQkFDRCxhQUFhLEdBQUcsc0JBQXNCLENBQUM7WUFDekMsQ0FBQztpQkFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDL0IsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7Z0JBQ3BDLFlBQVksR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO29CQUM3QixPQUFPLEVBQUUsYUFBYTtvQkFDdEIsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFlBQVksRUFBRSxLQUFLLENBQUMsYUFBYTtpQkFDbEMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sSUFBSSxzQkFBZSxDQUFDLElBQUEsc0JBQUcsRUFBQSw0QkFBNEIsRUFBRSxtREFBbUQsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN6SCxDQUFDO1lBRUQsTUFBTSxNQUFPLFNBQVEsYUFBYTtnQkFDaEIsTUFBTSxDQUFjO2dCQUNwQixhQUFhLENBQVM7Z0JBQ3RCLFlBQVksQ0FBUztnQkFFckMsSUFBVyxLQUFLO29CQUNkLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUNwRCxDQUFDO2dCQUVELFlBQVksYUFBcUIsRUFBRSxjQUFzQjtvQkFDdkQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUM7b0JBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsY0FBYyxDQUFDO29CQUNwQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQzdCLENBQUM7YUFDRjtZQUVELE9BQU8sSUFBSSxNQUFNLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1NBQ2hEO1FBRWUsTUFBTSxHQXpGWCxtREFBUyxDQXlGZ0I7UUFDcEIsYUFBYSxDQUFTO1FBQ3JCLE1BQU0sR0FBWSxFQUFFLENBQUM7UUFDdEM7Ozs7V0FJRztRQUNhLFlBQVksQ0FBUztRQUNyQzs7Ozs7V0FLRztRQUNhLGVBQWUsQ0FBUztRQUV2QixRQUFRLENBQWU7UUFFeEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUF3QixFQUFFO1lBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDOzs7Ozs7bURBN0daLFNBQVM7Ozs7WUErR2xCLG1DQUFtQztZQUNuQyxJQUFBLHdDQUFvQixFQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUVsQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksbUJBQVUsQ0FBQyxNQUFNLENBQUM7WUFDaEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxJQUFJLFdBQUksQ0FBQyxNQUFNLENBQUM7Z0JBQ3RELGlGQUFpRjtnQkFDakYsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLFlBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsRUFBRTthQUNyRixDQUFDLENBQUM7WUFFSCxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSw4QkFBWSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ2pELE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsV0FBVyxFQUFFLElBQUksQ0FBQyxhQUFhO2dCQUMvQixPQUFPLEVBQUUsV0FBSSxDQUFDLElBQUksQ0FBQztvQkFDakIsT0FBTyxFQUFFLEdBQUcsRUFBRTt3QkFDWixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7d0JBQ3JCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzlDLENBQUM7aUJBQ0YsQ0FBQzthQUNILENBQUMsQ0FBQztZQUVILElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNoQixLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzVELENBQUM7WUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQzFDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7WUFFaEQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsNEJBQTRCLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUM1RTtRQUVEOztXQUVHO1FBQ0ssaUJBQWlCLENBQUMsSUFBVztZQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEM7UUFFRDs7Ozs7V0FLRztRQUNILElBQVcsS0FBSztZQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUNwQjtRQUVEOztXQUVHO1FBQ0ssYUFBYTtZQUNuQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6RCxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQztZQUN4RixJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzFCLE1BQU0sSUFBSSxzQkFBZSxDQUFDLElBQUEsc0JBQUcsRUFBQSxtQkFBbUIsRUFBRSx1REFBdUQsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNuSCxDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLG1CQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUN6QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssbUJBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDckMsTUFBTSxJQUFJLHNCQUFlLENBQUMsSUFBQSxzQkFBRyxFQUFBLDhCQUE4QixFQUFFLGdEQUFnRCxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUN2SCxDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNILE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQztnQkFDN0UsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUNwQixNQUFNLElBQUksc0JBQWUsQ0FBQyxJQUFBLHNCQUFHLEVBQUEsa0NBQWtDLEVBQUUsd0VBQXdFLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ25KLENBQUM7WUFDSCxDQUFDO1NBQ0Y7UUFFRDs7OztXQUlHO1FBRUksT0FBTyxDQUFDLElBQVc7Ozs7Ozs7Ozs7WUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCOztZQWxNVSx1REFBUzs7Ozs7QUFBVCw4QkFBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmblVzZXJHcm91cCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lbGFzdGljYWNoZSc7XG5pbXBvcnQgdHlwZSB7IElSZXNvdXJjZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgUmVzb3VyY2UsIEFybkZvcm1hdCwgU3RhY2ssIExhenksIFZhbGlkYXRpb25FcnJvciwgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IsIE5hbWVzIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBsaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhLCBNZXRob2RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgVXNlckVuZ2luZSB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB0eXBlIHsgSVVzZXIgfSBmcm9tICcuL3VzZXItYmFzZSc7XG5cbmNvbnN0IEVMQVNUSUNBQ0hFX1VTRVJHUk9VUF9TWU1CT0wgPSBTeW1ib2wuZm9yKCdAYXdzLWNkay9hd3MtZWxhc3RpY2FjaGUuVXNlckdyb3VwJyk7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYW4gRWxhc3RpQ2FjaGUgVXNlckdyb3VwXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckdyb3VwUHJvcHMge1xuICAvKipcbiAgICogRW5mb3JjZXMgYSBwYXJ0aWN1bGFyIHBoeXNpY2FsIHVzZXIgZ3JvdXAgbmFtZS5cbiAgICogQGRlZmF1bHQgPGdlbmVyYXRlZD5cbiAgICovXG4gIHJlYWRvbmx5IHVzZXJHcm91cE5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZW5naW5lIHR5cGUgZm9yIHRoZSB1c2VyIGdyb3VwXG4gICAqIEVudW0gb3B0aW9uczogVXNlckVuZ2luZS5WQUxLRVksIFVzZXJFbmdpbmUuUkVESVNcbiAgICpcbiAgICogQGRlZmF1bHQgVXNlckVuZ2luZS5WQUxLRVlcbiAgICovXG4gIHJlYWRvbmx5IGVuZ2luZT86IFVzZXJFbmdpbmU7XG4gIC8qKlxuICAgKiBMaXN0IG9mIHVzZXJzIGluc2lkZSB0aGUgdXNlciBncm91cFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHVzZXJzXG4gICAqL1xuICByZWFkb25seSB1c2Vycz86IElVc2VyW107XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBFbGFzdGlDYWNoZSBVc2VyR3JvdXBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVXNlckdyb3VwIGV4dGVuZHMgSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB1c2VyIGdyb3VwXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJHcm91cE5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBlbmdpbmUgdHlwZSBmb3IgdGhlIHVzZXIgZ3JvdXBcbiAgICovXG4gIHJlYWRvbmx5IGVuZ2luZT86IFVzZXJFbmdpbmU7XG4gIC8qKlxuICAgKiBMaXN0IG9mIHVzZXJzIGluIHRoZSB1c2VyIGdyb3VwXG4gICAqL1xuICByZWFkb25seSB1c2Vycz86IElVc2VyW107XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSB1c2VyIGdyb3VwXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJHcm91cEFybjogc3RyaW5nO1xuICAvKipcbiAgICogQWRkIGEgdXNlciB0byB0aGlzIHVzZXIgZ3JvdXBcbiAgICpcbiAgICogQHBhcmFtIHVzZXIgVGhlIHVzZXIgdG8gYWRkXG4gICAqL1xuICBhZGRVc2VyKHVzZXI6IElVc2VyKTogdm9pZDtcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBVc2VyR3JvdXAgY29uc3RydWN0c1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVXNlckdyb3VwQmFzZSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVVzZXJHcm91cCB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdXNlciBncm91cFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdXNlckdyb3VwTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGVuZ2luZSB0eXBlIGZvciB0aGUgdXNlciBncm91cFxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGVuZ2luZT86IFVzZXJFbmdpbmU7XG4gIC8qKlxuICAgKiBMaXN0IG9mIHVzZXJzIGluIHRoZSB1c2VyIGdyb3VwXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdXNlcnM/OiBJVXNlcltdO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgdXNlciBncm91cFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdXNlckdyb3VwQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBZGQgYSB1c2VyIHRvIHRoaXMgdXNlciBncm91cFxuICAgKlxuICAgKiBAcGFyYW0gX3VzZXIgVGhlIHVzZXIgdG8gYWRkXG4gICAqL1xuICBwdWJsaWMgYWRkVXNlcihfdXNlcjogSVVzZXIpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IobGl0YEltcG9ydGVkVXNlckdyb3VwTW9kaWZpY2F0aW9uYCwgJ0Nhbm5vdCBhZGQgdXNlcnMgdG8gYW4gaW1wb3J0ZWQgVXNlckdyb3VwLiBPbmx5IFVzZXJHcm91cHMgY3JlYXRlZCBpbiB0aGlzIHN0YWNrIGNhbiBiZSBtb2RpZmllZC4nKTtcbiAgfVxufVxuXG4vKipcbiAqIEF0dHJpYnV0ZXMgdGhhdCBjYW4gYmUgc3BlY2lmaWVkIHdoZW4gaW1wb3J0aW5nIGEgVXNlckdyb3VwXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckdyb3VwQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdXNlciBncm91cFxuICAgKlxuICAgKiBPbmUgb2YgYHVzZXJHcm91cE5hbWVgIG9yIGB1c2VyR3JvdXBBcm5gIGlzIHJlcXVpcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlcml2ZWQgZnJvbSB1c2VyR3JvdXBBcm5cbiAgICovXG4gIHJlYWRvbmx5IHVzZXJHcm91cE5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZW5naW5lIHR5cGUgZm9yIHRoZSB1c2VyIGdyb3VwXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZW5naW5lIHR5cGUgaXMgdW5rbm93blxuICAgKi9cbiAgcmVhZG9ubHkgZW5naW5lPzogVXNlckVuZ2luZTtcbiAgLyoqXG4gICAqIExpc3Qgb2YgdXNlcnMgaW4gdGhlIHVzZXIgZ3JvdXBcbiAgICpcbiAgICogQGRlZmF1bHQgLSB1c2VycyBhcmUgdW5rbm93blxuICAgKi9cbiAgcmVhZG9ubHkgdXNlcnM/OiBJVXNlcltdO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgdXNlciBncm91cFxuICAgKlxuICAgKiBPbmUgb2YgYHVzZXJHcm91cE5hbWVgIG9yIGB1c2VyR3JvdXBBcm5gIGlzIHJlcXVpcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlcml2ZWQgZnJvbSB1c2VyR3JvdXBOYW1lXG4gICAqL1xuICByZWFkb25seSB1c2VyR3JvdXBBcm4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQW4gRWxhc3RpQ2FjaGUgVXNlckdyb3VwXG4gKlxuICogQHJlc291cmNlIEFXUzo6RWxhc3RpQ2FjaGU6OlVzZXJHcm91cFxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgVXNlckdyb3VwIGV4dGVuZHMgVXNlckdyb3VwQmFzZSB7XG4gIC8qKlxuICAgKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3NcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnYXdzLWNkay1saWIuYXdzLWVsYXN0aWNhY2hlLlVzZXJHcm91cCc7XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBgVXNlckdyb3VwYFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc1VzZXJHcm91cCh4OiBhbnkpOiB4IGlzIFVzZXJHcm91cCB7XG4gICAgcmV0dXJuIHggIT09IG51bGwgJiYgdHlwZW9mICh4KSA9PT0gJ29iamVjdCcgJiYgRUxBU1RJQ0FDSEVfVVNFUkdST1VQX1NZTUJPTCBpbiB4O1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyB1c2VyIGdyb3VwIGJ5IG5hbWVcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYClcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBuYW1lXG4gICAqIEBwYXJhbSB1c2VyR3JvdXBOYW1lIFRoZSBuYW1lIG9mIHRoZSBleGlzdGluZyB1c2VyIGdyb3VwXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Vc2VyR3JvdXBOYW1lKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHVzZXJHcm91cE5hbWU6IHN0cmluZyk6IElVc2VyR3JvdXAge1xuICAgIHJldHVybiBVc2VyR3JvdXAuZnJvbVVzZXJHcm91cEF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7IHVzZXJHcm91cE5hbWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIHVzZXIgZ3JvdXAgYnkgQVJOXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgcGFyZW50IGNyZWF0aW5nIGNvbnN0cnVjdCAodXN1YWxseSBgdGhpc2ApXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgbmFtZVxuICAgKiBAcGFyYW0gdXNlckdyb3VwQXJuIFRoZSBBUk4gb2YgdGhlIGV4aXN0aW5nIHVzZXIgZ3JvdXBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVVzZXJHcm91cEFybihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCB1c2VyR3JvdXBBcm46IHN0cmluZyk6IElVc2VyR3JvdXAge1xuICAgIHJldHVybiBVc2VyR3JvdXAuZnJvbVVzZXJHcm91cEF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7IHVzZXJHcm91cEFybiB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgdXNlciBncm91cCB1c2luZyBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgcGFyZW50IGNyZWF0aW5nIGNvbnN0cnVjdCAodXN1YWxseSBgdGhpc2ApXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgbmFtZVxuICAgKiBAcGFyYW0gYXR0cnMgQSBgVXNlckdyb3VwQXR0cmlidXRlc2Agb2JqZWN0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Vc2VyR3JvdXBBdHRyaWJ1dGVzKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGF0dHJzOiBVc2VyR3JvdXBBdHRyaWJ1dGVzKTogSVVzZXJHcm91cCB7XG4gICAgbGV0IHVzZXJHcm91cE5hbWU6IHN0cmluZztcbiAgICBsZXQgdXNlckdyb3VwQXJuOiBzdHJpbmc7XG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZihzY29wZSk7XG5cbiAgICBpZiAoYXR0cnMudXNlckdyb3VwQXJuICYmIGF0dHJzLnVzZXJHcm91cE5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobGl0YENvbmZsaWN0aW5nVXNlckdyb3VwSWRlbnRpZmllcnNgLCAnT25seSBvbmUgb2YgdXNlckdyb3VwQXJuIG9yIHVzZXJHcm91cE5hbWUgY2FuIGJlIHByb3ZpZGVkLicsIHNjb3BlKTtcbiAgICB9XG5cbiAgICBpZiAoYXR0cnMudXNlckdyb3VwQXJuKSB7XG4gICAgICB1c2VyR3JvdXBBcm4gPSBhdHRycy51c2VyR3JvdXBBcm47XG4gICAgICBjb25zdCBleHRyYWN0ZWRVc2VyR3JvdXBOYW1lID0gc3RhY2suc3BsaXRBcm4oYXR0cnMudXNlckdyb3VwQXJuLCBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSkucmVzb3VyY2VOYW1lO1xuICAgICAgaWYgKCFleHRyYWN0ZWRVc2VyR3JvdXBOYW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobGl0YEludmFsaWRVc2VyR3JvdXBBcm5gLCAnVW5hYmxlIHRvIGV4dHJhY3QgdXNlciBncm91cCBuYW1lIGZyb20gQVJOLicsIHNjb3BlKTtcbiAgICAgIH1cbiAgICAgIHVzZXJHcm91cE5hbWUgPSBleHRyYWN0ZWRVc2VyR3JvdXBOYW1lO1xuICAgIH0gZWxzZSBpZiAoYXR0cnMudXNlckdyb3VwTmFtZSkge1xuICAgICAgdXNlckdyb3VwTmFtZSA9IGF0dHJzLnVzZXJHcm91cE5hbWU7XG4gICAgICB1c2VyR3JvdXBBcm4gPSBzdGFjay5mb3JtYXRBcm4oe1xuICAgICAgICBzZXJ2aWNlOiAnZWxhc3RpY2FjaGUnLFxuICAgICAgICByZXNvdXJjZTogJ3VzZXJncm91cCcsXG4gICAgICAgIHJlc291cmNlTmFtZTogYXR0cnMudXNlckdyb3VwTmFtZSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGxpdGBNaXNzaW5nVXNlckdyb3VwSWRlbnRpZmllcmAsICdPbmUgb2YgdXNlckdyb3VwTmFtZSBvciB1c2VyR3JvdXBBcm4gaXMgcmVxdWlyZWQuJywgc2NvcGUpO1xuICAgIH1cblxuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFVzZXJHcm91cEJhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IGVuZ2luZT86IFVzZXJFbmdpbmU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdXNlckdyb3VwTmFtZTogc3RyaW5nO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHVzZXJHcm91cEFybjogc3RyaW5nO1xuXG4gICAgICBwdWJsaWMgZ2V0IHVzZXJzKCk6IElVc2VyW10gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gYXR0cnMudXNlcnMgPyBbLi4uYXR0cnMudXNlcnNdIDogdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBjb25zdHJ1Y3RvcihfdXNlckdyb3VwQXJuOiBzdHJpbmcsIF91c2VyR3JvdXBOYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAgICAgdGhpcy51c2VyR3JvdXBBcm4gPSBfdXNlckdyb3VwQXJuO1xuICAgICAgICB0aGlzLnVzZXJHcm91cE5hbWUgPSBfdXNlckdyb3VwTmFtZTtcbiAgICAgICAgdGhpcy5lbmdpbmUgPSBhdHRycy5lbmdpbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQodXNlckdyb3VwQXJuLCB1c2VyR3JvdXBOYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBlbmdpbmU/OiBVc2VyRW5naW5lO1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlckdyb3VwTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IF91c2VyczogSVVzZXJbXSA9IFtdO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgdXNlciBncm91cFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlckdyb3VwQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgc3RhdHVzIG9mIHRoZSB1c2VyIGdyb3VwXG4gICAqIENhbiBiZSAnY3JlYXRpbmcnLCAnYWN0aXZlJywgJ21vZGlmeWluZycsICdkZWxldGluZydcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJHcm91cFN0YXR1czogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IENmblVzZXJHcm91cDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVXNlckdyb3VwUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge30pO1xuXG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICB0aGlzLmVuZ2luZSA9IHByb3BzLmVuZ2luZSA/PyBVc2VyRW5naW5lLlZBTEtFWTtcbiAgICB0aGlzLnVzZXJHcm91cE5hbWUgPSBwcm9wcy51c2VyR3JvdXBOYW1lID8/IExhenkuc3RyaW5nKHtcbiAgICAgIC8vIEVsYXN0aUNhY2hlIGlzIGFsbG93aW5nIG9ubHkgdXBwZXJjYXNlIGFuZCBtYXggNDAgY2hhcmFjdGVycyBmb3IgdXNlciBncm91cCBpZFxuICAgICAgcHJvZHVjZTogKCkgPT4gTmFtZXMudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMsIHsgbWF4TGVuZ3RoOiA0MCB9KS50b0xvY2FsZUxvd2VyQ2FzZSgpLFxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLnVzZXJzKSB7XG4gICAgICB0aGlzLl91c2Vycy5wdXNoKC4uLnByb3BzLnVzZXJzKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IENmblVzZXJHcm91cCh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBlbmdpbmU6IHRoaXMuZW5naW5lLFxuICAgICAgdXNlckdyb3VwSWQ6IHRoaXMudXNlckdyb3VwTmFtZSxcbiAgICAgIHVzZXJJZHM6IExhenkubGlzdCh7XG4gICAgICAgIHByb2R1Y2U6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnZhbGlkYXRlVXNlcnMoKTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5fdXNlcnMubWFwKHVzZXIgPT4gdXNlci51c2VySWQpO1xuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICBpZiAocHJvcHMudXNlcnMpIHtcbiAgICAgIHByb3BzLnVzZXJzLmZvckVhY2godXNlciA9PiB0aGlzLmFkZFVzZXJEZXBlbmRlbmN5KHVzZXIpKTtcbiAgICB9XG5cbiAgICB0aGlzLnVzZXJHcm91cEFybiA9IHRoaXMucmVzb3VyY2UuYXR0ckFybjtcbiAgICB0aGlzLnVzZXJHcm91cFN0YXR1cyA9IHRoaXMucmVzb3VyY2UuYXR0clN0YXR1cztcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBFTEFTVElDQUNIRV9VU0VSR1JPVVBfU1lNQk9MLCB7IHZhbHVlOiB0cnVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIENsb3VkRm9ybWF0aW9uIGRlcGVuZGVuY3kgb24gdGhlIHVzZXIgcmVzb3VyY2UgdG8gZW5zdXJlIHByb3BlciBjcmVhdGlvbiBvcmRlci5cbiAgICovXG4gIHByaXZhdGUgYWRkVXNlckRlcGVuZGVuY3kodXNlcjogSVVzZXIpOiB2b2lkIHtcbiAgICB0aGlzLnJlc291cmNlLm5vZGUuYWRkRGVwZW5kZW5jeSh1c2VyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcnJheSBvZiB1c2VycyBpbiB0aGUgdXNlciBncm91cFxuICAgKlxuICAgKiBEbyBub3QgcHVzaCBkaXJlY3RseSB0byB0aGlzIGFycmF5LlxuICAgKiBVc2UgYWRkVXNlcigpIGluc3RlYWQgdG8gZW5zdXJlIHByb3BlciB2YWxpZGF0aW9uIGFuZCBkZXBlbmRlbmN5IG1hbmFnZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHVzZXJzKCk6IElVc2VyW10gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl91c2VycztcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdXNlcnMgaW4gdGhlIHVzZXIgZ3JvdXAgZm9yIGR1cGxpY2F0ZSB1c2VybmFtZXMgYW5kIFJlZGlzLXNwZWNpZmljIHJlcXVpcmVtZW50cy5cbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVVc2VycygpOiB2b2lkIHtcbiAgICBjb25zdCB1c2VyTmFtZXMgPSB0aGlzLl91c2Vycy5tYXAodXNlciA9PiB1c2VyLnVzZXJOYW1lKTtcbiAgICBjb25zdCBkdXBsaWNhdGVzID0gdXNlck5hbWVzLmZpbHRlcigobmFtZSwgaW5kZXgpID0+IHVzZXJOYW1lcy5pbmRleE9mKG5hbWUpICE9PSBpbmRleCk7XG4gICAgaWYgKGR1cGxpY2F0ZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihsaXRgRHVwbGljYXRlVXNlck5hbWVgLCAnVXNlciBncm91cCBjYW5ub3QgaGF2ZSB1c2VycyB3aXRoIHRoZSBzYW1lIHVzZXIgbmFtZS4nLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5lbmdpbmUgPT09IFVzZXJFbmdpbmUuUkVESVMpIHtcbiAgICAgIHRoaXMuX3VzZXJzLmZvckVhY2godXNlciA9PiB7XG4gICAgICAgIGlmICh1c2VyLmVuZ2luZSAhPT0gVXNlckVuZ2luZS5SRURJUykge1xuICAgICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobGl0YFJlZGlzVXNlckdyb3VwRW5naW5lTWlzbWF0Y2hgLCAnUmVkaXMgdXNlciBncm91cCBjYW4gb25seSBjb250YWluIFJlZGlzIHVzZXJzLicsIHRoaXMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGhhc0RlZmF1bHRVc2VyID0gdGhpcy5fdXNlcnMuc29tZSh1c2VyID0+IHVzZXIudXNlck5hbWUgPT09ICdkZWZhdWx0Jyk7XG4gICAgICBpZiAoIWhhc0RlZmF1bHRVc2VyKSB7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobGl0YFJlZGlzVXNlckdyb3VwTWlzc2luZ0RlZmF1bHRVc2VyYCwgJ1JlZGlzIHVzZXIgZ3JvdXBzIG5lZWQgdG8gY29udGFpbiBhIHVzZXIgd2l0aCB0aGUgdXNlciBuYW1lIFwiZGVmYXVsdFwiLicsIHRoaXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSB1c2VyIHRvIHRoaXMgdXNlciBncm91cFxuICAgKlxuICAgKiBAcGFyYW0gdXNlciBUaGUgdXNlciB0byBhZGQgdG8gdGhlIGdyb3VwXG4gICAqL1xuICBATWV0aG9kTWV0YWRhdGEoKVxuICBwdWJsaWMgYWRkVXNlcih1c2VyOiBJVXNlcik6IHZvaWQge1xuICAgIHRoaXMuX3VzZXJzLnB1c2godXNlcik7XG4gICAgdGhpcy5hZGRVc2VyRGVwZW5kZW5jeSh1c2VyKTtcbiAgfVxufVxuIl19
296
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInVzZXItZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUVBQTJEO0FBRTNELDJDQUE0SDtBQUU1SCw0RUFBbUY7QUFDbkYsOEVBQThGO0FBQzlGLDBFQUEwRTtBQUUxRSxxQ0FBc0M7QUFHdEMsTUFBTSw0QkFBNEIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7QUEwRHRGOztHQUVHO0FBQ0gsTUFBc0IsYUFBYyxTQUFRLGVBQVE7O0lBb0JsRDs7OztPQUlHO0lBQ0ksT0FBTyxDQUFDLEtBQVk7Ozs7Ozs7Ozs7UUFDekIsTUFBTSxJQUFJLDhCQUF1QixDQUFDLElBQUEsc0JBQUcsRUFBQSwrQkFBK0IsRUFBRSxtR0FBbUcsQ0FBQyxDQUFDO0tBQzVLOztBQTNCSCxzQ0E0QkM7QUFvQ0Q7Ozs7R0FJRztJQUdVLFNBQVM7NEJBRnJCLG1DQUFnQixFQUNoQixvQ0FBa0I7Ozs7c0JBQ1ksYUFBYTs7O3lCQUFyQixTQUFRLFdBQWE7Ozs7bUNBMkx6QyxJQUFBLGtDQUFjLEdBQUU7WUFDakIsd0tBQU8sT0FBTyw2REFHYjtZQS9MSCw2S0FnTUM7Ozs7O1FBL0xDOztXQUVHO1FBQ0ksTUFBTSxDQUFVLHFCQUFxQixHQUFXLHVDQUF1QyxDQUFDO1FBRS9GOztXQUVHO1FBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFNO1lBQzlCLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxJQUFJLDRCQUE0QixJQUFJLENBQUMsQ0FBQztTQUNuRjtRQUVEOzs7Ozs7V0FNRztRQUNJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxhQUFxQjtZQUNqRixPQUFPLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFL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QUcsRUFBQSxtQkFBbUIsRUFBRSx1REFBdUQsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNuSCxDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLG1CQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3JDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ25CLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxtQkFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUNyQyxNQUFNLElBQUksc0JBQWUsQ0FBQyxJQUFBLHNCQUFHLEVBQUEsOEJBQThCLEVBQUUsZ0RBQWdELEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ3ZILENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDO2dCQUM3RSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3BCLE1BQU0sSUFBSSxzQkFBZSxDQUFDLElBQUEsc0JBQUcsRUFBQSxrQ0FBa0MsRUFBRSx3RUFBd0UsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDbkosQ0FBQztZQUNILENBQUM7U0FDRjtRQUVEOzs7O1dBSUc7UUFFSSxPQUFPLENBQUMsSUFBVzs7Ozs7Ozs7OztZQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDOUI7O1lBL0xVLHVEQUFTOzs7OztBQUFULDhCQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuVXNlckdyb3VwIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVsYXN0aWNhY2hlJztcbmltcG9ydCB0eXBlIHsgSVJlc291cmNlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBSZXNvdXJjZSwgQXJuRm9ybWF0LCBTdGFjaywgTGF6eSwgVG9rZW4sIFZhbGlkYXRpb25FcnJvciwgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IsIE5hbWVzIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IElBcnJheUJveCB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2hlbHBlcnMtaW50ZXJuYWwnO1xuaW1wb3J0IHsgQm94LCBsaXQsIG5vQm94U3RhY2tUcmFjZXMgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhLCBNZXRob2RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgVXNlckVuZ2luZSB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB0eXBlIHsgSVVzZXIgfSBmcm9tICcuL3VzZXItYmFzZSc7XG5cbmNvbnN0IEVMQVNUSUNBQ0hFX1VTRVJHUk9VUF9TWU1CT0wgPSBTeW1ib2wuZm9yKCdAYXdzLWNkay9hd3MtZWxhc3RpY2FjaGUuVXNlckdyb3VwJyk7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYW4gRWxhc3RpQ2FjaGUgVXNlckdyb3VwXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckdyb3VwUHJvcHMge1xuICAvKipcbiAgICogRW5mb3JjZXMgYSBwYXJ0aWN1bGFyIHBoeXNpY2FsIHVzZXIgZ3JvdXAgbmFtZS5cbiAgICogQGRlZmF1bHQgPGdlbmVyYXRlZD5cbiAgICovXG4gIHJlYWRvbmx5IHVzZXJHcm91cE5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZW5naW5lIHR5cGUgZm9yIHRoZSB1c2VyIGdyb3VwXG4gICAqIEVudW0gb3B0aW9uczogVXNlckVuZ2luZS5WQUxLRVksIFVzZXJFbmdpbmUuUkVESVNcbiAgICpcbiAgICogQGRlZmF1bHQgVXNlckVuZ2luZS5WQUxLRVlcbiAgICovXG4gIHJlYWRvbmx5IGVuZ2luZT86IFVzZXJFbmdpbmU7XG4gIC8qKlxuICAgKiBMaXN0IG9mIHVzZXJzIGluc2lkZSB0aGUgdXNlciBncm91cFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHVzZXJzXG4gICAqL1xuICByZWFkb25seSB1c2Vycz86IElVc2VyW107XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBFbGFzdGlDYWNoZSBVc2VyR3JvdXBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVXNlckdyb3VwIGV4dGVuZHMgSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB1c2VyIGdyb3VwXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJHcm91cE5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBlbmdpbmUgdHlwZSBmb3IgdGhlIHVzZXIgZ3JvdXBcbiAgICovXG4gIHJlYWRvbmx5IGVuZ2luZT86IFVzZXJFbmdpbmU7XG4gIC8qKlxuICAgKiBMaXN0IG9mIHVzZXJzIGluIHRoZSB1c2VyIGdyb3VwXG4gICAqL1xuICByZWFkb25seSB1c2Vycz86IElVc2VyW107XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSB1c2VyIGdyb3VwXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJHcm91cEFybjogc3RyaW5nO1xuICAvKipcbiAgICogQWRkIGEgdXNlciB0byB0aGlzIHVzZXIgZ3JvdXBcbiAgICpcbiAgICogQHBhcmFtIHVzZXIgVGhlIHVzZXIgdG8gYWRkXG4gICAqL1xuICBhZGRVc2VyKHVzZXI6IElVc2VyKTogdm9pZDtcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBVc2VyR3JvdXAgY29uc3RydWN0c1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVXNlckdyb3VwQmFzZSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVVzZXJHcm91cCB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdXNlciBncm91cFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdXNlckdyb3VwTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGVuZ2luZSB0eXBlIGZvciB0aGUgdXNlciBncm91cFxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGVuZ2luZT86IFVzZXJFbmdpbmU7XG4gIC8qKlxuICAgKiBMaXN0IG9mIHVzZXJzIGluIHRoZSB1c2VyIGdyb3VwXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdXNlcnM/OiBJVXNlcltdO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgdXNlciBncm91cFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdXNlckdyb3VwQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBZGQgYSB1c2VyIHRvIHRoaXMgdXNlciBncm91cFxuICAgKlxuICAgKiBAcGFyYW0gX3VzZXIgVGhlIHVzZXIgdG8gYWRkXG4gICAqL1xuICBwdWJsaWMgYWRkVXNlcihfdXNlcjogSVVzZXIpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IobGl0YEltcG9ydGVkVXNlckdyb3VwTW9kaWZpY2F0aW9uYCwgJ0Nhbm5vdCBhZGQgdXNlcnMgdG8gYW4gaW1wb3J0ZWQgVXNlckdyb3VwLiBPbmx5IFVzZXJHcm91cHMgY3JlYXRlZCBpbiB0aGlzIHN0YWNrIGNhbiBiZSBtb2RpZmllZC4nKTtcbiAgfVxufVxuXG4vKipcbiAqIEF0dHJpYnV0ZXMgdGhhdCBjYW4gYmUgc3BlY2lmaWVkIHdoZW4gaW1wb3J0aW5nIGEgVXNlckdyb3VwXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckdyb3VwQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdXNlciBncm91cFxuICAgKlxuICAgKiBPbmUgb2YgYHVzZXJHcm91cE5hbWVgIG9yIGB1c2VyR3JvdXBBcm5gIGlzIHJlcXVpcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlcml2ZWQgZnJvbSB1c2VyR3JvdXBBcm5cbiAgICovXG4gIHJlYWRvbmx5IHVzZXJHcm91cE5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZW5naW5lIHR5cGUgZm9yIHRoZSB1c2VyIGdyb3VwXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZW5naW5lIHR5cGUgaXMgdW5rbm93blxuICAgKi9cbiAgcmVhZG9ubHkgZW5naW5lPzogVXNlckVuZ2luZTtcbiAgLyoqXG4gICAqIExpc3Qgb2YgdXNlcnMgaW4gdGhlIHVzZXIgZ3JvdXBcbiAgICpcbiAgICogQGRlZmF1bHQgLSB1c2VycyBhcmUgdW5rbm93blxuICAgKi9cbiAgcmVhZG9ubHkgdXNlcnM/OiBJVXNlcltdO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgdXNlciBncm91cFxuICAgKlxuICAgKiBPbmUgb2YgYHVzZXJHcm91cE5hbWVgIG9yIGB1c2VyR3JvdXBBcm5gIGlzIHJlcXVpcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlcml2ZWQgZnJvbSB1c2VyR3JvdXBOYW1lXG4gICAqL1xuICByZWFkb25seSB1c2VyR3JvdXBBcm4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQW4gRWxhc3RpQ2FjaGUgVXNlckdyb3VwXG4gKlxuICogQHJlc291cmNlIEFXUzo6RWxhc3RpQ2FjaGU6OlVzZXJHcm91cFxuICovXG5Abm9Cb3hTdGFja1RyYWNlc1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIFVzZXJHcm91cCBleHRlbmRzIFVzZXJHcm91cEJhc2Uge1xuICAvKipcbiAgICogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ2F3cy1jZGstbGliLmF3cy1lbGFzdGljYWNoZS5Vc2VyR3JvdXAnO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGEgYFVzZXJHcm91cGBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNVc2VyR3JvdXAoeDogYW55KTogeCBpcyBVc2VyR3JvdXAge1xuICAgIHJldHVybiB4ICE9PSBudWxsICYmIHR5cGVvZiAoeCkgPT09ICdvYmplY3QnICYmIEVMQVNUSUNBQ0hFX1VTRVJHUk9VUF9TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgdXNlciBncm91cCBieSBuYW1lXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgcGFyZW50IGNyZWF0aW5nIGNvbnN0cnVjdCAodXN1YWxseSBgdGhpc2ApXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgbmFtZVxuICAgKiBAcGFyYW0gdXNlckdyb3VwTmFtZSBUaGUgbmFtZSBvZiB0aGUgZXhpc3RpbmcgdXNlciBncm91cFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tVXNlckdyb3VwTmFtZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCB1c2VyR3JvdXBOYW1lOiBzdHJpbmcpOiBJVXNlckdyb3VwIHtcbiAgICByZXR1cm4gVXNlckdyb3VwLmZyb21Vc2VyR3JvdXBBdHRyaWJ1dGVzKHNjb3BlLCBpZCwgeyB1c2VyR3JvdXBOYW1lIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyB1c2VyIGdyb3VwIGJ5IEFSTlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCdzIG5hbWVcbiAgICogQHBhcmFtIHVzZXJHcm91cEFybiBUaGUgQVJOIG9mIHRoZSBleGlzdGluZyB1c2VyIGdyb3VwXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Vc2VyR3JvdXBBcm4oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgdXNlckdyb3VwQXJuOiBzdHJpbmcpOiBJVXNlckdyb3VwIHtcbiAgICByZXR1cm4gVXNlckdyb3VwLmZyb21Vc2VyR3JvdXBBdHRyaWJ1dGVzKHNjb3BlLCBpZCwgeyB1c2VyR3JvdXBBcm4gfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIHVzZXIgZ3JvdXAgdXNpbmcgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCdzIG5hbWVcbiAgICogQHBhcmFtIGF0dHJzIEEgYFVzZXJHcm91cEF0dHJpYnV0ZXNgIG9iamVjdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tVXNlckdyb3VwQXR0cmlidXRlcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhdHRyczogVXNlckdyb3VwQXR0cmlidXRlcyk6IElVc2VyR3JvdXAge1xuICAgIGxldCB1c2VyR3JvdXBOYW1lOiBzdHJpbmc7XG4gICAgbGV0IHVzZXJHcm91cEFybjogc3RyaW5nO1xuICAgIGNvbnN0IHN0YWNrID0gU3RhY2sub2Yoc2NvcGUpO1xuXG4gICAgaWYgKGF0dHJzLnVzZXJHcm91cEFybiAmJiBhdHRycy51c2VyR3JvdXBOYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGxpdGBDb25mbGljdGluZ1VzZXJHcm91cElkZW50aWZpZXJzYCwgJ09ubHkgb25lIG9mIHVzZXJHcm91cEFybiBvciB1c2VyR3JvdXBOYW1lIGNhbiBiZSBwcm92aWRlZC4nLCBzY29wZSk7XG4gICAgfVxuXG4gICAgaWYgKGF0dHJzLnVzZXJHcm91cEFybikge1xuICAgICAgdXNlckdyb3VwQXJuID0gYXR0cnMudXNlckdyb3VwQXJuO1xuICAgICAgY29uc3QgZXh0cmFjdGVkVXNlckdyb3VwTmFtZSA9IHN0YWNrLnNwbGl0QXJuKGF0dHJzLnVzZXJHcm91cEFybiwgQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUpLnJlc291cmNlTmFtZTtcbiAgICAgIGlmICghZXh0cmFjdGVkVXNlckdyb3VwTmFtZSkge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGxpdGBJbnZhbGlkVXNlckdyb3VwQXJuYCwgJ1VuYWJsZSB0byBleHRyYWN0IHVzZXIgZ3JvdXAgbmFtZSBmcm9tIEFSTi4nLCBzY29wZSk7XG4gICAgICB9XG4gICAgICB1c2VyR3JvdXBOYW1lID0gZXh0cmFjdGVkVXNlckdyb3VwTmFtZTtcbiAgICB9IGVsc2UgaWYgKGF0dHJzLnVzZXJHcm91cE5hbWUpIHtcbiAgICAgIHVzZXJHcm91cE5hbWUgPSBhdHRycy51c2VyR3JvdXBOYW1lO1xuICAgICAgdXNlckdyb3VwQXJuID0gc3RhY2suZm9ybWF0QXJuKHtcbiAgICAgICAgc2VydmljZTogJ2VsYXN0aWNhY2hlJyxcbiAgICAgICAgcmVzb3VyY2U6ICd1c2VyZ3JvdXAnLFxuICAgICAgICByZXNvdXJjZU5hbWU6IGF0dHJzLnVzZXJHcm91cE5hbWUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihsaXRgTWlzc2luZ1VzZXJHcm91cElkZW50aWZpZXJgLCAnT25lIG9mIHVzZXJHcm91cE5hbWUgb3IgdXNlckdyb3VwQXJuIGlzIHJlcXVpcmVkLicsIHNjb3BlKTtcbiAgICB9XG5cbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBVc2VyR3JvdXBCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBlbmdpbmU/OiBVc2VyRW5naW5lO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHVzZXJHcm91cE5hbWU6IHN0cmluZztcbiAgICAgIHB1YmxpYyByZWFkb25seSB1c2VyR3JvdXBBcm46IHN0cmluZztcblxuICAgICAgcHVibGljIGdldCB1c2VycygpOiBJVXNlcltdIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIGF0dHJzLnVzZXJzID8gWy4uLmF0dHJzLnVzZXJzXSA6IHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgY29uc3RydWN0b3IoX3VzZXJHcm91cEFybjogc3RyaW5nLCBfdXNlckdyb3VwTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgICAgIHRoaXMudXNlckdyb3VwQXJuID0gX3VzZXJHcm91cEFybjtcbiAgICAgICAgdGhpcy51c2VyR3JvdXBOYW1lID0gX3VzZXJHcm91cE5hbWU7XG4gICAgICAgIHRoaXMuZW5naW5lID0gYXR0cnMuZW5naW5lO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHVzZXJHcm91cEFybiwgdXNlckdyb3VwTmFtZSk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgZW5naW5lPzogVXNlckVuZ2luZTtcbiAgcHVibGljIHJlYWRvbmx5IHVzZXJHcm91cE5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBfdXNlcnM6IElBcnJheUJveDxJVXNlcj47XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSB1c2VyIGdyb3VwXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VyR3JvdXBBcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzdGF0dXMgb2YgdGhlIHVzZXIgZ3JvdXBcbiAgICogQ2FuIGJlICdjcmVhdGluZycsICdhY3RpdmUnLCAnbW9kaWZ5aW5nJywgJ2RlbGV0aW5nJ1xuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlckdyb3VwU3RhdHVzOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZTogQ2ZuVXNlckdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBVc2VyR3JvdXBQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7fSk7XG5cbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIHRoaXMuZW5naW5lID0gcHJvcHMuZW5naW5lID8/IFVzZXJFbmdpbmUuVkFMS0VZO1xuICAgIHRoaXMudXNlckdyb3VwTmFtZSA9IHByb3BzLnVzZXJHcm91cE5hbWUgPz8gTGF6eS5zdHJpbmcoe1xuICAgICAgLy8gRWxhc3RpQ2FjaGUgaXMgYWxsb3dpbmcgb25seSB1cHBlcmNhc2UgYW5kIG1heCA0MCBjaGFyYWN0ZXJzIGZvciB1c2VyIGdyb3VwIGlkXG4gICAgICBwcm9kdWNlOiAoKSA9PiBOYW1lcy51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywgeyBtYXhMZW5ndGg6IDQwIH0pLnRvTG9jYWxlTG93ZXJDYXNlKCksXG4gICAgfSk7XG5cbiAgICB0aGlzLl91c2VycyA9IEJveC5mcm9tQXJyYXkocHJvcHMudXNlcnMgPz8gW10sIHsgb21pdEVtcHR5OiBmYWxzZSB9KTtcblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgQ2ZuVXNlckdyb3VwKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGVuZ2luZTogdGhpcy5lbmdpbmUsXG4gICAgICB1c2VyR3JvdXBJZDogdGhpcy51c2VyR3JvdXBOYW1lLFxuICAgICAgdXNlcklkczogVG9rZW4uYXNMaXN0KHRoaXMuX3VzZXJzLmRlcml2ZSh1c2VycyA9PiB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVVc2VycygpO1xuICAgICAgICByZXR1cm4gdXNlcnMubWFwKHVzZXIgPT4gdXNlci51c2VySWQpO1xuICAgICAgfSkpLFxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLnVzZXJzKSB7XG4gICAgICBwcm9wcy51c2Vycy5mb3JFYWNoKHVzZXIgPT4gdGhpcy5hZGRVc2VyRGVwZW5kZW5jeSh1c2VyKSk7XG4gICAgfVxuXG4gICAgdGhpcy51c2VyR3JvdXBBcm4gPSB0aGlzLnJlc291cmNlLmF0dHJBcm47XG4gICAgdGhpcy51c2VyR3JvdXBTdGF0dXMgPSB0aGlzLnJlc291cmNlLmF0dHJTdGF0dXM7XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgRUxBU1RJQ0FDSEVfVVNFUkdST1VQX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBDbG91ZEZvcm1hdGlvbiBkZXBlbmRlbmN5IG9uIHRoZSB1c2VyIHJlc291cmNlIHRvIGVuc3VyZSBwcm9wZXIgY3JlYXRpb24gb3JkZXIuXG4gICAqL1xuICBwcml2YXRlIGFkZFVzZXJEZXBlbmRlbmN5KHVzZXI6IElVc2VyKTogdm9pZCB7XG4gICAgdGhpcy5yZXNvdXJjZS5ub2RlLmFkZERlcGVuZGVuY3kodXNlcik7XG4gIH1cblxuICAvKipcbiAgICogQXJyYXkgb2YgdXNlcnMgaW4gdGhlIHVzZXIgZ3JvdXBcbiAgICpcbiAgICogRG8gbm90IHB1c2ggZGlyZWN0bHkgdG8gdGhpcyBhcnJheS5cbiAgICogVXNlIGFkZFVzZXIoKSBpbnN0ZWFkIHRvIGVuc3VyZSBwcm9wZXIgdmFsaWRhdGlvbiBhbmQgZGVwZW5kZW5jeSBtYW5hZ2VtZW50LlxuICAgKi9cbiAgcHVibGljIGdldCB1c2VycygpOiBJVXNlcltdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fdXNlcnMuZ2V0TXV0YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB1c2VycyBpbiB0aGUgdXNlciBncm91cCBmb3IgZHVwbGljYXRlIHVzZXJuYW1lcyBhbmQgUmVkaXMtc3BlY2lmaWMgcmVxdWlyZW1lbnRzLlxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZVVzZXJzKCk6IHZvaWQge1xuICAgIGNvbnN0IHVzZXJzID0gdGhpcy5fdXNlcnMuZ2V0KCk7XG4gICAgY29uc3QgdXNlck5hbWVzID0gdXNlcnMubWFwKHVzZXIgPT4gdXNlci51c2VyTmFtZSk7XG4gICAgY29uc3QgZHVwbGljYXRlcyA9IHVzZXJOYW1lcy5maWx0ZXIoKG5hbWUsIGluZGV4KSA9PiB1c2VyTmFtZXMuaW5kZXhPZihuYW1lKSAhPT0gaW5kZXgpO1xuICAgIGlmIChkdXBsaWNhdGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobGl0YER1cGxpY2F0ZVVzZXJOYW1lYCwgJ1VzZXIgZ3JvdXAgY2Fubm90IGhhdmUgdXNlcnMgd2l0aCB0aGUgc2FtZSB1c2VyIG5hbWUuJywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZW5naW5lID09PSBVc2VyRW5naW5lLlJFRElTKSB7XG4gICAgICB1c2Vycy5mb3JFYWNoKHVzZXIgPT4ge1xuICAgICAgICBpZiAodXNlci5lbmdpbmUgIT09IFVzZXJFbmdpbmUuUkVESVMpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGxpdGBSZWRpc1VzZXJHcm91cEVuZ2luZU1pc21hdGNoYCwgJ1JlZGlzIHVzZXIgZ3JvdXAgY2FuIG9ubHkgY29udGFpbiBSZWRpcyB1c2Vycy4nLCB0aGlzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBjb25zdCBoYXNEZWZhdWx0VXNlciA9IHRoaXMuX3VzZXJzLnNvbWUodXNlciA9PiB1c2VyLnVzZXJOYW1lID09PSAnZGVmYXVsdCcpO1xuICAgICAgaWYgKCFoYXNEZWZhdWx0VXNlcikge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGxpdGBSZWRpc1VzZXJHcm91cE1pc3NpbmdEZWZhdWx0VXNlcmAsICdSZWRpcyB1c2VyIGdyb3VwcyBuZWVkIHRvIGNvbnRhaW4gYSB1c2VyIHdpdGggdGhlIHVzZXIgbmFtZSBcImRlZmF1bHRcIi4nLCB0aGlzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgdXNlciB0byB0aGlzIHVzZXIgZ3JvdXBcbiAgICpcbiAgICogQHBhcmFtIHVzZXIgVGhlIHVzZXIgdG8gYWRkIHRvIHRoZSBncm91cFxuICAgKi9cbiAgQE1ldGhvZE1ldGFkYXRhKClcbiAgcHVibGljIGFkZFVzZXIodXNlcjogSVVzZXIpOiB2b2lkIHtcbiAgICB0aGlzLl91c2Vycy5wdXNoKHVzZXIpO1xuICAgIHRoaXMuYWRkVXNlckRlcGVuZGVuY3kodXNlcik7XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-cdk/aws-elasticache-alpha",
3
- "version": "2.253.1-alpha.0",
3
+ "version": "2.255.0-alpha.0",
4
4
  "private": false,
5
5
  "description": "The CDK Construct Library for AWS::ElastiCache",
6
6
  "main": "lib/index.js",
@@ -85,18 +85,18 @@
85
85
  },
86
86
  "license": "Apache-2.0",
87
87
  "devDependencies": {
88
- "@aws-cdk/cdk-build-tools": "2.253.1-alpha.0",
88
+ "@aws-cdk/cdk-build-tools": "2.255.0-alpha.0",
89
89
  "@aws-cdk/integ-runner": "^2.197.1",
90
- "@aws-cdk/pkglint": "2.253.1-alpha.0",
90
+ "@aws-cdk/pkglint": "2.255.0-alpha.0",
91
91
  "@types/jest": "^29.5.14",
92
92
  "jest": "^29.7.0",
93
- "aws-cdk-lib": "2.253.1",
93
+ "aws-cdk-lib": "2.255.0",
94
94
  "constructs": "^10.5.0",
95
- "@aws-cdk/integ-tests-alpha": "2.253.1-alpha.0"
95
+ "@aws-cdk/integ-tests-alpha": "2.255.0-alpha.0"
96
96
  },
97
97
  "dependencies": {},
98
98
  "peerDependencies": {
99
- "aws-cdk-lib": "^2.253.1",
99
+ "aws-cdk-lib": "^2.255.0",
100
100
  "constructs": "^10.5.0"
101
101
  },
102
102
  "engines": {