@xyo-network/uniswap-crypto-market-plugin 2.42.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 (133) hide show
  1. package/LICENSE +165 -0
  2. package/README.md +81 -0
  3. package/dist/cjs/Config.d.ts +7 -0
  4. package/dist/cjs/Config.d.ts.map +1 -0
  5. package/dist/cjs/Config.js +3 -0
  6. package/dist/cjs/Config.js.map +1 -0
  7. package/dist/cjs/Plugin.d.ts +4 -0
  8. package/dist/cjs/Plugin.d.ts.map +1 -0
  9. package/dist/cjs/Plugin.js +16 -0
  10. package/dist/cjs/Plugin.js.map +1 -0
  11. package/dist/cjs/Witness.d.ts +19 -0
  12. package/dist/cjs/Witness.d.ts.map +1 -0
  13. package/dist/cjs/Witness.js +51 -0
  14. package/dist/cjs/Witness.js.map +1 -0
  15. package/dist/cjs/index.d.ts +7 -0
  16. package/dist/cjs/index.d.ts.map +1 -0
  17. package/dist/cjs/index.js +12 -0
  18. package/dist/cjs/index.js.map +1 -0
  19. package/dist/cjs/lib/Ethers/UniSwap3Pair.d.ts +29 -0
  20. package/dist/cjs/lib/Ethers/UniSwap3Pair.d.ts.map +1 -0
  21. package/dist/cjs/lib/Ethers/UniSwap3Pair.js +103 -0
  22. package/dist/cjs/lib/Ethers/UniSwap3Pair.js.map +1 -0
  23. package/dist/cjs/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.ts +13 -0
  24. package/dist/cjs/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.ts.map +1 -0
  25. package/dist/cjs/lib/Ethers/Uniswap3PoolSlot0Wrapper.js +31 -0
  26. package/dist/cjs/lib/Ethers/Uniswap3PoolSlot0Wrapper.js.map +1 -0
  27. package/dist/cjs/lib/Ethers/UniswapV3Slot0Fields.d.ts +3 -0
  28. package/dist/cjs/lib/Ethers/UniswapV3Slot0Fields.d.ts.map +1 -0
  29. package/dist/cjs/lib/Ethers/UniswapV3Slot0Fields.js +3 -0
  30. package/dist/cjs/lib/Ethers/UniswapV3Slot0Fields.js.map +1 -0
  31. package/dist/cjs/lib/Ethers/createUniswapPoolContracts.d.ts +4 -0
  32. package/dist/cjs/lib/Ethers/createUniswapPoolContracts.d.ts.map +1 -0
  33. package/dist/cjs/lib/Ethers/createUniswapPoolContracts.js +12 -0
  34. package/dist/cjs/lib/Ethers/createUniswapPoolContracts.js.map +1 -0
  35. package/dist/cjs/lib/Ethers/index.d.ts +5 -0
  36. package/dist/cjs/lib/Ethers/index.d.ts.map +1 -0
  37. package/dist/cjs/lib/Ethers/index.js +8 -0
  38. package/dist/cjs/lib/Ethers/index.js.map +1 -0
  39. package/dist/cjs/lib/UniswapPoolContracts.d.ts +2 -0
  40. package/dist/cjs/lib/UniswapPoolContracts.d.ts.map +1 -0
  41. package/dist/cjs/lib/UniswapPoolContracts.js +19 -0
  42. package/dist/cjs/lib/UniswapPoolContracts.js.map +1 -0
  43. package/dist/cjs/lib/UniswapV3Slot0Fields.d.ts +3 -0
  44. package/dist/cjs/lib/UniswapV3Slot0Fields.d.ts.map +1 -0
  45. package/dist/cjs/lib/UniswapV3Slot0Fields.js +3 -0
  46. package/dist/cjs/lib/UniswapV3Slot0Fields.js.map +1 -0
  47. package/dist/cjs/lib/index.d.ts +4 -0
  48. package/dist/cjs/lib/index.d.ts.map +1 -0
  49. package/dist/cjs/lib/index.js +7 -0
  50. package/dist/cjs/lib/index.js.map +1 -0
  51. package/dist/cjs/lib/logErrors.d.ts +3 -0
  52. package/dist/cjs/lib/logErrors.d.ts.map +1 -0
  53. package/dist/cjs/lib/logErrors.js +25 -0
  54. package/dist/cjs/lib/logErrors.js.map +1 -0
  55. package/dist/cjs/lib/pricesFromUniswap3.d.ts +4 -0
  56. package/dist/cjs/lib/pricesFromUniswap3.d.ts.map +1 -0
  57. package/dist/cjs/lib/pricesFromUniswap3.js +16 -0
  58. package/dist/cjs/lib/pricesFromUniswap3.js.map +1 -0
  59. package/dist/docs.json +5480 -0
  60. package/dist/esm/Config.d.ts +7 -0
  61. package/dist/esm/Config.d.ts.map +1 -0
  62. package/dist/esm/Config.js +2 -0
  63. package/dist/esm/Config.js.map +1 -0
  64. package/dist/esm/Plugin.d.ts +4 -0
  65. package/dist/esm/Plugin.d.ts.map +1 -0
  66. package/dist/esm/Plugin.js +11 -0
  67. package/dist/esm/Plugin.js.map +1 -0
  68. package/dist/esm/Witness.d.ts +19 -0
  69. package/dist/esm/Witness.d.ts.map +1 -0
  70. package/dist/esm/Witness.js +32 -0
  71. package/dist/esm/Witness.js.map +1 -0
  72. package/dist/esm/index.d.ts +7 -0
  73. package/dist/esm/index.d.ts.map +1 -0
  74. package/dist/esm/index.js +8 -0
  75. package/dist/esm/index.js.map +1 -0
  76. package/dist/esm/lib/Ethers/UniSwap3Pair.d.ts +29 -0
  77. package/dist/esm/lib/Ethers/UniSwap3Pair.d.ts.map +1 -0
  78. package/dist/esm/lib/Ethers/UniSwap3Pair.js +91 -0
  79. package/dist/esm/lib/Ethers/UniSwap3Pair.js.map +1 -0
  80. package/dist/esm/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.ts +13 -0
  81. package/dist/esm/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.ts.map +1 -0
  82. package/dist/esm/lib/Ethers/Uniswap3PoolSlot0Wrapper.js +28 -0
  83. package/dist/esm/lib/Ethers/Uniswap3PoolSlot0Wrapper.js.map +1 -0
  84. package/dist/esm/lib/Ethers/UniswapV3Slot0Fields.d.ts +3 -0
  85. package/dist/esm/lib/Ethers/UniswapV3Slot0Fields.d.ts.map +1 -0
  86. package/dist/esm/lib/Ethers/UniswapV3Slot0Fields.js +2 -0
  87. package/dist/esm/lib/Ethers/UniswapV3Slot0Fields.js.map +1 -0
  88. package/dist/esm/lib/Ethers/createUniswapPoolContracts.d.ts +4 -0
  89. package/dist/esm/lib/Ethers/createUniswapPoolContracts.d.ts.map +1 -0
  90. package/dist/esm/lib/Ethers/createUniswapPoolContracts.js +8 -0
  91. package/dist/esm/lib/Ethers/createUniswapPoolContracts.js.map +1 -0
  92. package/dist/esm/lib/Ethers/index.d.ts +5 -0
  93. package/dist/esm/lib/Ethers/index.d.ts.map +1 -0
  94. package/dist/esm/lib/Ethers/index.js +5 -0
  95. package/dist/esm/lib/Ethers/index.js.map +1 -0
  96. package/dist/esm/lib/UniswapPoolContracts.d.ts +2 -0
  97. package/dist/esm/lib/UniswapPoolContracts.d.ts.map +1 -0
  98. package/dist/esm/lib/UniswapPoolContracts.js +16 -0
  99. package/dist/esm/lib/UniswapPoolContracts.js.map +1 -0
  100. package/dist/esm/lib/UniswapV3Slot0Fields.d.ts +3 -0
  101. package/dist/esm/lib/UniswapV3Slot0Fields.d.ts.map +1 -0
  102. package/dist/esm/lib/UniswapV3Slot0Fields.js +2 -0
  103. package/dist/esm/lib/UniswapV3Slot0Fields.js.map +1 -0
  104. package/dist/esm/lib/index.d.ts +4 -0
  105. package/dist/esm/lib/index.d.ts.map +1 -0
  106. package/dist/esm/lib/index.js +4 -0
  107. package/dist/esm/lib/index.js.map +1 -0
  108. package/dist/esm/lib/logErrors.d.ts +3 -0
  109. package/dist/esm/lib/logErrors.d.ts.map +1 -0
  110. package/dist/esm/lib/logErrors.js +19 -0
  111. package/dist/esm/lib/logErrors.js.map +1 -0
  112. package/dist/esm/lib/pricesFromUniswap3.d.ts +4 -0
  113. package/dist/esm/lib/pricesFromUniswap3.d.ts.map +1 -0
  114. package/dist/esm/lib/pricesFromUniswap3.js +11 -0
  115. package/dist/esm/lib/pricesFromUniswap3.js.map +1 -0
  116. package/package.json +77 -0
  117. package/src/Config.ts +7 -0
  118. package/src/Plugin.spec.ts +11 -0
  119. package/src/Plugin.ts +16 -0
  120. package/src/Witness.spec.ts +56 -0
  121. package/src/Witness.ts +51 -0
  122. package/src/index.ts +10 -0
  123. package/src/lib/Ethers/UniSwap3Pair.ts +109 -0
  124. package/src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts +36 -0
  125. package/src/lib/Ethers/UniswapV3Slot0Fields.ts +3 -0
  126. package/src/lib/Ethers/createUniswapPoolContracts.ts +10 -0
  127. package/src/lib/Ethers/index.ts +4 -0
  128. package/src/lib/UniswapPoolContracts.ts +15 -0
  129. package/src/lib/UniswapV3Slot0Fields.ts +4 -0
  130. package/src/lib/index.ts +3 -0
  131. package/src/lib/logErrors.ts +17 -0
  132. package/src/lib/pricesFromUniswap3.spec.ts +13 -0
  133. package/src/lib/pricesFromUniswap3.ts +19 -0
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createUniswapPoolContracts = void 0;
4
+ const logErrors_1 = require("../logErrors");
5
+ const UniSwap3Pair_1 = require("./UniSwap3Pair");
6
+ const createUniswapPoolContracts = (provider, contracts) => {
7
+ return (0, logErrors_1.logErrors)(() => {
8
+ return contracts.map((contract) => new UniSwap3Pair_1.EthersUniSwap3Pair(contract, provider));
9
+ });
10
+ };
11
+ exports.createUniswapPoolContracts = createUniswapPoolContracts;
12
+ //# sourceMappingURL=createUniswapPoolContracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createUniswapPoolContracts.js","sourceRoot":"","sources":["../../../../src/lib/Ethers/createUniswapPoolContracts.ts"],"names":[],"mappings":";;;AAEA,4CAAwC;AACxC,iDAAmD;AAE5C,MAAM,0BAA0B,GAAG,CAAC,QAAkB,EAAE,SAAmB,EAAE,EAAE;IACpF,OAAO,IAAA,qBAAS,EAAC,GAAG,EAAE;QACpB,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,iCAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;IAChF,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAJY,QAAA,0BAA0B,8BAItC"}
@@ -0,0 +1,5 @@
1
+ export * from './createUniswapPoolContracts';
2
+ export * from './UniSwap3Pair';
3
+ export * from './Uniswap3PoolSlot0Wrapper';
4
+ export * from './UniswapV3Slot0Fields';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/Ethers/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./createUniswapPoolContracts"), exports);
5
+ tslib_1.__exportStar(require("./UniSwap3Pair"), exports);
6
+ tslib_1.__exportStar(require("./Uniswap3PoolSlot0Wrapper"), exports);
7
+ tslib_1.__exportStar(require("./UniswapV3Slot0Fields"), exports);
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/Ethers/index.ts"],"names":[],"mappings":";;;AAAA,uEAA4C;AAC5C,yDAA8B;AAC9B,qEAA0C;AAC1C,iEAAsC"}
@@ -0,0 +1,2 @@
1
+ export declare const UniswapPoolContracts: string[];
2
+ //# sourceMappingURL=UniswapPoolContracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UniswapPoolContracts.d.ts","sourceRoot":"","sources":["../../../src/lib/UniswapPoolContracts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,UAchC,CAAA"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UniswapPoolContracts = void 0;
4
+ exports.UniswapPoolContracts = [
5
+ /*xyo/weth*/ '0xE331DE28cd81B768C19A366b0e4e4675c45eC2dA',
6
+ /*xyo/usdt*/ '0xd0AF1981f52146a6939385451dAeA0726e13a484',
7
+ /*xyo/dai*/ '0x9D7e5647CE3c7C2d835F2F5e82C8fDb36B0BB0fe',
8
+ /*wbtc/xyo*/ '0x0cF7494c9dE661467403aBeE8454b3BBf0179a84',
9
+ /*link/xyo*/ '0x4693456599a8a4975862A0E720C5de7E1D09A1e4',
10
+ /*wbtc/weth*/ '0xCBCdF9626bC03E24f779434178A73a0B4bad62eD',
11
+ /*dai/usdc*/ '0x5777d92f208679DB4b9778590Fa3CAB3aC9e2168',
12
+ /*usdc/weth*/ '0x8ad599c3A0ff1De082011EFDDc58f1908eb6e6D8',
13
+ /*usdc/weth*/ '0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640',
14
+ /*dai/usdc*/ '0x6c6Bc977E13Df9b0de53b251522280BB72383700',
15
+ /*frax/usdc*/ '0xc63B0708E2F7e69CB8A1df0e1389A98C35A76D52',
16
+ /*wbtc/usdc*/ '0x99ac8cA7087fA4A2A1FB6357269965A2014ABc35',
17
+ /*usdc/usdt*/ '0x3416cF6C708Da44DB2624D63ea0AAef7113527C6',
18
+ ];
19
+ //# sourceMappingURL=UniswapPoolContracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UniswapPoolContracts.js","sourceRoot":"","sources":["../../../src/lib/UniswapPoolContracts.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG;IAClC,YAAY,CAAC,4CAA4C;IACzD,YAAY,CAAC,4CAA4C;IACzD,WAAW,CAAC,4CAA4C;IACxD,YAAY,CAAC,4CAA4C;IACzD,YAAY,CAAC,4CAA4C;IACzD,aAAa,CAAC,4CAA4C;IAC1D,YAAY,CAAC,4CAA4C;IACzD,aAAa,CAAC,4CAA4C;IAC1D,aAAa,CAAC,4CAA4C;IAC1D,YAAY,CAAC,4CAA4C;IACzD,aAAa,CAAC,4CAA4C;IAC1D,aAAa,CAAC,4CAA4C;IAC1D,aAAa,CAAC,4CAA4C;CAC3D,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { BigNumber } from '@xylabs/bignumber';
2
+ export type UniswapV3Slot0Fields = [BigNumber, number, number, number, number, number, boolean];
3
+ //# sourceMappingURL=UniswapV3Slot0Fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UniswapV3Slot0Fields.d.ts","sourceRoot":"","sources":["../../../src/lib/UniswapV3Slot0Fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAG7C,MAAM,MAAM,oBAAoB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=UniswapV3Slot0Fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UniswapV3Slot0Fields.js","sourceRoot":"","sources":["../../../src/lib/UniswapV3Slot0Fields.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export * from './Ethers';
2
+ export * from './pricesFromUniswap3';
3
+ export * from './UniswapPoolContracts';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./Ethers"), exports);
5
+ tslib_1.__exportStar(require("./pricesFromUniswap3"), exports);
6
+ tslib_1.__exportStar(require("./UniswapPoolContracts"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":";;;AAAA,mDAAwB;AACxB,+DAAoC;AACpC,iEAAsC"}
@@ -0,0 +1,3 @@
1
+ export declare const logErrors: <T>(func: () => T) => T;
2
+ export declare const logErrorsAsync: <T>(func: () => Promise<T>) => Promise<T>;
3
+ //# sourceMappingURL=logErrors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logErrors.d.ts","sourceRoot":"","sources":["../../../src/lib/logErrors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,yBAOrB,CAAA;AAED,eAAO,MAAM,cAAc,2CAO1B,CAAA"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logErrorsAsync = exports.logErrors = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const logErrors = (func) => {
6
+ try {
7
+ return func();
8
+ }
9
+ catch (ex) {
10
+ console.error(ex);
11
+ throw ex;
12
+ }
13
+ };
14
+ exports.logErrors = logErrors;
15
+ const logErrorsAsync = (func) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
16
+ try {
17
+ return yield func();
18
+ }
19
+ catch (ex) {
20
+ console.error(ex);
21
+ throw ex;
22
+ }
23
+ });
24
+ exports.logErrorsAsync = logErrorsAsync;
25
+ //# sourceMappingURL=logErrors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logErrors.js","sourceRoot":"","sources":["../../../src/lib/logErrors.ts"],"names":[],"mappings":";;;;AAAO,MAAM,SAAS,GAAG,CAAI,IAAa,EAAE,EAAE;IAC5C,IAAI;QACF,OAAO,IAAI,EAAE,CAAA;KACd;IAAC,OAAO,EAAE,EAAE;QACX,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACjB,MAAM,EAAE,CAAA;KACT;AACH,CAAC,CAAA;AAPY,QAAA,SAAS,aAOrB;AAEM,MAAM,cAAc,GAAG,CAAU,IAAsB,EAAE,EAAE;IAChE,IAAI;QACF,OAAO,MAAM,IAAI,EAAE,CAAA;KACpB;IAAC,OAAO,EAAE,EAAE;QACX,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACjB,MAAM,EAAE,CAAA;KACT;AACH,CAAC,CAAA,CAAA;AAPY,QAAA,cAAc,kBAO1B"}
@@ -0,0 +1,4 @@
1
+ import { XyoUniswapCryptoPair } from '@xyo-network/uniswap-crypto-market-payload-plugin';
2
+ import { EthersUniSwap3Pair } from './Ethers';
3
+ export declare const pricesFromUniswap3: (pools: EthersUniSwap3Pair[]) => Promise<XyoUniswapCryptoPair[]>;
4
+ //# sourceMappingURL=pricesFromUniswap3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricesFromUniswap3.d.ts","sourceRoot":"","sources":["../../../src/lib/pricesFromUniswap3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAA;AAExF,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAG7C,eAAO,MAAM,kBAAkB,UAAiB,kBAAkB,EAAE,KAAG,QAAQ,oBAAoB,EAAE,CAapG,CAAA"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pricesFromUniswap3 = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const logErrors_1 = require("./logErrors");
6
+ const pricesFromUniswap3 = (pools) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
7
+ return yield (0, logErrors_1.logErrorsAsync)(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
8
+ const promiseResults = yield Promise.allSettled(pools.map((pool) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
9
+ const result = yield pool.price();
10
+ return result;
11
+ })));
12
+ return promiseResults.filter((result) => result.status === 'fulfilled').map((result) => result.value);
13
+ }));
14
+ });
15
+ exports.pricesFromUniswap3 = pricesFromUniswap3;
16
+ //# sourceMappingURL=pricesFromUniswap3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricesFromUniswap3.js","sourceRoot":"","sources":["../../../src/lib/pricesFromUniswap3.ts"],"names":[],"mappings":";;;;AAGA,2CAA4C;AAErC,MAAM,kBAAkB,GAAG,CAAO,KAA2B,EAAmC,EAAE;IACvG,OAAO,MAAM,IAAA,0BAAc,EAAC,GAAS,EAAE;QACrC,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,UAAU,CAC7C,KAAK,CAAC,GAAG,CAAC,CAAO,IAAI,EAAiC,EAAE;YACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;YACjC,OAAO,MAAM,CAAA;QACf,CAAC,CAAA,CAAC,CACH,CAAA;QAED,OAAQ,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,CAAoD,CAAC,GAAG,CAC7H,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CACzB,CAAA;IACH,CAAC,CAAA,CAAC,CAAA;AACJ,CAAC,CAAA,CAAA;AAbY,QAAA,kBAAkB,sBAa9B"}