@pulumi/scm 1.0.0-alpha.1762572739 → 1.0.0-alpha.1763072395

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.
@@ -5,6 +5,257 @@ import * as outputs from "./types/output";
5
5
  * VulnerabilityProtectionProfile resource
6
6
  *
7
7
  * ## Example Usage
8
+ *
9
+ * ```typescript
10
+ * import * as pulumi from "@pulumi/pulumi";
11
+ * import * as scm from "@pulumi/scm";
12
+ *
13
+ * const scmVpProfile1Test = new scm.VulnerabilityProtectionProfile("scm_vp_profile_1_test", {
14
+ * folder: "Shared",
15
+ * name: "vp-profile-1-test",
16
+ * description: "basic profile",
17
+ * });
18
+ * const scmVpProfile2Test = new scm.VulnerabilityProtectionProfile("scm_vp_profile_2_test", {
19
+ * folder: "Shared",
20
+ * name: "vp-profile-2-test",
21
+ * description: "rules: allow, alert, and drop",
22
+ * rules: [
23
+ * {
24
+ * name: "Rule-Informational-Allow",
25
+ * action: {
26
+ * allow: {},
27
+ * },
28
+ * packetCapture: "extended-capture",
29
+ * severity: ["informational"],
30
+ * category: "scan",
31
+ * cve: ["N/A"],
32
+ * host: "client",
33
+ * vendorId: ["Match Any Vendor"],
34
+ * threatName: "30000",
35
+ * },
36
+ * {
37
+ * name: "Rule-Medium-Alert",
38
+ * action: {
39
+ * alert: {},
40
+ * },
41
+ * packetCapture: "single-packet",
42
+ * severity: ["medium"],
43
+ * category: "info-leak",
44
+ * cve: ["Match Any CVE"],
45
+ * host: "server",
46
+ * vendorId: ["MS08-037"],
47
+ * threatName: "OpenSSL Threat",
48
+ * },
49
+ * {
50
+ * name: "Rule-Critical-High-Drop",
51
+ * action: {
52
+ * drop: {},
53
+ * },
54
+ * packetCapture: "disable",
55
+ * severity: [
56
+ * "critical",
57
+ * "high",
58
+ * ],
59
+ * category: "overflow",
60
+ * cve: ["CVE-2008-1147"],
61
+ * host: "any",
62
+ * vendorId: ["Match Any Vendor"],
63
+ * threatName: "any",
64
+ * },
65
+ * ],
66
+ * });
67
+ * const scmVpProfile3Test = new scm.VulnerabilityProtectionProfile("scm_vp_profile_3_test", {
68
+ * folder: "Shared",
69
+ * name: "vp-profile-3-test",
70
+ * description: "rules: reset client, reset server, reset both",
71
+ * rules: [
72
+ * {
73
+ * name: "Rule-Low-Reset_Client",
74
+ * action: {
75
+ * resetClient: {},
76
+ * },
77
+ * severity: ["low"],
78
+ * category: "protocol-anomaly",
79
+ * cve: [
80
+ * "CVE-2010-3332",
81
+ * "CVE-2019-14537",
82
+ * ],
83
+ * host: "client",
84
+ * vendorId: [
85
+ * "MSO5-032",
86
+ * "IZ18434",
87
+ * ],
88
+ * threatName: "30261",
89
+ * },
90
+ * {
91
+ * name: "Rule-Info-Low-Reset_Server",
92
+ * action: {
93
+ * resetServer: {},
94
+ * },
95
+ * packetCapture: "disable",
96
+ * severity: [
97
+ * "informational",
98
+ * "low",
99
+ * ],
100
+ * category: "insecure-credentials",
101
+ * cve: ["N/A"],
102
+ * host: "server",
103
+ * vendorId: ["Match Any Vendor"],
104
+ * threatName: "Zone Bypass",
105
+ * },
106
+ * {
107
+ * name: "Rule-Medium-Reset_Both",
108
+ * action: {
109
+ * resetBoth: {},
110
+ * },
111
+ * packetCapture: "single-packet",
112
+ * severity: ["medium"],
113
+ * category: "brute-force",
114
+ * cve: [
115
+ * "CVE-2012-0175",
116
+ * "CVE-2024-6387",
117
+ * "CVE-2017-14473",
118
+ * ],
119
+ * host: "any",
120
+ * vendorId: [
121
+ * "CORE-1009-0227",
122
+ * "SHIRO-550",
123
+ * "AST-2012-008",
124
+ * ],
125
+ * threatName: "any",
126
+ * },
127
+ * ],
128
+ * });
129
+ * const scmVpProfile4Test = new scm.VulnerabilityProtectionProfile("scm_vp_profile_4_test", {
130
+ * folder: "Shared",
131
+ * name: "vp-profile-4-test",
132
+ * description: "rules: block ip",
133
+ * rules: [
134
+ * {
135
+ * name: "Rule-High-Critical-Block_IP",
136
+ * action: {
137
+ * blockIp: {
138
+ * duration: 3600,
139
+ * trackBy: "source-and-destination",
140
+ * },
141
+ * },
142
+ * severity: [
143
+ * "high",
144
+ * "critical",
145
+ * ],
146
+ * category: "insecure-credentials",
147
+ * cve: ["N/A"],
148
+ * host: "server",
149
+ * vendorId: ["Match Any Vendor"],
150
+ * threatName: "Zone Credentials",
151
+ * },
152
+ * {
153
+ * name: "Rule-Low-Medium-Block_IP",
154
+ * action: {
155
+ * blockIp: {
156
+ * duration: 2400,
157
+ * trackBy: "source-and-destination",
158
+ * },
159
+ * },
160
+ * severity: [
161
+ * "low",
162
+ * "medium",
163
+ * ],
164
+ * category: "command-execution",
165
+ * cve: ["N/A"],
166
+ * host: "server",
167
+ * vendorId: ["Match Any Vendor"],
168
+ * threatName: "any",
169
+ * },
170
+ * ],
171
+ * });
172
+ * const scmVpProfile5Test = new scm.VulnerabilityProtectionProfile("scm_vp_profile_5_test", {
173
+ * folder: "Shared",
174
+ * name: "vp-profile-5-test",
175
+ * description: "override",
176
+ * threatExceptions: [{
177
+ * name: "12345",
178
+ * action: {
179
+ * allow: {},
180
+ * },
181
+ * severity: ["informational"],
182
+ * category: "command-execution",
183
+ * exemptIp: [{
184
+ * name: "192.14.3.100",
185
+ * }],
186
+ * timeAttribute: {
187
+ * interval: 3600,
188
+ * threshold: 24000,
189
+ * trackBy: "source",
190
+ * },
191
+ * }],
192
+ * });
193
+ * const scmVpProfile6Test = new scm.VulnerabilityProtectionProfile("scm_vp_profile_6_test", {
194
+ * folder: "Shared",
195
+ * name: "vp-profile-6-test",
196
+ * description: "mixed",
197
+ * rules: [
198
+ * {
199
+ * name: "Rule-Info-Rest_Both",
200
+ * action: {
201
+ * allow: {},
202
+ * },
203
+ * packetCapture: "disable",
204
+ * severity: ["informational"],
205
+ * category: "exploit-kit",
206
+ * cve: ["N/A"],
207
+ * host: "client",
208
+ * vendorId: ["Match Any Vendor"],
209
+ * threatName: "30000",
210
+ * },
211
+ * {
212
+ * name: "Rule-Low-Alert",
213
+ * action: {
214
+ * alert: {},
215
+ * },
216
+ * packetCapture: "single-packet",
217
+ * severity: ["low"],
218
+ * category: "dos",
219
+ * cve: ["CVE-2020-8790"],
220
+ * host: "server",
221
+ * vendorId: ["MS09-036"],
222
+ * threatName: "Memory Corruption",
223
+ * },
224
+ * {
225
+ * name: "Rule-Medium-Drop",
226
+ * action: {
227
+ * drop: {},
228
+ * },
229
+ * packetCapture: "disable",
230
+ * severity: [
231
+ * "medium",
232
+ * "high",
233
+ * ],
234
+ * category: "insecure-credentials",
235
+ * cve: ["N/A"],
236
+ * host: "any",
237
+ * vendorId: ["Match Any Vendor"],
238
+ * threatName: "any",
239
+ * },
240
+ * ],
241
+ * threatExceptions: [{
242
+ * name: "12345",
243
+ * action: {
244
+ * drop: {},
245
+ * },
246
+ * packetCapture: "single-packet",
247
+ * host: "any",
248
+ * category: "scan",
249
+ * cve: [
250
+ * "CVE-2011-2663",
251
+ * "CVE-2016-9949",
252
+ * ],
253
+ * exemptIp: [{
254
+ * name: "192.14.3.100",
255
+ * }],
256
+ * }],
257
+ * });
258
+ * ```
8
259
  */
9
260
  export declare class VulnerabilityProtectionProfile extends pulumi.CustomResource {
10
261
  /**
@@ -9,6 +9,257 @@ const utilities = require("./utilities");
9
9
  * VulnerabilityProtectionProfile resource
10
10
  *
11
11
  * ## Example Usage
12
+ *
13
+ * ```typescript
14
+ * import * as pulumi from "@pulumi/pulumi";
15
+ * import * as scm from "@pulumi/scm";
16
+ *
17
+ * const scmVpProfile1Test = new scm.VulnerabilityProtectionProfile("scm_vp_profile_1_test", {
18
+ * folder: "Shared",
19
+ * name: "vp-profile-1-test",
20
+ * description: "basic profile",
21
+ * });
22
+ * const scmVpProfile2Test = new scm.VulnerabilityProtectionProfile("scm_vp_profile_2_test", {
23
+ * folder: "Shared",
24
+ * name: "vp-profile-2-test",
25
+ * description: "rules: allow, alert, and drop",
26
+ * rules: [
27
+ * {
28
+ * name: "Rule-Informational-Allow",
29
+ * action: {
30
+ * allow: {},
31
+ * },
32
+ * packetCapture: "extended-capture",
33
+ * severity: ["informational"],
34
+ * category: "scan",
35
+ * cve: ["N/A"],
36
+ * host: "client",
37
+ * vendorId: ["Match Any Vendor"],
38
+ * threatName: "30000",
39
+ * },
40
+ * {
41
+ * name: "Rule-Medium-Alert",
42
+ * action: {
43
+ * alert: {},
44
+ * },
45
+ * packetCapture: "single-packet",
46
+ * severity: ["medium"],
47
+ * category: "info-leak",
48
+ * cve: ["Match Any CVE"],
49
+ * host: "server",
50
+ * vendorId: ["MS08-037"],
51
+ * threatName: "OpenSSL Threat",
52
+ * },
53
+ * {
54
+ * name: "Rule-Critical-High-Drop",
55
+ * action: {
56
+ * drop: {},
57
+ * },
58
+ * packetCapture: "disable",
59
+ * severity: [
60
+ * "critical",
61
+ * "high",
62
+ * ],
63
+ * category: "overflow",
64
+ * cve: ["CVE-2008-1147"],
65
+ * host: "any",
66
+ * vendorId: ["Match Any Vendor"],
67
+ * threatName: "any",
68
+ * },
69
+ * ],
70
+ * });
71
+ * const scmVpProfile3Test = new scm.VulnerabilityProtectionProfile("scm_vp_profile_3_test", {
72
+ * folder: "Shared",
73
+ * name: "vp-profile-3-test",
74
+ * description: "rules: reset client, reset server, reset both",
75
+ * rules: [
76
+ * {
77
+ * name: "Rule-Low-Reset_Client",
78
+ * action: {
79
+ * resetClient: {},
80
+ * },
81
+ * severity: ["low"],
82
+ * category: "protocol-anomaly",
83
+ * cve: [
84
+ * "CVE-2010-3332",
85
+ * "CVE-2019-14537",
86
+ * ],
87
+ * host: "client",
88
+ * vendorId: [
89
+ * "MSO5-032",
90
+ * "IZ18434",
91
+ * ],
92
+ * threatName: "30261",
93
+ * },
94
+ * {
95
+ * name: "Rule-Info-Low-Reset_Server",
96
+ * action: {
97
+ * resetServer: {},
98
+ * },
99
+ * packetCapture: "disable",
100
+ * severity: [
101
+ * "informational",
102
+ * "low",
103
+ * ],
104
+ * category: "insecure-credentials",
105
+ * cve: ["N/A"],
106
+ * host: "server",
107
+ * vendorId: ["Match Any Vendor"],
108
+ * threatName: "Zone Bypass",
109
+ * },
110
+ * {
111
+ * name: "Rule-Medium-Reset_Both",
112
+ * action: {
113
+ * resetBoth: {},
114
+ * },
115
+ * packetCapture: "single-packet",
116
+ * severity: ["medium"],
117
+ * category: "brute-force",
118
+ * cve: [
119
+ * "CVE-2012-0175",
120
+ * "CVE-2024-6387",
121
+ * "CVE-2017-14473",
122
+ * ],
123
+ * host: "any",
124
+ * vendorId: [
125
+ * "CORE-1009-0227",
126
+ * "SHIRO-550",
127
+ * "AST-2012-008",
128
+ * ],
129
+ * threatName: "any",
130
+ * },
131
+ * ],
132
+ * });
133
+ * const scmVpProfile4Test = new scm.VulnerabilityProtectionProfile("scm_vp_profile_4_test", {
134
+ * folder: "Shared",
135
+ * name: "vp-profile-4-test",
136
+ * description: "rules: block ip",
137
+ * rules: [
138
+ * {
139
+ * name: "Rule-High-Critical-Block_IP",
140
+ * action: {
141
+ * blockIp: {
142
+ * duration: 3600,
143
+ * trackBy: "source-and-destination",
144
+ * },
145
+ * },
146
+ * severity: [
147
+ * "high",
148
+ * "critical",
149
+ * ],
150
+ * category: "insecure-credentials",
151
+ * cve: ["N/A"],
152
+ * host: "server",
153
+ * vendorId: ["Match Any Vendor"],
154
+ * threatName: "Zone Credentials",
155
+ * },
156
+ * {
157
+ * name: "Rule-Low-Medium-Block_IP",
158
+ * action: {
159
+ * blockIp: {
160
+ * duration: 2400,
161
+ * trackBy: "source-and-destination",
162
+ * },
163
+ * },
164
+ * severity: [
165
+ * "low",
166
+ * "medium",
167
+ * ],
168
+ * category: "command-execution",
169
+ * cve: ["N/A"],
170
+ * host: "server",
171
+ * vendorId: ["Match Any Vendor"],
172
+ * threatName: "any",
173
+ * },
174
+ * ],
175
+ * });
176
+ * const scmVpProfile5Test = new scm.VulnerabilityProtectionProfile("scm_vp_profile_5_test", {
177
+ * folder: "Shared",
178
+ * name: "vp-profile-5-test",
179
+ * description: "override",
180
+ * threatExceptions: [{
181
+ * name: "12345",
182
+ * action: {
183
+ * allow: {},
184
+ * },
185
+ * severity: ["informational"],
186
+ * category: "command-execution",
187
+ * exemptIp: [{
188
+ * name: "192.14.3.100",
189
+ * }],
190
+ * timeAttribute: {
191
+ * interval: 3600,
192
+ * threshold: 24000,
193
+ * trackBy: "source",
194
+ * },
195
+ * }],
196
+ * });
197
+ * const scmVpProfile6Test = new scm.VulnerabilityProtectionProfile("scm_vp_profile_6_test", {
198
+ * folder: "Shared",
199
+ * name: "vp-profile-6-test",
200
+ * description: "mixed",
201
+ * rules: [
202
+ * {
203
+ * name: "Rule-Info-Rest_Both",
204
+ * action: {
205
+ * allow: {},
206
+ * },
207
+ * packetCapture: "disable",
208
+ * severity: ["informational"],
209
+ * category: "exploit-kit",
210
+ * cve: ["N/A"],
211
+ * host: "client",
212
+ * vendorId: ["Match Any Vendor"],
213
+ * threatName: "30000",
214
+ * },
215
+ * {
216
+ * name: "Rule-Low-Alert",
217
+ * action: {
218
+ * alert: {},
219
+ * },
220
+ * packetCapture: "single-packet",
221
+ * severity: ["low"],
222
+ * category: "dos",
223
+ * cve: ["CVE-2020-8790"],
224
+ * host: "server",
225
+ * vendorId: ["MS09-036"],
226
+ * threatName: "Memory Corruption",
227
+ * },
228
+ * {
229
+ * name: "Rule-Medium-Drop",
230
+ * action: {
231
+ * drop: {},
232
+ * },
233
+ * packetCapture: "disable",
234
+ * severity: [
235
+ * "medium",
236
+ * "high",
237
+ * ],
238
+ * category: "insecure-credentials",
239
+ * cve: ["N/A"],
240
+ * host: "any",
241
+ * vendorId: ["Match Any Vendor"],
242
+ * threatName: "any",
243
+ * },
244
+ * ],
245
+ * threatExceptions: [{
246
+ * name: "12345",
247
+ * action: {
248
+ * drop: {},
249
+ * },
250
+ * packetCapture: "single-packet",
251
+ * host: "any",
252
+ * category: "scan",
253
+ * cve: [
254
+ * "CVE-2011-2663",
255
+ * "CVE-2016-9949",
256
+ * ],
257
+ * exemptIp: [{
258
+ * name: "192.14.3.100",
259
+ * }],
260
+ * }],
261
+ * });
262
+ * ```
12
263
  */
13
264
  class VulnerabilityProtectionProfile extends pulumi.CustomResource {
14
265
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"vulnerabilityProtectionProfile.js","sourceRoot":"","sources":["../vulnerabilityProtectionProfile.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AAGzC,yCAAyC;AAEzC;;;;GAIG;AACH,MAAa,8BAA+B,SAAQ,MAAM,CAAC,cAAc;IACrE;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAA2C,EAAE,IAAmC;QACzI,OAAO,IAAI,8BAA8B,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrF,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,8BAA8B,CAAC,YAAY,CAAC;IAC/E,CAAC;IAwCD,YAAY,IAAY,EAAE,WAAsF,EAAE,IAAmC;QACjJ,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAA8D,CAAC;YAC7E,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC;YACnD,cAAc,CAAC,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC;YACzC,cAAc,CAAC,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC;YACzC,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,OAAO,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC;YACvC,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;YAC3C,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,kBAAkB,CAAC,GAAG,KAAK,EAAE,gBAAgB,CAAC;SAChE;aAAM;YACH,MAAM,IAAI,GAAG,WAA6D,CAAC;YAC3E,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC;YAClD,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;YACxC,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;YACxC,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;YACpC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC;YACtC,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC;YAC1C,cAAc,CAAC,kBAAkB,CAAC,GAAG,IAAI,EAAE,gBAAgB,CAAC;YAC5D,cAAc,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;SAC9C;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,8BAA8B,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACnF,CAAC;;AA5FL,wEA6FC;AA/EG,gBAAgB;AACO,2CAAY,GAAG,yEAAyE,CAAC"}
1
+ {"version":3,"file":"vulnerabilityProtectionProfile.js","sourceRoot":"","sources":["../vulnerabilityProtectionProfile.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AAGzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+PG;AACH,MAAa,8BAA+B,SAAQ,MAAM,CAAC,cAAc;IACrE;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAA2C,EAAE,IAAmC;QACzI,OAAO,IAAI,8BAA8B,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrF,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,8BAA8B,CAAC,YAAY,CAAC;IAC/E,CAAC;IAwCD,YAAY,IAAY,EAAE,WAAsF,EAAE,IAAmC;QACjJ,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAA8D,CAAC;YAC7E,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC;YACnD,cAAc,CAAC,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC;YACzC,cAAc,CAAC,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC;YACzC,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,OAAO,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC;YACvC,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;YAC3C,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,kBAAkB,CAAC,GAAG,KAAK,EAAE,gBAAgB,CAAC;SAChE;aAAM;YACH,MAAM,IAAI,GAAG,WAA6D,CAAC;YAC3E,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC;YAClD,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;YACxC,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;YACxC,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;YACpC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC;YACtC,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC;YAC1C,cAAc,CAAC,kBAAkB,CAAC,GAAG,IAAI,EAAE,gBAAgB,CAAC;YAC5D,cAAc,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;SAC9C;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,8BAA8B,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACnF,CAAC;;AA5FL,wEA6FC;AA/EG,gBAAgB;AACO,2CAAY,GAAG,yEAAyE,CAAC"}