@aws-cdk/aws-gamelift-alpha 2.234.0-alpha.0 → 2.235.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 +55 -55
- package/.jsii.tabl.json.gz +0 -0
- package/awslint.json +32 -1
- package/lib/alias.js +2 -2
- package/lib/build-fleet.js +1 -1
- package/lib/build.js +2 -2
- package/lib/content.js +3 -3
- package/lib/fleet-base.d.ts +3 -0
- package/lib/fleet-base.js +5 -2
- package/lib/game-server-group.d.ts +3 -0
- package/lib/game-server-group.js +6 -3
- package/lib/game-session-queue.js +2 -2
- package/lib/ingress-rule.js +2 -2
- package/lib/matchmaking-configuration.js +1 -1
- package/lib/matchmaking-ruleset-body.js +1 -1
- package/lib/matchmaking-ruleset.js +2 -2
- package/lib/queued-matchmaking-configuration.js +1 -1
- package/lib/script.js +2 -2
- package/lib/standalone-matchmaking-configuration.js +1 -1
- package/package.json +7 -7
package/.jsii
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"url": "https://aws.amazon.com"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"aws-cdk-lib": "^2.
|
|
11
|
+
"aws-cdk-lib": "^2.235.0",
|
|
12
12
|
"constructs": "^10.0.0"
|
|
13
13
|
},
|
|
14
14
|
"dependencyClosure": {
|
|
@@ -10661,7 +10661,7 @@
|
|
|
10661
10661
|
},
|
|
10662
10662
|
"locationInModule": {
|
|
10663
10663
|
"filename": "lib/fleet-base.ts",
|
|
10664
|
-
"line":
|
|
10664
|
+
"line": 574
|
|
10665
10665
|
},
|
|
10666
10666
|
"name": "addInternalLocation",
|
|
10667
10667
|
"parameters": [
|
|
@@ -10683,7 +10683,7 @@
|
|
|
10683
10683
|
},
|
|
10684
10684
|
"locationInModule": {
|
|
10685
10685
|
"filename": "lib/fleet-base.ts",
|
|
10686
|
-
"line":
|
|
10686
|
+
"line": 558
|
|
10687
10687
|
},
|
|
10688
10688
|
"name": "addLocation",
|
|
10689
10689
|
"parameters": [
|
|
@@ -10722,11 +10722,11 @@
|
|
|
10722
10722
|
{
|
|
10723
10723
|
"docs": {
|
|
10724
10724
|
"stability": "experimental",
|
|
10725
|
-
"summary": "
|
|
10725
|
+
"summary": "[disable-awslint:no-grants]."
|
|
10726
10726
|
},
|
|
10727
10727
|
"locationInModule": {
|
|
10728
10728
|
"filename": "lib/fleet-base.ts",
|
|
10729
|
-
"line":
|
|
10729
|
+
"line": 492
|
|
10730
10730
|
},
|
|
10731
10731
|
"name": "grant",
|
|
10732
10732
|
"overrides": "@aws-cdk/aws-gamelift-alpha.IFleet",
|
|
@@ -10759,7 +10759,7 @@
|
|
|
10759
10759
|
},
|
|
10760
10760
|
"locationInModule": {
|
|
10761
10761
|
"filename": "lib/fleet-base.ts",
|
|
10762
|
-
"line":
|
|
10762
|
+
"line": 500
|
|
10763
10763
|
},
|
|
10764
10764
|
"name": "metric",
|
|
10765
10765
|
"overrides": "@aws-cdk/aws-gamelift-alpha.IFleet",
|
|
@@ -10792,7 +10792,7 @@
|
|
|
10792
10792
|
},
|
|
10793
10793
|
"locationInModule": {
|
|
10794
10794
|
"filename": "lib/fleet-base.ts",
|
|
10795
|
-
"line":
|
|
10795
|
+
"line": 511
|
|
10796
10796
|
},
|
|
10797
10797
|
"name": "metricActiveInstances",
|
|
10798
10798
|
"overrides": "@aws-cdk/aws-gamelift-alpha.IFleet",
|
|
@@ -10819,7 +10819,7 @@
|
|
|
10819
10819
|
},
|
|
10820
10820
|
"locationInModule": {
|
|
10821
10821
|
"filename": "lib/fleet-base.ts",
|
|
10822
|
-
"line":
|
|
10822
|
+
"line": 519
|
|
10823
10823
|
},
|
|
10824
10824
|
"name": "metricDesiredInstances",
|
|
10825
10825
|
"overrides": "@aws-cdk/aws-gamelift-alpha.IFleet",
|
|
@@ -10846,7 +10846,7 @@
|
|
|
10846
10846
|
},
|
|
10847
10847
|
"locationInModule": {
|
|
10848
10848
|
"filename": "lib/fleet-base.ts",
|
|
10849
|
-
"line":
|
|
10849
|
+
"line": 523
|
|
10850
10850
|
},
|
|
10851
10851
|
"name": "metricIdleInstances",
|
|
10852
10852
|
"overrides": "@aws-cdk/aws-gamelift-alpha.IFleet",
|
|
@@ -10872,7 +10872,7 @@
|
|
|
10872
10872
|
},
|
|
10873
10873
|
"locationInModule": {
|
|
10874
10874
|
"filename": "lib/fleet-base.ts",
|
|
10875
|
-
"line":
|
|
10875
|
+
"line": 527
|
|
10876
10876
|
},
|
|
10877
10877
|
"name": "metricInstanceInterruptions",
|
|
10878
10878
|
"overrides": "@aws-cdk/aws-gamelift-alpha.IFleet",
|
|
@@ -10899,7 +10899,7 @@
|
|
|
10899
10899
|
},
|
|
10900
10900
|
"locationInModule": {
|
|
10901
10901
|
"filename": "lib/fleet-base.ts",
|
|
10902
|
-
"line":
|
|
10902
|
+
"line": 531
|
|
10903
10903
|
},
|
|
10904
10904
|
"name": "metricMaxInstances",
|
|
10905
10905
|
"overrides": "@aws-cdk/aws-gamelift-alpha.IFleet",
|
|
@@ -10926,7 +10926,7 @@
|
|
|
10926
10926
|
},
|
|
10927
10927
|
"locationInModule": {
|
|
10928
10928
|
"filename": "lib/fleet-base.ts",
|
|
10929
|
-
"line":
|
|
10929
|
+
"line": 535
|
|
10930
10930
|
},
|
|
10931
10931
|
"name": "metricMinInstances",
|
|
10932
10932
|
"overrides": "@aws-cdk/aws-gamelift-alpha.IFleet",
|
|
@@ -10953,7 +10953,7 @@
|
|
|
10953
10953
|
},
|
|
10954
10954
|
"locationInModule": {
|
|
10955
10955
|
"filename": "lib/fleet-base.ts",
|
|
10956
|
-
"line":
|
|
10956
|
+
"line": 515
|
|
10957
10957
|
},
|
|
10958
10958
|
"name": "metricPercentIdleInstances",
|
|
10959
10959
|
"overrides": "@aws-cdk/aws-gamelift-alpha.IFleet",
|
|
@@ -10978,7 +10978,7 @@
|
|
|
10978
10978
|
},
|
|
10979
10979
|
"locationInModule": {
|
|
10980
10980
|
"filename": "lib/fleet-base.ts",
|
|
10981
|
-
"line":
|
|
10981
|
+
"line": 612
|
|
10982
10982
|
},
|
|
10983
10983
|
"name": "parseLocationCapacity",
|
|
10984
10984
|
"parameters": [
|
|
@@ -11004,7 +11004,7 @@
|
|
|
11004
11004
|
},
|
|
11005
11005
|
"locationInModule": {
|
|
11006
11006
|
"filename": "lib/fleet-base.ts",
|
|
11007
|
-
"line":
|
|
11007
|
+
"line": 595
|
|
11008
11008
|
},
|
|
11009
11009
|
"name": "parseLocations",
|
|
11010
11010
|
"protected": true,
|
|
@@ -11026,7 +11026,7 @@
|
|
|
11026
11026
|
},
|
|
11027
11027
|
"locationInModule": {
|
|
11028
11028
|
"filename": "lib/fleet-base.ts",
|
|
11029
|
-
"line":
|
|
11029
|
+
"line": 582
|
|
11030
11030
|
},
|
|
11031
11031
|
"name": "parseResourceCreationLimitPolicy",
|
|
11032
11032
|
"parameters": [
|
|
@@ -11051,7 +11051,7 @@
|
|
|
11051
11051
|
},
|
|
11052
11052
|
"locationInModule": {
|
|
11053
11053
|
"filename": "lib/fleet-base.ts",
|
|
11054
|
-
"line":
|
|
11054
|
+
"line": 627
|
|
11055
11055
|
},
|
|
11056
11056
|
"name": "parseRuntimeConfiguration",
|
|
11057
11057
|
"parameters": [
|
|
@@ -11076,7 +11076,7 @@
|
|
|
11076
11076
|
},
|
|
11077
11077
|
"locationInModule": {
|
|
11078
11078
|
"filename": "lib/fleet-base.ts",
|
|
11079
|
-
"line":
|
|
11079
|
+
"line": 649
|
|
11080
11080
|
},
|
|
11081
11081
|
"name": "warnVpcPeeringAuthorizations",
|
|
11082
11082
|
"parameters": [
|
|
@@ -11151,7 +11151,7 @@
|
|
|
11151
11151
|
"immutable": true,
|
|
11152
11152
|
"locationInModule": {
|
|
11153
11153
|
"filename": "lib/fleet-base.ts",
|
|
11154
|
-
"line":
|
|
11154
|
+
"line": 549
|
|
11155
11155
|
},
|
|
11156
11156
|
"name": "resourceArnForDestination",
|
|
11157
11157
|
"overrides": "@aws-cdk/aws-gamelift-alpha.IGameSessionQueueDestination",
|
|
@@ -11546,7 +11546,7 @@
|
|
|
11546
11546
|
},
|
|
11547
11547
|
"locationInModule": {
|
|
11548
11548
|
"filename": "lib/game-server-group.ts",
|
|
11549
|
-
"line":
|
|
11549
|
+
"line": 432
|
|
11550
11550
|
},
|
|
11551
11551
|
"parameters": [
|
|
11552
11552
|
{
|
|
@@ -11572,7 +11572,7 @@
|
|
|
11572
11572
|
"kind": "class",
|
|
11573
11573
|
"locationInModule": {
|
|
11574
11574
|
"filename": "lib/game-server-group.ts",
|
|
11575
|
-
"line":
|
|
11575
|
+
"line": 355
|
|
11576
11576
|
},
|
|
11577
11577
|
"methods": [
|
|
11578
11578
|
{
|
|
@@ -11582,7 +11582,7 @@
|
|
|
11582
11582
|
},
|
|
11583
11583
|
"locationInModule": {
|
|
11584
11584
|
"filename": "lib/game-server-group.ts",
|
|
11585
|
-
"line":
|
|
11585
|
+
"line": 363
|
|
11586
11586
|
},
|
|
11587
11587
|
"name": "fromGameServerGroupAttributes",
|
|
11588
11588
|
"parameters": [
|
|
@@ -11618,7 +11618,7 @@
|
|
|
11618
11618
|
},
|
|
11619
11619
|
"locationInModule": {
|
|
11620
11620
|
"filename": "lib/game-server-group.ts",
|
|
11621
|
-
"line":
|
|
11621
|
+
"line": 517
|
|
11622
11622
|
},
|
|
11623
11623
|
"name": "parseAutoScalingPolicy",
|
|
11624
11624
|
"parameters": [
|
|
@@ -11643,7 +11643,7 @@
|
|
|
11643
11643
|
},
|
|
11644
11644
|
"locationInModule": {
|
|
11645
11645
|
"filename": "lib/game-server-group.ts",
|
|
11646
|
-
"line":
|
|
11646
|
+
"line": 530
|
|
11647
11647
|
},
|
|
11648
11648
|
"name": "parseInstanceDefinitions",
|
|
11649
11649
|
"parameters": [
|
|
@@ -11672,7 +11672,7 @@
|
|
|
11672
11672
|
},
|
|
11673
11673
|
"locationInModule": {
|
|
11674
11674
|
"filename": "lib/game-server-group.ts",
|
|
11675
|
-
"line":
|
|
11675
|
+
"line": 509
|
|
11676
11676
|
},
|
|
11677
11677
|
"name": "parseLaunchTemplate",
|
|
11678
11678
|
"parameters": [
|
|
@@ -11702,7 +11702,7 @@
|
|
|
11702
11702
|
"immutable": true,
|
|
11703
11703
|
"locationInModule": {
|
|
11704
11704
|
"filename": "lib/game-server-group.ts",
|
|
11705
|
-
"line":
|
|
11705
|
+
"line": 358
|
|
11706
11706
|
},
|
|
11707
11707
|
"name": "PROPERTY_INJECTION_ID",
|
|
11708
11708
|
"static": true,
|
|
@@ -11718,7 +11718,7 @@
|
|
|
11718
11718
|
"immutable": true,
|
|
11719
11719
|
"locationInModule": {
|
|
11720
11720
|
"filename": "lib/game-server-group.ts",
|
|
11721
|
-
"line":
|
|
11721
|
+
"line": 410
|
|
11722
11722
|
},
|
|
11723
11723
|
"name": "autoScalingGroupArn",
|
|
11724
11724
|
"overrides": "@aws-cdk/aws-gamelift-alpha.GameServerGroupBase",
|
|
@@ -11734,7 +11734,7 @@
|
|
|
11734
11734
|
"immutable": true,
|
|
11735
11735
|
"locationInModule": {
|
|
11736
11736
|
"filename": "lib/game-server-group.ts",
|
|
11737
|
-
"line":
|
|
11737
|
+
"line": 405
|
|
11738
11738
|
},
|
|
11739
11739
|
"name": "gameServerGroupArn",
|
|
11740
11740
|
"overrides": "@aws-cdk/aws-gamelift-alpha.GameServerGroupBase",
|
|
@@ -11750,7 +11750,7 @@
|
|
|
11750
11750
|
"immutable": true,
|
|
11751
11751
|
"locationInModule": {
|
|
11752
11752
|
"filename": "lib/game-server-group.ts",
|
|
11753
|
-
"line":
|
|
11753
|
+
"line": 400
|
|
11754
11754
|
},
|
|
11755
11755
|
"name": "gameServerGroupName",
|
|
11756
11756
|
"overrides": "@aws-cdk/aws-gamelift-alpha.GameServerGroupBase",
|
|
@@ -11766,7 +11766,7 @@
|
|
|
11766
11766
|
"immutable": true,
|
|
11767
11767
|
"locationInModule": {
|
|
11768
11768
|
"filename": "lib/game-server-group.ts",
|
|
11769
|
-
"line":
|
|
11769
|
+
"line": 420
|
|
11770
11770
|
},
|
|
11771
11771
|
"name": "grantPrincipal",
|
|
11772
11772
|
"overrides": "@aws-cdk/aws-gamelift-alpha.GameServerGroupBase",
|
|
@@ -11782,7 +11782,7 @@
|
|
|
11782
11782
|
"immutable": true,
|
|
11783
11783
|
"locationInModule": {
|
|
11784
11784
|
"filename": "lib/game-server-group.ts",
|
|
11785
|
-
"line":
|
|
11785
|
+
"line": 415
|
|
11786
11786
|
},
|
|
11787
11787
|
"name": "role",
|
|
11788
11788
|
"type": {
|
|
@@ -11797,7 +11797,7 @@
|
|
|
11797
11797
|
"immutable": true,
|
|
11798
11798
|
"locationInModule": {
|
|
11799
11799
|
"filename": "lib/game-server-group.ts",
|
|
11800
|
-
"line":
|
|
11800
|
+
"line": 425
|
|
11801
11801
|
},
|
|
11802
11802
|
"name": "vpc",
|
|
11803
11803
|
"type": {
|
|
@@ -11812,7 +11812,7 @@
|
|
|
11812
11812
|
"immutable": true,
|
|
11813
11813
|
"locationInModule": {
|
|
11814
11814
|
"filename": "lib/game-server-group.ts",
|
|
11815
|
-
"line":
|
|
11815
|
+
"line": 430
|
|
11816
11816
|
},
|
|
11817
11817
|
"name": "vpcSubnets",
|
|
11818
11818
|
"optional": true,
|
|
@@ -11838,7 +11838,7 @@
|
|
|
11838
11838
|
"kind": "interface",
|
|
11839
11839
|
"locationInModule": {
|
|
11840
11840
|
"filename": "lib/game-server-group.ts",
|
|
11841
|
-
"line":
|
|
11841
|
+
"line": 187
|
|
11842
11842
|
},
|
|
11843
11843
|
"name": "GameServerGroupAttributes",
|
|
11844
11844
|
"properties": [
|
|
@@ -11852,7 +11852,7 @@
|
|
|
11852
11852
|
"immutable": true,
|
|
11853
11853
|
"locationInModule": {
|
|
11854
11854
|
"filename": "lib/game-server-group.ts",
|
|
11855
|
-
"line":
|
|
11855
|
+
"line": 211
|
|
11856
11856
|
},
|
|
11857
11857
|
"name": "autoScalingGroupArn",
|
|
11858
11858
|
"type": {
|
|
@@ -11870,7 +11870,7 @@
|
|
|
11870
11870
|
"immutable": true,
|
|
11871
11871
|
"locationInModule": {
|
|
11872
11872
|
"filename": "lib/game-server-group.ts",
|
|
11873
|
-
"line":
|
|
11873
|
+
"line": 204
|
|
11874
11874
|
},
|
|
11875
11875
|
"name": "gameServerGroupArn",
|
|
11876
11876
|
"optional": true,
|
|
@@ -11889,7 +11889,7 @@
|
|
|
11889
11889
|
"immutable": true,
|
|
11890
11890
|
"locationInModule": {
|
|
11891
11891
|
"filename": "lib/game-server-group.ts",
|
|
11892
|
-
"line":
|
|
11892
|
+
"line": 195
|
|
11893
11893
|
},
|
|
11894
11894
|
"name": "gameServerGroupName",
|
|
11895
11895
|
"optional": true,
|
|
@@ -11907,7 +11907,7 @@
|
|
|
11907
11907
|
"immutable": true,
|
|
11908
11908
|
"locationInModule": {
|
|
11909
11909
|
"filename": "lib/game-server-group.ts",
|
|
11910
|
-
"line":
|
|
11910
|
+
"line": 218
|
|
11911
11911
|
},
|
|
11912
11912
|
"name": "role",
|
|
11913
11913
|
"optional": true,
|
|
@@ -11969,11 +11969,11 @@
|
|
|
11969
11969
|
{
|
|
11970
11970
|
"docs": {
|
|
11971
11971
|
"stability": "experimental",
|
|
11972
|
-
"summary": "
|
|
11972
|
+
"summary": "[disable-awslint:no-grants]."
|
|
11973
11973
|
},
|
|
11974
11974
|
"locationInModule": {
|
|
11975
11975
|
"filename": "lib/game-server-group.ts",
|
|
11976
|
-
"line":
|
|
11976
|
+
"line": 164
|
|
11977
11977
|
},
|
|
11978
11978
|
"name": "grant",
|
|
11979
11979
|
"overrides": "@aws-cdk/aws-gamelift-alpha.IGameServerGroup",
|
|
@@ -12006,7 +12006,7 @@
|
|
|
12006
12006
|
},
|
|
12007
12007
|
"locationInModule": {
|
|
12008
12008
|
"filename": "lib/game-server-group.ts",
|
|
12009
|
-
"line":
|
|
12009
|
+
"line": 172
|
|
12010
12010
|
},
|
|
12011
12011
|
"name": "metric",
|
|
12012
12012
|
"overrides": "@aws-cdk/aws-gamelift-alpha.IGameServerGroup",
|
|
@@ -12120,7 +12120,7 @@
|
|
|
12120
12120
|
"kind": "interface",
|
|
12121
12121
|
"locationInModule": {
|
|
12122
12122
|
"filename": "lib/game-server-group.ts",
|
|
12123
|
-
"line":
|
|
12123
|
+
"line": 224
|
|
12124
12124
|
},
|
|
12125
12125
|
"name": "GameServerGroupProps",
|
|
12126
12126
|
"properties": [
|
|
@@ -12134,7 +12134,7 @@
|
|
|
12134
12134
|
"immutable": true,
|
|
12135
12135
|
"locationInModule": {
|
|
12136
12136
|
"filename": "lib/game-server-group.ts",
|
|
12137
|
-
"line":
|
|
12137
|
+
"line": 229
|
|
12138
12138
|
},
|
|
12139
12139
|
"name": "gameServerGroupName",
|
|
12140
12140
|
"type": {
|
|
@@ -12150,7 +12150,7 @@
|
|
|
12150
12150
|
"immutable": true,
|
|
12151
12151
|
"locationInModule": {
|
|
12152
12152
|
"filename": "lib/game-server-group.ts",
|
|
12153
|
-
"line":
|
|
12153
|
+
"line": 284
|
|
12154
12154
|
},
|
|
12155
12155
|
"name": "instanceDefinitions",
|
|
12156
12156
|
"type": {
|
|
@@ -12173,7 +12173,7 @@
|
|
|
12173
12173
|
"immutable": true,
|
|
12174
12174
|
"locationInModule": {
|
|
12175
12175
|
"filename": "lib/game-server-group.ts",
|
|
12176
|
-
"line":
|
|
12176
|
+
"line": 296
|
|
12177
12177
|
},
|
|
12178
12178
|
"name": "launchTemplate",
|
|
12179
12179
|
"type": {
|
|
@@ -12190,7 +12190,7 @@
|
|
|
12190
12190
|
"immutable": true,
|
|
12191
12191
|
"locationInModule": {
|
|
12192
12192
|
"filename": "lib/game-server-group.ts",
|
|
12193
|
-
"line":
|
|
12193
|
+
"line": 272
|
|
12194
12194
|
},
|
|
12195
12195
|
"name": "vpc",
|
|
12196
12196
|
"type": {
|
|
@@ -12208,7 +12208,7 @@
|
|
|
12208
12208
|
"immutable": true,
|
|
12209
12209
|
"locationInModule": {
|
|
12210
12210
|
"filename": "lib/game-server-group.ts",
|
|
12211
|
-
"line":
|
|
12211
|
+
"line": 317
|
|
12212
12212
|
},
|
|
12213
12213
|
"name": "autoScalingPolicy",
|
|
12214
12214
|
"optional": true,
|
|
@@ -12226,7 +12226,7 @@
|
|
|
12226
12226
|
"immutable": true,
|
|
12227
12227
|
"locationInModule": {
|
|
12228
12228
|
"filename": "lib/game-server-group.ts",
|
|
12229
|
-
"line":
|
|
12229
|
+
"line": 331
|
|
12230
12230
|
},
|
|
12231
12231
|
"name": "balancingStrategy",
|
|
12232
12232
|
"optional": true,
|
|
@@ -12245,7 +12245,7 @@
|
|
|
12245
12245
|
"immutable": true,
|
|
12246
12246
|
"locationInModule": {
|
|
12247
12247
|
"filename": "lib/game-server-group.ts",
|
|
12248
|
-
"line":
|
|
12248
|
+
"line": 324
|
|
12249
12249
|
},
|
|
12250
12250
|
"name": "deleteOption",
|
|
12251
12251
|
"optional": true,
|
|
@@ -12264,7 +12264,7 @@
|
|
|
12264
12264
|
"immutable": true,
|
|
12265
12265
|
"locationInModule": {
|
|
12266
12266
|
"filename": "lib/game-server-group.ts",
|
|
12267
|
-
"line":
|
|
12267
|
+
"line": 259
|
|
12268
12268
|
},
|
|
12269
12269
|
"name": "maxSize",
|
|
12270
12270
|
"optional": true,
|
|
@@ -12283,7 +12283,7 @@
|
|
|
12283
12283
|
"immutable": true,
|
|
12284
12284
|
"locationInModule": {
|
|
12285
12285
|
"filename": "lib/game-server-group.ts",
|
|
12286
|
-
"line":
|
|
12286
|
+
"line": 250
|
|
12287
12287
|
},
|
|
12288
12288
|
"name": "minSize",
|
|
12289
12289
|
"optional": true,
|
|
@@ -12302,7 +12302,7 @@
|
|
|
12302
12302
|
"immutable": true,
|
|
12303
12303
|
"locationInModule": {
|
|
12304
12304
|
"filename": "lib/game-server-group.ts",
|
|
12305
|
-
"line":
|
|
12305
|
+
"line": 307
|
|
12306
12306
|
},
|
|
12307
12307
|
"name": "protectGameServer",
|
|
12308
12308
|
"optional": true,
|
|
@@ -12321,7 +12321,7 @@
|
|
|
12321
12321
|
"immutable": true,
|
|
12322
12322
|
"locationInModule": {
|
|
12323
12323
|
"filename": "lib/game-server-group.ts",
|
|
12324
|
-
"line":
|
|
12324
|
+
"line": 238
|
|
12325
12325
|
},
|
|
12326
12326
|
"name": "role",
|
|
12327
12327
|
"optional": true,
|
|
@@ -12339,7 +12339,7 @@
|
|
|
12339
12339
|
"immutable": true,
|
|
12340
12340
|
"locationInModule": {
|
|
12341
12341
|
"filename": "lib/game-server-group.ts",
|
|
12342
|
-
"line":
|
|
12342
|
+
"line": 279
|
|
12343
12343
|
},
|
|
12344
12344
|
"name": "vpcSubnets",
|
|
12345
12345
|
"optional": true,
|
|
@@ -18319,6 +18319,6 @@
|
|
|
18319
18319
|
"symbolId": "lib/standalone-matchmaking-configuration:StandaloneMatchmakingConfigurationProps"
|
|
18320
18320
|
}
|
|
18321
18321
|
},
|
|
18322
|
-
"version": "2.
|
|
18322
|
+
"version": "2.235.0-alpha.0",
|
|
18323
18323
|
"fingerprint": "**********"
|
|
18324
18324
|
}
|
package/.jsii.tabl.json.gz
CHANGED
|
Binary file
|
package/awslint.json
CHANGED
|
@@ -4,6 +4,37 @@
|
|
|
4
4
|
"docs-public-apis:@aws-cdk/aws-gamelift-alpha.OperatingSystem.AMAZON_LINUX_2",
|
|
5
5
|
"docs-public-apis:@aws-cdk/aws-gamelift-alpha.OperatingSystem.WINDOWS_2012",
|
|
6
6
|
"docs-public-apis:@aws-cdk/aws-gamelift-alpha.Protocol.TCP",
|
|
7
|
-
"docs-public-apis:@aws-cdk/aws-gamelift-alpha.Protocol.UDP"
|
|
7
|
+
"docs-public-apis:@aws-cdk/aws-gamelift-alpha.Protocol.UDP",
|
|
8
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.AliasProps.fleet",
|
|
9
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.Build.fromBucket.bucket",
|
|
10
|
+
"prefer-ref-interface:aws-cdk-lib.aws_s3.GrantReplicationPermissionDestinationProps.bucket",
|
|
11
|
+
"prefer-ref-interface:aws-cdk-lib.aws_s3.GrantReplicationPermissionDestinationProps.encryptionKey",
|
|
12
|
+
"prefer-ref-interface:aws-cdk-lib.aws_s3.GrantReplicationPermissionProps.sourceDecryptionKey",
|
|
13
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.BuildAttributes.role",
|
|
14
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.BuildProps.role",
|
|
15
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.FleetAttributes.role",
|
|
16
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.BuildFleetProps.peerVpc",
|
|
17
|
+
"prefer-ref-interface:aws-cdk-lib.aws_ec2.ClientVpnEndpointOptions.securityGroups",
|
|
18
|
+
"prefer-ref-interface:aws-cdk-lib.aws_ec2.SubnetSelection.subnets",
|
|
19
|
+
"prefer-ref-interface:aws-cdk-lib.aws_ec2.ISubnet.associateNetworkAcl.acl",
|
|
20
|
+
"prefer-ref-interface:aws-cdk-lib.aws_ec2.InterfaceVpcEndpointOptions.securityGroups",
|
|
21
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.BuildFleetProps.role",
|
|
22
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.BuildFleetProps.content",
|
|
23
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.GameServerGroupAttributes.role",
|
|
24
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.GameServerGroupProps.launchTemplate",
|
|
25
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.GameServerGroupProps.vpc",
|
|
26
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.GameServerGroupProps.role",
|
|
27
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.GameSessionQueueProps.notificationTarget",
|
|
28
|
+
"prefer-ref-interface:aws-cdk-lib.aws_sns.ITopicSubscription.bind.topic",
|
|
29
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.MatchmakingConfigurationAttributes.notificationTarget",
|
|
30
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.QueuedMatchmakingConfiguration.addGameSessionQueue.gameSessionQueue",
|
|
31
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.QueuedMatchmakingConfigurationProps.ruleSet",
|
|
32
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.QueuedMatchmakingConfigurationProps.notificationTarget",
|
|
33
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.QueuedMatchmakingConfigurationProps.gameSessionQueues",
|
|
34
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.Script.fromBucket.bucket",
|
|
35
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.ScriptAttributes.role",
|
|
36
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.ScriptProps.role",
|
|
37
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.StandaloneMatchmakingConfigurationProps.ruleSet",
|
|
38
|
+
"prefer-ref-interface:@aws-cdk/aws-gamelift-alpha.StandaloneMatchmakingConfigurationProps.notificationTarget"
|
|
8
39
|
]
|
|
9
40
|
}
|
package/lib/alias.js
CHANGED
|
@@ -45,7 +45,7 @@ const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
|
|
|
45
45
|
* Base class for new and imported GameLift Alias.
|
|
46
46
|
*/
|
|
47
47
|
class AliasBase extends cdk.Resource {
|
|
48
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.AliasBase", version: "2.
|
|
48
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.AliasBase", version: "2.235.0-alpha.0" };
|
|
49
49
|
/**
|
|
50
50
|
* The ARN to put into the destination field of a game session queue
|
|
51
51
|
*/
|
|
@@ -84,7 +84,7 @@ let Alias = (() => {
|
|
|
84
84
|
Alias = _classThis = _classDescriptor.value;
|
|
85
85
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
86
86
|
}
|
|
87
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.Alias", version: "2.
|
|
87
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.Alias", version: "2.235.0-alpha.0" };
|
|
88
88
|
/** Uniquely identifies this class. */
|
|
89
89
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-gamelift-alpha.Alias';
|
|
90
90
|
/**
|
package/lib/build-fleet.js
CHANGED
|
@@ -71,7 +71,7 @@ let BuildFleet = (() => {
|
|
|
71
71
|
BuildFleet = _classThis = _classDescriptor.value;
|
|
72
72
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
73
73
|
}
|
|
74
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.BuildFleet", version: "2.
|
|
74
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.BuildFleet", version: "2.235.0-alpha.0" };
|
|
75
75
|
/** Uniquely identifies this class. */
|
|
76
76
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-gamelift-alpha.BuildFleet';
|
|
77
77
|
/**
|
package/lib/build.js
CHANGED
|
@@ -47,7 +47,7 @@ const content_1 = require("./content");
|
|
|
47
47
|
* Base class for new and imported GameLift server build.
|
|
48
48
|
*/
|
|
49
49
|
class BuildBase extends cdk.Resource {
|
|
50
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.BuildBase", version: "2.
|
|
50
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.BuildBase", version: "2.235.0-alpha.0" };
|
|
51
51
|
}
|
|
52
52
|
exports.BuildBase = BuildBase;
|
|
53
53
|
/**
|
|
@@ -102,7 +102,7 @@ let Build = (() => {
|
|
|
102
102
|
Build = _classThis = _classDescriptor.value;
|
|
103
103
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
104
104
|
}
|
|
105
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.Build", version: "2.
|
|
105
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.Build", version: "2.235.0-alpha.0" };
|
|
106
106
|
/** Uniquely identifies this class. */
|
|
107
107
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-gamelift-alpha.Build';
|
|
108
108
|
/**
|
package/lib/content.js
CHANGED
|
@@ -11,7 +11,7 @@ const cdk = require("aws-cdk-lib/core");
|
|
|
11
11
|
* The class helps you on preparing and uploading custom game server build files or Realtime Servers server script files.
|
|
12
12
|
*/
|
|
13
13
|
class Content {
|
|
14
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.Content", version: "2.
|
|
14
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.Content", version: "2.235.0-alpha.0" };
|
|
15
15
|
/**
|
|
16
16
|
* Game content as an S3 object.
|
|
17
17
|
* @param bucket The S3 bucket
|
|
@@ -38,7 +38,7 @@ class S3Content extends Content {
|
|
|
38
38
|
bucket;
|
|
39
39
|
key;
|
|
40
40
|
objectVersion;
|
|
41
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.S3Content", version: "2.
|
|
41
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.S3Content", version: "2.235.0-alpha.0" };
|
|
42
42
|
constructor(bucket, key, objectVersion) {
|
|
43
43
|
super();
|
|
44
44
|
this.bucket = bucket;
|
|
@@ -71,7 +71,7 @@ exports.S3Content = S3Content;
|
|
|
71
71
|
class AssetContent extends Content {
|
|
72
72
|
path;
|
|
73
73
|
options;
|
|
74
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.AssetContent", version: "2.
|
|
74
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.AssetContent", version: "2.235.0-alpha.0" };
|
|
75
75
|
asset;
|
|
76
76
|
/**
|
|
77
77
|
* @param path The path to the asset file or directory.
|
package/lib/fleet-base.d.ts
CHANGED
|
@@ -400,6 +400,9 @@ export declare abstract class FleetBase extends cdk.Resource implements IFleet {
|
|
|
400
400
|
* @param options Alias options
|
|
401
401
|
*/
|
|
402
402
|
addAlias(aliasName: string, options?: AliasOptions): Alias;
|
|
403
|
+
/**
|
|
404
|
+
* [disable-awslint:no-grants]
|
|
405
|
+
*/
|
|
403
406
|
grant(grantee: iam.IGrantable, ...actions: string[]): iam.Grant;
|
|
404
407
|
metric(metricName: string, props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
405
408
|
metricActiveInstances(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
package/lib/fleet-base.js
CHANGED
|
@@ -12,7 +12,7 @@ const alias_1 = require("./alias");
|
|
|
12
12
|
* Base class for new and imported GameLift fleet.
|
|
13
13
|
*/
|
|
14
14
|
class FleetBase extends cdk.Resource {
|
|
15
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.FleetBase", version: "2.
|
|
15
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.FleetBase", version: "2.235.0-alpha.0" };
|
|
16
16
|
/**
|
|
17
17
|
* Import an existing fleet from its attributes.
|
|
18
18
|
*/
|
|
@@ -89,6 +89,9 @@ class FleetBase extends cdk.Resource {
|
|
|
89
89
|
...options,
|
|
90
90
|
});
|
|
91
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* [disable-awslint:no-grants]
|
|
94
|
+
*/
|
|
92
95
|
grant(grantee, ...actions) {
|
|
93
96
|
return iam.Grant.addToPrincipal({
|
|
94
97
|
resourceArns: [this.fleetArn],
|
|
@@ -267,4 +270,4 @@ class FleetBase extends cdk.Resource {
|
|
|
267
270
|
}
|
|
268
271
|
}
|
|
269
272
|
exports.FleetBase = FleetBase;
|
|
270
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxlZXQtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImZsZWV0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5REFBeUQ7QUFHekQsc0hBQWlHO0FBQ2pHLDJDQUEyQztBQUMzQyx3Q0FBd0M7QUFFeEMsbUNBQThDO0FBOFk5Qzs7R0FFRztBQUNILE1BQXNCLFNBQVUsU0FBUSxHQUFHLENBQUMsUUFBUTs7SUFDbEQ7O09BRUc7SUFDSCxNQUFNLENBQUMsbUJBQW1CLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBc0I7Ozs7Ozs7Ozs7UUFDN0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO1FBQ3BGLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTztZQUMzQixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVMsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUMsWUFBWSxDQUFDO1FBRWhHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLEtBQUssQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQzNFLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMvRCxPQUFPLEVBQUUsVUFBVTtZQUNuQixRQUFRLEVBQUUsT0FBTztZQUNqQixZQUFZLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDM0IsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsbUJBQW1CO1NBQzdD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LENBQUMsZUFBZSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ25FLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPO1lBQ0wsbUNBQW1DLEVBQUUsS0FBSyxDQUFDLG9CQUFvQixDQUFDLDRCQUE0QixFQUFFLFNBQVMsRUFBRTtZQUN6RyxtQ0FBbUMsRUFBRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsbUNBQW1DO1lBQ25HLGVBQWUsRUFBRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztTQUNwRixDQUFDO1FBRUYsU0FBUyxrQkFBa0IsQ0FBQyxhQUE0QjtZQUN0RCxPQUFPO2dCQUNMLFVBQVUsRUFBRSxhQUFhLENBQUMsVUFBVTtnQkFDcEMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxVQUFVO2dCQUNwQyxvQkFBb0IsRUFBRSxhQUFhLENBQUMsb0JBQW9CLElBQUksQ0FBQzthQUM5RCxDQUFDO1FBQ0osQ0FBQztLQUNGO0lBRVMsNEJBQTRCLENBQUMsS0FBZ0I7UUFDckQsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLCtDQUErQyxFQUFFO1lBQ3RGLDBKQUEwSjtZQUMxSiw0RUFBNEU7WUFDNUUsa0ZBQWtGO1NBQ25GLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7S0FDZjs7QUFuUEgsOEJBb1BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2xvdWR3YXRjaCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBDZm5GbGVldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1nYW1lbGlmdCc7XG5pbXBvcnQgeyBHYW1lTGlmdE1ldHJpY3MgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZ2FtZWxpZnQvbGliL2dhbWVsaWZ0LWNhbm5lZC1tZXRyaWNzLmdlbmVyYXRlZCc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEFsaWFzLCBBbGlhc09wdGlvbnMgfSBmcm9tICcuL2FsaWFzJztcbmltcG9ydCB7IElHYW1lU2Vzc2lvblF1ZXVlRGVzdGluYXRpb24gfSBmcm9tICcuL2dhbWUtc2Vzc2lvbi1xdWV1ZSc7XG5cbi8qKlxuICogQ3VycmVudCByZXNvdXJjZSBjYXBhY2l0eSBzZXR0aW5ncyBpbiBhIHNwZWNpZmllZCBmbGVldCBvciBsb2NhdGlvbi5cbiAqIFRoZSBsb2NhdGlvbiB2YWx1ZSBtaWdodCByZWZlciB0byBhIGZsZWV0J3MgcmVtb3RlIGxvY2F0aW9uIG9yIGl0cyBob21lIFJlZ2lvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2NhdGlvbkNhcGFjaXR5IHtcbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgQW1hem9uIEVDMiBpbnN0YW5jZXMgeW91IHdhbnQgdG8gbWFpbnRhaW4gaW4gdGhlIHNwZWNpZmllZCBmbGVldCBsb2NhdGlvbi5cbiAgICogVGhpcyB2YWx1ZSBtdXN0IGZhbGwgYmV0d2VlbiB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBzaXplIGxpbWl0cy5cbiAgICpcbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgcmVhZG9ubHkgZGVzaXJlZENhcGFjaXR5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgaW5zdGFuY2VzIHRoYXQgYXJlIGFsbG93ZWQgaW4gdGhlIHNwZWNpZmllZCBmbGVldCBsb2NhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4U2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG1pbmltdW0gbnVtYmVyIG9mIGluc3RhbmNlcyB0aGF0IGFyZSBhbGxvd2VkIGluIHRoZSBzcGVjaWZpZWQgZmxlZXQgbG9jYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIHJlYWRvbmx5IG1pblNpemU/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQSByZW1vdGUgbG9jYXRpb24gd2hlcmUgYSBtdWx0aS1sb2NhdGlvbiBmbGVldCBjYW4gZGVwbG95IEVDMiBpbnN0YW5jZXMgZm9yIGdhbWUgaG9zdGluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2NhdGlvbiB7XG4gIC8qKlxuICAgKiBBbiBBV1MgUmVnaW9uIGNvZGVcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXJyZW50IHJlc291cmNlIGNhcGFjaXR5IHNldHRpbmdzIGluIGEgc3BlY2lmaWVkIGZsZWV0IG9yIGxvY2F0aW9uLlxuICAgKiBUaGUgbG9jYXRpb24gdmFsdWUgbWlnaHQgcmVmZXIgdG8gYSBmbGVldCdzIHJlbW90ZSBsb2NhdGlvbiBvciBpdHMgaG9tZSBSZWdpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY2FwYWNpdHkgc2V0dGluZ3Mgb24gdGhlIHNwZWNpZmllZCBsb2NhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgY2FwYWNpdHk/OiBMb2NhdGlvbkNhcGFjaXR5O1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb2YgYSBmbGVldCBzZXJ2ZXIgcHJvY2Vzc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlclByb2Nlc3Mge1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBzZXJ2ZXIgcHJvY2Vzc2VzIHVzaW5nIHRoaXMgY29uZmlndXJhdGlvbiB0aGF0IHJ1biBjb25jdXJyZW50bHkgb24gZWFjaCBpbnN0YW5jZS5cbiAgICogTWluaW11bSBpcyBgMWBcbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgY29uY3VycmVudEV4ZWN1dGlvbnM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiBvZiBhIGdhbWUgYnVpbGQgZXhlY3V0YWJsZSBvciB0aGUgUmVhbHRpbWUgc2NyaXB0IGZpbGUgdGhhdCBjb250YWlucyB0aGUgSW5pdCgpIGZ1bmN0aW9uLiBHYW1lIGJ1aWxkcyBhbmQgUmVhbHRpbWUgc2NyaXB0cyBhcmUgaW5zdGFsbGVkIG9uIGluc3RhbmNlcyBhdCB0aGUgcm9vdDpcbiAgICogLSBXaW5kb3dzIChjdXN0b20gZ2FtZSBidWlsZHMgb25seSk6IGBDOlxcZ2FtZWAuIEV4YW1wbGU6IGBDOlxcZ2FtZVxcTXlHYW1lXFxzZXJ2ZXIuZXhlYFxuICAgKiAtIExpbnV4OiBgL2xvY2FsL2dhbWVgLiBFeGFtcGxlczogYC9sb2NhbC9nYW1lL015R2FtZS9zZXJ2ZXIuZXhlYCBvciBgL2xvY2FsL2dhbWUvTXlSZWFsdGltZVNjcmlwdC5qc2BcbiAgICovXG4gIHJlYWRvbmx5IGxhdW5jaFBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgbGlzdCBvZiBwYXJhbWV0ZXJzIHRvIHBhc3MgdG8gdGhlIHNlcnZlciBleGVjdXRhYmxlIG9yIFJlYWx0aW1lIHNjcmlwdCBvbiBsYXVuY2guXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcGFyYW1ldGVyc1xuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIGNvbGxlY3Rpb24gb2Ygc2VydmVyIHByb2Nlc3MgY29uZmlndXJhdGlvbnMgdGhhdCBkZXNjcmliZSB0aGUgc2V0IG9mIHByb2Nlc3NlcyB0byBydW4gb24gZWFjaCBpbnN0YW5jZSBpbiBhIGZsZWV0LlxuICogU2VydmVyIHByb2Nlc3NlcyBydW4gZWl0aGVyIGFuIGV4ZWN1dGFibGUgaW4gYSBjdXN0b20gZ2FtZSBidWlsZCBvciBhIFJlYWx0aW1lIFNlcnZlcnMgc2NyaXB0LlxuICogR2FtZUxpZnQgbGF1bmNoZXMgdGhlIGNvbmZpZ3VyZWQgcHJvY2Vzc2VzLCBtYW5hZ2VzIHRoZWlyIGxpZmUgY3ljbGUsIGFuZCByZXBsYWNlcyB0aGVtIGFzIG5lZWRlZC5cbiAqIEVhY2ggaW5zdGFuY2UgY2hlY2tzIHJlZ3VsYXJseSBmb3IgYW4gdXBkYXRlZCBydW50aW1lIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogQSBHYW1lTGlmdCBpbnN0YW5jZSBpcyBsaW1pdGVkIHRvIDUwIHByb2Nlc3NlcyBydW5uaW5nIGNvbmN1cnJlbnRseS5cbiAqIFRvIGNhbGN1bGF0ZSB0aGUgdG90YWwgbnVtYmVyIG9mIHByb2Nlc3NlcyBpbiBhIHJ1bnRpbWUgY29uZmlndXJhdGlvbiwgYWRkIHRoZSB2YWx1ZXMgb2YgdGhlIGBDb25jdXJyZW50RXhlY3V0aW9uc2AgcGFyYW1ldGVyIGZvciBlYWNoIGBTZXJ2ZXJQcm9jZXNzYC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nYW1lbGlmdC9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvZmxlZXRzLW11bHRpcHJvY2Vzcy5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZUNvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gYW1vdW50IG9mIHRpbWUgYWxsb3dlZCB0byBsYXVuY2ggYSBuZXcgZ2FtZSBzZXNzaW9uIGFuZCBoYXZlIGl0IHJlcG9ydCByZWFkeSB0byBob3N0IHBsYXllcnMuXG4gICAqIER1cmluZyB0aGlzIHRpbWUsIHRoZSBnYW1lIHNlc3Npb24gaXMgaW4gc3RhdHVzIGBBQ1RJVkFUSU5HYC5cbiAgICpcbiAgICogSWYgdGhlIGdhbWUgc2Vzc2lvbiBkb2VzIG5vdCBiZWNvbWUgYWN0aXZlIGJlZm9yZSB0aGUgdGltZW91dCwgaXQgaXMgZW5kZWQgYW5kIHRoZSBnYW1lIHNlc3Npb24gc3RhdHVzIGlzIGNoYW5nZWQgdG8gYFRFUk1JTkFURURgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5zZWNvbmRzKDMwMClcbiAgICovXG4gIHJlYWRvbmx5IGdhbWVTZXNzaW9uQWN0aXZhdGlvblRpbWVvdXQ/OiBjZGsuRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgZ2FtZSBzZXNzaW9ucyBpbiBzdGF0dXMgYEFDVElWQVRJTkdgIHRvIGFsbG93IG9uIGFuIGluc3RhbmNlLlxuICAgKlxuICAgKiBUaGlzIHNldHRpbmcgbGltaXRzIHRoZSBpbnN0YW5jZSByZXNvdXJjZXMgdGhhdCBjYW4gYmUgdXNlZCBmb3IgbmV3IGdhbWUgYWN0aXZhdGlvbnMgYXQgYW55IG9uZSB0aW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGxpbWl0XG4gICAqL1xuICByZWFkb25seSBtYXhDb25jdXJyZW50R2FtZVNlc3Npb25BY3RpdmF0aW9ucz86IG51bWJlcjtcblxuICAvKipcbiAgICogQSBjb2xsZWN0aW9uIG9mIHNlcnZlciBwcm9jZXNzIGNvbmZpZ3VyYXRpb25zIHRoYXQgaWRlbnRpZnkgd2hhdCBzZXJ2ZXIgcHJvY2Vzc2VzIHRvIHJ1biBvbiBlYWNoIGluc3RhbmNlIGluIGEgZmxlZXQuXG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJQcm9jZXNzZXM6IFNlcnZlclByb2Nlc3NbXTtcbn1cblxuLyoqXG4gKiBBIHBvbGljeSB0aGF0IGxpbWl0cyB0aGUgbnVtYmVyIG9mIGdhbWUgc2Vzc2lvbnMgYSBwbGF5ZXIgY2FuIGNyZWF0ZSBvbiB0aGUgc2FtZSBmbGVldC5cbiAqIFRoaXMgb3B0aW9uYWwgcG9saWN5IGdpdmVzIGdhbWUgb3duZXJzIGNvbnRyb2wgb3ZlciBob3cgcGxheWVycyBjYW4gY29uc3VtZSBhdmFpbGFibGUgZ2FtZSBzZXJ2ZXIgcmVzb3VyY2VzLlxuICogQSByZXNvdXJjZSBjcmVhdGlvbiBwb2xpY3kgbWFrZXMgdGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQ6IFwiQW4gaW5kaXZpZHVhbCBwbGF5ZXIgY2FuIGNyZWF0ZSBhIG1heGltdW0gbnVtYmVyIG9mIG5ldyBnYW1lIHNlc3Npb25zIHdpdGhpbiBhIHNwZWNpZmllZCB0aW1lIHBlcmlvZFwiLlxuICpcbiAqIFRoZSBwb2xpY3kgaXMgZXZhbHVhdGVkIHdoZW4gYSBwbGF5ZXIgdHJpZXMgdG8gY3JlYXRlIGEgbmV3IGdhbWUgc2Vzc2lvbi5cbiAqIEZvciBleGFtcGxlLCBhc3N1bWUgeW91IGhhdmUgYSBwb2xpY3kgb2YgMTAgbmV3IGdhbWUgc2Vzc2lvbnMgYW5kIGEgdGltZSBwZXJpb2Qgb2YgNjAgbWludXRlcy5cbiAqIE9uIHJlY2VpdmluZyBhIGBDcmVhdGVHYW1lU2Vzc2lvbmAgcmVxdWVzdCwgQW1hem9uIEdhbWVMaWZ0IGNoZWNrcyB0aGF0IHRoZSBwbGF5ZXIgKGlkZW50aWZpZWQgYnkgQ3JlYXRvcklkKSBoYXMgY3JlYXRlZCBmZXdlciB0aGFuIDEwIGdhbWUgc2Vzc2lvbnMgaW4gdGhlIHBhc3QgNjAgbWludXRlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZUNyZWF0aW9uTGltaXRQb2xpY3kge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGdhbWUgc2Vzc2lvbnMgdGhhdCBhbiBpbmRpdmlkdWFsIGNhbiBjcmVhdGUgZHVyaW5nIHRoZSBwb2xpY3kgcGVyaW9kLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgZ2FtZSBzZXNzaW9ucyB0aGF0IGFuIGluZGl2aWR1YWwgY2FuIGNyZWF0ZSBkdXJpbmcgdGhlIHBvbGljeSBwZXJpb2RcbiAgICovXG4gIHJlYWRvbmx5IG5ld0dhbWVTZXNzaW9uc1BlckNyZWF0b3I/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIHNwYW4gdXNlZCBpbiBldmFsdWF0aW5nIHRoZSByZXNvdXJjZSBjcmVhdGlvbiBsaW1pdCBwb2xpY3kuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcG9saWN5IHBlcmlvZFxuICAgKi9cbiAgcmVhZG9ubHkgcG9saWN5UGVyaW9kPzogY2RrLkR1cmF0aW9uO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBHYW1lbGlmdCBmbGVldFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElGbGVldCBleHRlbmRzIGNkay5JUmVzb3VyY2UsIGlhbS5JR3JhbnRhYmxlLCBJR2FtZVNlc3Npb25RdWV1ZURlc3RpbmF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBJZGVudGlmaWVyIG9mIHRoZSBmbGVldC5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZmxlZXRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBmbGVldC5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZmxlZXRBcm46IHN0cmluZztcblxuICAvKipcbiAgICogR3JhbnQgdGhlIGBncmFudGVlYCBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBwZXJmb3JtIGBhY3Rpb25zYC5cbiAgICovXG4gIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCAuLi5hY3Rpb25zOiBzdHJpbmdbXSk6IGlhbS5HcmFudDtcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBnaXZlbiBuYW1lZCBtZXRyaWMgZm9yIHRoaXMgZmxlZXQuXG4gICAqL1xuICBtZXRyaWMobWV0cmljTmFtZTogc3RyaW5nLCBwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBJbnN0YW5jZXMgd2l0aCBgQUNUSVZFYCBzdGF0dXMsIHdoaWNoIG1lYW5zIHRoZXkgYXJlIHJ1bm5pbmcgYWN0aXZlIHNlcnZlciBwcm9jZXNzZXMuXG4gICAqIFRoZSBjb3VudCBpbmNsdWRlcyBpZGxlIGluc3RhbmNlcyBhbmQgdGhvc2UgdGhhdCBhcmUgaG9zdGluZyBvbmUgb3IgbW9yZSBnYW1lIHNlc3Npb25zLlxuICAgKiBUaGlzIG1ldHJpYyBtZWFzdXJlcyBjdXJyZW50IHRvdGFsIGluc3RhbmNlIGNhcGFjaXR5LlxuICAgKlxuICAgKiBUaGlzIG1ldHJpYyBjYW4gYmUgdXNlZCB3aXRoIGF1dG9tYXRpYyBzY2FsaW5nLlxuICAgKi9cbiAgbWV0cmljQWN0aXZlSW5zdGFuY2VzKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIFBlcmNlbnRhZ2Ugb2YgYWxsIGFjdGl2ZSBpbnN0YW5jZXMgdGhhdCBhcmUgaWRsZSAoY2FsY3VsYXRlZCBhcyBJZGxlSW5zdGFuY2VzIC8gQWN0aXZlSW5zdGFuY2VzKS5cbiAgICogVGhpcyBtZXRyaWMgY2FuIGJlIHVzZWQgZm9yIGF1dG9tYXRpYyBzY2FsaW5nLlxuICAgKi9cbiAgbWV0cmljUGVyY2VudElkbGVJbnN0YW5jZXMocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogVGFyZ2V0IG51bWJlciBvZiBhY3RpdmUgaW5zdGFuY2VzIHRoYXQgR2FtZUxpZnQgaXMgd29ya2luZyB0byBtYWludGFpbiBpbiB0aGUgZmxlZXQuXG4gICAqIFdpdGggYXV0b21hdGljIHNjYWxpbmcsIHRoaXMgdmFsdWUgaXMgZGV0ZXJtaW5lZCBiYXNlZCBvbiB0aGUgc2NhbGluZyBwb2xpY2llcyBjdXJyZW50bHkgaW4gZm9yY2UuXG4gICAqIFdpdGhvdXQgYXV0b21hdGljIHNjYWxpbmcsIHRoaXMgdmFsdWUgaXMgc2V0IG1hbnVhbGx5LlxuICAgKiBUaGlzIG1ldHJpYyBpcyBub3QgYXZhaWxhYmxlIHdoZW4gdmlld2luZyBkYXRhIGZvciBmbGVldCBtZXRyaWMgZ3JvdXBzLlxuICAgKi9cbiAgbWV0cmljRGVzaXJlZEluc3RhbmNlcyhwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBBY3RpdmUgaW5zdGFuY2VzIHRoYXQgYXJlIGN1cnJlbnRseSBob3N0aW5nIHplcm8gKDApIGdhbWUgc2Vzc2lvbnMuXG4gICAqIFRoaXMgbWV0cmljIG1lYXN1cmVzIGNhcGFjaXR5IHRoYXQgaXMgYXZhaWxhYmxlIGJ1dCB1bnVzZWQuXG4gICAqIFRoaXMgbWV0cmljIGNhbiBiZSB1c2VkIHdpdGggYXV0b21hdGljIHNjYWxpbmcuXG4gICAqL1xuICBtZXRyaWNJZGxlSW5zdGFuY2VzKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBzcG90IGluc3RhbmNlcyB0aGF0IGhhdmUgYmVlbiBpbnRlcnJ1cHRlZC5cbiAgICovXG4gIG1ldHJpY0luc3RhbmNlSW50ZXJydXB0aW9ucyhwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBpbnN0YW5jZXMgdGhhdCBhcmUgYWxsb3dlZCBmb3IgdGhlIGZsZWV0LlxuICAgKiBBIGZsZWV0J3MgaW5zdGFuY2UgbWF4aW11bSBkZXRlcm1pbmVzIHRoZSBjYXBhY2l0eSBjZWlsaW5nIGR1cmluZyBtYW51YWwgb3IgYXV0b21hdGljIHNjYWxpbmcgdXAuXG4gICAqIFRoaXMgbWV0cmljIGlzIG5vdCBhdmFpbGFibGUgd2hlbiB2aWV3aW5nIGRhdGEgZm9yIGZsZWV0IG1ldHJpYyBncm91cHMuXG4gICAqL1xuICBtZXRyaWNNYXhJbnN0YW5jZXMocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogTWluaW11bSBudW1iZXIgb2YgaW5zdGFuY2VzIGFsbG93ZWQgZm9yIHRoZSBmbGVldC5cbiAgICogQSBmbGVldCdzIGluc3RhbmNlIG1pbmltdW0gZGV0ZXJtaW5lcyB0aGUgY2FwYWNpdHkgZmxvb3IgZHVyaW5nIG1hbnVhbCBvciBhdXRvbWF0aWMgc2NhbGluZyBkb3duLlxuICAgKiBUaGlzIG1ldHJpYyBpcyBub3QgYXZhaWxhYmxlIHdoZW4gdmlld2luZyBkYXRhIGZvciBmbGVldCBtZXRyaWMgZ3JvdXBzLlxuICAgKi9cbiAgbWV0cmljTWluSW5zdGFuY2VzKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSBuZXcgR2FtZWxpZnQgZmxlZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbGVldFByb3BzIHtcbiAgLyoqXG4gICAqIEEgZGVzY3JpcHRpdmUgbGFiZWwgdGhhdCBpcyBhc3NvY2lhdGVkIHdpdGggYSBmbGVldC4gRmxlZXQgbmFtZXMgZG8gbm90IG5lZWQgdG8gYmUgdW5pcXVlLlxuICAgKi9cbiAgcmVhZG9ubHkgZmxlZXROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gb2YgdGhlIGZsZWV0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGRlc2NyaXB0aW9uIGlzIHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gdXNlIE9uLURlbWFuZCBvciBTcG90IGluc3RhbmNlcyBmb3IgdGhpcyBmbGVldC5cbiAgICogQnkgZGVmYXVsdCwgZmxlZXQgdXNlIG9uIGRlbWFuZCBjYXBhY2l0eS5cbiAgICpcbiAgICogVGhpcyBwcm9wZXJ0eSBjYW5ub3QgYmUgY2hhbmdlZCBhZnRlciB0aGUgZmxlZXQgaXMgY3JlYXRlZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2FtZWxpZnQvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2dhbWVsaWZ0LWVjMi1pbnN0YW5jZXMuaHRtbCNnYW1lbGlmdC1lYzItaW5zdGFuY2VzLXNwb3RcbiAgICpcbiAgICogQGRlZmF1bHQgLSBHYW1lbGlmdCBmbGVldCB1c2Ugb24gZGVtYW5kIGNhcGFjaXR5XG4gICAqL1xuICByZWFkb25seSB1c2VTcG90PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHJvbXB0cyBHYW1lTGlmdCB0byBnZW5lcmF0ZSBhIFRMUy9TU0wgY2VydGlmaWNhdGUgZm9yIHRoZSBmbGVldC5cbiAgICogR2FtZUxpZnQgdXNlcyB0aGUgY2VydGlmaWNhdGVzIHRvIGVuY3J5cHQgdHJhZmZpYyBiZXR3ZWVuIGdhbWUgY2xpZW50cyBhbmQgdGhlIGdhbWUgc2VydmVycyBydW5uaW5nIG9uIEdhbWVMaWZ0LlxuICAgKlxuICAgKiBZb3UgY2FuJ3QgY2hhbmdlIHRoaXMgcHJvcGVydHkgYWZ0ZXIgeW91IGNyZWF0ZSB0aGUgZmxlZXQuXG4gICAqXG4gICAqIEFkZGl0aW9ubmFsIGluZm86XG4gICAqIEFXUyBDZXJ0aWZpY2F0ZSBNYW5hZ2VyIChBQ00pIGNlcnRpZmljYXRlcyBleHBpcmUgYWZ0ZXIgMTMgbW9udGhzLlxuICAgKiBDZXJ0aWZpY2F0ZSBleHBpcmF0aW9uIGNhbiBjYXVzZSBmbGVldHMgdG8gZmFpbCwgcHJldmVudGluZyBwbGF5ZXJzIGZyb20gY29ubmVjdGluZyB0byBpbnN0YW5jZXMgaW4gdGhlIGZsZWV0LlxuICAgKiBXZSByZWNvbW1lbmQgeW91IHJlcGxhY2UgZmxlZXRzIGJlZm9yZSAxMyBtb250aHMsIGNvbnNpZGVyIHVzaW5nIGZsZWV0IGFsaWFzZXMgZm9yIGEgc21vb3RoIHRyYW5zaXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVExTL1NTTCBjZXJ0aWZpY2F0ZSBhcmUgZ2VuZXJhdGVkIGZvciB0aGUgZmxlZXRcbiAgICovXG4gIHJlYWRvbmx5IHVzZUNlcnRpZmljYXRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIElBTSByb2xlIGFzc3VtZWQgYnkgR2FtZUxpZnQgZmxlZXQgaW5zdGFuY2VzIHRvIGFjY2VzcyBBV1MgcmVzc291cmNlcy5cbiAgICogV2l0aCBhIHJvbGUgc2V0LCBhbnkgYXBwbGljYXRpb24gdGhhdCBydW5zIG9uIGFuIGluc3RhbmNlIGluIHRoaXMgZmxlZXQgY2FuIGFzc3VtZSB0aGUgcm9sZSwgaW5jbHVkaW5nIGluc3RhbGwgc2NyaXB0cywgc2VydmVyIHByb2Nlc3NlcywgYW5kIGRhZW1vbnMgKGJhY2tncm91bmQgcHJvY2Vzc2VzKS5cbiAgICogSWYgcHJvdmlkaW5nIGEgY3VzdG9tIHJvbGUsIGl0IG5lZWRzIHRvIHRydXN0IHRoZSBHYW1lTGlmdCBzZXJ2aWNlIHByaW5jaXBhbCAoZ2FtZWxpZnQuYW1hem9uYXdzLmNvbSkuXG4gICAqIE5vIHBlcm1pc3Npb24gaXMgcmVxdWlyZWQgYnkgZGVmYXVsdC5cbiAgICpcbiAgICogVGhpcyBwcm9wZXJ0eSBjYW5ub3QgYmUgY2hhbmdlZCBhZnRlciB0aGUgZmxlZXQgaXMgY3JlYXRlZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2FtZWxpZnQvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2dhbWVsaWZ0LXNkay1zZXJ2ZXItcmVzb3VyY2VzLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIHJvbGUgd2lsbCBiZSBjcmVhdGVkIHdpdGggZGVmYXVsdCB0cnVzdCB0byBHYW1lbGlmdCBzZXJ2aWNlIHByaW5jaXBhbC5cbiAgICovXG4gIHJlYWRvbmx5IHJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIEEgVlBDIHBlZXJpbmcgY29ubmVjdGlvbiBiZXR3ZWVuIHlvdXIgR2FtZUxpZnQtaG9zdGVkIGdhbWUgc2VydmVycyBhbmQgeW91ciBvdGhlciBub24tR2FtZUxpZnQgcmVzb3VyY2VzLlxuICAgKiBVc2UgQW1hem9uIFZpcnR1YWwgUHJpdmF0ZSBDbG91ZCAoVlBDKSBwZWVyaW5nIGNvbm5lY3Rpb25zIHRvIGVuYWJsZSB5b3VyIGdhbWUgc2VydmVycyB0byBjb21tdW5pY2F0ZSBkaXJlY3RseSBhbmQgcHJpdmF0ZWx5IHdpdGggeW91ciBvdGhlciBBV1MgcmVzb3VyY2VzLCBzdWNoIGFzIGEgd2ViIHNlcnZpY2Ugb3IgYSByZXBvc2l0b3J5LlxuICAgKiBZb3UgY2FuIGVzdGFibGlzaCBWUEMgcGVlcmluZyB3aXRoIGFueSByZXNvdXJjZXMgdGhhdCBydW4gb24gQVdTIGFuZCBhcmUgbWFuYWdlZCBieSBhbiBBV1MgYWNjb3VudCB0aGF0IHlvdSBoYXZlIGFjY2VzcyB0by5cbiAgICogVGhlIFZQQyBtdXN0IGJlIGluIHRoZSBzYW1lIFJlZ2lvbiBhcyB5b3VyIGZsZWV0LlxuICAgKlxuICAgKiBXYXJuaW5nOlxuICAgKiBCZSBzdXJlIHRvIGNyZWF0ZSBhIFZQQyBQZWVyaW5nIGF1dGhvcml6YXRpb24gdGhyb3VnaCBHYW1lbGlmdCBTZXJ2aWNlIEFQSS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2FtZWxpZnQvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3ZwYy1wZWVyaW5nLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyB2cGMgcGVlcmluZ1xuICAgKi9cbiAgcmVhZG9ubHkgcGVlclZwYz86IGVjMi5JVnBjO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiBhbiBBV1MgQ2xvdWRXYXRjaCBtZXRyaWMgZ3JvdXAgdG8gYWRkIHRoaXMgZmxlZXQgdG8uXG4gICAqIEEgbWV0cmljIGdyb3VwIGlzIHVzZWQgdG8gYWdncmVnYXRlIHRoZSBtZXRyaWNzIGZvciBtdWx0aXBsZSBmbGVldHMuXG4gICAqIFlvdSBjYW4gc3BlY2lmeSBhbiBleGlzdGluZyBtZXRyaWMgZ3JvdXAgbmFtZSBvciBzZXQgYSBuZXcgbmFtZSB0byBjcmVhdGUgYSBuZXcgbWV0cmljIGdyb3VwLlxuICAgKiBBIGZsZWV0IGNhbiBiZSBpbmNsdWRlZCBpbiBvbmx5IG9uZSBtZXRyaWMgZ3JvdXAgYXQgYSB0aW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEZsZWV0IG1ldHJpY3MgYXJlIGFnZ3JlZ2F0ZWQgd2l0aCBvdGhlciBmbGVldHMgaW4gdGhlIGRlZmF1bHQgbWV0cmljIGdyb3VwXG4gICAqL1xuICByZWFkb25seSBtZXRyaWNHcm91cD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEdhbWVMaWZ0LXN1cHBvcnRlZCBBbWF6b24gRUMyIGluc3RhbmNlIHR5cGUgdG8gdXNlIGZvciBhbGwgZmxlZXQgaW5zdGFuY2VzLlxuICAgKiBJbnN0YW5jZSB0eXBlIGRldGVybWluZXMgdGhlIGNvbXB1dGluZyByZXNvdXJjZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gaG9zdCB5b3VyIGdhbWUgc2VydmVycywgaW5jbHVkaW5nIENQVSwgbWVtb3J5LCBzdG9yYWdlLCBhbmQgbmV0d29ya2luZyBjYXBhY2l0eS5cbiAgICpcbiAgICogQHNlZSBodHRwOi8vYXdzLmFtYXpvbi5jb20vZWMyL2luc3RhbmNlLXR5cGVzLyBmb3IgZGV0YWlsZWQgZGVzY3JpcHRpb25zIG9mIEFtYXpvbiBFQzIgaW5zdGFuY2UgdHlwZXMuXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZVR5cGU6IGVjMi5JbnN0YW5jZVR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgRUMyIGluc3RhbmNlcyB0aGF0IHlvdSB3YW50IHRoaXMgZmxlZXQgdG8gaG9zdC5cbiAgICogV2hlbiBjcmVhdGluZyBhIG5ldyBmbGVldCwgR2FtZUxpZnQgYXV0b21hdGljYWxseSBzZXRzIHRoaXMgdmFsdWUgdG8gXCIxXCIgYW5kIGluaXRpYXRlcyBhIHNpbmdsZSBpbnN0YW5jZS5cbiAgICogT25jZSB0aGUgZmxlZXQgaXMgYWN0aXZlLCB1cGRhdGUgdGhpcyB2YWx1ZSB0byB0cmlnZ2VyIEdhbWVMaWZ0IHRvIGFkZCBvciByZW1vdmUgaW5zdGFuY2VzIGZyb20gdGhlIGZsZWV0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgY2FwYWNpdHkgaXMgMFxuICAgKi9cbiAgcmVhZG9ubHkgZGVzaXJlZENhcGFjaXR5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgaW5zdGFuY2VzIHRoYXQgYXJlIGFsbG93ZWQgaW4gdGhlIHNwZWNpZmllZCBmbGVldCBsb2NhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgcmVhZG9ubHkgbWluU2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGluc3RhbmNlcyB0aGF0IGFyZSBhbGxvd2VkIGluIHRoZSBzcGVjaWZpZWQgZmxlZXQgbG9jYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHJlYWRvbmx5IG1heFNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0dXMgb2YgdGVybWluYXRpb24gcHJvdGVjdGlvbiBmb3IgYWN0aXZlIGdhbWUgc2Vzc2lvbnMgb24gdGhlIGZsZWV0LlxuICAgKiBCeSBkZWZhdWx0LCBuZXcgZ2FtZSBzZXNzaW9ucyBhcmUgcHJvdGVjdGVkIGFuZCBjYW5ub3QgYmUgdGVybWluYXRlZCBkdXJpbmcgYSBzY2FsZS1kb3duIGV2ZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlIC0gR2FtZSBzZXNzaW9ucyBpbiBgQUNUSVZFYCBzdGF0dXMgY2Fubm90IGJlIHRlcm1pbmF0ZWQgZHVyaW5nIGEgc2NhbGUtZG93biBldmVudC5cbiAgICovXG4gIHJlYWRvbmx5IHByb3RlY3ROZXdHYW1lU2Vzc2lvbj8gOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIGNvbGxlY3Rpb24gb2Ygc2VydmVyIHByb2Nlc3MgY29uZmlndXJhdGlvbnMgdGhhdCBkZXNjcmliZSB0aGUgc2V0IG9mIHByb2Nlc3NlcyB0byBydW4gb24gZWFjaCBpbnN0YW5jZSBpbiBhIGZsZWV0LlxuICAgKiBTZXJ2ZXIgcHJvY2Vzc2VzIHJ1biBlaXRoZXIgYW4gZXhlY3V0YWJsZSBpbiBhIGN1c3RvbSBnYW1lIGJ1aWxkIG9yIGEgUmVhbHRpbWUgU2VydmVycyBzY3JpcHQuXG4gICAqIEdhbWVMaWZ0IGxhdW5jaGVzIHRoZSBjb25maWd1cmVkIHByb2Nlc3NlcywgbWFuYWdlcyB0aGVpciBsaWZlIGN5Y2xlLCBhbmQgcmVwbGFjZXMgdGhlbSBhcyBuZWVkZWQuXG4gICAqIEVhY2ggaW5zdGFuY2UgY2hlY2tzIHJlZ3VsYXJseSBmb3IgYW4gdXBkYXRlZCBydW50aW1lIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIEEgR2FtZUxpZnQgaW5zdGFuY2UgaXMgbGltaXRlZCB0byA1MCBwcm9jZXNzZXMgcnVubmluZyBjb25jdXJyZW50bHkuXG4gICAqIFRvIGNhbGN1bGF0ZSB0aGUgdG90YWwgbnVtYmVyIG9mIHByb2Nlc3NlcyBpbiBhIHJ1bnRpbWUgY29uZmlndXJhdGlvbiwgYWRkIHRoZSB2YWx1ZXMgb2YgdGhlIENvbmN1cnJlbnRFeGVjdXRpb25zIHBhcmFtZXRlciBmb3IgZWFjaCBTZXJ2ZXJQcm9jZXNzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nYW1lbGlmdC9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvZmxlZXRzLW11bHRpcHJvY2Vzcy5odG1sXG4gICAqL1xuICByZWFkb25seSBydW50aW1lQ29uZmlndXJhdGlvbjogUnVudGltZUNvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIEEgc2V0IG9mIHJlbW90ZSBsb2NhdGlvbnMgdG8gZGVwbG95IGFkZGl0aW9uYWwgaW5zdGFuY2VzIHRvIGFuZCBtYW5hZ2UgYXMgcGFydCBvZiB0aGUgZmxlZXQuXG4gICAqIFRoaXMgcGFyYW1ldGVyIGNhbiBvbmx5IGJlIHVzZWQgd2hlbiBjcmVhdGluZyBmbGVldHMgaW4gQVdTIFJlZ2lvbnMgdGhhdCBzdXBwb3J0IG11bHRpcGxlIGxvY2F0aW9ucy5cbiAgICogWW91IGNhbiBhZGQgYW55IEdhbWVMaWZ0LXN1cHBvcnRlZCBBV1MgUmVnaW9uIGFzIGEgcmVtb3RlIGxvY2F0aW9uLCBpbiB0aGUgZm9ybSBvZiBhbiBBV1MgUmVnaW9uIGNvZGUgc3VjaCBhcyBgdXMtd2VzdC0yYC5cbiAgICogVG8gY3JlYXRlIGEgZmxlZXQgd2l0aCBpbnN0YW5jZXMgaW4gdGhlIGhvbWUgcmVnaW9uIG9ubHksIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ3JlYXRlIGEgZmxlZXQgd2l0aCBpbnN0YW5jZXMgaW4gdGhlIGhvbWUgcmVnaW9uIG9ubHlcbiAgICovXG4gIHJlYWRvbmx5IGxvY2F0aW9ucz86IExvY2F0aW9uW107XG5cbiAgLyoqXG4gICAqIEEgcG9saWN5IHRoYXQgbGltaXRzIHRoZSBudW1iZXIgb2YgZ2FtZSBzZXNzaW9ucyB0aGF0IGFuIGluZGl2aWR1YWwgcGxheWVyIGNhbiBjcmVhdGUgb24gaW5zdGFuY2VzIGluIHRoaXMgZmxlZXQgd2l0aGluIGEgc3BlY2lmaWVkIHNwYW4gb2YgdGltZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyByZXNvdXJjZSBjcmVhdGlvbiBsaW1pdCBwb2xpY3lcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlQ3JlYXRpb25MaW1pdFBvbGljeT86IFJlc291cmNlQ3JlYXRpb25MaW1pdFBvbGljeTtcbn1cblxuLyoqXG4gKiBBIGZ1bGwgc3BlY2lmaWNhdGlvbiBvZiBhIGZsZWV0IHRoYXQgY2FuIGJlIHVzZWQgdG8gaW1wb3J0IGl0IGZsdWVudGx5IGludG8gdGhlIENESyBhcHBsaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbGVldEF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZmxlZXRcbiAgICpcbiAgICogQXQgbGVhc3Qgb25lIG9mIGBmbGVldEFybmAgYW5kIGBmbGVldElkYCBtdXN0IGJlIHByb3ZpZGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlcml2ZWQgZnJvbSBgZmxlZXRJZGAuXG4gICAqL1xuICByZWFkb25seSBmbGVldEFybj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGZsZWV0XG4gICAqXG4gICAqIEF0IGxlYXN0IG9uZSBvZiBgZmxlZXRJZGAgYW5kIGBmbGVldEFybmAgIG11c3QgYmUgcHJvdmlkZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVyaXZlZCBmcm9tIGBmbGVldEFybmAuXG4gICAqL1xuICByZWFkb25seSBmbGVldElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgYXNzdW1lZCBieSBHYW1lTGlmdCBmbGVldCBpbnN0YW5jZXMgdG8gYWNjZXNzIEFXUyByZXNzb3VyY2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBpbXBvcnRlZCBmbGVldCBjYW5ub3QgYmUgZ3JhbnRlZCBhY2Nlc3MgdG8gb3RoZXIgcmVzb3VyY2VzIGFzIGFuIGBpYW0uSUdyYW50YWJsZWAuXG4gICAqL1xuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIG5ldyBhbmQgaW1wb3J0ZWQgR2FtZUxpZnQgZmxlZXQuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGbGVldEJhc2UgZXh0ZW5kcyBjZGsuUmVzb3VyY2UgaW1wbGVtZW50cyBJRmxlZXQge1xuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIGZsZWV0IGZyb20gaXRzIGF0dHJpYnV0ZXMuXG4gICAqL1xuICBzdGF0aWMgZnJvbUZsZWV0QXR0cmlidXRlcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhdHRyczogRmxlZXRBdHRyaWJ1dGVzKTogSUZsZWV0IHtcbiAgICBpZiAoIWF0dHJzLmZsZWV0SWQgJiYgIWF0dHJzLmZsZWV0QXJuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VpdGhlciBmbGVldElkIG9yIGZsZWV0QXJuIG11c3QgYmUgcHJvdmlkZWQgaW4gRmxlZXRBdHRyaWJ1dGVzJyk7XG4gICAgfVxuICAgIGNvbnN0IGZsZWV0SWQgPSBhdHRycy5mbGVldElkID8/XG4gICAgICBjZGsuU3RhY2sub2Yoc2NvcGUpLnNwbGl0QXJuKGF0dHJzLmZsZWV0QXJuISwgY2RrLkFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FKS5yZXNvdXJjZU5hbWU7XG5cbiAgICBpZiAoIWZsZWV0SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gZmxlZXQgaWRlbnRpZmllciBmb3VuZCBpbiBBUk46ICcke2F0dHJzLmZsZWV0QXJufSdgKTtcbiAgICB9XG5cbiAgICBjb25zdCBmbGVldEFybiA9IGF0dHJzLmZsZWV0QXJuID8/IGNkay5TdGFjay5vZihzY29wZSkuZm9ybWF0QXJuKHtcbiAgICAgIHNlcnZpY2U6ICdnYW1lbGlmdCcsXG4gICAgICByZXNvdXJjZTogJ2ZsZWV0JyxcbiAgICAgIHJlc291cmNlTmFtZTogYXR0cnMuZmxlZXRJZCxcbiAgICAgIGFybkZvcm1hdDogY2RrLkFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FLFxuICAgIH0pO1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIEZsZWV0QmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZmxlZXRJZCA9IGZsZWV0SWQhO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGZsZWV0QXJuID0gZmxlZXRBcm47XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWwgPSBhdHRycy5yb2xlID8/IG5ldyBpYW0uVW5rbm93blByaW5jaXBhbCh7IHJlc291cmNlOiB0aGlzIH0pO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHJvbGUgPSBhdHRycy5yb2xlO1xuXG4gICAgICBjb25zdHJ1Y3RvcihzOiBDb25zdHJ1Y3QsIGk6IHN0cmluZykge1xuICAgICAgICBzdXBlcihzLCBpLCB7XG4gICAgICAgICAgZW52aXJvbm1lbnRGcm9tQXJuOiBmbGVldEFybixcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIElkZW50aWZpZXIgb2YgdGhlIGZsZWV0LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGZsZWV0SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZmxlZXQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZmxlZXRBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByaW5jaXBhbCB0aGlzIEdhbWVMaWZ0IGZsZWV0IGlzIHVzaW5nLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsOiBpYW0uSVByaW5jaXBhbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGxvY2F0aW9uczogTG9jYXRpb25bXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGFuIGFsaWFzIGZvciB0aGlzIGZsZWV0LlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBkZWNsYXJlIGNvbnN0IGZsZWV0OiBnYW1lbGlmdC5GbGVldEJhc2U7XG4gICAqXG4gICAqIGZsZWV0LmFkZEFsaWFzKCdMaXZlJyk7XG4gICAqXG4gICAqIC8vIElzIGVxdWl2YWxlbnQgdG9cbiAgICpcbiAgICogbmV3IGdhbWVsaWZ0LkFsaWFzKHRoaXMsICdBbGlhc0xpdmUnLCB7XG4gICAqICAgYWxpYXNOYW1lOiAnTGl2ZScsXG4gICAqICAgZmxlZXQ6IGZsZWV0LFxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSBhbGlhc05hbWUgVGhlIG5hbWUgb2YgdGhlIGFsaWFzXG4gICAqIEBwYXJhbSBvcHRpb25zIEFsaWFzIG9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBhZGRBbGlhcyhhbGlhc05hbWU6IHN0cmluZywgb3B0aW9uczogQWxpYXNPcHRpb25zID0ge30pIHtcbiAgICByZXR1cm4gbmV3IEFsaWFzKHRoaXMsIGBBbGlhcyR7YWxpYXNOYW1lfWAsIHtcbiAgICAgIGFsaWFzTmFtZSxcbiAgICAgIGZsZWV0OiB0aGlzLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgcmVzb3VyY2VBcm5zOiBbdGhpcy5mbGVldEFybl0sXG4gICAgICBncmFudGVlOiBncmFudGVlLFxuICAgICAgYWN0aW9uczogYWN0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBtZXRyaWMobWV0cmljTmFtZTogc3RyaW5nLCBwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9HYW1lTGlmdCcsXG4gICAgICBtZXRyaWNOYW1lOiBtZXRyaWNOYW1lLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBGbGVldElkOiB0aGlzLmZsZWV0SWQsXG4gICAgICB9LFxuICAgICAgLi4ucHJvcHMsXG4gICAgfSkuYXR0YWNoVG8odGhpcyk7XG4gIH1cblxuICBwdWJsaWMgbWV0cmljQWN0aXZlSW5zdGFuY2VzKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLmNhbm5lZE1ldHJpYyhHYW1lTGlmdE1ldHJpY3MuYWN0aXZlSW5zdGFuY2VzQXZlcmFnZSwgcHJvcHMpO1xuICB9XG5cbiAgcHVibGljIG1ldHJpY1BlcmNlbnRJZGxlSW5zdGFuY2VzKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLmNhbm5lZE1ldHJpYyhHYW1lTGlmdE1ldHJpY3MucGVyY2VudElkbGVJbnN0YW5jZXNBdmVyYWdlLCBwcm9wcyk7XG4gIH1cblxuICBwdWJsaWMgbWV0cmljRGVzaXJlZEluc3RhbmNlcyhwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5jYW5uZWRNZXRyaWMoR2FtZUxpZnRNZXRyaWNzLmRlc2lyZWRJbnN0YW5jZXNBdmVyYWdlLCBwcm9wcyk7XG4gIH1cblxuICBwdWJsaWMgbWV0cmljSWRsZUluc3RhbmNlcyhwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5jYW5uZWRNZXRyaWMoR2FtZUxpZnRNZXRyaWNzLmlkbGVJbnN0YW5jZXNBdmVyYWdlLCBwcm9wcyk7XG4gIH1cblxuICBwdWJsaWMgbWV0cmljSW5zdGFuY2VJbnRlcnJ1cHRpb25zKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLmNhbm5lZE1ldHJpYyhHYW1lTGlmdE1ldHJpY3MuaW5zdGFuY2VJbnRlcnJ1cHRpb25zU3VtLCBwcm9wcyk7XG4gIH1cblxuICBwdWJsaWMgbWV0cmljTWF4SW5zdGFuY2VzKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLmNhbm5lZE1ldHJpYyhHYW1lTGlmdE1ldHJpY3MubWF4SW5zdGFuY2VzQXZlcmFnZSwgcHJvcHMpO1xuICB9XG5cbiAgcHVibGljIG1ldHJpY01pbkluc3RhbmNlcyhwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5jYW5uZWRNZXRyaWMoR2FtZUxpZnRNZXRyaWNzLm1pbkluc3RhbmNlc0F2ZXJhZ2UsIHByb3BzKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FubmVkTWV0cmljKGZuOiAoZGltczogeyBGbGVldElkOiBzdHJpbmcgfSkgPT4gY2xvdWR3YXRjaC5NZXRyaWNQcm9wcywgcHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICAuLi5mbih7IEZsZWV0SWQ6IHRoaXMuZmxlZXRJZCB9KSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pLmF0dGFjaFRvKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gdG8gcHV0IGludG8gdGhlIGRlc3RpbmF0aW9uIGZpZWxkIG9mIGEgZ2FtZSBzZXNzaW9uIHF1ZXVlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHJlc291cmNlQXJuRm9yRGVzdGluYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxlZXRBcm47XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlbW90ZSBsb2NhdGlvbnMgdG8gZGVwbG95IGFkZGl0aW9uYWwgaW5zdGFuY2VzIHRvIGFuZCBtYW5hZ2UgYXMgcGFydCBvZiB0aGUgZmxlZXQuXG4gICAqXG4gICAqIEBwYXJhbSByZWdpb24gVGhlIEFXUyByZWdpb24gdG8gYWRkXG4gICAqL1xuICBwdWJsaWMgYWRkTG9jYXRpb24ocmVnaW9uOiBzdHJpbmcsIGRlc2lyZWRDYXBhY2l0eT86IG51bWJlciwgbWluU2l6ZT86IG51bWJlciwgbWF4U2l6ZT86IG51bWJlcikge1xuICAgIHRoaXMuYWRkSW50ZXJuYWxMb2NhdGlvbih7XG4gICAgICByZWdpb246IHJlZ2lvbixcbiAgICAgIGNhcGFjaXR5OiB7XG4gICAgICAgIGRlc2lyZWRDYXBhY2l0eTogZGVzaXJlZENhcGFjaXR5LFxuICAgICAgICBtaW5TaXplOiBtaW5TaXplLFxuICAgICAgICBtYXhTaXplOiBtYXhTaXplLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVtb3RlIGxvY2F0aW9ucyB0byBkZXBsb3kgYWRkaXRpb25hbCBpbnN0YW5jZXMgdG8gYW5kIG1hbmFnZSBhcyBwYXJ0IG9mIHRoZSBmbGVldC5cbiAgICpcbiAgICogQHBhcmFtIGxvY2F0aW9uIFRoZSBsb2NhdGlvbiB0byBhZGRcbiAgICovXG4gIHB1YmxpYyBhZGRJbnRlcm5hbExvY2F0aW9uKGxvY2F0aW9uOiBMb2NhdGlvbikge1xuICAgIGlmICh0aGlzLmxvY2F0aW9ucy5sZW5ndGggPT0gMTAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIG1vcmUgdGhhbiAxMDAgbG9jYXRpb25zIGFyZSBhbGxvd2VkIHBlciBmbGVldCcpO1xuICAgIH1cblxuICAgIHRoaXMubG9jYXRpb25zLnB1c2gobG9jYXRpb24pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlUmVzb3VyY2VDcmVhdGlvbkxpbWl0UG9saWN5KHByb3BzOiBGbGVldFByb3BzKTogQ2ZuRmxlZXQuUmVzb3VyY2VDcmVhdGlvbkxpbWl0UG9saWN5UHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGlmICghcHJvcHMucmVzb3VyY2VDcmVhdGlvbkxpbWl0UG9saWN5IHx8XG4gICAgICAgICghcHJvcHMucmVzb3VyY2VDcmVhdGlvbkxpbWl0UG9saWN5Lm5ld0dhbWVTZXNzaW9uc1BlckNyZWF0b3JcbiAgICAgICAgICAgICYmICFwcm9wcy5yZXNvdXJjZUNyZWF0aW9uTGltaXRQb2xpY3kucG9saWN5UGVyaW9kKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmV3R2FtZVNlc3Npb25zUGVyQ3JlYXRvcjogcHJvcHMucmVzb3VyY2VDcmVhdGlvbkxpbWl0UG9saWN5Lm5ld0dhbWVTZXNzaW9uc1BlckNyZWF0b3IsXG4gICAgICBwb2xpY3lQZXJpb2RJbk1pbnV0ZXM6IHByb3BzLnJlc291cmNlQ3JlYXRpb25MaW1pdFBvbGljeS5wb2xpY3lQZXJpb2Q/LnRvTWludXRlcygpLFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VMb2NhdGlvbnMoKTogQ2ZuRmxlZXQuTG9jYXRpb25Db25maWd1cmF0aW9uUHJvcGVydHlbXSB8wqB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5sb2NhdGlvbnMgfHwgdGhpcy5sb2NhdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuXG4gICAgcmV0dXJuIHRoaXMubG9jYXRpb25zLm1hcChwYXJzZUxvY2F0aW9uKTtcblxuICAgIGZ1bmN0aW9uIHBhcnNlTG9jYXRpb24obG9jYXRpb246IExvY2F0aW9uKTogQ2ZuRmxlZXQuTG9jYXRpb25Db25maWd1cmF0aW9uUHJvcGVydHkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbG9jYXRpb246IGxvY2F0aW9uLnJlZ2lvbixcbiAgICAgICAgbG9jYXRpb25DYXBhY2l0eTogc2VsZi5wYXJzZUxvY2F0aW9uQ2FwYWNpdHkobG9jYXRpb24uY2FwYWNpdHkpLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VMb2NhdGlvbkNhcGFjaXR5KGNhcGFjaXR5PzogTG9jYXRpb25DYXBhY2l0eSk6IENmbkZsZWV0LkxvY2F0aW9uQ2FwYWNpdHlQcm9wZXJ0eSB8wqB1bmRlZmluZWQge1xuICAgIGlmICghY2FwYWNpdHkgfHxcbiAgICAgICAgKCFjYXBhY2l0eS5kZXNpcmVkQ2FwYWNpdHlcbiAgICAgICAgICAgICYmICFjYXBhY2l0eS5taW5TaXplXG4gICAgICAgICAgICAmJiAhY2FwYWNpdHkubWF4U2l6ZSkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRlc2lyZWRFYzJJbnN0YW5jZXM6IGNhcGFjaXR5LmRlc2lyZWRDYXBhY2l0eSA/PyAwLFxuICAgICAgbWluU2l6ZTogY2FwYWNpdHkubWluU2l6ZSA/PyAwLFxuICAgICAgbWF4U2l6ZTogY2FwYWNpdHkubWF4U2l6ZSA/PyAxLFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VSdW50aW1lQ29uZmlndXJhdGlvbihwcm9wczogRmxlZXRQcm9wcyk6IENmbkZsZWV0LlJ1bnRpbWVDb25maWd1cmF0aW9uUHJvcGVydHkgfMKgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXByb3BzLnJ1bnRpbWVDb25maWd1cmF0aW9uIHx8XG4gICAgICAgICghcHJvcHMucnVudGltZUNvbmZpZ3VyYXRpb24uZ2FtZVNlc3Npb25BY3RpdmF0aW9uVGltZW91dFxuICAgICAgICAgICAgJiYgIXByb3BzLnJ1bnRpbWVDb25maWd1cmF0aW9uLm1heENvbmN1cnJlbnRHYW1lU2Vzc2lvbkFjdGl2YXRpb25zXG4gICAgICAgICAgICAmJiBwcm9wcy5ydW50aW1lQ29uZmlndXJhdGlvbi5zZXJ2ZXJQcm9jZXNzZXMubGVuZ3RoID09IDApKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgZ2FtZVNlc3Npb25BY3RpdmF0aW9uVGltZW91dFNlY29uZHM6IHByb3BzLnJ1bnRpbWVDb25maWd1cmF0aW9uLmdhbWVTZXNzaW9uQWN0aXZhdGlvblRpbWVvdXQ/LnRvU2Vjb25kcygpLFxuICAgICAgbWF4Q29uY3VycmVudEdhbWVTZXNzaW9uQWN0aXZhdGlvbnM6IHByb3BzLnJ1bnRpbWVDb25maWd1cmF0aW9uLm1heENvbmN1cnJlbnRHYW1lU2Vzc2lvbkFjdGl2YXRpb25zLFxuICAgICAgc2VydmVyUHJvY2Vzc2VzOiBwcm9wcy5ydW50aW1lQ29uZmlndXJhdGlvbi5zZXJ2ZXJQcm9jZXNzZXMubWFwKHBhcnNlU2VydmVyUHJvY2VzcyksXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIHBhcnNlU2VydmVyUHJvY2VzcyhzZXJ2ZXJQcm9jZXNzOiBTZXJ2ZXJQcm9jZXNzKTogQ2ZuRmxlZXQuU2VydmVyUHJvY2Vzc1Byb3BlcnR5IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhcmFtZXRlcnM6IHNlcnZlclByb2Nlc3MucGFyYW1ldGVycyxcbiAgICAgICAgbGF1bmNoUGF0aDogc2VydmVyUHJvY2Vzcy5sYXVuY2hQYXRoLFxuICAgICAgICBjb25jdXJyZW50RXhlY3V0aW9uczogc2VydmVyUHJvY2Vzcy5jb25jdXJyZW50RXhlY3V0aW9ucyA/PyAxLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgd2FyblZwY1BlZXJpbmdBdXRob3JpemF0aW9ucyhzY29wZTogQ29uc3RydWN0KTogdm9pZCB7XG4gICAgY2RrLkFubm90YXRpb25zLm9mKHNjb3BlKS5hZGRXYXJuaW5nVjIoJ0Bhd3MtY2RrL2F3cy1nYW1lbGlmdDpmbGVldEF1dG9yaXplVnBjUGVlcmluZycsIFtcbiAgICAgICdUbyBhdXRob3JpemUgdGhlIFZQQyBwZWVyaW5nLCBjYWxsIHRoZSBHYW1lTGlmdCBzZXJ2aWNlIEFQSSBDcmVhdGVWcGNQZWVyaW5nQXV0aG9yaXphdGlvbigpIG9yIHVzZSB0aGUgQVdTIENMSSBjb21tYW5kIGNyZWF0ZS12cGMtcGVlcmluZy1hdXRob3JpemF0aW9uLicsXG4gICAgICAnTWFrZSB0aGlzIGNhbGwgdXNpbmcgdGhlIGFjY291bnQgdGhhdCBtYW5hZ2VzIHlvdXIgbm9uLUdhbWVMaWZ0IHJlc291cmNlcy4nLFxuICAgICAgJ1NlZTogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dhbWVsaWZ0L2xhdGVzdC9kZXZlbG9wZXJndWlkZS92cGMtcGVlcmluZy5odG1sJyxcbiAgICBdLmpvaW4oJ1xcbicpKTtcbiAgfVxufVxuIl19
|
|
273
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxlZXQtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImZsZWV0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5REFBeUQ7QUFHekQsc0hBQWlHO0FBQ2pHLDJDQUEyQztBQUMzQyx3Q0FBd0M7QUFFeEMsbUNBQThDO0FBOFk5Qzs7R0FFRztBQUNILE1BQXNCLFNBQVUsU0FBUSxHQUFHLENBQUMsUUFBUTs7SUFDbEQ7O09BRUc7SUFDSCxNQUFNLENBQUMsbUJBQW1CLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBc0I7Ozs7Ozs7Ozs7UUFDN0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO1FBQ3BGLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTztZQUMzQixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVMsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUMsWUFBWSxDQUFDO1FBRWhHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLEtBQUssQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQzNFLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMvRCxPQUFPLEVBQUUsVUFBVTtZQUNuQixRQUFRLEVBQUUsT0FBTztZQUNqQixZQUFZLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDM0IsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsbUJBQW1CO1NBQzdD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Q0FBQyxvQkFBb0IsQ0FBQyxlQUFlLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbkUsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELE9BQU87WUFDTCxtQ0FBbUMsRUFBRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsNEJBQTRCLEVBQUUsU0FBUyxFQUFFO1lBQ3pHLG1DQUFtQyxFQUFFLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxtQ0FBbUM7WUFDbkcsZUFBZSxFQUFFLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDO1NBQ3BGLENBQUM7UUFFRixTQUFTLGtCQUFrQixDQUFDLGFBQTRCO1lBQ3RELE9BQU87Z0JBQ0wsVUFBVSxFQUFFLGFBQWEsQ0FBQyxVQUFVO2dCQUNwQyxVQUFVLEVBQUUsYUFBYSxDQUFDLFVBQVU7Z0JBQ3BDLG9CQUFvQixFQUFFLGFBQWEsQ0FBQyxvQkFBb0IsSUFBSSxDQUFDO2FBQzlELENBQUM7UUFDSixDQUFDO0tBQ0Y7SUFFUyw0QkFBNEIsQ0FBQyxLQUFnQjtRQUNyRCxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsK0NBQStDLEVBQUU7WUFDdEYsMEpBQTBKO1lBQzFKLDRFQUE0RTtZQUM1RSxrRkFBa0Y7U0FDbkYsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUNmOztBQXRQSCw4QkF1UEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjbG91ZHdhdGNoIGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7IENmbkZsZWV0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWdhbWVsaWZ0JztcbmltcG9ydCB7IEdhbWVMaWZ0TWV0cmljcyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1nYW1lbGlmdC9saWIvZ2FtZWxpZnQtY2FubmVkLW1ldHJpY3MuZ2VuZXJhdGVkJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQWxpYXMsIEFsaWFzT3B0aW9ucyB9IGZyb20gJy4vYWxpYXMnO1xuaW1wb3J0IHsgSUdhbWVTZXNzaW9uUXVldWVEZXN0aW5hdGlvbiB9IGZyb20gJy4vZ2FtZS1zZXNzaW9uLXF1ZXVlJztcblxuLyoqXG4gKiBDdXJyZW50IHJlc291cmNlIGNhcGFjaXR5IHNldHRpbmdzIGluIGEgc3BlY2lmaWVkIGZsZWV0IG9yIGxvY2F0aW9uLlxuICogVGhlIGxvY2F0aW9uIHZhbHVlIG1pZ2h0IHJlZmVyIHRvIGEgZmxlZXQncyByZW1vdGUgbG9jYXRpb24gb3IgaXRzIGhvbWUgUmVnaW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvY2F0aW9uQ2FwYWNpdHkge1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBBbWF6b24gRUMyIGluc3RhbmNlcyB5b3Ugd2FudCB0byBtYWludGFpbiBpbiB0aGUgc3BlY2lmaWVkIGZsZWV0IGxvY2F0aW9uLlxuICAgKiBUaGlzIHZhbHVlIG11c3QgZmFsbCBiZXR3ZWVuIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIHNpemUgbGltaXRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICByZWFkb25seSBkZXNpcmVkQ2FwYWNpdHk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBpbnN0YW5jZXMgdGhhdCBhcmUgYWxsb3dlZCBpbiB0aGUgc3BlY2lmaWVkIGZsZWV0IGxvY2F0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBtYXhTaXplPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgaW5zdGFuY2VzIHRoYXQgYXJlIGFsbG93ZWQgaW4gdGhlIHNwZWNpZmllZCBmbGVldCBsb2NhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgcmVhZG9ubHkgbWluU2l6ZT86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBIHJlbW90ZSBsb2NhdGlvbiB3aGVyZSBhIG11bHRpLWxvY2F0aW9uIGZsZWV0IGNhbiBkZXBsb3kgRUMyIGluc3RhbmNlcyBmb3IgZ2FtZSBob3N0aW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvY2F0aW9uIHtcbiAgLyoqXG4gICAqIEFuIEFXUyBSZWdpb24gY29kZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1cnJlbnQgcmVzb3VyY2UgY2FwYWNpdHkgc2V0dGluZ3MgaW4gYSBzcGVjaWZpZWQgZmxlZXQgb3IgbG9jYXRpb24uXG4gICAqIFRoZSBsb2NhdGlvbiB2YWx1ZSBtaWdodCByZWZlciB0byBhIGZsZWV0J3MgcmVtb3RlIGxvY2F0aW9uIG9yIGl0cyBob21lIFJlZ2lvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjYXBhY2l0eSBzZXR0aW5ncyBvbiB0aGUgc3BlY2lmaWVkIGxvY2F0aW9uXG4gICAqL1xuICByZWFkb25seSBjYXBhY2l0eT86IExvY2F0aW9uQ2FwYWNpdHk7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvZiBhIGZsZWV0IHNlcnZlciBwcm9jZXNzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVyUHJvY2VzcyB7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHNlcnZlciBwcm9jZXNzZXMgdXNpbmcgdGhpcyBjb25maWd1cmF0aW9uIHRoYXQgcnVuIGNvbmN1cnJlbnRseSBvbiBlYWNoIGluc3RhbmNlLlxuICAgKiBNaW5pbXVtIGlzIGAxYFxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBjb25jdXJyZW50RXhlY3V0aW9ucz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGxvY2F0aW9uIG9mIGEgZ2FtZSBidWlsZCBleGVjdXRhYmxlIG9yIHRoZSBSZWFsdGltZSBzY3JpcHQgZmlsZSB0aGF0IGNvbnRhaW5zIHRoZSBJbml0KCkgZnVuY3Rpb24uIEdhbWUgYnVpbGRzIGFuZCBSZWFsdGltZSBzY3JpcHRzIGFyZSBpbnN0YWxsZWQgb24gaW5zdGFuY2VzIGF0IHRoZSByb290OlxuICAgKiAtIFdpbmRvd3MgKGN1c3RvbSBnYW1lIGJ1aWxkcyBvbmx5KTogYEM6XFxnYW1lYC4gRXhhbXBsZTogYEM6XFxnYW1lXFxNeUdhbWVcXHNlcnZlci5leGVgXG4gICAqIC0gTGludXg6IGAvbG9jYWwvZ2FtZWAuIEV4YW1wbGVzOiBgL2xvY2FsL2dhbWUvTXlHYW1lL3NlcnZlci5leGVgIG9yIGAvbG9jYWwvZ2FtZS9NeVJlYWx0aW1lU2NyaXB0LmpzYFxuICAgKi9cbiAgcmVhZG9ubHkgbGF1bmNoUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBsaXN0IG9mIHBhcmFtZXRlcnMgdG8gcGFzcyB0byB0aGUgc2VydmVyIGV4ZWN1dGFibGUgb3IgUmVhbHRpbWUgc2NyaXB0IG9uIGxhdW5jaC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgY29sbGVjdGlvbiBvZiBzZXJ2ZXIgcHJvY2VzcyBjb25maWd1cmF0aW9ucyB0aGF0IGRlc2NyaWJlIHRoZSBzZXQgb2YgcHJvY2Vzc2VzIHRvIHJ1biBvbiBlYWNoIGluc3RhbmNlIGluIGEgZmxlZXQuXG4gKiBTZXJ2ZXIgcHJvY2Vzc2VzIHJ1biBlaXRoZXIgYW4gZXhlY3V0YWJsZSBpbiBhIGN1c3RvbSBnYW1lIGJ1aWxkIG9yIGEgUmVhbHRpbWUgU2VydmVycyBzY3JpcHQuXG4gKiBHYW1lTGlmdCBsYXVuY2hlcyB0aGUgY29uZmlndXJlZCBwcm9jZXNzZXMsIG1hbmFnZXMgdGhlaXIgbGlmZSBjeWNsZSwgYW5kIHJlcGxhY2VzIHRoZW0gYXMgbmVlZGVkLlxuICogRWFjaCBpbnN0YW5jZSBjaGVja3MgcmVndWxhcmx5IGZvciBhbiB1cGRhdGVkIHJ1bnRpbWUgY29uZmlndXJhdGlvbi5cbiAqXG4gKiBBIEdhbWVMaWZ0IGluc3RhbmNlIGlzIGxpbWl0ZWQgdG8gNTAgcHJvY2Vzc2VzIHJ1bm5pbmcgY29uY3VycmVudGx5LlxuICogVG8gY2FsY3VsYXRlIHRoZSB0b3RhbCBudW1iZXIgb2YgcHJvY2Vzc2VzIGluIGEgcnVudGltZSBjb25maWd1cmF0aW9uLCBhZGQgdGhlIHZhbHVlcyBvZiB0aGUgYENvbmN1cnJlbnRFeGVjdXRpb25zYCBwYXJhbWV0ZXIgZm9yIGVhY2ggYFNlcnZlclByb2Nlc3NgLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dhbWVsaWZ0L2xhdGVzdC9kZXZlbG9wZXJndWlkZS9mbGVldHMtbXVsdGlwcm9jZXNzLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdW50aW1lQ29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBhbW91bnQgb2YgdGltZSBhbGxvd2VkIHRvIGxhdW5jaCBhIG5ldyBnYW1lIHNlc3Npb24gYW5kIGhhdmUgaXQgcmVwb3J0IHJlYWR5IHRvIGhvc3QgcGxheWVycy5cbiAgICogRHVyaW5nIHRoaXMgdGltZSwgdGhlIGdhbWUgc2Vzc2lvbiBpcyBpbiBzdGF0dXMgYEFDVElWQVRJTkdgLlxuICAgKlxuICAgKiBJZiB0aGUgZ2FtZSBzZXNzaW9uIGRvZXMgbm90IGJlY29tZSBhY3RpdmUgYmVmb3JlIHRoZSB0aW1lb3V0LCBpdCBpcyBlbmRlZCBhbmQgdGhlIGdhbWUgc2Vzc2lvbiBzdGF0dXMgaXMgY2hhbmdlZCB0byBgVEVSTUlOQVRFRGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IER1cmF0aW9uLnNlY29uZHMoMzAwKVxuICAgKi9cbiAgcmVhZG9ubHkgZ2FtZVNlc3Npb25BY3RpdmF0aW9uVGltZW91dD86IGNkay5EdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBnYW1lIHNlc3Npb25zIGluIHN0YXR1cyBgQUNUSVZBVElOR2AgdG8gYWxsb3cgb24gYW4gaW5zdGFuY2UuXG4gICAqXG4gICAqIFRoaXMgc2V0dGluZyBsaW1pdHMgdGhlIGluc3RhbmNlIHJlc291cmNlcyB0aGF0IGNhbiBiZSB1c2VkIGZvciBuZXcgZ2FtZSBhY3RpdmF0aW9ucyBhdCBhbnkgb25lIHRpbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbGltaXRcbiAgICovXG4gIHJlYWRvbmx5IG1heENvbmN1cnJlbnRHYW1lU2Vzc2lvbkFjdGl2YXRpb25zPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBIGNvbGxlY3Rpb24gb2Ygc2VydmVyIHByb2Nlc3MgY29uZmlndXJhdGlvbnMgdGhhdCBpZGVudGlmeSB3aGF0IHNlcnZlciBwcm9jZXNzZXMgdG8gcnVuIG9uIGVhY2ggaW5zdGFuY2UgaW4gYSBmbGVldC5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZlclByb2Nlc3NlczogU2VydmVyUHJvY2Vzc1tdO1xufVxuXG4vKipcbiAqIEEgcG9saWN5IHRoYXQgbGltaXRzIHRoZSBudW1iZXIgb2YgZ2FtZSBzZXNzaW9ucyBhIHBsYXllciBjYW4gY3JlYXRlIG9uIHRoZSBzYW1lIGZsZWV0LlxuICogVGhpcyBvcHRpb25hbCBwb2xpY3kgZ2l2ZXMgZ2FtZSBvd25lcnMgY29udHJvbCBvdmVyIGhvdyBwbGF5ZXJzIGNhbiBjb25zdW1lIGF2YWlsYWJsZSBnYW1lIHNlcnZlciByZXNvdXJjZXMuXG4gKiBBIHJlc291cmNlIGNyZWF0aW9uIHBvbGljeSBtYWtlcyB0aGUgZm9sbG93aW5nIHN0YXRlbWVudDogXCJBbiBpbmRpdmlkdWFsIHBsYXllciBjYW4gY3JlYXRlIGEgbWF4aW11bSBudW1iZXIgb2YgbmV3IGdhbWUgc2Vzc2lvbnMgd2l0aGluIGEgc3BlY2lmaWVkIHRpbWUgcGVyaW9kXCIuXG4gKlxuICogVGhlIHBvbGljeSBpcyBldmFsdWF0ZWQgd2hlbiBhIHBsYXllciB0cmllcyB0byBjcmVhdGUgYSBuZXcgZ2FtZSBzZXNzaW9uLlxuICogRm9yIGV4YW1wbGUsIGFzc3VtZSB5b3UgaGF2ZSBhIHBvbGljeSBvZiAxMCBuZXcgZ2FtZSBzZXNzaW9ucyBhbmQgYSB0aW1lIHBlcmlvZCBvZiA2MCBtaW51dGVzLlxuICogT24gcmVjZWl2aW5nIGEgYENyZWF0ZUdhbWVTZXNzaW9uYCByZXF1ZXN0LCBBbWF6b24gR2FtZUxpZnQgY2hlY2tzIHRoYXQgdGhlIHBsYXllciAoaWRlbnRpZmllZCBieSBDcmVhdG9ySWQpIGhhcyBjcmVhdGVkIGZld2VyIHRoYW4gMTAgZ2FtZSBzZXNzaW9ucyBpbiB0aGUgcGFzdCA2MCBtaW51dGVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlQ3JlYXRpb25MaW1pdFBvbGljeSB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgZ2FtZSBzZXNzaW9ucyB0aGF0IGFuIGluZGl2aWR1YWwgY2FuIGNyZWF0ZSBkdXJpbmcgdGhlIHBvbGljeSBwZXJpb2QuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbGltaXQgb24gdGhlIG51bWJlciBvZiBnYW1lIHNlc3Npb25zIHRoYXQgYW4gaW5kaXZpZHVhbCBjYW4gY3JlYXRlIGR1cmluZyB0aGUgcG9saWN5IHBlcmlvZFxuICAgKi9cbiAgcmVhZG9ubHkgbmV3R2FtZVNlc3Npb25zUGVyQ3JlYXRvcj86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHRpbWUgc3BhbiB1c2VkIGluIGV2YWx1YXRpbmcgdGhlIHJlc291cmNlIGNyZWF0aW9uIGxpbWl0IHBvbGljeS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwb2xpY3kgcGVyaW9kXG4gICAqL1xuICByZWFkb25seSBwb2xpY3lQZXJpb2Q/OiBjZGsuRHVyYXRpb247XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIEdhbWVsaWZ0IGZsZWV0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUZsZWV0IGV4dGVuZHMgY2RrLklSZXNvdXJjZSwgaWFtLklHcmFudGFibGUsIElHYW1lU2Vzc2lvblF1ZXVlRGVzdGluYXRpb24ge1xuICAvKipcbiAgICogVGhlIElkZW50aWZpZXIgb2YgdGhlIGZsZWV0LlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBmbGVldElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGZsZWV0LlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBmbGVldEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgYGdyYW50ZWVgIGlkZW50aXR5IHBlcm1pc3Npb25zIHRvIHBlcmZvcm0gYGFjdGlvbnNgLlxuICAgKi9cbiAgZ3JhbnQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIC4uLmFjdGlvbnM6IHN0cmluZ1tdKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGdpdmVuIG5hbWVkIG1ldHJpYyBmb3IgdGhpcyBmbGVldC5cbiAgICovXG4gIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIEluc3RhbmNlcyB3aXRoIGBBQ1RJVkVgIHN0YXR1cywgd2hpY2ggbWVhbnMgdGhleSBhcmUgcnVubmluZyBhY3RpdmUgc2VydmVyIHByb2Nlc3Nlcy5cbiAgICogVGhlIGNvdW50IGluY2x1ZGVzIGlkbGUgaW5zdGFuY2VzIGFuZCB0aG9zZSB0aGF0IGFyZSBob3N0aW5nIG9uZSBvciBtb3JlIGdhbWUgc2Vzc2lvbnMuXG4gICAqIFRoaXMgbWV0cmljIG1lYXN1cmVzIGN1cnJlbnQgdG90YWwgaW5zdGFuY2UgY2FwYWNpdHkuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljIGNhbiBiZSB1c2VkIHdpdGggYXV0b21hdGljIHNjYWxpbmcuXG4gICAqL1xuICBtZXRyaWNBY3RpdmVJbnN0YW5jZXMocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogUGVyY2VudGFnZSBvZiBhbGwgYWN0aXZlIGluc3RhbmNlcyB0aGF0IGFyZSBpZGxlIChjYWxjdWxhdGVkIGFzIElkbGVJbnN0YW5jZXMgLyBBY3RpdmVJbnN0YW5jZXMpLlxuICAgKiBUaGlzIG1ldHJpYyBjYW4gYmUgdXNlZCBmb3IgYXV0b21hdGljIHNjYWxpbmcuXG4gICAqL1xuICBtZXRyaWNQZXJjZW50SWRsZUluc3RhbmNlcyhwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBUYXJnZXQgbnVtYmVyIG9mIGFjdGl2ZSBpbnN0YW5jZXMgdGhhdCBHYW1lTGlmdCBpcyB3b3JraW5nIHRvIG1haW50YWluIGluIHRoZSBmbGVldC5cbiAgICogV2l0aCBhdXRvbWF0aWMgc2NhbGluZywgdGhpcyB2YWx1ZSBpcyBkZXRlcm1pbmVkIGJhc2VkIG9uIHRoZSBzY2FsaW5nIHBvbGljaWVzIGN1cnJlbnRseSBpbiBmb3JjZS5cbiAgICogV2l0aG91dCBhdXRvbWF0aWMgc2NhbGluZywgdGhpcyB2YWx1ZSBpcyBzZXQgbWFudWFsbHkuXG4gICAqIFRoaXMgbWV0cmljIGlzIG5vdCBhdmFpbGFibGUgd2hlbiB2aWV3aW5nIGRhdGEgZm9yIGZsZWV0IG1ldHJpYyBncm91cHMuXG4gICAqL1xuICBtZXRyaWNEZXNpcmVkSW5zdGFuY2VzKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIEFjdGl2ZSBpbnN0YW5jZXMgdGhhdCBhcmUgY3VycmVudGx5IGhvc3RpbmcgemVybyAoMCkgZ2FtZSBzZXNzaW9ucy5cbiAgICogVGhpcyBtZXRyaWMgbWVhc3VyZXMgY2FwYWNpdHkgdGhhdCBpcyBhdmFpbGFibGUgYnV0IHVudXNlZC5cbiAgICogVGhpcyBtZXRyaWMgY2FuIGJlIHVzZWQgd2l0aCBhdXRvbWF0aWMgc2NhbGluZy5cbiAgICovXG4gIG1ldHJpY0lkbGVJbnN0YW5jZXMocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogTnVtYmVyIG9mIHNwb3QgaW5zdGFuY2VzIHRoYXQgaGF2ZSBiZWVuIGludGVycnVwdGVkLlxuICAgKi9cbiAgbWV0cmljSW5zdGFuY2VJbnRlcnJ1cHRpb25zKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gbnVtYmVyIG9mIGluc3RhbmNlcyB0aGF0IGFyZSBhbGxvd2VkIGZvciB0aGUgZmxlZXQuXG4gICAqIEEgZmxlZXQncyBpbnN0YW5jZSBtYXhpbXVtIGRldGVybWluZXMgdGhlIGNhcGFjaXR5IGNlaWxpbmcgZHVyaW5nIG1hbnVhbCBvciBhdXRvbWF0aWMgc2NhbGluZyB1cC5cbiAgICogVGhpcyBtZXRyaWMgaXMgbm90IGF2YWlsYWJsZSB3aGVuIHZpZXdpbmcgZGF0YSBmb3IgZmxlZXQgbWV0cmljIGdyb3Vwcy5cbiAgICovXG4gIG1ldHJpY01heEluc3RhbmNlcyhwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBNaW5pbXVtIG51bWJlciBvZiBpbnN0YW5jZXMgYWxsb3dlZCBmb3IgdGhlIGZsZWV0LlxuICAgKiBBIGZsZWV0J3MgaW5zdGFuY2UgbWluaW11bSBkZXRlcm1pbmVzIHRoZSBjYXBhY2l0eSBmbG9vciBkdXJpbmcgbWFudWFsIG9yIGF1dG9tYXRpYyBzY2FsaW5nIGRvd24uXG4gICAqIFRoaXMgbWV0cmljIGlzIG5vdCBhdmFpbGFibGUgd2hlbiB2aWV3aW5nIGRhdGEgZm9yIGZsZWV0IG1ldHJpYyBncm91cHMuXG4gICAqL1xuICBtZXRyaWNNaW5JbnN0YW5jZXMocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIG5ldyBHYW1lbGlmdCBmbGVldFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsZWV0UHJvcHMge1xuICAvKipcbiAgICogQSBkZXNjcmlwdGl2ZSBsYWJlbCB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCBhIGZsZWV0LiBGbGVldCBuYW1lcyBkbyBub3QgbmVlZCB0byBiZSB1bmlxdWUuXG4gICAqL1xuICByZWFkb25seSBmbGVldE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQSBodW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBvZiB0aGUgZmxlZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZGVzY3JpcHRpb24gaXMgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byB1c2UgT24tRGVtYW5kIG9yIFNwb3QgaW5zdGFuY2VzIGZvciB0aGlzIGZsZWV0LlxuICAgKiBCeSBkZWZhdWx0LCBmbGVldCB1c2Ugb24gZGVtYW5kIGNhcGFjaXR5LlxuICAgKlxuICAgKiBUaGlzIHByb3BlcnR5IGNhbm5vdCBiZSBjaGFuZ2VkIGFmdGVyIHRoZSBmbGVldCBpcyBjcmVhdGVkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nYW1lbGlmdC9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvZ2FtZWxpZnQtZWMyLWluc3RhbmNlcy5odG1sI2dhbWVsaWZ0LWVjMi1pbnN0YW5jZXMtc3BvdFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEdhbWVsaWZ0IGZsZWV0IHVzZSBvbiBkZW1hbmQgY2FwYWNpdHlcbiAgICovXG4gIHJlYWRvbmx5IHVzZVNwb3Q/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQcm9tcHRzIEdhbWVMaWZ0IHRvIGdlbmVyYXRlIGEgVExTL1NTTCBjZXJ0aWZpY2F0ZSBmb3IgdGhlIGZsZWV0LlxuICAgKiBHYW1lTGlmdCB1c2VzIHRoZSBjZXJ0aWZpY2F0ZXMgdG8gZW5jcnlwdCB0cmFmZmljIGJldHdlZW4gZ2FtZSBjbGllbnRzIGFuZCB0aGUgZ2FtZSBzZXJ2ZXJzIHJ1bm5pbmcgb24gR2FtZUxpZnQuXG4gICAqXG4gICAqIFlvdSBjYW4ndCBjaGFuZ2UgdGhpcyBwcm9wZXJ0eSBhZnRlciB5b3UgY3JlYXRlIHRoZSBmbGVldC5cbiAgICpcbiAgICogQWRkaXRpb25uYWwgaW5mbzpcbiAgICogQVdTIENlcnRpZmljYXRlIE1hbmFnZXIgKEFDTSkgY2VydGlmaWNhdGVzIGV4cGlyZSBhZnRlciAxMyBtb250aHMuXG4gICAqIENlcnRpZmljYXRlIGV4cGlyYXRpb24gY2FuIGNhdXNlIGZsZWV0cyB0byBmYWlsLCBwcmV2ZW50aW5nIHBsYXllcnMgZnJvbSBjb25uZWN0aW5nIHRvIGluc3RhbmNlcyBpbiB0aGUgZmxlZXQuXG4gICAqIFdlIHJlY29tbWVuZCB5b3UgcmVwbGFjZSBmbGVldHMgYmVmb3JlIDEzIG1vbnRocywgY29uc2lkZXIgdXNpbmcgZmxlZXQgYWxpYXNlcyBmb3IgYSBzbW9vdGggdHJhbnNpdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUTFMvU1NMIGNlcnRpZmljYXRlIGFyZSBnZW5lcmF0ZWQgZm9yIHRoZSBmbGVldFxuICAgKi9cbiAgcmVhZG9ubHkgdXNlQ2VydGlmaWNhdGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgYXNzdW1lZCBieSBHYW1lTGlmdCBmbGVldCBpbnN0YW5jZXMgdG8gYWNjZXNzIEFXUyByZXNzb3VyY2VzLlxuICAgKiBXaXRoIGEgcm9sZSBzZXQsIGFueSBhcHBsaWNhdGlvbiB0aGF0IHJ1bnMgb24gYW4gaW5zdGFuY2UgaW4gdGhpcyBmbGVldCBjYW4gYXNzdW1lIHRoZSByb2xlLCBpbmNsdWRpbmcgaW5zdGFsbCBzY3JpcHRzLCBzZXJ2ZXIgcHJvY2Vzc2VzLCBhbmQgZGFlbW9ucyAoYmFja2dyb3VuZCBwcm9jZXNzZXMpLlxuICAgKiBJZiBwcm92aWRpbmcgYSBjdXN0b20gcm9sZSwgaXQgbmVlZHMgdG8gdHJ1c3QgdGhlIEdhbWVMaWZ0IHNlcnZpY2UgcHJpbmNpcGFsIChnYW1lbGlmdC5hbWF6b25hd3MuY29tKS5cbiAgICogTm8gcGVybWlzc2lvbiBpcyByZXF1aXJlZCBieSBkZWZhdWx0LlxuICAgKlxuICAgKiBUaGlzIHByb3BlcnR5IGNhbm5vdCBiZSBjaGFuZ2VkIGFmdGVyIHRoZSBmbGVldCBpcyBjcmVhdGVkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nYW1lbGlmdC9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvZ2FtZWxpZnQtc2RrLXNlcnZlci1yZXNvdXJjZXMuaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgcm9sZSB3aWxsIGJlIGNyZWF0ZWQgd2l0aCBkZWZhdWx0IHRydXN0IHRvIEdhbWVsaWZ0IHNlcnZpY2UgcHJpbmNpcGFsLlxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogQSBWUEMgcGVlcmluZyBjb25uZWN0aW9uIGJldHdlZW4geW91ciBHYW1lTGlmdC1ob3N0ZWQgZ2FtZSBzZXJ2ZXJzIGFuZCB5b3VyIG90aGVyIG5vbi1HYW1lTGlmdCByZXNvdXJjZXMuXG4gICAqIFVzZSBBbWF6b24gVmlydHVhbCBQcml2YXRlIENsb3VkIChWUEMpIHBlZXJpbmcgY29ubmVjdGlvbnMgdG8gZW5hYmxlIHlvdXIgZ2FtZSBzZXJ2ZXJzIHRvIGNvbW11bmljYXRlIGRpcmVjdGx5IGFuZCBwcml2YXRlbHkgd2l0aCB5b3VyIG90aGVyIEFXUyByZXNvdXJjZXMsIHN1Y2ggYXMgYSB3ZWIgc2VydmljZSBvciBhIHJlcG9zaXRvcnkuXG4gICAqIFlvdSBjYW4gZXN0YWJsaXNoIFZQQyBwZWVyaW5nIHdpdGggYW55IHJlc291cmNlcyB0aGF0IHJ1biBvbiBBV1MgYW5kIGFyZSBtYW5hZ2VkIGJ5IGFuIEFXUyBhY2NvdW50IHRoYXQgeW91IGhhdmUgYWNjZXNzIHRvLlxuICAgKiBUaGUgVlBDIG11c3QgYmUgaW4gdGhlIHNhbWUgUmVnaW9uIGFzIHlvdXIgZmxlZXQuXG4gICAqXG4gICAqIFdhcm5pbmc6XG4gICAqIEJlIHN1cmUgdG8gY3JlYXRlIGEgVlBDIFBlZXJpbmcgYXV0aG9yaXphdGlvbiB0aHJvdWdoIEdhbWVsaWZ0IFNlcnZpY2UgQVBJLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nYW1lbGlmdC9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdnBjLXBlZXJpbmcuaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHZwYyBwZWVyaW5nXG4gICAqL1xuICByZWFkb25seSBwZWVyVnBjPzogZWMyLklWcGM7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIGFuIEFXUyBDbG91ZFdhdGNoIG1ldHJpYyBncm91cCB0byBhZGQgdGhpcyBmbGVldCB0by5cbiAgICogQSBtZXRyaWMgZ3JvdXAgaXMgdXNlZCB0byBhZ2dyZWdhdGUgdGhlIG1ldHJpY3MgZm9yIG11bHRpcGxlIGZsZWV0cy5cbiAgICogWW91IGNhbiBzcGVjaWZ5IGFuIGV4aXN0aW5nIG1ldHJpYyBncm91cCBuYW1lIG9yIHNldCBhIG5ldyBuYW1lIHRvIGNyZWF0ZSBhIG5ldyBtZXRyaWMgZ3JvdXAuXG4gICAqIEEgZmxlZXQgY2FuIGJlIGluY2x1ZGVkIGluIG9ubHkgb25lIG1ldHJpYyBncm91cCBhdCBhIHRpbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRmxlZXQgbWV0cmljcyBhcmUgYWdncmVnYXRlZCB3aXRoIG90aGVyIGZsZWV0cyBpbiB0aGUgZGVmYXVsdCBtZXRyaWMgZ3JvdXBcbiAgICovXG4gIHJlYWRvbmx5IG1ldHJpY0dyb3VwPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgR2FtZUxpZnQtc3VwcG9ydGVkIEFtYXpvbiBFQzIgaW5zdGFuY2UgdHlwZSB0byB1c2UgZm9yIGFsbCBmbGVldCBpbnN0YW5jZXMuXG4gICAqIEluc3RhbmNlIHR5cGUgZGV0ZXJtaW5lcyB0aGUgY29tcHV0aW5nIHJlc291cmNlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBob3N0IHlvdXIgZ2FtZSBzZXJ2ZXJzLCBpbmNsdWRpbmcgQ1BVLCBtZW1vcnksIHN0b3JhZ2UsIGFuZCBuZXR3b3JraW5nIGNhcGFjaXR5LlxuICAgKlxuICAgKiBAc2VlIGh0dHA6Ly9hd3MuYW1hem9uLmNvbS9lYzIvaW5zdGFuY2UtdHlwZXMvIGZvciBkZXRhaWxlZCBkZXNjcmlwdGlvbnMgb2YgQW1hem9uIEVDMiBpbnN0YW5jZSB0eXBlcy5cbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlVHlwZTogZWMyLkluc3RhbmNlVHlwZTtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBFQzIgaW5zdGFuY2VzIHRoYXQgeW91IHdhbnQgdGhpcyBmbGVldCB0byBob3N0LlxuICAgKiBXaGVuIGNyZWF0aW5nIGEgbmV3IGZsZWV0LCBHYW1lTGlmdCBhdXRvbWF0aWNhbGx5IHNldHMgdGhpcyB2YWx1ZSB0byBcIjFcIiBhbmQgaW5pdGlhdGVzIGEgc2luZ2xlIGluc3RhbmNlLlxuICAgKiBPbmNlIHRoZSBmbGVldCBpcyBhY3RpdmUsIHVwZGF0ZSB0aGlzIHZhbHVlIHRvIHRyaWdnZXIgR2FtZUxpZnQgdG8gYWRkIG9yIHJlbW92ZSBpbnN0YW5jZXMgZnJvbSB0aGUgZmxlZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBjYXBhY2l0eSBpcyAwXG4gICAqL1xuICByZWFkb25seSBkZXNpcmVkQ2FwYWNpdHk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiBpbnN0YW5jZXMgdGhhdCBhcmUgYWxsb3dlZCBpbiB0aGUgc3BlY2lmaWVkIGZsZWV0IGxvY2F0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICByZWFkb25seSBtaW5TaXplPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgaW5zdGFuY2VzIHRoYXQgYXJlIGFsbG93ZWQgaW4gdGhlIHNwZWNpZmllZCBmbGVldCBsb2NhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4U2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHN0YXR1cyBvZiB0ZXJtaW5hdGlvbiBwcm90ZWN0aW9uIGZvciBhY3RpdmUgZ2FtZSBzZXNzaW9ucyBvbiB0aGUgZmxlZXQuXG4gICAqIEJ5IGRlZmF1bHQsIG5ldyBnYW1lIHNlc3Npb25zIGFyZSBwcm90ZWN0ZWQgYW5kIGNhbm5vdCBiZSB0ZXJtaW5hdGVkIGR1cmluZyBhIHNjYWxlLWRvd24gZXZlbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWUgLSBHYW1lIHNlc3Npb25zIGluIGBBQ1RJVkVgIHN0YXR1cyBjYW5ub3QgYmUgdGVybWluYXRlZCBkdXJpbmcgYSBzY2FsZS1kb3duIGV2ZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdGVjdE5ld0dhbWVTZXNzaW9uPyA6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgY29sbGVjdGlvbiBvZiBzZXJ2ZXIgcHJvY2VzcyBjb25maWd1cmF0aW9ucyB0aGF0IGRlc2NyaWJlIHRoZSBzZXQgb2YgcHJvY2Vzc2VzIHRvIHJ1biBvbiBlYWNoIGluc3RhbmNlIGluIGEgZmxlZXQuXG4gICAqIFNlcnZlciBwcm9jZXNzZXMgcnVuIGVpdGhlciBhbiBleGVjdXRhYmxlIGluIGEgY3VzdG9tIGdhbWUgYnVpbGQgb3IgYSBSZWFsdGltZSBTZXJ2ZXJzIHNjcmlwdC5cbiAgICogR2FtZUxpZnQgbGF1bmNoZXMgdGhlIGNvbmZpZ3VyZWQgcHJvY2Vzc2VzLCBtYW5hZ2VzIHRoZWlyIGxpZmUgY3ljbGUsIGFuZCByZXBsYWNlcyB0aGVtIGFzIG5lZWRlZC5cbiAgICogRWFjaCBpbnN0YW5jZSBjaGVja3MgcmVndWxhcmx5IGZvciBhbiB1cGRhdGVkIHJ1bnRpbWUgY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICogQSBHYW1lTGlmdCBpbnN0YW5jZSBpcyBsaW1pdGVkIHRvIDUwIHByb2Nlc3NlcyBydW5uaW5nIGNvbmN1cnJlbnRseS5cbiAgICogVG8gY2FsY3VsYXRlIHRoZSB0b3RhbCBudW1iZXIgb2YgcHJvY2Vzc2VzIGluIGEgcnVudGltZSBjb25maWd1cmF0aW9uLCBhZGQgdGhlIHZhbHVlcyBvZiB0aGUgQ29uY3VycmVudEV4ZWN1dGlvbnMgcGFyYW1ldGVyIGZvciBlYWNoIFNlcnZlclByb2Nlc3MuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dhbWVsaWZ0L2xhdGVzdC9kZXZlbG9wZXJndWlkZS9mbGVldHMtbXVsdGlwcm9jZXNzLmh0bWxcbiAgICovXG4gIHJlYWRvbmx5IHJ1bnRpbWVDb25maWd1cmF0aW9uOiBSdW50aW1lQ29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogQSBzZXQgb2YgcmVtb3RlIGxvY2F0aW9ucyB0byBkZXBsb3kgYWRkaXRpb25hbCBpbnN0YW5jZXMgdG8gYW5kIG1hbmFnZSBhcyBwYXJ0IG9mIHRoZSBmbGVldC5cbiAgICogVGhpcyBwYXJhbWV0ZXIgY2FuIG9ubHkgYmUgdXNlZCB3aGVuIGNyZWF0aW5nIGZsZWV0cyBpbiBBV1MgUmVnaW9ucyB0aGF0IHN1cHBvcnQgbXVsdGlwbGUgbG9jYXRpb25zLlxuICAgKiBZb3UgY2FuIGFkZCBhbnkgR2FtZUxpZnQtc3VwcG9ydGVkIEFXUyBSZWdpb24gYXMgYSByZW1vdGUgbG9jYXRpb24sIGluIHRoZSBmb3JtIG9mIGFuIEFXUyBSZWdpb24gY29kZSBzdWNoIGFzIGB1cy13ZXN0LTJgLlxuICAgKiBUbyBjcmVhdGUgYSBmbGVldCB3aXRoIGluc3RhbmNlcyBpbiB0aGUgaG9tZSByZWdpb24gb25seSwgb21pdCB0aGlzIHBhcmFtZXRlci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBDcmVhdGUgYSBmbGVldCB3aXRoIGluc3RhbmNlcyBpbiB0aGUgaG9tZSByZWdpb24gb25seVxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYXRpb25zPzogTG9jYXRpb25bXTtcblxuICAvKipcbiAgICogQSBwb2xpY3kgdGhhdCBsaW1pdHMgdGhlIG51bWJlciBvZiBnYW1lIHNlc3Npb25zIHRoYXQgYW4gaW5kaXZpZHVhbCBwbGF5ZXIgY2FuIGNyZWF0ZSBvbiBpbnN0YW5jZXMgaW4gdGhpcyBmbGVldCB3aXRoaW4gYSBzcGVjaWZpZWQgc3BhbiBvZiB0aW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHJlc291cmNlIGNyZWF0aW9uIGxpbWl0IHBvbGljeVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VDcmVhdGlvbkxpbWl0UG9saWN5PzogUmVzb3VyY2VDcmVhdGlvbkxpbWl0UG9saWN5O1xufVxuXG4vKipcbiAqIEEgZnVsbCBzcGVjaWZpY2F0aW9uIG9mIGEgZmxlZXQgdGhhdCBjYW4gYmUgdXNlZCB0byBpbXBvcnQgaXQgZmx1ZW50bHkgaW50byB0aGUgQ0RLIGFwcGxpY2F0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsZWV0QXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBmbGVldFxuICAgKlxuICAgKiBBdCBsZWFzdCBvbmUgb2YgYGZsZWV0QXJuYCBhbmQgYGZsZWV0SWRgIG11c3QgYmUgcHJvdmlkZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVyaXZlZCBmcm9tIGBmbGVldElkYC5cbiAgICovXG4gIHJlYWRvbmx5IGZsZWV0QXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgZmxlZXRcbiAgICpcbiAgICogQXQgbGVhc3Qgb25lIG9mIGBmbGVldElkYCBhbmQgYGZsZWV0QXJuYCAgbXVzdCBiZSBwcm92aWRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZXJpdmVkIGZyb20gYGZsZWV0QXJuYC5cbiAgICovXG4gIHJlYWRvbmx5IGZsZWV0SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSBhc3N1bWVkIGJ5IEdhbWVMaWZ0IGZsZWV0IGluc3RhbmNlcyB0byBhY2Nlc3MgQVdTIHJlc3NvdXJjZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGltcG9ydGVkIGZsZWV0IGNhbm5vdCBiZSBncmFudGVkIGFjY2VzcyB0byBvdGhlciByZXNvdXJjZXMgYXMgYW4gYGlhbS5JR3JhbnRhYmxlYC5cbiAgICovXG4gIHJlYWRvbmx5IHJvbGU/OiBpYW0uSVJvbGU7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgbmV3IGFuZCBpbXBvcnRlZCBHYW1lTGlmdCBmbGVldC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZsZWV0QmFzZSBleHRlbmRzIGNkay5SZXNvdXJjZSBpbXBsZW1lbnRzIElGbGVldCB7XG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgZmxlZXQgZnJvbSBpdHMgYXR0cmlidXRlcy5cbiAgICovXG4gIHN0YXRpYyBmcm9tRmxlZXRBdHRyaWJ1dGVzKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGF0dHJzOiBGbGVldEF0dHJpYnV0ZXMpOiBJRmxlZXQge1xuICAgIGlmICghYXR0cnMuZmxlZXRJZCAmJiAhYXR0cnMuZmxlZXRBcm4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRWl0aGVyIGZsZWV0SWQgb3IgZmxlZXRBcm4gbXVzdCBiZSBwcm92aWRlZCBpbiBGbGVldEF0dHJpYnV0ZXMnKTtcbiAgICB9XG4gICAgY29uc3QgZmxlZXRJZCA9IGF0dHJzLmZsZWV0SWQgPz9cbiAgICAgIGNkay5TdGFjay5vZihzY29wZSkuc3BsaXRBcm4oYXR0cnMuZmxlZXRBcm4hLCBjZGsuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUpLnJlc291cmNlTmFtZTtcblxuICAgIGlmICghZmxlZXRJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBmbGVldCBpZGVudGlmaWVyIGZvdW5kIGluIEFSTjogJyR7YXR0cnMuZmxlZXRBcm59J2ApO1xuICAgIH1cblxuICAgIGNvbnN0IGZsZWV0QXJuID0gYXR0cnMuZmxlZXRBcm4gPz8gY2RrLlN0YWNrLm9mKHNjb3BlKS5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogJ2dhbWVsaWZ0JyxcbiAgICAgIHJlc291cmNlOiAnZmxlZXQnLFxuICAgICAgcmVzb3VyY2VOYW1lOiBhdHRycy5mbGVldElkLFxuICAgICAgYXJuRm9ybWF0OiBjZGsuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgfSk7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgRmxlZXRCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBmbGVldElkID0gZmxlZXRJZCE7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZmxlZXRBcm4gPSBmbGVldEFybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbCA9IGF0dHJzLnJvbGUgPz8gbmV3IGlhbS5Vbmtub3duUHJpbmNpcGFsKHsgcmVzb3VyY2U6IHRoaXMgfSk7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgcm9sZSA9IGF0dHJzLnJvbGU7XG5cbiAgICAgIGNvbnN0cnVjdG9yKHM6IENvbnN0cnVjdCwgaTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKHMsIGksIHtcbiAgICAgICAgICBlbnZpcm9ubWVudEZyb21Bcm46IGZsZWV0QXJuLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgSWRlbnRpZmllciBvZiB0aGUgZmxlZXQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZmxlZXRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBmbGVldC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBmbGVldEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJpbmNpcGFsIHRoaXMgR2FtZUxpZnQgZmxlZXQgaXMgdXNpbmcuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9jYXRpb25zOiBMb2NhdGlvbltdID0gW107XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYW4gYWxpYXMgZm9yIHRoaXMgZmxlZXQuXG4gICAqXG4gICAqIGBgYHRzXG4gICAqIGRlY2xhcmUgY29uc3QgZmxlZXQ6IGdhbWVsaWZ0LkZsZWV0QmFzZTtcbiAgICpcbiAgICogZmxlZXQuYWRkQWxpYXMoJ0xpdmUnKTtcbiAgICpcbiAgICogLy8gSXMgZXF1aXZhbGVudCB0b1xuICAgKlxuICAgKiBuZXcgZ2FtZWxpZnQuQWxpYXModGhpcywgJ0FsaWFzTGl2ZScsIHtcbiAgICogICBhbGlhc05hbWU6ICdMaXZlJyxcbiAgICogICBmbGVldDogZmxlZXQsXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIGFsaWFzTmFtZSBUaGUgbmFtZSBvZiB0aGUgYWxpYXNcbiAgICogQHBhcmFtIG9wdGlvbnMgQWxpYXMgb3B0aW9uc1xuICAgKi9cbiAgcHVibGljIGFkZEFsaWFzKGFsaWFzTmFtZTogc3RyaW5nLCBvcHRpb25zOiBBbGlhc09wdGlvbnMgPSB7fSkge1xuICAgIHJldHVybiBuZXcgQWxpYXModGhpcywgYEFsaWFzJHthbGlhc05hbWV9YCwge1xuICAgICAgYWxpYXNOYW1lLFxuICAgICAgZmxlZXQ6IHRoaXMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKi9cbiAgcHVibGljIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCAuLi5hY3Rpb25zOiBzdHJpbmdbXSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICByZXNvdXJjZUFybnM6IFt0aGlzLmZsZWV0QXJuXSxcbiAgICAgIGdyYW50ZWU6IGdyYW50ZWUsXG4gICAgICBhY3Rpb25zOiBhY3Rpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbmFtZXNwYWNlOiAnQVdTL0dhbWVMaWZ0JyxcbiAgICAgIG1ldHJpY05hbWU6IG1ldHJpY05hbWUsXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIEZsZWV0SWQ6IHRoaXMuZmxlZXRJZCxcbiAgICAgIH0sXG4gICAgICAuLi5wcm9wcyxcbiAgICB9KS5hdHRhY2hUbyh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBtZXRyaWNBY3RpdmVJbnN0YW5jZXMocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMuY2FubmVkTWV0cmljKEdhbWVMaWZ0TWV0cmljcy5hY3RpdmVJbnN0YW5jZXNBdmVyYWdlLCBwcm9wcyk7XG4gIH1cblxuICBwdWJsaWMgbWV0cmljUGVyY2VudElkbGVJbnN0YW5jZXMocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMuY2FubmVkTWV0cmljKEdhbWVMaWZ0TWV0cmljcy5wZXJjZW50SWRsZUluc3RhbmNlc0F2ZXJhZ2UsIHByb3BzKTtcbiAgfVxuXG4gIHB1YmxpYyBtZXRyaWNEZXNpcmVkSW5zdGFuY2VzKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLmNhbm5lZE1ldHJpYyhHYW1lTGlmdE1ldHJpY3MuZGVzaXJlZEluc3RhbmNlc0F2ZXJhZ2UsIHByb3BzKTtcbiAgfVxuXG4gIHB1YmxpYyBtZXRyaWNJZGxlSW5zdGFuY2VzKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLmNhbm5lZE1ldHJpYyhHYW1lTGlmdE1ldHJpY3MuaWRsZUluc3RhbmNlc0F2ZXJhZ2UsIHByb3BzKTtcbiAgfVxuXG4gIHB1YmxpYyBtZXRyaWNJbnN0YW5jZUludGVycnVwdGlvbnMocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMuY2FubmVkTWV0cmljKEdhbWVMaWZ0TWV0cmljcy5pbnN0YW5jZUludGVycnVwdGlvbnNTdW0sIHByb3BzKTtcbiAgfVxuXG4gIHB1YmxpYyBtZXRyaWNNYXhJbnN0YW5jZXMocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMuY2FubmVkTWV0cmljKEdhbWVMaWZ0TWV0cmljcy5tYXhJbnN0YW5jZXNBdmVyYWdlLCBwcm9wcyk7XG4gIH1cblxuICBwdWJsaWMgbWV0cmljTWluSW5zdGFuY2VzKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLmNhbm5lZE1ldHJpYyhHYW1lTGlmdE1ldHJpY3MubWluSW5zdGFuY2VzQXZlcmFnZSwgcHJvcHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBjYW5uZWRNZXRyaWMoZm46IChkaW1zOiB7IEZsZWV0SWQ6IHN0cmluZyB9KSA9PiBjbG91ZHdhdGNoLk1ldHJpY1Byb3BzLCBwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIC4uLmZuKHsgRmxlZXRJZDogdGhpcy5mbGVldElkIH0pLFxuICAgICAgLi4ucHJvcHMsXG4gICAgfSkuYXR0YWNoVG8odGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIEFSTiB0byBwdXQgaW50byB0aGUgZGVzdGluYXRpb24gZmllbGQgb2YgYSBnYW1lIHNlc3Npb24gcXVldWVcbiAgICovXG4gIHB1YmxpYyBnZXQgcmVzb3VyY2VBcm5Gb3JEZXN0aW5hdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5mbGVldEFybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVtb3RlIGxvY2F0aW9ucyB0byBkZXBsb3kgYWRkaXRpb25hbCBpbnN0YW5jZXMgdG8gYW5kIG1hbmFnZSBhcyBwYXJ0IG9mIHRoZSBmbGVldC5cbiAgICpcbiAgICogQHBhcmFtIHJlZ2lvbiBUaGUgQVdTIHJlZ2lvbiB0byBhZGRcbiAgICovXG4gIHB1YmxpYyBhZGRMb2NhdGlvbihyZWdpb246IHN0cmluZywgZGVzaXJlZENhcGFjaXR5PzogbnVtYmVyLCBtaW5TaXplPzogbnVtYmVyLCBtYXhTaXplPzogbnVtYmVyKSB7XG4gICAgdGhpcy5hZGRJbnRlcm5hbExvY2F0aW9uKHtcbiAgICAgIHJlZ2lvbjogcmVnaW9uLFxuICAgICAgY2FwYWNpdHk6IHtcbiAgICAgICAgZGVzaXJlZENhcGFjaXR5OiBkZXNpcmVkQ2FwYWNpdHksXG4gICAgICAgIG1pblNpemU6IG1pblNpemUsXG4gICAgICAgIG1heFNpemU6IG1heFNpemUsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZW1vdGUgbG9jYXRpb25zIHRvIGRlcGxveSBhZGRpdGlvbmFsIGluc3RhbmNlcyB0byBhbmQgbWFuYWdlIGFzIHBhcnQgb2YgdGhlIGZsZWV0LlxuICAgKlxuICAgKiBAcGFyYW0gbG9jYXRpb24gVGhlIGxvY2F0aW9uIHRvIGFkZFxuICAgKi9cbiAgcHVibGljIGFkZEludGVybmFsTG9jYXRpb24obG9jYXRpb246IExvY2F0aW9uKSB7XG4gICAgaWYgKHRoaXMubG9jYXRpb25zLmxlbmd0aCA9PSAxMDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gbW9yZSB0aGFuIDEwMCBsb2NhdGlvbnMgYXJlIGFsbG93ZWQgcGVyIGZsZWV0Jyk7XG4gICAgfVxuXG4gICAgdGhpcy5sb2NhdGlvbnMucHVzaChsb2NhdGlvbik7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VSZXNvdXJjZUNyZWF0aW9uTGltaXRQb2xpY3kocHJvcHM6IEZsZWV0UHJvcHMpOiBDZm5GbGVldC5SZXNvdXJjZUNyZWF0aW9uTGltaXRQb2xpY3lQcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFwcm9wcy5yZXNvdXJjZUNyZWF0aW9uTGltaXRQb2xpY3kgfHxcbiAgICAgICAgKCFwcm9wcy5yZXNvdXJjZUNyZWF0aW9uTGltaXRQb2xpY3kubmV3R2FtZVNlc3Npb25zUGVyQ3JlYXRvclxuICAgICAgICAgICAgJiYgIXByb3BzLnJlc291cmNlQ3JlYXRpb25MaW1pdFBvbGljeS5wb2xpY3lQZXJpb2QpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuZXdHYW1lU2Vzc2lvbnNQZXJDcmVhdG9yOiBwcm9wcy5yZXNvdXJjZUNyZWF0aW9uTGltaXRQb2xpY3kubmV3R2FtZVNlc3Npb25zUGVyQ3JlYXRvcixcbiAgICAgIHBvbGljeVBlcmlvZEluTWludXRlczogcHJvcHMucmVzb3VyY2VDcmVhdGlvbkxpbWl0UG9saWN5LnBvbGljeVBlcmlvZD8udG9NaW51dGVzKCksXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZUxvY2F0aW9ucygpOiBDZm5GbGVldC5Mb2NhdGlvbkNvbmZpZ3VyYXRpb25Qcm9wZXJ0eVtdIHzCoHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLmxvY2F0aW9ucyB8fCB0aGlzLmxvY2F0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG5cbiAgICByZXR1cm4gdGhpcy5sb2NhdGlvbnMubWFwKHBhcnNlTG9jYXRpb24pO1xuXG4gICAgZnVuY3Rpb24gcGFyc2VMb2NhdGlvbihsb2NhdGlvbjogTG9jYXRpb24pOiBDZm5GbGVldC5Mb2NhdGlvbkNvbmZpZ3VyYXRpb25Qcm9wZXJ0eSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsb2NhdGlvbjogbG9jYXRpb24ucmVnaW9uLFxuICAgICAgICBsb2NhdGlvbkNhcGFjaXR5OiBzZWxmLnBhcnNlTG9jYXRpb25DYXBhY2l0eShsb2NhdGlvbi5jYXBhY2l0eSksXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZUxvY2F0aW9uQ2FwYWNpdHkoY2FwYWNpdHk/OiBMb2NhdGlvbkNhcGFjaXR5KTogQ2ZuRmxlZXQuTG9jYXRpb25DYXBhY2l0eVByb3BlcnR5IHzCoHVuZGVmaW5lZCB7XG4gICAgaWYgKCFjYXBhY2l0eSB8fFxuICAgICAgICAoIWNhcGFjaXR5LmRlc2lyZWRDYXBhY2l0eVxuICAgICAgICAgICAgJiYgIWNhcGFjaXR5Lm1pblNpemVcbiAgICAgICAgICAgICYmICFjYXBhY2l0eS5tYXhTaXplKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGVzaXJlZEVjMkluc3RhbmNlczogY2FwYWNpdHkuZGVzaXJlZENhcGFjaXR5ID8/IDAsXG4gICAgICBtaW5TaXplOiBjYXBhY2l0eS5taW5TaXplID8/IDAsXG4gICAgICBtYXhTaXplOiBjYXBhY2l0eS5tYXhTaXplID8/IDEsXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZVJ1bnRpbWVDb25maWd1cmF0aW9uKHByb3BzOiBGbGVldFByb3BzKTogQ2ZuRmxlZXQuUnVudGltZUNvbmZpZ3VyYXRpb25Qcm9wZXJ0eSB8wqB1bmRlZmluZWQge1xuICAgIGlmICghcHJvcHMucnVudGltZUNvbmZpZ3VyYXRpb24gfHxcbiAgICAgICAgKCFwcm9wcy5ydW50aW1lQ29uZmlndXJhdGlvbi5nYW1lU2Vzc2lvbkFjdGl2YXRpb25UaW1lb3V0XG4gICAgICAgICAgICAmJiAhcHJvcHMucnVudGltZUNvbmZpZ3VyYXRpb24ubWF4Q29uY3VycmVudEdhbWVTZXNzaW9uQWN0aXZhdGlvbnNcbiAgICAgICAgICAgICYmIHByb3BzLnJ1bnRpbWVDb25maWd1cmF0aW9uLnNlcnZlclByb2Nlc3Nlcy5sZW5ndGggPT0gMCkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBnYW1lU2Vzc2lvbkFjdGl2YXRpb25UaW1lb3V0U2Vjb25kczogcHJvcHMucnVudGltZUNvbmZpZ3VyYXRpb24uZ2FtZVNlc3Npb25BY3RpdmF0aW9uVGltZW91dD8udG9TZWNvbmRzKCksXG4gICAgICBtYXhDb25jdXJyZW50R2FtZVNlc3Npb25BY3RpdmF0aW9uczogcHJvcHMucnVudGltZUNvbmZpZ3VyYXRpb24ubWF4Q29uY3VycmVudEdhbWVTZXNzaW9uQWN0aXZhdGlvbnMsXG4gICAgICBzZXJ2ZXJQcm9jZXNzZXM6IHByb3BzLnJ1bnRpbWVDb25maWd1cmF0aW9uLnNlcnZlclByb2Nlc3Nlcy5tYXAocGFyc2VTZXJ2ZXJQcm9jZXNzKSxcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gcGFyc2VTZXJ2ZXJQcm9jZXNzKHNlcnZlclByb2Nlc3M6IFNlcnZlclByb2Nlc3MpOiBDZm5GbGVldC5TZXJ2ZXJQcm9jZXNzUHJvcGVydHkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGFyYW1ldGVyczogc2VydmVyUHJvY2Vzcy5wYXJhbWV0ZXJzLFxuICAgICAgICBsYXVuY2hQYXRoOiBzZXJ2ZXJQcm9jZXNzLmxhdW5jaFBhdGgsXG4gICAgICAgIGNvbmN1cnJlbnRFeGVjdXRpb25zOiBzZXJ2ZXJQcm9jZXNzLmNvbmN1cnJlbnRFeGVjdXRpb25zID8/IDEsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB3YXJuVnBjUGVlcmluZ0F1dGhvcml6YXRpb25zKHNjb3BlOiBDb25zdHJ1Y3QpOiB2b2lkIHtcbiAgICBjZGsuQW5ub3RhdGlvbnMub2Yoc2NvcGUpLmFkZFdhcm5pbmdWMignQGF3cy1jZGsvYXdzLWdhbWVsaWZ0OmZsZWV0QXV0b3JpemVWcGNQZWVyaW5nJywgW1xuICAgICAgJ1RvIGF1dGhvcml6ZSB0aGUgVlBDIHBlZXJpbmcsIGNhbGwgdGhlIEdhbWVMaWZ0IHNlcnZpY2UgQVBJIENyZWF0ZVZwY1BlZXJpbmdBdXRob3JpemF0aW9uKCkgb3IgdXNlIHRoZSBBV1MgQ0xJIGNvbW1hbmQgY3JlYXRlLXZwYy1wZWVyaW5nLWF1dGhvcml6YXRpb24uJyxcbiAgICAgICdNYWtlIHRoaXMgY2FsbCB1c2luZyB0aGUgYWNjb3VudCB0aGF0IG1hbmFnZXMgeW91ciBub24tR2FtZUxpZnQgcmVzb3VyY2VzLicsXG4gICAgICAnU2VlOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2FtZWxpZnQvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3ZwYy1wZWVyaW5nLmh0bWwnLFxuICAgIF0uam9pbignXFxuJykpO1xuICB9XG59XG4iXX0=
|
|
@@ -136,6 +136,9 @@ export declare abstract class GameServerGroupBase extends cdk.Resource implement
|
|
|
136
136
|
* The principal this GameLift game server group is using.
|
|
137
137
|
*/
|
|
138
138
|
abstract readonly grantPrincipal: iam.IPrincipal;
|
|
139
|
+
/**
|
|
140
|
+
* [disable-awslint:no-grants]
|
|
141
|
+
*/
|
|
139
142
|
grant(grantee: iam.IGrantable, ...actions: string[]): iam.Grant;
|
|
140
143
|
metric(metricName: string, props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
141
144
|
}
|
package/lib/game-server-group.js
CHANGED
|
@@ -90,7 +90,10 @@ var BalancingStrategy;
|
|
|
90
90
|
* Base class for new and imported GameLift FleetIQ game server group.
|
|
91
91
|
*/
|
|
92
92
|
class GameServerGroupBase extends cdk.Resource {
|
|
93
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.GameServerGroupBase", version: "2.
|
|
93
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.GameServerGroupBase", version: "2.235.0-alpha.0" };
|
|
94
|
+
/**
|
|
95
|
+
* [disable-awslint:no-grants]
|
|
96
|
+
*/
|
|
94
97
|
grant(grantee, ...actions) {
|
|
95
98
|
return iam.Grant.addToPrincipal({
|
|
96
99
|
resourceArns: [this.gameServerGroupArn],
|
|
@@ -145,7 +148,7 @@ let GameServerGroup = (() => {
|
|
|
145
148
|
GameServerGroup = _classThis = _classDescriptor.value;
|
|
146
149
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
147
150
|
}
|
|
148
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.GameServerGroup", version: "2.
|
|
151
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.GameServerGroup", version: "2.235.0-alpha.0" };
|
|
149
152
|
/** Uniquely identifies this class. */
|
|
150
153
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-gamelift-alpha.GameServerGroup';
|
|
151
154
|
/**
|
|
@@ -351,4 +354,4 @@ let GameServerGroup = (() => {
|
|
|
351
354
|
return GameServerGroup = _classThis;
|
|
352
355
|
})();
|
|
353
356
|
exports.GameServerGroup = GameServerGroup;
|
|
354
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FtZS1zZXJ2ZXItZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJnYW1lLXNlcnZlci1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5REFBeUQ7QUFDekQsMkNBQTJDO0FBQzNDLDJEQUE4RDtBQUM5RCwyQ0FBMkM7QUFDM0Msd0NBQXdDO0FBQ3hDLDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFnRDFFOzs7R0FHRztBQUNILElBQVksWUFlWDtBQWZELFdBQVksWUFBWTtJQUN0Qjs7T0FFRztJQUNILDJDQUEyQixDQUFBO0lBRTNCOztPQUVHO0lBQ0gsNkNBQTZCLENBQUE7SUFFN0I7O09BRUc7SUFDSCxpQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBZlcsWUFBWSw0QkFBWixZQUFZLFFBZXZCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLGlCQW9CWDtBQXBCRCxXQUFZLGlCQUFpQjtJQUMzQjs7OztPQUlHO0lBQ0gsNENBQXVCLENBQUE7SUFFdkI7Ozs7T0FJRztJQUNILHNEQUFpQyxDQUFBO0lBRWpDOzs7T0FHRztJQUNILHNEQUFpQyxDQUFBO0FBQ25DLENBQUMsRUFwQlcsaUJBQWlCLGlDQUFqQixpQkFBaUIsUUFvQjVCO0FBc0NEOztHQUVHO0FBQ0gsTUFBc0IsbUJBQW9CLFNBQVEsR0FBRyxDQUFDLFFBQVE7O0lBcUJyRCxLQUFLLENBQUMsT0FBdUIsRUFBRSxHQUFHLE9BQWlCO1FBQ3hELE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDOUIsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1lBQ3ZDLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLE9BQU8sRUFBRSxPQUFPO1NBQ2pCLENBQUMsQ0FBQztLQUNKO0lBRU0sTUFBTSxDQUFDLFVBQWtCLEVBQUUsS0FBZ0M7UUFDaEUsT0FBTyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENB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LE9BQU87Z0JBQ0wsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0I7Z0JBQ3ZELGtCQUFrQixFQUFFLEtBQUssQ0FBQyxjQUFjLENBQUMsa0JBQWtCO2dCQUMzRCxPQUFPLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxhQUFhO2FBQzVDLENBQUM7U0FDSDtRQUVTLHNCQUFzQixDQUFDLEtBQTJCOzs7Ozs7Ozs7O1lBQzFELElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDN0IsT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztZQUVELE9BQU87Z0JBQ0wsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRTtnQkFDckYsMkJBQTJCLEVBQUU7b0JBQzNCLFdBQVcsRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsMkJBQTJCO2lCQUNqRTthQUNGLENBQUM7U0FDSDtRQUVTLHdCQUF3QixDQUFDLEtBQTJCOzs7Ozs7Ozs7O1lBQzVELE9BQU8sS0FBSyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBRTlELFNBQVMsdUJBQXVCLENBQUMsa0JBQXNDO2dCQUNyRSxPQUFPO29CQUNMLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFO29CQUN4RCxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO2lCQUN4RCxDQUFDO1lBQ0osQ0FBQztTQUNGOztZQXZMVSx1REFBZTs7Ozs7QUFBZiwwQ0FBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNsb3Vkd2F0Y2ggZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0IHsgQ2ZuR2FtZVNlcnZlckdyb3VwIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWdhbWVsaWZ0JztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIGludGVsbGlnZW50IGF1dG9tYXRpYyBzY2FsaW5nIHRoYXQgdXNlcyB0YXJnZXQgdHJhY2tpbmcuXG4gKiBBZnRlciB0aGUgQXV0byBTY2FsaW5nIGdyb3VwIGlzIGNyZWF0ZWQsIGFsbCB1cGRhdGVzIHRvIEF1dG8gU2NhbGluZyBwb2xpY2llcywgaW5jbHVkaW5nIGNoYW5naW5nIHRoaXMgcG9saWN5IGFuZCBhZGRpbmcgb3IgcmVtb3Zpbmcgb3RoZXIgcG9saWNpZXMsIGlzIGRvbmUgZGlyZWN0bHkgb24gdGhlIEF1dG8gU2NhbGluZyBncm91cC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRvU2NhbGluZ1BvbGljeSB7XG4gIC8qKlxuICAgKiBMZW5ndGggb2YgdGltZSwgaXQgdGFrZXMgZm9yIGEgbmV3IGluc3RhbmNlIHRvIHN0YXJ0IG5ldyBnYW1lIHNlcnZlciBwcm9jZXNzZXMgYW5kIHJlZ2lzdGVyIHdpdGggR2FtZUxpZnQgRmxlZXRJUS5cbiAgICogU3BlY2lmeWluZyBhIHdhcm0tdXAgdGltZSBjYW4gYmUgdXNlZnVsLCBwYXJ0aWN1bGFybHkgd2l0aCBnYW1lIHNlcnZlcnMgdGhhdCB0YWtlIGEgbG9uZyB0aW1lIHRvIHN0YXJ0IHVwLCBiZWNhdXNlIGl0IGF2b2lkcyBwcmVtYXR1cmVseSBzdGFydGluZyBuZXcgaW5zdGFuY2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBubyBpbnN0YW5jZSB3YXJtdXAgZHVyYXRpb24gc2V0dGxlZFxuICAgKi9cbiAgcmVhZG9ubHkgZXN0aW1hdGVkSW5zdGFuY2VXYXJtdXA/OiBjZGsuRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFNldHRpbmdzIGZvciBhIHRhcmdldC1iYXNlZCBzY2FsaW5nIHBvbGljeSBhcHBsaWVkIHRvIEF1dG8gU2NhbGluZyBncm91cC5cbiAgICogVGhlc2Ugc2V0dGluZ3MgYXJlIHVzZWQgdG8gY3JlYXRlIGEgdGFyZ2V0LWJhc2VkIHBvbGljeSB0aGF0IHRyYWNrcyB0aGUgR2FtZUxpZnQgRmxlZXRJUSBtZXRyaWMgYFBlcmNlbnRVdGlsaXplZEdhbWVTZXJ2ZXJzYCBhbmQgc3BlY2lmaWVzIGEgdGFyZ2V0IHZhbHVlIGZvciB0aGUgbWV0cmljLlxuICAgKlxuICAgKiBBcyBwbGF5ZXIgdXNhZ2UgY2hhbmdlcywgdGhlIHBvbGljeSB0cmlnZ2VycyB0byBhZGp1c3QgdGhlIGdhbWUgc2VydmVyIGdyb3VwIGNhcGFjaXR5IHNvIHRoYXQgdGhlIG1ldHJpYyByZXR1cm5zIHRvIHRoZSB0YXJnZXQgdmFsdWUuXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRUcmFja2luZ0NvbmZpZ3VyYXRpb246IG51bWJlcjtcblxufVxuLyoqXG4gKiBBbiBhbGxvd2VkIGluc3RhbmNlIHR5cGUgZm9yIGEgZ2FtZSBzZXJ2ZXIgZ3JvdXAuXG4gKiBBbGwgZ2FtZSBzZXJ2ZXIgZ3JvdXBzIG11c3QgaGF2ZSBhdCBsZWFzdCB0d28gaW5zdGFuY2UgdHlwZXMgZGVmaW5lZCBmb3IgaXQuXG4gKiBHYW1lTGlmdCBGbGVldElRIHBlcmlvZGljYWxseSBldmFsdWF0ZXMgZWFjaCBkZWZpbmVkIGluc3RhbmNlIHR5cGUgZm9yIHZpYWJpbGl0eS5cbiAqIEl0IHRoZW4gdXBkYXRlcyB0aGUgQXV0byBTY2FsaW5nIGdyb3VwIHdpdGggdGhlIGxpc3Qgb2YgdmlhYmxlIGluc3RhbmNlIHR5cGVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlRGVmaW5pdGlvbiB7XG4gIC8qKlxuICAgKiBBbiBBbWF6b24gRUMyIGluc3RhbmNlIHR5cGUgZGVzaWduYXRpb24uXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZVR5cGU6IGVjMi5JbnN0YW5jZVR5cGU7XG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHdlaWdodGluZyB0aGF0IGluZGljYXRlcyBob3cgbXVjaCB0aGlzIGluc3RhbmNlIHR5cGUgY29udHJpYnV0ZXMgdG8gdGhlIHRvdGFsIGNhcGFjaXR5IG9mIGEgZ2FtZSBzZXJ2ZXIgZ3JvdXAuXG4gICAqIEluc3RhbmNlIHdlaWdodHMgYXJlIHVzZWQgYnkgR2FtZUxpZnQgRmxlZXRJUSB0byBjYWxjdWxhdGUgdGhlIGluc3RhbmNlIHR5cGUncyBjb3N0IHBlciB1bml0IGhvdXIgYW5kIGJldHRlciBpZGVudGlmeSB0aGUgbW9zdCBjb3N0LWVmZmVjdGl2ZSBvcHRpb25zLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9lYzIvdXNlcmd1aWRlL2FzZy1pbnN0YW5jZS13ZWlnaHRpbmcuaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCBkZWZhdWx0IHZhbHVlIGlzIDFcbiAgICovXG4gIHJlYWRvbmx5IHdlaWdodD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUaGUgdHlwZSBvZiBkZWxldGUgdG8gcGVyZm9ybS5cbiAqIFRvIGRlbGV0ZSBhIGdhbWUgc2VydmVyIGdyb3VwLCBzcGVjaWZ5IHRoZSBEZWxldGVPcHRpb24uXG4gKi9cbmV4cG9ydCBlbnVtIERlbGV0ZU9wdGlvbiB7XG4gIC8qKlxuICAgKiBUZXJtaW5hdGVzIHRoZSBnYW1lIHNlcnZlciBncm91cCBhbmQgQW1hem9uIEVDMiBBdXRvIFNjYWxpbmcgZ3JvdXAgb25seSB3aGVuIGl0IGhhcyBubyBnYW1lIHNlcnZlcnMgdGhhdCBhcmUgaW4gVVRJTElaRUQgc3RhdHVzLlxuICAgKi9cbiAgU0FGRV9ERUxFVEUgPSAnU0FGRV9ERUxFVEUnLFxuXG4gIC8qKlxuICAgKiBUZXJtaW5hdGVzIHRoZSBnYW1lIHNlcnZlciBncm91cCwgaW5jbHVkaW5nIGFsbCBhY3RpdmUgZ2FtZSBzZXJ2ZXJzIHJlZ2FyZGxlc3Mgb2YgdGhlaXIgdXRpbGl6YXRpb24gc3RhdHVzLCBhbmQgdGhlIEFtYXpvbiBFQzIgQXV0byBTY2FsaW5nIGdyb3VwLlxuICAgKi9cbiAgRk9SQ0VfREVMRVRFID0gJ0ZPUkNFX0RFTEVURScsXG5cbiAgLyoqXG4gICAqIERvZXMgYSBzYWZlIGRlbGV0ZSBvZiB0aGUgZ2FtZSBzZXJ2ZXIgZ3JvdXAgYnV0IHJldGFpbnMgdGhlIEFtYXpvbiBFQzIgQXV0byBTY2FsaW5nIGdyb3VwIGFzIGlzLlxuICAgKi9cbiAgUkVUQUlOID0gJ1JFVEFJTicsXG59XG5cbi8qKlxuICogSW5kaWNhdGVzIGhvdyBHYW1lTGlmdCBGbGVldElRIGJhbGFuY2VzIHRoZSB1c2Ugb2YgU3BvdCBJbnN0YW5jZXMgYW5kIE9uLURlbWFuZCBJbnN0YW5jZXMgaW4gdGhlIGdhbWUgc2VydmVyIGdyb3VwLlxuICovXG5leHBvcnQgZW51bSBCYWxhbmNpbmdTdHJhdGVneSB7XG4gIC8qKlxuICAgKiBPbmx5IFNwb3QgSW5zdGFuY2VzIGFyZSB1c2VkIGluIHRoZSBnYW1lIHNlcnZlciBncm91cC5cbiAgICogSWYgU3BvdCBJbnN0YW5jZXMgYXJlIHVuYXZhaWxhYmxlIG9yIG5vdCB2aWFibGUgZm9yIGdhbWUgaG9zdGluZywgdGhlIGdhbWUgc2VydmVyIGdyb3VwIHByb3ZpZGVzIG5vIGhvc3RpbmcgY2FwYWNpdHkgdW50aWwgU3BvdCBJbnN0YW5jZXMgY2FuIGFnYWluIGJlIHVzZWQuXG4gICAqIFVudGlsIHRoZW4sIG5vIG5ldyBpbnN0YW5jZXMgYXJlIHN0YXJ0ZWQsIGFuZCB0aGUgZXhpc3Rpbmcgbm9udmlhYmxlIFNwb3QgSW5zdGFuY2VzIGFyZSB0ZXJtaW5hdGVkIChhZnRlciBjdXJyZW50IGdhbWVwbGF5IGVuZHMpIGFuZCBhcmUgbm90IHJlcGxhY2VkLlxuICAgKi9cbiAgU1BPVF9PTkxZID0gJ1NQT1RfT05MWScsXG5cbiAgLyoqXG4gICAqIFNwb3QgSW5zdGFuY2VzIGFyZSB1c2VkIHdoZW5ldmVyIGF2YWlsYWJsZSBpbiB0aGUgZ2FtZSBzZXJ2ZXIgZ3JvdXAuXG4gICAqIElmIFNwb3QgSW5zdGFuY2VzIGFyZSB1bmF2YWlsYWJsZSwgdGhlIGdhbWUgc2VydmVyIGdyb3VwIGNvbnRpbnVlcyB0byBwcm92aWRlIGhvc3RpbmcgY2FwYWNpdHkgYnkgZmFsbGluZyBiYWNrIHRvIE9uLURlbWFuZCBJbnN0YW5jZXMuXG4gICAqIEV4aXN0aW5nIG5vbnZpYWJsZSBTcG90IEluc3RhbmNlcyBhcmUgdGVybWluYXRlZCAoYWZ0ZXIgY3VycmVudCBnYW1lcGxheSBlbmRzKSBhbmQgYXJlIHJlcGxhY2VkIHdpdGggbmV3IE9uLURlbWFuZCBJbnN0YW5jZXMuXG4gICAqL1xuICBTUE9UX1BSRUZFUlJFRCA9ICdTUE9UX1BSRUZFUlJFRCcsXG5cbiAgLyoqXG4gICAqIE9ubHkgT24tRGVtYW5kIEluc3RhbmNlcyBhcmUgdXNlZCBpbiB0aGUgZ2FtZSBzZXJ2ZXIgZ3JvdXAuXG4gICAqIE5vIFNwb3QgSW5zdGFuY2VzIGFyZSB1c2VkLCBldmVuIHdoZW4gYXZhaWxhYmxlLCB3aGlsZSB0aGlzIGJhbGFuY2luZyBzdHJhdGVneSBpcyBpbiBmb3JjZS5cbiAgICovXG4gIE9OX0RFTUFORF9PTkxZID0gJ09OX0RFTUFORF9PTkxZJyxcbn1cblxuLyoqXG4gKiBSZXByZXNlbnQgYSBHYW1lTGlmdCBGbGVldElRIGdhbWUgc2VydmVyIGdyb3VwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElHYW1lU2VydmVyR3JvdXAgZXh0ZW5kcyBjZGsuSVJlc291cmNlLCBpYW0uSUdyYW50YWJsZSB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBnYW1lIHNlcnZlciBncm91cC5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZ2FtZVNlcnZlckdyb3VwQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGdlbmVyYXRlZCBBdXRvU2NhbGluZyBncm91cFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBhdXRvU2NhbGluZ0dyb3VwQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBnYW1lIHNlcnZlciBncm91cFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBnYW1lU2VydmVyR3JvdXBOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdyYW50IHRoZSBgZ3JhbnRlZWAgaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gcGVyZm9ybSBgYWN0aW9uc2AuXG4gICAqL1xuICBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgZ2l2ZW4gbmFtZWQgbWV0cmljIGZvciB0aGlzIGZsZWV0LlxuICAgKi9cbiAgbWV0cmljKG1ldHJpY05hbWU6IHN0cmluZywgcHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBuZXcgYW5kIGltcG9ydGVkIEdhbWVMaWZ0IEZsZWV0SVEgZ2FtZSBzZXJ2ZXIgZ3JvdXAuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBHYW1lU2VydmVyR3JvdXBCYXNlIGV4dGVuZHMgY2RrLlJlc291cmNlIGltcGxlbWVudHMgSUdhbWVTZXJ2ZXJHcm91cCB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBnYW1lIHNlcnZlciBncm91cC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBnYW1lU2VydmVyR3JvdXBBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZ2VuZXJhdGVkIEF1dG9TY2FsaW5nIGdyb3VwXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgYXV0b1NjYWxpbmdHcm91cEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZ2FtZSBzZXJ2ZXIgZ3JvdXAuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZ2FtZVNlcnZlckdyb3VwTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJpbmNpcGFsIHRoaXMgR2FtZUxpZnQgZ2FtZSBzZXJ2ZXIgZ3JvdXAgaXMgdXNpbmcuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsO1xuXG4gIHB1YmxpYyBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgcmVzb3VyY2VBcm5zOiBbdGhpcy5nYW1lU2VydmVyR3JvdXBBcm5dLFxuICAgICAgZ3JhbnRlZTogZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnM6IGFjdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbWV0cmljKG1ldHJpY05hbWU6IHN0cmluZywgcHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBuYW1lc3BhY2U6ICdBV1MvR2FtZUxpZnQnLFxuICAgICAgbWV0cmljTmFtZTogbWV0cmljTmFtZSxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgR2FtZVNlcnZlckdyb3VwQXJuOiB0aGlzLmdhbWVTZXJ2ZXJHcm91cEFybixcbiAgICAgIH0sXG4gICAgICAuLi5wcm9wcyxcbiAgICB9KS5hdHRhY2hUbyh0aGlzKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBHYW1lU2VydmVyR3JvdXAgY29udGVudCBkZWZpbmVkIG91dHNpZGUgb2YgdGhpcyBzdGFjay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHYW1lU2VydmVyR3JvdXBBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBnYW1lIHNlcnZlciBncm91cFxuICAgKlxuICAgKiBBdCBsZWFzdCBvbmUgb2YgYGdhbWVTZXJ2ZXJHcm91cEFybmAgYW5kIGBnYW1lU2VydmVyR3JvdXBOYW1lYCBtdXN0IGJlIHByb3ZpZGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBkZXJpdmVkIGZyb20gYGdhbWVTZXJ2ZXJHcm91cEFybmAuXG4gICAqL1xuICByZWFkb25seSBnYW1lU2VydmVyR3JvdXBOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBnYW1lIHNlcnZlciBncm91cFxuICAgKlxuICAgKiBBdCBsZWFzdCBvbmUgb2YgYGdhbWVTZXJ2ZXJHcm91cEFybmAgYW5kIGBnYW1lU2VydmVyR3JvdXBOYW1lYCBtdXN0IGJlIHByb3ZpZGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBkZXJpdmVkIGZyb20gYGdhbWVTZXJ2ZXJHcm91cE5hbWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgZ2FtZVNlcnZlckdyb3VwQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBnZW5lcmF0ZWQgQXV0b1NjYWxpbmcgZ3JvdXBcbiAgICpcbiAgICogQGRlZmF1bHQgdGhlIGltcG9ydGVkIGdhbWUgc2VydmVyIGdyb3VwIGRvZXMgbm90IGhhdmUgYXV0b3NjYWxpbmcgZ3JvdXAgaW5mb3JtYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGF1dG9TY2FsaW5nR3JvdXBBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElBTSByb2xlIHRoYXQgYWxsb3dzIEFtYXpvbiBHYW1lTGlmdCB0byBhY2Nlc3MgeW91ciBBbWF6b24gRUMyIEF1dG8gU2NhbGluZyBncm91cHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRoZSBpbXBvcnRlZCBnYW1lIHNlcnZlciBncm91cCBjYW5ub3QgYmUgZ3JhbnRlZCBhY2Nlc3MgdG8gb3RoZXIgcmVzb3VyY2VzIGFzIGFuIGBpYW0uSUdyYW50YWJsZWAuXG4gICAqL1xuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgbmV3IEdhbWVsaWZ0IEZsZWV0SVEgR2FtZSBzZXJ2ZXIgZ3JvdXBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHYW1lU2VydmVyR3JvdXBQcm9wcyB7XG4gIC8qKlxuICAgKiBBIGRldmVsb3Blci1kZWZpbmVkIGlkZW50aWZpZXIgZm9yIHRoZSBnYW1lIHNlcnZlciBncm91cC5cbiAgICogVGhlIG5hbWUgaXMgdW5pcXVlIGZvciBlYWNoIFJlZ2lvbiBpbiBlYWNoIEFXUyBhY2NvdW50LlxuICAgKi9cbiAgcmVhZG9ubHkgZ2FtZVNlcnZlckdyb3VwTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgdGhhdCBhbGxvd3MgQW1hem9uIEdhbWVMaWZ0IHRvIGFjY2VzcyB5b3VyIEFtYXpvbiBFQzIgQXV0byBTY2FsaW5nIGdyb3Vwcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2FtZWxpZnQvbGF0ZXN0L2ZsZWV0aXFndWlkZS9nc2ctaWFtLXBlcm1pc3Npb25zLXJvbGVzLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIHJvbGUgd2lsbCBiZSBjcmVhdGVkIHdpdGggZGVmYXVsdCB0cnVzdCB0byBHYW1lbGlmdCBhbmQgQXV0b3NjYWxpbmcgc2VydmljZSBwcmluY2lwYWwgd2l0aCBhIGRlZmF1bHQgcG9saWN5IGBHYW1lTGlmdEdhbWVTZXJ2ZXJHcm91cFBvbGljeWAgYXR0YWNoZWQuXG4gICAqL1xuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgaW5zdGFuY2VzIGFsbG93ZWQgaW4gdGhlIEFtYXpvbiBFQzIgQXV0byBTY2FsaW5nIGdyb3VwLlxuICAgKiBEdXJpbmcgYXV0b21hdGljIHNjYWxpbmcgZXZlbnRzLCBHYW1lTGlmdCBGbGVldElRIGFuZCBBbWF6b24gRUMyIGRvIG5vdCBzY2FsZSBkb3duIHRoZSBncm91cCBiZWxvdyB0aGlzIG1pbmltdW0uXG4gICAqXG4gICAqIEluIHByb2R1Y3Rpb24sIHRoaXMgdmFsdWUgc2hvdWxkIGJlIHNldCB0byBhdCBsZWFzdCAxLlxuICAgKlxuICAgKiBBZnRlciB0aGUgQXV0byBTY2FsaW5nIGdyb3VwIGlzIGNyZWF0ZWQsIHVwZGF0ZSB0aGlzIHZhbHVlIGRpcmVjdGx5IGluIHRoZSBBdXRvIFNjYWxpbmcgZ3JvdXAgdXNpbmcgdGhlIEFXUyBjb25zb2xlIG9yIEFQSXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRoZSBkZWZhdWx0IGlzIDBcbiAgICovXG4gIHJlYWRvbmx5IG1pblNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBpbnN0YW5jZXMgYWxsb3dlZCBpbiB0aGUgQW1hem9uIEVDMiBBdXRvIFNjYWxpbmcgZ3JvdXAuIER1cmluZyBhdXRvbWF0aWMgc2NhbGluZyBldmVudHMsIEdhbWVMaWZ0IEZsZWV0SVEgYW5kIEVDMiBkbyBub3Qgc2NhbGUgdXAgdGhlIGdyb3VwIGFib3ZlIHRoaXMgbWF4aW11bS5cbiAgICpcbiAgICogQWZ0ZXIgdGhlIEF1dG8gU2NhbGluZyBncm91cCBpcyBjcmVhdGVkLCB1cGRhdGUgdGhpcyB2YWx1ZSBkaXJlY3RseSBpbiB0aGUgQXV0byBTY2FsaW5nIGdyb3VwIHVzaW5nIHRoZSBBV1MgY29uc29sZSBvciBBUElzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0aGUgZGVmYXVsdCBpcyAxXG4gICAqL1xuICByZWFkb25seSBtYXhTaXplPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgVlBDIG5ldHdvcmsgdG8gcGxhY2UgdGhlIGdhbWUgc2VydmVyIGdyb3VwIGluLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCBhbGwgR2FtZUxpZnQgRmxlZXRJUS1zdXBwb3J0ZWQgQXZhaWxhYmlsaXR5IFpvbmVzIGFyZSB1c2VkLlxuICAgKlxuICAgKiBZb3UgY2FuIHVzZSB0aGlzIHBhcmFtZXRlciB0byBzcGVjaWZ5IFZQQ3MgdGhhdCB5b3UndmUgc2V0IHVwLlxuICAgKlxuICAgKiBUaGlzIHByb3BlcnR5IGNhbm5vdCBiZSB1cGRhdGVkIGFmdGVyIHRoZSBnYW1lIHNlcnZlciBncm91cCBpcyBjcmVhdGVkLFxuICAgKiBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgQXV0byBTY2FsaW5nIGdyb3VwIHdpbGwgYWx3YXlzIHVzZSB0aGUgcHJvcGVydHkgdmFsdWUgdGhhdCBpcyBzZXQgd2l0aCB0aGlzIHJlcXVlc3QsXG4gICAqIGV2ZW4gaWYgdGhlIEF1dG8gU2NhbGluZyBncm91cCBpcyB1cGRhdGVkIGRpcmVjdGx5LlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjOiBlYzIuSVZwYztcblxuICAvKipcbiAgICogR2FtZSBzZXJ2ZXIgZ3JvdXAgc3VibmV0IHNlbGVjdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBhbGwgR2FtZUxpZnQgRmxlZXRJUS1zdXBwb3J0ZWQgQXZhaWxhYmlsaXR5IFpvbmVzIGFyZSB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjU3VibmV0cz86IGVjMi5TdWJuZXRTZWxlY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBzZXQgb2YgQW1hem9uIEVDMiBpbnN0YW5jZSB0eXBlcyB0aGF0IEdhbWVMaWZ0IEZsZWV0SVEgY2FuIHVzZSB3aGVuIGJhbGFuY2luZyBhbmQgYXV0b21hdGljYWxseSBzY2FsaW5nIGluc3RhbmNlcyBpbiB0aGUgY29ycmVzcG9uZGluZyBBdXRvIFNjYWxpbmcgZ3JvdXAuXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZURlZmluaXRpb25zOiBJbnN0YW5jZURlZmluaXRpb25bXTtcblxuICAvKipcbiAgICogVGhlIEFtYXpvbiBFQzIgbGF1bmNoIHRlbXBsYXRlIHRoYXQgY29udGFpbnMgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBhbmQgZ2FtZSBzZXJ2ZXIgY29kZSB0byBiZSBkZXBsb3llZCB0byBhbGwgaW5zdGFuY2VzIGluIHRoZSBnYW1lIHNlcnZlciBncm91cC5cbiAgICogQWZ0ZXIgdGhlIEF1dG8gU2NhbGluZyBncm91cCBpcyBjcmVhdGVkLCB1cGRhdGUgdGhpcyB2YWx1ZSBkaXJlY3RseSBpbiB0aGUgQXV0byBTY2FsaW5nIGdyb3VwIHVzaW5nIHRoZSBBV1MgY29uc29sZSBvciBBUElzLlxuICAgKlxuICAgKiBOT1RFOlxuICAgKiBJZiB5b3Ugc3BlY2lmeSBuZXR3b3JrIGludGVyZmFjZXMgaW4geW91ciBsYXVuY2ggdGVtcGxhdGUsIHlvdSBtdXN0IGV4cGxpY2l0bHkgc2V0IHRoZSBwcm9wZXJ0eSBBc3NvY2lhdGVQdWJsaWNJcEFkZHJlc3MgdG8gYHRydWVgLlxuICAgKiBJZiBubyBuZXR3b3JrIGludGVyZmFjZSBpcyBzcGVjaWZpZWQgaW4gdGhlIGxhdW5jaCB0ZW1wbGF0ZSwgR2FtZUxpZnQgRmxlZXRJUSB1c2VzIHlvdXIgYWNjb3VudCdzIGRlZmF1bHQgVlBDLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9lYzIvdXNlcmd1aWRlL2NyZWF0ZS1sYXVuY2gtdGVtcGxhdGUuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgbGF1bmNoVGVtcGxhdGU6IGVjMi5JTGF1bmNoVGVtcGxhdGU7XG5cbiAgLyoqXG4gICAqIEEgZmxhZyB0aGF0IGluZGljYXRlcyB3aGV0aGVyIGluc3RhbmNlcyBpbiB0aGUgZ2FtZSBzZXJ2ZXIgZ3JvdXAgYXJlIHByb3RlY3RlZCBmcm9tIGVhcmx5IHRlcm1pbmF0aW9uLlxuICAgKiBVbnByb3RlY3RlZCBpbnN0YW5jZXMgdGhhdCBoYXZlIGFjdGl2ZSBnYW1lIHNlcnZlcnMgcnVubmluZyBtaWdodCBiZSB0ZXJtaW5hdGVkIGR1cmluZyBhIHNjYWxlLWRvd24gZXZlbnQsIGNhdXNpbmcgcGxheWVycyB0byBiZSBkcm9wcGVkIGZyb20gdGhlIGdhbWUuXG4gICAqIFByb3RlY3RlZCBpbnN0YW5jZXMgY2Fubm90IGJlIHRlcm1pbmF0ZWQgd2hpbGUgdGhlcmUgYXJlIGFjdGl2ZSBnYW1lIHNlcnZlcnMgcnVubmluZyBleGNlcHQgaW4gdGhlIGV2ZW50IG9mIGEgZm9yY2VkIGdhbWUgc2VydmVyIGdyb3VwIGRlbGV0aW9uLlxuICAgKlxuICAgKiBBbiBleGNlcHRpb24gdG8gdGhpcyBpcyB3aXRoIFNwb3QgSW5zdGFuY2VzLCB3aGljaCBjYW4gYmUgdGVybWluYXRlZCBieSBBV1MgcmVnYXJkbGVzcyBvZiBwcm90ZWN0aW9uIHN0YXR1cy5cbiAgICpcbiAgICogQGRlZmF1bHQgZ2FtZSBzZXJ2ZXJzIHJ1bm5pbmcgbWlnaHQgYmUgdGVybWluYXRlZCBkdXJpbmcgYSBzY2FsZS1kb3duIGV2ZW50XG4gICAqL1xuICByZWFkb25seSBwcm90ZWN0R2FtZVNlcnZlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gc2V0dGluZ3MgdG8gZGVmaW5lIGEgc2NhbGluZyBwb2xpY3kgZm9yIHRoZSBBdXRvIFNjYWxpbmcgZ3JvdXAgdGhhdCBpcyBvcHRpbWl6ZWQgZm9yIGdhbWUgaG9zdGluZy5cbiAgICogVGhlIHNjYWxpbmcgcG9saWN5IHVzZXMgdGhlIG1ldHJpYyBgUGVyY2VudFV0aWxpemVkR2FtZVNlcnZlcnNgIHRvIG1haW50YWluIGEgYnVmZmVyIG9mIGlkbGUgZ2FtZSBzZXJ2ZXJzIHRoYXQgY2FuIGltbWVkaWF0ZWx5IGFjY29tbW9kYXRlIG5ldyBnYW1lcyBhbmQgcGxheWVycy5cbiAgICpcbiAgICogQWZ0ZXIgdGhlIEF1dG8gU2NhbGluZyBncm91cCBpcyBjcmVhdGVkLCB1cGRhdGUgdGhpcyB2YWx1ZSBkaXJlY3RseSBpbiB0aGUgQXV0byBTY2FsaW5nIGdyb3VwIHVzaW5nIHRoZSBBV1MgY29uc29sZSBvciBBUElzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBubyBhdXRvc2NhbGluZyBwb2xpY3kgc2V0dGxlZFxuICAgKi9cbiAgcmVhZG9ubHkgYXV0b1NjYWxpbmdQb2xpY3k/OiBBdXRvU2NhbGluZ1BvbGljeTtcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgZGVsZXRlIHRvIHBlcmZvcm0uIFRvIGRlbGV0ZSBhIGdhbWUgc2VydmVyIGdyb3VwLCBzcGVjaWZ5IHRoZSBEZWxldGVPcHRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgU0FGRV9ERUxFVEVcbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZU9wdGlvbj86IERlbGV0ZU9wdGlvbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGhvdyBHYW1lTGlmdCBGbGVldElRIGJhbGFuY2VzIHRoZSB1c2Ugb2YgU3BvdCBJbnN0YW5jZXMgYW5kIE9uLURlbWFuZCBJbnN0YW5jZXMgaW4gdGhlIGdhbWUgc2VydmVyIGdyb3VwLlxuICAgKlxuICAgKiBAZGVmYXVsdCBTUE9UX1BSRUZFUlJFRFxuICAgKi9cbiAgcmVhZG9ubHkgYmFsYW5jaW5nU3RyYXRlZ3k/OiBCYWxhbmNpbmdTdHJhdGVneTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgR2FtZUxpZnQgRmxlZXRJUSBnYW1lIHNlcnZlciBncm91cCBmb3IgbWFuYWdpbmcgZ2FtZSBob3N0aW5nIG9uIGEgY29sbGVjdGlvbiBvZiBBbWF6b24gRUMyIGluc3RhbmNlcyBmb3IgZ2FtZSBob3N0aW5nLlxuICogVGhpcyBvcGVyYXRpb24gY3JlYXRlcyB0aGUgZ2FtZSBzZXJ2ZXIgZ3JvdXAsIGNyZWF0ZXMgYW4gQXV0byBTY2FsaW5nIGdyb3VwIGluIHlvdXIgQVdTIGFjY291bnQsIGFuZCBlc3RhYmxpc2hlcyBhIGxpbmsgYmV0d2VlbiB0aGUgdHdvIGdyb3Vwcy5cbiAqIFlvdSBjYW4gdmlldyB0aGUgc3RhdHVzIG9mIHlvdXIgZ2FtZSBzZXJ2ZXIgZ3JvdXBzIGluIHRoZSBHYW1lTGlmdCBjb25zb2xlLlxuICogR2FtZSBzZXJ2ZXIgZ3JvdXAgbWV0cmljcyBhbmQgZXZlbnRzIGFyZSBlbWl0dGVkIHRvIEFtYXpvbiBDbG91ZFdhdGNoLlxuICogQmVmb3JlIGNyZWF0aW5nIGEgbmV3IGdhbWUgc2VydmVyIGdyb3VwLCB5b3UgbXVzdCBoYXZlIHRoZSBmb2xsb3dpbmc6XG4gKiAgLSBBbiBBbWF6b24gRUMyIGxhdW5jaCB0ZW1wbGF0ZSB0aGF0IHNwZWNpZmllcyBob3cgdG8gbGF1bmNoIEFtYXpvbiBFQzIgaW5zdGFuY2VzIHdpdGggeW91ciBnYW1lIHNlcnZlciBidWlsZC5cbiAqICAtIEFuIElBTSByb2xlIHRoYXQgZXh0ZW5kcyBsaW1pdGVkIGFjY2VzcyB0byB5b3VyIEFXUyBhY2NvdW50IHRvIGFsbG93IEdhbWVMaWZ0IEZsZWV0SVEgdG8gY3JlYXRlIGFuZCBpbnRlcmFjdCB3aXRoIHRoZSBBdXRvIFNjYWxpbmcgZ3JvdXAuXG4gKlxuICogVG8gY3JlYXRlIGEgbmV3IGdhbWUgc2VydmVyIGdyb3VwLCBzcGVjaWZ5IGEgdW5pcXVlIGdyb3VwIG5hbWUsIElBTSByb2xlIGFuZCBBbWF6b24gRUMyIGxhdW5jaCB0ZW1wbGF0ZSwgYW5kIHByb3ZpZGUgYSBsaXN0IG9mIGluc3RhbmNlIHR5cGVzIHRoYXQgY2FuIGJlIHVzZWQgaW4gdGhlIGdyb3VwLlxuICogWW91IG11c3QgYWxzbyBzZXQgaW5pdGlhbCBtYXhpbXVtIGFuZCBtaW5pbXVtIGxpbWl0cyBvbiB0aGUgZ3JvdXAncyBpbnN0YW5jZSBjb3VudC5cbiAqIFlvdSBjYW4gb3B0aW9uYWxseSBzZXQgYW4gQXV0byBTY2FsaW5nIHBvbGljeSB3aXRoIHRhcmdldCB0cmFja2luZyBiYXNlZCBvbiBhIEdhbWVMaWZ0IEZsZWV0SVEgbWV0cmljLlxuICpcbiAqIE9uY2UgdGhlIGdhbWUgc2VydmVyIGdyb3VwIGFuZCBjb3JyZXNwb25kaW5nIEF1dG8gU2NhbGluZyBncm91cCBhcmUgY3JlYXRlZCwgeW91IGhhdmUgZnVsbCBhY2Nlc3MgdG8gY2hhbmdlIHRoZSBBdXRvIFNjYWxpbmcgZ3JvdXAncyBjb25maWd1cmF0aW9uIGFzIG5lZWRlZC5cbiAqIFNldmVyYWwgcHJvcGVydGllcyB0aGF0IGFyZSBzZXQgd2hlbiBjcmVhdGluZyBhIGdhbWUgc2VydmVyIGdyb3VwLCBpbmNsdWRpbmcgbWF4aW11bS9taW5pbXVtIHNpemUgYW5kIGF1dG8tc2NhbGluZyBwb2xpY3kgc2V0dGluZ3MsIG11c3QgYmUgdXBkYXRlZCBkaXJlY3RseSBpbiB0aGUgQXV0byBTY2FsaW5nIGdyb3VwLlxuICogS2VlcCBpbiBtaW5kIHRoYXQgc29tZSBBdXRvIFNjYWxpbmcgZ3JvdXAgcHJvcGVydGllcyBhcmUgcGVyaW9kaWNhbGx5IHVwZGF0ZWQgYnkgR2FtZUxpZnQgRmxlZXRJUSBhcyBwYXJ0IG9mIGl0cyBiYWxhbmNpbmcgYWN0aXZpdGllcyB0byBvcHRpbWl6ZSBmb3IgYXZhaWxhYmlsaXR5IGFuZCBjb3N0LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dhbWVsaWZ0L2xhdGVzdC9mbGVldGlxZ3VpZGUvZ3NnLWludHJvLmh0bWxcbiAqXG4gKiBAcmVzb3VyY2UgQVdTOjpHYW1lTGlmdDo6R2FtZVNlcnZlckdyb3VwXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBHYW1lU2VydmVyR3JvdXAgZXh0ZW5kcyBHYW1lU2VydmVyR3JvdXBCYXNlIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtZ2FtZWxpZnQtYWxwaGEuR2FtZVNlcnZlckdyb3VwJztcblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIGdhbWUgc2VydmVyIGdyb3VwIGZyb20gaXRzIGF0dHJpYnV0ZXMuXG4gICAqL1xuICBzdGF0aWMgZnJvbUdhbWVTZXJ2ZXJHcm91cEF0dHJpYnV0ZXMoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYXR0cnM6IEdhbWVTZXJ2ZXJHcm91cEF0dHJpYnV0ZXMpOiBJR2FtZVNlcnZlckdyb3VwIHtcbiAgICBpZiAoIWF0dHJzLmdhbWVTZXJ2ZXJHcm91cEFybiAmJiAhYXR0cnMuZ2FtZVNlcnZlckdyb3VwTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFaXRoZXIgZ2FtZVNlcnZlckdyb3VwTmFtZSBvciBnYW1lU2VydmVyR3JvdXBBcm4gbXVzdCBiZSBwcm92aWRlZCBpbiBHYW1lU2VydmVyR3JvdXBBdHRyaWJ1dGVzJyk7XG4gICAgfVxuICAgIGNvbnN0IGdhbWVTZXJ2ZXJHcm91cE5hbWUgPSBhdHRycy5nYW1lU2VydmVyR3JvdXBOYW1lID8/XG4gICAgICBjZGsuU3RhY2sub2Yoc2NvcGUpLnNwbGl0QXJuKGF0dHJzLmdhbWVTZXJ2ZXJHcm91cEFybiEsIGNkay5Bcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSkucmVzb3VyY2VOYW1lO1xuXG4gICAgaWYgKCFnYW1lU2VydmVyR3JvdXBOYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGdhbWUgc2VydmVyIGdyb3VwIG5hbWUgZm91bmQgaW4gQVJOOiAnJHthdHRycy5nYW1lU2VydmVyR3JvdXBBcm59J2ApO1xuICAgIH1cblxuICAgIGNvbnN0IGdhbWVTZXJ2ZXJHcm91cEFybiA9IGF0dHJzLmdhbWVTZXJ2ZXJHcm91cEFybiA/PyBjZGsuU3RhY2sub2Yoc2NvcGUpLmZvcm1hdEFybih7XG4gICAgICBzZXJ2aWNlOiAnZ2FtZWxpZnQnLFxuICAgICAgcmVzb3VyY2U6ICdnYW1lc2VydmVyZ3JvdXAnLFxuICAgICAgcmVzb3VyY2VOYW1lOiBhdHRycy5nYW1lU2VydmVyR3JvdXBOYW1lLFxuICAgICAgYXJuRm9ybWF0OiBjZGsuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgfSk7XG5cbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBHYW1lU2VydmVyR3JvdXBCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBnYW1lU2VydmVyR3JvdXBOYW1lID0gZ2FtZVNlcnZlckdyb3VwTmFtZSE7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZ2FtZVNlcnZlckdyb3VwQXJuID0gZ2FtZVNlcnZlckdyb3VwQXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGF1dG9TY2FsaW5nR3JvdXBBcm4gPSBhdHRycy5hdXRvU2NhbGluZ0dyb3VwQXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsID0gYXR0cnMucm9sZSA/PyBuZXcgaWFtLlVua25vd25QcmluY2lwYWwoeyByZXNvdXJjZTogdGhpcyB9KTtcbiAgICAgIHB1YmxpYyByZWFkb25seSByb2xlID0gYXR0cnMucm9sZTtcblxuICAgICAgY29uc3RydWN0b3IoczogQ29uc3RydWN0LCBpOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIocywgaSwge1xuICAgICAgICAgIGVudmlyb25tZW50RnJvbUFybjogZ2FtZVNlcnZlckdyb3VwQXJuLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZ2FtZSBzZXJ2ZXIgZ3JvdXBcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBnYW1lU2VydmVyR3JvdXBOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGdhbWUgc2VydmVyIGdyb3VwLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGdhbWVTZXJ2ZXJHcm91cEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBnZW5lcmF0ZWQgQXV0b1NjYWxpbmcgZ3JvdXBcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhdXRvU2NhbGluZ0dyb3VwQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSB0aGF0IGFsbG93cyBBbWF6b24gR2FtZUxpZnQgdG8gYWNjZXNzIHlvdXIgQW1hem9uIEVDMiBBdXRvIFNjYWxpbmcgZ3JvdXBzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvbGU6IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGhlIHByaW5jaXBhbCB0aGlzIEdhbWVMaWZ0IGdhbWUgc2VydmVyIGdyb3VwIGlzIHVzaW5nLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsOiBpYW0uSVByaW5jaXBhbDtcblxuICAvKipcbiAgICogVGhlIFZQQyBuZXR3b3JrIHRvIHBsYWNlIHRoZSBnYW1lIHNlcnZlciBncm91cCBpbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuXG4gIC8qKlxuICAgKiBUaGUgZ2FtZSBzZXJ2ZXIgZ3JvdXAncyBzdWJuZXRzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZwY1N1Ym5ldHM/OiBlYzIuU3VibmV0U2VsZWN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBHYW1lU2VydmVyR3JvdXBQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy5nYW1lU2VydmVyR3JvdXBOYW1lLFxuICAgIH0pO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgaWYgKCFjZGsuVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmdhbWVTZXJ2ZXJHcm91cE5hbWUpKSB7XG4gICAgICBpZiAocHJvcHMuZ2FtZVNlcnZlckdyb3VwTmFtZS5sZW5ndGggPiAxMjgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBHYW1lU2VydmVyR3JvdXAgbmFtZSBjYW4gbm90IGJlIGxvbmdlciB0aGFuIDEyOCBjaGFyYWN0ZXJzIGJ1dCBoYXMgJHtwcm9wcy5nYW1lU2VydmVyR3JvdXBOYW1lLmxlbmd0aH0gY2hhcmFjdGVycy5gKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCEvXlthLXpBLVowLTktXFwuXSskLy50ZXN0KHByb3BzLmdhbWVTZXJ2ZXJHcm91cE5hbWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgR2FtZSBzZXJ2ZXIgZ3JvdXAgbmFtZSAke3Byb3BzLmdhbWVTZXJ2ZXJHcm91cE5hbWV9IGNhbiBjb250YWluIG9ubHkgbGV0dGVycywgbnVtYmVycywgaHlwaGVucywgYmFjayBzbGFzaCBvciBkb3Qgd2l0aCBubyBzcGFjZXMuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy52cGMgPSBwcm9wcy52cGM7XG4gICAgdGhpcy52cGNTdWJuZXRzID0gcHJvcHMudnBjU3VibmV0cyA/PyB7IHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBVQkxJQyB9O1xuICAgIGNvbnN0IHsgc3VibmV0SWRzIH0gPSBwcm9wcy52cGMuc2VsZWN0U3VibmV0cyh0aGlzLnZwY1N1Ym5ldHMpO1xuXG4gICAgaWYgKHByb3BzLm1pblNpemUgJiYgcHJvcHMubWluU2l6ZSA8IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIG1pbmltdW0gbnVtYmVyIG9mIGluc3RhbmNlcyBhbGxvd2VkIGluIHRoZSBBbWF6b24gRUMyIEF1dG8gU2NhbGluZyBncm91cCBjYW5ub3QgYmUgbG93ZXIgdGhhbiAwLCBnaXZlbiAke3Byb3BzLm1pblNpemV9YCk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLm1heFNpemUgJiYgcHJvcHMubWF4U2l6ZSA8IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIG1heGltdW0gbnVtYmVyIG9mIGluc3RhbmNlcyBhbGxvd2VkIGluIHRoZSBBbWF6b24gRUMyIEF1dG8gU2NhbGluZyBncm91cCBjYW5ub3QgYmUgbG93ZXIgdGhhbiAxLCBnaXZlbiAke3Byb3BzLm1heFNpemV9YCk7XG4gICAgfVxuXG4gICAgaWYgKHN1Ym5ldElkcy5sZW5ndGggPiAyMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBtb3JlIHRoYW4gMjAgc3VibmV0cyBhcmUgYWxsb3dlZCBwZXIgZ2FtZSBzZXJ2ZXIgZ3JvdXAsIGdpdmVuICR7c3VibmV0SWRzLmxlbmd0aH1gKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgYWxsIGluc3RhbmNlIGRlZmluaXRpb25zXG4gICAgaWYgKHByb3BzLmluc3RhbmNlRGVmaW5pdGlvbnMubGVuZ3RoID4gMjApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gbW9yZSB0aGFuIDIwIGluc3RhbmNlIGRlZmluaXRpb25zIGFyZSBhbGxvd2VkIHBlciBnYW1lIHNlcnZlciBncm91cCwgZ2l2ZW4gJHtwcm9wcy5pbnN0YW5jZURlZmluaXRpb25zLmxlbmd0aH1gKTtcbiAgICB9XG5cbiAgICB0aGlzLnJvbGUgPSBwcm9wcy5yb2xlID8/IG5ldyBpYW0uUm9sZSh0aGlzLCAnU2VydmljZVJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uQ29tcG9zaXRlUHJpbmNpcGFsKFxuICAgICAgICBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2dhbWVsaWZ0LmFtYXpvbmF3cy5jb20nKSxcbiAgICAgICAgbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdhdXRvc2NhbGluZy5hbWF6b25hd3MuY29tJykpLFxuICAgICAgbWFuYWdlZFBvbGljaWVzOiBbXG4gICAgICAgIGlhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZSgnR2FtZUxpZnRHYW1lU2VydmVyR3JvdXBQb2xpY3knKSxcbiAgICAgIF0sXG4gICAgfSk7XG4gICAgdGhpcy5ncmFudFByaW5jaXBhbCA9IHRoaXMucm9sZTtcblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IENmbkdhbWVTZXJ2ZXJHcm91cCh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBnYW1lU2VydmVyR3JvdXBOYW1lOiB0aGlzLnBoeXNpY2FsTmFtZSxcbiAgICAgIGF1dG9TY2FsaW5nUG9saWN5OiB0aGlzLnBhcnNlQXV0b1NjYWxpbmdQb2xpY3kocHJvcHMpLFxuICAgICAgZGVsZXRlT3B0aW9uOiBwcm9wcy5kZWxldGVPcHRpb24sXG4gICAgICBiYWxhbmNpbmdTdHJhdGVneTogcHJvcHMuYmFsYW5jaW5nU3RyYXRlZ3ksXG4gICAgICBnYW1lU2VydmVyUHJvdGVjdGlvblBvbGljeTogcHJvcHMucHJvdGVjdEdhbWVTZXJ2ZXIgPyAnRlVMTF9QUk9URUNUSU9OJyA6ICdOT19QUk9URUNUSU9OJyxcbiAgICAgIGluc3RhbmNlRGVmaW5pdGlvbnM6IHRoaXMucGFyc2VJbnN0YW5jZURlZmluaXRpb25zKHByb3BzKSxcbiAgICAgIGxhdW5jaFRlbXBsYXRlOiB0aGlzLnBhcnNlTGF1bmNoVGVtcGxhdGUocHJvcHMpLFxuICAgICAgbWluU2l6ZTogcHJvcHMubWluU2l6ZSxcbiAgICAgIG1heFNpemU6IHByb3BzLm1heFNpemUsXG4gICAgICByb2xlQXJuOiB0aGlzLnJvbGUucm9sZUFybixcbiAgICAgIHZwY1N1Ym5ldHM6IHN1Ym5ldElkcyxcbiAgICB9KTtcblxuICAgIHRoaXMuZ2FtZVNlcnZlckdyb3VwTmFtZSA9IHRoaXMuZ2V0UmVzb3VyY2VOYW1lQXR0cmlidXRlKHJlc291cmNlLnJlZik7XG4gICAgdGhpcy5nYW1lU2VydmVyR3JvdXBBcm4gPSB0aGlzLmdldFJlc291cmNlQXJuQXR0cmlidXRlKHJlc291cmNlLmF0dHJHYW1lU2VydmVyR3JvdXBBcm4sIHtcbiAgICAgIHNlcnZpY2U6ICdnYW1lbGlmdCcsXG4gICAgICByZXNvdXJjZTogJ2dhbWVzZXJ2ZXJncm91cCcsXG4gICAgICByZXNvdXJjZU5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgICAgYXJuRm9ybWF0OiBjZGsuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgfSk7XG4gICAgdGhpcy5hdXRvU2NhbGluZ0dyb3VwQXJuID0gdGhpcy5nZXRSZXNvdXJjZUFybkF0dHJpYnV0ZShyZXNvdXJjZS5hdHRyQXV0b1NjYWxpbmdHcm91cEFybiwge1xuICAgICAgc2VydmljZTogJ2F1dG9zY2FsaW5nJyxcbiAgICAgIHJlc291cmNlOiAnYXV0b1NjYWxpbmdHcm91cCcsXG4gICAgICByZXNvdXJjZU5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgICAgYXJuRm9ybWF0OiBjZGsuQXJuRm9ybWF0LkNPTE9OX1JFU09VUkNFX05BTUUsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VMYXVuY2hUZW1wbGF0ZShwcm9wczogR2FtZVNlcnZlckdyb3VwUHJvcHMpOiBDZm5HYW1lU2VydmVyR3JvdXAuTGF1bmNoVGVtcGxhdGVQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxhdW5jaFRlbXBsYXRlSWQ6IHByb3BzLmxhdW5jaFRlbXBsYXRlLmxhdW5jaFRlbXBsYXRlSWQsXG4gICAgICBsYXVuY2hUZW1wbGF0ZU5hbWU6IHByb3BzLmxhdW5jaFRlbXBsYXRlLmxhdW5jaFRlbXBsYXRlTmFtZSxcbiAgICAgIHZlcnNpb246IHByb3BzLmxhdW5jaFRlbXBsYXRlLnZlcnNpb25OdW1iZXIsXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZUF1dG9TY2FsaW5nUG9saWN5KHByb3BzOiBHYW1lU2VydmVyR3JvdXBQcm9wcyk6IENmbkdhbWVTZXJ2ZXJHcm91cC5BdXRvU2NhbGluZ1BvbGljeVByb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXByb3BzLmF1dG9TY2FsaW5nUG9saWN5KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBlc3RpbWF0ZWRJbnN0YW5jZVdhcm11cDogcHJvcHMuYXV0b1NjYWxpbmdQb2xpY3kuZXN0aW1hdGVkSW5zdGFuY2VXYXJtdXA/LnRvU2Vjb25kcygpLFxuICAgICAgdGFyZ2V0VHJhY2tpbmdDb25maWd1cmF0aW9uOiB7XG4gICAgICAgIHRhcmdldFZhbHVlOiBwcm9wcy5hdXRvU2NhbGluZ1BvbGljeS50YXJnZXRUcmFja2luZ0NvbmZpZ3VyYXRpb24sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VJbnN0YW5jZURlZmluaXRpb25zKHByb3BzOiBHYW1lU2VydmVyR3JvdXBQcm9wcyk6IENmbkdhbWVTZXJ2ZXJHcm91cC5JbnN0YW5jZURlZmluaXRpb25Qcm9wZXJ0eVtdIHtcbiAgICByZXR1cm4gcHJvcHMuaW5zdGFuY2VEZWZpbml0aW9ucy5tYXAocGFyc2VJbnN0YW5jZURlZmluaXRpb24pO1xuXG4gICAgZnVuY3Rpb24gcGFyc2VJbnN0YW5jZURlZmluaXRpb24oaW5zdGFuY2VEZWZpbml0aW9uOiBJbnN0YW5jZURlZmluaXRpb24pOiBDZm5HYW1lU2VydmVyR3JvdXAuSW5zdGFuY2VEZWZpbml0aW9uUHJvcGVydHkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaW5zdGFuY2VUeXBlOiBpbnN0YW5jZURlZmluaXRpb24uaW5zdGFuY2VUeXBlLnRvU3RyaW5nKCksXG4gICAgICAgIHdlaWdodGVkQ2FwYWNpdHk6IGluc3RhbmNlRGVmaW5pdGlvbi53ZWlnaHQ/LnRvU3RyaW5nKCksXG4gICAgICB9O1xuICAgIH1cbiAgfVxufVxuIl19
|
|
357
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FtZS1zZXJ2ZXItZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJnYW1lLXNlcnZlci1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5REFBeUQ7QUFDekQsMkNBQTJDO0FBQzNDLDJEQUE4RDtBQUM5RCwyQ0FBMkM7QUFDM0Msd0NBQXdDO0FBQ3hDLDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFnRDFFOzs7R0FHRztBQUNILElBQVksWUFlWDtBQWZELFdBQVksWUFBWTtJQUN0Qjs7T0FFRztJQUNILDJDQUEyQixDQUFBO0lBRTNCOztPQUVHO0lBQ0gsNkNBQTZCLENBQUE7SUFFN0I7O09BRUc7SUFDSCxpQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBZlcsWUFBWSw0QkFBWixZQUFZLFFBZXZCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLGlCQW9CWDtBQXBCRCxXQUFZLGlCQUFpQjtJQUMzQjs7OztPQUlHO0lBQ0gsNENBQXVCLENBQUE7SUFFdkI7Ozs7T0FJRztJQUNILHNEQUFpQyxDQUFBO0lBRWpDOzs7T0FHRztJQUNILHNEQUFpQyxDQUFBO0FBQ25DLENBQUMsRUFwQlcsaUJBQWlCLGlDQUFqQixpQkFBaUIsUUFvQjVCO0FBc0NEOztHQUVHO0FBQ0gsTUFBc0IsbUJBQW9CLFNBQVEsR0FBRyxDQUFDLFFBQVE7O0lBcUI1RDs7T0FFRztJQUNJLEtBQUssQ0FBQyxPQUF1QixFQUFFLEdBQUcsT0FBaUI7UUFDeEQsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUM5QixZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7WUFDdkMsT0FBTyxFQUFFLE9BQU87WUFDaEIsT0FBTyxFQUFFLE9BQU87U0FDakIsQ0FBQyxDQUFDO0tBQ0o7SUFFTSxNQUFNLENBQUMsVUFBa0IsRUFBRSxLQUFnQztRQUNoRSxPQUFPLElBQUksVUFBVSxD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Ozs7Ozs7WUFDdkQsT0FBTztnQkFDTCxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLGdCQUFnQjtnQkFDdkQsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxrQkFBa0I7Z0JBQzNELE9BQU8sRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLGFBQWE7YUFDNUMsQ0FBQztTQUNIO1FBRVMsc0JBQXNCLENBQUMsS0FBMkI7Ozs7Ozs7Ozs7WUFDMUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUM3QixPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO1lBRUQsT0FBTztnQkFDTCx1QkFBdUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFO2dCQUNyRiwyQkFBMkIsRUFBRTtvQkFDM0IsV0FBVyxFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQywyQkFBMkI7aUJBQ2pFO2FBQ0YsQ0FBQztTQUNIO1FBRVMsd0JBQXdCLENBQUMsS0FBMkI7Ozs7Ozs7Ozs7WUFDNUQsT0FBTyxLQUFLLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFFOUQsU0FBUyx1QkFBdUIsQ0FBQyxrQkFBc0M7Z0JBQ3JFLE9BQU87b0JBQ0wsWUFBWSxFQUFFLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUU7b0JBQ3hELGdCQUFnQixFQUFFLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUU7aUJBQ3hELENBQUM7WUFDSixDQUFDO1NBQ0Y7O1lBdkxVLHVEQUFlOzs7OztBQUFmLDBDQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2xvdWR3YXRjaCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBDZm5HYW1lU2VydmVyR3JvdXAgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZ2FtZWxpZnQnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgaW50ZWxsaWdlbnQgYXV0b21hdGljIHNjYWxpbmcgdGhhdCB1c2VzIHRhcmdldCB0cmFja2luZy5cbiAqIEFmdGVyIHRoZSBBdXRvIFNjYWxpbmcgZ3JvdXAgaXMgY3JlYXRlZCwgYWxsIHVwZGF0ZXMgdG8gQXV0byBTY2FsaW5nIHBvbGljaWVzLCBpbmNsdWRpbmcgY2hhbmdpbmcgdGhpcyBwb2xpY3kgYW5kIGFkZGluZyBvciByZW1vdmluZyBvdGhlciBwb2xpY2llcywgaXMgZG9uZSBkaXJlY3RseSBvbiB0aGUgQXV0byBTY2FsaW5nIGdyb3VwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9TY2FsaW5nUG9saWN5IHtcbiAgLyoqXG4gICAqIExlbmd0aCBvZiB0aW1lLCBpdCB0YWtlcyBmb3IgYSBuZXcgaW5zdGFuY2UgdG8gc3RhcnQgbmV3IGdhbWUgc2VydmVyIHByb2Nlc3NlcyBhbmQgcmVnaXN0ZXIgd2l0aCBHYW1lTGlmdCBGbGVldElRLlxuICAgKiBTcGVjaWZ5aW5nIGEgd2FybS11cCB0aW1lIGNhbiBiZSB1c2VmdWwsIHBhcnRpY3VsYXJseSB3aXRoIGdhbWUgc2VydmVycyB0aGF0IHRha2UgYSBsb25nIHRpbWUgdG8gc3RhcnQgdXAsIGJlY2F1c2UgaXQgYXZvaWRzIHByZW1hdHVyZWx5IHN0YXJ0aW5nIG5ldyBpbnN0YW5jZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vIGluc3RhbmNlIHdhcm11cCBkdXJhdGlvbiBzZXR0bGVkXG4gICAqL1xuICByZWFkb25seSBlc3RpbWF0ZWRJbnN0YW5jZVdhcm11cD86IGNkay5EdXJhdGlvbjtcblxuICAvKipcbiAgICogU2V0dGluZ3MgZm9yIGEgdGFyZ2V0LWJhc2VkIHNjYWxpbmcgcG9saWN5IGFwcGxpZWQgdG8gQXV0byBTY2FsaW5nIGdyb3VwLlxuICAgKiBUaGVzZSBzZXR0aW5ncyBhcmUgdXNlZCB0byBjcmVhdGUgYSB0YXJnZXQtYmFzZWQgcG9saWN5IHRoYXQgdHJhY2tzIHRoZSBHYW1lTGlmdCBGbGVldElRIG1ldHJpYyBgUGVyY2VudFV0aWxpemVkR2FtZVNlcnZlcnNgIGFuZCBzcGVjaWZpZXMgYSB0YXJnZXQgdmFsdWUgZm9yIHRoZSBtZXRyaWMuXG4gICAqXG4gICAqIEFzIHBsYXllciB1c2FnZSBjaGFuZ2VzLCB0aGUgcG9saWN5IHRyaWdnZXJzIHRvIGFkanVzdCB0aGUgZ2FtZSBzZXJ2ZXIgZ3JvdXAgY2FwYWNpdHkgc28gdGhhdCB0aGUgbWV0cmljIHJldHVybnMgdG8gdGhlIHRhcmdldCB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldFRyYWNraW5nQ29uZmlndXJhdGlvbjogbnVtYmVyO1xuXG59XG4vKipcbiAqIEFuIGFsbG93ZWQgaW5zdGFuY2UgdHlwZSBmb3IgYSBnYW1lIHNlcnZlciBncm91cC5cbiAqIEFsbCBnYW1lIHNlcnZlciBncm91cHMgbXVzdCBoYXZlIGF0IGxlYXN0IHR3byBpbnN0YW5jZSB0eXBlcyBkZWZpbmVkIGZvciBpdC5cbiAqIEdhbWVMaWZ0IEZsZWV0SVEgcGVyaW9kaWNhbGx5IGV2YWx1YXRlcyBlYWNoIGRlZmluZWQgaW5zdGFuY2UgdHlwZSBmb3IgdmlhYmlsaXR5LlxuICogSXQgdGhlbiB1cGRhdGVzIHRoZSBBdXRvIFNjYWxpbmcgZ3JvdXAgd2l0aCB0aGUgbGlzdCBvZiB2aWFibGUgaW5zdGFuY2UgdHlwZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFuY2VEZWZpbml0aW9uIHtcbiAgLyoqXG4gICAqIEFuIEFtYXpvbiBFQzIgaW5zdGFuY2UgdHlwZSBkZXNpZ25hdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlVHlwZTogZWMyLkluc3RhbmNlVHlwZTtcblxuICAvKipcbiAgICogSW5zdGFuY2Ugd2VpZ2h0aW5nIHRoYXQgaW5kaWNhdGVzIGhvdyBtdWNoIHRoaXMgaW5zdGFuY2UgdHlwZSBjb250cmlidXRlcyB0byB0aGUgdG90YWwgY2FwYWNpdHkgb2YgYSBnYW1lIHNlcnZlciBncm91cC5cbiAgICogSW5zdGFuY2Ugd2VpZ2h0cyBhcmUgdXNlZCBieSBHYW1lTGlmdCBGbGVldElRIHRvIGNhbGN1bGF0ZSB0aGUgaW5zdGFuY2UgdHlwZSdzIGNvc3QgcGVyIHVuaXQgaG91ciBhbmQgYmV0dGVyIGlkZW50aWZ5IHRoZSBtb3N0IGNvc3QtZWZmZWN0aXZlIG9wdGlvbnMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2VjMi91c2VyZ3VpZGUvYXNnLWluc3RhbmNlLXdlaWdodGluZy5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IGRlZmF1bHQgdmFsdWUgaXMgMVxuICAgKi9cbiAgcmVhZG9ubHkgd2VpZ2h0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRoZSB0eXBlIG9mIGRlbGV0ZSB0byBwZXJmb3JtLlxuICogVG8gZGVsZXRlIGEgZ2FtZSBzZXJ2ZXIgZ3JvdXAsIHNwZWNpZnkgdGhlIERlbGV0ZU9wdGlvbi5cbiAqL1xuZXhwb3J0IGVudW0gRGVsZXRlT3B0aW9uIHtcbiAgLyoqXG4gICAqIFRlcm1pbmF0ZXMgdGhlIGdhbWUgc2VydmVyIGdyb3VwIGFuZCBBbWF6b24gRUMyIEF1dG8gU2NhbGluZyBncm91cCBvbmx5IHdoZW4gaXQgaGFzIG5vIGdhbWUgc2VydmVycyB0aGF0IGFyZSBpbiBVVElMSVpFRCBzdGF0dXMuXG4gICAqL1xuICBTQUZFX0RFTEVURSA9ICdTQUZFX0RFTEVURScsXG5cbiAgLyoqXG4gICAqIFRlcm1pbmF0ZXMgdGhlIGdhbWUgc2VydmVyIGdyb3VwLCBpbmNsdWRpbmcgYWxsIGFjdGl2ZSBnYW1lIHNlcnZlcnMgcmVnYXJkbGVzcyBvZiB0aGVpciB1dGlsaXphdGlvbiBzdGF0dXMsIGFuZCB0aGUgQW1hem9uIEVDMiBBdXRvIFNjYWxpbmcgZ3JvdXAuXG4gICAqL1xuICBGT1JDRV9ERUxFVEUgPSAnRk9SQ0VfREVMRVRFJyxcblxuICAvKipcbiAgICogRG9lcyBhIHNhZmUgZGVsZXRlIG9mIHRoZSBnYW1lIHNlcnZlciBncm91cCBidXQgcmV0YWlucyB0aGUgQW1hem9uIEVDMiBBdXRvIFNjYWxpbmcgZ3JvdXAgYXMgaXMuXG4gICAqL1xuICBSRVRBSU4gPSAnUkVUQUlOJyxcbn1cblxuLyoqXG4gKiBJbmRpY2F0ZXMgaG93IEdhbWVMaWZ0IEZsZWV0SVEgYmFsYW5jZXMgdGhlIHVzZSBvZiBTcG90IEluc3RhbmNlcyBhbmQgT24tRGVtYW5kIEluc3RhbmNlcyBpbiB0aGUgZ2FtZSBzZXJ2ZXIgZ3JvdXAuXG4gKi9cbmV4cG9ydCBlbnVtIEJhbGFuY2luZ1N0cmF0ZWd5IHtcbiAgLyoqXG4gICAqIE9ubHkgU3BvdCBJbnN0YW5jZXMgYXJlIHVzZWQgaW4gdGhlIGdhbWUgc2VydmVyIGdyb3VwLlxuICAgKiBJZiBTcG90IEluc3RhbmNlcyBhcmUgdW5hdmFpbGFibGUgb3Igbm90IHZpYWJsZSBmb3IgZ2FtZSBob3N0aW5nLCB0aGUgZ2FtZSBzZXJ2ZXIgZ3JvdXAgcHJvdmlkZXMgbm8gaG9zdGluZyBjYXBhY2l0eSB1bnRpbCBTcG90IEluc3RhbmNlcyBjYW4gYWdhaW4gYmUgdXNlZC5cbiAgICogVW50aWwgdGhlbiwgbm8gbmV3IGluc3RhbmNlcyBhcmUgc3RhcnRlZCwgYW5kIHRoZSBleGlzdGluZyBub252aWFibGUgU3BvdCBJbnN0YW5jZXMgYXJlIHRlcm1pbmF0ZWQgKGFmdGVyIGN1cnJlbnQgZ2FtZXBsYXkgZW5kcykgYW5kIGFyZSBub3QgcmVwbGFjZWQuXG4gICAqL1xuICBTUE9UX09OTFkgPSAnU1BPVF9PTkxZJyxcblxuICAvKipcbiAgICogU3BvdCBJbnN0YW5jZXMgYXJlIHVzZWQgd2hlbmV2ZXIgYXZhaWxhYmxlIGluIHRoZSBnYW1lIHNlcnZlciBncm91cC5cbiAgICogSWYgU3BvdCBJbnN0YW5jZXMgYXJlIHVuYXZhaWxhYmxlLCB0aGUgZ2FtZSBzZXJ2ZXIgZ3JvdXAgY29udGludWVzIHRvIHByb3ZpZGUgaG9zdGluZyBjYXBhY2l0eSBieSBmYWxsaW5nIGJhY2sgdG8gT24tRGVtYW5kIEluc3RhbmNlcy5cbiAgICogRXhpc3Rpbmcgbm9udmlhYmxlIFNwb3QgSW5zdGFuY2VzIGFyZSB0ZXJtaW5hdGVkIChhZnRlciBjdXJyZW50IGdhbWVwbGF5IGVuZHMpIGFuZCBhcmUgcmVwbGFjZWQgd2l0aCBuZXcgT24tRGVtYW5kIEluc3RhbmNlcy5cbiAgICovXG4gIFNQT1RfUFJFRkVSUkVEID0gJ1NQT1RfUFJFRkVSUkVEJyxcblxuICAvKipcbiAgICogT25seSBPbi1EZW1hbmQgSW5zdGFuY2VzIGFyZSB1c2VkIGluIHRoZSBnYW1lIHNlcnZlciBncm91cC5cbiAgICogTm8gU3BvdCBJbnN0YW5jZXMgYXJlIHVzZWQsIGV2ZW4gd2hlbiBhdmFpbGFibGUsIHdoaWxlIHRoaXMgYmFsYW5jaW5nIHN0cmF0ZWd5IGlzIGluIGZvcmNlLlxuICAgKi9cbiAgT05fREVNQU5EX09OTFkgPSAnT05fREVNQU5EX09OTFknLFxufVxuXG4vKipcbiAqIFJlcHJlc2VudCBhIEdhbWVMaWZ0IEZsZWV0SVEgZ2FtZSBzZXJ2ZXIgZ3JvdXAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUdhbWVTZXJ2ZXJHcm91cCBleHRlbmRzIGNkay5JUmVzb3VyY2UsIGlhbS5JR3JhbnRhYmxlIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGdhbWUgc2VydmVyIGdyb3VwLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBnYW1lU2VydmVyR3JvdXBBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZ2VuZXJhdGVkIEF1dG9TY2FsaW5nIGdyb3VwXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGF1dG9TY2FsaW5nR3JvdXBBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGdhbWUgc2VydmVyIGdyb3VwXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGdhbWVTZXJ2ZXJHcm91cE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogR3JhbnQgdGhlIGBncmFudGVlYCBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBwZXJmb3JtIGBhY3Rpb25zYC5cbiAgICovXG4gIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCAuLi5hY3Rpb25zOiBzdHJpbmdbXSk6IGlhbS5HcmFudDtcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBnaXZlbiBuYW1lZCBtZXRyaWMgZm9yIHRoaXMgZmxlZXQuXG4gICAqL1xuICBtZXRyaWMobWV0cmljTmFtZTogc3RyaW5nLCBwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIG5ldyBhbmQgaW1wb3J0ZWQgR2FtZUxpZnQgRmxlZXRJUSBnYW1lIHNlcnZlciBncm91cC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEdhbWVTZXJ2ZXJHcm91cEJhc2UgZXh0ZW5kcyBjZGsuUmVzb3VyY2UgaW1wbGVtZW50cyBJR2FtZVNlcnZlckdyb3VwIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGdhbWUgc2VydmVyIGdyb3VwLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGdhbWVTZXJ2ZXJHcm91cEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBnZW5lcmF0ZWQgQXV0b1NjYWxpbmcgZ3JvdXBcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBhdXRvU2NhbGluZ0dyb3VwQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBnYW1lIHNlcnZlciBncm91cC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBnYW1lU2VydmVyR3JvdXBOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcmluY2lwYWwgdGhpcyBHYW1lTGlmdCBnYW1lIHNlcnZlciBncm91cCBpcyB1c2luZy5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG5cbiAgLyoqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKi9cbiAgcHVibGljIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCAuLi5hY3Rpb25zOiBzdHJpbmdbXSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICByZXNvdXJjZUFybnM6IFt0aGlzLmdhbWVTZXJ2ZXJHcm91cEFybl0sXG4gICAgICBncmFudGVlOiBncmFudGVlLFxuICAgICAgYWN0aW9uczogYWN0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBtZXRyaWMobWV0cmljTmFtZTogc3RyaW5nLCBwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9HYW1lTGlmdCcsXG4gICAgICBtZXRyaWNOYW1lOiBtZXRyaWNOYW1lLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBHYW1lU2VydmVyR3JvdXBBcm46IHRoaXMuZ2FtZVNlcnZlckdyb3VwQXJuLFxuICAgICAgfSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pLmF0dGFjaFRvKHRoaXMpO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIEdhbWVTZXJ2ZXJHcm91cCBjb250ZW50IGRlZmluZWQgb3V0c2lkZSBvZiB0aGlzIHN0YWNrLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdhbWVTZXJ2ZXJHcm91cEF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGdhbWUgc2VydmVyIGdyb3VwXG4gICAqXG4gICAqIEF0IGxlYXN0IG9uZSBvZiBgZ2FtZVNlcnZlckdyb3VwQXJuYCBhbmQgYGdhbWVTZXJ2ZXJHcm91cE5hbWVgIG11c3QgYmUgcHJvdmlkZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGRlcml2ZWQgZnJvbSBgZ2FtZVNlcnZlckdyb3VwQXJuYC5cbiAgICovXG4gIHJlYWRvbmx5IGdhbWVTZXJ2ZXJHcm91cE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGdhbWUgc2VydmVyIGdyb3VwXG4gICAqXG4gICAqIEF0IGxlYXN0IG9uZSBvZiBgZ2FtZVNlcnZlckdyb3VwQXJuYCBhbmQgYGdhbWVTZXJ2ZXJHcm91cE5hbWVgIG11c3QgYmUgcHJvdmlkZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGRlcml2ZWQgZnJvbSBgZ2FtZVNlcnZlckdyb3VwTmFtZWAuXG4gICAqL1xuICByZWFkb25seSBnYW1lU2VydmVyR3JvdXBBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGdlbmVyYXRlZCBBdXRvU2NhbGluZyBncm91cFxuICAgKlxuICAgKiBAZGVmYXVsdCB0aGUgaW1wb3J0ZWQgZ2FtZSBzZXJ2ZXIgZ3JvdXAgZG9lcyBub3QgaGF2ZSBhdXRvc2NhbGluZyBncm91cCBpbmZvcm1hdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgYXV0b1NjYWxpbmdHcm91cEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgdGhhdCBhbGxvd3MgQW1hem9uIEdhbWVMaWZ0IHRvIGFjY2VzcyB5b3VyIEFtYXpvbiBFQzIgQXV0byBTY2FsaW5nIGdyb3Vwcy5cbiAgICpcbiAgICogQGRlZmF1bHQgdGhlIGltcG9ydGVkIGdhbWUgc2VydmVyIGdyb3VwIGNhbm5vdCBiZSBncmFudGVkIGFjY2VzcyB0byBvdGhlciByZXNvdXJjZXMgYXMgYW4gYGlhbS5JR3JhbnRhYmxlYC5cbiAgICovXG4gIHJlYWRvbmx5IHJvbGU/OiBpYW0uSVJvbGU7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSBuZXcgR2FtZWxpZnQgRmxlZXRJUSBHYW1lIHNlcnZlciBncm91cFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdhbWVTZXJ2ZXJHcm91cFByb3BzIHtcbiAgLyoqXG4gICAqIEEgZGV2ZWxvcGVyLWRlZmluZWQgaWRlbnRpZmllciBmb3IgdGhlIGdhbWUgc2VydmVyIGdyb3VwLlxuICAgKiBUaGUgbmFtZSBpcyB1bmlxdWUgZm9yIGVhY2ggUmVnaW9uIGluIGVhY2ggQVdTIGFjY291bnQuXG4gICAqL1xuICByZWFkb25seSBnYW1lU2VydmVyR3JvdXBOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSB0aGF0IGFsbG93cyBBbWF6b24gR2FtZUxpZnQgdG8gYWNjZXNzIHlvdXIgQW1hem9uIEVDMiBBdXRvIFNjYWxpbmcgZ3JvdXBzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nYW1lbGlmdC9sYXRlc3QvZmxlZXRpcWd1aWRlL2dzZy1pYW0tcGVybWlzc2lvbnMtcm9sZXMuaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgcm9sZSB3aWxsIGJlIGNyZWF0ZWQgd2l0aCBkZWZhdWx0IHRydXN0IHRvIEdhbWVsaWZ0IGFuZCBBdXRvc2NhbGluZyBzZXJ2aWNlIHByaW5jaXBhbCB3aXRoIGEgZGVmYXVsdCBwb2xpY3kgYEdhbWVMaWZ0R2FtZVNlcnZlckdyb3VwUG9saWN5YCBhdHRhY2hlZC5cbiAgICovXG4gIHJlYWRvbmx5IHJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiBpbnN0YW5jZXMgYWxsb3dlZCBpbiB0aGUgQW1hem9uIEVDMiBBdXRvIFNjYWxpbmcgZ3JvdXAuXG4gICAqIER1cmluZyBhdXRvbWF0aWMgc2NhbGluZyBldmVudHMsIEdhbWVMaWZ0IEZsZWV0SVEgYW5kIEFtYXpvbiBFQzIgZG8gbm90IHNjYWxlIGRvd24gdGhlIGdyb3VwIGJlbG93IHRoaXMgbWluaW11bS5cbiAgICpcbiAgICogSW4gcHJvZHVjdGlvbiwgdGhpcyB2YWx1ZSBzaG91bGQgYmUgc2V0IHRvIGF0IGxlYXN0IDEuXG4gICAqXG4gICAqIEFmdGVyIHRoZSBBdXRvIFNjYWxpbmcgZ3JvdXAgaXMgY3JlYXRlZCwgdXBkYXRlIHRoaXMgdmFsdWUgZGlyZWN0bHkgaW4gdGhlIEF1dG8gU2NhbGluZyBncm91cCB1c2luZyB0aGUgQVdTIGNvbnNvbGUgb3IgQVBJcy5cbiAgICpcbiAgICogQGRlZmF1bHQgdGhlIGRlZmF1bHQgaXMgMFxuICAgKi9cbiAgcmVhZG9ubHkgbWluU2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGluc3RhbmNlcyBhbGxvd2VkIGluIHRoZSBBbWF6b24gRUMyIEF1dG8gU2NhbGluZyBncm91cC4gRHVyaW5nIGF1dG9tYXRpYyBzY2FsaW5nIGV2ZW50cywgR2FtZUxpZnQgRmxlZXRJUSBhbmQgRUMyIGRvIG5vdCBzY2FsZSB1cCB0aGUgZ3JvdXAgYWJvdmUgdGhpcyBtYXhpbXVtLlxuICAgKlxuICAgKiBBZnRlciB0aGUgQXV0byBTY2FsaW5nIGdyb3VwIGlzIGNyZWF0ZWQsIHVwZGF0ZSB0aGlzIHZhbHVlIGRpcmVjdGx5IGluIHRoZSBBdXRvIFNjYWxpbmcgZ3JvdXAgdXNpbmcgdGhlIEFXUyBjb25zb2xlIG9yIEFQSXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRoZSBkZWZhdWx0IGlzIDFcbiAgICovXG4gIHJlYWRvbmx5IG1heFNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBWUEMgbmV0d29yayB0byBwbGFjZSB0aGUgZ2FtZSBzZXJ2ZXIgZ3JvdXAgaW4uXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIGFsbCBHYW1lTGlmdCBGbGVldElRLXN1cHBvcnRlZCBBdmFpbGFiaWxpdHkgWm9uZXMgYXJlIHVzZWQuXG4gICAqXG4gICAqIFlvdSBjYW4gdXNlIHRoaXMgcGFyYW1ldGVyIHRvIHNwZWNpZnkgVlBDcyB0aGF0IHlvdSd2ZSBzZXQgdXAuXG4gICAqXG4gICAqIFRoaXMgcHJvcGVydHkgY2Fubm90IGJlIHVwZGF0ZWQgYWZ0ZXIgdGhlIGdhbWUgc2VydmVyIGdyb3VwIGlzIGNyZWF0ZWQsXG4gICAqIGFuZCB0aGUgY29ycmVzcG9uZGluZyBBdXRvIFNjYWxpbmcgZ3JvdXAgd2lsbCBhbHdheXMgdXNlIHRoZSBwcm9wZXJ0eSB2YWx1ZSB0aGF0IGlzIHNldCB3aXRoIHRoaXMgcmVxdWVzdCxcbiAgICogZXZlbiBpZiB0aGUgQXV0byBTY2FsaW5nIGdyb3VwIGlzIHVwZGF0ZWQgZGlyZWN0bHkuXG4gICAqL1xuICByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuXG4gIC8qKlxuICAgKiBHYW1lIHNlcnZlciBncm91cCBzdWJuZXQgc2VsZWN0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IGFsbCBHYW1lTGlmdCBGbGVldElRLXN1cHBvcnRlZCBBdmFpbGFiaWxpdHkgWm9uZXMgYXJlIHVzZWQuXG4gICAqL1xuICByZWFkb25seSB2cGNTdWJuZXRzPzogZWMyLlN1Ym5ldFNlbGVjdGlvbjtcblxuICAvKipcbiAgICogVGhlIHNldCBvZiBBbWF6b24gRUMyIGluc3RhbmNlIHR5cGVzIHRoYXQgR2FtZUxpZnQgRmxlZXRJUSBjYW4gdXNlIHdoZW4gYmFsYW5jaW5nIGFuZCBhdXRvbWF0aWNhbGx5IHNjYWxpbmcgaW5zdGFuY2VzIGluIHRoZSBjb3JyZXNwb25kaW5nIEF1dG8gU2NhbGluZyBncm91cC5cbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlRGVmaW5pdGlvbnM6IEluc3RhbmNlRGVmaW5pdGlvbltdO1xuXG4gIC8qKlxuICAgKiBUaGUgQW1hem9uIEVDMiBsYXVuY2ggdGVtcGxhdGUgdGhhdCBjb250YWlucyBjb25maWd1cmF0aW9uIHNldHRpbmdzIGFuZCBnYW1lIHNlcnZlciBjb2RlIHRvIGJlIGRlcGxveWVkIHRvIGFsbCBpbnN0YW5jZXMgaW4gdGhlIGdhbWUgc2VydmVyIGdyb3VwLlxuICAgKiBBZnRlciB0aGUgQXV0byBTY2FsaW5nIGdyb3VwIGlzIGNyZWF0ZWQsIHVwZGF0ZSB0aGlzIHZhbHVlIGRpcmVjdGx5IGluIHRoZSBBdXRvIFNjYWxpbmcgZ3JvdXAgdXNpbmcgdGhlIEFXUyBjb25zb2xlIG9yIEFQSXMuXG4gICAqXG4gICAqIE5PVEU6XG4gICAqIElmIHlvdSBzcGVjaWZ5IG5ldHdvcmsgaW50ZXJmYWNlcyBpbiB5b3VyIGxhdW5jaCB0ZW1wbGF0ZSwgeW91IG11c3QgZXhwbGljaXRseSBzZXQgdGhlIHByb3BlcnR5IEFzc29jaWF0ZVB1YmxpY0lwQWRkcmVzcyB0byBgdHJ1ZWAuXG4gICAqIElmIG5vIG5ldHdvcmsgaW50ZXJmYWNlIGlzIHNwZWNpZmllZCBpbiB0aGUgbGF1bmNoIHRlbXBsYXRlLCBHYW1lTGlmdCBGbGVldElRIHVzZXMgeW91ciBhY2NvdW50J3MgZGVmYXVsdCBWUEMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2VjMi91c2VyZ3VpZGUvY3JlYXRlLWxhdW5jaC10ZW1wbGF0ZS5odG1sXG4gICAqL1xuICByZWFkb25seSBsYXVuY2hUZW1wbGF0ZTogZWMyLklMYXVuY2hUZW1wbGF0ZTtcblxuICAvKipcbiAgICogQSBmbGFnIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgaW5zdGFuY2VzIGluIHRoZSBnYW1lIHNlcnZlciBncm91cCBhcmUgcHJvdGVjdGVkIGZyb20gZWFybHkgdGVybWluYXRpb24uXG4gICAqIFVucHJvdGVjdGVkIGluc3RhbmNlcyB0aGF0IGhhdmUgYWN0aXZlIGdhbWUgc2VydmVycyBydW5uaW5nIG1pZ2h0IGJlIHRlcm1pbmF0ZWQgZHVyaW5nIGEgc2NhbGUtZG93biBldmVudCwgY2F1c2luZyBwbGF5ZXJzIHRvIGJlIGRyb3BwZWQgZnJvbSB0aGUgZ2FtZS5cbiAgICogUHJvdGVjdGVkIGluc3RhbmNlcyBjYW5ub3QgYmUgdGVybWluYXRlZCB3aGlsZSB0aGVyZSBhcmUgYWN0aXZlIGdhbWUgc2VydmVycyBydW5uaW5nIGV4Y2VwdCBpbiB0aGUgZXZlbnQgb2YgYSBmb3JjZWQgZ2FtZSBzZXJ2ZXIgZ3JvdXAgZGVsZXRpb24uXG4gICAqXG4gICAqIEFuIGV4Y2VwdGlvbiB0byB0aGlzIGlzIHdpdGggU3BvdCBJbnN0YW5jZXMsIHdoaWNoIGNhbiBiZSB0ZXJtaW5hdGVkIGJ5IEFXUyByZWdhcmRsZXNzIG9mIHByb3RlY3Rpb24gc3RhdHVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBnYW1lIHNlcnZlcnMgcnVubmluZyBtaWdodCBiZSB0ZXJtaW5hdGVkIGR1cmluZyBhIHNjYWxlLWRvd24gZXZlbnRcbiAgICovXG4gIHJlYWRvbmx5IHByb3RlY3RHYW1lU2VydmVyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBzZXR0aW5ncyB0byBkZWZpbmUgYSBzY2FsaW5nIHBvbGljeSBmb3IgdGhlIEF1dG8gU2NhbGluZyBncm91cCB0aGF0IGlzIG9wdGltaXplZCBmb3IgZ2FtZSBob3N0aW5nLlxuICAgKiBUaGUgc2NhbGluZyBwb2xpY3kgdXNlcyB0aGUgbWV0cmljIGBQZXJjZW50VXRpbGl6ZWRHYW1lU2VydmVyc2AgdG8gbWFpbnRhaW4gYSBidWZmZXIgb2YgaWRsZSBnYW1lIHNlcnZlcnMgdGhhdCBjYW4gaW1tZWRpYXRlbHkgYWNjb21tb2RhdGUgbmV3IGdhbWVzIGFuZCBwbGF5ZXJzLlxuICAgKlxuICAgKiBBZnRlciB0aGUgQXV0byBTY2FsaW5nIGdyb3VwIGlzIGNyZWF0ZWQsIHVwZGF0ZSB0aGlzIHZhbHVlIGRpcmVjdGx5IGluIHRoZSBBdXRvIFNjYWxpbmcgZ3JvdXAgdXNpbmcgdGhlIEFXUyBjb25zb2xlIG9yIEFQSXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vIGF1dG9zY2FsaW5nIHBvbGljeSBzZXR0bGVkXG4gICAqL1xuICByZWFkb25seSBhdXRvU2NhbGluZ1BvbGljeT86IEF1dG9TY2FsaW5nUG9saWN5O1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBkZWxldGUgdG8gcGVyZm9ybS4gVG8gZGVsZXRlIGEgZ2FtZSBzZXJ2ZXIgZ3JvdXAsIHNwZWNpZnkgdGhlIERlbGV0ZU9wdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBTQUZFX0RFTEVURVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlT3B0aW9uPzogRGVsZXRlT3B0aW9uO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaG93IEdhbWVMaWZ0IEZsZWV0SVEgYmFsYW5jZXMgdGhlIHVzZSBvZiBTcG90IEluc3RhbmNlcyBhbmQgT24tRGVtYW5kIEluc3RhbmNlcyBpbiB0aGUgZ2FtZSBzZXJ2ZXIgZ3JvdXAuXG4gICAqXG4gICAqIEBkZWZhdWx0IFNQT1RfUFJFRkVSUkVEXG4gICAqL1xuICByZWFkb25seSBiYWxhbmNpbmdTdHJhdGVneT86IEJhbGFuY2luZ1N0cmF0ZWd5O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBHYW1lTGlmdCBGbGVldElRIGdhbWUgc2VydmVyIGdyb3VwIGZvciBtYW5hZ2luZyBnYW1lIGhvc3Rpbmcgb24gYSBjb2xsZWN0aW9uIG9mIEFtYXpvbiBFQzIgaW5zdGFuY2VzIGZvciBnYW1lIGhvc3RpbmcuXG4gKiBUaGlzIG9wZXJhdGlvbiBjcmVhdGVzIHRoZSBnYW1lIHNlcnZlciBncm91cCwgY3JlYXRlcyBhbiBBdXRvIFNjYWxpbmcgZ3JvdXAgaW4geW91ciBBV1MgYWNjb3VudCwgYW5kIGVzdGFibGlzaGVzIGEgbGluayBiZXR3ZWVuIHRoZSB0d28gZ3JvdXBzLlxuICogWW91IGNhbiB2aWV3IHRoZSBzdGF0dXMgb2YgeW91ciBnYW1lIHNlcnZlciBncm91cHMgaW4gdGhlIEdhbWVMaWZ0IGNvbnNvbGUuXG4gKiBHYW1lIHNlcnZlciBncm91cCBtZXRyaWNzIGFuZCBldmVudHMgYXJlIGVtaXR0ZWQgdG8gQW1hem9uIENsb3VkV2F0Y2guXG4gKiBCZWZvcmUgY3JlYXRpbmcgYSBuZXcgZ2FtZSBzZXJ2ZXIgZ3JvdXAsIHlvdSBtdXN0IGhhdmUgdGhlIGZvbGxvd2luZzpcbiAqICAtIEFuIEFtYXpvbiBFQzIgbGF1bmNoIHRlbXBsYXRlIHRoYXQgc3BlY2lmaWVzIGhvdyB0byBsYXVuY2ggQW1hem9uIEVDMiBpbnN0YW5jZXMgd2l0aCB5b3VyIGdhbWUgc2VydmVyIGJ1aWxkLlxuICogIC0gQW4gSUFNIHJvbGUgdGhhdCBleHRlbmRzIGxpbWl0ZWQgYWNjZXNzIHRvIHlvdXIgQVdTIGFjY291bnQgdG8gYWxsb3cgR2FtZUxpZnQgRmxlZXRJUSB0byBjcmVhdGUgYW5kIGludGVyYWN0IHdpdGggdGhlIEF1dG8gU2NhbGluZyBncm91cC5cbiAqXG4gKiBUbyBjcmVhdGUgYSBuZXcgZ2FtZSBzZXJ2ZXIgZ3JvdXAsIHNwZWNpZnkgYSB1bmlxdWUgZ3JvdXAgbmFtZSwgSUFNIHJvbGUgYW5kIEFtYXpvbiBFQzIgbGF1bmNoIHRlbXBsYXRlLCBhbmQgcHJvdmlkZSBhIGxpc3Qgb2YgaW5zdGFuY2UgdHlwZXMgdGhhdCBjYW4gYmUgdXNlZCBpbiB0aGUgZ3JvdXAuXG4gKiBZb3UgbXVzdCBhbHNvIHNldCBpbml0aWFsIG1heGltdW0gYW5kIG1pbmltdW0gbGltaXRzIG9uIHRoZSBncm91cCdzIGluc3RhbmNlIGNvdW50LlxuICogWW91IGNhbiBvcHRpb25hbGx5IHNldCBhbiBBdXRvIFNjYWxpbmcgcG9saWN5IHdpdGggdGFyZ2V0IHRyYWNraW5nIGJhc2VkIG9uIGEgR2FtZUxpZnQgRmxlZXRJUSBtZXRyaWMuXG4gKlxuICogT25jZSB0aGUgZ2FtZSBzZXJ2ZXIgZ3JvdXAgYW5kIGNvcnJlc3BvbmRpbmcgQXV0byBTY2FsaW5nIGdyb3VwIGFyZSBjcmVhdGVkLCB5b3UgaGF2ZSBmdWxsIGFjY2VzcyB0byBjaGFuZ2UgdGhlIEF1dG8gU2NhbGluZyBncm91cCdzIGNvbmZpZ3VyYXRpb24gYXMgbmVlZGVkLlxuICogU2V2ZXJhbCBwcm9wZXJ0aWVzIHRoYXQgYXJlIHNldCB3aGVuIGNyZWF0aW5nIGEgZ2FtZSBzZXJ2ZXIgZ3JvdXAsIGluY2x1ZGluZyBtYXhpbXVtL21pbmltdW0gc2l6ZSBhbmQgYXV0by1zY2FsaW5nIHBvbGljeSBzZXR0aW5ncywgbXVzdCBiZSB1cGRhdGVkIGRpcmVjdGx5IGluIHRoZSBBdXRvIFNjYWxpbmcgZ3JvdXAuXG4gKiBLZWVwIGluIG1pbmQgdGhhdCBzb21lIEF1dG8gU2NhbGluZyBncm91cCBwcm9wZXJ0aWVzIGFyZSBwZXJpb2RpY2FsbHkgdXBkYXRlZCBieSBHYW1lTGlmdCBGbGVldElRIGFzIHBhcnQgb2YgaXRzIGJhbGFuY2luZyBhY3Rpdml0aWVzIHRvIG9wdGltaXplIGZvciBhdmFpbGFiaWxpdHkgYW5kIGNvc3QuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2FtZWxpZnQvbGF0ZXN0L2ZsZWV0aXFndWlkZS9nc2ctaW50cm8uaHRtbFxuICpcbiAqIEByZXNvdXJjZSBBV1M6OkdhbWVMaWZ0OjpHYW1lU2VydmVyR3JvdXBcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIEdhbWVTZXJ2ZXJHcm91cCBleHRlbmRzIEdhbWVTZXJ2ZXJHcm91cEJhc2Uge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1nYW1lbGlmdC1hbHBoYS5HYW1lU2VydmVyR3JvdXAnO1xuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgZ2FtZSBzZXJ2ZXIgZ3JvdXAgZnJvbSBpdHMgYXR0cmlidXRlcy5cbiAgICovXG4gIHN0YXRpYyBmcm9tR2FtZVNlcnZlckdyb3VwQXR0cmlidXRlcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhdHRyczogR2FtZVNlcnZlckdyb3VwQXR0cmlidXRlcyk6IElHYW1lU2VydmVyR3JvdXAge1xuICAgIGlmICghYXR0cnMuZ2FtZVNlcnZlckdyb3VwQXJuICYmICFhdHRycy5nYW1lU2VydmVyR3JvdXBOYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VpdGhlciBnYW1lU2VydmVyR3JvdXBOYW1lIG9yIGdhbWVTZXJ2ZXJHcm91cEFybiBtdXN0IGJlIHByb3ZpZGVkIGluIEdhbWVTZXJ2ZXJHcm91cEF0dHJpYnV0ZXMnKTtcbiAgICB9XG4gICAgY29uc3QgZ2FtZVNlcnZlckdyb3VwTmFtZSA9IGF0dHJzLmdhbWVTZXJ2ZXJHcm91cE5hbWUgPz9cbiAgICAgIGNkay5TdGFjay5vZihzY29wZSkuc3BsaXRBcm4oYXR0cnMuZ2FtZVNlcnZlckdyb3VwQXJuISwgY2RrLkFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FKS5yZXNvdXJjZU5hbWU7XG5cbiAgICBpZiAoIWdhbWVTZXJ2ZXJHcm91cE5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gZ2FtZSBzZXJ2ZXIgZ3JvdXAgbmFtZSBmb3VuZCBpbiBBUk46ICcke2F0dHJzLmdhbWVTZXJ2ZXJHcm91cEFybn0nYCk7XG4gICAgfVxuXG4gICAgY29uc3QgZ2FtZVNlcnZlckdyb3VwQXJuID0gYXR0cnMuZ2FtZVNlcnZlckdyb3VwQXJuID8/IGNkay5TdGFjay5vZihzY29wZSkuZm9ybWF0QXJuKHtcbiAgICAgIHNlcnZpY2U6ICdnYW1lbGlmdCcsXG4gICAgICByZXNvdXJjZTogJ2dhbWVzZXJ2ZXJncm91cCcsXG4gICAgICByZXNvdXJjZU5hbWU6IGF0dHJzLmdhbWVTZXJ2ZXJHcm91cE5hbWUsXG4gICAgICBhcm5Gb3JtYXQ6IGNkay5Bcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSxcbiAgICB9KTtcblxuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIEdhbWVTZXJ2ZXJHcm91cEJhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IGdhbWVTZXJ2ZXJHcm91cE5hbWUgPSBnYW1lU2VydmVyR3JvdXBOYW1lITtcbiAgICAgIHB1YmxpYyByZWFkb25seSBnYW1lU2VydmVyR3JvdXBBcm4gPSBnYW1lU2VydmVyR3JvdXBBcm47XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgYXV0b1NjYWxpbmdHcm91cEFybiA9IGF0dHJzLmF1dG9TY2FsaW5nR3JvdXBBcm47XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWwgPSBhdHRycy5yb2xlID8/IG5ldyBpYW0uVW5rbm93blByaW5jaXBhbCh7IHJlc291cmNlOiB0aGlzIH0pO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHJvbGUgPSBhdHRycy5yb2xlO1xuXG4gICAgICBjb25zdHJ1Y3RvcihzOiBDb25zdHJ1Y3QsIGk6IHN0cmluZykge1xuICAgICAgICBzdXBlcihzLCBpLCB7XG4gICAgICAgICAgZW52aXJvbm1lbnRGcm9tQXJuOiBnYW1lU2VydmVyR3JvdXBBcm4sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBnYW1lIHNlcnZlciBncm91cFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGdhbWVTZXJ2ZXJHcm91cE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZ2FtZSBzZXJ2ZXIgZ3JvdXAuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ2FtZVNlcnZlckdyb3VwQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGdlbmVyYXRlZCBBdXRvU2NhbGluZyBncm91cFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGF1dG9TY2FsaW5nR3JvdXBBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElBTSByb2xlIHRoYXQgYWxsb3dzIEFtYXpvbiBHYW1lTGlmdCB0byBhY2Nlc3MgeW91ciBBbWF6b24gRUMyIEF1dG8gU2NhbGluZyBncm91cHMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZTogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJpbmNpcGFsIHRoaXMgR2FtZUxpZnQgZ2FtZSBzZXJ2ZXIgZ3JvdXAgaXMgdXNpbmcuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsO1xuXG4gIC8qKlxuICAgKiBUaGUgVlBDIG5ldHdvcmsgdG8gcGxhY2UgdGhlIGdhbWUgc2VydmVyIGdyb3VwIGluLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZwYzogZWMyLklWcGM7XG5cbiAgLyoqXG4gICAqIFRoZSBnYW1lIHNlcnZlciBncm91cCdzIHN1Ym5ldHMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdnBjU3VibmV0cz86IGVjMi5TdWJuZXRTZWxlY3Rpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEdhbWVTZXJ2ZXJHcm91cFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLmdhbWVTZXJ2ZXJHcm91cE5hbWUsXG4gICAgfSk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICBpZiAoIWNkay5Ub2tlbi5pc1VucmVzb2x2ZWQocHJvcHMuZ2FtZVNlcnZlckdyb3VwTmFtZSkpIHtcbiAgICAgIGlmIChwcm9wcy5nYW1lU2VydmVyR3JvdXBOYW1lLmxlbmd0aCA+IDEyOCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEdhbWVTZXJ2ZXJHcm91cCBuYW1lIGNhbiBub3QgYmUgbG9uZ2VyIHRoYW4gMTI4IGNoYXJhY3RlcnMgYnV0IGhhcyAke3Byb3BzLmdhbWVTZXJ2ZXJHcm91cE5hbWUubGVuZ3RofSBjaGFyYWN0ZXJzLmApO1xuICAgICAgfVxuXG4gICAgICBpZiAoIS9eW2EtekEtWjAtOS1cXC5dKyQvLnRlc3QocHJvcHMuZ2FtZVNlcnZlckdyb3VwTmFtZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBHYW1lIHNlcnZlciBncm91cCBuYW1lICR7cHJvcHMuZ2FtZVNlcnZlckdyb3VwTmFtZX0gY2FuIGNvbnRhaW4gb25seSBsZXR0ZXJzLCBudW1iZXJzLCBoeXBoZW5zLCBiYWNrIHNsYXNoIG9yIGRvdCB3aXRoIG5vIHNwYWNlcy5gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnZwYyA9IHByb3BzLnZwYztcbiAgICB0aGlzLnZwY1N1Ym5ldHMgPSBwcm9wcy52cGNTdWJuZXRzID8/IHsgc3VibmV0VHlwZTogZWMyLlN1Ym5ldFR5cGUuUFVCTElDIH07XG4gICAgY29uc3QgeyBzdWJuZXRJZHMgfSA9IHByb3BzLnZwYy5zZWxlY3RTdWJuZXRzKHRoaXMudnBjU3VibmV0cyk7XG5cbiAgICBpZiAocHJvcHMubWluU2l6ZSAmJiBwcm9wcy5taW5TaXplIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgbWluaW11bSBudW1iZXIgb2YgaW5zdGFuY2VzIGFsbG93ZWQgaW4gdGhlIEFtYXpvbiBFQzIgQXV0byBTY2FsaW5nIGdyb3VwIGNhbm5vdCBiZSBsb3dlciB0aGFuIDAsIGdpdmVuICR7cHJvcHMubWluU2l6ZX1gKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMubWF4U2l6ZSAmJiBwcm9wcy5tYXhTaXplIDwgMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgbWF4aW11bSBudW1iZXIgb2YgaW5zdGFuY2VzIGFsbG93ZWQgaW4gdGhlIEFtYXpvbiBFQzIgQXV0byBTY2FsaW5nIGdyb3VwIGNhbm5vdCBiZSBsb3dlciB0aGFuIDEsIGdpdmVuICR7cHJvcHMubWF4U2l6ZX1gKTtcbiAgICB9XG5cbiAgICBpZiAoc3VibmV0SWRzLmxlbmd0aCA+IDIwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIG1vcmUgdGhhbiAyMCBzdWJuZXRzIGFyZSBhbGxvd2VkIHBlciBnYW1lIHNlcnZlciBncm91cCwgZ2l2ZW4gJHtzdWJuZXRJZHMubGVuZ3RofWApO1xuICAgIH1cblxuICAgIC8vIEFkZCBhbGwgaW5zdGFuY2UgZGVmaW5pdGlvbnNcbiAgICBpZiAocHJvcHMuaW5zdGFuY2VEZWZpbml0aW9ucy5sZW5ndGggPiAyMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBtb3JlIHRoYW4gMjAgaW5zdGFuY2UgZGVmaW5pdGlvbnMgYXJlIGFsbG93ZWQgcGVyIGdhbWUgc2VydmVyIGdyb3VwLCBnaXZlbiAke3Byb3BzLmluc3RhbmNlRGVmaW5pdGlvbnMubGVuZ3RofWApO1xuICAgIH1cblxuICAgIHRoaXMucm9sZSA9IHByb3BzLnJvbGUgPz8gbmV3IGlhbS5Sb2xlKHRoaXMsICdTZXJ2aWNlUm9sZScsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5Db21wb3NpdGVQcmluY2lwYWwoXG4gICAgICAgIG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnZ2FtZWxpZnQuYW1hem9uYXdzLmNvbScpLFxuICAgICAgICBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2F1dG9zY2FsaW5nLmFtYXpvbmF3cy5jb20nKSksXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFtcbiAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKCdHYW1lTGlmdEdhbWVTZXJ2ZXJHcm91cFBvbGljeScpLFxuICAgICAgXSxcbiAgICB9KTtcbiAgICB0aGlzLmdyYW50UHJpbmNpcGFsID0gdGhpcy5yb2xlO1xuXG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgQ2ZuR2FtZVNlcnZlckdyb3VwKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGdhbWVTZXJ2ZXJHcm91cE5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgICAgYXV0b1NjYWxpbmdQb2xpY3k6IHRoaXMucGFyc2VBdXRvU2NhbGluZ1BvbGljeShwcm9wcyksXG4gICAgICBkZWxldGVPcHRpb246IHByb3BzLmRlbGV0ZU9wdGlvbixcbiAgICAgIGJhbGFuY2luZ1N0cmF0ZWd5OiBwcm9wcy5iYWxhbmNpbmdTdHJhdGVneSxcbiAgICAgIGdhbWVTZXJ2ZXJQcm90ZWN0aW9uUG9saWN5OiBwcm9wcy5wcm90ZWN0R2FtZVNlcnZlciA/ICdGVUxMX1BST1RFQ1RJT04nIDogJ05PX1BST1RFQ1RJT04nLFxuICAgICAgaW5zdGFuY2VEZWZpbml0aW9uczogdGhpcy5wYXJzZUluc3RhbmNlRGVmaW5pdGlvbnMocHJvcHMpLFxuICAgICAgbGF1bmNoVGVtcGxhdGU6IHRoaXMucGFyc2VMYXVuY2hUZW1wbGF0ZShwcm9wcyksXG4gICAgICBtaW5TaXplOiBwcm9wcy5taW5TaXplLFxuICAgICAgbWF4U2l6ZTogcHJvcHMubWF4U2l6ZSxcbiAgICAgIHJvbGVBcm46IHRoaXMucm9sZS5yb2xlQXJuLFxuICAgICAgdnBjU3VibmV0czogc3VibmV0SWRzLFxuICAgIH0pO1xuXG4gICAgdGhpcy5nYW1lU2VydmVyR3JvdXBOYW1lID0gdGhpcy5nZXRSZXNvdXJjZU5hbWVBdHRyaWJ1dGUocmVzb3VyY2UucmVmKTtcbiAgICB0aGlzLmdhbWVTZXJ2ZXJHcm91cEFybiA9IHRoaXMuZ2V0UmVzb3VyY2VBcm5BdHRyaWJ1dGUocmVzb3VyY2UuYXR0ckdhbWVTZXJ2ZXJHcm91cEFybiwge1xuICAgICAgc2VydmljZTogJ2dhbWVsaWZ0JyxcbiAgICAgIHJlc291cmNlOiAnZ2FtZXNlcnZlcmdyb3VwJyxcbiAgICAgIHJlc291cmNlTmFtZTogdGhpcy5waHlzaWNhbE5hbWUsXG4gICAgICBhcm5Gb3JtYXQ6IGNkay5Bcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSxcbiAgICB9KTtcbiAgICB0aGlzLmF1dG9TY2FsaW5nR3JvdXBBcm4gPSB0aGlzLmdldFJlc291cmNlQXJuQXR0cmlidXRlKHJlc291cmNlLmF0dHJBdXRvU2NhbGluZ0dyb3VwQXJuLCB7XG4gICAgICBzZXJ2aWNlOiAnYXV0b3NjYWxpbmcnLFxuICAgICAgcmVzb3VyY2U6ICdhdXRvU2NhbGluZ0dyb3VwJyxcbiAgICAgIHJlc291cmNlTmFtZTogdGhpcy5waHlzaWNhbE5hbWUsXG4gICAgICBhcm5Gb3JtYXQ6IGNkay5Bcm5Gb3JtYXQuQ09MT05fUkVTT1VSQ0VfTkFNRSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZUxhdW5jaFRlbXBsYXRlKHByb3BzOiBHYW1lU2VydmVyR3JvdXBQcm9wcyk6IENmbkdhbWVTZXJ2ZXJHcm91cC5MYXVuY2hUZW1wbGF0ZVByb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgbGF1bmNoVGVtcGxhdGVJZDogcHJvcHMubGF1bmNoVGVtcGxhdGUubGF1bmNoVGVtcGxhdGVJZCxcbiAgICAgIGxhdW5jaFRlbXBsYXRlTmFtZTogcHJvcHMubGF1bmNoVGVtcGxhdGUubGF1bmNoVGVtcGxhdGVOYW1lLFxuICAgICAgdmVyc2lvbjogcHJvcHMubGF1bmNoVGVtcGxhdGUudmVyc2lvbk51bWJlcixcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlQXV0b1NjYWxpbmdQb2xpY3kocHJvcHM6IEdhbWVTZXJ2ZXJHcm91cFByb3BzKTogQ2ZuR2FtZVNlcnZlckdyb3VwLkF1dG9TY2FsaW5nUG9saWN5UHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGlmICghcHJvcHMuYXV0b1NjYWxpbmdQb2xpY3kpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGVzdGltYXRlZEluc3RhbmNlV2FybXVwOiBwcm9wcy5hdXRvU2NhbGluZ1BvbGljeS5lc3RpbWF0ZWRJbnN0YW5jZVdhcm11cD8udG9TZWNvbmRzKCksXG4gICAgICB0YXJnZXRUcmFja2luZ0NvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgdGFyZ2V0VmFsdWU6IHByb3BzLmF1dG9TY2FsaW5nUG9saWN5LnRhcmdldFRyYWNraW5nQ29uZmlndXJhdGlvbixcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZUluc3RhbmNlRGVmaW5pdGlvbnMocHJvcHM6IEdhbWVTZXJ2ZXJHcm91cFByb3BzKTogQ2ZuR2FtZVNlcnZlckdyb3VwLkluc3RhbmNlRGVmaW5pdGlvblByb3BlcnR5W10ge1xuICAgIHJldHVybiBwcm9wcy5pbnN0YW5jZURlZmluaXRpb25zLm1hcChwYXJzZUluc3RhbmNlRGVmaW5pdGlvbik7XG5cbiAgICBmdW5jdGlvbiBwYXJzZUluc3RhbmNlRGVmaW5pdGlvbihpbnN0YW5jZURlZmluaXRpb246IEluc3RhbmNlRGVmaW5pdGlvbik6IENmbkdhbWVTZXJ2ZXJHcm91cC5JbnN0YW5jZURlZmluaXRpb25Qcm9wZXJ0eSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpbnN0YW5jZVR5cGU6IGluc3RhbmNlRGVmaW5pdGlvbi5pbnN0YW5jZVR5cGUudG9TdHJpbmcoKSxcbiAgICAgICAgd2VpZ2h0ZWRDYXBhY2l0eTogaW5zdGFuY2VEZWZpbml0aW9uLndlaWdodD8udG9TdHJpbmcoKSxcbiAgICAgIH07XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -68,7 +68,7 @@ var PriorityType;
|
|
|
68
68
|
* Base class for new and imported GameLift GameSessionQueue.
|
|
69
69
|
*/
|
|
70
70
|
class GameSessionQueueBase extends cdk.Resource {
|
|
71
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.GameSessionQueueBase", version: "2.
|
|
71
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.GameSessionQueueBase", version: "2.235.0-alpha.0" };
|
|
72
72
|
metric(metricName, props) {
|
|
73
73
|
return new cloudwatch.Metric({
|
|
74
74
|
namespace: 'AWS/GameLift',
|
|
@@ -125,7 +125,7 @@ let GameSessionQueue = (() => {
|
|
|
125
125
|
GameSessionQueue = _classThis = _classDescriptor.value;
|
|
126
126
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
127
127
|
}
|
|
128
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.GameSessionQueue", version: "2.
|
|
128
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.GameSessionQueue", version: "2.235.0-alpha.0" };
|
|
129
129
|
/** Uniquely identifies this class. */
|
|
130
130
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-gamelift-alpha.GameSessionQueue';
|
|
131
131
|
/**
|
package/lib/ingress-rule.js
CHANGED
|
@@ -19,7 +19,7 @@ var Protocol;
|
|
|
19
19
|
*/
|
|
20
20
|
class Port {
|
|
21
21
|
props;
|
|
22
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.Port", version: "2.
|
|
22
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.Port", version: "2.235.0-alpha.0" };
|
|
23
23
|
/**
|
|
24
24
|
* A single TCP port
|
|
25
25
|
*/
|
|
@@ -113,7 +113,7 @@ exports.Port = Port;
|
|
|
113
113
|
* Use this object if you need to represent connection partners using plain IP addresses.
|
|
114
114
|
*/
|
|
115
115
|
class Peer {
|
|
116
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.Peer", version: "2.
|
|
116
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.Peer", version: "2.235.0-alpha.0" };
|
|
117
117
|
/**
|
|
118
118
|
* Create an IPv4 peer from a CIDR
|
|
119
119
|
*/
|
|
@@ -9,7 +9,7 @@ const cdk = require("aws-cdk-lib/core");
|
|
|
9
9
|
* Base class for new and imported GameLift Matchmaking configuration.
|
|
10
10
|
*/
|
|
11
11
|
class MatchmakingConfigurationBase extends cdk.Resource {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.MatchmakingConfigurationBase", version: "2.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.MatchmakingConfigurationBase", version: "2.235.0-alpha.0" };
|
|
13
13
|
/**
|
|
14
14
|
* Import an existing matchmaking configuration from its attributes.
|
|
15
15
|
*/
|
|
@@ -13,7 +13,7 @@ const fs = require("fs");
|
|
|
13
13
|
* - If no match is made after 30 seconds, gradually relax the skill requirements.
|
|
14
14
|
*/
|
|
15
15
|
class RuleSetContent {
|
|
16
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.RuleSetContent", version: "2.
|
|
16
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.RuleSetContent", version: "2.235.0-alpha.0" };
|
|
17
17
|
/**
|
|
18
18
|
* Matchmaking ruleSet body from a file
|
|
19
19
|
* @returns `RuleSetContentBase` based on JSON file content.
|
|
@@ -46,7 +46,7 @@ const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
|
|
|
46
46
|
* Base class for new and imported GameLift matchmaking ruleSet.
|
|
47
47
|
*/
|
|
48
48
|
class MatchmakingRuleSetBase extends cdk.Resource {
|
|
49
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.MatchmakingRuleSetBase", version: "2.
|
|
49
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.MatchmakingRuleSetBase", version: "2.235.0-alpha.0" };
|
|
50
50
|
metric(metricName, props) {
|
|
51
51
|
return new cloudwatch.Metric({
|
|
52
52
|
namespace: 'AWS/GameLift',
|
|
@@ -95,7 +95,7 @@ let MatchmakingRuleSet = (() => {
|
|
|
95
95
|
MatchmakingRuleSet = _classThis = _classDescriptor.value;
|
|
96
96
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
97
97
|
}
|
|
98
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.MatchmakingRuleSet", version: "2.
|
|
98
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.MatchmakingRuleSet", version: "2.235.0-alpha.0" };
|
|
99
99
|
/** Uniquely identifies this class. */
|
|
100
100
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-gamelift-alpha.MatchmakingRuleSet';
|
|
101
101
|
/**
|
|
@@ -71,7 +71,7 @@ let QueuedMatchmakingConfiguration = (() => {
|
|
|
71
71
|
QueuedMatchmakingConfiguration = _classThis = _classDescriptor.value;
|
|
72
72
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
73
73
|
}
|
|
74
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.QueuedMatchmakingConfiguration", version: "2.
|
|
74
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.QueuedMatchmakingConfiguration", version: "2.235.0-alpha.0" };
|
|
75
75
|
/** Uniquely identifies this class. */
|
|
76
76
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-gamelift-alpha.QueuedMatchmakingConfiguration';
|
|
77
77
|
/**
|
package/lib/script.js
CHANGED
|
@@ -47,7 +47,7 @@ const content_1 = require("./content");
|
|
|
47
47
|
* Base class for new and imported GameLift realtime server script.
|
|
48
48
|
*/
|
|
49
49
|
class ScriptBase extends cdk.Resource {
|
|
50
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.ScriptBase", version: "2.
|
|
50
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.ScriptBase", version: "2.235.0-alpha.0" };
|
|
51
51
|
}
|
|
52
52
|
exports.ScriptBase = ScriptBase;
|
|
53
53
|
/**
|
|
@@ -72,7 +72,7 @@ let Script = (() => {
|
|
|
72
72
|
Script = _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-gamelift-alpha.Script", version: "2.
|
|
75
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.Script", version: "2.235.0-alpha.0" };
|
|
76
76
|
/** Uniquely identifies this class. */
|
|
77
77
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-gamelift-alpha.Script';
|
|
78
78
|
/**
|
|
@@ -67,7 +67,7 @@ let StandaloneMatchmakingConfiguration = (() => {
|
|
|
67
67
|
StandaloneMatchmakingConfiguration = _classThis = _classDescriptor.value;
|
|
68
68
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
69
69
|
}
|
|
70
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.StandaloneMatchmakingConfiguration", version: "2.
|
|
70
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.StandaloneMatchmakingConfiguration", version: "2.235.0-alpha.0" };
|
|
71
71
|
/** Uniquely identifies this class. */
|
|
72
72
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-gamelift-alpha.StandaloneMatchmakingConfiguration';
|
|
73
73
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-cdk/aws-gamelift-alpha",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.235.0-alpha.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The CDK Construct Library for AWS::GameLift",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -82,19 +82,19 @@
|
|
|
82
82
|
},
|
|
83
83
|
"license": "Apache-2.0",
|
|
84
84
|
"devDependencies": {
|
|
85
|
-
"@aws-cdk/cdk-build-tools": "2.
|
|
86
|
-
"@aws-cdk/integ-runner": "^2.
|
|
87
|
-
"@aws-cdk/pkglint": "2.
|
|
85
|
+
"@aws-cdk/cdk-build-tools": "2.235.0-alpha.0",
|
|
86
|
+
"@aws-cdk/integ-runner": "^2.193.4",
|
|
87
|
+
"@aws-cdk/pkglint": "2.235.0-alpha.0",
|
|
88
88
|
"@types/jest": "^29.5.14",
|
|
89
89
|
"jest": "^29.7.0",
|
|
90
|
-
"aws-cdk-lib": "2.
|
|
90
|
+
"aws-cdk-lib": "2.235.0",
|
|
91
91
|
"constructs": "^10.0.0",
|
|
92
|
-
"@aws-cdk/integ-tests-alpha": "2.
|
|
92
|
+
"@aws-cdk/integ-tests-alpha": "2.235.0-alpha.0"
|
|
93
93
|
},
|
|
94
94
|
"dependencies": {},
|
|
95
95
|
"homepage": "https://github.com/aws/aws-cdk",
|
|
96
96
|
"peerDependencies": {
|
|
97
|
-
"aws-cdk-lib": "^2.
|
|
97
|
+
"aws-cdk-lib": "^2.235.0",
|
|
98
98
|
"constructs": "^10.0.0"
|
|
99
99
|
},
|
|
100
100
|
"engines": {
|