@openzeppelin/guardian-client 0.15.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +16 -0
  2. package/dist/conversion.d.ts.map +1 -1
  3. package/dist/conversion.js +4 -2
  4. package/dist/conversion.js.map +1 -1
  5. package/dist/error-codes.d.ts +30 -0
  6. package/dist/error-codes.d.ts.map +1 -0
  7. package/dist/error-codes.js +81 -0
  8. package/dist/error-codes.js.map +1 -0
  9. package/dist/http.d.ts +70 -2
  10. package/dist/http.d.ts.map +1 -1
  11. package/dist/http.js +166 -3
  12. package/dist/http.js.map +1 -1
  13. package/dist/index.d.ts +4 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/server-types.d.ts +21 -0
  18. package/dist/server-types.d.ts.map +1 -1
  19. package/dist/types.d.ts +29 -0
  20. package/dist/types.d.ts.map +1 -1
  21. package/package.json +10 -1
  22. package/src/conversion.test.ts +16 -0
  23. package/src/conversion.ts +4 -2
  24. package/src/error-codes.test.ts +69 -0
  25. package/src/error-codes.ts +91 -0
  26. package/src/http.test.ts +301 -22
  27. package/src/http.ts +203 -3
  28. package/src/index.ts +10 -0
  29. package/src/server-types.ts +24 -1
  30. package/src/types.ts +32 -1
  31. package/dist/auth-request.test.d.ts +0 -2
  32. package/dist/auth-request.test.d.ts.map +0 -1
  33. package/dist/auth-request.test.js +0 -10
  34. package/dist/auth-request.test.js.map +0 -1
  35. package/dist/conversion.test.d.ts +0 -2
  36. package/dist/conversion.test.d.ts.map +0 -1
  37. package/dist/conversion.test.js +0 -332
  38. package/dist/conversion.test.js.map +0 -1
  39. package/dist/http.test.d.ts +0 -2
  40. package/dist/http.test.d.ts.map +0 -1
  41. package/dist/http.test.js +0 -672
  42. package/dist/http.test.js.map +0 -1
@@ -21,7 +21,7 @@ export type ServerDeltaStatus =
21
21
  | { status: 'pending'; timestamp: string; proposer_id: string; cosigner_sigs: ServerCosignerSignature[] }
22
22
  | { status: 'candidate'; timestamp: string }
23
23
  | { status: 'canonical'; timestamp: string }
24
- | { status: 'discarded'; timestamp: string };
24
+ | { status: 'discarded'; timestamp: string; reason?: string };
25
25
 
26
26
  export type ServerProposalType =
27
27
  | 'add_signer'
@@ -54,6 +54,8 @@ export interface ServerProposalMetadata {
54
54
  recipient_id?: string;
55
55
  faucet_id?: string;
56
56
  amount?: string;
57
+ /** P2ID note visibility, "public" or "private" (issue #322). Absent => public. */
58
+ note_type?: string;
57
59
  }
58
60
 
59
61
  export interface ServerDeltaObject {
@@ -137,6 +139,18 @@ export interface ServerProposalsResponse {
137
139
  proposals: ServerDeltaObject[];
138
140
  }
139
141
 
142
+ export interface ServerAbandonCandidateRequest {
143
+ account_id: string;
144
+ nonce: number;
145
+ }
146
+
147
+ export interface ServerAbandonCandidateResponse {
148
+ account_id: string;
149
+ nonce: number;
150
+ state: 'pending' | 'abandoned';
151
+ abandon_requested_at?: string;
152
+ }
153
+
140
154
  export interface ServerSignProposalRequest {
141
155
  account_id: string;
142
156
  commitment: string;
@@ -148,6 +162,15 @@ export interface ServerPubkeyResponse {
148
162
  pubkey?: string;
149
163
  }
150
164
 
165
+ export interface ServerStatusResponse {
166
+ status: string;
167
+ version: string;
168
+ git_commit: string;
169
+ environment: string;
170
+ started_at: string;
171
+ uptime_seconds: number;
172
+ }
173
+
151
174
  export interface ServerLookupAccount {
152
175
  account_id: string;
153
176
  }
package/src/types.ts CHANGED
@@ -65,7 +65,7 @@ export type DeltaStatus =
65
65
  | { status: 'pending'; timestamp: string; proposerId: string; cosignerSigs: CosignerSignature[] }
66
66
  | { status: 'candidate'; timestamp: string }
67
67
  | { status: 'canonical'; timestamp: string }
68
- | { status: 'discarded'; timestamp: string };
68
+ | { status: 'discarded'; timestamp: string; reason?: string };
69
69
 
70
70
  export type ProposalType =
71
71
  | 'add_signer'
@@ -98,6 +98,8 @@ export interface ProposalMetadata {
98
98
  recipientId?: string;
99
99
  faucetId?: string;
100
100
  amount?: string;
101
+ /** P2ID note visibility, "public" or "private" (issue #322). Absent => public. */
102
+ noteType?: string;
101
103
  }
102
104
 
103
105
  export interface DeltaObject {
@@ -153,6 +155,15 @@ export interface PubkeyResponse {
153
155
  pubkey?: string;
154
156
  }
155
157
 
158
+ export interface StatusResponse {
159
+ status: string;
160
+ version: string;
161
+ gitCommit: string;
162
+ environment: string;
163
+ startedAt: string;
164
+ uptimeSeconds: number;
165
+ }
166
+
156
167
  export interface DeltaProposalRequest {
157
168
  accountId: string;
158
169
  nonce: number;
@@ -178,6 +189,26 @@ export interface SignProposalRequest {
178
189
  signature: ProposalSignature;
179
190
  }
180
191
 
192
+ export interface AbandonCandidateResponse {
193
+ accountId: string;
194
+ nonce: number;
195
+ /**
196
+ * `'pending'` while the guardian's worker still has to resolve the
197
+ * abandon intent (the account stays locked until then); `'abandoned'`
198
+ * once the delta is discarded as client-abandoned and the account
199
+ * released.
200
+ */
201
+ state: 'pending' | 'abandoned';
202
+ /**
203
+ * RFC 3339 UTC timestamp of the recorded abandon request. Retries
204
+ * return the original timestamp; absent once resolved.
205
+ */
206
+ abandonRequestedAt?: string;
207
+ }
208
+
209
+ /** Resolution of an abandon request, as observed via the delta feed. */
210
+ export type AbandonStatus = 'waiting' | 'landed' | 'abandoned' | 'unexpected';
211
+
181
212
  export interface PushDeltaResponse {
182
213
  accountId: string;
183
214
  nonce: number;
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=auth-request.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-request.test.d.ts","sourceRoot":"","sources":["../src/auth-request.test.ts"],"names":[],"mappings":""}
@@ -1,10 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { RequestAuthPayload } from './auth-request.js';
3
- describe('RequestAuthPayload', () => {
4
- it('canonicalizes object keys recursively', () => {
5
- const left = RequestAuthPayload.fromRequest({ b: 2, a: { y: 2, x: 1 } });
6
- const right = RequestAuthPayload.fromRequest({ a: { x: 1, y: 2 }, b: 2 });
7
- expect(left.toCanonicalJson()).toEqual(right.toCanonicalJson());
8
- });
9
- });
10
- //# sourceMappingURL=auth-request.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-request.test.js","sourceRoot":"","sources":["../src/auth-request.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,IAAI,GAAG,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACzE,MAAM,KAAK,GAAG,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAE1E,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=conversion.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"conversion.test.d.ts","sourceRoot":"","sources":["../src/conversion.test.ts"],"names":[],"mappings":""}
@@ -1,332 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { fromServerCosignerSignature, fromServerConfigureResponse, fromServerDeltaObject, fromServerDeltaStatus, fromServerProposalMetadata, fromServerStateObject, toServerConfigureRequest, toServerCosignerSignature, toServerDeltaProposalRequest, toServerDeltaStatus, toServerExecutionDelta, toServerProposalMetadata, toServerSignProposalRequest, } from './conversion.js';
3
- describe('conversion', () => {
4
- describe('fromServer conversions (server → camelCase)', () => {
5
- it('converts CosignerSignature', () => {
6
- const server = {
7
- signer_id: '0xabc',
8
- signature: { scheme: 'falcon', signature: '0x123' },
9
- timestamp: '2024-01-01T00:00:00Z',
10
- };
11
- const result = fromServerCosignerSignature(server);
12
- expect(result).toEqual({
13
- signerId: '0xabc',
14
- signature: { scheme: 'falcon', signature: '0x123' },
15
- timestamp: '2024-01-01T00:00:00Z',
16
- });
17
- });
18
- it('converts pending DeltaStatus', () => {
19
- const server = {
20
- status: 'pending',
21
- timestamp: '2024-01-01T00:00:00Z',
22
- proposer_id: '0xproposer',
23
- cosigner_sigs: [
24
- { signer_id: '0xsig1', signature: { scheme: 'falcon', signature: '0x1' }, timestamp: '2024-01-01T00:00:00Z' },
25
- ],
26
- };
27
- const result = fromServerDeltaStatus(server);
28
- expect(result).toEqual({
29
- status: 'pending',
30
- timestamp: '2024-01-01T00:00:00Z',
31
- proposerId: '0xproposer',
32
- cosignerSigs: [
33
- { signerId: '0xsig1', signature: { scheme: 'falcon', signature: '0x1' }, timestamp: '2024-01-01T00:00:00Z' },
34
- ],
35
- });
36
- });
37
- it('converts candidate/canonical/discarded DeltaStatus', () => {
38
- const statuses = [
39
- { status: 'candidate', timestamp: '2024-01-01T00:00:00Z' },
40
- { status: 'canonical', timestamp: '2024-01-02T00:00:00Z' },
41
- { status: 'discarded', timestamp: '2024-01-03T00:00:00Z' },
42
- ];
43
- for (const server of statuses) {
44
- const result = fromServerDeltaStatus(server);
45
- expect(result.status).toBe(server.status);
46
- expect(result.timestamp).toBe(server.timestamp);
47
- }
48
- });
49
- it('converts ProposalMetadata with all fields', () => {
50
- const server = {
51
- proposal_type: 'update_procedure_threshold',
52
- target_threshold: 2,
53
- target_procedure: 'send_asset',
54
- signer_commitments: ['0x1', '0x2'],
55
- salt: '0xsalt',
56
- description: 'test',
57
- new_guardian_pubkey: '0xpubkey',
58
- new_guardian_endpoint: 'http://guardian',
59
- note_ids: ['0xnote1'],
60
- recipient_id: '0xrecipient',
61
- faucet_id: '0xfaucet',
62
- amount: '1000',
63
- };
64
- const result = fromServerProposalMetadata(server);
65
- expect(result).toEqual({
66
- proposalType: 'update_procedure_threshold',
67
- targetThreshold: 2,
68
- targetProcedure: 'send_asset',
69
- signerCommitments: ['0x1', '0x2'],
70
- salt: '0xsalt',
71
- description: 'test',
72
- newGuardianPubkey: '0xpubkey',
73
- newGuardianEndpoint: 'http://guardian',
74
- noteIds: ['0xnote1'],
75
- recipientId: '0xrecipient',
76
- faucetId: '0xfaucet',
77
- amount: '1000',
78
- });
79
- });
80
- it('converts ProposalMetadata with partial fields', () => {
81
- const server = {
82
- proposal_type: 'p2id',
83
- description: 'send funds',
84
- };
85
- const result = fromServerProposalMetadata(server);
86
- expect(result.proposalType).toBe('p2id');
87
- expect(result.description).toBe('send funds');
88
- expect(result.targetThreshold).toBeUndefined();
89
- });
90
- it('preserves an arbitrary custom proposal_type (issue #266)', () => {
91
- const server = {
92
- proposal_type: 'b2agg',
93
- description: 'agglayer bridge note',
94
- };
95
- const result = fromServerProposalMetadata(server);
96
- expect(result.proposalType).toBe('b2agg');
97
- });
98
- it('preserves an arbitrary custom proposalType on the camelCase→server path (issue #266)', () => {
99
- const result = toServerProposalMetadata({
100
- proposalType: 'b2agg',
101
- description: 'agglayer bridge note',
102
- });
103
- expect(result.proposal_type).toBe('b2agg');
104
- });
105
- it('converts DeltaObject', () => {
106
- const server = {
107
- account_id: '0xaccount',
108
- nonce: 1,
109
- prev_commitment: '0xprev',
110
- new_commitment: '0xnew',
111
- delta_payload: {
112
- tx_summary: { data: 'base64data' },
113
- signatures: [{ signer_id: '0xsig', signature: { scheme: 'falcon', signature: '0x123' } }],
114
- metadata: { proposal_type: 'add_signer', description: 'test' },
115
- },
116
- ack_sig: '0xack',
117
- status: { status: 'canonical', timestamp: '2024-01-01T00:00:00Z' },
118
- };
119
- const result = fromServerDeltaObject(server);
120
- expect(result.accountId).toBe('0xaccount');
121
- expect(result.nonce).toBe(1);
122
- expect(result.prevCommitment).toBe('0xprev');
123
- expect(result.newCommitment).toBe('0xnew');
124
- expect(result.deltaPayload.txSummary.data).toBe('base64data');
125
- expect(result.deltaPayload.signatures[0].signerId).toBe('0xsig');
126
- expect(result.deltaPayload.metadata?.proposalType).toBe('add_signer');
127
- expect(result.ackSig).toBe('0xack');
128
- expect(result.status.status).toBe('canonical');
129
- });
130
- it('converts DeltaObject without optional fields', () => {
131
- const server = {
132
- account_id: '0xaccount',
133
- nonce: 1,
134
- prev_commitment: '0xprev',
135
- delta_payload: {
136
- tx_summary: { data: 'base64data' },
137
- signatures: [],
138
- },
139
- status: { status: 'pending', timestamp: '2024-01-01T00:00:00Z', proposer_id: '0xp', cosigner_sigs: [] },
140
- };
141
- const result = fromServerDeltaObject(server);
142
- expect(result.newCommitment).toBeUndefined();
143
- expect(result.deltaPayload.metadata).toBeUndefined();
144
- expect(result.ackSig).toBeUndefined();
145
- });
146
- it('converts StateObject', () => {
147
- const server = {
148
- account_id: '0xaccount',
149
- commitment: '0xcommit',
150
- state_json: { data: 'statedata' },
151
- created_at: '2024-01-01T00:00:00Z',
152
- updated_at: '2024-01-02T00:00:00Z',
153
- };
154
- const result = fromServerStateObject(server);
155
- expect(result).toEqual({
156
- accountId: '0xaccount',
157
- commitment: '0xcommit',
158
- stateJson: { data: 'statedata' },
159
- createdAt: '2024-01-01T00:00:00Z',
160
- updatedAt: '2024-01-02T00:00:00Z',
161
- });
162
- });
163
- it('converts ConfigureResponse', () => {
164
- const server = {
165
- success: true,
166
- message: 'configured',
167
- ack_pubkey: '0xpubkey',
168
- };
169
- const result = fromServerConfigureResponse(server);
170
- expect(result).toEqual({
171
- success: true,
172
- message: 'configured',
173
- ackPubkey: '0xpubkey',
174
- });
175
- });
176
- });
177
- describe('toServer conversions (camelCase → server)', () => {
178
- it('converts CosignerSignature', () => {
179
- const sig = {
180
- signerId: '0xabc',
181
- signature: { scheme: 'falcon', signature: '0x123' },
182
- timestamp: '2024-01-01T00:00:00Z',
183
- };
184
- const result = toServerCosignerSignature(sig);
185
- expect(result).toEqual({
186
- signer_id: '0xabc',
187
- signature: { scheme: 'falcon', signature: '0x123' },
188
- timestamp: '2024-01-01T00:00:00Z',
189
- });
190
- });
191
- it('converts pending DeltaStatus', () => {
192
- const status = {
193
- status: 'pending',
194
- timestamp: '2024-01-01T00:00:00Z',
195
- proposerId: '0xproposer',
196
- cosignerSigs: [
197
- { signerId: '0xsig1', signature: { scheme: 'falcon', signature: '0x1' }, timestamp: '2024-01-01T00:00:00Z' },
198
- ],
199
- };
200
- const result = toServerDeltaStatus(status);
201
- expect(result).toEqual({
202
- status: 'pending',
203
- timestamp: '2024-01-01T00:00:00Z',
204
- proposer_id: '0xproposer',
205
- cosigner_sigs: [
206
- { signer_id: '0xsig1', signature: { scheme: 'falcon', signature: '0x1' }, timestamp: '2024-01-01T00:00:00Z' },
207
- ],
208
- });
209
- });
210
- it('converts ProposalMetadata', () => {
211
- const meta = {
212
- proposalType: 'update_procedure_threshold',
213
- targetThreshold: 2,
214
- targetProcedure: 'receive_asset',
215
- signerCommitments: ['0x1', '0x2'],
216
- salt: '0xsalt',
217
- description: 'test',
218
- };
219
- const result = toServerProposalMetadata(meta);
220
- expect(result).toEqual({
221
- proposal_type: 'update_procedure_threshold',
222
- target_threshold: 2,
223
- target_procedure: 'receive_asset',
224
- signer_commitments: ['0x1', '0x2'],
225
- salt: '0xsalt',
226
- description: 'test',
227
- new_guardian_pubkey: undefined,
228
- new_guardian_endpoint: undefined,
229
- note_ids: undefined,
230
- recipient_id: undefined,
231
- faucet_id: undefined,
232
- amount: undefined,
233
- });
234
- });
235
- it('converts ConfigureRequest', () => {
236
- const req = {
237
- accountId: '0xaccount',
238
- auth: { MidenFalconRpo: { cosigner_commitments: ['0x1', '0x2'] } },
239
- initialState: { data: 'statedata', accountId: '0xaccount' },
240
- };
241
- const result = toServerConfigureRequest(req);
242
- expect(result).toEqual({
243
- account_id: '0xaccount',
244
- auth: { MidenFalconRpo: { cosigner_commitments: ['0x1', '0x2'] } },
245
- initial_state: { data: 'statedata', account_id: '0xaccount' },
246
- });
247
- });
248
- it('converts DeltaProposalRequest', () => {
249
- const req = {
250
- accountId: '0xaccount',
251
- nonce: 1,
252
- deltaPayload: {
253
- txSummary: { data: 'base64data' },
254
- signatures: [{ signerId: '0xsig', signature: { scheme: 'falcon', signature: '0x123' } }],
255
- metadata: { proposalType: 'add_signer', description: 'test' },
256
- },
257
- };
258
- const result = toServerDeltaProposalRequest(req);
259
- expect(result.account_id).toBe('0xaccount');
260
- expect(result.nonce).toBe(1);
261
- expect(result.delta_payload.tx_summary.data).toBe('base64data');
262
- expect(result.delta_payload.signatures[0].signer_id).toBe('0xsig');
263
- expect(result.delta_payload.metadata?.proposal_type).toBe('add_signer');
264
- });
265
- it('converts SignProposalRequest', () => {
266
- const req = {
267
- accountId: '0xaccount',
268
- commitment: '0xcommit',
269
- signature: { scheme: 'falcon', signature: '0x123' },
270
- };
271
- const result = toServerSignProposalRequest(req);
272
- expect(result).toEqual({
273
- account_id: '0xaccount',
274
- commitment: '0xcommit',
275
- signature: { scheme: 'falcon', signature: '0x123' },
276
- });
277
- });
278
- it('converts ExecutionDelta', () => {
279
- const delta = {
280
- accountId: '0xaccount',
281
- nonce: 1,
282
- prevCommitment: '0xprev',
283
- newCommitment: '0xnew',
284
- deltaPayload: { data: 'base64data' },
285
- ackSig: '0xack',
286
- status: { status: 'canonical', timestamp: '2024-01-01T00:00:00Z' },
287
- };
288
- const result = toServerExecutionDelta(delta);
289
- expect(result.account_id).toBe('0xaccount');
290
- expect(result.nonce).toBe(1);
291
- expect(result.prev_commitment).toBe('0xprev');
292
- expect(result.new_commitment).toBe('0xnew');
293
- expect(result.delta_payload.data).toBe('base64data');
294
- expect(result.ack_sig).toBe('0xack');
295
- expect(result.status.status).toBe('canonical');
296
- });
297
- });
298
- describe('roundtrip conversions', () => {
299
- it('DeltaStatus survives roundtrip', () => {
300
- const original = {
301
- status: 'pending',
302
- timestamp: '2024-01-01T00:00:00Z',
303
- proposerId: '0xproposer',
304
- cosignerSigs: [
305
- { signerId: '0xsig', signature: { scheme: 'falcon', signature: '0x123' }, timestamp: '2024-01-01T00:00:00Z' },
306
- ],
307
- };
308
- const server = toServerDeltaStatus(original);
309
- const result = fromServerDeltaStatus(server);
310
- expect(result).toEqual(original);
311
- });
312
- it('ProposalMetadata survives roundtrip', () => {
313
- const original = {
314
- proposalType: 'p2id',
315
- description: 'send funds',
316
- recipientId: '0xrecipient',
317
- faucetId: '0xfaucet',
318
- amount: '1000',
319
- salt: '0xsalt',
320
- };
321
- const server = toServerProposalMetadata(original);
322
- const result = fromServerProposalMetadata(server);
323
- expect(result.proposalType).toBe(original.proposalType);
324
- expect(result.description).toBe(original.description);
325
- expect(result.recipientId).toBe(original.recipientId);
326
- expect(result.faucetId).toBe(original.faucetId);
327
- expect(result.amount).toBe(original.amount);
328
- expect(result.salt).toBe(original.salt);
329
- });
330
- });
331
- });
332
- //# sourceMappingURL=conversion.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"conversion.test.js","sourceRoot":"","sources":["../src/conversion.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,EAC5B,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,iBAAiB,CAAC;AAmBzB,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;QAC3D,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,MAAM,GAA4B;gBACtC,SAAS,EAAE,OAAO;gBAClB,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE;gBACnD,SAAS,EAAE,sBAAsB;aAClC,CAAC;YAEF,MAAM,MAAM,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;YAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE;gBACnD,SAAS,EAAE,sBAAsB;aAClC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,MAAM,GAAsB;gBAChC,MAAM,EAAE,SAAS;gBACjB,SAAS,EAAE,sBAAsB;gBACjC,WAAW,EAAE,YAAY;gBACzB,aAAa,EAAE;oBACb,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE;iBAC9G;aACF,CAAC;YAEF,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAE7C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,MAAM,EAAE,SAAS;gBACjB,SAAS,EAAE,sBAAsB;gBACjC,UAAU,EAAE,YAAY;gBACxB,YAAY,EAAE;oBACZ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE;iBAC7G;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,QAAQ,GAAwB;gBACpC,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,sBAAsB,EAAE;gBAC1D,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,sBAAsB,EAAE;gBAC1D,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,sBAAsB,EAAE;aAC3D,CAAC;YAEF,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;gBAC7C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC1C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAClD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,MAAM,GAA2B;gBACrC,aAAa,EAAE,4BAA4B;gBAC3C,gBAAgB,EAAE,CAAC;gBACnB,gBAAgB,EAAE,YAAY;gBAC9B,kBAAkB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;gBAClC,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,MAAM;gBACnB,mBAAmB,EAAE,UAAU;gBAC/B,qBAAqB,EAAE,iBAAiB;gBACxC,QAAQ,EAAE,CAAC,SAAS,CAAC;gBACrB,YAAY,EAAE,aAAa;gBAC3B,SAAS,EAAE,UAAU;gBACrB,MAAM,EAAE,MAAM;aACf,CAAC;YAEF,MAAM,MAAM,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;YAElD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,YAAY,EAAE,4BAA4B;gBAC1C,eAAe,EAAE,CAAC;gBAClB,eAAe,EAAE,YAAY;gBAC7B,iBAAiB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;gBACjC,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,MAAM;gBACnB,iBAAiB,EAAE,UAAU;gBAC7B,mBAAmB,EAAE,iBAAiB;gBACtC,OAAO,EAAE,CAAC,SAAS,CAAC;gBACpB,WAAW,EAAE,aAAa;gBAC1B,QAAQ,EAAE,UAAU;gBACpB,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,MAAM,GAA2B;gBACrC,aAAa,EAAE,MAAM;gBACrB,WAAW,EAAE,YAAY;aAC1B,CAAC;YAEF,MAAM,MAAM,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;YAElD,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,aAAa,EAAE,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAClE,MAAM,MAAM,GAA2B;gBACrC,aAAa,EAAE,OAAO;gBACtB,WAAW,EAAE,sBAAsB;aACpC,CAAC;YAEF,MAAM,MAAM,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;YAElD,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sFAAsF,EAAE,GAAG,EAAE;YAC9F,MAAM,MAAM,GAAG,wBAAwB,CAAC;gBACtC,YAAY,EAAE,OAAO;gBACrB,WAAW,EAAE,sBAAsB;aACpC,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,MAAM,MAAM,GAAsB;gBAChC,UAAU,EAAE,WAAW;gBACvB,KAAK,EAAE,CAAC;gBACR,eAAe,EAAE,QAAQ;gBACzB,cAAc,EAAE,OAAO;gBACvB,aAAa,EAAE;oBACb,UAAU,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;oBAClC,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC;oBACzF,QAAQ,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE;iBAC/D;gBACD,OAAO,EAAE,OAAO;gBAChB,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,sBAAsB,EAAE;aACnE,CAAC;YAEF,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAE7C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9D,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACtE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,MAAM,GAAsB;gBAChC,UAAU,EAAE,WAAW;gBACvB,KAAK,EAAE,CAAC;gBACR,eAAe,EAAE,QAAQ;gBACzB,aAAa,EAAE;oBACb,UAAU,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;oBAClC,UAAU,EAAE,EAAE;iBACf;gBACD,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,sBAAsB,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE;aACxG,CAAC;YAEF,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAE7C,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,aAAa,EAAE,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,MAAM,MAAM,GAAsB;gBAChC,UAAU,EAAE,WAAW;gBACvB,UAAU,EAAE,UAAU;gBACtB,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;gBACjC,UAAU,EAAE,sBAAsB;gBAClC,UAAU,EAAE,sBAAsB;aACnC,CAAC;YAEF,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAE7C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,SAAS,EAAE,WAAW;gBACtB,UAAU,EAAE,UAAU;gBACtB,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;gBAChC,SAAS,EAAE,sBAAsB;gBACjC,SAAS,EAAE,sBAAsB;aAClC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,MAAM,GAA4B;gBACtC,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,YAAY;gBACrB,UAAU,EAAE,UAAU;aACvB,CAAC;YAEF,MAAM,MAAM,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;YAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,YAAY;gBACrB,SAAS,EAAE,UAAU;aACtB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACzD,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,GAAG,GAAsB;gBAC7B,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE;gBACnD,SAAS,EAAE,sBAAsB;aAClC,CAAC;YAEF,MAAM,MAAM,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC;YAE9C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,SAAS,EAAE,OAAO;gBAClB,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE;gBACnD,SAAS,EAAE,sBAAsB;aAClC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,MAAM,GAAgB;gBAC1B,MAAM,EAAE,SAAS;gBACjB,SAAS,EAAE,sBAAsB;gBACjC,UAAU,EAAE,YAAY;gBACxB,YAAY,EAAE;oBACZ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE;iBAC7G;aACF,CAAC;YAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAE3C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,MAAM,EAAE,SAAS;gBACjB,SAAS,EAAE,sBAAsB;gBACjC,WAAW,EAAE,YAAY;gBACzB,aAAa,EAAE;oBACb,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE;iBAC9G;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,IAAI,GAAqB;gBAC7B,YAAY,EAAE,4BAA4B;gBAC1C,eAAe,EAAE,CAAC;gBAClB,eAAe,EAAE,eAAe;gBAChC,iBAAiB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;gBACjC,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,MAAM;aACpB,CAAC;YAEF,MAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;YAE9C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,aAAa,EAAE,4BAA4B;gBAC3C,gBAAgB,EAAE,CAAC;gBACnB,gBAAgB,EAAE,eAAe;gBACjC,kBAAkB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;gBAClC,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,MAAM;gBACnB,mBAAmB,EAAE,SAAS;gBAC9B,qBAAqB,EAAE,SAAS;gBAChC,QAAQ,EAAE,SAAS;gBACnB,YAAY,EAAE,SAAS;gBACvB,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,GAAG,GAAqB;gBAC5B,SAAS,EAAE,WAAW;gBACtB,IAAI,EAAE,EAAE,cAAc,EAAE,EAAE,oBAAoB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE;gBAClE,YAAY,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE;aAC5D,CAAC;YAEF,MAAM,MAAM,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;YAE7C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,UAAU,EAAE,WAAW;gBACvB,IAAI,EAAE,EAAE,cAAc,EAAE,EAAE,oBAAoB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE;gBAClE,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE;aAC9D,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,GAAG,GAAyB;gBAChC,SAAS,EAAE,WAAW;gBACtB,KAAK,EAAE,CAAC;gBACR,YAAY,EAAE;oBACZ,SAAS,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;oBACjC,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC;oBACxF,QAAQ,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE;iBAC9D;aACF,CAAC;YAEF,MAAM,MAAM,GAAG,4BAA4B,CAAC,GAAG,CAAC,CAAC;YAEjD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,GAAG,GAAwB;gBAC/B,SAAS,EAAE,WAAW;gBACtB,UAAU,EAAE,UAAU;gBACtB,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE;aACpD,CAAC;YAEF,MAAM,MAAM,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC;YAEhD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,UAAU,EAAE,WAAW;gBACvB,UAAU,EAAE,UAAU;gBACtB,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE;aACpD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;YACjC,MAAM,KAAK,GAAmB;gBAC5B,SAAS,EAAE,WAAW;gBACtB,KAAK,EAAE,CAAC;gBACR,cAAc,EAAE,QAAQ;gBACxB,aAAa,EAAE,OAAO;gBACtB,YAAY,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;gBACpC,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,sBAAsB,EAAE;aACnE,CAAC;YAEF,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAE7C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,QAAQ,GAAgB;gBAC5B,MAAM,EAAE,SAAS;gBACjB,SAAS,EAAE,sBAAsB;gBACjC,UAAU,EAAE,YAAY;gBACxB,YAAY,EAAE;oBACZ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE;iBAC9G;aACF,CAAC;YAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAE7C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,QAAQ,GAAqB;gBACjC,YAAY,EAAE,MAAM;gBACpB,WAAW,EAAE,YAAY;gBACzB,WAAW,EAAE,aAAa;gBAC1B,QAAQ,EAAE,UAAU;gBACpB,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,QAAQ;aACf,CAAC;YAEF,MAAM,MAAM,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;YAElD,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACtD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACtD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=http.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http.test.d.ts","sourceRoot":"","sources":["../src/http.test.ts"],"names":[],"mappings":""}