@zhoujun_aptos/octopus-ts-sdk-min 0.22.4 → 0.22.5

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 (95) hide show
  1. package/dist/common/index.d.ts +966 -0
  2. package/dist/common/index.js +4491 -0
  3. package/dist/common/index.js.map +1 -0
  4. package/dist/esm/index.d.mts +966 -0
  5. package/dist/esm/index.mjs +4449 -0
  6. package/dist/esm/index.mjs.map +1 -0
  7. package/package.json +22 -8
  8. package/dist/elgamal.d.ts +0 -31
  9. package/dist/elgamal.d.ts.map +0 -1
  10. package/dist/elgamal.js +0 -96
  11. package/dist/elgamal.js.map +0 -1
  12. package/dist/enc/index.d.ts +0 -42
  13. package/dist/enc/index.d.ts.map +0 -1
  14. package/dist/enc/index.js +0 -211
  15. package/dist/enc/index.js.map +0 -1
  16. package/dist/enc/simple_elgamal_ristretto255.d.ts +0 -28
  17. package/dist/enc/simple_elgamal_ristretto255.d.ts.map +0 -1
  18. package/dist/enc/simple_elgamal_ristretto255.js +0 -173
  19. package/dist/enc/simple_elgamal_ristretto255.js.map +0 -1
  20. package/dist/group.d.ts +0 -39
  21. package/dist/group.d.ts.map +0 -1
  22. package/dist/group.js +0 -165
  23. package/dist/group.js.map +0 -1
  24. package/dist/ibe/index.d.ts +0 -54
  25. package/dist/ibe/index.d.ts.map +0 -1
  26. package/dist/ibe/index.js +0 -280
  27. package/dist/ibe/index.js.map +0 -1
  28. package/dist/ibe/otp_hmac_boneh_franklin_bls12381_short_pk.d.ts +0 -38
  29. package/dist/ibe/otp_hmac_boneh_franklin_bls12381_short_pk.d.ts.map +0 -1
  30. package/dist/ibe/otp_hmac_boneh_franklin_bls12381_short_pk.js +0 -155
  31. package/dist/ibe/otp_hmac_boneh_franklin_bls12381_short_pk.js.map +0 -1
  32. package/dist/index.d.ts +0 -13
  33. package/dist/index.d.ts.map +0 -1
  34. package/dist/index.js +0 -50
  35. package/dist/index.js.map +0 -1
  36. package/dist/shamir_gf256.d.ts +0 -61
  37. package/dist/shamir_gf256.d.ts.map +0 -1
  38. package/dist/shamir_gf256.js +0 -295
  39. package/dist/shamir_gf256.js.map +0 -1
  40. package/dist/sig/index.d.ts +0 -42
  41. package/dist/sig/index.d.ts.map +0 -1
  42. package/dist/sig/index.js +0 -212
  43. package/dist/sig/index.js.map +0 -1
  44. package/dist/sig/schnorr_ristretto255.d.ts +0 -29
  45. package/dist/sig/schnorr_ristretto255.d.ts.map +0 -1
  46. package/dist/sig/schnorr_ristretto255.js +0 -142
  47. package/dist/sig/schnorr_ristretto255.js.map +0 -1
  48. package/dist/silent_setup_encryption.d.ts +0 -93
  49. package/dist/silent_setup_encryption.d.ts.map +0 -1
  50. package/dist/silent_setup_encryption.js +0 -342
  51. package/dist/silent_setup_encryption.js.map +0 -1
  52. package/dist/silent_setup_encryption_xchain/aptos.d.ts +0 -40
  53. package/dist/silent_setup_encryption_xchain/aptos.d.ts.map +0 -1
  54. package/dist/silent_setup_encryption_xchain/aptos.js +0 -125
  55. package/dist/silent_setup_encryption_xchain/aptos.js.map +0 -1
  56. package/dist/silent_setup_encryption_xchain/index.d.ts +0 -116
  57. package/dist/silent_setup_encryption_xchain/index.d.ts.map +0 -1
  58. package/dist/silent_setup_encryption_xchain/index.js +0 -471
  59. package/dist/silent_setup_encryption_xchain/index.js.map +0 -1
  60. package/dist/silent_setup_encryption_xchain/solana.d.ts +0 -42
  61. package/dist/silent_setup_encryption_xchain/solana.d.ts.map +0 -1
  62. package/dist/silent_setup_encryption_xchain/solana.js +0 -145
  63. package/dist/silent_setup_encryption_xchain/solana.js.map +0 -1
  64. package/dist/sym/aes256gcm.d.ts +0 -27
  65. package/dist/sym/aes256gcm.d.ts.map +0 -1
  66. package/dist/sym/aes256gcm.js +0 -107
  67. package/dist/sym/aes256gcm.js.map +0 -1
  68. package/dist/sym/index.d.ts +0 -27
  69. package/dist/sym/index.d.ts.map +0 -1
  70. package/dist/sym/index.js +0 -154
  71. package/dist/sym/index.js.map +0 -1
  72. package/dist/threshold-ibe/aptos.d.ts +0 -42
  73. package/dist/threshold-ibe/aptos.d.ts.map +0 -1
  74. package/dist/threshold-ibe/aptos.js +0 -324
  75. package/dist/threshold-ibe/aptos.js.map +0 -1
  76. package/dist/threshold-ibe/index.d.ts +0 -147
  77. package/dist/threshold-ibe/index.d.ts.map +0 -1
  78. package/dist/threshold-ibe/index.js +0 -453
  79. package/dist/threshold-ibe/index.js.map +0 -1
  80. package/dist/threshold-ibe/solana.d.ts +0 -38
  81. package/dist/threshold-ibe/solana.d.ts.map +0 -1
  82. package/dist/threshold-ibe/solana.js +0 -197
  83. package/dist/threshold-ibe/solana.js.map +0 -1
  84. package/dist/utils.d.ts +0 -12
  85. package/dist/utils.d.ts.map +0 -1
  86. package/dist/utils.js +0 -130
  87. package/dist/utils.js.map +0 -1
  88. package/dist/worker_config.d.ts +0 -30
  89. package/dist/worker_config.d.ts.map +0 -1
  90. package/dist/worker_config.js +0 -142
  91. package/dist/worker_config.js.map +0 -1
  92. package/dist/worker_task.d.ts +0 -29
  93. package/dist/worker_task.d.ts.map +0 -1
  94. package/dist/worker_task.js +0 -178
  95. package/dist/worker_task.js.map +0 -1
@@ -1,155 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Ciphertext = exports.IdentityPrivateKey = exports.MasterPrivateKey = exports.MasterPublicKey = void 0;
4
- exports.keygen = keygen;
5
- exports.derivePublicKey = derivePublicKey;
6
- exports.encrypt = encrypt;
7
- exports.encryptWithRandomness = encryptWithRandomness;
8
- exports.extract = extract;
9
- exports.decrypt = decrypt;
10
- const bls12_381_1 = require("@noble/curves/bls12-381");
11
- const utils_1 = require("@noble/curves/utils");
12
- const utils_2 = require("@noble/hashes/utils");
13
- const utils_3 = require("../utils");
14
- const DST_OTP = new TextEncoder().encode("BONEH_FRANKLIN_BLS12381_SHORT_PK/OTP");
15
- const DST_ID_HASH = new TextEncoder().encode("BONEH_FRANKLIN_BLS12381_SHORT_PK/HASH_ID_TO_CURVE");
16
- const DST_MAC = new TextEncoder().encode("BONEH_FRANKLIN_BLS12381_SHORT_PK/MAC");
17
- class MasterPublicKey {
18
- base;
19
- publicPointG1;
20
- constructor(base, publicPointG1) {
21
- this.base = base;
22
- this.publicPointG1 = publicPointG1;
23
- }
24
- static deserialize(deserializer) {
25
- const baseBytes = deserializer.deserializeBytes();
26
- const base = bls12_381_1.bls12_381.G1.Point.fromBytes(baseBytes);
27
- const publicPointG1Bytes = deserializer.deserializeBytes();
28
- const publicPointG1 = bls12_381_1.bls12_381.G1.Point.fromBytes(publicPointG1Bytes);
29
- return new MasterPublicKey(base, publicPointG1);
30
- }
31
- serialize(serializer) {
32
- serializer.serializeBytes(this.base.toBytes());
33
- serializer.serializeBytes(this.publicPointG1.toBytes());
34
- }
35
- }
36
- exports.MasterPublicKey = MasterPublicKey;
37
- class MasterPrivateKey {
38
- base;
39
- privateScalar;
40
- constructor(base, privateScalar) {
41
- this.base = base;
42
- this.privateScalar = privateScalar;
43
- }
44
- static deserialize(deserializer) {
45
- const baseBytes = deserializer.deserializeBytes();
46
- const base = bls12_381_1.bls12_381.G1.Point.fromBytes(baseBytes);
47
- const privateScalarBytes = deserializer.deserializeBytes();
48
- const privateScalar = BigInt('0x' + Array.from(privateScalarBytes).reverse().map(b => b.toString(16).padStart(2, '0')).join(''));
49
- return new MasterPrivateKey(base, privateScalar);
50
- }
51
- serialize(serializer) {
52
- serializer.serializeBytes(this.base.toBytes());
53
- serializer.serializeBytes((0, utils_1.numberToBytesLE)(this.privateScalar, 32));
54
- }
55
- }
56
- exports.MasterPrivateKey = MasterPrivateKey;
57
- class IdentityPrivateKey {
58
- privatePointG2;
59
- constructor(privatePointG2) {
60
- this.privatePointG2 = privatePointG2;
61
- }
62
- static deserialize(deserializer) {
63
- const privatePointG2Bytes = deserializer.deserializeBytes();
64
- const privatePointG2 = bls12_381_1.bls12_381.G2.Point.fromBytes(privatePointG2Bytes);
65
- return new IdentityPrivateKey(privatePointG2);
66
- }
67
- serialize(serializer) {
68
- serializer.serializeBytes(this.privatePointG2.toBytes());
69
- }
70
- }
71
- exports.IdentityPrivateKey = IdentityPrivateKey;
72
- class Ciphertext {
73
- c0;
74
- symmetricCiph;
75
- mac;
76
- constructor(c0, symmetricCiph, mac) {
77
- this.c0 = c0;
78
- this.symmetricCiph = symmetricCiph;
79
- this.mac = mac;
80
- }
81
- static deserialize(deserializer) {
82
- const c0Bytes = deserializer.deserializeBytes();
83
- const c0 = bls12_381_1.bls12_381.G1.Point.fromBytes(c0Bytes);
84
- const symmetricCiph = deserializer.deserializeBytes();
85
- const mac = deserializer.deserializeBytes();
86
- return new Ciphertext(c0, symmetricCiph, mac);
87
- }
88
- serialize(serializer) {
89
- serializer.serializeBytes(this.c0.toBytes());
90
- serializer.serializeBytes(this.symmetricCiph);
91
- serializer.serializeBytes(this.mac);
92
- }
93
- }
94
- exports.Ciphertext = Ciphertext;
95
- function keygen() {
96
- const base = bls12_381_1.bls12_381.G1.hashToCurve((0, utils_2.randomBytes)(32));
97
- const privateScalar = (0, utils_1.bytesToNumberBE)(bls12_381_1.bls12_381.utils.randomSecretKey());
98
- return new MasterPrivateKey(base, privateScalar);
99
- }
100
- function derivePublicKey(privateKey) {
101
- const publicPoint = privateKey.base.multiply(privateKey.privateScalar);
102
- return new MasterPublicKey(privateKey.base, publicPoint);
103
- }
104
- function encrypt(publicKey, id, plaintext) {
105
- const r = (0, utils_1.bytesToNumberBE)(bls12_381_1.bls12_381.utils.randomSecretKey());
106
- return encryptWithRandomness(publicKey, id, plaintext, (0, utils_1.numberToBytesLE)(r, 32));
107
- }
108
- function encryptWithRandomness(publicKey, id, plaintext, randomness) {
109
- const r = (0, utils_1.bytesToNumberLE)(randomness);
110
- const idPoint = bls12_381_1.bls12_381.G2.hashToCurve(id, { DST: DST_ID_HASH });
111
- const seedElement = bls12_381_1.bls12_381.pairing(publicKey.publicPointG1.multiply(r), idPoint);
112
- const seed = bls12381GtReprNobleToAptos(bls12_381_1.bls12_381.fields.Fp12.toBytes(seedElement));
113
- const otp = (0, utils_3.kdf)(seed, DST_OTP, plaintext.length);
114
- const macKey = (0, utils_3.kdf)(seed, DST_MAC, 32);
115
- const symmetricCiph = (0, utils_3.xorBytes)(otp, plaintext);
116
- const mac = (0, utils_3.hmac_sha3_256)(macKey, symmetricCiph);
117
- const c0 = publicKey.base.multiply(r);
118
- return new Ciphertext(c0, symmetricCiph, mac);
119
- }
120
- /**
121
- * Aptos Gt format is defined in https://github.com/aptos-labs/aptos-core/blob/46d871fa1feb61ffafb73353a0755e8cc3aaed9d/aptos-move/framework/aptos-stdlib/sources/cryptography/bls12381_algebra.move#L204.
122
- * Noble format is similar except that each Fp element is big-endian.
123
- */
124
- function bls12381GtReprNobleToAptos(noble) {
125
- if (noble.length !== 576) {
126
- throw new Error('noble must be 576 bytes');
127
- }
128
- const chunks = [];
129
- for (let i = 0; i < noble.length; i += 48) {
130
- chunks.push(noble.slice(i, i + 48).reverse());
131
- }
132
- const result = new Uint8Array(576);
133
- for (let i = 0; i < 12; i++) {
134
- result.set(chunks[i], i * 48);
135
- }
136
- return result;
137
- }
138
- function extract(privateKey, id) {
139
- const idPoint = bls12_381_1.bls12_381.G2.hashToCurve(id, { DST: DST_ID_HASH });
140
- const privatePointG2 = idPoint.multiply(privateKey.privateScalar);
141
- return new IdentityPrivateKey(privatePointG2);
142
- }
143
- function decrypt(identityKey, ciphertext) {
144
- const seedElementGt = bls12_381_1.bls12_381.pairing(ciphertext.c0, identityKey.privatePointG2);
145
- const seed = bls12381GtReprNobleToAptos(bls12_381_1.bls12_381.fields.Fp12.toBytes(seedElementGt));
146
- const macKey = (0, utils_3.kdf)(seed, DST_MAC, 32);
147
- const macAnother = (0, utils_3.hmac_sha3_256)(macKey, ciphertext.symmetricCiph);
148
- if ((0, utils_2.bytesToHex)(ciphertext.mac) !== (0, utils_2.bytesToHex)(macAnother)) {
149
- return undefined;
150
- }
151
- const otp = (0, utils_3.kdf)(seed, DST_OTP, ciphertext.symmetricCiph.length);
152
- const plaintext = (0, utils_3.xorBytes)(otp, ciphertext.symmetricCiph);
153
- return plaintext;
154
- }
155
- //# sourceMappingURL=otp_hmac_boneh_franklin_bls12381_short_pk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"otp_hmac_boneh_franklin_bls12381_short_pk.js","sourceRoot":"","sources":["../../src/ibe/otp_hmac_boneh_franklin_bls12381_short_pk.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts DELETED
@@ -1,13 +0,0 @@
1
- export * as ElGamal from './elgamal';
2
- export * as Enc from './enc';
3
- export * as Group from './group';
4
- export * as IBE from './ibe';
5
- export * as Sig from './sig';
6
- export * as SilentSetupEncryption from './silent_setup_encryption';
7
- export * as SilentSetupEncryptionXChain from './silent_setup_encryption_xchain';
8
- export * as Sym from './sym';
9
- export * as ThresholdIbe from './threshold-ibe';
10
- export * as Utils from './utils';
11
- export * as WorkerConfig from './worker_config';
12
- export { WorkerTask } from './worker_task';
13
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,qBAAqB,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,2BAA2B,MAAM,kCAAkC,CAAC;AAChF,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,YAAY,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,YAAY,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
package/dist/index.js DELETED
@@ -1,50 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.WorkerTask = exports.WorkerConfig = exports.Utils = exports.ThresholdIbe = exports.Sym = exports.SilentSetupEncryptionXChain = exports.SilentSetupEncryption = exports.Sig = exports.IBE = exports.Group = exports.Enc = exports.ElGamal = void 0;
37
- exports.ElGamal = __importStar(require("./elgamal"));
38
- exports.Enc = __importStar(require("./enc"));
39
- exports.Group = __importStar(require("./group"));
40
- exports.IBE = __importStar(require("./ibe"));
41
- exports.Sig = __importStar(require("./sig"));
42
- exports.SilentSetupEncryption = __importStar(require("./silent_setup_encryption"));
43
- exports.SilentSetupEncryptionXChain = __importStar(require("./silent_setup_encryption_xchain"));
44
- exports.Sym = __importStar(require("./sym"));
45
- exports.ThresholdIbe = __importStar(require("./threshold-ibe"));
46
- exports.Utils = __importStar(require("./utils"));
47
- exports.WorkerConfig = __importStar(require("./worker_config"));
48
- var worker_task_1 = require("./worker_task");
49
- Object.defineProperty(exports, "WorkerTask", { enumerable: true, get: function () { return worker_task_1.WorkerTask; } });
50
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAqC;AACrC,6CAA6B;AAC7B,iDAAiC;AACjC,6CAA6B;AAC7B,6CAA6B;AAC7B,mFAAmE;AACnE,gGAAgF;AAChF,6CAA6B;AAC7B,gEAAgD;AAChD,iDAAiC;AACjC,gEAAgD;AAChD,6CAA2C;AAAlC,yGAAA,UAAU,OAAA"}
@@ -1,61 +0,0 @@
1
- import { Deserializer, Serializer } from "@aptos-labs/ts-sdk";
2
- export declare class GF256 {
3
- value: number;
4
- constructor(value: number);
5
- log(): number;
6
- static exp(x: number): GF256;
7
- add(other: GF256): GF256;
8
- sub(other: GF256): GF256;
9
- neg(): GF256;
10
- mul(other: GF256): GF256;
11
- div(other: GF256): GF256;
12
- equals(other: GF256): boolean;
13
- static zero(): GF256;
14
- static one(): GF256;
15
- }
16
- export declare class Polynomial {
17
- coefficients: GF256[];
18
- /**
19
- * Construct a new Polynomial over [GF256] from the given coefficients.
20
- * The first coefficient is the constant term.
21
- */
22
- constructor(coefficients: GF256[]);
23
- static fromBytes(bytes: Uint8Array): Polynomial;
24
- degree(): number;
25
- getCoefficient(index: number): GF256;
26
- add(other: Polynomial): Polynomial;
27
- mul(other: Polynomial): Polynomial;
28
- /** The polynomial s * this. */
29
- scale(s: GF256): Polynomial;
30
- div(s: GF256): Polynomial;
31
- /** The polynomial x + c. */
32
- static monic_linear(c: GF256): Polynomial;
33
- static zero(): Polynomial;
34
- static one(): Polynomial;
35
- /** Given a set of coordinates, interpolate a polynomial. */
36
- static interpolate(coordinates: {
37
- x: GF256;
38
- y: GF256;
39
- }[]): Polynomial;
40
- /** Given a set of coordinates, interpolate a polynomial and evaluate it at x = 0. */
41
- static combine(coordinates: {
42
- x: GF256;
43
- y: GF256;
44
- }[]): GF256;
45
- /** Evaluate the polynomial at x. */
46
- evaluate(x: GF256): GF256;
47
- equals(other: Polynomial): boolean;
48
- }
49
- /** Representation of a share of a secret. The index is a number between 1 and 255. */
50
- export declare class Share {
51
- index: number;
52
- payload: Uint8Array;
53
- constructor(index: number, payload: Uint8Array);
54
- deserialize(deserializer: Deserializer): void;
55
- static fromBytes(bytes: Uint8Array): Share;
56
- serialize(serializer: Serializer): void;
57
- toBytes(): Uint8Array;
58
- }
59
- export declare function split(secret: Uint8Array, threshold: number, total: number): Share[];
60
- export declare function combine(shares: Share[]): Uint8Array;
61
- //# sourceMappingURL=shamir_gf256.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shamir_gf256.d.ts","sourceRoot":"","sources":["../src/shamir_gf256.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAa9D,qBAAa,KAAK;IACjB,KAAK,EAAE,MAAM,CAAC;gBAEF,KAAK,EAAE,MAAM;IAOzB,GAAG,IAAI,MAAM;IAOb,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK;IAI5B,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;IAIxB,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;IAKxB,GAAG,IAAI,KAAK;IAKZ,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;IAOxB,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;IAIxB,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAI7B,MAAM,CAAC,IAAI,IAAI,KAAK;IAIpB,MAAM,CAAC,GAAG,IAAI,KAAK;CAGnB;AA0CD,qBAAa,UAAU;IACtB,YAAY,EAAE,KAAK,EAAE,CAAC;IAEtB;;;OAGG;gBACS,YAAY,EAAE,KAAK,EAAE;IAYjC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;IAI/C,MAAM,IAAI,MAAM;IAOhB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK;IAOpC,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;IASlC,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;IAelC,+BAA+B;IAC/B,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,UAAU;IAI3B,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,UAAU;IAIzB,4BAA4B;IAC5B,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,UAAU;IAIzC,MAAM,CAAC,IAAI,IAAI,UAAU;IAIzB,MAAM,CAAC,GAAG,IAAI,UAAU;IAIxB,4DAA4D;IAC5D,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE;QAAE,CAAC,EAAE,KAAK,CAAC;QAAC,CAAC,EAAE,KAAK,CAAA;KAAE,EAAE,GAAG,UAAU;IAyBrE,qFAAqF;IACrF,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE;QAAE,CAAC,EAAE,KAAK,CAAC;QAAC,CAAC,EAAE,KAAK,CAAA;KAAE,EAAE,GAAG,KAAK;IA8B5D,oCAAoC;IACpC,QAAQ,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK;IAMzB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;CAMlC;AAKD,sFAAsF;AACtF,qBAAa,KAAK;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,UAAU,CAAC;gBAER,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;IAK3C,WAAW,CAAC,YAAY,EAAE,YAAY;IAKtC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,KAAK;IAO1C,SAAS,CAAC,UAAU,EAAE,UAAU;IAKnC,OAAO,IAAI,UAAU;CAKrB;AA2BD,wBAAgB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,CAYnF;AAqBD,wBAAgB,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAenD"}
@@ -1,295 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Share = exports.Polynomial = exports.GF256 = void 0;
4
- exports.split = split;
5
- exports.combine = combine;
6
- const ts_sdk_1 = require("@aptos-labs/ts-sdk");
7
- function hasDuplicates(array) {
8
- return new Set(array).size !== array.length;
9
- }
10
- function allEqual(array) {
11
- if (array.length === 0) {
12
- return true;
13
- }
14
- return array.every((item) => item === array[0]);
15
- }
16
- class GF256 {
17
- value;
18
- constructor(value) {
19
- if (value < 0 || value >= GF256_SIZE) {
20
- throw new Error(`Invalid value ${value} for GF256`);
21
- }
22
- this.value = value;
23
- }
24
- log() {
25
- if (this.value === 0) {
26
- throw new Error('Invalid value');
27
- }
28
- return LOG[this.value - 1];
29
- }
30
- static exp(x) {
31
- return new GF256(EXP[x % (GF256_SIZE - 1)]);
32
- }
33
- add(other) {
34
- return new GF256(this.value ^ other.value);
35
- }
36
- sub(other) {
37
- // Addition is the same as subtraction in a binary field.
38
- return this.add(other);
39
- }
40
- neg() {
41
- // Negation doesn't change the value in a binary field.
42
- return this;
43
- }
44
- mul(other) {
45
- if (this.value === 0 || other.value === 0) {
46
- return new GF256(0);
47
- }
48
- return GF256.exp(this.log() + other.log());
49
- }
50
- div(other) {
51
- return this.mul(GF256.exp(GF256_SIZE - other.log() - 1));
52
- }
53
- equals(other) {
54
- return this.value === other.value;
55
- }
56
- static zero() {
57
- return new GF256(0);
58
- }
59
- static one() {
60
- return new GF256(1);
61
- }
62
- }
63
- exports.GF256 = GF256;
64
- /// Table of Eᵢ = gⁱ where g = 0x03 generates the multiplicative group of the field.
65
- const EXP = [
66
- 0x01, 0x03, 0x05, 0x0f, 0x11, 0x33, 0x55, 0xff, 0x1a, 0x2e, 0x72, 0x96, 0xa1, 0xf8, 0x13, 0x35,
67
- 0x5f, 0xe1, 0x38, 0x48, 0xd8, 0x73, 0x95, 0xa4, 0xf7, 0x02, 0x06, 0x0a, 0x1e, 0x22, 0x66, 0xaa,
68
- 0xe5, 0x34, 0x5c, 0xe4, 0x37, 0x59, 0xeb, 0x26, 0x6a, 0xbe, 0xd9, 0x70, 0x90, 0xab, 0xe6, 0x31,
69
- 0x53, 0xf5, 0x04, 0x0c, 0x14, 0x3c, 0x44, 0xcc, 0x4f, 0xd1, 0x68, 0xb8, 0xd3, 0x6e, 0xb2, 0xcd,
70
- 0x4c, 0xd4, 0x67, 0xa9, 0xe0, 0x3b, 0x4d, 0xd7, 0x62, 0xa6, 0xf1, 0x08, 0x18, 0x28, 0x78, 0x88,
71
- 0x83, 0x9e, 0xb9, 0xd0, 0x6b, 0xbd, 0xdc, 0x7f, 0x81, 0x98, 0xb3, 0xce, 0x49, 0xdb, 0x76, 0x9a,
72
- 0xb5, 0xc4, 0x57, 0xf9, 0x10, 0x30, 0x50, 0xf0, 0x0b, 0x1d, 0x27, 0x69, 0xbb, 0xd6, 0x61, 0xa3,
73
- 0xfe, 0x19, 0x2b, 0x7d, 0x87, 0x92, 0xad, 0xec, 0x2f, 0x71, 0x93, 0xae, 0xe9, 0x20, 0x60, 0xa0,
74
- 0xfb, 0x16, 0x3a, 0x4e, 0xd2, 0x6d, 0xb7, 0xc2, 0x5d, 0xe7, 0x32, 0x56, 0xfa, 0x15, 0x3f, 0x41,
75
- 0xc3, 0x5e, 0xe2, 0x3d, 0x47, 0xc9, 0x40, 0xc0, 0x5b, 0xed, 0x2c, 0x74, 0x9c, 0xbf, 0xda, 0x75,
76
- 0x9f, 0xba, 0xd5, 0x64, 0xac, 0xef, 0x2a, 0x7e, 0x82, 0x9d, 0xbc, 0xdf, 0x7a, 0x8e, 0x89, 0x80,
77
- 0x9b, 0xb6, 0xc1, 0x58, 0xe8, 0x23, 0x65, 0xaf, 0xea, 0x25, 0x6f, 0xb1, 0xc8, 0x43, 0xc5, 0x54,
78
- 0xfc, 0x1f, 0x21, 0x63, 0xa5, 0xf4, 0x07, 0x09, 0x1b, 0x2d, 0x77, 0x99, 0xb0, 0xcb, 0x46, 0xca,
79
- 0x45, 0xcf, 0x4a, 0xde, 0x79, 0x8b, 0x86, 0x91, 0xa8, 0xe3, 0x3e, 0x42, 0xc6, 0x51, 0xf3, 0x0e,
80
- 0x12, 0x36, 0x5a, 0xee, 0x29, 0x7b, 0x8d, 0x8c, 0x8f, 0x8a, 0x85, 0x94, 0xa7, 0xf2, 0x0d, 0x17,
81
- 0x39, 0x4b, 0xdd, 0x7c, 0x84, 0x97, 0xa2, 0xfd, 0x1c, 0x24, 0x6c, 0xb4, 0xc7, 0x52, 0xf6,
82
- ];
83
- /// Table of Lᵢ = LOG[i + 1] such that g^Lᵢ = i where g = 0x03.
84
- const LOG = [
85
- 0x00, 0x19, 0x01, 0x32, 0x02, 0x1a, 0xc6, 0x4b, 0xc7, 0x1b, 0x68, 0x33, 0xee, 0xdf, 0x03, 0x64,
86
- 0x04, 0xe0, 0x0e, 0x34, 0x8d, 0x81, 0xef, 0x4c, 0x71, 0x08, 0xc8, 0xf8, 0x69, 0x1c, 0xc1, 0x7d,
87
- 0xc2, 0x1d, 0xb5, 0xf9, 0xb9, 0x27, 0x6a, 0x4d, 0xe4, 0xa6, 0x72, 0x9a, 0xc9, 0x09, 0x78, 0x65,
88
- 0x2f, 0x8a, 0x05, 0x21, 0x0f, 0xe1, 0x24, 0x12, 0xf0, 0x82, 0x45, 0x35, 0x93, 0xda, 0x8e, 0x96,
89
- 0x8f, 0xdb, 0xbd, 0x36, 0xd0, 0xce, 0x94, 0x13, 0x5c, 0xd2, 0xf1, 0x40, 0x46, 0x83, 0x38, 0x66,
90
- 0xdd, 0xfd, 0x30, 0xbf, 0x06, 0x8b, 0x62, 0xb3, 0x25, 0xe2, 0x98, 0x22, 0x88, 0x91, 0x10, 0x7e,
91
- 0x6e, 0x48, 0xc3, 0xa3, 0xb6, 0x1e, 0x42, 0x3a, 0x6b, 0x28, 0x54, 0xfa, 0x85, 0x3d, 0xba, 0x2b,
92
- 0x79, 0x0a, 0x15, 0x9b, 0x9f, 0x5e, 0xca, 0x4e, 0xd4, 0xac, 0xe5, 0xf3, 0x73, 0xa7, 0x57, 0xaf,
93
- 0x58, 0xa8, 0x50, 0xf4, 0xea, 0xd6, 0x74, 0x4f, 0xae, 0xe9, 0xd5, 0xe7, 0xe6, 0xad, 0xe8, 0x2c,
94
- 0xd7, 0x75, 0x7a, 0xeb, 0x16, 0x0b, 0xf5, 0x59, 0xcb, 0x5f, 0xb0, 0x9c, 0xa9, 0x51, 0xa0, 0x7f,
95
- 0x0c, 0xf6, 0x6f, 0x17, 0xc4, 0x49, 0xec, 0xd8, 0x43, 0x1f, 0x2d, 0xa4, 0x76, 0x7b, 0xb7, 0xcc,
96
- 0xbb, 0x3e, 0x5a, 0xfb, 0x60, 0xb1, 0x86, 0x3b, 0x52, 0xa1, 0x6c, 0xaa, 0x55, 0x29, 0x9d, 0x97,
97
- 0xb2, 0x87, 0x90, 0x61, 0xbe, 0xdc, 0xfc, 0xbc, 0x95, 0xcf, 0xcd, 0x37, 0x3f, 0x5b, 0xd1, 0x53,
98
- 0x39, 0x84, 0x3c, 0x41, 0xa2, 0x6d, 0x47, 0x14, 0x2a, 0x9e, 0x5d, 0x56, 0xf2, 0xd3, 0xab, 0x44,
99
- 0x11, 0x92, 0xd9, 0x23, 0x20, 0x2e, 0x89, 0xb4, 0x7c, 0xb8, 0x26, 0x77, 0x99, 0xe3, 0xa5, 0x67,
100
- 0x4a, 0xed, 0xde, 0xc5, 0x31, 0xfe, 0x18, 0x0d, 0x63, 0x8c, 0x80, 0xc0, 0xf7, 0x70, 0x07,
101
- ];
102
- class Polynomial {
103
- coefficients;
104
- /**
105
- * Construct a new Polynomial over [GF256] from the given coefficients.
106
- * The first coefficient is the constant term.
107
- */
108
- constructor(coefficients) {
109
- this.coefficients = coefficients.slice();
110
- // The highest degree coefficient is always non-zero.
111
- while (this.coefficients.length > 0 &&
112
- this.coefficients[this.coefficients.length - 1].value === 0) {
113
- this.coefficients.pop();
114
- }
115
- }
116
- static fromBytes(bytes) {
117
- return new Polynomial(Array.from(bytes, (b) => new GF256(b)));
118
- }
119
- degree() {
120
- if (this.coefficients.length === 0) {
121
- return 0;
122
- }
123
- return this.coefficients.length - 1;
124
- }
125
- getCoefficient(index) {
126
- if (index >= this.coefficients.length) {
127
- return GF256.zero();
128
- }
129
- return this.coefficients[index];
130
- }
131
- add(other) {
132
- const degree = Math.max(this.degree(), other.degree());
133
- return new Polynomial(Array.from({ length: degree + 1 }, (_, i) => this.getCoefficient(i).add(other.getCoefficient(i))));
134
- }
135
- mul(other) {
136
- const degree = this.degree() + other.degree();
137
- return new Polynomial(Array.from({ length: degree + 1 }, (_, i) => {
138
- let sum = GF256.zero();
139
- for (let j = 0; j <= i; j++) {
140
- if (j <= this.degree() && i - j <= other.degree()) {
141
- sum = sum.add(this.getCoefficient(j).mul(other.getCoefficient(i - j)));
142
- }
143
- }
144
- return sum;
145
- }));
146
- }
147
- /** The polynomial s * this. */
148
- scale(s) {
149
- return new Polynomial(this.coefficients.map((c) => c.mul(s)));
150
- }
151
- div(s) {
152
- return this.scale(new GF256(1).div(s));
153
- }
154
- /** The polynomial x + c. */
155
- static monic_linear(c) {
156
- return new Polynomial([c, GF256.one()]);
157
- }
158
- static zero() {
159
- return new Polynomial([]);
160
- }
161
- static one() {
162
- return new Polynomial([GF256.one()]);
163
- }
164
- /** Given a set of coordinates, interpolate a polynomial. */
165
- static interpolate(coordinates) {
166
- if (coordinates.length < 1) {
167
- throw new Error('At least one coefficient is required');
168
- }
169
- if (hasDuplicates(coordinates.map(({ x }) => x.value))) {
170
- throw new Error('Coefficients must have unique x values');
171
- }
172
- return coordinates.reduce((sum, { x: x_j, y: y_j }, j) => sum.add(coordinates
173
- .filter((_, i) => i !== j)
174
- .reduce((product, { x: x_i }) => product.mul(Polynomial.monic_linear(x_i.neg()).div(x_j.sub(x_i))), Polynomial.one())
175
- .scale(y_j)), Polynomial.zero());
176
- }
177
- /** Given a set of coordinates, interpolate a polynomial and evaluate it at x = 0. */
178
- static combine(coordinates) {
179
- if (coordinates.length < 1) {
180
- throw new Error('At least one coefficient is required');
181
- }
182
- // Check for duplicate x values more thoroughly
183
- const xValues = coordinates.map(({ x }) => x.value);
184
- if (hasDuplicates(xValues)) {
185
- throw new Error(`Coefficients must have unique x values. Found duplicates: ${xValues.join(', ')}`);
186
- }
187
- const quotient = coordinates.reduce((sum, { x: x_j, y: y_j }, j) => {
188
- const denominator = x_j.mul(coordinates
189
- .filter((_, i) => i !== j)
190
- .reduce((product, { x: x_i }) => {
191
- const diff = x_i.sub(x_j);
192
- if (diff.value === 0) {
193
- throw new Error(`Duplicate x values detected: x_i=${x_i.value}, x_j=${x_j.value}`);
194
- }
195
- return product.mul(diff);
196
- }, GF256.one()));
197
- return sum.add(y_j.div(denominator));
198
- }, GF256.zero());
199
- const xProduct = coordinates.reduce((product, { x }) => product.mul(x), GF256.one());
200
- return xProduct.mul(quotient);
201
- }
202
- /** Evaluate the polynomial at x. */
203
- evaluate(x) {
204
- return this.coefficients
205
- .slice().reverse()
206
- .reduce((sum, coefficient) => sum.mul(x).add(coefficient), GF256.zero());
207
- }
208
- equals(other) {
209
- if (this.coefficients.length !== other.coefficients.length) {
210
- return false;
211
- }
212
- return this.coefficients.every((c, i) => c.equals(other.getCoefficient(i)));
213
- }
214
- }
215
- exports.Polynomial = Polynomial;
216
- const GF256_SIZE = 256;
217
- /** Representation of a share of a secret. The index is a number between 1 and 255. */
218
- class Share {
219
- index;
220
- payload;
221
- constructor(index, payload) {
222
- this.index = index;
223
- this.payload = payload;
224
- }
225
- deserialize(deserializer) {
226
- this.index = deserializer.deserializeU8();
227
- this.payload = deserializer.deserializeBytes();
228
- }
229
- static fromBytes(bytes) {
230
- const deserializer = new ts_sdk_1.Deserializer(bytes);
231
- const share = new Share(0, new Uint8Array());
232
- share.deserialize(deserializer);
233
- return share;
234
- }
235
- serialize(serializer) {
236
- serializer.serializeU8(this.index);
237
- serializer.serializeBytes(this.payload);
238
- }
239
- toBytes() {
240
- const serializer = new ts_sdk_1.Serializer();
241
- this.serialize(serializer);
242
- return serializer.toUint8Array();
243
- }
244
- }
245
- exports.Share = Share;
246
- ;
247
- function toInternalShare(share) {
248
- return {
249
- index: new GF256(share.index),
250
- payload: Array.from(share.payload, (byte) => new GF256(byte)),
251
- };
252
- }
253
- function toShare(internalShare) {
254
- return new Share(internalShare.index.value, new Uint8Array(internalShare.payload.map((byte) => byte.value)));
255
- }
256
- function samplePolynomial(constant, degree) {
257
- const randomCoefficients = new Uint8Array(degree);
258
- crypto.getRandomValues(randomCoefficients);
259
- // The resulting polynomial has degree + 1 coefficients.
260
- return Polynomial.fromBytes(new Uint8Array([constant.value, ...randomCoefficients]));
261
- }
262
- function split(secret, threshold, total) {
263
- if (threshold > total || threshold < 1 || total > GF256_SIZE) {
264
- throw new Error(`Invalid threshold ${threshold} or total ${total}`);
265
- }
266
- const polynomials = Array.from(secret, (s) => samplePolynomial(new GF256(s), threshold - 1));
267
- return Array.from({ length: total }, (_, i) => {
268
- // Indexes start at 1 because 0 is reserved for the constant term (which is also the secret).
269
- const index = new GF256(i + 1);
270
- const payload = polynomials.map((p) => p.evaluate(index));
271
- return toShare({ index, payload });
272
- });
273
- }
274
- function validateShares(shares) {
275
- if (shares.length < 1) {
276
- throw new Error('At least one share is required');
277
- }
278
- if (!allEqual(shares.map(({ payload }) => payload.length))) {
279
- throw new Error('All shares must have the same length');
280
- }
281
- if (hasDuplicates(shares.map(({ index }) => index))) {
282
- throw new Error('Shares must have unique indices');
283
- }
284
- const internalShares = shares.map(toInternalShare);
285
- const length = internalShares[0].payload.length;
286
- return { internalShares, length };
287
- }
288
- function combine(shares) {
289
- const { internalShares, length } = validateShares(shares);
290
- return new Uint8Array(Array.from({ length }, (_, i) => Polynomial.combine(internalShares.map(({ index, payload }) => ({
291
- x: index,
292
- y: payload[i],
293
- }))).value));
294
- }
295
- //# sourceMappingURL=shamir_gf256.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shamir_gf256.js","sourceRoot":"","sources":["../src/shamir_gf256.ts"],"names":[],"mappings":"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AAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACxF,CAAC;AAEF,+DAA+D;AAC/D,MAAM,GAAG,GAAa;IACrB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE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"}