@sidhujag/sysweb3-keyring 1.0.613 → 1.0.616

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/cjs/providers.js CHANGED
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CustomJsonRpcProvider = exports.wrapTransactionResponse = exports.wrapTransactionReceipt = void 0;
3
+ exports.CustomJsonRpcProvider = exports.wrapTransactionResponse = exports.wrapTransactionReceipt = exports.RpcResponseIntegrityError = void 0;
4
+ const providers_1 = require("ethers/providers");
5
+ const utils_1 = require("ethers/utils");
4
6
  const errorUtils_1 = require("./errorUtils");
5
7
  const ethers_v6_1 = require("./ethers-v6");
6
8
  const TRANSACTION_RESPONSE_BIG_NUMBER_FIELDS = new Set([
@@ -20,6 +22,66 @@ const TRANSACTION_RECEIPT_BIG_NUMBER_FIELDS = new Set([
20
22
  'gasUsed',
21
23
  ]);
22
24
  const FEE_DATA_CACHE_TTL_MS = 5000;
25
+ // A stale response must never be interpreted as the result of another RPC.
26
+ // Keep the sentinel in the message for callers that serialize errors as text.
27
+ class RpcResponseIntegrityError extends Error {
28
+ constructor(message = 'JSON-RPC response does not match its request', retryable = true) {
29
+ super(`[SYSWEB3_RPC_RESPONSE_INVALID] ${message}`);
30
+ this.retryable = retryable;
31
+ this.code = 'SYSWEB3_RPC_RESPONSE_INVALID';
32
+ this.name = 'RpcResponseIntegrityError';
33
+ }
34
+ }
35
+ exports.RpcResponseIntegrityError = RpcResponseIntegrityError;
36
+ // Only these standard, side-effect-free reads may recover from a stale cache
37
+ // entry. Never infer retry eligibility from an RPC method prefix.
38
+ const RECOVERABLE_READ_METHODS = new Set([
39
+ 'eth_chainId',
40
+ 'net_version',
41
+ 'web3_clientVersion',
42
+ 'eth_blockNumber',
43
+ 'eth_syncing',
44
+ 'eth_getBalance',
45
+ 'eth_getTransactionCount',
46
+ 'eth_getCode',
47
+ 'eth_getStorageAt',
48
+ 'eth_getProof',
49
+ 'eth_call',
50
+ 'eth_estimateGas',
51
+ 'eth_createAccessList',
52
+ 'eth_gasPrice',
53
+ 'eth_maxPriorityFeePerGas',
54
+ 'eth_feeHistory',
55
+ 'eth_getBlockByNumber',
56
+ 'eth_getBlockByHash',
57
+ 'eth_getBlockTransactionCountByNumber',
58
+ 'eth_getBlockTransactionCountByHash',
59
+ 'eth_getTransactionByHash',
60
+ 'eth_getTransactionByBlockNumberAndIndex',
61
+ 'eth_getTransactionByBlockHashAndIndex',
62
+ 'eth_getTransactionReceipt',
63
+ 'eth_getLogs',
64
+ ]);
65
+ let rpcRecoveryNonce = 0;
66
+ // Shared across provider instances and seeded anew on process restart. These
67
+ // numeric correlation IDs are not authorization tokens.
68
+ let nextRpcWireId = Math.floor(Math.random() * 2 ** 51);
69
+ const reserveRpcWireId = () => {
70
+ const id = ++nextRpcWireId;
71
+ if (!Number.isSafeInteger(id)) {
72
+ throw new RpcResponseIntegrityError('RPC request ID range exhausted', false);
73
+ }
74
+ return id;
75
+ };
76
+ const recoveryUrl = (original) => {
77
+ const url = new URL(original);
78
+ const token = `${Date.now()}-${++rpcRecoveryNonce}-${Math.random()
79
+ .toString(36)
80
+ .slice(2)}`;
81
+ // Append without reserializing existing query values (including auth data).
82
+ url.search += `${url.search ? '&' : '?'}sysweb3_rpc_request=${token}`;
83
+ return url.toString();
84
+ };
23
85
  const getChainIdFromNetworkish = (network) => {
24
86
  if (network == null)
25
87
  return undefined;
@@ -122,7 +184,6 @@ class BaseProvider extends ethers_v6_1.JsonRpcProvider {
122
184
  this.requestCount = 0;
123
185
  this.lastRequestTime = 0;
124
186
  this.currentChainId = '';
125
- this.currentId = 1;
126
187
  this.feeDataCache = null;
127
188
  this.feeDataPromise = null;
128
189
  this.chainIdVerificationPromise = null;
@@ -187,73 +248,16 @@ class BaseProvider extends ethers_v6_1.JsonRpcProvider {
187
248
  if (!this.isPossibleGetChainId && method === 'eth_chainId') {
188
249
  return this.currentChainId;
189
250
  }
190
- const headers = {
191
- 'Content-Type': 'application/json',
192
- };
193
- const options = {
194
- method: 'POST',
195
- headers,
196
- body: JSON.stringify({
197
- jsonrpc: '2.0',
198
- method,
199
- params,
200
- id: this.currentId,
201
- }),
202
- signal: this.signal,
203
- };
204
- const result = await this.throttledRequest(() => fetch(this._getConnection().url, options)
205
- .then(async (response) => {
206
- if (!response.ok) {
207
- let errorBody = {
208
- error: undefined,
209
- message: undefined,
210
- };
211
- try {
212
- errorBody = await response.json();
213
- }
214
- catch (error) {
215
- console.warn('No body in request', error);
216
- }
217
- this.errorMessage =
218
- errorBody.error ||
219
- errorBody.message ||
220
- 'No message from Provider';
221
- (0, errorUtils_1.handleStatusCodeError)(response.status, this.errorMessage);
222
- }
223
- switch (response.status) {
224
- case 200:
225
- return response.json();
226
- default:
227
- throw {
228
- message: `Unexpected HTTP status code: ${response.status}`,
229
- };
230
- }
231
- })
232
- .then((json) => {
233
- if (json.error) {
234
- if (json.error.message.includes('insufficient funds')) {
235
- console.error({
236
- errorMessage: json.error.message,
237
- });
238
- this.errorMessage = json.error.message;
239
- throw makeRpcError(json.error);
240
- }
241
- this.errorMessage = json.error.message;
242
- console.log({ requestData: { method, params }, error: json.error });
243
- console.error({
244
- errorMessage: json.error.message,
245
- });
246
- throw makeRpcError(json.error);
247
- }
248
- if (method === 'eth_chainId') {
249
- this.currentChainId = json.result;
250
- this.isPossibleGetChainId = false;
251
- }
252
- this.currentId++;
253
- this.serverHasAnError = false;
254
- return json.result;
255
- }));
256
- return result;
251
+ const [json] = await this.requestRpc([{ method, params }], false);
252
+ if (json.error) {
253
+ this.errorMessage = json.error.message;
254
+ throw makeRpcError(json.error);
255
+ }
256
+ if (method === 'eth_chainId') {
257
+ this.currentChainId = json.result;
258
+ this.isPossibleGetChainId = false;
259
+ }
260
+ return json.result;
257
261
  };
258
262
  this.configuredChainId = getChainIdFromNetworkish(network);
259
263
  this.signal = signal;
@@ -287,61 +291,143 @@ class BaseProvider extends ethers_v6_1.JsonRpcProvider {
287
291
  throw new Error(`Configured EVM chainId ${this.configuredChainId} does not match RPC eth_chainId ${actualChainId}`);
288
292
  }
289
293
  }
290
- async sendBatch(method, params) {
291
- // Create batch request array
292
- const requests = params.map((param, index) => ({
293
- jsonrpc: '2.0',
294
- id: this.currentId + index,
295
- method,
296
- params: param,
297
- }));
298
- this.currentId += requests.length;
299
- const headers = {
300
- 'Content-Type': 'application/json',
301
- };
302
- const options = {
303
- method: 'POST',
304
- headers,
305
- body: JSON.stringify(requests),
306
- signal: this.signal,
307
- };
308
- const results = await this.throttledRequest(() => fetch(this._getConnection().url, options)
309
- .then(async (response) => {
310
- if (!response.ok) {
311
- let errorBody = {
312
- error: undefined,
313
- message: undefined,
314
- };
294
+ validateRpcResponses(json, requests, batch) {
295
+ if (batch ? !Array.isArray(json) : Array.isArray(json)) {
296
+ throw new RpcResponseIntegrityError();
297
+ }
298
+ const responses = batch ? json : [json];
299
+ if (responses.length !== requests.length) {
300
+ throw new RpcResponseIntegrityError();
301
+ }
302
+ const expectedIds = new Set(requests.map((request) => request.id));
303
+ const byId = new Map();
304
+ for (const response of responses) {
305
+ if (!response ||
306
+ typeof response !== 'object' ||
307
+ Array.isArray(response) ||
308
+ typeof response.id !== 'number' ||
309
+ !expectedIds.has(response.id) ||
310
+ byId.has(response.id)) {
311
+ throw new RpcResponseIntegrityError();
312
+ }
313
+ const hasResult = Object.prototype.hasOwnProperty.call(response, 'result');
314
+ const hasError = Object.prototype.hasOwnProperty.call(response, 'error');
315
+ if (response.jsonrpc !== '2.0' ||
316
+ hasResult === hasError ||
317
+ (hasError &&
318
+ (!response.error ||
319
+ typeof response.error.message !== 'string' ||
320
+ !Number.isSafeInteger(response.error.code)))) {
321
+ throw new RpcResponseIntegrityError('Invalid JSON-RPC response envelope', false);
322
+ }
323
+ byId.set(response.id, response);
324
+ }
325
+ return requests.map((request) => byId.get(request.id));
326
+ }
327
+ async requestRpc(inputs, batch) {
328
+ const canRecover = inputs.every(({ method }) => RECOVERABLE_READ_METHODS.has(method));
329
+ const originalUrl = this._getConnection().url;
330
+ let originalBody = '';
331
+ for (let attempt = 0; attempt < 2; attempt++) {
332
+ if (this.signal.aborted) {
333
+ throw this.signal.reason || new Error('RPC request aborted');
334
+ }
335
+ // Reserve the whole request range before any dispatch or await.
336
+ // A recovery must repeat the serialized read, even if its caller mutates
337
+ // an input object while the first response is delayed.
338
+ const source = attempt === 0
339
+ ? inputs
340
+ : batch
341
+ ? JSON.parse(originalBody)
342
+ : [JSON.parse(originalBody)];
343
+ const requests = source.map(({ method, params }) => ({
344
+ jsonrpc: '2.0',
345
+ method,
346
+ params,
347
+ id: reserveRpcWireId(),
348
+ }));
349
+ const options = {
350
+ method: 'POST',
351
+ headers: { 'Content-Type': 'application/json' },
352
+ body: JSON.stringify(batch ? requests : requests[0]),
353
+ signal: this.signal,
354
+ };
355
+ if (attempt === 0)
356
+ originalBody = options.body;
357
+ const json = await this.throttledRequest(async () => {
358
+ const response = await fetch(attempt === 0 ? originalUrl : recoveryUrl(originalUrl), options);
359
+ if (!response.ok) {
360
+ let errorBody = { error: undefined, message: undefined };
361
+ try {
362
+ errorBody = await response.json();
363
+ }
364
+ catch {
365
+ console.warn('No body in request');
366
+ }
367
+ this.errorMessage =
368
+ errorBody.error || errorBody.message || 'No message from Provider';
369
+ (0, errorUtils_1.handleStatusCodeError)(response.status, this.errorMessage);
370
+ }
371
+ if (response.status !== 200) {
372
+ throw new Error(`Unexpected HTTP status code: ${response.status}`);
373
+ }
315
374
  try {
316
- errorBody = await response.json();
375
+ return await response.json();
317
376
  }
318
377
  catch (error) {
319
- console.warn('No body in request', error);
378
+ if (this.signal.aborted || error?.name === 'AbortError')
379
+ throw error;
380
+ throw new RpcResponseIntegrityError('Invalid JSON-RPC JSON response', false);
320
381
  }
321
- this.errorMessage =
322
- errorBody.error ||
323
- errorBody.message ||
324
- 'No message from Provider';
325
- (0, errorUtils_1.handleStatusCodeError)(response.status, this.errorMessage);
326
- }
327
- return response.json();
328
- })
329
- .then((jsonArray) => {
330
- // Sort results by ID to ensure correct order
331
- const sortedResults = jsonArray.sort((a, b) => a.id - b.id);
332
- // Extract results or throw errors
333
- return sortedResults.map((json) => {
334
- if (json.error) {
335
- this.errorMessage = json.error.message;
336
- console.error({
337
- errorMessage: json.error.message,
338
- });
339
- throw makeRpcError(json.error);
382
+ }).catch((error) => {
383
+ if (attempt === 0 ||
384
+ error instanceof RpcResponseIntegrityError ||
385
+ this.signal.aborted ||
386
+ error?.name === 'AbortError') {
387
+ throw error;
340
388
  }
341
- return json.result;
389
+ throw new RpcResponseIntegrityError('JSON-RPC response recovery failed', false);
342
390
  });
391
+ try {
392
+ const responses = this.validateRpcResponses(json, requests, batch);
393
+ this.serverHasAnError = false;
394
+ return responses;
395
+ }
396
+ catch (error) {
397
+ if (!(error instanceof RpcResponseIntegrityError) ||
398
+ !error.retryable ||
399
+ attempt !== 0 ||
400
+ !canRecover) {
401
+ throw error;
402
+ }
403
+ }
404
+ }
405
+ throw new RpcResponseIntegrityError();
406
+ }
407
+ // Ethers uses this primitive for network auto-detection and inherited send.
408
+ // Share wire IDs and validation, then restore its caller IDs after correlation.
409
+ async _send(payload) {
410
+ const inputs = Array.isArray(payload) ? payload : [payload];
411
+ if (!inputs.length)
412
+ return [];
413
+ const callerIds = inputs.map(({ id }) => id);
414
+ const responses = await this.requestRpc(inputs, Array.isArray(payload));
415
+ return responses.map((response, index) => ({
416
+ ...response,
417
+ id: callerIds[index],
343
418
  }));
344
- return results;
419
+ }
420
+ async sendBatch(method, params) {
421
+ if (!params.length)
422
+ return [];
423
+ const responses = await this.requestRpc(params.map((param) => ({ method, params: param })), true);
424
+ return responses.map((json) => {
425
+ if (json.error) {
426
+ this.errorMessage = json.error.message;
427
+ throw makeRpcError(json.error);
428
+ }
429
+ return json.result;
430
+ });
345
431
  }
346
432
  async getGasPrice() {
347
433
  return ethers_v6_1.BigNumber.from(await this.send('eth_gasPrice', []));
@@ -367,8 +453,70 @@ class BaseProvider extends ethers_v6_1.JsonRpcProvider {
367
453
  this.feeDataPromise = null;
368
454
  }
369
455
  }
456
+ async readFeeData() {
457
+ const network = await this.getNetwork();
458
+ // Ethers tolerates unavailable optional fee methods; keep that behavior,
459
+ // but never convert a response-integrity failure into an invented quote.
460
+ const optionalFee = async (method) => {
461
+ try {
462
+ return (0, utils_1.getBigInt)(await this._perform({ method }), '%response');
463
+ }
464
+ catch (error) {
465
+ if (error?.code === 'SYSWEB3_RPC_RESPONSE_INVALID' ||
466
+ error?.name === 'AbortError' ||
467
+ this.signal.aborted)
468
+ throw error;
469
+ return null;
470
+ }
471
+ };
472
+ const getFeeData = async () => {
473
+ const [block, gasPrice, priorityFee] = await Promise.all([
474
+ super.getBlock('latest'),
475
+ optionalFee('getGasPrice'),
476
+ optionalFee('getPriorityFee'),
477
+ ]);
478
+ let maxFeePerGas = null;
479
+ let maxPriorityFeePerGas = null;
480
+ if (block?.baseFeePerGas) {
481
+ maxPriorityFeePerGas = priorityFee ?? 1000000000n;
482
+ maxFeePerGas = block.baseFeePerGas * 2n + maxPriorityFeePerGas;
483
+ }
484
+ return new providers_1.FeeData(gasPrice, maxFeePerGas, maxPriorityFeePerGas);
485
+ };
486
+ // Preserve network-specific fee plugins, including Polygon's fee reader.
487
+ const plugin = network.getPlugin('org.ethers.plugins.network.FetchUrlFeeDataPlugin');
488
+ if (plugin) {
489
+ // Polygon wraps reader failures in SERVER_ERROR. Preserve this
490
+ // invocation's integrity/cancellation failure through that wrapper.
491
+ let readerFailure;
492
+ const pluginReader = async () => {
493
+ try {
494
+ return await getFeeData();
495
+ }
496
+ catch (error) {
497
+ if (error?.code === 'SYSWEB3_RPC_RESPONSE_INVALID' ||
498
+ error?.name === 'AbortError' ||
499
+ this.signal.aborted) {
500
+ readerFailure = error;
501
+ }
502
+ throw error;
503
+ }
504
+ };
505
+ let result;
506
+ try {
507
+ result = await plugin.processFunc(pluginReader, this, new utils_1.FetchRequest(plugin.url));
508
+ }
509
+ catch (error) {
510
+ throw readerFailure ?? error;
511
+ }
512
+ if (readerFailure)
513
+ throw readerFailure;
514
+ return new providers_1.FeeData(result.gasPrice, result.maxFeePerGas, result.maxPriorityFeePerGas);
515
+ }
516
+ return getFeeData();
517
+ }
370
518
  async fetchFeeData() {
371
- const feeData = await super.getFeeData();
519
+ const feeData = await this.readFeeData();
372
520
  let maxFeePerGas = feeData.maxFeePerGas == null
373
521
  ? null
374
522
  : ethers_v6_1.BigNumber.from(feeData.maxFeePerGas);
@@ -381,9 +529,13 @@ class BaseProvider extends ethers_v6_1.JsonRpcProvider {
381
529
  const baseFeePerGas = ethers_v6_1.BigNumber.from(block.baseFeePerGas);
382
530
  if (maxPriorityFeePerGas == null) {
383
531
  try {
384
- maxPriorityFeePerGas = ethers_v6_1.BigNumber.from(await super.send('eth_maxPriorityFeePerGas', []));
532
+ maxPriorityFeePerGas = ethers_v6_1.BigNumber.from(await this.send('eth_maxPriorityFeePerGas', []));
385
533
  }
386
- catch {
534
+ catch (error) {
535
+ if (error?.code === 'SYSWEB3_RPC_RESPONSE_INVALID' ||
536
+ error?.name === 'AbortError' ||
537
+ this.signal.aborted)
538
+ throw error;
387
539
  maxPriorityFeePerGas =
388
540
  feeData.gasPrice == null
389
541
  ? ethers_v6_1.BigNumber.from(0)
@@ -411,7 +563,7 @@ class BaseProvider extends ethers_v6_1.JsonRpcProvider {
411
563
  if (normalized?.type === 0 &&
412
564
  normalized.maxFeePerGas == null &&
413
565
  normalized.maxPriorityFeePerGas == null) {
414
- const feeData = await super.getFeeData();
566
+ const feeData = await this.readFeeData();
415
567
  if (feeData.maxFeePerGas == null &&
416
568
  feeData.maxPriorityFeePerGas == null) {
417
569
  delete normalized.type;
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/providers.ts"],"names":[],"mappings":";;;AAAA,6CAAqD;AACrD,2CAKqB;AAErB,MAAM,sCAAsC,GAAG,IAAI,GAAG,CAAC;IACrD,UAAU;IACV,UAAU;IACV,cAAc;IACd,sBAAsB;IACtB,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,kCAAkC,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAEhE,MAAM,qCAAqC,GAAG,IAAI,GAAG,CAAC;IACpD,cAAc;IACd,aAAa;IACb,mBAAmB;IACnB,mBAAmB;IACnB,UAAU;IACV,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAEnC,MAAM,wBAAwB,GAAG,CAAC,OAAoB,EAAsB,EAAE;IAC5E,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IACtC,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,OAAO,GAAI,OAAkD,CAAC,OAAO,CAAC;IAC5E,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IACtC,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,OAAiC,EAAU,EAAE;IACjE,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,MAAW,EAAE,KAAa,EAAE,KAAU,EAAE,EAAE;IAC7D,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE;QACnC,KAAK;QACL,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAC1B,MAAW,EACX,MAAmB,EACnB,gBAA6B,MAAM,EACnC,EAAE;IACF,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC7D,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAE9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;YAC1B,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,qBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEK,MAAM,sBAAsB,GAAG,CAAC,OAAY,EAAE,EAAE;IACrD,MAAM,OAAO,GAAG,mBAAmB,CACjC,OAAO,EACP,qCAAqC,CACtC,CAAC;IACF,IAAI,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC;IAE7B,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE;QACxB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ;YAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACtD,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACnE,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAbW,QAAA,sBAAsB,0BAajC;AAEK,MAAM,uBAAuB,GAAG,CAAC,WAAgB,EAAE,EAAE;IAC1D,IAAI,CAAC,WAAW;QAAE,OAAO,WAAW,CAAC;IACrC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;QAC5B,GAAG,sCAAsC;QACzC,GAAG,kCAAkC;QACrC,MAAM;KACP,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,mBAAmB,CACjC,WAAW,EACX,sCAAsC,EACtC,aAAa,CACd,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,kCAAkC,EAAE,CAAC;QACvD,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;YAC/B,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC3C,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE,CACpD,IAAA,8BAAsB,EAAC,MAAM,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CACxD,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE;QACxB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ;YAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACtD,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACvE,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AA/BW,QAAA,uBAAuB,2BA+BlC;AAEF,0EAA0E;AAC1E,qEAAqE;AACrE,wBAAwB;AACxB,MAAM,YAAY,GAAG,CAAC,QAIrB,EAAS,EAAE;IACV,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAGvC,CAAC;IACF,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC7B,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC7B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,YAAa,SAAQ,2BAAe;IAuBxC,YACE,MAAmB,EACnB,GAA8B,EAC9B,OAAoB;QAEpB,KAAK,CACH,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EACxC,OAAO,EACP,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CACtD,CAAC;QA/BI,yBAAoB,GAAG,IAAI,CAAC;QAC5B,iBAAY,GAAG,GAAG,GAAG,IAAI,CAAC;QAC1B,cAAS,GAAG,EAAE,CAAC;QACf,iBAAY,GAAG,CAAC,CAAC;QACjB,oBAAe,GAAG,CAAC,CAAC;QACpB,mBAAc,GAAG,EAAE,CAAC;QACpB,cAAS,GAAG,CAAC,CAAC;QACd,iBAAY,GAA6C,IAAI,CAAC;QAC9D,mBAAc,GAAwB,IAAI,CAAC;QAE3C,+BAA0B,GAAyB,IAAI,CAAC;QACzD,iBAAY,GAAG,KAAK,CAAC;QACrB,iBAAY,GAAQ,EAAE,CAAC;QACvB,qBAAgB,GAAG,KAAK,CAAC;QAoCxB,qBAAgB,GAAG,CAAI,SAA2B,EAAc,EAAE;YACxE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzB,CAAC;YACD,oDAAoD;YACpD,OAAO,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACjC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAChC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;oBACtC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACM,mBAAc,GAAG,GAAG,EAAE;YAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;gBAC7B,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,CAAC;YACD,IAAI,WAAW,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,WAAW,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC9D,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;gBACtB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,OAAO,KAAK,CAAC,CAAC,+CAA+C;YAC/D,CAAC;YAED,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACjE,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,IAAI,WAAW,GAAG,IAAI,EAAE,CAAC;oBACvB,yDAAyD;oBACzD,eAAe;oBACf,4EAA4E;oBAC5E,KAAK;oBACL,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;oBACtB,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;gBAC7B,CAAC;qBAAM,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,EAAE,CAAC;oBACtC,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;gBAC7B,CAAC;gBACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC;QAuBM,aAAQ,GAAG,KAAK,IAAI,EAAE;YAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC;YAC/C,OAAO,CAAC,KAAK,CACX,0DAA0D,EAC1D,CAAC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,IAAI,EACxC,UAAU,CACX,CAAC;YACF,MAAM;gBACJ,OAAO,EAAE,2DACP,CAAC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,IACtC,UAAU;aACX,CAAC;QACJ,CAAC,CAAC;QAEO,SAAI,GAAG,KAAK,EAAE,MAAc,EAAE,MAAa,EAAE,EAAE;YACtD,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;gBAC3D,OAAO,IAAI,CAAC,cAAc,CAAC;YAC7B,CAAC;YAED,MAAM,OAAO,GAAG;gBACd,cAAc,EAAE,kBAAkB;aACnC,CAAC;YAEF,MAAM,OAAO,GAAgB;gBAC3B,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,OAAO,EAAE,KAAK;oBACd,MAAM;oBACN,MAAM;oBACN,EAAE,EAAE,IAAI,CAAC,SAAS;iBACnB,CAAC;gBACF,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAC9C,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC;iBACtC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACvB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,IAAI,SAAS,GAAG;wBACd,KAAK,EAAE,SAAS;wBAChB,OAAO,EAAE,SAAS;qBACnB,CAAC;oBACF,IAAI,CAAC;wBACH,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACpC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;oBAC5C,CAAC;oBACD,IAAI,CAAC,YAAY;wBACf,SAAS,CAAC,KAAK;4BACf,SAAS,CAAC,OAAO;4BACjB,0BAA0B,CAAC;oBAC7B,IAAA,kCAAqB,EAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC5D,CAAC;gBACD,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACxB,KAAK,GAAG;wBACN,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACzB;wBACE,MAAM;4BACJ,OAAO,EAAE,gCAAgC,QAAQ,CAAC,MAAM,EAAE;yBAC3D,CAAC;gBACN,CAAC;YACH,CAAC,CAAC;iBACD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACb,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;wBACtD,OAAO,CAAC,KAAK,CAAC;4BACZ,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;yBACjC,CAAC,CAAC;wBACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;wBACvC,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACjC,CAAC;oBACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;oBACvC,OAAO,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;oBACpE,OAAO,CAAC,KAAK,CAAC;wBACZ,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;qBACjC,CAAC,CAAC;oBACH,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjC,CAAC;gBACD,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;oBAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;oBAClC,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;gBACpC,CAAC;gBACD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC9B,OAAO,IAAI,CAAC,MAAM,CAAC;YACrB,CAAC,CAAC,CACL,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAhLA,IAAI,CAAC,iBAAiB,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAE1B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,WAAW;QACjB,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YACpD,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,UAAU,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;gBAC7D,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAkDD,KAAK,CAAC,uBAAuB;QAC3B,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI;YAAE,OAAO;QAC3C,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC;YACrC,IAAI,CAAC,0BAA0B;gBAC7B,IAAI,CAAC,+BAA+B,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;oBAClD,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;gBACzC,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,IAAI,CAAC,0BAA0B,CAAC;IACzC,CAAC;IAEO,KAAK,CAAC,+BAA+B;QAC3C,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;QACvE,IAAI,aAAa,KAAK,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CACb,0BAA0B,IAAI,CAAC,iBAAiB,mCAAmC,aAAa,EAAE,CACnG,CAAC;QACJ,CAAC;IACH,CAAC;IA8FD,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,MAAoB;QAClD,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC7C,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK;YAC1B,MAAM;YACN,MAAM,EAAE,KAAK;SACd,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,MAAM,CAAC;QAElC,MAAM,OAAO,GAAG;YACd,cAAc,EAAE,kBAAkB;SACnC,CAAC;QAEF,MAAM,OAAO,GAAgB;YAC3B,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YAC9B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAC/C,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC;aACtC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YACvB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,IAAI,SAAS,GAAG;oBACd,KAAK,EAAE,SAAS;oBAChB,OAAO,EAAE,SAAS;iBACnB,CAAC;gBACF,IAAI,CAAC;oBACH,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACpC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;gBAC5C,CAAC;gBACD,IAAI,CAAC,YAAY;oBACf,SAAS,CAAC,KAAK;wBACf,SAAS,CAAC,OAAO;wBACjB,0BAA0B,CAAC;gBAC7B,IAAA,kCAAqB,EAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5D,CAAC;YACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YAClB,6CAA6C;YAC7C,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YAEtE,kCAAkC;YAClC,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;gBACrC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;oBACvC,OAAO,CAAC,KAAK,CAAC;wBACZ,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;qBACjC,CAAC,CAAC;oBACH,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjC,CAAC;gBACD,OAAO,IAAI,CAAC,MAAM,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CACL,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,qBAAS,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,cAAc,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;YACxC,IAAI,CAAC,YAAY,GAAG;gBAClB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,qBAAqB;gBAC7C,KAAK;aACN,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;QACzC,IAAI,YAAY,GACd,OAAO,CAAC,YAAY,IAAI,IAAI;YAC1B,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,qBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC3C,IAAI,oBAAoB,GACtB,OAAO,CAAC,oBAAoB,IAAI,IAAI;YAClC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,qBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAEnD,IAAI,YAAY,IAAI,IAAI,IAAI,oBAAoB,IAAI,IAAI,EAAE,CAAC;YACzD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,KAAK,EAAE,aAAa,IAAI,IAAI,EAAE,CAAC;gBACjC,MAAM,aAAa,GAAG,qBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAE1D,IAAI,oBAAoB,IAAI,IAAI,EAAE,CAAC;oBACjC,IAAI,CAAC;wBACH,oBAAoB,GAAG,qBAAS,CAAC,IAAI,CACnC,MAAM,KAAK,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,CAAC,CACjD,CAAC;oBACJ,CAAC;oBAAC,MAAM,CAAC;wBACP,oBAAoB;4BAClB,OAAO,CAAC,QAAQ,IAAI,IAAI;gCACtB,CAAC,CAAC,qBAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gCACnB,CAAC,CAAC,qBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACzC,CAAC;gBACH,CAAC;gBAED,YAAY;oBACV,YAAY,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,OAAO;YACL,QAAQ,EACN,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YACpE,YAAY;YACZ,oBAAoB;SACrB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,QAAc;QAC9C,OAAO,qBAAS,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnE,CAAC;IAEO,KAAK,CAAC,0BAA0B,CAAC,WAAgB;QACvD,MAAM,UAAU,GAAG,IAAA,uCAA2B,EAAC,WAAW,CAAC,CAAC;QAE5D,yEAAyE;QACzE,uEAAuE;QACvE,wDAAwD;QACxD,IACE,UAAU,EAAE,IAAI,KAAK,CAAC;YACtB,UAAU,CAAC,YAAY,IAAI,IAAI;YAC/B,UAAU,CAAC,oBAAoB,IAAI,IAAI,EACvC,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;YACzC,IACE,OAAO,CAAC,YAAY,IAAI,IAAI;gBAC5B,OAAO,CAAC,oBAAoB,IAAI,IAAI,EACpC,CAAC;gBACD,OAAO,UAAU,CAAC,IAAI,CAAC;YACzB,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,WAAgB,EAAE,QAAc;QACzC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC;QACtE,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACjC,CAAC;QAED,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,WAAgB;QAChC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC;QAEtE,OAAO,qBAAS,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,mBAAwB;QACrC,OAAO,MAAM,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAY;QAC/B,OAAO,IAAA,+BAAuB,EAAC,MAAM,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,iBAAyB;QAC7C,OAAO,IAAA,+BAAuB,EAC5B,MAAM,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CACnD,CAAC;IACJ,CAAC;CACF;AAED,MAAa,qBAAsB,SAAQ,YAAY;IACrD,YACE,MAAmB,EACnB,GAA8B,EAC9B,OAAoB;QAEpB,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;CACF;AARD,sDAQC"}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/providers.ts"],"names":[],"mappings":"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"}