@dangl/angular-ava 0.1.1-fe--1-add-tree-p0053

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +1 -0
  2. package/esm2022/dangl-angular-ava.mjs +5 -0
  3. package/esm2022/lib/angular-ava.module.mjs +88 -0
  4. package/esm2022/lib/ava-tree/tree/components/ava-tree/ava-tree.component.mjs +356 -0
  5. package/esm2022/lib/ava-tree/tree/components/list-structure/list-structure.component.mjs +38 -0
  6. package/esm2022/lib/ava-tree/tree/components/table-structure/table-structure.component.mjs +99 -0
  7. package/esm2022/lib/ava-tree/tree/components/tree-item/tree-item.component.mjs +89 -0
  8. package/esm2022/lib/ava-tree/tree/components/tree-node/tree-node.component.mjs +52 -0
  9. package/esm2022/lib/ava-tree/tree/components/tree-structure/tree-structure.component.mjs +30 -0
  10. package/esm2022/lib/ava-tree/tree/constants/defaultFilters.mjs +6 -0
  11. package/esm2022/lib/ava-tree/tree/constants/defaultTextWords.mjs +11 -0
  12. package/esm2022/lib/ava-tree/tree/constants/index.mjs +4 -0
  13. package/esm2022/lib/ava-tree/tree/directives/save-changing-view.directive.mjs +43 -0
  14. package/esm2022/lib/ava-tree/tree/model/ava-models.mjs +199 -0
  15. package/esm2022/lib/ava-tree/tree/model/context-menu-data.model.mjs +2 -0
  16. package/esm2022/lib/ava-tree/tree/model/function-view-line.model.mjs +2 -0
  17. package/esm2022/lib/ava-tree/tree/model/index.mjs +4 -0
  18. package/esm2022/lib/ava-tree/tree/model/selecting.model.mjs +2 -0
  19. package/esm2022/lib/ava-tree/tree/model/tableColumnType.mjs +2 -0
  20. package/esm2022/lib/ava-tree/tree/model/tree-mode.model.mjs +7 -0
  21. package/esm2022/lib/ava-tree/tree/pipes/element-icon-name.pipe.mjs +27 -0
  22. package/esm2022/lib/ava-tree/tree/pipes/element-item-number.pipe.mjs +23 -0
  23. package/esm2022/lib/ava-tree/tree/pipes/element-text.pipe.mjs +27 -0
  24. package/esm2022/lib/ava-tree/tree/services/expand-parent-group.service.mjs +32 -0
  25. package/esm2022/lib/ava-tree/tree/services/flat-elements.service.mjs +99 -0
  26. package/esm2022/lib/ava-tree/tree/services/keyboard-operation.service.mjs +114 -0
  27. package/esm2022/lib/ava-tree/tree/services/select-element.service.mjs +37 -0
  28. package/esm2022/lib/ava-tree/tree/services/tree-node-selection.service.mjs +133 -0
  29. package/esm2022/lib/version.mjs +10 -0
  30. package/esm2022/public-api.mjs +8 -0
  31. package/fesm2022/dangl-angular-ava.mjs +1174 -0
  32. package/fesm2022/dangl-angular-ava.mjs.map +1 -0
  33. package/index.d.ts +5 -0
  34. package/lib/angular-ava.module.d.ts +26 -0
  35. package/lib/ava-tree/tree/components/ava-tree/ava-tree.component.d.ts +77 -0
  36. package/lib/ava-tree/tree/components/list-structure/list-structure.component.d.ts +16 -0
  37. package/lib/ava-tree/tree/components/table-structure/table-structure.component.d.ts +34 -0
  38. package/lib/ava-tree/tree/components/tree-item/tree-item.component.d.ts +34 -0
  39. package/lib/ava-tree/tree/components/tree-node/tree-node.component.d.ts +22 -0
  40. package/lib/ava-tree/tree/components/tree-structure/tree-structure.component.d.ts +13 -0
  41. package/lib/ava-tree/tree/constants/defaultFilters.d.ts +1 -0
  42. package/lib/ava-tree/tree/constants/defaultTextWords.d.ts +11 -0
  43. package/lib/ava-tree/tree/constants/index.d.ts +3 -0
  44. package/lib/ava-tree/tree/directives/save-changing-view.directive.d.ts +12 -0
  45. package/lib/ava-tree/tree/model/ava-models.d.ts +1041 -0
  46. package/lib/ava-tree/tree/model/context-menu-data.model.d.ts +8 -0
  47. package/lib/ava-tree/tree/model/function-view-line.model.d.ts +11 -0
  48. package/lib/ava-tree/tree/model/index.d.ts +7 -0
  49. package/lib/ava-tree/tree/model/selecting.model.d.ts +14 -0
  50. package/lib/ava-tree/tree/model/tableColumnType.d.ts +6 -0
  51. package/lib/ava-tree/tree/model/tree-mode.model.d.ts +5 -0
  52. package/lib/ava-tree/tree/pipes/element-icon-name.pipe.d.ts +8 -0
  53. package/lib/ava-tree/tree/pipes/element-item-number.pipe.d.ts +8 -0
  54. package/lib/ava-tree/tree/pipes/element-text.pipe.d.ts +8 -0
  55. package/lib/ava-tree/tree/services/expand-parent-group.service.d.ts +7 -0
  56. package/lib/ava-tree/tree/services/flat-elements.service.d.ts +28 -0
  57. package/lib/ava-tree/tree/services/keyboard-operation.service.d.ts +32 -0
  58. package/lib/ava-tree/tree/services/select-element.service.d.ts +30 -0
  59. package/lib/ava-tree/tree/services/tree-node-selection.service.d.ts +23 -0
  60. package/lib/version.d.ts +8 -0
  61. package/package.json +31 -0
  62. package/public-api.d.ts +4 -0
@@ -0,0 +1,199 @@
1
+ //----------------------
2
+ // <auto-generated>
3
+ // Generated using the NSwag toolchain v14.0.0.0 (NJsonSchema v11.0.0.0 (Newtonsoft.Json v13.0.0.0)) (http://NSwag.org)
4
+ // </auto-generated>
5
+ //----------------------
6
+ /* tslint:disable */
7
+ /* eslint-disable */
8
+ // ReSharper disable InconsistentNaming
9
+ /** This enum configures rounding modes for price calculations in projects */
10
+ export var PriceRoundingModeDto;
11
+ (function (PriceRoundingModeDto) {
12
+ PriceRoundingModeDto["Normal"] = "Normal";
13
+ PriceRoundingModeDto["Floor"] = "Floor";
14
+ PriceRoundingModeDto["Ceiling"] = "Ceiling";
15
+ })(PriceRoundingModeDto || (PriceRoundingModeDto = {}));
16
+ /** Determines the type of an ItemNumberSchema */
17
+ export var ItemNumberTypeDto;
18
+ (function (ItemNumberTypeDto) {
19
+ ItemNumberTypeDto["Numeric"] = "Numeric";
20
+ ItemNumberTypeDto["Alphanumeric"] = "Alphanumeric";
21
+ })(ItemNumberTypeDto || (ItemNumberTypeDto = {}));
22
+ /** Specifies the type an ItemNumberSchemaTier represents. For example, a tier may indicate to be used for positions or for groups. */
23
+ export var ItemNumberSchemaTierTypeDto;
24
+ (function (ItemNumberSchemaTierTypeDto) {
25
+ ItemNumberSchemaTierTypeDto["Undefined"] = "Undefined";
26
+ ItemNumberSchemaTierTypeDto["Index"] = "Index";
27
+ ItemNumberSchemaTierTypeDto["Position"] = "Position";
28
+ ItemNumberSchemaTierTypeDto["Group"] = "Group";
29
+ ItemNumberSchemaTierTypeDto["Lot"] = "Lot";
30
+ })(ItemNumberSchemaTierTypeDto || (ItemNumberSchemaTierTypeDto = {}));
31
+ /** This enumeration models types of price components for better classification. */
32
+ export var PriceComponentTypeDto;
33
+ (function (PriceComponentTypeDto) {
34
+ PriceComponentTypeDto["Unknown"] = "Unknown";
35
+ PriceComponentTypeDto["Wages"] = "Wages";
36
+ PriceComponentTypeDto["Materials"] = "Materials";
37
+ PriceComponentTypeDto["Plant"] = "Plant";
38
+ PriceComponentTypeDto["Miscellaneous"] = "Miscellaneous";
39
+ })(PriceComponentTypeDto || (PriceComponentTypeDto = {}));
40
+ /** This enumeration describes the type of the award / procurement process. If this is used in a GAEB context, more information about award types can be found in the German VOB/A rules and the GAEB standard */
41
+ export var AwardTypeDto;
42
+ (function (AwardTypeDto) {
43
+ AwardTypeDto["Unspecified"] = "Unspecified";
44
+ AwardTypeDto["OpenProcurement"] = "OpenProcurement";
45
+ AwardTypeDto["ClosedProducrement"] = "ClosedProducrement";
46
+ AwardTypeDto["NegotiationProcurementWithoutPublicAnnouncement"] = "NegotiationProcurementWithoutPublicAnnouncement";
47
+ AwardTypeDto["NegotiationProcurement"] = "NegotiationProcurement";
48
+ AwardTypeDto["OpenCall"] = "OpenCall";
49
+ AwardTypeDto["SelectedCallWithoutPublicCompetition"] = "SelectedCallWithoutPublicCompetition";
50
+ AwardTypeDto["SelectedCall"] = "SelectedCall";
51
+ AwardTypeDto["DirectAward"] = "DirectAward";
52
+ AwardTypeDto["InternationalNATOProcurement"] = "InternationalNATOProcurement";
53
+ AwardTypeDto["CompetitiveDialog"] = "CompetitiveDialog";
54
+ })(AwardTypeDto || (AwardTypeDto = {}));
55
+ /** This enumeration describes awards for project that are not just a regular procurement. For example, it can be used to describe recurring maintenance or an outline contract (German: Rahmenvertrag) which just specifies services and prices but may be requested on demand when necessary */
56
+ export var SpecialAwardKindDto;
57
+ (function (SpecialAwardKindDto) {
58
+ SpecialAwardKindDto["Unspecified"] = "Unspecified";
59
+ SpecialAwardKindDto["MaintenanceContract"] = "MaintenanceContract";
60
+ SpecialAwardKindDto["OutlineContract"] = "OutlineContract";
61
+ SpecialAwardKindDto["OutlineForMaintenanceContract"] = "OutlineForMaintenanceContract";
62
+ })(SpecialAwardKindDto || (SpecialAwardKindDto = {}));
63
+ /** This enumeration describes the type of a catalogue. Catalogues, or collections, hold information to categorize and describe items. For example, the German DIN 276 cost group standards describe different types of costs for building projects. When referencing the DIN 276 catalogue and providing an item key or identifier, it is possible to reference data in this catalogue. */
64
+ export var CatalogueTypeDto;
65
+ (function (CatalogueTypeDto) {
66
+ CatalogueTypeDto["Unknown"] = "Unknown";
67
+ CatalogueTypeDto["Location"] = "Location";
68
+ CatalogueTypeDto["DIN276"] = "DIN276";
69
+ CatalogueTypeDto["CostUnit"] = "CostUnit";
70
+ CatalogueTypeDto["WorkCategory"] = "WorkCategory";
71
+ CatalogueTypeDto["OenormB1801CostGroup"] = "OenormB1801CostGroup";
72
+ CatalogueTypeDto["BIM"] = "BIM";
73
+ CatalogueTypeDto["Attachment"] = "Attachment";
74
+ })(CatalogueTypeDto || (CatalogueTypeDto = {}));
75
+ /** Indicates the origin of an element. */
76
+ export var AdditionTypeDto;
77
+ (function (AdditionTypeDto) {
78
+ AdditionTypeDto["None"] = "None";
79
+ AdditionTypeDto["ByBuyer"] = "ByBuyer";
80
+ AdditionTypeDto["ByBidder"] = "ByBidder";
81
+ })(AdditionTypeDto || (AdditionTypeDto = {}));
82
+ /** This enumeration identifies a pre-known standard used for referencing standardized descriptions. */
83
+ export var StandardReferenceTypeDto;
84
+ (function (StandardReferenceTypeDto) {
85
+ StandardReferenceTypeDto["Unknown"] = "Unknown";
86
+ StandardReferenceTypeDto["StLB"] = "StLB";
87
+ StandardReferenceTypeDto["StLK"] = "StLK";
88
+ StandardReferenceTypeDto["STLBBauZ"] = "STLBBauZ";
89
+ })(StandardReferenceTypeDto || (StandardReferenceTypeDto = {}));
90
+ /** Indicates if this service specification item is commissioned (and therefore should be executed), postponed for later or undefined. */
91
+ export var ComissionStatusDto;
92
+ (function (ComissionStatusDto) {
93
+ ComissionStatusDto["Undefined"] = "Undefined";
94
+ ComissionStatusDto["Commissioned"] = "Commissioned";
95
+ ComissionStatusDto["Postponed"] = "Postponed";
96
+ ComissionStatusDto["Removed"] = "Removed";
97
+ })(ComissionStatusDto || (ComissionStatusDto = {}));
98
+ /** This is a classification for Position elements. */
99
+ export var PositionTypeDto;
100
+ (function (PositionTypeDto) {
101
+ PositionTypeDto["Regular"] = "Regular";
102
+ PositionTypeDto["Optional"] = "Optional";
103
+ PositionTypeDto["Alternative"] = "Alternative";
104
+ })(PositionTypeDto || (PositionTypeDto = {}));
105
+ /** This indicates the price type of a IPricedElement. */
106
+ export var PriceTypeDto;
107
+ (function (PriceTypeDto) {
108
+ PriceTypeDto["WithTotal"] = "WithTotal";
109
+ PriceTypeDto["WithoutTotal"] = "WithoutTotal";
110
+ })(PriceTypeDto || (PriceTypeDto = {}));
111
+ /** The service type describes the type of service a Position represents. */
112
+ export var ServiceTypeDto;
113
+ (function (ServiceTypeDto) {
114
+ ServiceTypeDto["Regular"] = "Regular";
115
+ ServiceTypeDto["HourlyPaidWork"] = "HourlyPaidWork";
116
+ })(ServiceTypeDto || (ServiceTypeDto = {}));
117
+ /** This indicates where the content of this element originates, if set. It corresponds to 'herkunftskennzeichen' in ÖNorm */
118
+ export var OenormOriginCodeDto;
119
+ (function (OenormOriginCodeDto) {
120
+ OenormOriginCodeDto["Unknown"] = "Unknown";
121
+ OenormOriginCodeDto["FreeText"] = "FreeText";
122
+ OenormOriginCodeDto["AdditionDescription"] = "AdditionDescription";
123
+ })(OenormOriginCodeDto || (OenormOriginCodeDto = {}));
124
+ /** This enumeration represents the status of an addendum, 'Nachtrag' in German */
125
+ export var AddendumStatusDto;
126
+ (function (AddendumStatusDto) {
127
+ AddendumStatusDto["Unknown"] = "Unknown";
128
+ AddendumStatusDto["Recognized"] = "Recognized";
129
+ AddendumStatusDto["Filed"] = "Filed";
130
+ AddendumStatusDto["Offered"] = "Offered";
131
+ AddendumStatusDto["Withdrawn"] = "Withdrawn";
132
+ AddendumStatusDto["Rejected"] = "Rejected";
133
+ AddendumStatusDto["RejectionObjected"] = "RejectionObjected";
134
+ AddendumStatusDto["FormallyAcknowledged"] = "FormallyAcknowledged";
135
+ AddendumStatusDto["Approved"] = "Approved";
136
+ })(AddendumStatusDto || (AddendumStatusDto = {}));
137
+ /** This enum represents the different ways in which a complementing position type can be specified. It is typically only used in GAEB exports, since in Dangl.AVA, complementing positions are always explicitly referenced. */
138
+ export var PositionComplementingTypeDto;
139
+ (function (PositionComplementingTypeDto) {
140
+ PositionComplementingTypeDto["Undefined"] = "Undefined";
141
+ PositionComplementingTypeDto["AllPreviousMarkedPositions"] = "AllPreviousMarkedPositions";
142
+ PositionComplementingTypeDto["AllPreviousPositions"] = "AllPreviousPositions";
143
+ PositionComplementingTypeDto["ReferencedPositions"] = "ReferencedPositions";
144
+ })(PositionComplementingTypeDto || (PositionComplementingTypeDto = {}));
145
+ /** Types of retentions to be used in positions */
146
+ export var HoldOutTypeDto;
147
+ (function (HoldOutTypeDto) {
148
+ HoldOutTypeDto["Unknown"] = "Unknown";
149
+ HoldOutTypeDto["Base"] = "Base";
150
+ HoldOutTypeDto["Extension"] = "Extension";
151
+ HoldOutTypeDto["Rent"] = "Rent";
152
+ })(HoldOutTypeDto || (HoldOutTypeDto = {}));
153
+ /** Duration used in retention positions */
154
+ export var HoldOutDurationUnitDto;
155
+ (function (HoldOutDurationUnitDto) {
156
+ HoldOutDurationUnitDto["Unknown"] = "Unknown";
157
+ HoldOutDurationUnitDto["Minutes"] = "Minutes";
158
+ HoldOutDurationUnitDto["Hours"] = "Hours";
159
+ HoldOutDurationUnitDto["Days"] = "Days";
160
+ HoldOutDurationUnitDto["Weeks"] = "Weeks";
161
+ HoldOutDurationUnitDto["Months"] = "Months";
162
+ })(HoldOutDurationUnitDto || (HoldOutDurationUnitDto = {}));
163
+ /** Indicates a ServiceSpecification's exchange phase, based on the GAEB exchange phases. */
164
+ export var ExchangePhaseDto;
165
+ (function (ExchangePhaseDto) {
166
+ ExchangePhaseDto["Undefined"] = "Undefined";
167
+ ExchangePhaseDto["Base"] = "Base";
168
+ ExchangePhaseDto["CostEstimate"] = "CostEstimate";
169
+ ExchangePhaseDto["OfferRequest"] = "OfferRequest";
170
+ ExchangePhaseDto["Offer"] = "Offer";
171
+ ExchangePhaseDto["SideOffer"] = "SideOffer";
172
+ ExchangePhaseDto["Grant"] = "Grant";
173
+ })(ExchangePhaseDto || (ExchangePhaseDto = {}));
174
+ /** Indicates where a service specification was originally created. */
175
+ export var OriginDto;
176
+ (function (OriginDto) {
177
+ OriginDto["Self"] = "Self";
178
+ OriginDto["Gaeb90"] = "Gaeb90";
179
+ OriginDto["Gaeb2000"] = "Gaeb2000";
180
+ OriginDto["GaebXml"] = "GaebXml";
181
+ OriginDto["Oenorm"] = "Oenorm";
182
+ OriginDto["Reb"] = "Reb";
183
+ OriginDto["Sia"] = "Sia";
184
+ })(OriginDto || (OriginDto = {}));
185
+ /** This enumeration represents the unit of a duration */
186
+ export var DurationUnitDto;
187
+ (function (DurationUnitDto) {
188
+ DurationUnitDto["Months"] = "Months";
189
+ DurationUnitDto["Years"] = "Years";
190
+ })(DurationUnitDto || (DurationUnitDto = {}));
191
+ /** This enum represents types of price inquiries */
192
+ export var CommerceInquiryTypeDto;
193
+ (function (CommerceInquiryTypeDto) {
194
+ CommerceInquiryTypeDto["Unknown"] = "Unknown";
195
+ CommerceInquiryTypeDto["Project"] = "Project";
196
+ CommerceInquiryTypeDto["Immediate"] = "Immediate";
197
+ CommerceInquiryTypeDto["Exhibition"] = "Exhibition";
198
+ })(CommerceInquiryTypeDto || (CommerceInquiryTypeDto = {}));
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvYXZhLXRyZWUvdHJlZS9tb2RlbC9hdmEtbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdCQUF3QjtBQUN4QixtQkFBbUI7QUFDbkIsMkhBQTJIO0FBQzNILG9CQUFvQjtBQUNwQix3QkFBd0I7QUFFeEIsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQix1Q0FBdUM7QUFFdkMsNkVBQTZFO0FBQzdFLE1BQU0sQ0FBTixJQUFZLG9CQUlYO0FBSkQsV0FBWSxvQkFBb0I7SUFDNUIseUNBQWlCLENBQUE7SUFDakIsdUNBQWUsQ0FBQTtJQUNmLDJDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFKVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBSS9CO0FBMElELGlEQUFpRDtBQUNqRCxNQUFNLENBQU4sSUFBWSxpQkFHWDtBQUhELFdBQVksaUJBQWlCO0lBQ3pCLHdDQUFtQixDQUFBO0lBQ25CLGtEQUE2QixDQUFBO0FBQ2pDLENBQUMsRUFIVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBRzVCO0FBRUQsc0lBQXNJO0FBQ3RJLE1BQU0sQ0FBTixJQUFZLDJCQU1YO0FBTkQsV0FBWSwyQkFBMkI7SUFDbkMsc0RBQXVCLENBQUE7SUFDdkIsOENBQWUsQ0FBQTtJQUNmLG9EQUFxQixDQUFBO0lBQ3JCLDhDQUFlLENBQUE7SUFDZiwwQ0FBVyxDQUFBO0FBQ2YsQ0FBQyxFQU5XLDJCQUEyQixLQUEzQiwyQkFBMkIsUUFNdEM7QUFFRCxtRkFBbUY7QUFDbkYsTUFBTSxDQUFOLElBQVkscUJBTVg7QUFORCxXQUFZLHFCQUFxQjtJQUM3Qiw0Q0FBbUIsQ0FBQTtJQUNuQix3Q0FBZSxDQUFBO0lBQ2YsZ0RBQXVCLENBQUE7SUFDdkIsd0NBQWUsQ0FBQTtJQUNmLHdEQUErQixDQUFBO0FBQ25DLENBQUMsRUFOVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBTWhDO0FBRUQsaU5BQWlOO0FBQ2pOLE1BQU0sQ0FBTixJQUFZLFlBWVg7QUFaRCxXQUFZLFlBQVk7SUFDcEIsMkNBQTJCLENBQUE7SUFDM0IsbURBQW1DLENBQUE7SUFDbkMseURBQXlDLENBQUE7SUFDekMsbUhBQW1HLENBQUE7SUFDbkcsaUVBQWlELENBQUE7SUFDakQscUNBQXFCLENBQUE7SUFDckIsNkZBQTZFLENBQUE7SUFDN0UsNkNBQTZCLENBQUE7SUFDN0IsMkNBQTJCLENBQUE7SUFDM0IsNkVBQTZELENBQUE7SUFDN0QsdURBQXVDLENBQUE7QUFDM0MsQ0FBQyxFQVpXLFlBQVksS0FBWixZQUFZLFFBWXZCO0FBRUQsaVNBQWlTO0FBQ2pTLE1BQU0sQ0FBTixJQUFZLG1CQUtYO0FBTEQsV0FBWSxtQkFBbUI7SUFDM0Isa0RBQTJCLENBQUE7SUFDM0Isa0VBQTJDLENBQUE7SUFDM0MsMERBQW1DLENBQUE7SUFDbkMsc0ZBQStELENBQUE7QUFDbkUsQ0FBQyxFQUxXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFLOUI7QUE4SUQsMlhBQTJYO0FBQzNYLE1BQU0sQ0FBTixJQUFZLGdCQVNYO0FBVEQsV0FBWSxnQkFBZ0I7SUFDeEIsdUNBQW1CLENBQUE7SUFDbkIseUNBQXFCLENBQUE7SUFDckIscUNBQWlCLENBQUE7SUFDakIseUNBQXFCLENBQUE7SUFDckIsaURBQTZCLENBQUE7SUFDN0IsaUVBQTZDLENBQUE7SUFDN0MsK0JBQVcsQ0FBQTtJQUNYLDZDQUF5QixDQUFBO0FBQzdCLENBQUMsRUFUVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBUzNCO0FBd05ELDBDQUEwQztBQUMxQyxNQUFNLENBQU4sSUFBWSxlQUlYO0FBSkQsV0FBWSxlQUFlO0lBQ3ZCLGdDQUFhLENBQUE7SUFDYixzQ0FBbUIsQ0FBQTtJQUNuQix3Q0FBcUIsQ0FBQTtBQUN6QixDQUFDLEVBSlcsZUFBZSxLQUFmLGVBQWUsUUFJMUI7QUFZRCx1R0FBdUc7QUFDdkcsTUFBTSxDQUFOLElBQVksd0JBS1g7QUFMRCxXQUFZLHdCQUF3QjtJQUNoQywrQ0FBbUIsQ0FBQTtJQUNuQix5Q0FBYSxDQUFBO0lBQ2IseUNBQWEsQ0FBQTtJQUNiLGlEQUFxQixDQUFBO0FBQ3pCLENBQUMsRUFMVyx3QkFBd0IsS0FBeEIsd0JBQXdCLFFBS25DO0FBNEJELHlJQUF5STtBQUN6SSxNQUFNLENBQU4sSUFBWSxrQkFLWDtBQUxELFdBQVksa0JBQWtCO0lBQzFCLDZDQUF1QixDQUFBO0lBQ3ZCLG1EQUE2QixDQUFBO0lBQzdCLDZDQUF1QixDQUFBO0lBQ3ZCLHlDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFMVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBSzdCO0FBdUJELHNEQUFzRDtBQUN0RCxNQUFNLENBQU4sSUFBWSxlQUlYO0FBSkQsV0FBWSxlQUFlO0lBQ3ZCLHNDQUFtQixDQUFBO0lBQ25CLHdDQUFxQixDQUFBO0lBQ3JCLDhDQUEyQixDQUFBO0FBQy9CLENBQUMsRUFKVyxlQUFlLEtBQWYsZUFBZSxRQUkxQjtBQUVELHlEQUF5RDtBQUN6RCxNQUFNLENBQU4sSUFBWSxZQUdYO0FBSEQsV0FBWSxZQUFZO0lBQ3BCLHVDQUF1QixDQUFBO0lBQ3ZCLDZDQUE2QixDQUFBO0FBQ2pDLENBQUMsRUFIVyxZQUFZLEtBQVosWUFBWSxRQUd2QjtBQUVELDRFQUE0RTtBQUM1RSxNQUFNLENBQU4sSUFBWSxjQUdYO0FBSEQsV0FBWSxjQUFjO0lBQ3RCLHFDQUFtQixDQUFBO0lBQ25CLG1EQUFpQyxDQUFBO0FBQ3JDLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QjtBQWdHRCw2SEFBNkg7QUFDN0gsTUFBTSxDQUFOLElBQVksbUJBSVg7QUFKRCxXQUFZLG1CQUFtQjtJQUMzQiwwQ0FBbUIsQ0FBQTtJQUNuQiw0Q0FBcUIsQ0FBQTtJQUNyQixrRUFBMkMsQ0FBQTtBQUMvQyxDQUFDLEVBSlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUk5QjtBQUVELGtGQUFrRjtBQUNsRixNQUFNLENBQU4sSUFBWSxpQkFVWDtBQVZELFdBQVksaUJBQWlCO0lBQ3pCLHdDQUFtQixDQUFBO0lBQ25CLDhDQUF5QixDQUFBO0lBQ3pCLG9DQUFlLENBQUE7SUFDZix3Q0FBbUIsQ0FBQTtJQUNuQiw0Q0FBdUIsQ0FBQTtJQUN2QiwwQ0FBcUIsQ0FBQTtJQUNyQiw0REFBdUMsQ0FBQTtJQUN2QyxrRUFBNkMsQ0FBQTtJQUM3QywwQ0FBcUIsQ0FBQTtBQUN6QixDQUFDLEVBVlcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQVU1QjtBQUVELGdPQUFnTztBQUNoTyxNQUFNLENBQU4sSUFBWSw0QkFLWDtBQUxELFdBQVksNEJBQTRCO0lBQ3BDLHVEQUF1QixDQUFBO0lBQ3ZCLHlGQUF5RCxDQUFBO0lBQ3pELDZFQUE2QyxDQUFBO0lBQzdDLDJFQUEyQyxDQUFBO0FBQy9DLENBQUMsRUFMVyw0QkFBNEIsS0FBNUIsNEJBQTRCLFFBS3ZDO0FBZ0JELGtEQUFrRDtBQUNsRCxNQUFNLENBQU4sSUFBWSxjQUtYO0FBTEQsV0FBWSxjQUFjO0lBQ3RCLHFDQUFtQixDQUFBO0lBQ25CLCtCQUFhLENBQUE7SUFDYix5Q0FBdUIsQ0FBQTtJQUN2QiwrQkFBYSxDQUFBO0FBQ2pCLENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QjtBQUVELDJDQUEyQztBQUMzQyxNQUFNLENBQU4sSUFBWSxzQkFPWDtBQVBELFdBQVksc0JBQXNCO0lBQzlCLDZDQUFtQixDQUFBO0lBQ25CLDZDQUFtQixDQUFBO0lBQ25CLHlDQUFlLENBQUE7SUFDZix1Q0FBYSxDQUFBO0lBQ2IseUNBQWUsQ0FBQTtJQUNmLDJDQUFpQixDQUFBO0FBQ3JCLENBQUMsRUFQVyxzQkFBc0IsS0FBdEIsc0JBQXNCLFFBT2pDO0FBbUtELDRGQUE0RjtBQUM1RixNQUFNLENBQU4sSUFBWSxnQkFRWDtBQVJELFdBQVksZ0JBQWdCO0lBQ3hCLDJDQUF1QixDQUFBO0lBQ3ZCLGlDQUFhLENBQUE7SUFDYixpREFBNkIsQ0FBQTtJQUM3QixpREFBNkIsQ0FBQTtJQUM3QixtQ0FBZSxDQUFBO0lBQ2YsMkNBQXVCLENBQUE7SUFDdkIsbUNBQWUsQ0FBQTtBQUNuQixDQUFDLEVBUlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQVEzQjtBQUVELHNFQUFzRTtBQUN0RSxNQUFNLENBQU4sSUFBWSxTQVFYO0FBUkQsV0FBWSxTQUFTO0lBQ2pCLDBCQUFhLENBQUE7SUFDYiw4QkFBaUIsQ0FBQTtJQUNqQixrQ0FBcUIsQ0FBQTtJQUNyQixnQ0FBbUIsQ0FBQTtJQUNuQiw4QkFBaUIsQ0FBQTtJQUNqQix3QkFBVyxDQUFBO0lBQ1gsd0JBQVcsQ0FBQTtBQUNmLENBQUMsRUFSVyxTQUFTLEtBQVQsU0FBUyxRQVFwQjtBQXNDRCx5REFBeUQ7QUFDekQsTUFBTSxDQUFOLElBQVksZUFHWDtBQUhELFdBQVksZUFBZTtJQUN2QixvQ0FBaUIsQ0FBQTtJQUNqQixrQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFIVyxlQUFlLEtBQWYsZUFBZSxRQUcxQjtBQThCRCxvREFBb0Q7QUFDcEQsTUFBTSxDQUFOLElBQVksc0JBS1g7QUFMRCxXQUFZLHNCQUFzQjtJQUM5Qiw2Q0FBbUIsQ0FBQTtJQUNuQiw2Q0FBbUIsQ0FBQTtJQUNuQixpREFBdUIsQ0FBQTtJQUN2QixtREFBeUIsQ0FBQTtBQUM3QixDQUFDLEVBTFcsc0JBQXNCLEtBQXRCLHNCQUFzQixRQUtqQyIsInNvdXJjZXNDb250ZW50IjpbIi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyA8YXV0by1nZW5lcmF0ZWQ+XHJcbi8vICAgICBHZW5lcmF0ZWQgdXNpbmcgdGhlIE5Td2FnIHRvb2xjaGFpbiB2MTQuMC4wLjAgKE5Kc29uU2NoZW1hIHYxMS4wLjAuMCAoTmV3dG9uc29mdC5Kc29uIHYxMy4wLjAuMCkpIChodHRwOi8vTlN3YWcub3JnKVxyXG4vLyA8L2F1dG8tZ2VuZXJhdGVkPlxyXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi8qIHRzbGludDpkaXNhYmxlICovXHJcbi8qIGVzbGludC1kaXNhYmxlICovXHJcbi8vIFJlU2hhcnBlciBkaXNhYmxlIEluY29uc2lzdGVudE5hbWluZ1xyXG5cclxuLyoqIFRoaXMgZW51bSBjb25maWd1cmVzIHJvdW5kaW5nIG1vZGVzIGZvciBwcmljZSBjYWxjdWxhdGlvbnMgaW4gcHJvamVjdHMgKi9cclxuZXhwb3J0IGVudW0gUHJpY2VSb3VuZGluZ01vZGVEdG8ge1xyXG4gICAgTm9ybWFsID0gXCJOb3JtYWxcIixcclxuICAgIEZsb29yID0gXCJGbG9vclwiLFxyXG4gICAgQ2VpbGluZyA9IFwiQ2VpbGluZ1wiLFxyXG59XHJcblxyXG4vKiogR2VuZXJhbCBpbmZvcm1hdGlvbiBhYm91dCBhIFByb2plY3QuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdEluZm9ybWF0aW9uRHRvIHtcclxuICAgIC8qKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgYnV5ZXIuICovXHJcbiAgICBidXllcj86IFBhcnR5SW5mb3JtYXRpb25EdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogRGVzY3JpcHRpb24gZm9yIHRoZSBwcm9qZWN0LiAqL1xyXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogU2hvcnQgZGVzY3JpcHRpb24gZm9yIHRoZSBwcm9qZWN0LiAqL1xyXG4gICAgZGVzY3JpcHRpb25TaG9ydD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBOYW1lIG9mIHRoZSBwcm9qZWN0LiAqL1xyXG4gICAgbmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgc2l0ZS4gKi9cclxuICAgIHNpdGU/OiBQYXJ0eUluZm9ybWF0aW9uRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBJdGVtTnVtYmVyU2NoZW1hIHVzZWQgaW4gdGhlIHByb2plY3QuICovXHJcbiAgICBpdGVtTnVtYmVyU2NoZW1hPzogSXRlbU51bWJlclNjaGVtYUR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBTaG9ydCBsYWJlbCBmb3IgdGhlIGN1cnJlbmN5IHVzZWQuICovXHJcbiAgICBjdXJyZW5jeVNob3J0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEZ1bGwgbGFiZWwgb2YgdGhlIGN1cnJlbmN5IHVzZWQuICovXHJcbiAgICBjdXJyZW5jeUxvbmc/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogTGFiZWwgZm9yIHRoZSBsYWJvdXIgdGltZSBwYXJ0IG9mIHByaWNlcyB1c2VkIGluIHRoZSBwcm9qZWN0LiAqL1xyXG4gICAgbGFib3VyVGltZUxhYmVsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIExhYmVscyBmb3IgdGhlIHByaWNlIGNvbXBvbmVudHMgdXNlZCBpbiB0aGUgcHJvamVjdC4gQ2F1dGlvbjogUmVtb3ZhbCBvZiBhIHByaWNlIGNvbXBvbmVudCB3aWxsIHRyaWdnZXIgdG8gaGF2ZSBkZXBlbmRlbnQgcHJpY2UgaW5mb3JtYXRpb25zIGJlIGRlbGV0ZWQgaW4gSUVsZW1lbnRzIHRoYXQgdXNlIHRoaXMgcHJvcGVydHkuIElmIHRoaXMgcHJvcGVydHkgaXMgY2hhbmdlZCBvciBhbHRlcmVkIGFmdGVyIHRoZSBwcm9qZWN0IGhhcyBhbHJlYWR5IGJlZW4gdXNlZCwgaXQgaXMgc3Ryb25nbHkgYWR2aXNlZCB0byBkbyBvcGVyYXRpb25zIHN0ZXAgYnkgc3RlcCwgZS5nLiBpZiByZW5hbWluZyBhbmQgcmVvcmRlcmluZyBtdWx0aXBsZSBwcmljZSBjb21wb25lbnRzLCB0aGlzIHNob3VsZCBiZSBkb25lIG9uZSBieSBvbmUuIE90aGVyd2lzZSwgYSBjb21iaW5hdGlvbiBvZiByZW5hbWUgYW5kIHJlb3JkZXJpbmcgd2lsbCBub3QgYmUgY29ycmVjdGx5IHByb3BhZ2F0ZWQgZG93bndhcmRzIHRvIGNoaWxkIG9iamVjdHMgaW4gdGhpcyBQcm9qZWN0LiAqL1xyXG4gICAgcHJpY2VDb21wb25lbnRzPzogc3RyaW5nW10gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBkaWN0aW9uYXJ5IHNwZWNpZmllcyBhY3R1YWwgdHlwZXMgdXNlZCBmb3IgdGhlIFByaWNlQ29tcG9uZW50cy4gRm9yIGV4YW1wbGUsIGEgc2luZ2xlIHByaWNlIGNvbXBvbmVudCBtaWdodCBoYXZlIHRoZSBuYW1lICdNYXRlcmlhbCcgYXMgYSBzdHJpbmcsIGFucyB0aGlzIGRpY3Rpb25hcnkgd291bGQgdGhlbiBoYXZlIGEga2V5ICdNYXRlcmlhbCcgYW5kIGEgdmFsdWUgb2YgTWF0ZXJpYWxzLiBZb3UgY2FuIG5vdCBhZGQga2V5cyBoZXJlIHRoYXQgYXJlIG5vdCBhbHNvIHByZXNlbnQgaW4gdGhlIFByaWNlQ29tcG9uZW50cyBwcm9wZXJ0eSwgYW5kIHJlbW92aW5nIHByaWNlIGNvbXBvbmVudHMgd2lsbCBhbHNvIHJlbW92ZSB0aGVtIGZyb20gdGhpcyBkaWN0aW9uYXJ5IGhlcmUuICovXHJcbiAgICByZWFkb25seSBwcmljZUNvbXBvbmVudFR5cGVzPzogeyBba2V5OiBzdHJpbmddOiBQcmljZUNvbXBvbmVudFR5cGVEdG87IH0gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBib29sIGluZGljYXRlcyBpZiB0aGlzIHByb2plY3QgYWxsb3dzIHRoZSBiaWRkZXIgdG8gYWRkIGJpZGRlciBjb21tZW50cy4gQmlkZGVyIGNvbW1lbnRzIGFyZSBhIHdheSB0byBhdHRhY2ggY2xhcmlmeWluZyBpbmZvcm1hdGlvbiB3aGVuIHN1Ym1pdHRpbmcgYW4gb2ZmZXIuICovXHJcbiAgICBiaWRkZXJDb21tZW50QWxsb3dlZD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBpbmRpY2F0ZXMgaWYgdGhlIHByb2plY3Qgc2hvdWxkIGFsbG93IHNpZGUgb2ZmZXJzIGZyb20gY29udHJhY3RvcnMuIEluIEdBRUIsIGEgc2lkZSBvZmZlciB3b3VsZCB0eXBpY2FsbHkgYmUgaW4gZXhjaGFuZ2UgcGhhc2UgODUuICovXHJcbiAgICBzaWRlT2ZmZXJzQWxsb3dlZD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBlbnVtZXJhdGlvbiBkZXNjcmliZXMgdGhlIHR5cGUgb2YgdGhlIGF3YXJkIC8gcHJvY3VyZW1lbnQgcHJvY2Vzcy4gSWYgdGhpcyBpcyB1c2VkIGluIGEgR0FFQiBjb250ZXh0LCBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGF3YXJkIHR5cGVzIGNhbiBiZSBmb3VuZCBpbiB0aGUgR2VybWFuIFZPQi9BIHJ1bGVzIGFuZCB0aGUgR0FFQiBzdGFuZGFyZCAqL1xyXG4gICAgYXdhcmRUeXBlPzogQXdhcmRUeXBlRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgZW51bWVyYXRpb24gZGVzY3JpYmVzIGF3YXJkcyBmb3IgcHJvamVjdCB0aGF0IGFyZSBub3QganVzdCBhIHJlZ3VsYXIgcHJvY3VyZW1lbnQuIEZvciBleGFtcGxlLCBpdCBjYW4gYmUgdXNlZCB0byBkZXNjcmliZSByZWN1cnJpbmcgbWFpbnRlbmFuY2Ugb3IgYW4gb3V0bGluZSBjb250cmFjdCAoR2VybWFuOiBSYWhtZW52ZXJ0cmFnKSB3aGljaCBqdXN0IHNwZWNpZmllcyBzZXJ2aWNlcyBhbmQgcHJpY2VzIGJ1dCBtYXkgYmUgcmVxdWVzdGVkIG9uIGRlbWFuZCB3aGVuIG5lY2Vzc2FyeSAqL1xyXG4gICAgc3BlY2lhbEF3YXJkS2luZD86IFNwZWNpYWxBd2FyZEtpbmREdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogUmVxdWVzdGVycyBpbiBhIGNvbnN0cnVjdGlvbiBwcm9qZWN0LCBpbiBHZXJtYW4gYWxzbyBjYWxsZWQgJ0JlZGFyZnN0csOkZ2VyJywgYXJlIHBhcnRpZXMgY29ubmVjdGVkIHRvIHRoZSBidWlsZGluZyBwcm9jZXNzLCBlLmcuIGFyY2hpdGVjdHMgb3IgcGxhbm5lcnMuICovXHJcbiAgICByZXF1ZXN0ZXJzPzogUGFydHlJbmZvcm1hdGlvbkR0b1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIE5vdGlmaWNhdGlvbiBzaXRlcyBhcmUgYWRkcmVzc2VzIHRoYXQgYXJlIHVzZWQgZm9yIGRlbGl2ZXJpbmcgbWVzc2FnZXMgaW4gdGhlIGNvbnRleHQgb2YgY29uc3RydWN0aW9uIHByb2plY3RzLiAqL1xyXG4gICAgbm90aWZpY2F0aW9uU2l0ZXM/OiBQYXJ0eUluZm9ybWF0aW9uRHRvW10gfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBSZXByZXNlbnRzIGluZm9ybWF0aW9uIGFib3V0IGEgcGFydHkgKGEgc2l0ZSBvciBhbiBvcmdhbml6YXRpb24pLiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFBhcnR5SW5mb3JtYXRpb25EdG8ge1xyXG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICAvKiogVGhpcyBwYXJ0eSdzIG5hbWUuICovXHJcbiAgICBuYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgcGFydHkncyBzdHJlZXQuICovXHJcbiAgICBzdHJlZXQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBwYXJ0eSdzIFppcENvZGUuICovXHJcbiAgICB6aXBDb2RlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgcGFydHkncyBDaXR5LiAqL1xyXG4gICAgY2l0eT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHBhcnR5J3MgQ291bnRyeS4gKi9cclxuICAgIGNvdW50cnk/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBwYXJ0eSdzIElkZW50aWZpZXIuICovXHJcbiAgICBpZGVudGlmaWVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFJlbWFya3MgZm9yIHRoaXMgcGFydHkuICovXHJcbiAgICByZW1hcmtzPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEFuIGVtYWlsIGFkZHJlc3MgZm9yIHRoaXMgcGFydHkuICovXHJcbiAgICBlbWFpbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBBIHBob25lIG51bWJlciBmb3IgdGhpcyBwYXJ0eS4gKi9cclxuICAgIHBob25lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBuYW1lIG9mIGEgY29udGFjdCBwZXJzb24uICovXHJcbiAgICBjb250YWN0UGVyc29uTmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGlzIGFuIGlkZW50aWZpZXIgcmVsYXRlZCB0byB0aGlzIFBhcnR5SW5mb3JtYXRpb24gYW5kIHRoZWlyIGludGVybmFsIHJlZmVyZW5jZSBvZiB0aGUgdGVuZGVyIChvciBhd2FyZCkuIFRoaXMgbWlnaHQgYmUgdXNlZCB0byBhc3NpZ24gYW4gaWRlbnRpZmllciAoR2VybWFuIFwiVmVyZ2FiZW51bW1lclwiKSBmb3IgdGhlIGN1cnJlbnQgcHJvamVjdC4gVGhpcyBpcyB0eXBpY2FsbHkgb25seSB1c2VkIGluIEJ1eWVyIGFuZCBCaWRkZXIgcmVwcmVzZW50YXRpb25zIGFuZCBzaG91bGQgbWFwIHRvIHRoZSBjb25jZXB0IG9mIFwiVmVyZ2FiZW51bW1lclwiIG9yIFwiQXdhcmROb1wiIGluIEdBRUIuICovXHJcbiAgICBhd2FyZElkZW50aWZpZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBpbmRpY2F0ZXMgaWYgdGhlIHBhcnR5IGlzIHJlZ2lzdGVyZWQgd2l0aGluIHRoZSBFdXJvcGVhbiBFY29ub21pYyBBcmVhLiAqL1xyXG4gICAgaXNJbkV1cm9wZWFuRWNvbm9taWNBcmVhPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJZiB0aGlzIGlzIHdpdGhpbiB0aGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSAoc2VlIElzSW5FdXJvcGVhbkVjb25vbWljQXJlYSwgdGhlbiBhcyBhIGJ1c2luZXNzIGVudGl0eSBpdCBsaWtlbHkgaGFzIGFuIEVVIFZBVCBJZC4gKi9cclxuICAgIHZhdElkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBmYXggbnVtYmVyIGZvciB0aGlzIHBhcnR5LiAqL1xyXG4gICAgZmF4Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSB0d28gbGV0dGVyIElTTyBjb3VudHJ5IGNvZGUsIGUuZy4gREUgZm9yIEdlcm1hbnkuICovXHJcbiAgICBjb3VudHJ5Q29kZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBEZXBlbmRpbmcgb24gd2hpY2ggcGFydHkgdGhpcyBjbGFzcyByZXByZXNlbnRzLCBpdCBtaWdodCBoYXZlIGVpdGhlciBhICdjcmVkaXRvcicgb3IgJ2RlYnRvcicgbnVtYmVyLiBUaGlzIGlzIG9mdGVuIHVzZWQgaW4gaW50ZXJuYWwgYWNjb3VudGluZyBzeXN0ZW1zLiAqL1xyXG4gICAgY3JlZGl0b3JPckRlYnRvcklkZW50aWZpZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIEdsb2JhbCBMb2NhdGlvbiBOdW1iZXIgKEdMTikgaXMgaXNzdWVkIGJ5IEdTMSBhbmQgaXMgaW50ZW5kZWQgdG8gYmUgYSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHBoeXNpY2FsIGFkZHJlc3Mgb2YgYSBwYXJ0eSwgZS5nLiBhIGJ1c2luZXNzIG9mZmljZS4gKi9cclxuICAgIGdsb2JhbExvY2F0aW9uTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgbGlzdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBiYW5rIGFjY291bnRzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIFBhcnR5SW5mb3JtYXRpb24uIEl0J3MgdHlwaWNhbGx5IHVzZWQgZm9yIGJ1eWVycyBhbmQgYmlkZGVycy4gKi9cclxuICAgIGJhbmtpbmdJbmZvcm1hdGlvbj86IEJhbmtpbmdJbmZvcm1hdGlvbkR0b1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHJlZ2lzdHJhdGlvbiBudW1iZXIgZm9yIHRoaXMgcGFydHksIGUuZy4gYSBjb21wYW55IHJlZ2lzdHJhdGlvbiBudW1iZXIuIEl0IGlzIHVzdWFsbHkgdXNlZCBpbiBHQUVCIFhNTCBjb21tZXJjZSBleGNoYW5nZXMgZm9yIGJpZGRlcnMgdG8gc3VwcGx5IHRoZWlyIFdFRUUgcmVnaXN0cmF0aW9uIG51bWJlciwgd2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSB0aGVtIGFzIGEgcmVnaXN0ZXJlZCBXRUVFIGNvbXBhbnkuICovXHJcbiAgICByZWdpc3RyYXRpb25OdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBUaGlzIGlzIGEgY2xhc3MgdGhhdCByZXByZXNlbnRzIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBhIGJhbmsgY29ubmVjdGlvbi4gSXQgaXMgdXN1YWxseSB1c2VkIHdpdGhpbiBhIFBhcnR5SW5mb3JtYXRpb24uICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQmFua2luZ0luZm9ybWF0aW9uRHRvIHtcclxuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoZSBiYW5rLiAqL1xyXG4gICAgbmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgaW50ZXJuYXRpb25hbCBpZGVudGlmaWVyIGZvciB0aGUgYmFuayBhY2NvdW50LiAqL1xyXG4gICAgaWJhbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgYWNjb3VudCBudW1iZXIuIFR5cGljYWxseSBubyBsb25nZXIgdXNlZCBzaW5jZSB0aGUgaW50cm9kdWN0aW9uIG9mIElCQU4gd2l0aGluIHRoZSBTRVBBIGFyZWEuICovXHJcbiAgICBhY2NvdW50TnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBpbnRlcm5hdGlvbmFsIGJhbmsgaWRlbnRpZmllci4gKi9cclxuICAgIGJpYz86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgcm91dGluZyBudW1iZXIgZm9yIHRoZSBiYW5rLiBUeXBpY2FsbHkgbm8gbG9uZ2VyIHVzZWQgc2luY2UgdGhlIGludHJvZHVjdGlvbiBvZiBJQkFOIHdpdGhpbiB0aGUgU0VQQSBhcmVhLiAqL1xyXG4gICAgcm91dGluZ051bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqIFRoZSBzY2hlbWEgZm9yIEl0ZW1OdW1iZXIncyBpbiBhIFByb2plY3QuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgSXRlbU51bWJlclNjaGVtYUR0byB7XHJcbiAgICAvKiogVGhlIGNvdW50IG9mIHRpZXJzIGluIHRoZSBJdGVtTnVtYmVyU2NoZW1hICovXHJcbiAgICByZWFkb25seSB0b3RhbExlbmd0aD86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgY29sbGVjdGlvbiBvZiB0aWVycyBmb3IgdGhpcyBJdGVtTnVtYmVyU2NoZW1hLiAqL1xyXG4gICAgdGllcnM/OiBJdGVtTnVtYmVyU2NoZW1hVGllckR0b1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBzZXBhcmF0b3IgdG8gdXNlIGZvciBzZXBhcml0aW5nIHRoZSBkaWZmZXJlbnQgbGV2ZWxzIGluIGFuIEl0ZW1OdW1iZXIuIERlZmF1bHRzIHRvIERFRkFVTFRfU0VQQVJBVE9SLCB3aGljaCBpcyBhIHBvaW50ICcuJy4gU2V0dGluZyB0aGlzIHRvIGEgc3BhY2Ugb3Igb3RoZXIgd2hpdGVzcGFjZXMgaXMgZGlzY291cmFnZWQsIGFzIHRoaXMgbWlnaHQgbm90IHdvcmsgY29ycmVjdCBpbiBhbGwgc2l0dWF0aW9ucyBhbmQgaXRlbSBudW1iZXJzIGNvdWxkIGJlIGRpc3BsYXllZCBub3QgYXMgaW50ZW5kZWQuIFRoaXMgY2FuIG5vdCBiZSBzZXQgdG8gYW4gZW1wdHkgb3IgbnVsbCBzdHJpbmcsIHRyeWluZyB0aGF0IHdpbGwgZGVmYXVsdCB0byB0aGUgREVGQVVMVF9TRVBBUkFUT1IuIElmIGEgdmFsdWUgaXMgc2V0IHRoYXQgaGFzIGEgZGlmZmVyZW50IGxlbmd0aCB0aGFuIG9uZSAnMScsIHRoZSBERUZBVUxUX1NFUEFSQVRPUiB3aWxsIGJlIHVzZWQgaW5zdGVhZC4gWW91IHNob3VsZCBhbHNvIG5vdCB1c2UgdmFsdWVzIGZvciB0aGUgc2VwYXJhdG9yIHRoYXQgYXJlIGFsc28gdmFsaWQgZm9yIHRoZSBpdGVtIG51bWJlcnMgdGhlbXNlbHZlcywgYXMgdGhhdCBtaWdodCBhbHNvIGxlYWQgdG8gaW5jb3JyZWN0IHJlc3VsdHMgKi9cclxuICAgIHNlcGFyYXRvcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHN0cmluZyBpcyB1c2VkIHRvIGZpbGwgKGxlZnQtcGFkKSBpdGVtIG51bWJlcnMuIEZvciBleGFtcGxlLCBpZiBhIHRpZXIgaGFzIGEgbGVuZ3RoIG9mICc0JyBidXQgdGhlIGdpdmVuIGl0ZW0gbnVtYmVyIGlzICcxMicsIHdpdGggYSBGaWxsZXIgb2YgJzAnLCB0aGVuIHRoZSBmaW5hbCBpdGVtIG51bWJlciB3aWxsIGJlIHJlcHJlc2VudGVkIGFzICcwJy4gVGhpcyBtdXN0IGJlIGEgc2luZ2xlIGNoYXJhY3RlciBzdHJpbmcsIGlmIGEgdmFsdWUgaXMgZ2l2ZW4gd2hlcmUgdGhlIExlbmd0aCBwcm9wZXJ0eSBkb2VzIG5vdCBldmFsdWF0ZSB0byAnMScsIHRoZSBERUZBVUxUX0ZJTExFUiAnMCcgaXMgdXNlZC4gQSBzcGFjZSBpcyBmaW5lIHRvIHVzZS4gWW91IHNob3VsZCBlbnN1cmUgdGhhdCB5b3UgdXNlIGEgdmFsdWUgZGlmZmVyZW50IHRoYW4gU2VwYXJhdG9yLCBhcyB0aGF0IG1pZ2h0IHByb2R1Y2UgdW5leHBlY3RlZCByZXN1bHRzLiBObyBhdHRlbXB0IGlzIGRvbmUgYnkgdGhlIGNvZGUgdG8gcmVjb3ZlciBmcm9tIHN1Y2ggYW1iaWd1b3VzIGNvbmZpZ3VyYXRpb25zLiAqL1xyXG4gICAgZmlsbGVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaXMganVzdCBhIHN0cmluZyBwcm9wZXJ0eSB0aGF0IGNhbiBvcHRpb25hbGx5IGJlIHVzZWQgdG8gc3RvcmUgYWRkaXRpb25hbCBkYXRhIGZvciB0aGlzIEl0ZW1OdW1iZXJTY2hlbWEsIGUuZy4gYW4gaWRlbnRpZmljYXRpb24gb3IgYSB0eXBlLiBJdCBkb2VzIG5vdCBoYXZlIGFueSBpbmZsdWVuY2Ugb3ZlciBob3cgaXRlbSBudW1iZXJzIGFyZSBnZW5lcmF0ZWQsIGFuZCBpcyBub3Qgc3VwcG9ydGVkIGluIG1vc3QgZXhjaGFuZ2UgZm9ybWF0cy4gSG93ZXZlciwgaXQgaXMgdXNlZCB0byBzdG9yZSDDlk5vcm0gc2VydmljZSBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZSB0eXBlcy4gKi9cclxuICAgIGlkZW50aWZpZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBpbmRpY2F0ZXMgaWYgSXRlbU51bWJlcnMgdXNpbmcgdGhpcyBJdGVtTnVtYmVyU2NoZW1hIHNob3VsZCBza2lwIGVtcHR5IGdyb3VwIGxldmVscy4gVGhpcyBpcyBjb21tb25seSBvbmx5IHVzZWQgaW4gR0FFQiBmaWxlcywgd2hlcmUgdGhlcmUgbWlnaHQgYmUgZ2FwcyBpbiB0aGUgaGllcmFyY2h5IG9mIGVsZW1lbnRzIGFuZCBwb3NpdGlvbiBpZGVudGlmaWVycyBzaG91bGQgYmUgcGxhY2VkIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbi4gKi9cclxuICAgIHNraXBOb25FeGlzdGluZ0xldmVsc0luUG9zaXRpb25JdGVtTnVtYmVycz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBzdHJpbmcgaXMgdXNlZCBvbmx5IHdoZW4gdGhlIHByb3BlcnR5IFNraXBOb25FeGlzdGluZ0xldmVsc0luUG9zaXRpb25JdGVtTnVtYmVycyBpbiB0aGlzIEl0ZW1OdW1iZXJTY2hlbWEgaXMgYWxzbyBzZXQgdG8gdHJ1ZS4gSXQgZGVmYXVsdHMgdG8gREVGQVVMVF9TS0lQUEVEX1RJRVJTX0ZJTExFUiwgYnV0IGNhbiBiZSBzZXQgdG8gYW55IHN0cmluZyB3aXRoIGEgbGVuZ2h0IG9mIG9uZS4gTnVsbCB2YWx1ZXMgb3IgdmFsdWVzIHdpdGggYSBsb25nZXIgbGVuZ3RoIHdpbGwgbGVhZCB0byB0aGlzIHByb3BlcnR5IHJldmVydGluZyBiYWNrIHRvIHRoZSBkZWZhdWx0IHZhbHVlLiBUaGlzIGlzIHVzZWQgdG8gZmlsbCBza2lwcGVkIHRpZXJzIGluIGl0ZW0gbnVtYmVycyB3aGVyZSBhIHBvc2l0aW9uIGlzIHBsYWNlZCBpbiBhIGhpZ2hlciBoaWVyYXJjaHkgbGV2ZWwgdGhhbiB3aGF0IHdvdWxkIGJlIGRlZmluZWQgaW4gdGhlIFRpZXJzLiBGb3IgZXhhbXBsZSwgaXQgY291bGQgcHJvZHVjZSBhbiBpdGVtIG51bWJlciBsaWtlICcwMS5fXy4wMicsIHdoaWNoIHdvdWxkIGluZGljYXRlIGEgc2tpcHBlZCBzZWNvbmQgbGV2ZWwuIFRoaXMgc2hvdWxkIGJlIHVzaW5nIGRpZmZlcmVudCB2YWx1ZXMgdGhhbiBGaWxsZXIgYW5kIFNlcGFyYXRvciwgc2luY2UgdGhhdCBjb3VsZCBjYXVzZSBhbWJpZ3VpdGllcyBpbiB0aGUgY29kZSB0aGF0IGdlbmVyYXRlcyB0aGUgYWN0dWFsIGl0ZW0gbnVtYmVycy4gTm8gYXR0ZW1wdCBpcyBkb25lIGJ5IHRoZSBjb2RlIHRvIHJlY292ZXIgZnJvbSBzdWNoIGFtYmlndW91cyBjb25maWd1cmF0aW9ucy4gKi9cclxuICAgIHNraXBwZWRUaWVyc0ZpbGxlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGlzIGEgcmVhZC1vbmx5IHByb3BlcnR5IHRoYXQgaW5kaWNhdGVzIGlmIHRoaXMgc2NoZW1hIGhhcyBhIHZhbGlkIHN0cnVjdHVyZS4gSXQgaW50ZXJuYWxseSBqdXN0IHJldHVybnMgdGhlIHJlc3VsdCBmcm9tIElzQ29ycmVjdGx5RGVmaW5lZC4gVGhpcyB3aWxsIHJldHVybiBpZiB0aGUgSXRlbU51bWJlclNjaGVtYSBpcyBjb3JyZWN0bHkgZGVmaW5lZC4gRm9yIGl0IHRvIGJlIGNvcnJlY3RseSBkZWZpbmVkLCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgbXVzdCBiZSB0cnVlOiBUaGVyZSBtYXkgb25seSBiZSBvbmUgbG90IGdyb3VwLCBpZiB0aGVyZSBpcyBvbmUsIGl0IG11c3QgYmUgYXQgdGhlIHRvcC4gRm9sbG93aW5nIGxvdCBsZXZlbHMsIHRoZXJlIG1heSBiZSBhdCBsZWFzdCBvbmUgZ3JvdXAgbGV2ZWwuIEFmdGVyIHRoZSBncm91cCBsZXZlbHMsIHRoZXJlIG11c3QgYmUgb25lIHBvc2l0aW9uIGxldmVsLiBBZnRlciB0aGUgcG9zaXRpb24gbGV2ZWwsIHRoZXJlIG1heSBiZSBvbmUgaW5kZXggbGV2ZWwuIElmIG5vIHRpZXJzIGFyZSBkZWZpbmVkIGF0IGFsbCwgdGhpcyB3aWxsIGFsc28gcmV0dXJuIGZhbHNlLiAqL1xyXG4gICAgcmVhZG9ubHkgc2NoZW1hSXNDb3JyZWN0bHlEZWZpbmVkPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBEZWZhdWx0cyB0byBmYWxzZS4gSWYgdGhpcyBpcyBkaXNhYmxlZCwgYWxsIGxldHRlcnMgaW4gdGhlIEl0ZW1OdW1iZXIgc3RyaW5nIHJlcHJlc2VudGF0aW9ucyB3aWxsIGJlIHRyYW5zZm9ybWVkIHRvIHRoZWlyIGxvd2VyY2FzZSByZXByZXNlbnRhdGlvbi4gKi9cclxuICAgIGFsbG93VXBwZXJDYXNlTGV0dGVyaW5nPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqIFJlcHJlc2VudHMgaW5mb3JtYXRpb24gYWJvdXQgYSBzaW5nbGUgVGllciBpbiBhbiBJdGVtTnVtYmVyLiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1OdW1iZXJTY2hlbWFUaWVyRHRvIHtcclxuICAgIC8qKiBUaGUgKG1heGltdW0pIGxlbmd0aCBmb3IgdGhpcyB0aWVyLiBXaWxsIG5vdCBhY2NlcHQgYSBsZW5ndGggbGVzcyB0aGFuIDEuIERlZmF1bHRzIHRvIDEgaWYgbGVuZ3RoIGxlc3MgdGhhbiBvbmUgaXMgc3BlY2lmaWVkLiAqL1xyXG4gICAgbGVuZ3RoPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgSXRlbU51bWJlclNjaGVtYVRpZXIncyB0eXBlLiAqL1xyXG4gICAgdHlwZT86IEl0ZW1OdW1iZXJUeXBlRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgc3BlY2lmaWVzIHdoaWNoIEl0ZW1OdW1iZXJTY2hlbWFUaWVyVHlwZSB0aGlzIHRpZXIgcmVwcmVzZW50cy4gVGhpcyBjYW4gYmUsIGZvciBleGFtcGxlLCBhIGdyb3VwIHRpZXIgLyBsZXZlbCwgYSBwb3NpdGlvbiBsZXZlbCBvciBhIGxvdCBsZXZlbC4gKi9cclxuICAgIHRpZXJUeXBlPzogSXRlbU51bWJlclNjaGVtYVRpZXJUeXBlRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGlzIHRpZXIgcmVwcmVzZW50cyBhIGxvdC4gU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGxvdHMuICovXHJcbiAgICByZWFkb25seSBpc0xvdD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyB2YWx1ZSBpcyB0aGUgaW5jcmVtZW50LCBvciBzdGVwIHNpemUsIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIG5ldyBpdGVtIG51bWJlcnMuIEl0IGRlZmF1bHRzIHRvIERFRkFVTFRfSU5DUkVNRU5ULCBidXQgY2FuIGJlIGNoYW5nZWQgdG8gYW55IG90aGVyIHBvc2l0aXZlIG51bWJlciBncmVhdGVyIHRoYW4gemVyby4gSW52YWxpZCB2YWx1ZXMgbWFrZSB0aGlzIGJlIHNldCB0byBvbmUgJzEnICovXHJcbiAgICBpbmNyZW1lbnQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpcyBhbiBvcHRpb25hbCBuYW1lIGZvciB0aGUgZ2l2ZW4gdGllciAqL1xyXG4gICAgdGllck5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBEZXRlcm1pbmVzIHRoZSB0eXBlIG9mIGFuIEl0ZW1OdW1iZXJTY2hlbWEgKi9cclxuZXhwb3J0IGVudW0gSXRlbU51bWJlclR5cGVEdG8ge1xyXG4gICAgTnVtZXJpYyA9IFwiTnVtZXJpY1wiLFxyXG4gICAgQWxwaGFudW1lcmljID0gXCJBbHBoYW51bWVyaWNcIixcclxufVxyXG5cclxuLyoqIFNwZWNpZmllcyB0aGUgdHlwZSBhbiBJdGVtTnVtYmVyU2NoZW1hVGllciByZXByZXNlbnRzLiBGb3IgZXhhbXBsZSwgYSB0aWVyIG1heSBpbmRpY2F0ZSB0byBiZSB1c2VkIGZvciBwb3NpdGlvbnMgb3IgZm9yIGdyb3Vwcy4gKi9cclxuZXhwb3J0IGVudW0gSXRlbU51bWJlclNjaGVtYVRpZXJUeXBlRHRvIHtcclxuICAgIFVuZGVmaW5lZCA9IFwiVW5kZWZpbmVkXCIsXHJcbiAgICBJbmRleCA9IFwiSW5kZXhcIixcclxuICAgIFBvc2l0aW9uID0gXCJQb3NpdGlvblwiLFxyXG4gICAgR3JvdXAgPSBcIkdyb3VwXCIsXHJcbiAgICBMb3QgPSBcIkxvdFwiLFxyXG59XHJcblxyXG4vKiogVGhpcyBlbnVtZXJhdGlvbiBtb2RlbHMgdHlwZXMgb2YgcHJpY2UgY29tcG9uZW50cyBmb3IgYmV0dGVyIGNsYXNzaWZpY2F0aW9uLiAqL1xyXG5leHBvcnQgZW51bSBQcmljZUNvbXBvbmVudFR5cGVEdG8ge1xyXG4gICAgVW5rbm93biA9IFwiVW5rbm93blwiLFxyXG4gICAgV2FnZXMgPSBcIldhZ2VzXCIsXHJcbiAgICBNYXRlcmlhbHMgPSBcIk1hdGVyaWFsc1wiLFxyXG4gICAgUGxhbnQgPSBcIlBsYW50XCIsXHJcbiAgICBNaXNjZWxsYW5lb3VzID0gXCJNaXNjZWxsYW5lb3VzXCIsXHJcbn1cclxuXHJcbi8qKiBUaGlzIGVudW1lcmF0aW9uIGRlc2NyaWJlcyB0aGUgdHlwZSBvZiB0aGUgYXdhcmQgLyBwcm9jdXJlbWVudCBwcm9jZXNzLiBJZiB0aGlzIGlzIHVzZWQgaW4gYSBHQUVCIGNvbnRleHQsIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYXdhcmQgdHlwZXMgY2FuIGJlIGZvdW5kIGluIHRoZSBHZXJtYW4gVk9CL0EgcnVsZXMgYW5kIHRoZSBHQUVCIHN0YW5kYXJkICovXHJcbmV4cG9ydCBlbnVtIEF3YXJkVHlwZUR0byB7XHJcbiAgICBVbnNwZWNpZmllZCA9IFwiVW5zcGVjaWZpZWRcIixcclxuICAgIE9wZW5Qcm9jdXJlbWVudCA9IFwiT3BlblByb2N1cmVtZW50XCIsXHJcbiAgICBDbG9zZWRQcm9kdWNyZW1lbnQgPSBcIkNsb3NlZFByb2R1Y3JlbWVudFwiLFxyXG4gICAgTmVnb3RpYXRpb25Qcm9jdXJlbWVudFdpdGhvdXRQdWJsaWNBbm5vdW5jZW1lbnQgPSBcIk5lZ290aWF0aW9uUHJvY3VyZW1lbnRXaXRob3V0UHVibGljQW5ub3VuY2VtZW50XCIsXHJcbiAgICBOZWdvdGlhdGlvblByb2N1cmVtZW50ID0gXCJOZWdvdGlhdGlvblByb2N1cmVtZW50XCIsXHJcbiAgICBPcGVuQ2FsbCA9IFwiT3BlbkNhbGxcIixcclxuICAgIFNlbGVjdGVkQ2FsbFdpdGhvdXRQdWJsaWNDb21wZXRpdGlvbiA9IFwiU2VsZWN0ZWRDYWxsV2l0aG91dFB1YmxpY0NvbXBldGl0aW9uXCIsXHJcbiAgICBTZWxlY3RlZENhbGwgPSBcIlNlbGVjdGVkQ2FsbFwiLFxyXG4gICAgRGlyZWN0QXdhcmQgPSBcIkRpcmVjdEF3YXJkXCIsXHJcbiAgICBJbnRlcm5hdGlvbmFsTkFUT1Byb2N1cmVtZW50ID0gXCJJbnRlcm5hdGlvbmFsTkFUT1Byb2N1cmVtZW50XCIsXHJcbiAgICBDb21wZXRpdGl2ZURpYWxvZyA9IFwiQ29tcGV0aXRpdmVEaWFsb2dcIixcclxufVxyXG5cclxuLyoqIFRoaXMgZW51bWVyYXRpb24gZGVzY3JpYmVzIGF3YXJkcyBmb3IgcHJvamVjdCB0aGF0IGFyZSBub3QganVzdCBhIHJlZ3VsYXIgcHJvY3VyZW1lbnQuIEZvciBleGFtcGxlLCBpdCBjYW4gYmUgdXNlZCB0byBkZXNjcmliZSByZWN1cnJpbmcgbWFpbnRlbmFuY2Ugb3IgYW4gb3V0bGluZSBjb250cmFjdCAoR2VybWFuOiBSYWhtZW52ZXJ0cmFnKSB3aGljaCBqdXN0IHNwZWNpZmllcyBzZXJ2aWNlcyBhbmQgcHJpY2VzIGJ1dCBtYXkgYmUgcmVxdWVzdGVkIG9uIGRlbWFuZCB3aGVuIG5lY2Vzc2FyeSAqL1xyXG5leHBvcnQgZW51bSBTcGVjaWFsQXdhcmRLaW5kRHRvIHtcclxuICAgIFVuc3BlY2lmaWVkID0gXCJVbnNwZWNpZmllZFwiLFxyXG4gICAgTWFpbnRlbmFuY2VDb250cmFjdCA9IFwiTWFpbnRlbmFuY2VDb250cmFjdFwiLFxyXG4gICAgT3V0bGluZUNvbnRyYWN0ID0gXCJPdXRsaW5lQ29udHJhY3RcIixcclxuICAgIE91dGxpbmVGb3JNYWludGVuYW5jZUNvbnRyYWN0ID0gXCJPdXRsaW5lRm9yTWFpbnRlbmFuY2VDb250cmFjdFwiLFxyXG59XHJcblxyXG4vKiogVGhpcyBpcyB0aGUgYmFzZSBjbGFzcyB0aGF0IGhvbGRzIGluZm9ybWF0aW9uIGFib3V0IGEgd2hvbGUgc2VydmljZSBzcGVjaWZpY2F0aW9uLiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VTcGVjaWZpY2F0aW9uRHRvIHtcclxuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgLyoqIFRoZSBob3VybHkgd2FnZSB0aGF0IGlzIHVzZWQgd2l0aGluIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UuIFdpbGwgYmUgcHJvcGFnYXRlZCB0byBjaGlsZCBlbGVtZW50cy4gKi9cclxuICAgIHJlYWRvbmx5IHByb2plY3RIb3VybHlXYWdlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSB0YXggcmF0ZSB0aGF0IGlzIHVzZWQgd2l0aGluIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UuIFdpbGwgYmUgcHJvcGFnYXRlZCB0byBjaGlsZCBlbGVtZW50cy4gKi9cclxuICAgIHByb2plY3RUYXhSYXRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBwcmljZSBjb21wb25lbnRzIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgcHJvamVjdC4gVGhleSBhcmUgaWdub3JlZCBkdXJpbmcgSnNvbiBkZXNlcmlhbGl6YXRpb24gYmVjYXVzZSB0aGV5IHdpbGwgYmUgc2V0IGZyb20gdGhlIHBhcmVudCBwcm9qZWN0LiAqL1xyXG4gICAgcHJvamVjdFByaWNlQ29tcG9uZW50cz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBJdGVtTnVtYmVyU2NoZW1hIHRoYXQgaXMgdXNlZCB3aXRoaW4gdGhpcyBwcm9qZWN0LiAqL1xyXG4gICAgcHJvamVjdEl0ZW1OdW1iZXJTY2hlbWE/OiBJdGVtTnVtYmVyU2NoZW1hRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBJRWxlbWVudHMgd2l0aGluIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UuICovXHJcbiAgICBlbGVtZW50cz86IElFbGVtZW50RHRvW10gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIGxhYmVsIHVzZWQgaW4gdGhlIHBhcmVudCBQcm9qZWN0IHRvIG1hcmsgbGFib3VyIHRpbWUsIGUuZy4gXCJIb3Vyc1wiIG9yIFwiU3R1bmRlblwiLiAqL1xyXG4gICAgcmVhZG9ubHkgcHJvamVjdExhYm91clRpbWVMYWJlbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlcmUgYXJlIGNoaWxkIElFbGVtZW50cyB0aGF0IGhhdmUgY29uZmxpY3RpbmcsIGR1cGxpY2F0ZWQgSXRlbU51bWJlcnMgb3IgaWYgYW55IGNoaWxkIEVsZW1lbnRDb250YWluZXJCYXNlIGVsZW1lbnRzIHRoZW1zZWx2ZXMgY29udGFpbiBkdXBsaWNhdGUgSXRlbU51bWJlciBzLiBXaWxsIGFsd2F5cyBpbmRpY2F0ZSBmYWxzZSB3aGVuIHRvbGQgdG8gaWdub3JlIGR1cGxpY2F0ZSBpdGVtIG51bWJlcnMuICovXHJcbiAgICByZWFkb25seSBjb250YWluc0R1cGxpY2F0ZUl0ZW1OdW1iZXJzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlcmUgYXJlIGNoaWxkIElFbGVtZW50cyB0aGF0IGhhdmUgY29uZmxpY3RpbmcsIGR1cGxpY2F0ZWQgSWRzIG9yIGlmIGFueSBjaGlsZCBFbGVtZW50Q29udGFpbmVyQmFzZSBlbGVtZW50cyB0aGVtc2VsdmVzIGNvbnRhaW4gZHVwbGljYXRlIElkIHMuIFdpbGwgYWx3YXlzIGluZGljYXRlIGZhbHNlIHdoZW4gdG9sZCB0byBpZ25vcmUgZHVwbGljYXRlIGl0ZW0gbnVtYmVycy4gKi9cclxuICAgIHJlYWRvbmx5IGNvbnRhaW5zRHVwbGljYXRlRWxlbWVudElkcz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSW5kaWNhdGUgaWYgZHVwbGljYXRlZCBJdGVtTnVtYmVycyB3aXRoaW4gY2hpbGQgZWxlbWVudHMgYXJlIHRvIGJlIGlnbm9yZWQuIFdpbGwgbm90IHBlcmZvcm0gY2hlY2tzIGZvciBkdXBsaWNhdGVzIGlmIHllcy4gKi9cclxuICAgIGlnbm9yZUR1cGxpY2F0ZUl0ZW1OdW1iZXJzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJZiB0aGlzIGlzIHNldCB0byB0cnVlLCB0aGUgUHJvamVjdENhdGFsb2d1ZXMgcHJvcGVydHkgd2lsbCBub3QgYmUgcHJvcGFnYXRlZCB0byBjaGlsZCBlbGVtZW50cy4gVGhpcyBpcyB1c2VmdWwgaW4gbWFwcGluZyBzY2VuYXJpb3MsIHdoZXJlIHlvdSB3YW50IHRvIGRpc2FibGUgcHJvcGFnYXRpb24gZm9yIG11bHRpcGxlIGNoYW5nZXMsIGFuZCBvbmx5IGVuYWJsZSBpdCBvbmNlIHlvdSBoYXZlIG1hcHBlZCBhbGwgcHJvcGVydGllcyAqL1xyXG4gICAgaWdub3JlUHJvamVjdENhdGFsb2d1ZVByb3BhZ2F0aW9uPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJbmRpY2F0ZSBpZiBkdXBsaWNhdGVkIElkcyB3aXRoaW4gY2hpbGQgZWxlbWVudHMgYXJlIHRvIGJlIGlnbm9yZWQuIFdpbGwgbm90IHBlcmZvcm0gY2hlY2tzIGZvciBkdXBsaWNhdGVzIGlmIHllcy4gKi9cclxuICAgIGlnbm9yZUR1cGxpY2F0ZUVsZW1lbnRJZHM/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFByaWNlIGNvbXBvc2l0aW9uIGJ5IHRheCByYXRlLiAqL1xyXG4gICAgdG90YWxQcmljZUdyb3NzQnlUYXhSYXRlPzogR3Jvc3NQcmljZUNvbXBvbmVudER0b1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEludGVybmFsbHkgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IGEgcHJvcGFnYXRpb24gaXMgY3VycmVudGx5IGRvbmUsIHRoaXMgaXMgZG9uZSB0byBub3QgcmVjYWxjdWxhdGUgZXZlcnkgc2luZ2xlIHJlc3VsdCBmcm9tIGEgbG90IG9mIGNoYW5nZXMgd2hlbiBpdCBpcyBzdWZmaWNpZW50IHRvIGNhbGN1bGF0ZSB0aGUgdG90YWwgcHJpY2UgYXQgb25jZS4gKi9cclxuICAgIGlnbm9yZUNoaWxkUHJpY2VVcGRhdGVzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBOZXQgcHJpY2UgYWZ0ZXIgYXBwbGllZCBkZWR1Y3Rpb25zLiAqL1xyXG4gICAgcmVhZG9ubHkgZGVkdWN0ZWRQcmljZT86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBGYWN0b3Igb2YgYXBwbGllZCBkZWR1Y3Rpb25zIHRvIHRoZSB0b3RhbCBwcmljZS4gRm9yIGV4YW1wbGUsIFwiMC4wM1wiIG1lYW5zIHRoYXQgYSAzJSBkZWR1Y3Rpb24gaXMgdG8gYmUgYXBwbGllZC4gKi9cclxuICAgIGRlZHVjdGlvbkZhY3Rvcj86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgZXhhY3QgYW1vdW50IG9mIHRoZSBkaXNjb3VudCBhcyBhbiBhYnNvbHV0ZSB2YWx1ZS4gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHJlYXNvbnMsIHNldHRpbmcgdGhpcyB2YWx1ZSB3aWxsIGFsc28gc2V0IGEgY2FsY3VsYXRlZCB2YWx1ZSB0byBEZWR1Y3Rpb25GYWN0b3IsIHdoaWNoIHdpbGwgYWxzbyBiZSB1cGRhdGVkIGluIGNhc2UgdGhlIHRvdGFsIHByaWNlIGlzIGNoYW5nZWQgdG8gcmVmbGVjdCBhIHJlbGF0aXZlIHZhbHVlIG9mIHRoZSBhYnNvbHV0ZSBkaXNjb3VudCBzdW0uICovXHJcbiAgICBhYnNvbHV0ZURlZHVjdGlvbj86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBXaWxsIHJldHVybiB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlJ3MgdG90YWwgcHJpY2UuICovXHJcbiAgICByZWFkb25seSB0b3RhbFByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSB0b3RhbCBncm9zcyBwcmljZSBmb3IgdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZSBpbmNsdWRpbmcgYWxsIGNoaWxkIGVsZW1lbnRzLiAqL1xyXG4gICAgcmVhZG9ubHkgdG90YWxQcmljZUdyb3NzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRvdGFsIGdyb3NzIHByaWNlIGFmdGVyIGFwcGxpZWQgZGVkdWN0aW9ucy4gKi9cclxuICAgIHJlYWRvbmx5IHRvdGFsUHJpY2VHcm9zc0RlZHVjdGVkPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluZGljYXRlcyB0aGUgUHJpY2VUeXBlIG9mIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UsIHdoZXRoZXIgaXQgc2hvdWxkIGZhY3RvciBpbnRvIHRvdGFsIGNvc3RzIG9yIG5vdC4gKi9cclxuICAgIHByaWNlVHlwZT86IFByaWNlVHlwZUR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgYmlkZGVyLiAqL1xyXG4gICAgYmlkZGVyPzogUGFydHlJbmZvcm1hdGlvbkR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGRpc2NyaW1pbmF0b3IgaXMgdXNlZCB0byBpZGVudGlmeSBkaWZmZXJlbnQgYmlkZGVycyBpbiBhIHByb2plY3QuIEl0IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBJZGVudGlmaWVyIHByb3BlcnR5IGluIHRoZSBCaWRkZXIgaW4gdGhhdCB0aGUgQmlkZGVyRGlzY3JpbWluYXRvciBpcyBpbnRlbmRlZCB0byBiZSBhIG51bWVyaWNhbCBpZGVudGlmaWVyIHdpdGhpbiBhIHByb2plY3QsIHdoaWxlIHRoZSBJZGVudGlmaWVyIGRvZXMgdW5pcXVlbHkgaWRlbnRpZnkgYSBiaWRkZXIgaW4gdGhlIHN5c3RlbSBpbmRlcGVuZGVudCBvZiBhIHNwZWNpZmljIHByb2plY3QuIFRoaXMgcHJvcGVydHkgc2hvdWxkIG1hcCB0byBcIkJpZXRlcm51bW1lclwiIG9yIFwiQmlkZGVyTm9cIiBpbiBHQUVCLiAqL1xyXG4gICAgYmlkZGVyRGlzY3JpbWluYXRvcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGlzIHVzZWQgdG8gc3RvcmUgdGhlIEdBRUIgWE1MIElkIHdpdGhpbiB0aGlzIFNlcnZpY2VTcGVjaWZpY2F0aW9uLiBUaGlzIGRhdGEgaXMgbm90IHVzZWQgZm9yIGFueSBjYWxjdWxhdGlvbnMgb3IgZXZhbHVhdGlvbnMgYnV0IG9ubHkgZm9yIEdBRUIgc2VyaWFsaXphdGlvbiBhbmQgZGVzZXJpYWxpemF0aW9uLiAqL1xyXG4gICAgZ2FlYlhtbElkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBQcm9qZWN0SW5mb3JtYXRpb24gdXNlZCB3aXRoaW4gdGhlIFByb2plY3QgaW4gd2hpY2ggdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZSBpcyBjb250YWluZWQuIFRoaXMgaXMgcmVmZXJlbmNlIGVxdWFsIHRvIHRoZSBQcm9qZWN0SW5mb3JtYXRpb24gdXNlZCBpbiB0aGUgcGFyZW50IHByb2plY3QuICovXHJcbiAgICByZWFkb25seSBwcm9qZWN0SW5mb3JtYXRpb24/OiBQcm9qZWN0SW5mb3JtYXRpb25EdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBzZXJ2aWNlIHNwZWNpZmljYXRpb25zIGV4Y2hhbmdlIHBoYXNlLCBpLmUuIHRoZSBjdXJyZW50IHN0YXR1cyBpbiB0aGUgcHJvamVjdCBpdCBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIChzdWNoIGFzIHJlcXVlc3QgZm9yIG9mZmVyLCBvZmZlciwgYXdhcmRpbmcuLi4pLiAqL1xyXG4gICAgZXhjaGFuZ2VQaGFzZT86IEV4Y2hhbmdlUGhhc2VEdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgd2hlcmUgdGhlIHNlcnZpY2Ugc3BlY2lmaWNhdGlvbiBvcmlnaW5hdGVzLCBpLmUuIGZyb20gYW4gZXhjaGFuZ2UgZmlsZSBmb3JtYXQgb3Igc2VsZiBjcmVhdGVkLiBJZiBhcHBsaWNhYmxlLCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGlzIHByZXNlbnQgaW4gdGhlIE9yaWdpbkRldGFpbCBwcm9wZXJ0eS4gKi9cclxuICAgIG9yaWdpbj86IE9yaWdpbkR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHByb3BlcnR5IGNvbXBsZW1lbnRzIHRoZSBPcmlnaW4gcHJvcGVydHkuIFNvbWUgZm9ybWF0cywgZS5nLiBHYWViWG1sIG1pZ2h0IGhhdmUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhdHRhY2hlZCwgZS5nLiBHQUVCIFhNTCBWMy4yIG9kZXIgR0FFQiBYTUwgVjMuMS4gVGhpcyBzdHJpbmcgcHJvcGVydHkgaXMgdXNlZCB0byBob2xkIHN1Y2ggZGF0YS4gVGhlIERhbmdsLkFWQSBtb2R1bGUgZG9lcyBub3QgaGF2ZSBhIGxpc3Qgb2YgcG9zc2libGUgdmFsdWVzLCBzaW5jZSB0aGlzIGlzIGRlZmluZWQgaW4gdGhlIG5hdGl2ZSBmb3JtYXQgYXNzZW1ibGllcywgZS5nLiBEYW5nbC5HQUVCIG9yIERhbmdsLk9lbm9ybS4gKi9cclxuICAgIG9yaWdpbkRldGFpbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBDcmVhdGlvbiBkYXRlIG9mIHRoaXMgU2VydmljZVNwZWNpZmljYXRpb24uICovXHJcbiAgICBjcmVhdGlvbkRhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIERhdGUgaW5kaWNhdGluZyB1bnRpbCB3aGVuIGFuIG9mZmVyIGhhcyB0byBiZSBzdWJtaXR0ZWQuIEluIEdlcm1hbiwgdGhpcyBpcyBvZnRlbiBjYWxsZWQgdGhlIFwiRXLDtmZmbnVuZ3N0ZXJtaW5cIiAqL1xyXG4gICAgb2ZmZXJCeURhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIERhdGUgaW5kaWNhdGluZyBieSB3aGVuIHRoZSBidXllciB3aWxsIHNlbGVjdCBhIGNvbnRyYWN0b3IuICovXHJcbiAgICBkZWNpc2lvbkRhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIERhdGUgb2Ygd2hlbiB0aGUgb2ZmZXIgLyBiaWQgd2FzIGNyZWF0ZWQgKi9cclxuICAgIGJpZERhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIElmIGEgY29uc3RydWN0aW9uIHByb2plY3QgcmVxdWlyZXMgYSB3YXJyYW50eSBib25kLCB0aGlzIHByb3BlcnR5IGluZGljYXRlcyB0aGUgYW1vdW50IGFzIGEgcGVyY2VudGFnZSwgZS5nLiAnMC4xNW0nIG1lYW5zIDE1JSBvZiB0aGUgY29uc3RydWN0aW9uIHRvdGFsIGFtb3VudCBhcyBhIHdhcnJhbnR5IGJvbmQuICovXHJcbiAgICB3YXJyYW50eUJvbmRQZXJjZW50YWdlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIElmIGEgY29uc3RydWN0aW9uIHByb2plY3QgcmVxdWlyZXMgYW4gZXhlY3V0aW9uIGd1YXJhbnR0eSwgdGhpcyBwcm9wZXJ0eSBpbmRpY2F0ZXMgdGhlIGFtb3VudCBhcyBhIHBlcmNlbnRhZ2UsIGUuZy4gJzAuMTVtJyBtZWFucyAxNSUgb2YgdGhlIGNvbnN0cnVjdGlvbiB0b3RhbCBhbW91bnQgYXMgYW4gZXhlY3V0aW9uIGd1YXJhbnRlZS4gSW4gcHJhY3RpY2UsIHRoaXMgcGVyY2VudGFnZSBpcyB1c3VhbGx5IGRlZHVjdGVkIGZyb20gaW50ZXJtZWRpYXRlIGludm9pY2VzIGFuZCBvbmx5IGJpbGxlZCBpbiB0aGUgZmluYWwgaW52b2ljZS4gKi9cclxuICAgIGV4ZWN1dGlvbkd1YXJhbnRlZVBlcmNlbnRhZ2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogU3RyaW5nIGluZGljYXRpbmcgd2hlcmUgdGhlIHBoeXNpY2FsIHN1Ym1pc3Npb24gb2YgdGhlIG9mZmVyIGlzIHRha2luZyBwbGFjZS4gKi9cclxuICAgIHN1Ym1pc3Npb25Mb2NhdGlvbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBEZXNjcmlwdGlvbiBvZiB0aGlzIFNlcnZpY2VTcGVjaWZpY2F0aW9uLiAqL1xyXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIG5hbWUgb2YgdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gKi9cclxuICAgIG5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBQcmljZUluZm9ybWF0aW9uIGNvbnRhaW5zIGdsb2JhbCBkYXRhIGZvciB0aGUgU2VydmljZVNwZWNpZmljYXRpb24uIFdoZW4gaW5zaWRlIGEgUHJvamVjdCwgZG8gbm90IHNldCB0aGlzIHByb3BlcnR5IG1hbnVhbGx5LiAqL1xyXG4gICAgcHJpY2VJbmZvcm1hdGlvbj86IFByaWNlSW5mb3JtYXRpb25EdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlc2UgYXJlIENhdGFsb2d1ZSB0aGF0IGFyZSB1c2VkIHdpdGhpbiB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlLiBDYXRhbG9ndWUgcmVmZXJlbmNlcyBhcmUgdXNlZCB0byBkZXNjcmliZSBjYXRhbG9ndWVzLCBvciBjb2xsZWN0aW9ucywgdGhhdCBjYW4gYmUgdXNlZCB0byBkZXNjcmliZSBlbGVtZW50cyB3aXRoIGNvbW1vbmx5IGtub3duIHByb3BlcnRpZXMuIEZvciBleGFtcGxlLCBRdWFudGl0eUFzc2lnbm1lbnRzIHVzZSB0aGVzZSB0byBjYXRlZ29yaXplIHRoZW1zZWx2ZXMuICovXHJcbiAgICBwcm9qZWN0Q2F0YWxvZ3Vlcz86IENhdGFsb2d1ZUR0b1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFJlZmVyZW5jZWQgY2F0YWxvZ3VlcyBmb3IgdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZS4gKi9cclxuICAgIGNhdGFsb2d1ZVJlZmVyZW5jZXM/OiBDYXRhbG9ndWVSZWZlcmVuY2VEdG9bXSB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgZGF0ZSB3aGVuIHRoZSBleGVjdXRpb24gb2YgdGhlIHNlcnZpY2VzIGlzIHNjaGVkdWxlZCB0byBzdGFydCAqL1xyXG4gICAgcGxhbm5lZEV4ZWN1dGlvblN0YXJ0PzogRGF0ZSB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgZGF0ZSB0aGVuIHRoZSBleGVjdXRpb24gb2YgdGhlIHNlcnZpY2VzIGlzIHNjaGVkdWxlZCB0byBiZSBmaW5pc2hlZCAqL1xyXG4gICAgcGxhbm5lZEV4ZWN1dGlvbkVuZD86IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIGRhdGUgb24gd2hpY2ggdGhlIGNvbnRyYWN0IGhhcyBiZWVuIGF3YXJkZWQuIFRoaXMgbWF0Y2hlcyBcIkF1ZnRyYWdzZGF0dW1cIiBpbiBHQUVCICovXHJcbiAgICBjb250cmFjdERhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgdmFsdWUgY2FuIGJlIHVzZWQgdG8gaW5kaWNhdGUgdGhlIG51bWJlciBvciBpZGVudGlmaWVyIG9mIHRoZSBjb250cmFjdC4gSXQgbWF0Y2hlcyBcIkF1ZnRyYWdzbnVtbWVyXCIgaW4gR0FFQiAqL1xyXG4gICAgY29udHJhY3RJZGVudGlmaWVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzIGhvdyBsb25nIHRoZSB3YXJyYW50eSBwZXJpb2QgaXMgZm9yIHRoaXMgU2VydmljZVNwZWNpZmljYXRpb24gKi9cclxuICAgIHdhcnJhbnR5RHVyYXRpb24/OiBXYXJyYW50eUR1cmF0aW9uRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBkYXRlIG9uIHdoaWNoIHRoZSB3YXJyYW50eSBwZXJpb2QgZW5kcyAqL1xyXG4gICAgd2FycmFudHlFbmQ/OiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBkYXRlIG9uIHdoaWNoIHRoZSBzZXJ2aWNlcyByZW5kZXJlZCBieSB0aGUgYmlkZGVyIGFyZSBzY2hlZHVsZWQgdG8gYmUgYXBwcm92ZWQgYnkgdGhlIGJ1eWVyICovXHJcbiAgICBhcHByb3ZhbERhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgc2hvdWxkIHNwZWNpZnkgaG93IHRoZSBhcHByb3ZhbCBpcyBwZXJmb3JtZWQgYnkgdGhlIGJ1eWVyLiBUaGlzIG1hdGNoZXMgXCJBY2NlcHRUeXBlXCIgaW4gR0FFQiAqL1xyXG4gICAgdHlwZU9mQXBwcm92YWw/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBvcHRpb25hbCBzdHJpbmcgcHJvcGVydHkgaXMgc2hhcmVkIGJ5IGFsbCBJRWxlbWVudHMsIGFuZCBpbmRpY2F0ZXMgaWYgdGhlIGVsZW1lbnQgaXMgcGFydCBvZiBhbiBhZGRlbmR1bSwgYSAnTmFjaHRyYWcnIGluIEdlcm1hbi4gKi9cclxuICAgIGFkZGVuZHVtTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzLCBpZiB0aGlzIGVsZW1lbnQgaXMgcGFydCBvZiBhbiBhZGRlbmR1bSBhbiwgaWYgeWVzLCB3aXRoIHdoYXQgc3RhdHVzLiAqL1xyXG4gICAgYWRkZW5kdW1TdGF0dXM/OiBBZGRlbmR1bVN0YXR1c0R0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHByb3BlcnR5IGhvbGRzIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdGhhdCdzIG9ubHkgdmFsaWQgaW4gY29tbWVyY2UgZXhjaGFuZ2UgcGhhc2VzLiAqL1xyXG4gICAgY29tbWVyY2VQcm9wZXJ0aWVzPzogU2VydmljZVNwZWNpZmljYXRpb25Db21tZXJjZVByb3BlcnRpZXNEdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpcyBpbnRlcm5hbGx5IHVzZWQgZHVyaW5nIG1hcHBpbmcgb3BlcmF0aW9ucyB0byB0ZW1wb3JhcmlseSBob2xkIGluZm9ybWF0aW9uIGFib3V0IHJlbW92ZWQgSXRlbU51bWJlclNjaGVtYXMuIFRob3NlIHNjaGVtYXMgYXJlIHNldCB0byBudWxsIGR1cmluZyB0aGUgbWFwcGluZyBwcm9jZXNzIHRvIGVuc3VyZSB0aGF0IHNjaGVtYXMgaW4gZWxlbWVudHMgaGlnaGVyIHVwIGluIHRoZSBoaWVyYXJjaHkgYXJlIGNvcnJlY3RseSBwYXNzZWQgZG93biB0byBjaGlsZCBlbGVtZW50cy4gKi9cclxuICAgIGl0ZW1OdW1iZXJTY2hlbWFNYXBwaW5nT3BlcmF0aW9uPzogSXRlbU51bWJlclNjaGVtYU1hcHBpbmdPcGVyYXRpb24gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpcyBpbnRlcm5hbGx5IHVzZWQgZHVyaW5nIG1hcHBpbmcgb3BlcmF0aW9ucyB0byB0ZW1wb3JhcmlseSBob2xkIGluZm9ybWF0aW9uIGFib3V0IGNvbXBsZW1lbnRpbmcgcG9zaXRpb25zICovXHJcbiAgICBjb21wbGVtZW50aW5nUG9zaXRpb25EYXRhPzogQ29tcGxlbWVudGluZ1Bvc2l0aW9uRGF0YSB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqIEJhc2UgaW50ZXJmYWNlIGRlZmluaXRpb24gZm9yIGVsZW1lbnRzIHdpdGhpbiBhbiBFbGVtZW50Q29udGFpbmVyQmFzZS4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBJRWxlbWVudER0byB7XHJcbiAgICBlbGVtZW50VHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgLyoqIFRoaXMgaXMgdXNlZCB0byBzdG9yZSB0aGUgR0FFQiBYTUwgSWQgd2l0aGluIHRoaXMgSUVsZW1lbnQuIFRoaXMgZGF0YSBpcyBub3QgdXNlZCBmb3IgYW55IGNhbGN1bGF0aW9ucyBvciBldmFsdWF0aW9ucyBidXQgb25seSBmb3IgR0FFQiBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24uICovXHJcbiAgICBnYWViWG1sSWQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBvcHRpb25hbCBzdHJpbmcgcHJvcGVydHkgaXMgc2hhcmVkIGJ5IGFsbCBJRWxlbWVudHMsIGFuZCBpbmRpY2F0ZXMgaWYgdGhlIGVsZW1lbnQgaXMgcGFydCBvZiBhbiBhZGRlbmR1bSwgYSAnTmFjaHRyYWcnIGluIEdlcm1hbi4gKi9cclxuICAgIGFkZGVuZHVtTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgcHJvamVjdENhdGFsb2d1ZXM/OiBDYXRhbG9ndWVEdG9bXSB8IHVuZGVmaW5lZDtcclxuICAgIGNhdGFsb2d1ZVJlZmVyZW5jZXM/OiBDYXRhbG9ndWVSZWZlcmVuY2VEdG9bXSB8IHVuZGVmaW5lZDtcclxuICAgIGVsZW1lbnRUeXBlRGlzY3JpbWluYXRvcjogc3RyaW5nO1xyXG59XHJcblxyXG4vKiogVGhpcyBjbGFzcyBkZXNjcmliZXMgYW4gZXh0ZXJuYWwgY2F0YWxvZ3VlLiBDYXRhbG9ndWVzLCBvciBjb2xsZWN0aW9ucywgaG9sZCBpbmZvcm1hdGlvbiB0byBjYXRlZ29yaXplIGFuZCBkZXNjcmliZSBpdGVtcy4gRm9yIGV4YW1wbGUsIHRoZSBHZXJtYW4gRElOIDI3NiBjb3N0IGdyb3VwIHN0YW5kYXJkcyBkZXNjcmliZSBkaWZmZXJlbnQgdHlwZXMgb2YgY29zdHMgZm9yIGJ1aWxkaW5nIHByb2plY3RzLiBXaGVuIHJlZmVyZW5jaW5nIHRoZSBESU4gMjc2IGNhdGFsb2d1ZSBhbmQgcHJvdmlkaW5nIGFuIGl0ZW0ga2V5IG9yIGlkZW50aWZpZXIsIGl0IGlzIHBvc3NpYmxlIHRvIHJlZmVyZW5jZSBkYXRhIGluIHRoaXMgY2F0YWxvZ3VlLiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENhdGFsb2d1ZUR0byB7XHJcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIC8qKiBUaGlzIGlzIHVzZWQgdG8gc3RvcmUgdGhlIEdBRUIgWE1MIElkIHdpdGhpbiB0aGlzIENhdGFsb2d1ZS4gVGhpcyBkYXRhIGlzIG5vdCB1c2VkIGZvciBhbnkgY2FsY3VsYXRpb25zIG9yIGV2YWx1YXRpb25zIGJ1dCBvbmx5IGZvciBHQUVCIHNlcmlhbGl6YXRpb24gYW5kIGRlc2VyaWFsaXphdGlvbi4gKi9cclxuICAgIGdhZWJYbWxJZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgbmFtZSB0aGF0IGlzIGdpdmVuIGZvciB0aGlzIGNhdGFsb2d1ZS4gKi9cclxuICAgIG5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGNhdGFsb2d1ZS4gKi9cclxuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIElmIGdpdmVuLCB0aGlzIGdpdmVzIGEgY2xhc3NpZmljYXRpb24gZm9yIHRoZSBjb250ZW50cyBvZiB0aGUgY2F0YWxvZ3VlICovXHJcbiAgICBjYXRhbG9ndWVUeXBlPzogQ2F0YWxvZ3VlVHlwZUR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHByb3BlcnR5IG1heSBob2xkIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNhdGFsb2d1ZSB0eXBlLiBJdCBpcyBjdXJyZW50bHkgb25seSB1c2VkIGluIEdBRUIgWE1MIGV4Y2hhbmdlIHRvIGNhcnJ5IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGEgY2F0YWxvZ3VlIHR5cGUsIGJ1dCBpdCdzIG90aGVyd2lzZSBqdXN0IGEgZnJlZSB0ZXh0IGZpZWxkLiAqL1xyXG4gICAgY2F0YWxvZ3VlVHlwZURldGFpbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqIFRoaXMgZW51bWVyYXRpb24gZGVzY3JpYmVzIHRoZSB0eXBlIG9mIGEgY2F0YWxvZ3VlLiBDYXRhbG9ndWVzLCBvciBjb2xsZWN0aW9ucywgaG9sZCBpbmZvcm1hdGlvbiB0byBjYXRlZ29yaXplIGFuZCBkZXNjcmliZSBpdGVtcy4gRm9yIGV4YW1wbGUsIHRoZSBHZXJtYW4gRElOIDI3NiBjb3N0IGdyb3VwIHN0YW5kYXJkcyBkZXNjcmliZSBkaWZmZXJlbnQgdHlwZXMgb2YgY29zdHMgZm9yIGJ1aWxkaW5nIHByb2plY3RzLiBXaGVuIHJlZmVyZW5jaW5nIHRoZSBESU4gMjc2IGNhdGFsb2d1ZSBhbmQgcHJvdmlkaW5nIGFuIGl0ZW0ga2V5IG9yIGlkZW50aWZpZXIsIGl0IGlzIHBvc3NpYmxlIHRvIHJlZmVyZW5jZSBkYXRhIGluIHRoaXMgY2F0YWxvZ3VlLiAqL1xyXG5leHBvcnQgZW51bSBDYXRhbG9ndWVUeXBlRHRvIHtcclxuICAgIFVua25vd24gPSBcIlVua25vd25cIixcclxuICAgIExvY2F0aW9uID0gXCJMb2NhdGlvblwiLFxyXG4gICAgRElOMjc2ID0gXCJESU4yNzZcIixcclxuICAgIENvc3RVbml0ID0gXCJDb3N0VW5pdFwiLFxyXG4gICAgV29ya0NhdGVnb3J5ID0gXCJXb3JrQ2F0ZWdvcnlcIixcclxuICAgIE9lbm9ybUIxODAxQ29zdEdyb3VwID0gXCJPZW5vcm1CMTgwMUNvc3RHcm91cFwiLFxyXG4gICAgQklNID0gXCJCSU1cIixcclxuICAgIEF0dGFjaG1lbnQgPSBcIkF0dGFjaG1lbnRcIixcclxufVxyXG5cclxuLyoqIFRoaXMgY2xhc3MgaXMgdXNlZCB0byBsaW5rIGRhdGEgYmV0d2VlbiBjYXRhbG9ndWVzIGFuZCBvYmplY3RzLiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENhdGFsb2d1ZVJlZmVyZW5jZUR0byB7XHJcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIC8qKiBUaGlzIHBvaW50cyB0byB0aGUgaXRlbSBpbiB0aGUgY2F0YWxvZ3VlIGl0c2VsZi4gVGhpcyBtZWFucyB0aGF0LCBmb3IgZXhhbXBsZSB3aGVuIHRoaXMgcXVhbnRpdHkgYXNzaWdubWVudCByZWZlcmVuY2VzIGEgXCJESU4gMjc2XCIgY2F0YWxvZ3VlLCB0aGlzIHByb3BlcnR5IGluZGljYXRlcyB0aGUgbnVtYmVyIC8gaWRlbnRpZmllciAvIGtleSBpbiBESU4gMjc2IHRoYXQgaXMgcmVmZXJlbmNlZC4gKi9cclxuICAgIGNhdGFsb2d1ZVJlZmVyZW5jZUtleT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgSWQgb2YgdGhlIENhdGFsb2d1ZVJlZmVyZW5jZSB0aGF0IGlzIHRhcmdldGVkIGJ5IHRoaXMgaXRlbS4gU2V0IHRoaXMgcHJvcGVydHkgdG8gc2V0IHRoZSByZWZlcmVuY2VkIGNhdGFsb2d1ZS4gKi9cclxuICAgIGNhdGFsb2d1ZVJlZmVyZW5jZUlkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWVSZWZlcmVuY2UgdGhhdCBhcmUgdXNlZCB3aXRoaW4gdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gQ2F0YWxvZ3VlIHJlZmVyZW5jZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiAqL1xyXG4gICAgcHJvamVjdENhdGFsb2d1ZXM/OiBDYXRhbG9ndWVEdG9bXSB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHJldHVybnMgdGhlIHJlZmVyZW5jZWQgY2F0YWxvZ3VlLiBXaWxsIHJldHVybiBudWxsIGlmIHRoZXJlIGlzIG5vIHJlZmVyZW5jZSBvciB0aGUgY2F0YWxvZ3VlIGlzIG5vdCBwcmVzZW50IGluIHRoZSBQcm9qZWN0Q2F0YWxvZ3Vlcy4gKi9cclxuICAgIHJlYWRvbmx5IGNhdGFsb2d1ZT86IENhdGFsb2d1ZUR0byB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqIEEgUG9zaXRpb24gaXMgdGhlIG1haW4gaXRlbSB0eXBlIGluIGEgU2VydmljZVNwZWNpZmljYXRpb24sIGhvbGRpbmcgaW5mb3JtYXRpb24gYWJvdXQgdGFza3MgdG8gYmUgZG9uZSwgdGhlaXIgcHJpY2VzLCBkZXNjcmlwdGlvbiwgYW1vdW50cyBldGMuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUG9zaXRpb25EdG8gZXh0ZW5kcyBJRWxlbWVudER0byB7XHJcbiAgICAvKiogV2lsbCByZXR1cm4gdGhlIHByaWNlIHBlciB1bml0LCByb3VuZGVkIGFjY29yZGluZyB0byB0aGUgcHJvamVjdCBzZXR0aW5ncyBvciB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aHJlZSBkZWNpbWFsIHBsYWNlcyAqL1xyXG4gICAgcmVhZG9ubHkgdW5pdFByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFlvdSBjYW4gdXNlIHRoaXMgcHJvcGVydHkgdG8gZGlyZWN0bHkgc2V0IHRoZSB1bml0IHByaWNlIGZvciB0aGlzIHBvc2l0aW9uLiBUaGlzIHdpbGwgb3ZlcnJpZGUgYW55IGdpdmVuIFByaWNlQ29tcG9uZW50cyAqL1xyXG4gICAgdW5pdFByaWNlT3ZlcnJpZGU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogV2lsbCByZXR1cm4gdGhpcyBQb3NpdGlvbidzIHRvdGFsIHF1YW50aXR5LCByb3VuZGVkIHRvIHRocmVlIGRlY2ltYWwgcGxhY2VzLiAqL1xyXG4gICAgcmVhZG9ubHkgcXVhbnRpdHk/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogWW91IGNhbiB1c2UgdGhpcyBwcm9wZXJ0eSB0byBkaXJlY3RseSBzZXQgdGhlIHF1YW50aXR5IGZvciB0aGlzIHBvc2l0aW9uLiBUaGlzIHdpbGwgb3ZlcnJpZGUgYW55IGdpdmVuIFF1YW50aXR5Q29tcG9uZW50cyAqL1xyXG4gICAgcXVhbnRpdHlPdmVycmlkZT86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGluZGljYXRlcyB0cnVlIGlmIHRoaXMgc3BlY2lmaWMgcG9zaXRpb24gaXMgc3BlY2lmaWVkIGFzIGEgY29tcGxlbWVudGluZyBwb3NpdGlvbiBmb3IgYW55IGJhc2UgcG9zaXRpb24uICovXHJcbiAgICBpc0NvbXBsZW1lbnRpbmdQb3NpdGlvbj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSWYgSXNDb21wbGVtZW50aW5nUG9zaXRpb24gaXMgc2V0IHRvIHRydWUsIHRoaXMgd2lsbCBpbmRpY2F0ZSB3aGljaCBiYXNlIHBvc2l0aW9ucyBhcmUgdGFyZ2V0ZWQgYnkgdGhpcyBjb21wbGVtZW50aW5nIHBvc2l0aW9uLiAqL1xyXG4gICAgY29tcGxlbWVudHNQb3NpdGlvbnM/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBZb3UgY2FuIHVzZSB0aGlzIHByb3BlcnR5IHRvIGRpcmVjdGx5IHNwZWNpZnkgdGhlIHRvdGFsIHByaWNlIG9mIHRoaXMgcG9zaXRpb24gYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBzdW0gb2YgdGhlIHRvdGFsIHByaWNlcyBvZiBiYXNlIHBvc2l0aW9ucyB0aGF0IHRoaXMgcG9zaXRpb24gY29tcGxlbWVudHMuIEl0IHdpbGwgZXNzZW50aWFsbHkgc2V0IHRoZSB0b3RhbCBwcmljZSBmb3IgdGhpcyBwb3NpdGlvbiB0byB0aGUgc3VtIG9mIGFsbCB0b3RhbCBwcmljZXMgb2YgdGhlIHBvc2l0aW9ucyBzcGVjaWZpZWQgaW4gQ29tcGxlbWVudHNQb3NpdGlvbnMgbXVsdGlwbGllZCBieSB0aGUgcGVyY2VudGFnZSBoZXJlLiBJZiBwcmVzZW50LCB0aGlzIGhhcyBwcmVjZWRlbmNlIG92ZXIgVW5pdFByaWNlT3ZlcnJpZGUgYXMgd2VsbCBhcyBRdWFudGl0eU92ZXJyaWRlLiAqL1xyXG4gICAgY29tcGxlbWVudGluZ1ByaWNlUGVyY2VudGFnZU92ZXJyaWRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaXMgYSByZWFkIG9ubHkgcHJvcGVydHkgc2hvd2luZyB0aGUgdG90YWwgcHJpY2Ugb2YgdGhpcyBwb3NpdGlvbnMgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBzdW0gb2YgdGhlIHRvdGFsIHByaWNlcyBvZiBhbGwgYmFzZSBwb3NpdGlvbnMsIGluIGNhc2UgdGhpcyBwb3NpdGlvbiBpcyBhIGNvbXBsZW1lbnRpbmcgcG9zaXRpb25zLiBJZiB0aGlzIHBvc2l0aW9uIGlzIG5vdCBhIGNvbXBsZW1lbnRpbmcgcG9zaXRpb24sIHRoaXMgd2lsbCBiZSBudWxsLiBBbHNvLCBpZiBubyBwcmljZXMgYXJlIHByZXNlbnQsIHRoaXMgd2lsbCBhbHNvIGJlIG51bGwuICovXHJcbiAgICBjb21wbGVtZW50aW5nUHJpY2VQZXJjZW50YWdlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSB0YWcgb2YgdGhlIHVuaXQgdXNlZCBmb3IgdGhpcyBwb3NpdGlvbnMgcXVhbnRpdHkuICovXHJcbiAgICB1bml0VGFnPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBjb21wb25lbnRzIGZvciBsYWJvdXIgdGltZSBpbiB0aGlzIFBvc2l0aW9uLiAqL1xyXG4gICAgbGFib3VyQ29tcG9uZW50cz86IExhYm91clByaWNlQ29tcG9uZW50RHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBzaW5nbGUgcHJpY2UgY29tcG9uZW50cyBpbiB0aGlzIFBvc2l0aW9uLiBQcmljZSBjb21wb25lbnRzIHNob3VsZCBub3QgYmUgaGFuZGxlZCBkaXJlY3RseSBvbiBhIHBlci1wb3NpdGlvbiBiYXNpcyBidXQgc2V0IGdsb2JhbGx5IGluIHRoZSBwYXJlbnQgUHJvamVjdHMgUHJvamVjdEluZm9ybWF0aW9uLiAqL1xyXG4gICAgcHJpY2VDb21wb25lbnRzPzogUHJpY2VDb21wb25lbnREdG9bXSB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgcXVhbnRpdHkgY29tcG9uZW50cyBvZiB0aGlzIFBvc2l0aW9uLiAqL1xyXG4gICAgcXVhbnRpdHlDb21wb25lbnRzPzogQ2FsY3VsYXRpb25EdG9bXSB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBGdXJ0aGVyIHN0cnVjdHVyaW5nIG9mIHRoaXMgUG9zaXRpb24uICovXHJcbiAgICBzdWJEZXNjcmlwdGlvbnM/OiBTdWJEZXNjcmlwdGlvbkR0b1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluZGljYXRlcyB0aGUgc3RhdHVzIG9mIHRoaXMgUG9zaXRpb24ncyBjb21pc3Npb24uICovXHJcbiAgICBjb21pc3Npb25TdGF0dXM/OiBDb21pc3Npb25TdGF0dXNEdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogQSBsaXN0IG9mIHBvc2l0aW9ucyB0aGF0IGNvbXBsZW1lbnQgdGhpcyBQb3NpdGlvbi4gVGhlIHBvc2l0aW9ucyBhcmUgcmVmZXJlbmNlZCBieSB0aGVpciBHVUlEcy4gSXQgbWlnaHQgYmUgdXNlZCB0b2dldGhlciB3aXRoIENvbXBsZW1lbnRlZEJ5UXVhbnRpdGllcyBpbiBjYXNlIHRoYXQgb25seSBhIGdpdmVuIHF1YW50aXR5IGlzIGNvbXBsZW1lbnRlZCBieSBwb3NpdGlvbnMuICovXHJcbiAgICBjb21wbGVtZW50ZWRCeT86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFdpbGwgaW5kaWNhdGUgaWYgdGhpcyBQb3NpdGlvbiBpcyBjb21wbGVtZW50ZWQgaW4gdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbiBieSBvdGhlciBQb3NpdGlvbnMuIEl0IGNhbiBub3QgYmUgc2V0IHRvIGZhbHNlIHdoZW4gdGhlcmUgYXJlIGVudHJpZXMgaW4gdGhlIENvbXBsZW1lbnRlZEJ5IHByb3BlcnR5LiAqL1xyXG4gICAgY29tcGxlbWVudGVkPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJbmRpY2F0ZXMgdGhhdCB0aGUgYW1vdW50IGZvciB0aGlzIFBvc2l0aW9uIGlzIHRvIGJlIHNldCBieSB0aGUgYmlkZGVyLiAqL1xyXG4gICAgYW1vdW50VG9CZUVudGVyZWRCeUJpZGRlcj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBiaWRkZXIgZGVtYW5kcyBmb3IgcHJpY2VzIHRvIGJlIGJyb2tlbiB1cCBpbnRvIHRoZWlyIHByaWNlIGNvbXBvbmVudHMuICovXHJcbiAgICBwcmljZUNvbXBvc2l0aW9uUmVxdWlyZWQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGlzIFBvc2l0aW9uIHNob3VsZCB1c2UgYSBkaWZmZXJlbnQgVGF4UmF0ZSB0aGFuIHdoYXQgaXMgdGhlIGRlZmF1bHQgZm9yIHRoZSBQcm9qZWN0LiAqL1xyXG4gICAgdXNlRGlmZmVyZW50VGF4UmF0ZT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogV2lsbCByZXR1cm4gZWl0aGVyIHRoZSBwYXJlbnQgU2VydmljZVNwZWNpZmljYXRpb24ncyBUYXhSYXRlIG9yIGl0J3Mgb3duIGlmIGl0IGhhcyBhIGRpZmZlcmVudCB2YWx1ZS4gKEZvciBleGFtcGxlLCBpbiBHZXJtYW55IFdhdGVyIGhhcyBhIGRpZmZlcmVudCBUYXhSYXRlIHRoYW4gcmVndWxhciBQb3NpdGlvbnMpICovXHJcbiAgICB0YXhSYXRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBJdGVtTnVtYmVyIGZvciB0aGlzIFBvc2l0aW9uLiAqL1xyXG4gICAgaXRlbU51bWJlcj86IEl0ZW1OdW1iZXJEdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIHJhdGUgb2YgZGVkdWN0aW9ucywgaS5lLiAwLjEybSBtZWFucyAxMiUgcHJpY2UgZGVkdWN0aW9uLiAqL1xyXG4gICAgZGVkdWN0aW9uRmFjdG9yPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFJldHVybnMgdGhlIHByb2R1Y3Qgb2YgVW5pdFByaWNlIHRpbWVzIFF1YW50aXR5LiAqL1xyXG4gICAgcmVhZG9ubHkgdG90YWxQcmljZT86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgdG90YWwgZ3Jvc3MgcHJpY2UgZm9yIHRoaXMgUG9zaXRpb24uICovXHJcbiAgICByZWFkb25seSB0b3RhbFByaWNlR3Jvc3M/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVG90YWwgZ3Jvc3MgcHJpY2UgYWZ0ZXIgYXBwbGllZCBkZWR1Y3Rpb25zLiAqL1xyXG4gICAgcmVhZG9ubHkgdG90YWxQcmljZUdyb3NzRGVkdWN0ZWQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogTmV0IHByaWNlIGFmdGVyIGFwcGxpZWQgZGVkdWN0aW9ucy4gUGxlYXNlIGJlIGF3YXJlIHRoYXQgdGhpcyBpcyB0aGUgdG90YWwgcHJpY2UsIGZyb20gVG90YWxQcmljZSwgbm90IHRoZSB1bml0IHByaWNlIG9mIHRoZSBwb3NpdGlvbi4gKi9cclxuICAgIHJlYWRvbmx5IGRlZHVjdGVkUHJpY2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgdGhlIHR5cGUgb2YgYSBwb3NpdGlvbi4gSWYgdGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSBwb3NpdGlvbiwgaXRzIEFsdGVybmF0aXZlVG8gcHJvcGVydHkgc2hvdWxkIGJlIHNldCB0byB0aGUgaWQgb2YgdGhlIHBvc2l0aW9uIGl0IGNhbiByZXBsYWNlLiAqL1xyXG4gICAgcG9zaXRpb25UeXBlPzogUG9zaXRpb25UeXBlRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluZGljYXRlcyB0aGUgUHJpY2VUeXBlIG9mIHRoaXMgUG9zaXRpb24uICovXHJcbiAgICBwcmljZVR5cGU/OiBQcmljZVR5cGVEdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgaWYgdGhpcyBwb3NpdGlvbiBpcyByZWd1bGFyIG9yIGRlc2NyaWJpbmcgYSBsYWJvdXIgLyBob3VybHkgcGFpZCB3b3JrIHNlcnZpY2UgKi9cclxuICAgIHNlcnZpY2VUeXBlPzogU2VydmljZVR5cGVEdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBkZXNjcmliZXMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCBhIHByb2R1Y3QgYmVpbmcgdXNlZCB3aXRoaW4gdGhpcyBQb3NpdGlvbi4gRm9yIGV4YW1wbGUsIGEgcGlwZSBwb3NpdGlvbiwgcGVyIGxlbmd0aCB1bml0LCBjb3VsZCBiZSBjb21wb3NlZCBvZiBkaWZmZXJlbnQgcGlwZSBzZWdtZW50cywgZml0dGluZyBhbmQgb3RoZXIgYWNjZXNzb3J5IGFydGljbGVzLiAqL1xyXG4gICAgcHJvZHVjdERhdGE/OiBQcm9kdWN0RGF0YUR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBTaG9ydCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBEZXNjcmlwdGlvbkJhc2UgZWxlbWVudC4gKi9cclxuICAgIHNob3J0VGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBEZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBEZXNjcmlwdGlvbkJhc2UgZWxlbWVudC4gV2hlbiB0aGUgSHRtbExvbmdUZXh0IGlzIHNldCwgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IG92ZXJ3cml0dGVuIGFuZCBmaWxsZWQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgcGxhaW4gdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgSHRtbCB0ZXh0LiBWaWNlIHZlcnNhLCBzZXR0aW5nIHRoaXMgcHJvcGVydHkgb3ZlcnJpZGVzIHRoZSBIdG1sTG9uZ1RleHQuICovXHJcbiAgICBsb25nVGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGNvbnRhaW5zIHRoZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBMb25ndGV4dC4gV2hlbiB0aGUgTG9uZ1RleHQgaXMgc2V0LCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgb3ZlcndyaXR0ZW4gYW5kIGZpbGxlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwbGFpbnRleHQuIFZpY2UgdmVyc2EsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgdGhlIExvbmdUZXh0LiBHQUVCIDkwIGFuZCBHQUVCIDIwMDAgZXhwb3J0cyBkbyBub3Qgc3VwcG9ydCBhbnkgaW1hZ2UgZnVuY3Rpb25hbGl0eS4gSW4gR0FFQiBYTUwsIG9ubHkgaW1hZ2VzIHRoYXQgdXNlIGFuIGVtYmVkZGVkIEJhc2U2NCBkYXRhIHVyaSBhcmUgZXhwb3J0ZWQsIHJlZ3VsYXIgdXJsIHJlZmVyZW5jZXMgYXJlIGNsZWFyZWQgYmVmb3JlIHdyaXR0ZW4gb3V0LiAqL1xyXG4gICAgaHRtbExvbmdUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGlzIERlc2NyaXB0aW9uQmFzZSBlbGVtZW50IGNvbnRhaW5zIEJ1eWVyIG9yIEJpZGRlciBhZGRpdGlvbnMgdG8gdGhlIHRleHQuICovXHJcbiAgICBhZGRpdGlvblR5cGU/OiBBZGRpdGlvblR5cGVEdG8gfCB1bmRlZmluZWQ7XHJcbiAgICBlbGVtZW50VHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBRdWFudGl0eSBhc3NpZ25tZW50cyBhcmUsIGluIGNvbnRyYXN0IHRvIFN1YkRlc2NyaXB0aW9ucywgdXNlZCB0byBjYXRlZ29yaXplIHBhcnRzIG9mIHRoaXMgUG9zaXRpb24uIEZvciBleGFtcGxlLCBpdCBjb3VsZCBiZSBjYXRlZ29yaXplZCBieSBjb3N0IGdyb3VwIC0gZS5nLiBhIFBvc2l0aW9uIGRlc2NyaWJpbmcgY29uY3JldGUgd2FsbHMgY291bGQgZm9sbG93IHRoZSBHZXJtYW4gRElOIDI3NiBDb3N0IEdyb3VwcyBTdGFuZGFyZCBhbmQgc3BlY2lmeSB0aGF0IG9mIHRoZSB0b3RhbCAxLjAwMG3CsiB3YWxsLCA1MDBtwrIgYXJlIGNsYXNzaWZpZWQgYXMgZXh0ZXJpb3Igd2FsbHMgYW5kIDUwMG3CsiBhcmUgY2xhc3NpZmllZCBhcyBpbnRlcmlvciB3YWxscy4gVGhleSB3b3VsZCB0aGVuIGhhdmUgZGlmZmVyZW50IGNvc3QgZ3JvdXBzIGFzc29jaWF0ZWQsIGUuZy4gZm9yIGFjY291bnRpbmcgcHVycG9zZXMuICovXHJcbiAgICBxdWFudGl0eUFzc2lnbm1lbnRzPzogUXVhbnRpdHlBc3NpZ25tZW50RHRvW10gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIENvbW1lcmNlUHJvcGVydGllcyBzdXBwb3J0IHNwZWNpYWxpemVkIGluZm9ybWF0aW9uIHRoYXQgaXMgb25seSB1c2VmdWwgaW4gR0FFQiBYTUwgOXggZGF0YSBleGNoYW5nZSBwaGFzZXMuIEl0IGlzIGludGVuZGVkIHRvIHByb3ZpZGUgYXJ0aWNsZSBpbmZvcm1hdGlvbi4gKi9cclxuICAgIGNvbW1lcmNlUHJvcGVydGllcz86IENvbW1lcmNlUHJvcGVydGllc0R0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJZiB0aGlzIHBvc2l0aW9uIGlzIGFuIEFsdGVybmF0aXZlLCB0aGVuIHRoaXMgcHJvcGVydHkgc2hvdWxkIHBvaW50IHRvIHRoZSBpZCBvZiB0aGUgcG9zaXRpb24gaW4gdGhpcyBzZXJ2aWNlIHNwZWNpZmljYXRpb24gdGhhdCBpdCBjYW4gcmVwbGFjZS4gSWYgdGhpcyBpcyBzZXQgdG8gYSB2YWx1ZSwgeW91IGNhbiBvcHRpb25hbGx5IGFsc28gc3BlY2lmeSBhbiBpZGVudGlmaWVyIHZpYSBBbHRlcm5hdGl2ZUlkZW50aWZpZXIgdG8gc3BlY2lmaXkgbXVsdGlwbGUgcG9zaXRpb25zIHRoYXQgbXVzdCBiZSB1c2VkIHRvZ2V0aGVyIHRvIGJlIGFuIGFsdGVybmF0aXZlIHRvIGEgc2luZ2xlIGJhc2UgcG9zaXRpb24uICovXHJcbiAgICBhbHRlcm5hdGl2ZVRvPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaXMgYW4gb3B0aW9uYWwgcHJvcGVydHkgdGhhdCBjYW4gYmUgdXNlZCB0b2dldGhlciB3aXRoIEFsdGVybmF0aXZlVG8uIElmIHRoaXMgaXMgc2V0LCB5b3UgY2FuIGluZGljYXRlIHdoaWNoIGFsdGVybmF0aXZlIGdyb3VwIGEgc3BlY2lmaWMgcG9zaXRpb24gaXMgYXNzaWduZWQgdG8uIFRoYXQgd2F5LCBpZiB5b3Ugc3BlY2lmaXkgbXVsdGlwbGUgYWx0ZXJuYXRpdmUgUG9zaXRpb25zIHdpdGggdGhlIHNhbWUgQWx0ZXJuYXRpdmVJZGVudGlmaWVyLCB5b3UgY2FuIGluZGljYXRlIHRoYXQgdG8gcmVwbGFjZSBhIHNpbmdsZSBiYXNlIFBvc2l0aW9uLCBtdWx0aXBsZSBhbHRlcm5hdGl2ZSBQb3NpdGlvbnMgc2hvdWxkIGJlIHVzZWQuIFRoaXMgcHJvcGVydHkgaXMgbm90IGNoZWNrZWQgb3IgbWFuYWdlZCBhdXRvbWF0aWNhbGx5LCBzbyBpdCBpcyBwb3NzaWJsZSBmb3IgdGhpcyBwcm9wZXJ0eSB0byBiZWNvbWUgaW52YWxpZCwgYnkgZm9yIGV4YW1wbGUgc2V0dGluZyB0aGlzIHByb3BlcnR5IGJ1dCBub3Qgc2V0dGluZyBhIGJhc2UgcG9zaXRpb24gdmlhIEFsdGVybmF0aXZlVG8uICovXHJcbiAgICBhbHRlcm5hdGl2ZUlkZW50aWZpZXI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpcyBhbiBvcHRpb25hbCBwcm9wZXJ0eSB0aGF0IGNhbiBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggQWx0ZXJuYXRpdmVUbyBhbmQgQWx0ZXJuYXRpdmVHcm91cElkZW50aWZpZXIuIElmIHRoaXMgaXMgc2V0LCB5b3UgY2FuIGluZGljYXRlIHdoaWNoIGFsdGVybmF0aXZlIGdyb3VwIGEgc3BlY2lmaWMgcG9zaXRpb24gaXMgYXNzaWduZWQgdG8uIFRoYXQgd2F5LCB5b3UgY2FuIHNwZWNpZnkgdGhlIGlkIChpbiBpbnRlZ2VyIGZvcm1hdCkgZm9yIHRoZSBhbHRlcm5hdGl2ZSBncm91cCB0aGlzIHBvc2l0aW9uIGJlbG9uZ3MgdG8uIEl0J3MgZGlmZmVyZW50IHRvIEFsdGVybmF0aXZlSWRlbnRpZmllciBpbiB0aGF0IHRoZSBvdGhlciBwcm9wZXJ0eSBkZXNjcmliZXMgdGhlIGlkIG9mIHRoZSBncm91cCwgd2hpbGUgdGhpcyBwcm9wZXJ0eSBoZXJlIGRlc2NyaWJlcyB0aGUgZ3JvdXAgaXRzZWxmLiBJZiBhIHBvc2l0aW9uIG9ubHkgaGFzIHNldCBBbHRlcm5hdGl2ZUdyb3VwSWRlbnRpZmllciBidXQgbm90IEFsdGVybmF0aXZlSWRlbnRpZmllciwgdGhlbiBpdCBsaWtlbHkgaXMgYSBiYXNlIHBvc2l0aW9uIGZvciBhIHNwZWNpZmljIGdyb3VwLiBUaGlzIHdhcyBpbnRyb2R1Y2VkIGluIHZlcnNpb24gdjIuOS4wIHRvIGJlIGFibGUgdG8gbW9kZWwgYm90aCBwb3NpdGlvbiBhbmQgZ3JvdXAgaWRzIGZvciBhbHRlcm5hdGl2ZSBncm91cCBjb21iaW5hdGlvbnMuIFRoaXMgcHJvcGVydHkgaXMgbm90IGNoZWNrZWQgb3IgbWFuYWdlZCBhdXRvbWF0aWNhbGx5LCBzbyBpdCBpcyBwb3NzaWJsZSBmb3IgdGhpcyBwcm9wZXJ0eSB0byBiZWNvbWUgaW52YWxpZCwgYnkgZm9yIGV4YW1wbGUgc2V0dGluZyB0aGlzIHByb3BlcnR5IGJ1dCBub3Qgc2V0dGluZyBhIGJhc2UgcG9zaXRpb24gdmlhIEFsdGVybmF0aXZlVG8uICovXHJcbiAgICBhbHRlcm5hdGl2ZUdyb3VwSWRlbnRpZmllcj86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJZiB0aGlzIGlzIHRydWUsIGl0IGluZGljYXRlcyB0aGF0IHRoZSBwb3NpdGlvbiBpcyBpbnRlbmRlZCB0byBiZSBhIGx1bXAgc3VtLCBcIlBhdXNjaGFsXCIgaW4gR2VybWFuLiBUaGlzIG1lYW5zIHRoZSBwb3NpdGlvbiB0b3RhbCBwcmljZSB0aGF0IGlzIGJlaW5nIGludm9pY2VkIHNob3VsZCBub3QgZGVwZW5kIG9uIHRoZSBhY3R1YWwgcXVhbnRpdHkuIEluIHByYWN0aWNlLCBwYXJ0aWFsIGludm9pY2VzIGFyZSBzdGlsbCBvZnRlbiB1c2VkIGZvciBwYXJ0aWFsIHNlcnZpY2VzIHJlbmRlcmVkLiBUaGlzIHByb3BlcnR5IGRvZXMgbm90IGFmZmVjdCB0aGUgcHJpY2UgY2FsY3VsYXRpb24gZm9yIHRoaXMgcG9zaXRpb24uIFR5cGljYWxseSwgdGhlIFF1YW50aXR5IHNob3VsZCBiZSBzZXQgdG8gMS4wIHdoZW4gdGhpcyBmbGFnIGlzIHVzZWQuICovXHJcbiAgICBpc0x1bXBTdW0/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaWRlbnRpZmllciBjYW4gYmUgdXNlZCB0byBwb2ludCB0byB0aGUgSWQgb2YgYSBwb3NpdGlvbiBpbiB0aGUgc2FtZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbiB0aGF0IGFjdHMgYXMgYSBiYXNlIHBvc2l0aW9uLiBJdCBtYXRjaGVzIFwiQmV6dWdzcG9zaXRpb25cIiBpbiBHQUVCLiBUaGlzIGNhbiBiZSB1c2VkIGZvciBwb3NpdGlvbnMgdGhhdCByZXBlYXQgcGFydGlhbGx5IG9yIGFyZSBsaW5rZWQgdG9nZXRoZXIgKi9cclxuICAgIHJlcGV0aXRpb25Ubz86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIHYxQ29tcGF0aWJpbGl0eVByaWNlVHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHJlcHJlc2VudHMgYSBzdGFuZGFyZGl6ZWQgZGVzY3JpcHRpb24uIFRoaXMgbWVhbnMgdGhhdCBpbnN0ZWFkIG9mIHNvbGVseSByZWx5aW5nIG9uIHRleHRzIHRvIGRlc2NyaWJlIGEgc2VydmljZSwgZXh0ZXJuYWwgc3RhbmRhcmRzIGFuZCBkZWZpbml0aW9ucyBhcmUgcmVmZXJlbmNlZCBmb3IgYSBjb21tb24gdW5kZXJzdGFuZGluZy4gKi9cclxuICAgIHN0YW5kYXJkaXplZERlc2NyaXB0aW9uPzogU3RhbmRhcmRpemVkRGVzY3JpcHRpb25EdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBsaXN0IGNvbnRhaW5zIHJlZmVyZW5jZXMgdG8gcG9zaXRpb25zIHRoYXQgY29tcGxlbWVudCB0aGlzIG9uZSwgYWRkaXRpb25hbGx5IGFsc28gc3BlY2lmeWluZyBhIHF1YW50aXR5IGZvciB3aGljaCB0aGUgYWRkaXRpb24gaXMgaW50ZW5kZWQuIFRoaXMgZG9lcyBub3QgcmVwbGFjZSB0aGUgQ29tcGxlbWVudGVkQnkgcHJvcGVydHkgYW5kIHRoZXJlIGFyZSBubyBhdXRvbWF0aWMgY2hlY2tzIGJlaW5nIGRvbmUgYmV0d2VlbiB0aGVzZSB0d28gcHJvcGVydGllcywgc28gaXQncyB1cCB0byB0aGUgdXNlciBjb2RlIHRvIGVuc3VyZSBkZWxldGlvbnMgKGFuZCBhZGRpdGlvbnMsIGlmIGRlc2lyZWQpIGFyZSBwZXJmb3JtZWQgZm9yIGJvdGggcHJvcGVydGllcy4gV2hlbiBjb3B5aW5nIHdpdGhpbmcga2VlcGluZyBJZHMsIHRoaXMgbGlzdCB3aWxsIG5vdCBiZSBwYXJ0IG9mIHRoZSBjb3B5IHByb2Nlc3MsIHNpbmNlIGl0IHdvdWxkIG9ubHkgY29udGFpbiBxdWFudGl0aWVzIHdpdGhvdXQgYWN0dWFsIHBvc2l0aW9uIHJlZmVyZW5jZXMuIENvbnRhaW5lcnMsIGhvd2V2ZXIsIHdpbGwgcmVidWlsZCB0aGUgbGlzdCB3aXRoIHVwZGF0ZWQgcG9zaXRpb24gcmVmZXJlbmNlcyB3aGVuIGNvcHlpbmcgcG9zaXRpb25zIHRoYXQgY29udGFpbiBlbnRyaWVzIGhlcmUuICovXHJcbiAgICBjb21wbGVtZW50ZWRCeVF1YW50aXRpZXM/OiBDb21wbGVtZW50ZWRCeVF1YW50aXR5RHRvW10gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpZGVudGlmaWVyIGNhbiBiZSB1c2VkIHRvIHBvaW50IHRvIHRoZSBJZCBvZiBhbiBFeGVjdXRpb25EZXNjcmlwdGlvbiBpbiB0aGUgc2FtZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gRXhlY3V0aW9uRGVzY3JpcHRpb25zIGFjdCBhcyBhIHdheSB0byBjZW50cmFsbHkgZGVzY3JpYmUgaG93IHBvc2l0aW9ucyBzaG91bGQgYmUgZXhlY3V0ZWQgaW4gcHJhY3RpY2UuIE9mdGVuLCB0aGUgcG9zaXRpb24gaXRzZWxmIHN0aWxsIGhhcyB0ZXh0IG9mIGl0cyBvd24gdG8gaGlnaGxpZ2h0IGRldmlhdGlvbnMgZnJvbSB0aGF0IG9yIGFkZCBtb3JlIGRldGFpbHMuICovXHJcbiAgICBleGVjdXRpb25EZXNjcmlwdGlvblJlZmVyZW5jZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGluZGljYXRlcyBpZiBhIHBvc2l0aW9uIGhhcyBub3QgYmVlbiBvZmZlcmVkLiBUaGlzIGlzIHR5cGljYWxseSBvbmx5IGV4cGVjdGVkIHRvIGJlIHRydWUgd2hlbiB0aGUgZXhjaGFuZ2UgcGhhc2Ugb2YgdGhlIHBhcmVudCBTZXJ2aWNlU3BlY2lmaWNhdGlvbiBpcyBPZmZlciwgYW5kIGl0IG1lYW5zIHRoYXQgdGhlIHBvc2l0aW9uIGhhcyBub3QgYmVlbiBvZmZlcmVkIGF0IGFsbC4gKi9cclxuICAgIG5vdE9mZmVyZWQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgY2xhc3MgbW9kZWxzIHNwZWNpYWwgcHJvcGVydGllcyB0aGF0IG9ubHkgYXBwbHkgdG8gc29tZSBleGNoYW5nZSBzY2VuYXJpb3Mgd2hlcmUgw5ZOb3JtIGlzIHVzZWQuIEl0IGlzIHNwZWNpYWwgZm9yIFBvc2l0aW9ucyBhbmQgZXh0ZW5kcyB0aGUgT2Vub3JtUHJvcGVydGllcyBiYXNlIGNsYXNzLiAqL1xyXG4gICAgb2Vub3JtUG9zaXRpb25Qcm9wZXJ0aWVzPzogT2Vub3JtUG9zaXRpb25Qcm9wZXJ0aWVzRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaXMgYW4gaWRlbnRpZmllciBzcGVjaWZpYyBmb3IgdGhpcyBkZXNjcmlwdGlvbi4gU29tZSBleGNoYW5nZSBmb3JtYXRzLCBsaWtlIEdBRUIgWE1MLCB1c2UgaXQgdG8gaWRlbnRpZnkgZGVzY3JpcHRpb25zLiBJdCdzIGRpZmZlcmVudCB0byBhbiBlbGVtZW50cyBpZGVudGlmaWVyIGluIHRoYXQgaXQgc2hvdWxkIG9ubHkgYXBwbHkgdG8gdGhlIGRlc2NyaXB0aW9uIGNvbXBvbmVudCwgbWVhbmluZyB0aGUgdGV4dCBpdHNlbGYuICovXHJcbiAgICBkZXNjcmlwdGlvbklkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaXMgYSB6ZXJvIGJhc2VkIGhpZXJhcmNoeSBsZXZlbC4gSXQncyBzZXQgYXV0b21hdGljYWxseSB3aGVuIHVzZWQgaW4gdGhlIGNvbnRleHQgb2YgYSBQcm9qZWN0LCBhbmQgY2FuIGJlIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGhpZXJhcmNoeSBsZXZlbCBvZiB0aGUgY3VycmVudCBlbGVtZW50LiAqL1xyXG4gICAgaGllcmFyY2h5TGV2ZWw/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMsIGlmIHRoaXMgZWxlbWVudCBpcyBwYXJ0IG9mIGFuIGFkZGVuZHVtIGFuLCBpZiB5ZXMsIHdpdGggd2hhdCBzdGF0dXMuICovXHJcbiAgICBhZGRlbmR1bVN0YXR1cz86IEFkZGVuZHVtU3RhdHVzRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgcmVhZG9ubHkgaGFzQmlkZGVyQ29tbWVudEluSHRtbExvbmdUZXh0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHByb3BlcnR5IGNhbiBvcHRpb25hbGx5IGJlIHVzZWQgaW4gR0FFQiBleGNoYW5nZSBzY2VuYXJpb3MuIEl0IGlzIG9ubHkgbWVhbmluZ2Z1bCBpZiB0aGlzIHBvc2l0aW9uIGl0c2VsZiBpcyBhIGNvbXBsZW1lbnRpbmcgcG9zaXRpb24sIG1lYW5pbmcgaWYgdGhpcyBwb3NpdGlvbiBpcyBtYXJrZWQgaW4gb3RoZXIgcG9zaXRpb25zIGluIHRoZWlyIENvbXBsZW1lbnRlZEJ5IGxpc3QuIFRoZW4sIGl0IHNwZWNpZmllcyBob3cgdGhlIGNvbXBsZW1lbnRpbmcgc2hvdWxkIGJlIGV4cHJlc3NlZCBpbiBHQUVCLiBCeSBkZWZhdWx0LCBwb3NpdGlvbnMgYXJlIGFsd2F5cyBleHBsaWNpdGx5IHJlZmVyZW5jZWQsIGJ1dCBvdGhlciBvcHRpb25zIGFyZSBwb3NzaWJsZS4gUGxlYXNlIGFsc28gbm90ZSB0aGF0IHRoZSBEYW5nbC5BVkEuQ29udmVydGVyIHBhY2thZ2UsIHdoaWNoIGlzIHVzZWQgZm9yIEdBRUIgZXhwb3J0cywgd2lsbCBjaGVjayBpZiB0aGUgZ2l2ZW4gdHlwZSBpcyB2YWxpZCBpbiB0aGUgY3VycmVudCBwcm9qZWN0IGNvbmZpZ3VyYXRpb24uIElmIG5vdCwgZGlyZWN0bHkgcmVmZXJlbmNlZCBwb3NpdGlvbnMgd2lsbCBiZSB1c2VkIGFzIGZhbGxiYWNrLiAqL1xyXG4gICAgZ2FlYkNvbXBsZW1lbnRpbmdUeXBlPzogUG9zaXRpb25Db21wbGVtZW50aW5nVHlwZUR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBIb2xkT3V0IHByb3BlcnRpZXMgZGVzY3JpYmUgc2VydmljZXMgdGhhdCBhcmUgdG8gYmUgcHJvdmlkZWQgYW5kIG1haW50YWluZWQgZm9yIGEgc3BlY2lmaWMgdGltZSwgZS5nLiBmZW5jZXMgb24gYSBjb25zdHJ1Y3Rpb24gc2l0ZS4gKi9cclxuICAgIGhvbGRPdXRQcm9wZXJ0aWVzPzogUG9zaXRpb25Ib2xkT3V0UHJvcGVydGllc0R0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGlzIGFuIGluZm9ybWF0aW9uYWwgcHJvcGVydHksIHdoaWNoIGRpcmVjdGx5IGhvbGRzIGEgbnVtZXJpY2FsIHZhbHVlIGZvciBhbiBlc3RpbWF0ZWQgcXVhbnRpdHkuIEl0IGlzIG5vdCB1c2VkIGZvciBhbnkgcHJpY2UgY2FsY3VsYXRpb25zLiAqL1xyXG4gICAgZXN0aW1hdGVkUXVhbnRpdHk/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpcyBhbiBvcHRpb25hbCBwcm9wZXJ0eSB0aGF0IGhvbGRzIHByaWNlIGNhdGFsb2d1ZSBkYXRhLiBUaGVzZSBhcmUgcHJpY2VzIHRoYXQgbWF5IHJlcHJlc2VudCBhbiBlc3RpbWF0ZSwgYW5kIHRoZXkgdHlwaWNhbGx5IGNvbWUgZnJvbSBhIHByaWNlIGNhdGFsb2d1ZS4gKi9cclxuICAgIHByaWNlQ2F0YWxvZ3VlRGF0YT86IFByaWNlQ2F0YWxvZ3VlRGF0YUR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJZiB0aGlzIGlzIHNldCB0byB0cnVlLCB0aGUgUHJvamVjdENhdGFsb2d1ZXMgcHJvcGVydHkgd2lsbCBub3QgYmUgcHJvcGFnYXRlZCB0byBjaGlsZCBlbGVtZW50cy4gVGhpcyBpcyB1c2VmdWwgaW4gbWFwcGluZyBzY2VuYXJpb3MsIHdoZXJlIHlvdSB3YW50IHRvIGRpc2FibGUgcHJvcGFnYXRpb24gZm9yIG11bHRpcGxlIGNoYW5nZXMsIGFuZCBvbmx5IGVuYWJsZSBpdCBvbmNlIHlvdSBoYXZlIG1hcHBlZCBhbGwgcHJvcGVydGllcy4gKi9cclxuICAgIGlnbm9yZVByb2plY3RDYXRhbG9ndWVQcm9wYWdhdGlvbj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBCYXNlZCBvbiB0aGUgUHJpY2VDb21wb25lbnQsIHRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIGxhYm91ciB0aW1lIGNvbXBvbmVudHMuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGFib3VyUHJpY2VDb21wb25lbnREdG8ge1xyXG4gICAgLyoqIFRoZSBsYWJlbCBhc3NvY2lhdGVkIHdpdGggdGhpcyBwcmljZSBjb21wb25lbnQuIFdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgcGFyZW50IFByb2plY3RzIFByb2plY3RJbmZvcm1hdGlvbi4gKi9cclxuICAgIGxhYmVsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSB0b3RhbCwgY2FsY3VsYXRlZCBwcmljZSBvZiB0aGlzIGNvbXBvbmVudC4gV2lsbCBtdWx0aXBseSB0aGUgY2FsY3VsYXRlZCBhbW91bnQgb2YgaG91cnMgd2l0aCB0aGUgU2VydmljZVNwZWNpZmljYXRpb25zIGhvdXJseSB3YWdlIHJhdGUuICovXHJcbiAgICByZWFkb25seSBwcmljZT86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgY29zdCBwZXIgaG91ciBvZiBtYW51YWwgbGFib3IuICovXHJcbiAgICBob3VybHlXYWdlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBzaW5nbGUgQ2FsY3VsYXRpb24gZWxlbWVudHMgdGhpcyBwcmljZSBjb21wb25lbnQgaXMgY29tcG9zZWQgb2YuICovXHJcbiAgICB2YWx1ZXM/OiBDYWxjdWxhdGlvbkR0b1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgU2VydmljZVNwZWNpZmljYXRpb24ncyBzdGFuZGFyZCBIb3VybHlXYWdlIGlzIHRvIGJlIHVzZWQgb3IgYSBjdXN0b20gdmFsdWUuICovXHJcbiAgICB1c2VPd25Ib3VybHlXYWdlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgdG90YWwsIGNhbGN1bGF0ZWQgdGltZSBvZiB0aGlzIGNvbXBvbmVudC4gV2lsbCByZXR1cm4gdGhlIHJlc3VsdCByb3VuZGVkIHRvIHRocmVlIGRlY2ltYWwgcGxhY2VzLiAqL1xyXG4gICAgcmVhZG9ubHkgdG90YWxUaW1lPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWVzIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgUHJpY2VDb21wb25lbnQuIENhdGFsb2d1ZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiBUaGV5IGFyZSBwcm9wYWdhdGUgdG8gYWxsIGNoaWxkIGVsZW1lbnRzLCBlLmcuIG90aGVyIGNvbnRhaW5lcnMgYW5kIFF1YW50aXR5QXNzaWdubWVudHMuIEluIHRoZSBjb250ZXh0IG9mIGEgU2VydmljZVNwZWNpZmljYXRpb24sIGFsbCBlbGVtZW50cyBzaGFyZSB0aGUgc2FtZSBpbnN0YW5jZSBvZiB0aGUgY29sbGVjdGlvbi4gKi9cclxuICAgIHByb2plY3RDYXRhbG9ndWVzPzogQ2F0YWxvZ3VlRHRvW10gfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBUaGlzIGNsYXNzIGhvbGRzIG1lYW5zIHRvIGNhbGN1bGF0ZSBtYXRoZW1hdGljYWwgZXhwcmVzc2lvbnMgZnJvbSBnaXZlbiBzdHJpbmdzLiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENhbGN1bGF0aW9uRHRvIHtcclxuICAgIC8qKiBEZXNjcmlwdGl2ZSB0ZXh0IGZvciB0aGlzIGNhbGN1bGF0aW9uLiAqL1xyXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBDYWxjdWxhdGlvbidzIG1hdGhlbWF0aWNhbCBleHByZXNzaW9uLiBQbGVhc2Ugbm90ZSB0aGF0IHRob3VzYW5kcyBzZXBhcmF0b3JzIGFyZSBub3Qgc3VwcG9ydGVkLiBCb3RoIGNvbW1hIGFuZCBwb2ludCB3aWxsIGJlIHRyZWF0ZWQgYXMgZGVjaW1hbCBzZXBhcmF0b3JzLiAqL1xyXG4gICAgZm9ybXVsYT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgY2FsY3VsYXRlZCByZXN1bHQgZnJvbSB0aGUgZm9ybXVsYSwgMCBpZiBpbnZhbGlkLiAqL1xyXG4gICAgcmVhZG9ubHkgcmVzdWx0PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFdoZXRoZXIgdGhlIEZvcm11bGEgaXMgYSB2YWxpZCBleHByZXNzaW9uLiAqL1xyXG4gICAgcmVhZG9ubHkgdmFsaWQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFdpbGwgYmUgLTEgaWYgdGhlIEZvcm11bGEgaXMgY29ycmVjdCwgZWxzZSBpdCB3aWxsIHNob3cgdGhlIHBvc2l0aW9uIGluIHRoZSBmb3JtdWxhIHdoZXJlIGFuIGVycm9yIHdhcyBlbmNvdW50ZXJlZC4gVGhpcyBpcyBhIHplcm8gYmFzZWQgaW5kZXguICovXHJcbiAgICByZWFkb25seSBlcnJvclBvc2l0aW9uSW5MaW5lPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWVzIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgQ2FsY3VsYXRpb24uIENhdGFsb2d1ZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiBUaGV5IGFyZSBwcm9wYWdhdGUgdG8gYWxsIGNoaWxkIGVsZW1lbnRzLCBlLmcuIG90aGVyIGNvbnRhaW5lcnMgYW5kIFF1YW50aXR5QXNzaWdubWVudHMuIEluIHRoZSBjb250ZXh0IG9mIGEgU2VydmljZVNwZWNpZmljYXRpb24sIGFsbCBlbGVtZW50cyBzaGFyZSB0aGUgc2FtZSBpbnN0YW5jZSBvZiB0aGUgY29sbGVjdGlvbi4gKi9cclxuICAgIHByb2plY3RDYXRhbG9ndWVzPzogQ2F0YWxvZ3VlRHRvW10gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogUmVmZXJlbmNlZCBjYXRhbG9ndWVzIGZvciB0aGlzIENhbGN1bGF0aW9uLiAqL1xyXG4gICAgY2F0YWxvZ3VlUmVmZXJlbmNlcz86IENhdGFsb2d1ZVJlZmVyZW5jZUR0b1tdIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogVGhpcyBjbGFzcyBwcm92aWRlcyBtZWFucyB0byBzdG9yZSBpbmZvcm1hdGlvbiBhYm91dCBhIHByaWNlIGFuZCBpdCdzIGNvbXBvc2l0aW9uLiBOb3RlIHRoYXQgdGhpcyBpcyByZWZlcmVuY2luZyB0byBhIHNpbmdsZSBwcmljZSBjb21wb25lbnQsIHNvIGZvciBleGFtcGxlIGEgUG9zaXRpb24gd291bGQgaGF2ZSBhIGxpc3Qgb2YgUHJpY2VDb21wb25lbnRzLCBvbmUgZm9yIE1hdGVyaWFsLCBvbmUgZm9yIExhYm91ciBldGMuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJpY2VDb21wb25lbnREdG8ge1xyXG4gICAgLyoqIFRoZSB0b3RhbCwgY2FsY3VsYXRlZCBwcmljZSBvZiB0aGlzIGNvbXBvbmVudC4gKi9cclxuICAgIHJlYWRvbmx5IHByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBsYWJlbCBhc3NvY2lhdGVkIHdpdGggdGhpcyBwcmljZSBjb21wb25lbnQuIFdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgcGFyZW50IFByb2plY3RzIFByb2plY3RJbmZvcm1hdGlvbi4gKi9cclxuICAgIGxhYmVsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBzaW5nbGUgQ2FsY3VsYXRpb24gZWxlbWVudHMgdGhpcyBwcmljZSBjb21wb25lbnQgaXMgY29tcG9zZWQgb2YuICovXHJcbiAgICB2YWx1ZXM/OiBDYWxjdWxhdGlvbkR0b1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWVzIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgUHJpY2VDb21wb25lbnQuIENhdGFsb2d1ZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiBUaGV5IGFyZSBwcm9wYWdhdGUgdG8gYWxsIGNoaWxkIGVsZW1lbnRzLCBlLmcuIG90aGVyIGNvbnRhaW5lcnMgYW5kIFF1YW50aXR5QXNzaWdubWVudHMuIEluIHRoZSBjb250ZXh0IG9mIGEgU2VydmljZVNwZWNpZmljYXRpb24sIGFsbCBlbGVtZW50cyBzaGFyZSB0aGUgc2FtZSBpbnN0YW5jZSBvZiB0aGUgY29sbGVjdGlvbi4gKi9cclxuICAgIHByb2plY3RDYXRhbG9ndWVzPzogQ2F0YWxvZ3VlRHRvW10gfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBUaGlzIGlzIGFwcGVuZGVkIHRvIGEgUG9zaXRpb24gYW5kIGlzIHVzZWQgdG8gc2VwYXJhdGUgdGhlIGNvbXBsZXRlIFBvc2l0aW9uIGludG8gc21hbGxlciBhbW91bnRzIHRvIGJlIGRlc2NyaWJlZCBzZXBhcmF0ZWx5LCBmb3IgZXhhbXBsZSBjb25jcmV0ZSB3YWxscyBjb3VsZCBiZSBhdHRhY2hlZCB0byBkaWZmZXJlbnQgYnVpbGRpbmcgc3RvcmV5cy4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBTdWJEZXNjcmlwdGlvbkR0byB7XHJcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIC8qKiBSZXR1cm5zIHRoZSB0b3RhbCBjYWxjdWxhdGVkIHN1bSBvZiBhbGwgcXVhbnRpdHkgYXNzaWdubWVudHMuIFdpbGwgcmV0dXJuIHRoZSByZXN1bHQgcm91bmRlZCB0byB0aHJlZSBkZWNpbWFsIHBsYWNlcy4gKi9cclxuICAgIHJlYWRvbmx5IHF1YW50aXR5PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFlvdSBjYW4gdXNlIHRoaXMgcHJvcGVydHkgdG8gZGlyZWN0bHkgc2V0IHRoZSBxdWFudGl0eSBmb3IgdGhpcyBzdWIgZGVzY3JpcHRpb24uIFRoaXMgd2lsbCBvdmVycmlkZSBhbnkgZ2l2ZW4gUXVhbnRpdHlDb21wb25lbnRzICovXHJcbiAgICBxdWFudGl0eU92ZXJyaWRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEhvbGRzIHF1YW50aXR5IGluZm9ybWF0aW9uIGZvciB0aGlzIHN1YiBkZXNjcmlwdGlvbi4gUXVhbnRpdHkgaXMgbGlzdGVuaW5nIHRvIGNoYW5nZXMgaGVyZSBhbmQgaXMgcmVwb3J0aW5nIHRoZSB0b3RhbCBzdW0gb2YgYWxsIHF1YW50aXR5IGNvbXBvbmVudHMuICovXHJcbiAgICBxdWFudGl0eUNvbXBvbmVudHM/OiBDYWxjdWxhdGlvbkR0b1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgYmlkZGVyIGlzIGFza2VkIHRvIHNwZWNpZnkgYW4gYW1vdW50LiAqL1xyXG4gICAgYW1vdW50VG9CZUVudGVyZWRCeUJpZGRlcj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSWRlbnRpZmllciBmb3IgdGhpcyBTdWJEZXNjcmlwdGlvbi4gKi9cclxuICAgIGlkZW50aWZpZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogU2hvcnQgZGVzY3JpcHRpb24gZm9yIHRoaXMgRGVzY3JpcHRpb25CYXNlIGVsZW1lbnQuICovXHJcbiAgICBzaG9ydFRleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogRGV0YWlsZWQgZGVzY3JpcHRpb24gZm9yIHRoaXMgRGVzY3JpcHRpb25CYXNlIGVsZW1lbnQuIFdoZW4gdGhlIEh0bWxMb25nVGV4dCBpcyBzZXQsIHRoaXMgaXMgYXV0b21hdGljYWxseSBvdmVyd3JpdHRlbiBhbmQgZmlsbGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIHBsYWluIHRleHQgcmVwcmVzZW50YXRpb24gb2YgdGhlIEh0bWwgdGV4dC4gVmljZSB2ZXJzYSwgc2V0dGluZyB0aGlzIHByb3BlcnR5IG92ZXJyaWRlcyB0aGUgSHRtbExvbmdUZXh0LiAqL1xyXG4gICAgbG9uZ1RleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSWYgdGhpcyBpcyBnaXZlbiwgdGhlbiB0aGUgc3ViIGRlc2NyaXB0aW9uIGhhcyBhIGRpZmZlcmVudCB1bml0IHRhZyB0aGFuIHRoZSBwYXJlbnQgcG9zaXRpb24uICovXHJcbiAgICB1bml0VGFnPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgY29udGFpbnMgdGhlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIExvbmd0ZXh0LiBXaGVuIHRoZSBMb25nVGV4dCBpcyBzZXQsIHRoaXMgaXMgYXV0b21hdGljYWxseSBvdmVyd3JpdHRlbiBhbmQgZmlsbGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBsYWludGV4dC4gVmljZSB2ZXJzYSwgc2V0dGluZyB0aGlzIHByb3BlcnR5IG92ZXJyaWRlcyB0aGUgTG9uZ1RleHQuIEdBRUIgOTAgYW5kIEdBRUIgMjAwMCBleHBvcnRzIGRvIG5vdCBzdXBwb3J0IGFueSBpbWFnZSBmdW5jdGlvbmFsaXR5LiBJbiBHQUVCIFhNTCwgb25seSBpbWFnZXMgdGhhdCB1c2UgYW4gZW1iZWRkZWQgQmFzZTY0IGRhdGEgdXJpIGFyZSBleHBvcnRlZCwgcmVndWxhciB1cmwgcmVmZXJlbmNlcyBhcmUgY2xlYXJlZCBiZWZvcmUgd3JpdHRlbiBvdXQuICovXHJcbiAgICBodG1sTG9uZ1RleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoaXMgRGVzY3JpcHRpb25CYXNlIGVsZW1lbnQgY29udGFpbnMgQnV5ZXIgb3IgQmlkZGVyIGFkZGl0aW9ucyB0byB0aGUgdGV4dC4gKi9cclxuICAgIGFkZGl0aW9uVHlwZT86IEFkZGl0aW9uVHlwZUR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHJlcHJlc2VudHMgYSBzdGFuZGFyZGl6ZWQgZGVzY3JpcHRpb24uIFRoaXMgbWVhbnMgdGhhdCBpbnN0ZWFkIG9mIHNvbGVseSByZWx5aW5nIG9uIHRleHRzIHRvIGRlc2NyaWJlIGEgc2VydmljZSwgZXh0ZXJuYWwgc3RhbmRhcmRzIGFuZCBkZWZpbml0aW9ucyBhcmUgcmVmZXJlbmNlZCBmb3IgYSBjb21tb24gdW5kZXJzdGFuZGluZy4gKi9cclxuICAgIHN0YW5kYXJkaXplZERlc2NyaXB0aW9uPzogU3RhbmRhcmRpemVkRGVzY3JpcHRpb25EdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpZGVudGlmaWVyIGNhbiBiZSB1c2VkIHRvIHBvaW50IHRvIHRoZSBJZCBvZiBhbiBFeGVjdXRpb25EZXNjcmlwdGlvbiBpbiB0aGUgc2FtZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gRXhlY3V0aW9uRGVzY3JpcHRpb25zIGFjdCBhcyBhIHdheSB0byBjZW50cmFsbHkgZGVzY3JpYmUgaG93IHBvc2l0aW9ucyAob3Igc3ViIGRlc2NyaXB0aW9ucykgc2hvdWxkIGJlIGV4ZWN1dGVkIGluIHByYWN0aWNlLiBPZnRlbiwgdGhlIHBvc2l0aW9uIChvciBzdWIgZGVzY3JpcHRpb24pIGl0c2VsZiBzdGlsbCBoYXMgdGV4dCBvZiBpdHMgb3duIHRvIGhpZ2hsaWdodCBkZXZpYXRpb25zIGZyb20gdGhhdCBvciBhZGQgbW9yZSBkZXRhaWxzLiBXaGVuIHdvcmtpbmcgd2l0aCBpbXBvcnQgYW5kIGV4cG9ydCBmZWF0dXJlcywgdGhpcyBwcm9wZXJ0eSBpcyBvbmx5IHN1cHBvcnRlZCBpbiBHQUVCIDkwIGRhdGEgZXhjaGFuZ2UuICovXHJcbiAgICBleGVjdXRpb25EZXNjcmlwdGlvblJlZmVyZW5jZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGVzZSBhcmUgQ2F0YWxvZ3VlcyB0aGF0IGFyZSB1c2VkIHdpdGhpbiB0aGlzIENhbGN1bGF0aW9uLiBDYXRhbG9ndWVzIGFyZSB1c2VkIHRvIGRlc2NyaWJlIGNhdGFsb2d1ZXMsIG9yIGNvbGxlY3Rpb25zLCB0aGF0IGNhbiBiZSB1c2VkIHRvIGRlc2NyaWJlIGVsZW1lbnRzIHdpdGggY29tbW9ubHkga25vd24gcHJvcGVydGllcy4gRm9yIGV4YW1wbGUsIFF1YW50aXR5QXNzaWdubWVudHMgdXNlIHRoZXNlIHRvIGNhdGVnb3JpemUgdGhlbXNlbHZlcy4gVGhleSBhcmUgcHJvcGFnYXRlIHRvIGFsbCBjaGlsZCBlbGVtZW50cywgZS5nLiBvdGhlciBjb250YWluZXJzIGFuZCBRdWFudGl0eUFzc2lnbm1lbnRzLiBJbiB0aGUgY29udGV4dCBvZiBhIFNlcnZpY2VTcGVjaWZpY2F0aW9uLCBhbGwgZWxlbWVudHMgc2hhcmUgdGhlIHNhbWUgaW5zdGFuY2Ugb2YgdGhlIGNvbGxlY3Rpb24uICovXHJcbiAgICBwcm9qZWN0Q2F0YWxvZ3Vlcz86IENhdGFsb2d1ZUR0b1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaXMgYW4gaWRlbnRpZmllciBzcGVjaWZpYyBmb3IgdGhpcyBkZXNjcmlwdGlvbi4gU29tZSBleGNoYW5nZSBmb3JtYXRzLCBsaWtlIEdBRUIgWE1MLCB1c2UgaXQgdG8gaWRlbnRpZnkgZGVzY3JpcHRpb25zLiBJdCdzIGRpZmZlcmVudCB0byBhbiBlbGVtZW50cyBpZGVudGlmaWVyIGluIHRoYXQgaXQgc2hvdWxkIG9ubHkgYXBwbHkgdG8gdGhlIGRlc2NyaXB0aW9uIGNvbXBvbmVudCwgbWVhbmluZyB0aGUgdGV4dCBpdHNlbGYuICovXHJcbiAgICBkZXNjcmlwdGlvbklkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgcmVhZG9ubHkgaGFzQmlkZGVyQ29tbWVudEluSHRtbExvbmdUZXh0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIGVsZW1lbnRUeXBlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgZWxlbWVudFR5cGVEaXNjcmltaW5hdG9yPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogSW5kaWNhdGVzIHRoZSBvcmlnaW4gb2YgYW4gZWxlbWVudC4gKi9cclxuZXhwb3J0IGVudW0gQWRkaXRpb25UeXBlRHRvIHtcclxuICAgIE5vbmUgPSBcIk5vbmVcIixcclxuICAgIEJ5QnV5ZXIgPSBcIkJ5QnV5ZXJcIixcclxuICAgIEJ5QmlkZGVyID0gXCJCeUJpZGRlclwiLFxyXG59XHJcblxyXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIGEgc3RhbmRhcmRpemVkIGRlc2NyaXB0aW9uLiBUaGlzIG1lYW5zIHRoYXQgaW5zdGVhZCBvZiBzb2xlbHkgcmVseWluZyBvbiB0ZXh0cyB0byBkZXNjcmliZSBhIHNlcnZpY2UsIGV4dGVybmFsIHN0YW5kYXJkcyBhbmQgZGVmaW5pdGlvbnMgYXJlIHJlZmVyZW5jZWQgZm9yIGEgY29tbW9uIHVuZGVyc3RhbmRpbmcuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RhbmRhcmRpemVkRGVzY3JpcHRpb25EdG8ge1xyXG4gICAgLyoqIFRoaXMgZW51bWVyYXRpb24gaWRlbnRpZmllcyBhIHByZS1rbm93biBzdGFuZGFyZCB1c2VkIGZvciByZWZlcmVuY2luZyBzdGFuZGFyZGl6ZWQgZGVzY3JpcHRpb25zLiAqL1xyXG4gICAgc3RhbmRhcmRSZWZlcmVuY2VUeXBlPzogU3RhbmRhcmRSZWZlcmVuY2VUeXBlRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgc3RyaW5nIHByb3BlcnR5IGlzIHRoZSBpZGVudGlmaWVyIHRvIG1hcCB0byB0aGUgcmVmZXJlbmNlcyBzdGFuZGFyZC4gSXRzIHR5cGUgaXMgZ2l2ZW4gaW4gdGhlIFN0YW5kYXJkUmVmZXJlbmNlVHlwZSAqL1xyXG4gICAgc3RhbmRhcmRSZWZlcmVuY2U/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpcyBhIHNwZWNpYWwgcmVmZXJlbmNlIHRvIHRoZSBHZXJtYW4gU1RMQiBcIlN0YW5kYXJkbGVpc3R1bmdzYnVjaCBCYXVcIiByZWZlcmVuY2UuIElmIHRoaXMgaXMgdXNlZCwgdGhlIFN0YW5kYXJkUmVmZXJlbmNlIHByb3BlcnR5IHNob3VsZCBub3QgYmUgc2V0LiAqL1xyXG4gICAgc3RsYlJlZmVyZW5jZT86IFNUTEJSZWZlcmVuY2VEdG8gfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBUaGlzIGVudW1lcmF0aW9uIGlkZW50aWZpZXMgYSBwcmUta25vd24gc3RhbmRhcmQgdXNlZCBmb3IgcmVmZXJlbmNpbmcgc3RhbmRhcmRpemVkIGRlc2NyaXB0aW9ucy4gKi9cclxuZXhwb3J0IGVudW0gU3RhbmRhcmRSZWZlcmVuY2VUeXBlRHRvIHtcclxuICAgIFVua25vd24gPSBcIlVua25vd25cIixcclxuICAgIFN0TEIgPSBcIlN0TEJcIixcclxuICAgIFN0TEsgPSBcIlN0TEtcIixcclxuICAgIFNUTEJCYXVaID0gXCJTVExCQmF1WlwiLFxyXG59XHJcblxyXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIGEgc3BlY2lhbGl6ZWQgcmVmZXJlbmNlIHRvIHRoZSBHZXJtYW4gU1RMQiBcIlN0YW5kYXJkbGVpc3R1bmdzYnVjaCBCYXVcIi4gVGhlIFNUTEIgaXMgYSBjb21tZXJjaWFsIG9mZmVyaW5nIGFuZCBkZXNjcmliZXMgY29tbW9uIHNlcnZpY2VzIGluIHRoZSBjb25zdHJ1Y3Rpb24gc2VjdG9yLiBXaGVuIHRoaXMgaXMgdXNlZCwgdGhpcyBkZXNjcmliZXMgdGhlIGV4YWN0IHR5cGUgb2YgYSBzZXJ2aWNlIHZpYSBhIHJlZmVyZW5jZSB0byB0aGlzIHN0YW5kYXJkICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgU1RMQlJlZmVyZW5jZUR0byB7XHJcbiAgICAvKiogVGhlIGRhdGUgb2YgdGhlIFNUTEIgdmVyc2lvbi4gVHlwaWNhbGx5LCBvbmx5IHRoZSBZZWFyIGFuZCBNb250aCBhcmUgdXNlZCAqL1xyXG4gICAgdmVyc2lvbkRhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoZSBjYXRhbG9ndWUgd2l0aGluIHRoZSBTVExCICovXHJcbiAgICBjYXRhbG9ndWVOYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoZSBncm91cCBpbiBTVExCICovXHJcbiAgICBncm91cD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgY29zdCBncm91cCB0aGlzIHNlcnZpY2UgaXMgYXNzb2NpYXRlZCB3aXRoICovXHJcbiAgICBjb3N0R3JvdXA/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIHNlcnZpY2UgYXJlYSAob3IgdHlwZSkgaW4gdGhlIFNUTEIgKi9cclxuICAgIHNlcnZpY2VBcmVhPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZXNlIGtleXMgbWF5IG9wdGlvbmFsbHkgYmUgdXNlZCB0byBmdXJ0aGVyIHJlZmVyZW5jZSBtdWx0aXBsZSwgc3BlY2lmaWMgaXRlbXMgd2l0aGluIHRoZSBTVExCICovXHJcbiAgICBrZXlzPzogU1RMQktleUR0b1tdIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIGEgc2luZ2xlIGtleSByZWZlcmVuY2Ugd2l0aGluIHRoZSBHZXJtYW4gU1RMQiBcIlN0YW5kYXJkbGVpc3R1bmdzYnVjaCBCYXVcIiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFNUTEJLZXlEdG8ge1xyXG4gICAgLyoqIFRoaXMgaWRlbnRpZmllciBpcyByZXF1aXJlZCBhbmQgdW5pcXVlbHkgZGVzY3JpYmVzIGEgc2luZ2xlIHJlZmVyZW5jZSB3aXRoaW4gdGhlIFNUTEIgc3RhbmRhcmQuIEl0IG1hcHMgdG8gXCJBcnRDaHJJZGVudFwiIGluIEdBRUIgWE1MICovXHJcbiAgICBhcnRJZGVudGlmaWVyPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgb3B0aW9uYWwgaW5kZXggcHJvcGVydHkgZnVydGhlciBjYXRlZ29yaXplcyBhIHNpbmdsZSByZWZlcmVuY2Ugd2l0aGluIHRoZSBTVExCIHN0YW5kYXJkLiBJdCBtYXBzIHRvIFwiQXJ0Q2hJZHhcIiBpbiBHQUVCIFhNTCAqL1xyXG4gICAgYXJ0SW5kZXg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBvcHRpb25hbCBpZGVudGlmaWVyIGZ1cnRoZXIgc3BlY2lmaWVzIHRoZSBleGVjdXRpb24ga2luZCBvZiB0aGUgcmVmZXJlbmNlIGluIHRoZSBTVExCIHN0YW5kYXJkLiBJdCBtYXBzIHRvIFwiQ2hWSWRlbnRcIiBpbiBHQUVCIFhNTCAqL1xyXG4gICAga2luZElkZW50aWZpZXI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBJbmRpY2F0ZXMgaWYgdGhpcyBzZXJ2aWNlIHNwZWNpZmljYXRpb24gaXRlbSBpcyBjb21taXNzaW9uZWQgKGFuZCB0aGVyZWZvcmUgc2hvdWxkIGJlIGV4ZWN1dGVkKSwgcG9zdHBvbmVkIGZvciBsYXRlciBvciB1bmRlZmluZWQuICovXHJcbmV4cG9ydCBlbnVtIENvbWlzc2lvblN0YXR1c0R0byB7XHJcbiAgICBVbmRlZmluZWQgPSBcIlVuZGVmaW5lZFwiLFxyXG4gICAgQ29tbWlzc2lvbmVkID0gXCJDb21taXNzaW9uZWRcIixcclxuICAgIFBvc3Rwb25lZCA9IFwiUG9zdHBvbmVkXCIsXHJcbiAgICBSZW1vdmVkID0gXCJSZW1vdmVkXCIsXHJcbn1cclxuXHJcbi8qKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgYXMgaWRlbnRpZmllciBvZiBhIGNlcnRhaW4gc2VydmljZSBzcGVjaWZpY2F0aW9uJ3MgZWxlbWVudCBhbmQgaXMgdW5pcXVlbHkgd2l0aGluIHRoZSBzZXJ2aWNlIHNwZWNpZmljYXRpb24uICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgSXRlbU51bWJlckR0byB7XHJcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIC8qKiBXaWxsIHJldHVybiB0aGlzIEl0ZW1OdW1iZXIgYXMgcG9pbnQgZGVsaW1pdGVkIHN0cmluZy4gV2lsbCBub3QgZGlzdGluZ3Vpc2ggYmV0d2VlbiB1cHBlci0gYW5kIGxvd2VyY2FzZSBhbmQgcmV0dXJuIGFuIGFsbC1sb3dlcmNhc2UgcmVwcmVzZW50YXRpb24uIFdpbGwgY29uc2lkZXIgZmlyc3QgbnVtYmVycywgdGhlbiBjaGFyYWN0ZXJzLCBlLmcuIDFhIGlzIGNvbnNpZGVyZWQgcHJlY2VkaW5nIGFhLiBUcmFuc2Zvcm1hdGlvbiB0byBhbGwgbG93ZXJjYXNlIGNhbiBiZSBjb25maWd1cmVkIGluIHRoZSBJdGVtTnVtYmVyU2NoZW1hIHByb3BlcnR5LiAqL1xyXG4gICAgc3RyaW5nUmVwcmVzZW50YXRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBjaGFyYWN0ZXJzIGFuZCB0aGUgbGVuZ3RoIG9mIHRoZSBJZGVudGlmaWVycyBtYXRjaCB0aGUgY3VycmVudCBJdGVtTnVtYmVyU2NoZW1hLiAqL1xyXG4gICAgcmVhZG9ubHkgaXNTY2hlbWFDb21wbGlhbnQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFVzZWQgZm9yIHJlcHJlc2VudGluZyBhbmQgdmFsaWRhdGluZyB0aGlzIEl0ZW1OdW1iZXIuICovXHJcbiAgICBpdGVtTnVtYmVyU2NoZW1hPzogSXRlbU51bWJlclNjaGVtYUR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBDb2xsZWN0aW9uIG9mIHRoZSBzaW5nbGUgaWRlbnRpZmllcnMgaW4gdGhpcyBJdGVtTnVtYmVyLiBQLmUuLCBcIjAyLjAzLjAwNFwiIHdpbGwgaGF2ZSB0aHJlZSBlbGVtZW50cyBcIjAyXCIsIFwiMDNcIiwgYW5kIFwiMDA0XCIuIFNpbmNlIFJlYWRPbmx5T2JzZXJ2YWJsZUNvbGxlY3Rpb25gMSBkb2VzIGhhdmUgdGhlIGV2ZW50IHNldCB0byBwcm90ZWN0ZWQsIGl0IGNhbiBiZSBhY2Nlc3NlZCBsaWtlIHRoaXM6IChpdGVtTnVtYmVyLklkZW50aWZpZXJzIGFzIElOb3RpZnlDb2xsZWN0aW9uQ2hhbmdlZCkuQ29sbGVjdGlvbkNoYW5nZWQgKi9cclxuICAgIGlkZW50aWZpZXJzPzogc3RyaW5nW10gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgaWYgdGhpcyBpdGVtIG51bWJlciBpcyBhdCB0aGUgbG90IGxldmVsLiBGaW5kIG91dCBtb3JlIGFib3V0IGxvdHMgaW4gdGhlIGRvY3VtZW50YXRpb24uICovXHJcbiAgICByZWFkb25seSBpc0xvdD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpcyBhIHplcm8gYmFzZWQgaGllcmFyY2h5IGxldmVsLiBJdCdzIHNldCBhdXRvbWF0aWNhbGx5IHdoZW4gdXNlZCBpbiB0aGUgY29udGV4dCBvZiBhIFByb2plY3QsIGFuZCBjYW4gYmUgdXNlZCB0byBpZGVudGlmeSB0aGUgaGllcmFyY2h5IGxldmVsIG9mIHRoZSBjdXJyZW50IGVsZW1lbnQuICovXHJcbiAgICBoaWVyYXJjaHlMZXZlbD86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHByb3BlcnR5IGluZGljYXRlcyBpZiB0aGlzIEl0ZW1OdW1iZXIgaXMgYXR0YWNoZWQgdG8gYW4gb2JqZWN0IG9mIHRoZSBQb3NpdGlvbiB0eXBlLiAqL1xyXG4gICAgcmVhZG9ubHkgaXNBdHRhY2hlZFRvUG9zaXRpb24/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgaXRlbU51bWJlclNjaGVtYUJlZm9yZU1hcHBpbmc/OiBJdGVtTnVtYmVyU2NoZW1hRHRvIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogVGhpcyBpcyBhIGNsYXNzaWZpY2F0aW9uIGZvciBQb3NpdGlvbiBlbGVtZW50cy4gKi9cclxuZXhwb3J0IGVudW0gUG9zaXRpb25UeXBlRHRvIHtcclxuICAgIFJlZ3VsYXIgPSBcIlJlZ3VsYXJcIixcclxuICAgIE9wdGlvbmFsID0gXCJPcHRpb25hbFwiLFxyXG4gICAgQWx0ZXJuYXRpdmUgPSBcIkFsdGVybmF0aXZlXCIsXHJcbn1cclxuXHJcbi8qKiBUaGlzIGluZGljYXRlcyB0aGUgcHJpY2UgdHlwZSBvZiBhIElQcmljZWRFbGVtZW50LiAqL1xyXG5leHBvcnQgZW51bSBQcmljZVR5cGVEdG8ge1xyXG4gICAgV2l0aFRvdGFsID0gXCJXaXRoVG90YWxcIixcclxuICAgIFdpdGhvdXRUb3RhbCA9IFwiV2l0aG91dFRvdGFsXCIsXHJcbn1cclxuXHJcbi8qKiBUaGUgc2VydmljZSB0eXBlIGRlc2NyaWJlcyB0aGUgdHlwZSBvZiBzZXJ2aWNlIGEgUG9zaXRpb24gcmVwcmVzZW50cy4gKi9cclxuZXhwb3J0IGVudW0gU2VydmljZVR5cGVEdG8ge1xyXG4gICAgUmVndWxhciA9IFwiUmVndWxhclwiLFxyXG4gICAgSG91cmx5UGFpZFdvcmsgPSBcIkhvdXJseVBhaWRXb3JrXCIsXHJcbn1cclxuXHJcbi8qKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgZGF0YSBhYm91dCBwcm9kdWN0cyBhbmQgdGhlaXIgdmVuZG9yICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdERhdGFEdG8ge1xyXG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICAvKiogVGhpcyBQYXJ0eUluZm9ybWF0aW9uIGlzIHVzZWQgdG8gZGVzY3JpYmUgZGV0YWlscyBhYm91dCB0aGUgdmVuZG9yIG9mIHRoaXMgUHJvZHVjdERhdGEuICovXHJcbiAgICB2ZW5kb3I/OiBQYXJ0eUluZm9ybWF0aW9uRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBjb2xsZWN0aW9uIG9mIEFydGljbGVEYXRhIHRoYXQgZGVzY3JpYmUgdGhpcyBwcm9kdWN0LCBlLmcuIGEgcGlwZSBwcm9kdWN0IGNvdWxkIGJlIGNvbXBvc2VkIG91dCBvZiBtdWx0aXBsZSBwaXBlIHNlZ21lbnRzIGFuZCBmaXR0aW5ncy4gKi9cclxuICAgIGFydGljbGVzPzogQXJ0aWNsZURhdGFEdG9bXSB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBTaG9ydCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBJVGV4dEVsZW1lbnQgZWxlbWVudC4gKi9cclxuICAgIHNob3J0VGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBEZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBJVGV4dEVsZW1lbnQgZWxlbWVudC4gV2hlbiB0aGUgSHRtbExvbmdUZXh0IGlzIHNldCwgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IG92ZXJ3cml0dGVuIGFuZCBmaWxsZWQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgcGxhaW4gdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgSHRtbCB0ZXh0LiBWaWNlIHZlcnNhLCBzZXR0aW5nIHRoaXMgcHJvcGVydHkgb3ZlcnJpZGVzIHRoZSBIdG1sTG9uZ1RleHQuICovXHJcbiAgICBsb25nVGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGNvbnRhaW5zIHRoZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBMb25ndGV4dC4gV2hlbiB0aGUgTG9uZ1RleHQgaXMgc2V0LCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgb3ZlcndyaXR0ZW4gYW5kIGZpbGxlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwbGFpbnRleHQuIFZpY2UgdmVyc2EsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgdGhlIExvbmdUZXh0LiBHQUVCIDkwIGFuZCBHQUVCIDIwMDAgZXhwb3J0cyBkbyBub3Qgc3VwcG9ydCBhbnkgaW1hZ2UgZnVuY3Rpb25hbGl0eS4gSW4gR0FFQiBYTUwsIG9ubHkgaW1hZ2VzIHRoYXQgdXNlIGFuIGVtYmVkZGVkIEJhc2U2NCBkYXRhIHVyaSBhcmUgZXhwb3J0ZWQsIHJlZ3VsYXIgdXJsIHJlZmVyZW5jZXMgYXJlIGNsZWFyZWQgYmVmb3JlIHdyaXR0ZW4gb3V0LiAqL1xyXG4gICAgaHRtbExvbmdUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIGEgc2luZ2xlIGFydGljbGUsIHVzdWFsbHkgdXNlZCB3aXRoaW4gUHJvZHVjdERhdGEgKi9cclxuZXhwb3J0IGludGVyZmFjZSBBcnRpY2xlRGF0YUR0byB7XHJcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIC8qKiBUaGUgbmFtZSAob3IgYnJhbmQgbmFtZSkgZm9yIHRoaXMgYXJ0aWNsZSwgdXN1YWxseSBnaXZlbiBieSB0aGUgc3VwcGxpZXIgb3IgdmVuZG9yLiAqL1xyXG4gICAgbmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBBbiBhcnRpY2xlIG51bWJlciB0aGF0IGRlc2NyaWJlcyBpdCwgdXNlZnVsIHdoZW4gaW50ZWdyYXRpbmcgb3RoZXIgc3lzdGVtcy4gKi9cclxuICAgIGFydGljbGVOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogUXVhbnRpdHkgZm9yIHRoaXMgYXJ0aWNsZS4gSWYgdGhpcyBpcyB1c2VkIHdpdGhpbiBhIFBvc2l0aW9uLCB0aGUgcXVhbnRpdHkgaGVyZSBzaG91bGQgYmUgdGhlIHF1YW50aXR5IHJlcXVpcmVkIGZvciB0aGUgZnVsbCBxdWFudGl0eSBvZiB0aGUgcG9zaXRpb24sIG5vdCBmb3IgYSBzaW5nbGUgdW5pdC4gKi9cclxuICAgIHF1YW50aXR5PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSB1bml0IHRhZyBmb3IgdGhpcyBzaW5nbGUgQXJ0aWNsZURhdGEuICovXHJcbiAgICB1bml0VGFnPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaXMgYW4gb3B0aW9uYWwgdGV4dCBlbGVtZW50IHRoYXQgY2FuIGJlIHVzZWQgdG8gZnVydGhlciBkZXNjcmliZSB0aGUgQXJ0aWNsZURhdGEuICovXHJcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBTaG9ydCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBJVGV4dEVsZW1lbnQgZWxlbWVudC4gKi9cclxuICAgIHNob3J0VGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBEZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBJVGV4dEVsZW1lbnQgZWxlbWVudC4gV2hlbiB0aGUgSHRtbExvbmdUZXh0IGlzIHNldCwgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IG92ZXJ3cml0dGVuIGFuZCBmaWxsZWQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgcGxhaW4gdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgSHRtbCB0ZXh0LiBWaWNlIHZlcnNhLCBzZXR0aW5nIHRoaXMgcHJvcGVydHkgb3ZlcnJpZGVzIHRoZSBIdG1sTG9uZ1RleHQuICovXHJcbiAgICBsb25nVGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGNvbnRhaW5zIHRoZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBMb25ndGV4dC4gV2hlbiB0aGUgTG9uZ1RleHQgaXMgc2V0LCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgb3ZlcndyaXR0ZW4gYW5kIGZpbGxlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwbGFpbnRleHQuIFZpY2UgdmVyc2EsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgdGhlIExvbmdUZXh0LiBHQUVCIDkwIGFuZCBHQUVCIDIwMDAgZXhwb3J0cyBkbyBub3Qgc3VwcG9ydCBhbnkgaW1hZ2UgZnVuY3Rpb25hbGl0eS4gSW4gR0FFQiBYTUwsIG9ubHkgaW1hZ2VzIHRoYXQgdXNlIGFuIGVtYmVkZGVkIEJhc2U2NCBkYXRhIHVyaSBhcmUgZXhwb3J0ZWQsIHJlZ3VsYXIgdXJsIHJlZmVyZW5jZXMgYXJlIGNsZWFyZWQgYmVmb3JlIHdyaXR0ZW4gb3V0LiAqL1xyXG4gICAgaHRtbExvbmdUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogUXVhbnRpdHkgYXNzaWdubWVudHMgYXJlLCBpbiBjb250cmFzdCB0byBTdWJEZXNjcmlwdGlvbnMsIHVzZWQgdG8gY2F0ZWdvcml6ZSBwYXJ0cyBvZiB0aGVpciBwYXJlbnQgUG9zaXRpb24uIEZvciBleGFtcGxlLCBpdCBjb3VsZCBiZSBjYXRlZ29yaXplZCBieSBjb3N0IGdyb3VwIC0gZS5nLiBhIFBvc2l0aW9uIGRlc2NyaWJpbmcgY29uY3JldGUgd2FsbHMgY291bGQgZm9sbG93IHRoZSBHZXJtYW4gRElOIDI3NiBDb3N0IEdyb3VwcyBTdGFuZGFyZCBhbmQgc3BlY2lmeSB0aGF0IG9mIHRoZSB0b3RhbCAxLjAwMG3CsiB3YWxsLCA1MDBtwrIgYXJlIGNsYXNzaWZpZWQgYXMgZXh0ZXJpb3Igd2FsbHMgYW5kIDUwMG3CsiBhcmUgY2xhc3NpZmllZCBhcyBpbnRlcmlvciB3YWxscy4gVGhleSB3b3VsZCB0aGVuIGhhdmUgZGlmZmVyZW50IGNvc3QgZ3JvdXBzIGFzc29jaWF0ZWQsIGUuZy4gZm9yIGFjY291bnRpbmcgcHVycG9zZXMuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUXVhbnRpdHlBc3NpZ25tZW50RHRvIHtcclxuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgLyoqIFRoZSB0b3RhbCBxdWFudGl0eSBpbiB0aGlzIHF1YW50aXR5IGFzc2lnbm1lbnQgKi9cclxuICAgIHF1YW50aXR5PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWUgdGhhdCBhcmUgdXNlZCB3aXRoaW4gdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gQ2F0YWxvZ3VlIHJlZmVyZW5jZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiAqL1xyXG4gICAgcHJvamVjdENhdGFsb2d1ZXM/OiBDYXRhbG9ndWVEdG9bXSB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBSZWZlcmVuY2VkIGNhdGFsb2d1ZXMgZm9yIHRoaXMgUXVhbnRpdHlBc3NpZ25tZW50LiAqL1xyXG4gICAgY2F0YWxvZ3VlUmVmZXJlbmNlcz86IENhdGFsb2d1ZVJlZmVyZW5jZUR0b1tdIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogVGhpcyBjbGFzcyBob2xkcyBzcGVjaWFsaXplZCBpbmZvcm1hdGlvbiB0aGF0IGlzIHJlbGV2YW50IHRvIHRyYWRlIG9yIGNvbW1lcmNlIGJhc2VkIGRhdGEgZXhjaGFuZ2Ugc2NlbmFyaW9zLCBlLmcuIGJldHdlZW4gY3VzdG9tZXJzLCB2ZW5kb3JzLCBzdXBwbGllcnMgYW5kIGRpc3RyaWJ1dG9ycy4gSXQgaXMgdXNlZCB3aGVuIGV4cG9ydGluZyB0byBHQUVCIFhNTCA5eCBleGNoYW5nZSBwaGFzZXMuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWVyY2VQcm9wZXJ0aWVzRHRvIHtcclxuICAgIC8qKiBUaGlzIG1hcHMgdG8gQXJ0Tm8gaW4gR0FFQiBYTUwgYW5kIHJlcHJlc2VudHMgYW4gYXJ0aWNsZSBudW1iZXIgZ2l2ZW4gYnkgdGhlIHN1cHBsaWVyLiAqL1xyXG4gICAgYXJ0aWNsZU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIG1hcHMgdG8gRUFOIGluIEdBRUIgWE1MIGFuZCByZXByZXNlbnRzIGFuIEdUSU4gKGZvcm1lcmx5IEVBTikgYXJ0aWNsZSBudW1iZXIuICovXHJcbiAgICBlYW5HdGluQXJ0aWNsZU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIG1hcHMgdG8gQXJ0Tm9JRCBpbiBHQUVCIFhNTCBhbmQgcmVwcmVzZW50cyBhbiBJTE4gYXJ0aWNsZSBudW1iZXIuICovXHJcbiAgICBpbG5BcnRpY2xlTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgbWFwcyB0byBDYXRhbG9nTm8gaW4gR0FFQiBYTUwgYW5kIHJlcHJlc2VudHMgYW4gaWRlbnRpZmllciBvZiBhIHNwZWNpZmljIGNhdGFsb2d1ZS4gVGhlIHJlZmVyZW5jZWQgY2F0YWxvZ3VlIGlzIHVzdWFsbHkgYSBjdXN0b21lciBzcGVjaWZpYyBvbmUsIG5vdCByZWxhdGVkIHRvIENhdGFsb2d1ZVJlZmVyZW5jZXMuICovXHJcbiAgICBjYXRhbG9ndWVOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBtYXBzIHRvIENhdGFsb2dBcnRObyBpbiBHQUVCIFhNTCBhbmQgcmVwcmVzZW50cyBhIGtleSB0aGF0IG1hcHMgdG8gYW4gZW50cnkgaW4gYSBzcGVjaWZpYyBjYXRhbG9ndWUuIFRoZSByZWZlcmVuY2VkIGNhdGFsb2d1ZSBpcyB1c3VhbGx5IGEgY3VzdG9tZXIgc3BlY2lmaWMgb25lLCBub3QgcmVsYXRlZCB0byBDYXRhbG9ndWVSZWZlcmVuY2VzLiAqL1xyXG4gICAgY2F0YWxvZ3VlQXJ0aWNsZU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIG9wdGlvbmFsIHByb3BlcnR5IGNhbiBiZSB1c2VkIHRvIGluZGljYXRlIHRoZSBiYXNpcyBmb3IgcHJpY2VzIGZvciBhIHNpbmdsZSBwb3NpdGlvbi4gUHJpY2UgYmFzaXMgbWVhbnMgdGhhdCB0aGUgcHJpY2UgaXMgZ2l2ZW4gcGVyIHVuaXQgb2YgdGhlIGJhc2lzLCBlLmcuIHBlciBhIHBhY2sgb2YgZml2ZSB3aGVuIHRoaXMgcHJvcGVydHkgaXMgc2V0IHRvICc1Jy4gKi9cclxuICAgIHByaWNlQmFzaXM/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBvcHRpb25hbCBwcm9wZXJ0eSBjYW4gYmUgdXNlZCB0byBpbmRpY2F0ZSBhIHN1YiBwb3NpdGlvbiBpZGVudGlmaWVyIHNwZWNpZmljIGZvciB0aGUgY29tbWVyY2UgZXhjaGFuZ2UgKi9cclxuICAgIHN1YlBvc2l0aW9uSWRlbnRpZmllcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJbiBhIGNvbW1lcmNlIGV4Y2hhbmdlLCB0aGlzIHByb3BlcnR5IGlzIHVzdWFsbHkgdXNlZCB0byByZWZlcmVuY2UgdGhlIGJhc2UgaXRlbSBudW1iZXIgb2YgYW4gdW5kZXJseWluZyBwaGFzZSA4MyBleGNoYW5nZSBmaWxlICovXHJcbiAgICBjdXN0b21lckJhc2VJdGVtTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIHRoZSBsaW5raW5nIHRvIGEgY29tcGxlbWVudGFyeSBwb3NpdGlvbiB3aXRoIGEgc3BlY2lmaWMgcXVhbnRpdHkgc2V0LiBGb3IgZXhhbXBsZSwgUG9zaXRpb24gJ0EnIGNvdWxkIGJlIGNvbXBsZW1lbnRpbmcgUG9zaXRpb24gJ0InIHdpdGggYSB0b3RhbCBxdWFudGl0eSBvZiAyMCB1bml0cyAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsZW1lbnRlZEJ5UXVhbnRpdHlEdG8ge1xyXG4gICAgLyoqIFRoZSBxdWFudGl0eSB0aGF0IGlzIGNvbXBsZW1lbnRlZC4gRS5nLiwgaWYgdGhlIGJhc2UgcG9zaXRpb24gaGFzIGEgcXVhbnRpdHkgb2YgMTAwIG3CsiBvZiBhIGJyaWNrIHdhbGwsIGEgY29tcGxlbWVudGluZyBwb3NpdGlvbiBtaWdodCBiZSBmb3IgJ3dhbGxzIHRoYXQgZXhjZWVkIDMgbSBoZWlnaHQnIGFuZCBmb3IgYSB0b3RhbCBxdWFudGl0eSBvZiAxMCBtwrIuICovXHJcbiAgICBxdWFudGl0eT86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGlzIHRoZSByZWZlcmVuY2UgdG8gdGhlIElkIG9mIHRoZSBQb3NpdGlvbiB0aGF0IGlzIGNvbXBsZW1lbnRpbmcuIFRoaXMgbWVhbnMgaXQgZG9lcyBOT1QgcmVmZXJlbmNlIHRoZSBiYXNlIHBvc2l0aW9uIGJ1dCB0aGUgb25lIHRoYXQgY29udGFpbnMgdGhlIGFjdHVhbCBhZGRpdGlvbi4gKi9cclxuICAgIGNvbXBsZW1lbnRpbmdQb3NpdGlvbklkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogVGhpcyBjbGFzcyBtb2RlbHMgc3BlY2lhbCBwcm9wZXJ0aWVzIHRoYXQgb25seSBhcHBseSB0byBzb21lIGV4Y2hhbmdlIHNjZW5hcmlvcyB3aGVyZSDDlk5vcm0gaXMgdXNlZC4gSXQgaXMgc3BlY2lhbCBmb3IgUG9zaXRpb25zIGFuZCBleHRlbmRzIHRoZSBPZW5vcm1Qcm9wZXJ0aWVzIGJhc2UgY2xhc3MuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgT2Vub3JtUG9zaXRpb25Qcm9wZXJ0aWVzRHRvIHtcclxuICAgIC8qKiBUaGlzIGluZGljYXRlcyB3aGVyZSB0aGUgY29udGVudCBvZiB0aGlzIGVsZW1lbnQgb3JpZ2luYXRlcywgaWYgc2V0LiBJdCBjb3JyZXNwb25kcyB0byAnaGVya3VuZnRza2VubnplaWNoZW4nIGluIMOWTm9ybSAqL1xyXG4gICAgb3JpZ2luQ29kZT86IE9lbm9ybU9yaWdpbkNvZGVEdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBtYXJrcyBpZiB0aGUgb3BlbmluZyB0ZXh0cyB3aXRoaW4gdGhpcyBlbGVtZW50IGFyZSBjb25zaWRlcmVkIGZyZWUgdGV4dC4gSXQgY29ycmVzcG9uZHMgdG8gJ3ZvcmJlbWVya3VuZ3NrZW5uemVpY2hlbicgaW4gw5ZOb3JtLiAqL1xyXG4gICAgb3BlbmluZ1RleHRJc0ZyZWVUZXh0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGluZGljYXRlcyBpZiB0aGUgw5ZOb3JtICd3ZXNlbnRsaWNoZSBwb3NpdGlvbicgbWFyayBpcyBzZXQgKi9cclxuICAgIGlzTWFpblBvc2l0aW9uPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGluZGljYXRlcyBpZiB0aGUgw5ZOb3JtIHBvc2l0aW9uIHdhcyBhICd1bmdldGVpbHRlcG9zaXRpb24nICh1bmRpdmlkZWQgcG9zaXRpb24pLiBUaGlzIHdpbGwgb25seSBiZSB0YWtlbiBpbnRvIGFjY291bnQgd2hlbiB0aGUgcG9zaXRpb24gaXMgYWxzbyB0aGUgc29sZSBlbGVtZW50IGluc2lkZSBpdCdzIHBhcmVudCBncm91cCAqL1xyXG4gICAgaXNVbmRpdmlkZWRQb3NpdGlvbj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSW4gc29tZSDDlk5vcm0gZm9ybWF0cywgdGhlIHNob3J0IHRleHQgY2FuIGhhdmUgaXQncyBvd24gYWRkaXRpb24sIHNvIHRoZSB0ZXh0IGlzIHNwbGl0IHVwIGluIE9lbm9ybVNob3J0VGV4dCBhbmQgT2Vub3JtU2hvcnRUZXh0QWRkaXRpb24gVG8gc2VyaWFsaXplIHRoaXMsIGVpdGhlciB0aGUgU2hvcnRUZXh0IHByb3BlcnR5IG9mIHRoZSBwYXJlbnQgcG9zaXRpb24gbmVlZHMgdG8gYmUgbnVsbCwgb3IgT2Vub3JtU2hvcnRUZXh0ICcgJyBPZW5vcm1TaG9ydFRleHRBZGRpdGlvbiBuZWVkcyB0byBtYXRjaCB0aGUgU2hvcnRUZXh0LiAqL1xyXG4gICAgb2Vub3JtU2hvcnRUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluIHNvbWUgw5ZOb3JtIGZvcm1hdHMsIHRoZSBzaG9ydCB0ZXh0IGNhbiBoYXZlIGl0J3Mgb3duIGFkZGl0aW9uLCBzbyB0aGUgdGV4dCBpcyBzcGxpdCB1cCBpbiBPZW5vcm1TaG9ydFRleHQgYW5kIE9lbm9ybVNob3J0VGV4dEFkZGl0aW9uIFRvIHNlcmlhbGl6ZSB0aGlzLCBlaXRoZXIgdGhlIFNob3J0VGV4dCBwcm9wZXJ0eSBvZiB0aGUgcGFyZW50IHBvc2l0aW9uIG5lZWRzIHRvIGJlIG51bGwsIG9yIE9lbm9ybVNob3J0VGV4dCAnICcgT2Vub3JtU2hvcnRUZXh0QWRkaXRpb24gbmVlZHMgdG8gbWF0Y2ggdGhlIFNob3J0VGV4dC4gKi9cclxuICAgIG9lbm9ybVNob3J0VGV4dEFkZGl0aW9uPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogVGhpcyBpbmRpY2F0ZXMgd2hlcmUgdGhlIGNvbnRlbnQgb2YgdGhpcyBlbGVtZW50IG9yaWdpbmF0ZXMsIGlmIHNldC4gSXQgY29ycmVzcG9uZHMgdG8gJ2hlcmt1bmZ0c2tlbm56ZWljaGVuJyBpbiDDlk5vcm0gKi9cclxuZXhwb3J0IGVudW0gT2Vub3JtT3JpZ2luQ29kZUR0byB7XHJcbiAgICBVbmtub3duID0gXCJVbmtub3duXCIsXHJcbiAgICBGcmVlVGV4dCA9IFwiRnJlZVRleHRcIixcclxuICAgIEFkZGl0aW9uRGVzY3JpcHRpb24gPSBcIkFkZGl0aW9uRGVzY3JpcHRpb25cIixcclxufVxyXG5cclxuLyoqIFRoaXMgZW51bWVyYXRpb24gcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIGFuIGFkZGVuZHVtLCAnTmFjaHRyYWcnIGluIEdlcm1hbiAqL1xyXG5leHBvcnQgZW51bSBBZGRlbmR1bVN0YXR1c0R0byB7XHJcbiAgICBVbmtub3duID0gXCJVbmtub3duXCIsXHJcbiAgICBSZWNvZ25pemVkID0gXCJSZWNvZ25pemVkXCIsXHJcbiAgICBGaWxlZCA9IFwiRmlsZWRcIixcclxuICAgIE9mZmVyZWQgPSBcIk9mZmVyZWRcIixcclxuICAgIFdpdGhkcmF3biA9IFwiV2l0aGRyYXduXCIsXHJcbiAgICBSZWplY3RlZCA9IFwiUmVqZWN0ZWRcIixcclxuICAgIFJlamVjdGlvbk9iamVjdGVkID0gXCJSZWplY3Rpb25PYmplY3RlZFwiLFxyXG4gICAgRm9ybWFsbHlBY2tub3dsZWRnZWQgPSBcIkZvcm1hbGx5QWNrbm93bGVkZ2VkXCIsXHJcbiAgICBBcHByb3ZlZCA9IFwiQXBwcm92ZWRcIixcclxufVxyXG5cclxuLyoqIFRoaXMgZW51bSByZXByZXNlbnRzIHRoZSBkaWZmZXJlbnQgd2F5cyBpbiB3aGljaCBhIGNvbXBsZW1lbnRpbmcgcG9zaXRpb24gdHlwZSBjYW4gYmUgc3BlY2lmaWVkLiBJdCBpcyB0eXBpY2FsbHkgb25seSB1c2VkIGluIEdBRUIgZXhwb3J0cywgc2luY2UgaW4gRGFuZ2wuQVZBLCBjb21wbGVtZW50aW5nIHBvc2l0aW9ucyBhcmUgYWx3YXlzIGV4cGxpY2l0bHkgcmVmZXJlbmNlZC4gKi9cclxuZXhwb3J0IGVudW0gUG9zaXRpb25Db21wbGVtZW50aW5nVHlwZUR0byB7XHJcbiAgICBVbmRlZmluZWQgPSBcIlVuZGVmaW5lZFwiLFxyXG4gICAgQWxsUHJldmlvdXNNYXJrZWRQb3NpdGlvbnMgPSBcIkFsbFByZXZpb3VzTWFya2VkUG9zaXRpb25zXCIsXHJcbiAgICBBbGxQcmV2aW91c1Bvc2l0aW9ucyA9IFwiQWxsUHJldmlvdXNQb3NpdGlvbnNcIixcclxuICAgIFJlZmVyZW5jZWRQb3NpdGlvbnMgPSBcIlJlZmVyZW5jZWRQb3NpdGlvbnNcIixcclxufVxyXG5cclxuLyoqIFRoaXMgY2xhc3MgaG9sZHMgcHJvcGVydGllcyB0aGF0IGRlc2NyaWJlIHJldGVudGlvbiB0eXBlcyBpbiBwb3NpdGlvbi4gUmV0ZW50aW9uIC8gaG9sZCBvdXQgdXN1YWxseSBtZWFucyB0aGF0IGEgc2VydmljZSBpcyBwcm92aWRlZCBhbmQga2VwdCBhdmFpbGFibGUgZm9yIGEgc3BlY2lmaWMgYW1vdW50IG9mIHRpbWUsIGUuZy4gZmVuY2VzIG9uIGEgY29uc3RydWN0aW9uIHNpdGUgKi9cclxuZXhwb3J0IGludGVyZmFjZSBQb3NpdGlvbkhvbGRPdXRQcm9wZXJ0aWVzRHRvIHtcclxuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgLyoqIFRoZSBhY3R1YWwgdHlwZSAqL1xyXG4gICAgaG9sZE91dFR5cGU/OiBIb2xkT3V0VHlwZUR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgZHVyYXRpb24gb2YgdGhlIHBlcmlvZCAqL1xyXG4gICAgaG9sZE91dER1cmF0aW9uPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSB0aW1lIHVuaXQgb2YgdGhlIHBlcmlvZCAqL1xyXG4gICAgaG9sZE91dER1cmF0aW9uVW5pdD86IEhvbGRPdXREdXJhdGlvblVuaXREdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogUmVmZXJlbmNlcyB0byBiYXNlIHBvc2l0aW9ucyAqL1xyXG4gICAgYmFzZVBvc2l0aW9uUmVmZXJlbmNlcz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogVHlwZXMgb2YgcmV0ZW50aW9ucyB0byBiZSB1c2VkIGluIHBvc2l0aW9ucyAqL1xyXG5leHBvcnQgZW51bSBIb2xkT3V0VHlwZUR0byB7XHJcbiAgICBVbmtub3duID0gXCJVbmtub3duXCIsXHJcbiAgICBCYXNlID0gXCJCYXNlXCIsXHJcbiAgICBFeHRlbnNpb24gPSBcIkV4dGVuc2lvblwiLFxyXG4gICAgUmVudCA9IFwiUmVudFwiLFxyXG59XHJcblxyXG4vKiogRHVyYXRpb24gdXNlZCBpbiByZXRlbnRpb24gcG9zaXRpb25zICovXHJcbmV4cG9ydCBlbnVtIEhvbGRPdXREdXJhdGlvblVuaXREdG8ge1xyXG4gICAgVW5rbm93biA9IFwiVW5rbm93blwiLFxyXG4gICAgTWludXRlcyA9IFwiTWludXRlc1wiLFxyXG4gICAgSG91cnMgPSBcIkhvdXJzXCIsXHJcbiAgICBEYXlzID0gXCJEYXlzXCIsXHJcbiAgICBXZWVrcyA9IFwiV2Vla3NcIixcclxuICAgIE1vbnRocyA9IFwiTW9udGhzXCIsXHJcbn1cclxuXHJcbi8qKiBQcmljZSBjYXRhbG9ndWUgZGF0YSByZXByZXNlbnRzIGFzc3VtZWQgb3IgZXN0aW1hdGVkIHByaWNlcyBmcm9tIGEgY2F0YWxvZ3VlIHNvdXJjZSAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFByaWNlQ2F0YWxvZ3VlRGF0YUR0byB7XHJcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIC8qKiBUaGUgbG93ZXIgYm91bmQgb2YgdGhlIHVuaXQgcHJpY2UgKi9cclxuICAgIHVuaXRQcmljZUZyb20/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIHVwcGVyIGJvdW5kIG9mIHRoZSB1bml0IHByaWNlICovXHJcbiAgICB1bml0UHJpY2VUbz86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgYXZlcmFnZSB1bml0IHByaWNlICovXHJcbiAgICB1bml0UHJpY2VBdmVyYWdlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBsb3dlciBib3VuZCBvZiB0aGUgd2FnZSBwcmljZSAqL1xyXG4gICAgd2FnZVByaWNlRnJvbT86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgdXBwZXIgYm91bmQgb2YgdGhlIHdhZ2UgcHJpY2UgKi9cclxuICAgIHdhZ2VQcmljZVRvPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBhdmVyYWdlIHdhZ2UgcHJpY2UgKi9cclxuICAgIHdhZ2VQcmljZUF2ZXJhZ2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBBbiBFeGVjdXRpb25EZXNjcmlwdGlvbiBpcyB1c2VkIHRvIGdpdmUgbW9yZSBkZXRhaWxzIGZvciBjZXJ0YWluIGl0ZW1zLCBlc3BlY2lhbGx5IG9uIGhvdyB0aGV5IGFyZSBtZWFudCB0byBiZSBleGVjdXRlZC4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBFeGVjdXRpb25EZXNjcmlwdGlvbkR0byBleHRlbmRzIElFbGVtZW50RHRvIHtcclxuICAgIC8qKiBCbG9ja3Mgd2l0aGluIGFuIEV4ZWN1dGlvbkRlc2NyaXB0aW9uIGNvbnRhaW4gdGhlIGFjdHVhbCBpbmZvcm1hdGlvbi4gKi9cclxuICAgIGJsb2Nrcz86IE5vdGVUZXh0RHRvW10gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogTGFiZWxzIHRoaXMgRXhlY3V0aW9uRGVzY3JpcHRpb24uICovXHJcbiAgICBsYWJlbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgRXhlY3V0aW9uRGVzY3JpcHRpb24uICovXHJcbiAgICBpZGVudGlmaWVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgZWxlbWVudFR5cGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBSZXByZXNlbnRzIGFuIGVsZW1lbnQgdGhhdCBob2xkcyB0ZXh0IGluZm9ybWF0aW9uLiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIE5vdGVUZXh0RHRvIGV4dGVuZHMgSUVsZW1lbnREdG8ge1xyXG4gICAgLyoqIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHRoaXMgdGV4dCBpcyBtZWFudCB0byBub3QgYmUgc2VlbiBhcyBwYXJ0IG9mIHRoZSByZWd1bGFyIGVsZW1lbnRzIGhpZXJhcmNoeSBidXQgYXMgYSBzcGVjaWFsIG9wZW5pbmcgdGV4dCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBwcm9qZWN0LiBGb3IgZXhhbXBsZSwgaW4gR0FFQiBYTUwsIHRoaXMgd291bGQgbWFwIHRvIHRoZSBHQUVCLkF3YXJkLkFkZFRleHQuIFR5cGljYWxseSwgc3VjaCB0ZXh0cyBkZXNjcmliZSBwcm9qZWN0LXdpZGUgY29udHJhY3R1YWwgZGVmaW5pdGlvbnMuIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHRoaXMgTm90ZVRleHQgc2hvdWxkIGJlIHBsYWNlZCBhdCB0aGUgdG9wIG9mIHRoZSBlbGVtZW50cyBoaWVyYXJjaHkgZGlyZWN0bHkgaW4gdGhlIFNlcnZpY2VTcGVjaWZpY2F0aW9uLkVsZW1lbnRzIGdyb3VwLCBvdGhlcndpc2UgaXQgd2lsbCBsaWtlbHkgbm90IGJlIHRyZWF0ZWQgY29ycmVjdGx5IHdoZW4gZXhwb3J0aW5nIHRvIEdBRUIuIFlvdSBjYW4gb25seSBzZXQgSXNPcGVuaW5nVGV4dCBvciBJc0Nsb3NpbmdUZXh0IHRvIHRydWUuICovXHJcbiAgICBpc09wZW5pbmdUZXh0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJZiB0aGlzIGlzIHNldCB0byB0cnVlLCB0aGlzIHRleHQgaXMgbWVhbnQgdG8gbm90IGJlIHNlZW4gYXMgcGFydCBvZiB0aGUgcmVndWxhciBlbGVtZW50cyBoaWVyYXJjaHkgYnV0IGFzIGEgc3BlY2lhbCBjbG9zaW5nIHRleHQgYXQgdGhlIGVuZCBvZiB0aGUgcHJvamVjdC4gRm9yIEV4YW1wbGUsIGluIEdBRUIgWE1MLCB0aGlzIHdvdWxkIG1hcCB0byB0aGUgR0FFQi5BZGRUZXh0LiBUeXBpY2FsbHksIHN1Y2ggdGV4dHMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgcHJvamVjdCB3aWRlIGZpbmlzaGluZyBkZXNjcmlwdGlvbnMuIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHRoaXMgTm90ZVRleHQgc2hvdWxkIGJlIHBsYWNlZCBhdCB0aGUgdG9wIG9mIHRoZSBlbGVtZW50cyBoaWVyYXJjaHkgZGlyZWN0bHkgaW4gdGhlIFNlcnZpY2VTcGVjaWZpY2F0aW9uLkVsZW1lbnRzIGdyb3VwLCBvdGhlcndpc2UgaXQgd2lsbCBsaWtlbHkgbm90IGJlIHRyZWF0ZWQgY29ycmVjdGx5IHdoZW4gZXhwb3J0aW5nIHRvIEdBRUIuIFlvdSBjYW4gb25seSBzZXQgSXNPcGVuaW5nVGV4dCBvciBJc0Nsb3NpbmdUZXh0IHRvIHRydWUuICovXHJcbiAgICBpc0Nsb3NpbmdUZXh0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBTaG9ydCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBEZXNjcmlwdGlvbkJhc2UgZWxlbWVudC4gKi9cclxuICAgIHNob3J0VGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhpcyBEZXNjcmlwdGlvbkJhc2UgZWxlbWVudCBjb250YWlucyBCdXllciBvciBCaWRkZXIgYWRkaXRpb25zIHRvIHRoZSB0ZXh0LiAqL1xyXG4gICAgYWRkaXRpb25UeXBlPzogQWRkaXRpb25UeXBlRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIERldGFpbGVkIGRlc2NyaXB0aW9uIGZvciB0aGlzIERlc2NyaXB0aW9uQmFzZSBlbGVtZW50LiBXaGVuIHRoZSBIdG1sTG9uZ1RleHQgaXMgc2V0LCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgb3ZlcndyaXR0ZW4gYW5kIGZpbGxlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBwbGFpbiB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBIdG1sIHRleHQuIFZpY2UgdmVyc2EsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgdGhlIEh0bWxMb25nVGV4dC4gKi9cclxuICAgIGxvbmdUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgY29udGFpbnMgdGhlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIExvbmd0ZXh0LiBXaGVuIHRoZSBMb25nVGV4dCBpcyBzZXQsIHRoaXMgaXMgYXV0b21hdGljYWxseSBvdmVyd3JpdHRlbiBhbmQgZmlsbGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBsYWludGV4dC4gVmljZSB2ZXJzYSwgc2V0dGluZyB0aGlzIHByb3BlcnR5IG92ZXJyaWRlcyB0aGUgTG9uZ1RleHQuIEdBRUIgOTAgYW5kIEdBRUIgMjAwMCBleHBvcnRzIGRvIG5vdCBzdXBwb3J0IGFueSBpbWFnZSBmdW5jdGlvbmFsaXR5LiBJbiBHQUVCIFhNTCwgb25seSBpbWFnZXMgdGhhdCB1c2UgYW4gZW1iZWRkZWQgQmFzZTY0IGRhdGEgdXJpIGFyZSBleHBvcnRlZCwgcmVndWxhciB1cmwgcmVmZXJlbmNlcyBhcmUgY2xlYXJlZCBiZWZvcmUgd3JpdHRlbiBvdXQuICovXHJcbiAgICBodG1sTG9uZ1RleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpcyBhbiBvcHRpb25hbCBpbnRlcm5hbCBpZGVudGlmaWVyIHRoYXQgbWF5IGJlIHVzZWQgdG8gYWRkIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdG8gdGhpcyBOb3RlVGV4dC4gSXQgaXMgbm90IHN1cHBvcnRlZCBpbiBHQUVCIGltcG9ydCBvciBleHBvcnQuICovXHJcbiAgICBpZGVudGlmaWVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgcmVwcmVzZW50cyBhIHN0YW5kYXJkaXplZCBkZXNjcmlwdGlvbi4gVGhpcyBtZWFucyB0aGF0IGluc3RlYWQgb2Ygc29sZWx5IHJlbHlpbmcgb24gdGV4dHMgdG8gZGVzY3JpYmUgYSBzZXJ2aWNlLCBleHRlcm5hbCBzdGFuZGFyZHMgYW5kIGRlZmluaXRpb25zIGFyZSByZWZlcmVuY2VkIGZvciBhIGNvbW1vbiB1bmRlcnN0YW5kaW5nLiAqL1xyXG4gICAgc3RhbmRhcmRpemVkRGVzY3JpcHRpb24/OiBTdGFuZGFyZGl6ZWREZXNjcmlwdGlvbkR0byB8IHVuZGVmaW5lZDtcclxuICAgIGVsZW1lbnRUeXBlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaXMgYW4gaWRlbnRpZmllciBzcGVjaWZpYyBmb3IgdGhpcyBkZXNjcmlwdGlvbi4gU29tZSBleGNoYW5nZSBmb3JtYXRzLCBsaWtlIEdBRUIgWE1MLCB1c2UgaXQgdG8gaWRlbnRpZnkgZGVzY3JpcHRpb25zLiBJdCdzIGRpZmZlcmVudCB0byBhbiBlbGVtZW50cyBpZGVudGlmaWVyIGluIHRoYXQgaXQgc2hvdWxkIG9ubHkgYXBwbHkgdG8gdGhlIGRlc2NyaXB0aW9uIGNvbXBvbmVudCwgbWVhbmluZyB0aGUgdGV4dCBpdHNlbGYuICovXHJcbiAgICBkZXNjcmlwdGlvbklkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgY2xhc3MgbW9kZWxzIHNwZWNpYWwgcHJvcGVydGllcyB0aGF0IG9ubHkgYXBwbHkgdG8gc29tZSBleGNoYW5nZSBzY2VuYXJpb3Mgd2hlcmUgw5ZOb3JtIGlzIHVzZWQuIEl0IGlzIHNwZWNpYWwgZm9yIE5vdGVUZXh0cy4gKi9cclxuICAgIG9lbm9ybU5vdGVUZXh0UHJvcGVydGllcz86IE9lbm9ybU5vdGVUZXh0UHJvcGVydGllc0R0byB8IHVuZGVmaW5lZDtcclxuICAgIHJlYWRvbmx5IGhhc0JpZGRlckNvbW1lbnRJbkh0bWxMb25nVGV4dD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBUaGlzIGNsYXNzIG1vZGVscyBzcGVjaWFsIHByb3BlcnRpZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHNvbWUgZXhjaGFuZ2Ugc2NlbmFyaW9zIHdoZXJlIMOWTm9ybSBpcyB1c2VkLiBJdCBpcyBzcGVjaWFsIGZvciBOb3RlVGV4dHMuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgT2Vub3JtTm90ZVRleHRQcm9wZXJ0aWVzRHRvIHtcclxuICAgIC8qKiBUaGlzIGluZGljYXRlcyB3aGVyZSB0aGUgY29udGVudCBvZiB0aGlzIGVsZW1lbnQgb3JpZ2luYXRlcywgaWYgc2V0LiBJdCBjb3JyZXNwb25kcyB0byAnaGVya3VuZnRza2VubnplaWNoZW4nIGluIMOWTm9ybSAqL1xyXG4gICAgb3JpZ2luQ29kZT86IE9lbm9ybU9yaWdpbkNvZGVEdG8gfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBUaGlzIGlzIGEgZ3JvdXBpbmcgSUVsZW1lbnQgdGhhdCBob2xkcyBvdGhlciBJRWxlbWVudHMgd2l0aGluLiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VTcGVjaWZpY2F0aW9uR3JvdXBEdG8gZXh0ZW5kcyBJRWxlbWVudER0byB7XHJcbiAgICAvKiogVGhlIGhvdXJseSB3YWdlIHRoYXQgaXMgdXNlZCB3aXRoaW4gdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZS4gV2lsbCBiZSBwcm9wYWdhdGVkIHRvIGNoaWxkIGVsZW1lbnRzLiAqL1xyXG4gICAgcmVhZG9ubHkgcHJvamVjdEhvdXJseVdhZ2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIHRheCByYXRlIHRoYXQgaXMgdXNlZCB3aXRoaW4gdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZS4gV2lsbCBiZSBwcm9wYWdhdGVkIHRvIGNoaWxkIGVsZW1lbnRzLiAqL1xyXG4gICAgcHJvamVjdFRheFJhdGU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIHByaWNlIGNvbXBvbmVudHMgdGhhdCBhcmUgdXNlZCB3aXRoaW4gdGhpcyBwcm9qZWN0LiBUaGV5IGFyZSBpZ25vcmVkIGR1cmluZyBKc29uIGRlc2VyaWFsaXphdGlvbiBiZWNhdXNlIHRoZXkgd2lsbCBiZSBzZXQgZnJvbSB0aGUgcGFyZW50IHByb2plY3QuICovXHJcbiAgICBwcm9qZWN0UHJpY2VDb21wb25lbnRzPzogc3RyaW5nW10gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIEl0ZW1OdW1iZXJTY2hlbWEgdGhhdCBpcyB1c2VkIHdpdGhpbiB0aGlzIHByb2plY3QuICovXHJcbiAgICBwcm9qZWN0SXRlbU51bWJlclNjaGVtYT86IEl0ZW1OdW1iZXJTY2hlbWFEdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIElFbGVtZW50cyB3aXRoaW4gdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZS4gKi9cclxuICAgIGVsZW1lbnRzPzogSUVsZW1lbnREdG9bXSB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgbGFiZWwgdXNlZCBpbiB0aGUgcGFyZW50IFByb2plY3QgdG8gbWFyayBsYWJvdXIgdGltZSwgZS5nLiBcIkhvdXJzXCIgb3IgXCJTdHVuZGVuXCIuICovXHJcbiAgICByZWFkb25seSBwcm9qZWN0TGFib3VyVGltZUxhYmVsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGVyZSBhcmUgY2hpbGQgSUVsZW1lbnRzIHRoYXQgaGF2ZSBjb25mbGljdGluZywgZHVwbGljYXRlZCBJdGVtTnVtYmVycyBvciBpZiBhbnkgY2hpbGQgRWxlbWVudENvbnRhaW5lckJhc2UgZWxlbWVudHMgdGhlbXNlbHZlcyBjb250YWluIGR1cGxpY2F0ZSBJdGVtTnVtYmVyIHMuIFdpbGwgYWx3YXlzIGluZGljYXRlIGZhbHNlIHdoZW4gdG9sZCB0byBpZ25vcmUgZHVwbGljYXRlIGl0ZW0gbnVtYmVycy4gKi9cclxuICAgIHJlYWRvbmx5IGNvbnRhaW5zRHVwbGljYXRlSXRlbU51bWJlcnM/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGVyZSBhcmUgY2hpbGQgSUVsZW1lbnRzIHRoYXQgaGF2ZSBjb25mbGljdGluZywgZHVwbGljYXRlZCBJZHMgb3IgaWYgYW55IGNoaWxkIEVsZW1lbnRDb250YWluZXJCYXNlIGVsZW1lbnRzIHRoZW1zZWx2ZXMgY29udGFpbiBkdXBsaWNhdGUgSWQgcy4gV2lsbCBhbHdheXMgaW5kaWNhdGUgZmFsc2Ugd2hlbiB0b2xkIHRvIGlnbm9yZSBkdXBsaWNhdGUgaXRlbSBudW1iZXJzLiAqL1xyXG4gICAgcmVhZG9ubHkgY29udGFpbnNEdXBsaWNhdGVFbGVtZW50SWRzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJbmRpY2F0ZSBpZiBkdXBsaWNhdGVkIEl0ZW1OdW1iZXJzIHdpdGhpbiBjaGlsZCBlbGVtZW50cyBhcmUgdG8gYmUgaWdub3JlZC4gV2lsbCBub3QgcGVyZm9ybSBjaGVja3MgZm9yIGR1cGxpY2F0ZXMgaWYgeWVzLiAqL1xyXG4gICAgaWdub3JlRHVwbGljYXRlSXRlbU51bWJlcnM/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHRoZSBQcm9qZWN0Q2F0YWxvZ3VlcyBwcm9wZXJ0eSB3aWxsIG5vdCBiZSBwcm9wYWdhdGVkIHRvIGNoaWxkIGVsZW1lbnRzLiBUaGlzIGlzIHVzZWZ1bCBpbiBtYXBwaW5nIHNjZW5hcmlvcywgd2hlcmUgeW91IHdhbnQgdG8gZGlzYWJsZSBwcm9wYWdhdGlvbiBmb3IgbXVsdGlwbGUgY2hhbmdlcywgYW5kIG9ubHkgZW5hYmxlIGl0IG9uY2UgeW91IGhhdmUgbWFwcGVkIGFsbCBwcm9wZXJ0aWVzICovXHJcbiAgICBpZ25vcmVQcm9qZWN0Q2F0YWxvZ3VlUHJvcGFnYXRpb24/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluZGljYXRlIGlmIGR1cGxpY2F0ZWQgSWRzIHdpdGhpbiBjaGlsZCBlbGVtZW50cyBhcmUgdG8gYmUgaWdub3JlZC4gV2lsbCBub3QgcGVyZm9ybSBjaGVja3MgZm9yIGR1cGxpY2F0ZXMgaWYgeWVzLiAqL1xyXG4gICAgaWdub3JlRHVwbGljYXRlRWxlbWVudElkcz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogUHJpY2UgY29tcG9zaXRpb24gYnkgdGF4IHJhdGUuICovXHJcbiAgICB0b3RhbFByaWNlR3Jvc3NCeVRheFJhdGU/OiBHcm9zc1ByaWNlQ29tcG9uZW50RHRvW10gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSW50ZXJuYWxseSB1c2VkIHRvIGluZGljYXRlIHRoYXQgYSBwcm9wYWdhdGlvbiBpcyBjdXJyZW50bHkgZG9uZSwgdGhpcyBpcyBkb25lIHRvIG5vdCByZWNhbGN1bGF0ZSBldmVyeSBzaW5nbGUgcmVzdWx0IGZyb20gYSBsb3Qgb2YgY2hhbmdlcyB3aGVuIGl0IGlzIHN1ZmZpY2llbnQgdG8gY2FsY3VsYXRlIHRoZSB0b3RhbCBwcmljZSBhdCBvbmNlLiAqL1xyXG4gICAgaWdub3JlQ2hpbGRQcmljZVVwZGF0ZXM/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIE5ldCBwcmljZSBhZnRlciBhcHBsaWVkIGRlZHVjdGlvbnMuICovXHJcbiAgICByZWFkb25seSBkZWR1Y3RlZFByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEZhY3RvciBvZiBhcHBsaWVkIGRlZHVjdGlvbnMgdG8gdGhlIHRvdGFsIHByaWNlLiBGb3IgZXhhbXBsZSwgXCIwLjAzXCIgbWVhbnMgdGhhdCBhIDMlIGRlZHVjdGlvbiBpcyB0byBiZSBhcHBsaWVkLiAqL1xyXG4gICAgZGVkdWN0aW9uRmFjdG9yPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBleGFjdCBhbW91bnQgb2YgdGhlIGRpc2NvdW50IGFzIGFuIGFic29sdXRlIHZhbHVlLiBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcmVhc29ucywgc2V0dGluZyB0aGlzIHZhbHVlIHdpbGwgYWxzbyBzZXQgYSBjYWxjdWxhdGVkIHZhbHVlIHRvIERlZHVjdGlvbkZhY3Rvciwgd2hpY2ggd2lsbCBhbHNvIGJlIHVwZGF0ZWQgaW4gY2FzZSB0aGUgdG90YWwgcHJpY2UgaXMgY2hhbmdlZCB0byByZWZsZWN0IGEgcmVsYXRpdmUgdmFsdWUgb2YgdGhlIGFic29sdXRlIGRpc2NvdW50IHN1bS4gKi9cclxuICAgIGFic29sdXRlRGVkdWN0aW9uPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFdpbGwgcmV0dXJuIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UncyB0b3RhbCBwcmljZS4gKi9cclxuICAgIHJlYWRvbmx5IHRvdGFsUHJpY2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIHRvdGFsIGdyb3NzIHByaWNlIGZvciB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlIGluY2x1ZGluZyBhbGwgY2hpbGQgZWxlbWVudHMuICovXHJcbiAgICByZWFkb25seSB0b3RhbFByaWNlR3Jvc3M/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVG90YWwgZ3Jvc3MgcHJpY2UgYWZ0ZXIgYXBwbGllZCBkZWR1Y3Rpb25zLiAqL1xyXG4gICAgcmVhZG9ubHkgdG90YWxQcmljZUdyb3NzRGVkdWN0ZWQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSW5kaWNhdGVzIHRoZSBQcmljZVR5cGUgb2YgdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZSwgd2hldGhlciBpdCBzaG91bGQgZmFjdG9yIGludG8gdG90YWwgY29zdHMgb3Igbm90LiAqL1xyXG4gICAgcHJpY2VUeXBlPzogUHJpY2VUeXBlRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIERlc2NyaXB0aW9uIGZvciB0aGlzIFNlcnZpY2VTcGVjaWZpY2F0aW9uR3JvdXAuICovXHJcbiAgICBzaG9ydFRleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoaXMgc2VydmljZSBzcGVjaWZpY2F0aW9uIGdyb3VwIGlzIGNvbW1pc3Npb25lZCAoYW5kIHRoZXJlZm9yZSBzaG91bGQgYmUgZXhlY3V0ZWQpLCBwb3N0cG9uZWQgZm9yIGxhdGVyIG9yIHVuZGVmaW5lZC4gKi9cclxuICAgIGNvbWlzc2lvblN0YXR1cz86IENvbWlzc2lvblN0YXR1c0R0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgSXRlbU51bWJlciBmb3IgdGhpcyBJTnVtYmVyZWRFbGVtZW50IGludGVyZmFjZS4gKi9cclxuICAgIGl0ZW1OdW1iZXI/OiBJdGVtTnVtYmVyRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgZWxlbWVudFR5cGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgaWYgdGhpcyBncm91cCBpcyB0aGUgcGFyZW50IG9mIGEgbG90LiBTZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgd29ya2luZyB3aXRoIGxvdHMuICovXHJcbiAgICByZWFkb25seSBpc0xvdD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSWYgdGhpcyBncm91cCBpcyBhbiBhbHRlcm5hdGl2ZSBmb3IgYSBiYXNlIGdyb3VwLCB0aGVuIHRoaXMgcHJvcGVydHkgc2hvdWxkIHBvaW50IHRvIHRoZSBpZCBvZiB0aGUgZ3JvdXAgaW4gdGhpcyBzZXJ2aWNlIHNwZWNpZmljYXRpb24gdGhhdCBpdCBjYW4gcmVwbGFjZS4gSWYgdGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSBncm91cCB0byBhIGJhc2UgZ3JvdXAsIHRoZSBQcmljZVR5cGUgc2hvdWxkIHR5cGljYWxseSBiZSBzZXQgdG8gXCJXaXRob3V0VG90YWxcIiBzbyB0aGlzIGdyb3VwIGRvZXMgbm90IGZhY3RvciBpbnRvIHRvdGFsIGNvc3RzLiBUaGUgUHJpY2VUeXBlIGlzIG5vdCBjaGFuZ2VkIHdoZW4gdGhpcyBwcm9wZXJ0eSBpcyBzZXQgKi9cclxuICAgIGFsdGVybmF0aXZlVG8/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICB2MUNvbXBhdGliaWxpdHlQcmljZVR5cGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBjbGFzcyBtb2RlbHMgc3BlY2lhbCBwcm9wZXJ0aWVzIHRoYXQgb25seSBhcHBseSB0byBzb21lIGV4Y2hhbmdlIHNjZW5hcmlvcyB3aGVyZSDDlk5vcm0gaXMgdXNlZC4gKi9cclxuICAgIG9lbm9ybVByb3BlcnRpZXM/OiBPZW5vcm1Qcm9wZXJ0aWVzRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaXMgYSB6ZXJvIGJhc2VkIGhpZXJhcmNoeSBsZXZlbC4gSXQncyBzZXQgYXV0b21hdGljYWxseSB3aGVuIHVzZWQgaW4gdGhlIGNvbnRleHQgb2YgYSBQcm9qZWN0LCBhbmQgY2FuIGJlIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGhpZXJhcmNoeSBsZXZlbCBvZiB0aGUgY3VycmVudCBlbGVtZW50LiAqL1xyXG4gICAgaGllcmFyY2h5TGV2ZWw/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMsIGlmIHRoaXMgZWxlbWVudCBpcyBwYXJ0IG9mIGFuIGFkZGVuZHVtIGFuLCBpZiB5ZXMsIHdpdGggd2hhdCBzdGF0dXMuICovXHJcbiAgICBhZGRlbmR1bVN0YXR1cz86IEFkZGVuZHVtU3RhdHVzRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaXMgaW50ZXJuYWxseSB1c2VkIGR1cmluZyBtYXBwaW5nIG9wZXJhdGlvbnMgdG8gdGVtcG9yYXJpbHkgaG9sZCBpbmZvcm1hdGlvbiBhYm91dCByZW1vdmVkIEl0ZW1OdW1iZXJTY2hlbWFzLiBUaG9zZSBzY2hlbWFzIGFyZSBzZXQgdG8gbnVsbCBkdXJpbmcgdGhlIG1hcHBpbmcgcHJvY2VzcyB0byBlbnN1cmUgdGhhdCBzY2hlbWFzIGluIGVsZW1lbnRzIGhpZ2hlciB1cCBpbiB0aGUgaGllcmFyY2h5IGFyZSBjb3JyZWN0bHkgcGFzc2VkIGRvd24gdG8gY2hpbGQgZWxlbWVudHMuICovXHJcbiAgICBpdGVtTnVtYmVyU2NoZW1hTWFwcGluZ09wZXJhdGlvbj86IEl0ZW1OdW1iZXJTY2hlbWFNYXBwaW5nT3BlcmF0aW9uIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaXMgYW4gb3B0aW9uYWwgcHJvcGVydHkgdGhhdCBjYW4gYmUgdXNlZCB0b2dldGhlciB3aXRoIEFsdGVybmF0aXZlVG8uIElmIHRoaXMgaXMgc2V0LCB5b3UgY2FuIGluZGljYXRlIHdoaWNoIGFsdGVybmF0aXZlIGdyb3VwIGEgc3BlY2lmaWMgZ3JvdXAgaXMgYXNzaWduZWQgdG8uIFRoYXQgd2F5LCBpZiB5b3Ugc3BlY2lmaXkgbXVsdGlwbGUgYWx0ZXJuYXRpdmUgU2VydmljZVNwZWNpZmljYXRpb25Hcm91cHMgd2l0aCB0aGUgc2FtZSBBbHRlcm5hdGl2ZUlkZW50aWZpZXIsIHlvdSBjYW4gaW5kaWNhdGUgdGhhdCB0byByZXBsYWNlIGEgc2luZ2xlIGJhc2UgU2VydmljZVNwZWNpZmljYXRpb25Hcm91cCwgbXVsdGlwbGUgYWx0ZXJuYXRpdmUgU2VydmljZVNwZWNpZmljYXRpb25Hcm91cHMgc2hvdWxkIGJlIHVzZWQuIFRoaXMgcHJvcGVydHkgaXMgbm90IGNoZWNrZWQgb3IgbWFuYWdlZCBhdXRvbWF0aWNhbGx5LCBzbyBpdCBpcyBwb3NzaWJsZSBmb3IgdGhpcyBwcm9wZXJ0eSB0byBiZWNvbWUgaW52YWxpZCwgYnkgZm9yIGV4YW1wbGUgc2V0dGluZyB0aGlzIHByb3BlcnR5IGJ1dCBub3Qgc2V0dGluZyBhIGJhc2UgZ3JvdXAgdmlhIEFsdGVybmF0aXZlVG8uICovXHJcbiAgICBhbHRlcm5hdGl2ZUlkZW50aWZpZXI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpcyBhbiBvcHRpb25hbCBwcm9wZXJ0eSB0aGF0IGNhbiBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggQWx0ZXJuYXRpdmVUbyBhbmQgQWx0ZXJuYXRpdmVHcm91cElkZW50aWZpZXIuIElmIHRoaXMgaXMgc2V0LCB5b3UgY2FuIGluZGljYXRlIHdoaWNoIGFsdGVybmF0aXZlIGdyb3VwIGEgc3BlY2lmaWMgZ3JvdXAgaXMgYXNzaWduZWQgdG8uIFRoYXQgd2F5LCB5b3UgY2FuIHNwZWNpZnkgdGhlIGlkIChpbiBpbnRlZ2VyIGZvcm1hdCkgZm9yIHRoZSBhbHRlcm5hdGl2ZSBncm91cCB0aGlzIGdyb3VwIGJlbG9uZ3MgdG8uIEl0J3MgZGlmZmVyZW50IHRvIEFsdGVybmF0aXZlSWRlbnRpZmllciBpbiB0aGF0IHRoZSBvdGhlciBwcm9wZXJ0eSBkZXNjcmliZXMgdGhlIGlkIG9mIHRoZSBncm91cCwgd2hpbGUgdGhpcyBwcm9wZXJ0eSBoZXJlIGRlc2NyaWJlcyB0aGUgZ3JvdXAgaXRzZWxmLiBJZiBhIGdyb3VwIG9ubHkgaGFzIHNldCBBbHRlcm5hdGl2ZUdyb3VwSWRlbnRpZmllciBidXQgbm90IEFsdGVybmF0aXZlSWRlbnRpZmllciwgdGhlbiBpdCBsaWtlbHkgaXMgYSBiYXNlIGdyb3VwIGZvciBhIHNwZWNpZmljIGdyb3VwLiBUaGlzIHByb3BlcnR5IGlzIG5vdCBjaGVja2VkIG9yIG1hbmFnZWQgYXV0b21hdGljYWxseSwgc28gaXQgaXMgcG9zc2libGUgZm9yIHRoaXMgcHJvcGVydHkgdG8gYmVjb21lIGludmFsaWQsIGJ5IGZvciBleGFtcGxlIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBidXQgbm90IHNldHRpbmcgYSBiYXNlIGdyb3VwIHZpYSBBbHRlcm5hdGl2ZVRvLiAqL1xyXG4gICAgYWx0ZXJuYXRpdmVHcm91cElkZW50aWZpZXI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBUaGlzIGlzIHVzZWQgaW4gYW4gRWxlbWVudENvbnRhaW5lckJhc2UgdG8gaG9sZCB0aGUgcHJpY2UgY29tcG9zaXRpb24uICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgR3Jvc3NQcmljZUNvbXBvbmVudER0byB7XHJcbiAgICAvKiogVGhpcyBjb21wb25lbnRzIHRheCByYXRlLiAqL1xyXG4gICAgdGF4UmF0ZT86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGlzIHRoZSBmYWN0b3Igb2YgYXBwbGllZCBkZWR1Y3Rpb25zIGZvciB0aGlzIGNvbXBvbmVudCAqL1xyXG4gICAgZGVkdWN0aW9uRmFjdG9yPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSB0b3RhbCBuZXQgcHJpY2UgZm9yIGFsbCBjb21wb25lbnRzIG9mIGEgZ2l2ZW4gdGF4IHJhdGUuICovXHJcbiAgICB0b3RhbE5ldD86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgcmVzdWx0aW5nIHByaWNlIGNvbXBvbmVudCBhZnRlciBhcHBsaWVkIGRlZHVjdGlvbnMgKi9cclxuICAgIHJlYWRvbmx5IHRvdGFsRGVkdWN0ZWQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIHRvdGFsIHRheCBhbW91bnQgZm9yIGFsbCBjb21wb25lbnRzIG9mIGEgZ2l2ZW4gdGF4IHJhdGUuICovXHJcbiAgICByZWFkb25seSB0b3RhbFRheD86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgdG90YWwgZ3Jvc3MgcHJpY2UgZm9yIGFsbCBjb21wb25lbnRzIG9mIGEgZ2l2ZW4gdGF4IHJhdGUuICovXHJcbiAgICByZWFkb25seSB0b3RhbEdyb3NzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSB0b3RhbCBncm9zcyBwcmljZSBmb3IgYWxsIGNvbXBvbmVudHMgb2YgYSBnaXZlbiB0YXggcmF0ZSwgYWZ0ZXIgYXBwbGllZCBkZWR1Y3Rpb25zLiAqL1xyXG4gICAgcmVhZG9ubHkgdG90YWxHcm9zc0RlZHVjdGVkPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSB0b3RhbCB0YXggYW1vdW50IGZvciBhbGwgY29tcG9uZW50cyBvZiBhIGdpdmVuIHRheCByYXRlLCBhZnRlciBhcHBsaWVkIGRlZHVjdGlvbnMuICovXHJcbiAgICByZWFkb25seSB0b3RhbFRheERlZHVjdGVkPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogVGhpcyBjbGFzcyBtb2RlbHMgc3BlY2lhbCBwcm9wZXJ0aWVzIHRoYXQgb25seSBhcHBseSB0byBzb21lIGV4Y2hhbmdlIHNjZW5hcmlvcyB3aGVyZSDDlk5vcm0gaXMgdXNlZC4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBPZW5vcm1Qcm9wZXJ0aWVzRHRvIHtcclxuICAgIC8qKiBUaGlzIGluZGljYXRlcyB3aGVyZSB0aGUgY29udGVudCBvZiB0aGlzIGVsZW1lbnQgb3JpZ2luYXRlcywgaWYgc2V0LiBJdCBjb3JyZXNwb25kcyB0byAnaGVya3VuZnRza2VubnplaWNoZW4nIGluIMOWTm9ybSAqL1xyXG4gICAgb3JpZ2luQ29kZT86IE9lbm9ybU9yaWdpbkNvZGVEdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBtYXJrcyBpZiB0aGUgb3BlbmluZyB0ZXh0cyB3aXRoaW4gdGhpcyBlbGVtZW50IGFyZSBjb25zaWRlcmVkIGZyZWUgdGV4dC4gSXQgY29ycmVzcG9uZHMgdG8gJ3ZvcmJlbWVya3VuZ3NrZW5uemVpY2hlbicgaW4gw5ZOb3JtLiAqL1xyXG4gICAgb3BlbmluZ1RleHRJc0ZyZWVUZXh0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqIFRoaXMgYWJzdHJhY3QgY2xhc3MgaXMgdXNlZCBpbnRlcm5hbGx5IHRvIGhvbGQgcmVzdWx0cyBhYm91dCBhbiBpdGVtIG51bWJlciBzY2hlbWEgcmVtb3ZhbCBvcGVyYXRpb24uIEl0ZW0gbnVtYmVyIHNjaGVtYXMgYXJlIHJlbW92ZWQgZHVyaW5nIHRoZSBtYXBwaW5nIHByb2Nlc3MgdG8gYWxsb3cgdG9wLWRvd24gcHJvcGFnYXRpb24gYWZ0ZXIgY29udmVyc2lvbiwgYnV0IGFyZSB0aGVuIGFkZGVkIGJhY2sgdG8gdGhlIERUT3MgdG8gcHJlc2VydmUgdGhlIG9yaWdpbmFsIHNvdXJjZS4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtTnVtYmVyU2NoZW1hTWFwcGluZ09wZXJhdGlvbiB7XHJcbn1cclxuXHJcbi8qKiBJbmRpY2F0ZXMgYSBTZXJ2aWNlU3BlY2lmaWNhdGlvbidzIGV4Y2hhbmdlIHBoYXNlLCBiYXNlZCBvbiB0aGUgR0FFQiBleGNoYW5nZSBwaGFzZXMuICovXHJcbmV4cG9ydCBlbnVtIEV4Y2hhbmdlUGhhc2VEdG8ge1xyXG4gICAgVW5kZWZpbmVkID0gXCJVbmRlZmluZWRcIixcclxuICAgIEJhc2UgPSBcIkJhc2VcIixcclxuICAgIENvc3RFc3RpbWF0ZSA9IFwiQ29zdEVzdGltYXRlXCIsXHJcbiAgICBPZmZlclJlcXVlc3QgPSBcIk9mZmVyUmVxdWVzdFwiLFxyXG4gICAgT2ZmZXIgPSBcIk9mZmVyXCIsXHJcbiAgICBTaWRlT2ZmZXIgPSBcIlNpZGVPZmZlclwiLFxyXG4gICAgR3JhbnQgPSBcIkdyYW50XCIsXHJcbn1cclxuXHJcbi8qKiBJbmRpY2F0ZXMgd2hlcmUgYSBzZXJ2aWNlIHNwZWNpZmljYXRpb24gd2FzIG9yaWdpbmFsbHkgY3JlYXRlZC4gKi9cclxuZXhwb3J0IGVudW0gT3JpZ2luRHRvIHtcclxuICAgIFNlbGYgPSBcIlNlbGZcIixcclxuICAgIEdhZWI5MCA9IFwiR2FlYjkwXCIsXHJcbiAgICBHYWViMjAwMCA9IFwiR2FlYjIwMDBcIixcclxuICAgIEdhZWJYbWwgPSBcIkdhZWJYbWxcIixcclxuICAgIE9lbm9ybSA9IFwiT2Vub3JtXCIsXHJcbiAgICBSZWIgPSBcIlJlYlwiLFxyXG4gICAgU2lhID0gXCJTaWFcIixcclxufVxyXG5cclxuLyoqIEhvbGRzIGdsb2JhbCBwcmljZSBpbmZvcm1hdGlvbiBmb3IgYSBTZXJ2aWNlU3BlY2lmaWNhdGlvbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFByaWNlSW5mb3JtYXRpb25EdG8ge1xyXG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICAvKiogVGhlIGFtb3VudCBvZiBjdXJyZW5jeSBwZXIgb25lIGhvdXIgb2YgbWFudWFsIGxhYm91ciB3b3JrIGluIHRoaXMgcHJvamVjdC4gKi9cclxuICAgIGhvdXJseVdhZ2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIGZpbmFsLCB0b3RhbCBwcmljZSB3aWxsIGJlIGRlZHVjdGVkIGJ5IHRoaXMgcmF0ZS4gKi9cclxuICAgIGRlZHVjdGlvbkZhY3Rvcj86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGlzIGdpdmVuIHdoZW4gdGhlcmUgaXMgb25seSBvbmUgZmxhdCBwcmljZSBmb3IgdGhlIHdob2xlIHNlcnZpY2Ugc3BlY2lmaWNhdGlvbi4gKi9cclxuICAgIGZsYXRTdW0/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogR2xvYmFsIHRheCByYXRlIGZvciB0aGUgcHJvamVjdC4gTm90ZSB0aGF0IGNlcnRhaW4gZWxlbWVudHMgbWF5IGhhdmUgYSBkaWZmZXJlbnQsIHNwZWNpZmljIHRheCByYXRlLiAqL1xyXG4gICAgdGF4UmF0ZT86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHByb3BlcnR5IGluZGljYXRlcyBpZiB0aGUgVGF4UmF0ZSBwcm9wZXJ0eSBpcyBhY3R1YWxseSB6ZXJvICgwKSBvciBpZiBpdCdzIGp1c3QgdW5zZXQuIFRoZSBUYXhSYXRlIGlzIGEgbm9uLW51bGxhYmxlIHByb3BlcnR5LCBzbyBpdCBjYW4ndCBiZSBudWxsIGFuZCB0aGVyZWZvcmUgYSBkaXN0aW5jdGlvbiBiZXR3ZWVuIHVuc2V0IGFuZCB6ZXJvIHJlbGllcyBvbiB0aGlzIGFkZGl0aW9uYWwgcHJvcGVydHkuIFdoZW4gZXhwb3J0aW5nIHRvIEdBRUIsIHRoaXMgY2FuIGJlIHVzZWQgZS5nLiB0byBkZWNpZGUgd2hldGhlciBvciBub3QgdGhlIHRheCByYXRlIHNob3VsZCBiZSBzZXJpYWxpemVkLiBUaGlzIHByb3BlcnR5IGlzIGF1dG9tdGljYWxseSBzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgVGF4UmF0ZSBpcyBzZXQgdG8gYW55IHZhbHVlLCBldmVuIHplcm8uIElmIHRoZSBUYXhSYXRlIGlzIG5vdCBzZXQgdG8gemVybywgdGhpcyBwcm9wZXJ0eSB3aWxsIGFsd2F5cyByZXR1cm4gZmFsc2UgYW5kIGNhbiBub3QgYmUgc2V0IHRvIHRydWUuICovXHJcbiAgICBoYXNVbnNldFRheFJhdGU/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRyYWRlIGRpc2NvdW50cyBmb3Igb2ZmZXJlZCBpbiB0aGlzIFNlcnZpY2VTcGVjaWZpY2F0aW9uLiAqL1xyXG4gICAgdHJhZGVEaXNjb3VudHM/OiBUcmFkZURpc2NvdW50RHRvW10gfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBUaGlzIGNsYXNzIGhvbGRzIGluZm9ybWF0aW9uIGFib3V0IG9mZmVyZWQgdHJhZGUgZGlzY291bnRzIChTa29udG8gaW4gR2VybWFuKSAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFRyYWRlRGlzY291bnREdG8ge1xyXG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICAvKiogVGhlIGFtb3VudCBvZiBkYXlzIGZvciBob3cgbG9uZyBhIGRlY2xhcmVkIHRyYWRlIGRpc2NvdW50IGFwcGxpZXMuIE11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIsIG5lZ2F0aXZlIHZhbHVlcyB3aWxsIGJlIGlnbm9yZWQgYW5kIG5vdCBzZXQuICovXHJcbiAgICBkZWFkbGluZT86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgcmF0ZSBvZiB0aGUgdHJhZGUgZGlzY291bnQuICovXHJcbiAgICByYXRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogVGhpcyBjbGFzcyBkb2VzIG5vdCByZXByZXNlbnQgYSB0eXBpY2FsIGBUaW1lU3BhbmAgYnV0IGhhcyBhIHNjYWxhciB2YWx1ZSBpbnQgRHVyYXRpb24gYW5kIGEgRHVyYXRpb25Vbml0IFVuaXQgdG8gcmVwcmVzZW50IGR1cmF0aW9ucyBhcyB0eXBpY2FsbHkgdXNlZCBpbiBjb250cmFjdHMsIGUuZy4gNSBNb250aHMgKi9cclxuZXhwb3J0IGludGVyZmFjZSBXYXJyYW50eUR1cmF0aW9uRHRvIHtcclxuICAgIC8qKiBUaGUgc2NhbGFyIHZhbHVlIG9mIHRoZSBkdXJhdGlvbi4gVGhpcyB2YWx1ZSBtdXN0IGJlIGVxdWFsIHRvIG9yIGJpZ2dlciB0aGFuIHplcm8gKD49IDApLiBOZWdhdGl2ZSB2YWx1ZXMgY2FuIG5vdCBiZSBzZXQgYW5kIHdpbGwgYmUgaWdub3JlZC4gKi9cclxuICAgIGR1cmF0aW9uPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSB1bml0IG9mIHRoZSBkdXJhdGlvbiAqL1xyXG4gICAgdW5pdD86IER1cmF0aW9uVW5pdER0byB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqIFRoaXMgZW51bWVyYXRpb24gcmVwcmVzZW50cyB0aGUgdW5pdCBvZiBhIGR1cmF0aW9uICovXHJcbmV4cG9ydCBlbnVtIER1cmF0aW9uVW5pdER0byB7XHJcbiAgICBNb250aHMgPSBcIk1vbnRoc1wiLFxyXG4gICAgWWVhcnMgPSBcIlllYXJzXCIsXHJcbn1cclxuXHJcbi8qKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgcHJvcGVydGllcyB1c2VkIGluIGNvbW1lcmNlIGV4Y2hhbmdlIHNjZW5hcmlvcyAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VTcGVjaWZpY2F0aW9uQ29tbWVyY2VQcm9wZXJ0aWVzRHRvIHtcclxuICAgIC8qKiBUaGUgZGF0ZSB1bnRpbCB0aGUgcHJpY2UgaXMgdmFsaWQgb3IgZml4ZWQuICovXHJcbiAgICBmaXhlZFByaWNlRGF0ZT86IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIGRhdGUgb2YgdGhlIGRlbGl2ZXJ5IHZvdWNoZXIgbm90ZS4gKi9cclxuICAgIGRlbGl2ZXJ5Vm91Y2hlckRhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBhY3R1YWwgZGF0ZSBvZiBkZWxpdmVyeS4gKi9cclxuICAgIGRlbGl2ZXJ5RGF0ZT86IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIG51bWJlciBvZiB0aGUgaW5xdWlyeSwgdXN1YWxseSBpbiBhIGNvbnRleHQgb2Ygb2ZmZXIgcmVxdWVzdHMuICovXHJcbiAgICBpbnF1aXJ5TnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBudW1iZXIgb2YgdGhlIG9mZmVyLCB1c3VhbGx5IGluIGEgY29udGV4dCBvZiBhbiBvZmZlci4gKi9cclxuICAgIG9mZmVyTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBvcmRlciBudW1iZXIsIHVzdWFsbHkgaW4gdGhlIGNvbnRleHQgb2YgYSBncmFudCBvciBjb250cmFjdC4gKi9cclxuICAgIG9yZGVyTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBvcmRlciBjb25maXJtYXRpb24gbnVtYmVyICovXHJcbiAgICBvcmRlckNvbmZpcm1hdGlvbk51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgbnVtYmVyIG9mIHRoZSBkZWxpdmVyeSwgZS5nLiBvbiB0aGUgZGVsaXZlcnkgbm90ZSB2b3VjaGVyLiAqL1xyXG4gICAgZGVsaXZlcnlOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIHJlZmVyZW5jZSBudW1iZXIgb2YgdGhlIGN1c3RvbWVyIC8gYnV5ZXIuICovXHJcbiAgICBjdXN0b21lclJlZmVyZW5jZU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgcmVmZXJlbmNlIG51bWJlciBvZiB0aGUgc3VwcGxpZXIgLyBiaWRkZXIuICovXHJcbiAgICBzdXBwbGllclJlZmVyZW5jZU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgdHlwZSBvZiBzaGlwcG1lbnQuICovXHJcbiAgICBzaGlwcGluZ1R5cGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIHR5cGUgb2YgdGhlIHByaWNlIGlucXVpcnkuICovXHJcbiAgICBpbnF1aXJ5VHlwZT86IENvbW1lcmNlSW5xdWlyeVR5cGVEdG8gfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBUaGlzIGVudW0gcmVwcmVzZW50cyB0eXBlcyBvZiBwcmljZSBpbnF1aXJpZXMgKi9cclxuZXhwb3J0IGVudW0gQ29tbWVyY2VJbnF1aXJ5VHlwZUR0byB7XHJcbiAgICBVbmtub3duID0gXCJVbmtub3duXCIsXHJcbiAgICBQcm9qZWN0ID0gXCJQcm9qZWN0XCIsXHJcbiAgICBJbW1lZGlhdGUgPSBcIkltbWVkaWF0ZVwiLFxyXG4gICAgRXhoaWJpdGlvbiA9IFwiRXhoaWJpdGlvblwiLFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsZW1lbnRpbmdQb3NpdGlvbkRhdGEge1xyXG4gICAgcG9zaXRpb25zQnlJZD86IHsgW2tleTogc3RyaW5nXTogUG9zaXRpb25EdG87IH0gfCB1bmRlZmluZWQ7XHJcbiAgICBiYXNlUG9zaXRpb25zPzogeyBba2V5OiBzdHJpbmddOiBQb3NpdGlvbkR0bzsgfSB8IHVuZGVmaW5lZDtcclxuICAgIGNvbXBsZW1lbnRpbmdQb3NpdGlvbklkcz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogQSBQcm9qZWN0IGNvbnRhaW5zIGFsbCByZWxldmFudCBpbmZvcm1hdGlvbiBmb3IgYSBjb25zdHJ1Y3Rpb24gcHJvamVjdC4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0RHRvIHtcclxuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgLyoqIFRoaXMgcHJvcGVydHkgY29udHJvbHMgdGhlIGFjY3VyYWN5IG9mIGFsbCBwcmljZSBwcm9wZXJ0aWVzLCBtZWFuaW5nIGhvdyBtYW55IGRlY2ltYWwgcGxhY2VzIGFyZSBwcmVzZXJ2ZWQgaW4gY2FsY3VsYXRpb25zLiBJdCBkZWZhdWx0cyB0byBERUZBVUxUX1BSSUNFX0FDQ1VSQUNZLiBQbGVhc2Ugc2VlIHRoZSBEYW5nbC5BVkEgZG9jdW1lbnRhdGlvbiBmb3IgZnVydGhlciBpbmZvcm1hdGlvbiBhYm91dCBkZWNpbWFsIHByZWNpc2lvbi4gSWYgVW5pdFByaWNlQWNjdXJhY3kgaXMgc2V0LCB0aGVuIHRoaXMgcHJvcGVydHkgaXMgaWdub3JlZCBmb3IgdW5pdCBwcmljZXMuICovXHJcbiAgICBwcmljZUFjY3VyYWN5PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgcHJvcGVydHkgY29udHJvbHMgdGhlIGFjY3VyYWN5IG9mIHBvc2l0aW9uIHVuaXQgcHJpY2UgcHJvcGVydGllcywgbWVhbmluZyBob3cgbWFueSBkZWNpbWFsIHBsYWNlcyBhcmUgcHJlc2VydmVkIGluIGNhbGN1bGF0aW9ucy4gUGxlYXNlIHNlZSB0aGUgRGFuZ2wuQVZBIGRvY3VtZW50YXRpb24gZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gYWJvdXQgZGVjaW1hbCBwcmVjaXNpb24uIFRoaXMgY2FuIGJlIHNlcGFyYXRlbHkgc2V0IGZyb20gUHJpY2VBY2N1cmFjeSwgYW5kIGl0IG9ubHkgY29udHJvbHMgdGhlIGFjY3VyYWN5IG9mIHRoZSB1bml0IHByaWNlIG9mIHBvc2l0aW9ucywgbm90IHRoZSB0b3RhbCBwcmljZS4gSXQgZGVmYXVsdHMgdG8gbnVsbCwgd2hpY2ggbWVhbnMgdGhlIHN0YW5kYXJkIFByaWNlQWNjdXJhY3kgaXMgdXNlZCBmb3IgdW5pdCBwcmljZXMuICovXHJcbiAgICB1bml0UHJpY2VBY2N1cmFjeT86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGZvcmNlcyB0b3RhbCBwcmljZXMgdG8gYmUgdGhlIHN0cmljdCBwcm9kdWN0IG9mIHF1YW50aXRpZXMgdGltZXMgdW5pdCBwcmljZSBpbiBwb3NpdGlvbnMuIEl0IGlzIGVuYWJsZWQgYnkgZGVmYXVsdC4gSWYgdGhpcyBpcyBkaXNhYmxlZCwgYm90aCB0aGUgdW5pdCBwcmljZSBhbmQgdGhlIHRvdGFsIHByaWNlIG9mIHBvc2l0aW9ucyBpcyBjYWxjdWxhdGVkIGZyb20gdGhlIG5vbi1yb3VuZGVkIHZhbHVlcy4gUGxlYXNlIHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgYSBtb3JlIGRldGFpbGVkIGV4cGxhbmF0aW9uIG9mIHRoaXMgc2V0dGluZy4gKi9cclxuICAgIGZvcmNlU3RyaWN0VG90YWxzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHByb3BlcnR5IGNvbnRyb2xzIHRoZSByb3VuZGluZyBtb2RlIG9mIGFsbCBwcmljZSBwcm9wZXJ0aWVzLCBtZWFuaW5nIGhvdyByb3VuZGluZyBvZiBkZWNpbWFsIHBsYWNlcyBpcyBwZXJmb3JtZWQgaW4gcHJpY2UgY2FsY3VsYXRpb25zLiBJdCBkZWZhdWx0cyB0byBERUZBVUxUX1JPVU5ESU5HX01PREUuIFBsZWFzZSBzZWUgdGhlIERhbmdsLkFWQSBkb2N1bWVudGF0aW9uIGZvciBmdXJ0aGVyIGluZm9ybWF0aW9uIGFib3V0IGRlY2ltYWwgcHJlY2lzaW9uLiAqL1xyXG4gICAgcHJpY2VSb3VuZGluZ01vZGU/OiBQcmljZVJvdW5kaW5nTW9kZUR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgUHJvamVjdEluZm9ybWF0aW9uIGNvbnRhaW5zIGluZm9ybWF0aW9uIHRoYXQgZGVzY3JpYmVzIHRoZSBwcm9qZWN0IGFuZCBpdHMgc3RydWN0dXJlLiAqL1xyXG4gICAgcHJvamVjdEluZm9ybWF0aW9uPzogUHJvamVjdEluZm9ybWF0aW9uRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbnMgaW4gdGhpcyBQcm9qZWN0LiAqL1xyXG4gICAgc2VydmljZVNwZWNpZmljYXRpb25zPzogU2VydmljZVNwZWNpZmljYXRpb25EdG9bXSB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGlzIHVzZWQgdG8gc3RvcmUgdGhlIEdBRUIgWE1MIElkIHdpdGhpbiB0aGlzIFByb2plY3QuIFRoaXMgZGF0YSBpcyBub3QgdXNlZCBmb3IgYW55IGNhbGN1bGF0aW9ucyBvciBldmFsdWF0aW9ucyBidXQgb25seSBmb3IgR0FFQiBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24uICovXHJcbiAgICBnYWViWG1sSWQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWF2YS9zcmMvbGliL2F2YS10cmVlL3RyZWUvbW9kZWwvY29udGV4dC1tZW51LWRhdGEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElFbGVtZW50RHRvIH0gZnJvbSAnLi9hdmEtbW9kZWxzJztcclxuXHJcbmV4cG9ydCB0eXBlIENvbnRleHRNZW51RGF0YVR5cGUgPSB7XHJcbiAgcG9zaXRpb246IHsgeDogc3RyaW5nOyB5OiBzdHJpbmcgfTtcclxuICBub2RlOiBJRWxlbWVudER0bztcclxufTtcclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tdmlldy1saW5lLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL21vZGVsL2Z1bmN0aW9uLXZpZXctbGluZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJRnVuY3Rpb25WaWV3TGluZSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGZ1bmM6IChlbGVtZW50OiBhbnksIHJlc3VsdD86IGFueSkgPT4gYm9vbGVhbjtcclxuICB2aWV3OiBJVmlld0xpbmU7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVZpZXdMaW5lIHtcclxuICBpY29uTmFtZT86IHN0cmluZztcclxuICBpY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgdGV4dEJvbGQ/OiBzdHJpbmc7XHJcbiAgdGV4dENvbG9yPzogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ import { ExchangePhaseDto, ItemNumberSchemaTierTypeDto, ItemNumberTypeDto, OriginDto, PriceRoundingModeDto, PriceTypeDto } from './ava-models';
2
+ import { ModeViewType } from './tree-mode.model';
3
+ export { ModeViewType, ExchangePhaseDto, ItemNumberSchemaTierTypeDto, ItemNumberTypeDto, OriginDto, PriceRoundingModeDto, PriceTypeDto };
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWF2YS9zcmMvbGliL2F2YS10cmVlL3RyZWUvbW9kZWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdCQUFnQixFQUloQiwyQkFBMkIsRUFDM0IsaUJBQWlCLEVBRWpCLFNBQVMsRUFFVCxvQkFBb0IsRUFDcEIsWUFBWSxFQUliLE1BQU0sY0FBYyxDQUFDO0FBS3RCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxPQUFPLEVBVUwsWUFBWSxFQUtaLGdCQUFnQixFQUNoQiwyQkFBMkIsRUFDM0IsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxvQkFBb0IsRUFDcEIsWUFBWSxFQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEV4Y2hhbmdlUGhhc2VEdG8sXHJcbiAgRXhlY3V0aW9uRGVzY3JpcHRpb25EdG8sXHJcbiAgSUVsZW1lbnREdG8sXHJcbiAgSXRlbU51bWJlckR0byxcclxuICBJdGVtTnVtYmVyU2NoZW1hVGllclR5cGVEdG8sXHJcbiAgSXRlbU51bWJlclR5cGVEdG8sXHJcbiAgTm90ZVRleHREdG8sXHJcbiAgT3JpZ2luRHRvLFxyXG4gIFBvc2l0aW9uRHRvLFxyXG4gIFByaWNlUm91bmRpbmdNb2RlRHRvLFxyXG4gIFByaWNlVHlwZUR0byxcclxuICBQcm9qZWN0RHRvLFxyXG4gIFNlcnZpY2VTcGVjaWZpY2F0aW9uRHRvLFxyXG4gIFNlcnZpY2VTcGVjaWZpY2F0aW9uR3JvdXBEdG9cclxufSBmcm9tICcuL2F2YS1tb2RlbHMnO1xyXG5pbXBvcnQgeyBDb250ZXh0TWVudURhdGFUeXBlIH0gZnJvbSAnLi9jb250ZXh0LW1lbnUtZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7IElGdW5jdGlvblZpZXdMaW5lLCBJVmlld0xpbmUgfSBmcm9tICcuL2Z1bmN0aW9uLXZpZXctbGluZS5tb2RlbCc7XHJcbmltcG9ydCB7IFNlbGVjdGVkRWxlbWVudCB9IGZyb20gJy4vc2VsZWN0aW5nLm1vZGVsJztcclxuaW1wb3J0IHsgVGFibGVDb2x1bW5UeXBlIH0gZnJvbSAnLi90YWJsZUNvbHVtblR5cGUnO1xyXG5pbXBvcnQgeyBNb2RlVmlld1R5cGUgfSBmcm9tICcuL3RyZWUtbW9kZS5tb2RlbCc7XHJcblxyXG5leHBvcnQge1xyXG4gIFByb2plY3REdG8sXHJcbiAgU2VydmljZVNwZWNpZmljYXRpb25EdG8sXHJcbiAgSUVsZW1lbnREdG8sXHJcbiAgUG9zaXRpb25EdG8sXHJcbiAgRXhlY3V0aW9uRGVzY3JpcHRpb25EdG8sXHJcbiAgTm90ZVRleHREdG8sXHJcbiAgU2VydmljZVNwZWNpZmljYXRpb25Hcm91cER0byxcclxuICBJdGVtTnVtYmVyRHRvLFxyXG4gIFNlbGVjdGVkRWxlbWVudCxcclxuICBNb2RlVmlld1R5cGUsXHJcbiAgVGFibGVDb2x1bW5UeXBlLFxyXG4gIElGdW5jdGlvblZpZXdMaW5lLFxyXG4gIElWaWV3TGluZSxcclxuICBDb250ZXh0TWVudURhdGFUeXBlLFxyXG4gIEV4Y2hhbmdlUGhhc2VEdG8sXHJcbiAgSXRlbU51bWJlclNjaGVtYVRpZXJUeXBlRHRvLFxyXG4gIEl0ZW1OdW1iZXJUeXBlRHRvLFxyXG4gIE9yaWdpbkR0byxcclxuICBQcmljZVJvdW5kaW5nTW9kZUR0byxcclxuICBQcmljZVR5cGVEdG9cclxufTtcclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW5nLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL21vZGVsL3NlbGVjdGluZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTZWxlY3RlZEVsZW1lbnQge1xyXG4gIGVsZW1lbnRJZDogc3RyaW5nO1xyXG4gIGNoaWxkcmVuPzogU2VsZWN0ZWRFbGVtZW50W10gfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTZWxlY3RpbmdFbGVtZW50c1R5cGUgPSB7XHJcbiAgZWxlbWVudElkOiBzdHJpbmc7XHJcbiAgY2hpbGRyZW4/OiBTZWxlY3RpbmdFbGVtZW50c1R5cGVbXTtcclxuICBwYXJlbnQ/OiBTZWxlY3RpbmdFbGVtZW50c1R5cGUgfCBudWxsO1xyXG4gIGNoZWNrZWQ/OiBib29sZWFuO1xyXG4gIGluZGV0ZXJtaW5hdGU/OiBib29sZWFuO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgU2VsZWN0aW5nRWxlbWVudHNPYmplY3RUeXBlID0ge1xyXG4gIFtlbGVtZW50SWQ6IHN0cmluZ106IFNlbGVjdGluZ0VsZW1lbnRzVHlwZTtcclxufTtcclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVDb2x1bW5UeXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL21vZGVsL3RhYmxlQ29sdW1uVHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgVGFibGVDb2x1bW5UeXBlID0ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGFsaWduPzogc3RyaW5nO1xyXG4gIG51bWJlckZvcm1hdD86IHN0cmluZztcclxufTtcclxuIl19
@@ -0,0 +1,7 @@
1
+ export var ModeViewType;
2
+ (function (ModeViewType) {
3
+ ModeViewType["Tree"] = "Tree";
4
+ ModeViewType["List"] = "List";
5
+ ModeViewType["Table"] = "Table";
6
+ })(ModeViewType || (ModeViewType = {}));
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1tb2RlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL21vZGVsL3RyZWUtbW9kZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxZQUlYO0FBSkQsV0FBWSxZQUFZO0lBQ3RCLDZCQUFhLENBQUE7SUFDYiw2QkFBYSxDQUFBO0lBQ2IsK0JBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSlcsWUFBWSxLQUFaLFlBQVksUUFJdkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBNb2RlVmlld1R5cGUge1xyXG4gIFRyZWUgPSAnVHJlZScsXHJcbiAgTGlzdCA9ICdMaXN0JyxcclxuICBUYWJsZSA9ICdUYWJsZSdcclxufVxyXG4iXX0=
@@ -0,0 +1,27 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ElementIconNamePipe {
4
+ transform(element, arg) {
5
+ switch (element.elementTypeDiscriminator) {
6
+ case 'NoteTextDto':
7
+ return 'subject';
8
+ case 'ExecutionDescriptionDto':
9
+ return 'event';
10
+ case 'ServiceSpecificationGroupDto':
11
+ return 'folder_open';
12
+ case 'PositionDto':
13
+ return 'add';
14
+ default:
15
+ return '';
16
+ }
17
+ }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: ElementIconNamePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
19
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: ElementIconNamePipe, name: "elementIconName" }); }
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: ElementIconNamePipe, decorators: [{
22
+ type: Pipe,
23
+ args: [{
24
+ name: 'elementIconName'
25
+ }]
26
+ }] });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1pY29uLW5hbWUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvYXZhLXRyZWUvdHJlZS9waXBlcy9lbGVtZW50LWljb24tbmFtZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU9wRCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFNBQVMsQ0FBQyxPQUFvQixFQUFFLEdBQVk7UUFDMUMsUUFBUSxPQUFPLENBQUMsd0JBQXdCLEVBQUU7WUFDeEMsS0FBSyxhQUFhO2dCQUNoQixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLHlCQUF5QjtnQkFDNUIsT0FBTyxPQUFPLENBQUM7WUFDakIsS0FBSyw4QkFBOEI7Z0JBQ2pDLE9BQU8sYUFBYSxDQUFDO1lBQ3ZCLEtBQUssYUFBYTtnQkFDaEIsT0FBTyxLQUFLLENBQUM7WUFDZjtnQkFDRSxPQUFPLEVBQUUsQ0FBQztTQUNiO0lBQ0gsQ0FBQzs4R0FkVSxtQkFBbUI7NEdBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFIL0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsaUJBQWlCO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IElFbGVtZW50RHRvIH0gZnJvbSAnLi4vbW9kZWwnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdlbGVtZW50SWNvbk5hbWUnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFbGVtZW50SWNvbk5hbWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtKGVsZW1lbnQ6IElFbGVtZW50RHRvLCBhcmc/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgc3dpdGNoIChlbGVtZW50LmVsZW1lbnRUeXBlRGlzY3JpbWluYXRvcikge1xyXG4gICAgICBjYXNlICdOb3RlVGV4dER0byc6XHJcbiAgICAgICAgcmV0dXJuICdzdWJqZWN0JztcclxuICAgICAgY2FzZSAnRXhlY3V0aW9uRGVzY3JpcHRpb25EdG8nOlxyXG4gICAgICAgIHJldHVybiAnZXZlbnQnO1xyXG4gICAgICBjYXNlICdTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwRHRvJzpcclxuICAgICAgICByZXR1cm4gJ2ZvbGRlcl9vcGVuJztcclxuICAgICAgY2FzZSAnUG9zaXRpb25EdG8nOlxyXG4gICAgICAgIHJldHVybiAnYWRkJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ElementItemNumberPipe {
4
+ transform(element, arg) {
5
+ switch (element.elementTypeDiscriminator) {
6
+ case 'ServiceSpecificationGroupDto':
7
+ return element.itemNumber?.stringRepresentation || '';
8
+ case 'PositionDto':
9
+ return element.itemNumber?.stringRepresentation || '';
10
+ default:
11
+ return '';
12
+ }
13
+ }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: ElementItemNumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
15
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: ElementItemNumberPipe, name: "elementItemNumber" }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: ElementItemNumberPipe, decorators: [{
18
+ type: Pipe,
19
+ args: [{
20
+ name: 'elementItemNumber'
21
+ }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1pdGVtLW51bWJlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL3BpcGVzL2VsZW1lbnQtaXRlbS1udW1iZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFPcEQsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxTQUFTLENBQUMsT0FBb0IsRUFBRSxHQUFZO1FBQzFDLFFBQVEsT0FBTyxDQUFDLHdCQUF3QixFQUFFO1lBQ3hDLEtBQUssOEJBQThCO2dCQUNqQyxPQUFRLE9BQXdDLENBQUMsVUFBVSxFQUFFLG9CQUFvQixJQUFJLEVBQUUsQ0FBQztZQUMxRixLQUFLLGFBQWE7Z0JBQ2hCLE9BQVEsT0FBdUIsQ0FBQyxVQUFVLEVBQUUsb0JBQW9CLElBQUksRUFBRSxDQUFDO1lBQ3pFO2dCQUNFLE9BQU8sRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDOzhHQVZVLHFCQUFxQjs0R0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUhqQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxtQkFBbUI7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgSUVsZW1lbnREdG8sIFBvc2l0aW9uRHRvLCBTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwRHRvIH0gZnJvbSAnLi4vbW9kZWwnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdlbGVtZW50SXRlbU51bWJlcidcclxufSlcclxuZXhwb3J0IGNsYXNzIEVsZW1lbnRJdGVtTnVtYmVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybShlbGVtZW50OiBJRWxlbWVudER0bywgYXJnPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAoZWxlbWVudC5lbGVtZW50VHlwZURpc2NyaW1pbmF0b3IpIHtcclxuICAgICAgY2FzZSAnU2VydmljZVNwZWNpZmljYXRpb25Hcm91cER0byc6XHJcbiAgICAgICAgcmV0dXJuIChlbGVtZW50IGFzIFNlcnZpY2VTcGVjaWZpY2F0aW9uR3JvdXBEdG8pLml0ZW1OdW1iZXI/LnN0cmluZ1JlcHJlc2VudGF0aW9uIHx8ICcnO1xyXG4gICAgICBjYXNlICdQb3NpdGlvbkR0byc6XHJcbiAgICAgICAgcmV0dXJuIChlbGVtZW50IGFzIFBvc2l0aW9uRHRvKS5pdGVtTnVtYmVyPy5zdHJpbmdSZXByZXNlbnRhdGlvbiB8fCAnJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==