@waku/rln 0.1.1 → 0.1.2-6454446

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 (106) hide show
  1. package/README.md +26 -2
  2. package/bundle/assets/rln_wasm_bg-a503e304.wasm +0 -0
  3. package/bundle/index.js +58406 -10987
  4. package/dist/codec.d.ts +7 -4
  5. package/dist/codec.js +15 -5
  6. package/dist/codec.js.map +1 -1
  7. package/dist/{constants.d.ts → contract/constants.d.ts} +2 -2
  8. package/dist/contract/constants.js +67 -0
  9. package/dist/contract/constants.js.map +1 -0
  10. package/dist/contract/index.d.ts +2 -0
  11. package/dist/contract/index.js +3 -0
  12. package/dist/contract/index.js.map +1 -0
  13. package/dist/contract/rln_contract.d.ts +46 -0
  14. package/dist/contract/rln_contract.js +213 -0
  15. package/dist/contract/rln_contract.js.map +1 -0
  16. package/dist/create.d.ts +2 -0
  17. package/dist/create.js +8 -0
  18. package/dist/create.js.map +1 -0
  19. package/dist/identity.d.ts +9 -0
  20. package/dist/identity.js +24 -0
  21. package/dist/identity.js.map +1 -0
  22. package/dist/index.d.ts +9 -5
  23. package/dist/index.js +9 -12
  24. package/dist/index.js.map +1 -1
  25. package/dist/keystore/cipher.d.ts +4 -0
  26. package/dist/keystore/cipher.js +28 -0
  27. package/dist/keystore/cipher.js.map +1 -0
  28. package/dist/keystore/credential_validation_generated.d.ts +8 -0
  29. package/dist/keystore/credential_validation_generated.js +121 -0
  30. package/dist/keystore/credential_validation_generated.js.map +1 -0
  31. package/dist/keystore/index.d.ts +4 -0
  32. package/dist/keystore/index.js +3 -0
  33. package/dist/keystore/index.js.map +1 -0
  34. package/dist/keystore/keystore.d.ts +50 -0
  35. package/dist/keystore/keystore.js +205 -0
  36. package/dist/keystore/keystore.js.map +1 -0
  37. package/dist/keystore/keystore_validation_generated.d.ts +8 -0
  38. package/dist/keystore/keystore_validation_generated.js +75 -0
  39. package/dist/keystore/keystore_validation_generated.js.map +1 -0
  40. package/dist/keystore/schema_validator.d.ts +2 -0
  41. package/dist/keystore/schema_validator.js +18 -0
  42. package/dist/keystore/schema_validator.js.map +1 -0
  43. package/dist/keystore/types.d.ts +29 -0
  44. package/dist/keystore/types.js +2 -0
  45. package/dist/keystore/types.js.map +1 -0
  46. package/dist/message.d.ts +2 -1
  47. package/dist/message.js +10 -4
  48. package/dist/message.js.map +1 -1
  49. package/dist/proof.d.ts +21 -0
  50. package/dist/proof.js +49 -0
  51. package/dist/proof.js.map +1 -0
  52. package/dist/resources/verification_key.d.ts +9 -9
  53. package/dist/resources/witness_calculator.js.map +1 -0
  54. package/dist/rln.d.ts +55 -46
  55. package/dist/rln.js +136 -183
  56. package/dist/rln.js.map +1 -1
  57. package/dist/root_tracker.js +5 -2
  58. package/dist/root_tracker.js.map +1 -1
  59. package/dist/utils/bytes.d.ts +20 -0
  60. package/dist/utils/bytes.js +64 -0
  61. package/dist/utils/bytes.js.map +1 -0
  62. package/dist/utils/epoch.js.map +1 -0
  63. package/dist/utils/hash.d.ts +2 -0
  64. package/dist/utils/hash.js +13 -0
  65. package/dist/utils/hash.js.map +1 -0
  66. package/dist/utils/index.d.ts +4 -0
  67. package/dist/utils/index.js +5 -0
  68. package/dist/utils/index.js.map +1 -0
  69. package/dist/utils/metamask.d.ts +2 -0
  70. package/dist/utils/metamask.js +12 -0
  71. package/dist/utils/metamask.js.map +1 -0
  72. package/dist/zerokit.d.ts +19 -0
  73. package/dist/zerokit.js +105 -0
  74. package/dist/zerokit.js.map +1 -0
  75. package/package.json +38 -28
  76. package/src/codec.ts +18 -9
  77. package/src/create.ts +9 -0
  78. package/src/identity.ts +27 -0
  79. package/src/index.ts +16 -18
  80. package/src/message.ts +9 -5
  81. package/src/proof.ts +67 -0
  82. package/src/rln.ts +220 -270
  83. package/src/root_tracker.ts +4 -1
  84. package/src/zerokit.ts +181 -0
  85. package/bundle/assets/rln_wasm_bg-6f96f821.wasm +0 -0
  86. package/dist/.tsbuildinfo +0 -1
  87. package/dist/byte_utils.d.ts +0 -1
  88. package/dist/byte_utils.js +0 -24
  89. package/dist/byte_utils.js.map +0 -1
  90. package/dist/constants.js +0 -14
  91. package/dist/constants.js.map +0 -1
  92. package/dist/epoch.js.map +0 -1
  93. package/dist/rln_contract.d.ts +0 -34
  94. package/dist/rln_contract.js +0 -159
  95. package/dist/rln_contract.js.map +0 -1
  96. package/dist/witness_calculator.js.map +0 -1
  97. package/src/byte_utils.ts +0 -39
  98. package/src/constants.ts +0 -14
  99. package/src/epoch.ts +0 -30
  100. package/src/rln_contract.ts +0 -268
  101. package/src/witness_calculator.d.ts +0 -8
  102. package/src/witness_calculator.js +0 -335
  103. /package/dist/{witness_calculator.d.ts → resources/witness_calculator.d.ts} +0 -0
  104. /package/dist/{witness_calculator.js → resources/witness_calculator.js} +0 -0
  105. /package/dist/{epoch.d.ts → utils/epoch.d.ts} +0 -0
  106. /package/dist/{epoch.js → utils/epoch.js} +0 -0
package/src/zerokit.ts ADDED
@@ -0,0 +1,181 @@
1
+ import type { IRateLimitProof } from "@waku/interfaces";
2
+ import * as zerokitRLN from "@waku/zerokit-rln-wasm";
3
+
4
+ import { IdentityCredential } from "./identity.js";
5
+ import { Proof, proofToBytes } from "./proof.js";
6
+ import { WitnessCalculator } from "./resources/witness_calculator.js";
7
+ import {
8
+ concatenate,
9
+ dateToEpoch,
10
+ epochIntToBytes,
11
+ writeUIntLE
12
+ } from "./utils/index.js";
13
+
14
+ export class Zerokit {
15
+ constructor(
16
+ private zkRLN: number,
17
+ private witnessCalculator: WitnessCalculator
18
+ ) {}
19
+
20
+ generateIdentityCredentials(): IdentityCredential {
21
+ const memKeys = zerokitRLN.generateExtendedMembershipKey(this.zkRLN); // TODO: rename this function in zerokit rln-wasm
22
+ return IdentityCredential.fromBytes(memKeys);
23
+ }
24
+
25
+ generateSeededIdentityCredential(seed: string): IdentityCredential {
26
+ const stringEncoder = new TextEncoder();
27
+ const seedBytes = stringEncoder.encode(seed);
28
+ // TODO: rename this function in zerokit rln-wasm
29
+ const memKeys = zerokitRLN.generateSeededExtendedMembershipKey(
30
+ this.zkRLN,
31
+ seedBytes
32
+ );
33
+ return IdentityCredential.fromBytes(memKeys);
34
+ }
35
+
36
+ insertMember(idCommitment: Uint8Array): void {
37
+ zerokitRLN.insertMember(this.zkRLN, idCommitment);
38
+ }
39
+
40
+ insertMembers(index: number, ...idCommitments: Array<Uint8Array>): void {
41
+ // serializes a seq of IDCommitments to a byte seq
42
+ // the order of serialization is |id_commitment_len<8>|id_commitment<var>|
43
+ const idCommitmentLen = writeUIntLE(
44
+ new Uint8Array(8),
45
+ idCommitments.length,
46
+ 0,
47
+ 8
48
+ );
49
+ const idCommitmentBytes = concatenate(idCommitmentLen, ...idCommitments);
50
+ zerokitRLN.setLeavesFrom(this.zkRLN, index, idCommitmentBytes);
51
+ }
52
+
53
+ deleteMember(index: number): void {
54
+ zerokitRLN.deleteLeaf(this.zkRLN, index);
55
+ }
56
+
57
+ getMerkleRoot(): Uint8Array {
58
+ return zerokitRLN.getRoot(this.zkRLN);
59
+ }
60
+
61
+ serializeMessage(
62
+ uint8Msg: Uint8Array,
63
+ memIndex: number,
64
+ epoch: Uint8Array,
65
+ idKey: Uint8Array
66
+ ): Uint8Array {
67
+ // calculate message length
68
+ const msgLen = writeUIntLE(new Uint8Array(8), uint8Msg.length, 0, 8);
69
+
70
+ // Converting index to LE bytes
71
+ const memIndexBytes = writeUIntLE(new Uint8Array(8), memIndex, 0, 8);
72
+
73
+ // [ id_key<32> | id_index<8> | epoch<32> | signal_len<8> | signal<var> ]
74
+ return concatenate(idKey, memIndexBytes, epoch, msgLen, uint8Msg);
75
+ }
76
+
77
+ async generateRLNProof(
78
+ msg: Uint8Array,
79
+ index: number,
80
+ epoch: Uint8Array | Date | undefined,
81
+ idSecretHash: Uint8Array
82
+ ): Promise<IRateLimitProof> {
83
+ if (epoch == undefined) {
84
+ epoch = epochIntToBytes(dateToEpoch(new Date()));
85
+ } else if (epoch instanceof Date) {
86
+ epoch = epochIntToBytes(dateToEpoch(epoch));
87
+ }
88
+
89
+ if (epoch.length != 32) throw "invalid epoch";
90
+ if (idSecretHash.length != 32) throw "invalid id secret hash";
91
+ if (index < 0) throw "index must be >= 0";
92
+
93
+ const serialized_msg = this.serializeMessage(
94
+ msg,
95
+ index,
96
+ epoch,
97
+ idSecretHash
98
+ );
99
+ const rlnWitness = zerokitRLN.getSerializedRLNWitness(
100
+ this.zkRLN,
101
+ serialized_msg
102
+ );
103
+ const inputs = zerokitRLN.RLNWitnessToJson(this.zkRLN, rlnWitness);
104
+ const calculatedWitness = await this.witnessCalculator.calculateWitness(
105
+ inputs,
106
+ false
107
+ ); // no sanity check being used in zerokit
108
+
109
+ const proofBytes = zerokitRLN.generate_rln_proof_with_witness(
110
+ this.zkRLN,
111
+ calculatedWitness,
112
+ rlnWitness
113
+ );
114
+
115
+ return new Proof(proofBytes);
116
+ }
117
+
118
+ verifyRLNProof(
119
+ proof: IRateLimitProof | Uint8Array,
120
+ msg: Uint8Array
121
+ ): boolean {
122
+ let pBytes: Uint8Array;
123
+ if (proof instanceof Uint8Array) {
124
+ pBytes = proof;
125
+ } else {
126
+ pBytes = proofToBytes(proof);
127
+ }
128
+
129
+ // calculate message length
130
+ const msgLen = writeUIntLE(new Uint8Array(8), msg.length, 0, 8);
131
+
132
+ return zerokitRLN.verifyRLNProof(
133
+ this.zkRLN,
134
+ concatenate(pBytes, msgLen, msg)
135
+ );
136
+ }
137
+
138
+ verifyWithRoots(
139
+ proof: IRateLimitProof | Uint8Array,
140
+ msg: Uint8Array,
141
+ ...roots: Array<Uint8Array>
142
+ ): boolean {
143
+ let pBytes: Uint8Array;
144
+ if (proof instanceof Uint8Array) {
145
+ pBytes = proof;
146
+ } else {
147
+ pBytes = proofToBytes(proof);
148
+ }
149
+ // calculate message length
150
+ const msgLen = writeUIntLE(new Uint8Array(8), msg.length, 0, 8);
151
+
152
+ const rootsBytes = concatenate(...roots);
153
+
154
+ return zerokitRLN.verifyWithRoots(
155
+ this.zkRLN,
156
+ concatenate(pBytes, msgLen, msg),
157
+ rootsBytes
158
+ );
159
+ }
160
+
161
+ verifyWithNoRoot(
162
+ proof: IRateLimitProof | Uint8Array,
163
+ msg: Uint8Array
164
+ ): boolean {
165
+ let pBytes: Uint8Array;
166
+ if (proof instanceof Uint8Array) {
167
+ pBytes = proof;
168
+ } else {
169
+ pBytes = proofToBytes(proof);
170
+ }
171
+
172
+ // calculate message length
173
+ const msgLen = writeUIntLE(new Uint8Array(8), msg.length, 0, 8);
174
+
175
+ return zerokitRLN.verifyWithRoots(
176
+ this.zkRLN,
177
+ concatenate(pBytes, msgLen, msg),
178
+ new Uint8Array()
179
+ );
180
+ }
181
+ }
package/dist/.tsbuildinfo DELETED
@@ -1 +0,0 @@
1
- {"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../src/byte_utils.ts","../node_modules/multiformats/dist/types/src/hashes/interface.d.ts","../node_modules/multiformats/dist/types/src/bases/interface.d.ts","../node_modules/multiformats/dist/types/src/block/interface.d.ts","../node_modules/multiformats/dist/types/src/link/interface.d.ts","../node_modules/multiformats/dist/types/src/cid.d.ts","../node_modules/@libp2p/interface-peer-id/dist/src/index.d.ts","../node_modules/@multiformats/multiaddr/dist/src/protocols-table.d.ts","../node_modules/@multiformats/multiaddr/dist/src/filter/multiaddr-filter.d.ts","../node_modules/@multiformats/multiaddr/dist/src/index.d.ts","../node_modules/@libp2p/interface-peer-info/dist/src/index.d.ts","../node_modules/@waku/interfaces/dist/enr.d.ts","../node_modules/@libp2p/interfaces/dist/src/events.d.ts","../node_modules/uint8arraylist/dist/src/index.d.ts","../node_modules/@libp2p/interface-record/dist/src/index.d.ts","../node_modules/@libp2p/interface-peer-store/dist/src/index.d.ts","../node_modules/@libp2p/interfaces/dist/src/index.d.ts","../node_modules/it-stream-types/dist/src/index.d.ts","../node_modules/@libp2p/interface-connection/dist/src/status.d.ts","../node_modules/@libp2p/interface-connection/dist/src/index.d.ts","../node_modules/@libp2p/interface-stream-muxer/dist/src/index.d.ts","../node_modules/@libp2p/interface-transport/dist/src/index.d.ts","../node_modules/libp2p/node_modules/@multiformats/multiaddr/dist/src/protocols-table.d.ts","../node_modules/libp2p/node_modules/@multiformats/multiaddr/dist/src/index.d.ts","../node_modules/libp2p/node_modules/@libp2p/interface-connection/node_modules/@multiformats/multiaddr/dist/src/index.d.ts","../node_modules/libp2p/node_modules/@libp2p/interface-connection/dist/src/status.d.ts","../node_modules/libp2p/node_modules/@libp2p/interface-connection/dist/src/index.d.ts","../node_modules/@libp2p/interfaces/dist/src/startable.d.ts","../node_modules/@libp2p/interface-metrics/dist/src/index.d.ts","../node_modules/@libp2p/interface-address-manager/dist/src/index.d.ts","../node_modules/libp2p/dist/src/transport-manager.d.ts","../node_modules/libp2p/node_modules/protons-runtime/dist/src/codec.d.ts","../node_modules/libp2p/node_modules/protons-runtime/dist/src/decode.d.ts","../node_modules/libp2p/node_modules/protons-runtime/dist/src/encode.d.ts","../node_modules/libp2p/node_modules/protons-runtime/dist/src/codecs/enum.d.ts","../node_modules/libp2p/node_modules/protons-runtime/dist/src/codecs/message.d.ts","../node_modules/libp2p/node_modules/protons-runtime/dist/src/utils.d.ts","../node_modules/libp2p/node_modules/protons-runtime/dist/src/index.d.ts","../node_modules/libp2p/dist/src/identify/pb/message.d.ts","../node_modules/@libp2p/interface-registrar/dist/src/index.d.ts","../node_modules/@libp2p/interface-connection-manager/dist/src/index.d.ts","../node_modules/libp2p/dist/src/identify/index.d.ts","../node_modules/@libp2p/interface-peer-discovery/dist/src/index.d.ts","../node_modules/@libp2p/interface-dht/dist/src/index.d.ts","../node_modules/libp2p/node_modules/interface-store/dist/src/index.d.ts","../node_modules/multiformats/dist/types/src/codecs/interface.d.ts","../node_modules/multiformats/dist/types/src/interface.d.ts","../node_modules/multiformats/dist/types/src/hashes/digest.d.ts","../node_modules/multiformats/dist/types/src/hashes/hasher.d.ts","../node_modules/multiformats/dist/types/src/varint.d.ts","../node_modules/multiformats/dist/types/src/bytes.d.ts","../node_modules/multiformats/dist/types/src/index.d.ts","../node_modules/multiformats/dist/types/src/codecs/raw.d.ts","../node_modules/multiformats/dist/types/src/codecs/json.d.ts","../node_modules/multiformats/dist/types/src/bases/base.d.ts","../node_modules/multiformats/dist/types/src/basics.d.ts","../node_modules/uint8arrays/dist/src/util/bases.d.ts","../node_modules/uint8arrays/dist/src/to-string.d.ts","../node_modules/libp2p/node_modules/interface-datastore/dist/src/key.d.ts","../node_modules/libp2p/node_modules/interface-datastore/dist/src/index.d.ts","../node_modules/@libp2p/interface-content-routing/dist/src/index.d.ts","../node_modules/libp2p/dist/src/circuit/index.d.ts","../node_modules/@libp2p/interface-connection-encrypter/dist/src/index.d.ts","../node_modules/@libp2p/interface-peer-routing/dist/src/index.d.ts","../node_modules/it-pushable/dist/src/index.d.ts","../node_modules/@libp2p/interface-pubsub/dist/src/index.d.ts","../node_modules/libp2p/dist/src/ping/index.d.ts","../node_modules/libp2p/dist/src/fetch/index.d.ts","../node_modules/libp2p/dist/src/components.d.ts","../node_modules/@libp2p/interface-keychain/dist/src/index.d.ts","../node_modules/@libp2p/interface-libp2p/dist/src/index.d.ts","../node_modules/libp2p/dist/src/keychain/cms.d.ts","../node_modules/protons-runtime/dist/src/codec.d.ts","../node_modules/protons-runtime/dist/src/decode.d.ts","../node_modules/protons-runtime/dist/src/encode.d.ts","../node_modules/protons-runtime/dist/src/codecs/enum.d.ts","../node_modules/protons-runtime/dist/src/codecs/message.d.ts","../node_modules/protons-runtime/dist/src/utils.d.ts","../node_modules/protons-runtime/dist/src/index.d.ts","../node_modules/@libp2p/crypto/dist/src/keys/keys.d.ts","../node_modules/@libp2p/crypto/dist/src/keys/interface.d.ts","../node_modules/@libp2p/crypto/dist/src/keys/key-stretcher.d.ts","../node_modules/@libp2p/crypto/dist/src/keys/ecdh.d.ts","../node_modules/@libp2p/crypto/dist/src/keys/ephemeral-keys.d.ts","../node_modules/@libp2p/crypto/dist/src/keys/rsa-class.d.ts","../node_modules/@libp2p/crypto/dist/src/keys/ed25519-class.d.ts","../node_modules/@libp2p/crypto/dist/src/keys/secp256k1-class.d.ts","../node_modules/@libp2p/interface-keys/dist/src/index.d.ts","../node_modules/@libp2p/crypto/dist/src/keys/index.d.ts","../node_modules/libp2p/dist/src/keychain/index.d.ts","../node_modules/@achingbrain/nat-port-mapper/dist/src/index.d.ts","../node_modules/libp2p/dist/src/nat-manager.d.ts","../node_modules/libp2p/dist/src/address-manager/index.d.ts","../node_modules/libp2p/dist/src/peer-routing.d.ts","../node_modules/libp2p/dist/src/connection-manager/latency-monitor.d.ts","../node_modules/libp2p/dist/src/connection-manager/index.d.ts","../node_modules/libp2p/dist/src/index.d.ts","../node_modules/@waku/interfaces/dist/message.d.ts","../node_modules/@waku/interfaces/dist/protocols.d.ts","../node_modules/@waku/interfaces/dist/misc.d.ts","../node_modules/@waku/interfaces/dist/receiver.d.ts","../node_modules/@waku/interfaces/dist/filter.d.ts","../node_modules/@waku/interfaces/dist/sender.d.ts","../node_modules/@waku/interfaces/dist/light_push.d.ts","../node_modules/@waku/interfaces/dist/peer_exchange.d.ts","../node_modules/@libp2p/logger/dist/src/index.d.ts","../node_modules/protobufjs/index.d.ts","../node_modules/@chainsafe/libp2p-gossipsub/dist/src/message/rpc.d.ts","../node_modules/@chainsafe/libp2p-gossipsub/dist/src/types.d.ts","../node_modules/@chainsafe/libp2p-gossipsub/dist/src/message-cache.d.ts","../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-params.d.ts","../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-thresholds.d.ts","../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-stats.d.ts","../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/compute-score.d.ts","../node_modules/denque/index.d.ts","../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/message-deliveries.d.ts","../node_modules/@chainsafe/libp2p-gossipsub/dist/src/metrics.d.ts","../node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/set.d.ts","../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score.d.ts","../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/index.d.ts","../node_modules/@chainsafe/libp2p-gossipsub/dist/src/tracer.d.ts","../node_modules/@chainsafe/libp2p-gossipsub/dist/src/config.d.ts","../node_modules/@chainsafe/libp2p-gossipsub/dist/src/stream.d.ts","../node_modules/protobufjs/minimal.d.ts","../node_modules/@chainsafe/libp2p-gossipsub/dist/src/message/decodeRpc.ts","../node_modules/@chainsafe/libp2p-gossipsub/dist/src/index.d.ts","../node_modules/@waku/interfaces/dist/relay.d.ts","../node_modules/@waku/interfaces/dist/store.d.ts","../node_modules/@waku/interfaces/dist/waku.d.ts","../node_modules/@waku/interfaces/dist/connection_manager.d.ts","../node_modules/@waku/interfaces/dist/index.d.ts","../node_modules/@types/ms/index.d.ts","../node_modules/@types/debug/index.d.ts","../node_modules/@waku/utils/dist/bytes/index.d.ts","../src/epoch.ts","../node_modules/@waku/zerokit-rln-wasm/rln_wasm.d.ts","../src/resources/verification_key.js","../src/witness_calculator.d.ts","../src/rln.ts","../src/message.ts","../src/codec.ts","../src/constants.ts","../node_modules/@ethersproject/bytes/lib/index.d.ts","../node_modules/@ethersproject/bignumber/lib/bignumber.d.ts","../node_modules/@ethersproject/bignumber/lib/fixednumber.d.ts","../node_modules/@ethersproject/bignumber/lib/index.d.ts","../node_modules/@ethersproject/abi/lib/fragments.d.ts","../node_modules/@ethersproject/abi/lib/coders/abstract-coder.d.ts","../node_modules/@ethersproject/abi/lib/abi-coder.d.ts","../node_modules/@ethersproject/properties/lib/index.d.ts","../node_modules/@ethersproject/abi/lib/interface.d.ts","../node_modules/@ethersproject/abi/lib/index.d.ts","../node_modules/@ethersproject/networks/lib/types.d.ts","../node_modules/@ethersproject/networks/lib/index.d.ts","../node_modules/@ethersproject/transactions/lib/index.d.ts","../node_modules/@ethersproject/web/lib/index.d.ts","../node_modules/@ethersproject/abstract-provider/lib/index.d.ts","../node_modules/@ethersproject/abstract-signer/lib/index.d.ts","../node_modules/@ethersproject/contracts/lib/index.d.ts","../node_modules/@ethersproject/logger/lib/index.d.ts","../node_modules/@ethersproject/wordlists/lib/wordlist.d.ts","../node_modules/@ethersproject/wordlists/lib/wordlists.d.ts","../node_modules/@ethersproject/wordlists/lib/index.d.ts","../node_modules/@ethersproject/hdnode/lib/index.d.ts","../node_modules/@ethersproject/signing-key/lib/index.d.ts","../node_modules/@ethersproject/json-wallets/lib/crowdsale.d.ts","../node_modules/@ethersproject/json-wallets/lib/inspect.d.ts","../node_modules/@ethersproject/json-wallets/lib/keystore.d.ts","../node_modules/@ethersproject/json-wallets/lib/index.d.ts","../node_modules/@ethersproject/wallet/lib/index.d.ts","../node_modules/@ethersproject/constants/lib/addresses.d.ts","../node_modules/@ethersproject/constants/lib/bignumbers.d.ts","../node_modules/@ethersproject/constants/lib/hashes.d.ts","../node_modules/@ethersproject/constants/lib/strings.d.ts","../node_modules/@ethersproject/constants/lib/index.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/@ethersproject/providers/lib/formatter.d.ts","../node_modules/@ethersproject/providers/lib/base-provider.d.ts","../node_modules/@ethersproject/providers/lib/json-rpc-provider.d.ts","../node_modules/@ethersproject/providers/lib/websocket-provider.d.ts","../node_modules/@ethersproject/providers/lib/url-json-rpc-provider.d.ts","../node_modules/@ethersproject/providers/lib/alchemy-provider.d.ts","../node_modules/@ethersproject/providers/lib/ankr-provider.d.ts","../node_modules/@ethersproject/providers/lib/cloudflare-provider.d.ts","../node_modules/@ethersproject/providers/lib/etherscan-provider.d.ts","../node_modules/@ethersproject/providers/lib/fallback-provider.d.ts","../node_modules/@ethersproject/providers/lib/ipc-provider.d.ts","../node_modules/@ethersproject/providers/lib/infura-provider.d.ts","../node_modules/@ethersproject/providers/lib/json-rpc-batch-provider.d.ts","../node_modules/@ethersproject/providers/lib/nodesmith-provider.d.ts","../node_modules/@ethersproject/providers/lib/pocket-provider.d.ts","../node_modules/@ethersproject/providers/lib/web3-provider.d.ts","../node_modules/@ethersproject/providers/lib/index.d.ts","../node_modules/@ethersproject/address/lib/index.d.ts","../node_modules/@ethersproject/base64/lib/base64.d.ts","../node_modules/@ethersproject/base64/lib/index.d.ts","../node_modules/@ethersproject/basex/lib/index.d.ts","../node_modules/@ethersproject/hash/lib/id.d.ts","../node_modules/@ethersproject/hash/lib/namehash.d.ts","../node_modules/@ethersproject/hash/lib/message.d.ts","../node_modules/@ethersproject/hash/lib/typed-data.d.ts","../node_modules/@ethersproject/hash/lib/index.d.ts","../node_modules/@ethersproject/keccak256/lib/index.d.ts","../node_modules/@ethersproject/sha2/lib/types.d.ts","../node_modules/@ethersproject/sha2/lib/sha2.d.ts","../node_modules/@ethersproject/sha2/lib/index.d.ts","../node_modules/@ethersproject/solidity/lib/index.d.ts","../node_modules/@ethersproject/random/lib/random.d.ts","../node_modules/@ethersproject/random/lib/shuffle.d.ts","../node_modules/@ethersproject/random/lib/index.d.ts","../node_modules/@ethersproject/rlp/lib/index.d.ts","../node_modules/@ethersproject/strings/lib/bytes32.d.ts","../node_modules/@ethersproject/strings/lib/idna.d.ts","../node_modules/@ethersproject/strings/lib/utf8.d.ts","../node_modules/@ethersproject/strings/lib/index.d.ts","../node_modules/@ethersproject/units/lib/index.d.ts","../node_modules/ethers/lib/utils.d.ts","../node_modules/ethers/lib/_version.d.ts","../node_modules/ethers/lib/ethers.d.ts","../node_modules/ethers/lib/index.d.ts","../src/root_tracker.ts","../src/rln_contract.ts","../src/index.ts","../src/witness_calculator.js","../node_modules/@types/mocha/index.d.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"9b087de7268e4efc5f215347a62656663933d63c0b1d7b624913240367b999ea","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},{"version":"ea0a30e70b372a2ab9e9d1f6fa2b5850be0cadc47cb5fa8fa45a9df4b88831f7","signature":"49dc7187ccbcf7bc5b5f95b7d10765053bb2f4cf4f344ce48ce85b79db7cb596"},"65da6f0b8f50b27e05ebf35c88a8757eb4308751cdf2b1064a0e310a2a485895","2e3dc1d28f2467b2af0c931a3b0d2c595746a2f21818fc3c7b5d050996ace788","237be372eeb9a7ce07c6b2a21358f22772cde924614d67de175a4ac0ba3eb486","862eacc247d6c92524d7879feac6da363f55428cc78270bce7b14f2d3d0b0cef","f55f3ab9485b5fd1a3ba3a5a53e680cb8d3acc3552816a5d58a1fa26324262d0","ee93f3313289b31afd1544da65086607942df227eb61aedf488b7c072aa1128f","5d055d8b54e2dec3fe4aa417f5f664658b78123e83e8735047285f99a1d24065","42b5333564fef3c9becbe8daf55b1ea124514cd86c2f8bed401d2a3f0037b3b1","109970171acb66c4c03fa6ba9d0a3bc2bf43c12540db2b0842d25d54fbe11f65","edb50eace77052203c3bc6eb251fe31f44ab0107e2b6d949ec983a918726aaf4","a5419b108da7e4c0241d74ab53bf2041c62e77815965d24605c2407415f11c5d","4a5612eb59f581a5b8e05d22e668b4199787751266a0291e3e07113fc52abf2a","ea86fe238f679714f2b3662d9d932bc3b47a0500894985718243167043f2bda8","866f0c4f16380a56653adc6cbeac08c58c626dabb431f0fa6cc2ba07874836d8","e8c5b68c1182684e8cfc177430b80fef003976d1dbde326087c28f5125fe4b5d","a807c0a82557d68f6f0464d6af0a6566d1ef708f57c7d1d7dd8dde28879635bc","a2023e18c62b1109f17241fb1f90a84e75fffcb3ee9265d2e9bc0fa40b6ede42","6666d48a46dbfd565490e7f8789093e2392c5bdcc3a380dfdd91c77237e43101","3ccf65e2230413ab1facbad92a2fb77b8e2bcd314618d0ebc12f6cb7aaa21619","4c5e54a2d502770a63859a00fbf77e8b91ce76b18080278f62866e7cdb582798","71dfda7df8d05d2d54627963af1c3c675ef99363d421b7ff42ae237d038db4ce","5d055d8b54e2dec3fe4aa417f5f664658b78123e83e8735047285f99a1d24065","1b03f8d19b753269d85e2e50ec2a2866bf349fb4f6e72aef6559e94c64511dee","109970171acb66c4c03fa6ba9d0a3bc2bf43c12540db2b0842d25d54fbe11f65","6666d48a46dbfd565490e7f8789093e2392c5bdcc3a380dfdd91c77237e43101","6377354dd753557d479933e0bec6ca6836f839c87394ecb071e85f062b708058","16c594cd8a44be9f5398d3fc7dbc9575f0b67d91a6553f35bd3576136862b32b","0fc1e0effc8ea83ceca9a1ff36c2696489fefea040d33fc5cbe244111333fcd4","0dd67171a4a3fa82044faec51befa11ab96f9205fd8cc96be09de275b65d36ab","42570779c28480ae0d1fa0695974a888305ee2b2efd37bacdeb57204dec843db","20e85d1b2ce7381a938a25a725a90f8610e68862c5a661acfeffaacd6513d392","667c9ac7c2f61c4a36220c2fa02f848a170aa96d3a58be32a5831aad86330da2","eb15dfd1f8b6da5f546fe29a6a0f0de4ae6dbd4a5577af4eba4c8a54548ef0a2","01443e5da049881a99f223c72617d4bb1d8854930d03deceb628e4be83df1e4a","76513b0c51c81a929f4f90694edf4dcc85f71bb46121b4192b5530e0601f9d81","a0263cc045540023e72c993a26fd1bef3adf8674b9719272009134c56ecfc336","df162b6f89985144d8aedccc36dfc366ab5e562ba8615125b2bfa25273f3006b","0820608ae5bf3995d77eedf0fa7f987c0d5c7c9592fdc0bcb391fb742d5067a0","14b8a1dd226271e6b045d91262602b15820ff871b3dab24510a15e6989d05a5d","2596013e7e3f002455e29bad0a70e0ae1a1364cac8584d2590b73133e63d6073","274b714a925cc417f249f430b9c5c3ec80986044d8322d41e40fd39a7d154fa8","70cbb43b1e838bb77b16e1085115494c8b6925a954edf7fbdd494ad56a88adb8","ad716342f559ff88871c01a351dbf89fe72c8313f329cd2a714f09f532c50eab","6adc54eb855f3fda2603173a431be81830172099df37ddda11b6730c1c8d9147","8ad13afb5324460426b210f7c5040d3d19375accd24e22bb52a534c728aca73e","e1fe04ff1ffecfb18420f0895d0cd2652f98a27def5c33aae5ef328f186c905b","635e7c978a30ab2013a37c4d05d0d081e58e4ad867db46a009412ad24ee426d7","b27c2a28daf3e502ae6b631cbf51881247fffd3e0163520bc5904604f9e48096","87b44430497cae7542bbd5ac2fb6663df6a465dea7a46be58a49cd9416530439","32b67d761db3999f1e482d0add405b695d3ec5607e07ae4c963a96334c331814","8747571dae434deca4847b49e09b5421d7068b0956a1df841756812645d4e1ed","474ab86e676e0c1b664bfcd21b1e58bed351f3390ba1d892e8da703f371b7a4e","fb7a601066e19b5d0c173b564bd46b358cf00c9040e79fb6fd427b7aa223eed1","4a8ce4a308482d69bd9032ee59f895a9d91e28ac5324665b31ea3a374b45e686","8b097e48fdeabcee00e2aacd4d009dff135c2cd51675a272d74ec25dd853dfee","28235440c6b330eb66df3a7badfc11e32cf7e08fbdb17b518a6b775fb269170f","247a5bebf668df6d3bb7e0b297ed5a6b6913d9343dcfea5bf77ce4662ab102bf","531556008024c69163c0d120823a69e7a6a5be1279ea87fc725a63dc386278b7","df99b5b6041e9e37b46c876cd487020e4bc9e02a519fa4a735cbe18f5c4f2f38","272cd5e6428b68d973ce707329c3f621ac6b3eb4bf5bd4421b1106299600ddde","2202644315d85ab8985d4f72fe136c00e53db91ac06a0646eff7980e55bdacb3","cd5ab2f30a27d53001804b7ef51758a79b73e4ccb7716b8e2ab8e17d69a7183b","9080b537cd4fa24273477f33faf5f983e5f10aa386c2de8fcb6de837c9cc9763","d34a8917095f11006957bed03e1e60dacc0b82906f5d0ddc87b959e283fbb5cc","bffe8a5db9410d2f3320df7016f83e9de47328e377aa78b9aaed1fe6d5db9d66","a9dc4418352bc4a8d1e9314aba1e29327b17d06c604b397c6140d6488c5b022a","6adcf362e079c177ea4730c8b7beb3e9848b3f970ef08b497a641e034b0a0ece","114ef8adba09ab579b6bd6d16b2c83ddea02c1f5ff598f3144f2c3853ef3eb7d","1217c84b164e559b2371aea1b8c11eea9f95e123dab98942c8a5a4aacc2ad252","28092d5b5aea82adc509a3d522d265d9d5a8a0ddf92f94c8fb336c5787893030","995a3938e28f1a7e359847f83b43951c05727b6ca42398982778adc8b9a58609","77411d10dad0e74a86ce28dd0f720cce2947421e42f3fb5d1849bc14520f9b5b","667c9ac7c2f61c4a36220c2fa02f848a170aa96d3a58be32a5831aad86330da2","eb15dfd1f8b6da5f546fe29a6a0f0de4ae6dbd4a5577af4eba4c8a54548ef0a2","01443e5da049881a99f223c72617d4bb1d8854930d03deceb628e4be83df1e4a","a380f922477db0b9b4a17cde7d29585e2280036fd62ac4564814d4844b64717a","a0263cc045540023e72c993a26fd1bef3adf8674b9719272009134c56ecfc336","df162b6f89985144d8aedccc36dfc366ab5e562ba8615125b2bfa25273f3006b","1a57e52e42a8ff2121d47cba8133c73b4e10ede7252881dc131cf514b28f884e","cfb5cd87dcce3ac2d6e4e575ae732791e1d77e047c0018bfc5f9e4d1ba355719","a979d3d312f1d879a5c77493697380b6caae9333e2fe0f51bb0fb0473dc211ba","aaf4673898dca18c059997aae0e8ae725215c8ee0998e9d4a6fd173384276748","b90473059128d1a4c028852a710058a3a8944835188672f5846deba05a1e778e","216601fa3da32170d99a6cbdea143a00dfd5a7bfddcf231126493c0ab992daf4","06245aedbc73b4f39fabd67ab13f451e009489bd66dac614184c8f97034f8016","b3bff8270798e03d00349137271e3f11074ec5281a393289dd8f33f37627828b","3b65ca51bc8915ae230bb40cb6a9662bcdcde83c402f57d7f8b8c803d497d0af","28393110732dca5855c0fd444777dc978d010ecba3204c4c48cfa26ee612bc13","01fd310805f9c29fc38a6580e32f75291d5dd3918e7acdfc7d50548ba0c4bf9b","f569da0d6f4c6fb153811dd6b7d34afb4511c7d85f5089e30a1db78004975ec1","537b1070107a0454a2fe365a633555700fff55a4b3e15d55520633b93dbf96d1","6b616e00e177a11c8054c70c821ca2d0c976403d11ad466385dddc89245e7ade","8dac050016c78a797699221c95d569c47ea4176e403b47f9f5a2e95afe26cdd6","d8a63ecc9188f8ef5fce8c82ea2c691acce9a152b8bd07d75a6531c7d4c07df9","4967ab74e79f8d087627020dd95dd6f803b79a14410acb11b4c8a33db61bdcf3","41326ccdc0707b973e3a285711e4d4ff37b999745d1539e346800a8f1db8e702","c9ca50a4faff709bceadf9a51c7e4743d5dff717459a044e3b24193f3988b658","b70c5f86a62c2c46fa4913b0b5e26842082247f74b97f31b3e87acef5a72a11e","b2f91bd2d0f60e3dca8217d9e405b594c1268f51306bca54b6b6b50d76177a43","a6ba587a908313fff2672c8fa74f1f93c3d74861464488c352304f20d4883e27","c4b62e88d338895f62ea1c2eecff4dae3ea7d6c5aa08436f89960bebade12be9","0c5bc6a0a6664bfcb6d53bec072fe1b83e129ea965143e826b7e3f40b0c8fa96","2e1d641e085f3fad3bfaa36a3aa917703f314cd3e52057538554c8f5a1362872","94fc6dd8f95aaf163e5cde84558bf45867fccacfb2632c6e85265efda6dbc0a4","b6d189963f04bd06137fe46fb8db1dca958aa65a15cc3aa210a3b2f9a2641c2a","1558c642e03689d42843e7b047b9c20e77ee09ab388ff854484db5dcfbed11da","925a8770415572378b7b62dcd714e744b7ffed86de59bdbe1d25c68d9d1f7f51","95a29532177f932fec5fc4e51577eaae6bd037fd21188fb3060a3e5c9fbc806a","53fd58c3edf98bdecd9f4fccab88f8f34b5c7ea3d7411b7c2aeea77419048789","831f1ad45e156fa12bf736f4895329cb6e785f1c940fc58043718409d9845a43","32ffd3e74601a33cbf6a7596e00338eba67cf598faed2903be4281ba7ec076b5","a74df8c2d7267abcce2128511b4260a68eb1a377db38a95ec7e9a58aa98beb02","bc78b25c3aaf139ca527952875c53bff67360e6b5812b82a8fa89fdefb720879","460f30d6ea494bbf076853e1588d30ec4651efcc26cbfcd2c91362f7efc87e89","b96a5c8de20ea0ec0bd266593fdafce71126c8d9f02cb292ed106dccc1bc45b5","ef3379e7046ae854d3eb44f54e4f262375515df90eef4d43ffcd031aa4b845a2","58e4a27ed43582c3d5322a2460f8016562b709454498c39b1bff15aab648125b","4a79e2c6d0d94fcb0f8eff4a518c2b75da5ccf9b9cc67ee80cf2e33e9e0c8aff","ce218e7127b5c109cc128316dcafb71146b483c3476cb6e30c4a84e38a4ea7e7","989a1bfc460b911efd1e8869871d820b7a75993c8fb39ab71a4d548f1bacf4a8","60ca66c2e560e891c4bbac8a6664edeb14a2757c1269bc4a5be91859fe70b14e","4554975154067a41dbf852d4d68c887940ad9ff463a9e8415c37c6cf8dc9b10c","932cade1c5802123b5831f332ad8a6297f0f7d14d0ee04f5a774408f393e2200","1165dc3daad62e737ee6c7016470a4a9a4c751be9f47da494a718a0b428bfe49","0f4aec11b2cbb95ea43fd2552236c03a0f3bbfd0747ea4a8f0a882b1b08998a8","eb6527640f6cd73d8b1350ed74cf374d5d08a951f78bebbf8f1f0786ad914e41","9baaecd1ece45f7966156fcb69f9d366aed3d1e8e604e58042970de681228929","15a6ebf6dc00e8474f7ee0e2c6321b7ad328b4b59d03ee7b103c94a71bbd3a7e","3e836ec68dd734248c913405f458ed2c66565c4fa4647aa1d0cb8fe5f35e2d66","dd4f10fd0eab2df1b95f1da2de90806cdbe5b9c9552596115521d36e2fd9da4f","6a9c5127096b35264eb7cd21b2417bfc1d42cceca9ba4ce2bb0c3410b7816042","78828b06c0d3b586954015e9ebde5480b009e166c71244763bda328ec0920f41","f98f7fd5c208374f072a67a46306ab9b3f914554b4ebb673fb805e13a4119b6c",{"version":"e9318530496429d8c5f5a39ce1f0eaf39ecf0a779a0e2f0f54ab37cd1ec057b6","signature":"b5b1f8f8b94f35a0a1b59e923899562482f6c99b912a0c2fa9424410fdd6f910"},"4a8ba0a75f66d19e6de5e1af20301769e3c2922b9ed766849e4134d32090854b",{"version":"4e5dd895ed64dedb1a4a959ae8236a5f7fb803267a2986498d946b68a5dbde16","signature":"8e87acd8260ebbda136579bdf35e3535475864e40a3fd7ed09f45bd731fa6c3a"},"23c811b86e2e70be10ba78aba44942fb7dea4d7ca01cfbc14524508c5efbdc27",{"version":"f8cafe31eeae65ec832fd191aefa7c746dad2d1e40bb0590c0f6f9c04274e54c","signature":"1005bd68c0e2012ed116b83235ecef9a8c05d56f905f31fa091dff6819df2879"},{"version":"d79184c8e6f3240b1374de2c7e02c75fe546cc1bad2535160835d2466d19b1c0","signature":"99dc3058255fdaa5a49ca9ac68ea8a20ef3eeb1474e518d4b4bafdca8b9b5a08"},{"version":"cc704dd72d42219ff6f6dd38c0585364940763337412b253c9a84bd9440e4226","signature":"7ce814a75931a044a619f099254e6dd5df1f1f96ce1442a24c135e5c68696f58"},{"version":"6b812887bda525fca50cb8b789836117d11393592dade7e0d32dd08d5669e9e1","signature":"0aeaa195975e86ad265ff27f7dc362d15252fb59ddfc8cdb0cf47b8047804651"},"1fcb8b15db812281d69a3090d488903f9e93033004aef9d8889ca3ad0753a96f","bdf5a95eb0a2dd1d39805bdf51b46ba012bb9b92b2ddaae16219595bba7678a5","9f794a0e8550a03baff865a3961cc22afbd85bc4ba9672bdda036971928f85f4","66a697d1e4cdbf25cdce4644a8085a8563041fa8c7731d4d9f5e8f22e66ba72c","a0c8e17f4d1ea2704c62d7349bc3b8d9a12e3761b5960cb44144d3f0333b3fcb","3471c0df3d0391e1dffe6e8bf150294531b2b71a2afa5f2b86e52bf84a5db60a","5d4df4de055eddf3187094f938a640f8d96e4c551a47d6686596fdb6ba4c3014","8bc2cad630da1033c1fd8d7df2bffb18af0da6113bd086a8bbec04a2471a1e00","a1059d1bbc8ad46bfe668b8450e7e8002887c4ab987bdb96d6108d8023f8bb8f","5134885e9648e2c6745f8aa1c3e7f5ab3b3617258b3d81ca02de6655ede3d74e","4f1ae3f24125216cf07c5211a3f00d2bb4782d7cc76c0681603f8249f9232ff0","d3fb92a5640f83f7844d60b35317a0f95c27e3658a749d76d218c461ad091668","d1f8bfcd91b284657ef8187c55ace7db91a3c43e642c3f14e54364154932f7e4","f54c92bfcae54f360fe79514746efce4870e4ddabc064e95d406bba291e9f672","175fd7186fa6a70f9db9b270a04a503cae23cf01cb77e3905bac115c38424cf7","c993f7ed1b8e1023c1f2ee5b262dbc3b70b27475674e40a53a58591f9972dacc","c914014ab7c7001178663f29d31a495398234a41219af61f26d7e8e91b46af96","b135893253d5e507232d1d0b8639dbc00c2bac453fc0420a9af738f1792f8b29","267eb41d7d34151d8b5fdf8b73ddefe0684d7921f4b7db14101f600ea3e8ed02","eb848e4da1fa7568c893e0a0e1f221572c56768dedfe21d2f7741d383c381552","bd6b7d9ff1992fbde49e974f6bf4e8c35922042fc0b6f5326e61fa17a912ffe6","ac443b1f93babbfadff3aef4490044012ff461ba1cf1c7d90ac45f5a26863358","42e4cdd55aa23586b9aff929e2c216150276a37d30c2cf7c0f32ba917722b5e0","4a1ed19ead46b1dd5a319d533fb92162b4ef052ab1c690889cb2eaee293441a1","d0d5b967e5c36354b2f13b4bfb78aae4c1685efa9df3fd946d2e576d370e9302","8076164b388640f7856b25e945a2ded7738e0f8674ac50c256734067b0f0b1b9","36819a1e04a8dbed754a5b3ba2fd5aca2eafb95977eaad6356d77df596c732f4","5fe9c19f085365b73956e27becc5167ad25c5fb024bed4728884966a0faab3f3","d67961ebada9a5e5c393d9c46a4155877a9f7a48b02a0afc6bbe4e87061e46f5","d5e88cd4816669da170c646844042bc83f4523275f85060cf3e2b5b3bf902ee0","137ee20e77a23986e9a1fdf6397b555e6d3073bdcca15927c40671d1ac564aac","a28b00d18def7993bc502f19be6abdb89db2548fe946a51f0771b8ed26a6786c","0fc6ddce4aabc8d84a6aa6644e1012a1474ba844ed6bddc7bea7115583e8a72e","0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"77f0b5c6a193a699c9f7d7fb0578e64e562d271afa740783665d2a827104a873","affectsGlobalScope":true},"e5979905796fe2740d85fbaf4f11f42b7ee1851421afe750823220813421b1af",{"version":"fcdcb42da18dd98dc286b1876dd425791772036012ae61263c011a76b13a190f","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","5b30f550565fd0a7524282c81c27fe8534099e2cd26170ca80852308f07ae68d","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","d97cd8a4a42f557fc62271369ed0461c8e50d47b7f9c8ad0b5462f53306f6060","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"bfea28e6162ed21a0aeed181b623dcf250aa79abf49e24a6b7e012655af36d81","affectsGlobalScope":true},"b8aca9d0c81abb02bec9b7621983ae65bde71da6727580070602bd2500a9ce2a","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","063f53ff674228c190efa19dd9448bcbd540acdbb48a928f4cf3a1b9f9478e43","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"287b21dc1d1b9701c92e15e7dd673dfe6044b15812956377adffb6f08825b1bc","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"4cd4cff679c9b3d9239fd7bf70293ca4594583767526916af8e5d5a47d0219c7","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"af9771b066ec35ffa1c7db391b018d2469d55e51b98ae95e62b6cbef1b0169ca","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","103d70bfbeb3cd3a3f26d1705bf986322d8738c2c143f38ebb743b1e228d7444","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7",{"version":"3a2da34079a2567161c1359316a32e712404b56566c45332ac9dcee015ecce9f","affectsGlobalScope":true},"28a2e7383fd898c386ffdcacedf0ec0845e5d1a86b5a43f25b86bc315f556b79","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"9cafe917bf667f1027b2bb62e2de454ecd2119c80873ad76fc41d941089753b8","277afd6ab6ec72889e2988e0ddd7d138c1f512e68a1fa4e90eedfd71e2097a51","c0908f85f2b645d375127a3b53a17a65f782e17962d5c1eb68f08b1188acbf15","3fadac5d409cc2f27b1d2f4e7568600f02840205f301c9ae7a3068b46476438b","da6aae64ad559286830fd44c81e3d33303348f184af7db4fde8dd99ae9749407","3633f87c97d359cb55fa7bf0668fb2be8a23342951af6ec2d06e6d0cf7409371","cc3a5427d44fc77ff25e80b3edee4650a51f83de761faf5e633994ecf1ab1b44","b350eda75c6e47299b36002b31d5b220c405c21c365e708989829db013fadbb4","f421882756b6714834ae4687ab1aeadf344a1cc45437d2edffbac020ff3801c1","1d61d6ad832dabafbf63b86c5a79d704f2c8763ada9318e135b17a3cb2d09b32","e5cef5de3e5ad3436d414d20743231e284733b9cf4375dc79eff4fcca4282f99","e624419ba84e33e661e89a28083119ca41f6953dba09a4f82b660684087afe6d","942be430bd0feaced2e3e598273b17e50ea565ec9dac840b580b0b99e1a3cd5c","73350006cec5a0c6b71d53b0b0ddbfb82be96752a9c4e3c904c59e633bc9485e","a7df5c2e9594966c7e0d4a763b13ed5727506d892669df5f7bc9826f539c1d35","258cc5cd6891f6bcbaccefd953997038844e7f65d582cac987ffabf7181bcd4c","00a6db28fc4df6ddf10adbe630d9df620ec13af19039c1869653e60dafa739d2","649324d5abb5464aabe35d86cd0eef16562df811f0971481cee664afa5acbc88","f02da9dd36d7a9aa33c9b2e37ef1f54b0d9ad6a713bae372ae4b72890e40c168","3a5652c44d7b3ee47b1d294b1893b30253d8fb6a1ecaafaf5fdef5fdc118f54c","4fba134e9015779329678ff1fd1afc32bbbf391b1f419f7622a3ecde7bbfc355","af75984f58aa9205be02b0a2248d05f6105a8d4bf8be0baca294b5ceaa10e33e","45a910666b455daf042c0a0cfa610c20ea59a0aaf702f93d3b467a05f9a27e20","5580ff53b5f6f1ecdb68ecb61327e63112f97660912c15444c1f8a08f69c19dc","84fb7c52fc116ddcbd1b34535e387053f2a0134d11c5e39b193f4c1328fb1fb5","fd3cd8bf3c90ef4694195a617a5daaac561d8be52ba33c607f170c11f3c50154","6852fc2f309e330e38694bad95bde670c384d1498bf4fbe3a751761b43279934","9f963b28320dd50221cd23f23059bc23cc7799c7025b44942da68974f90c2e6c","c17329bcf495af58e3010f8e61af51709aaa24a6664d8557a7d01a82b5397c59","4eebb617b12f21864e6641d0a9eefaca77a9ccf93f00bb7d50b26d8073866e53","ca0b43e2565d78809383e9a025b0638a5e65bcde4a2b68ff2c6fa5013642db46","1d0a0e5c6471d81467c3fecfa4db4e93ee87d364b776feb83b18d773ad9496d5","ef6eddcbf08e7ae71cd9ba8da47e9a3cfc7db36650af48f1b440a5ed50eeee7a","e14ee3cb4b764895f2ff2fed229df10b59df8a761c79d8e91d868793322b8896","7e36003872035a49bc3a5f21351c37d0e418f60d994ecc470a9463b33b4a7c12","b862345e219e6a4d829f7b7cf6d2d6e91e6fa00c29a7c6c86a3f68c77c25de39","5b919d9204446816876000e03f033458527bde5e3637783b2bc2e7e9ef7ce897","213984ba990f03127a98c3f022d5ca0f0d42df64d4dca199f7319448ce6f3021","020ab2020569964d12e40c68ceae39f40f6c0bee9d502a180f039fcb59c2e34d","aa50dc8a102c76282915e78944293a777866efe6d220a28884ac4a42d7f4c4e2","2b88f02598c9de626b35fbe3ffb1ef33ad9fd175e36e06ba27dc79e444796f6c","b728dc56eb9b0d27b4044e076c155f3cd3a121a4a9939afe829cfc0d680d423b","324b7298f76ce938cd28d2698a0767ca3c740bc843fd9104e171be8eca839555","76aa33edb0042dd572d64e4bda231374390d250d29eeab7e7f27010e8f826006","03b6d387edf18a9ee8126e705edff759f65d9c602e11b649e13a5261fe6951a4",{"version":"bd417d58253e07264fbeacda216296af3274af2a2fcd335829598d3b04166e09","signature":"a2e0aca3a13a3a6e787129bb908cfe040bd64a3d546be3ce734ee0344627a62e"},{"version":"45c921030df38bb9b2830255fd21d6c39ca43967fc2bb01850c6f5af9c745307","signature":"e5ad3c788895a6d5ac5d3a181550c55b7ebb11e205729b86776f2634a97f2c7c"},{"version":"b201b1ffa355044aa1c517c8aae6a69975a71ade02e261df72c178ec72953977","signature":"4d5bc4ec6a775ae28d82adad2eff9b8876479772ba78e98a12ef496ce73ebad9"},{"version":"cb732dfea79ca2a9a5fd4ed240df67d6c47fd5b66fe188c645367efd1762ed24","signature":"39257e47f71a52d198342c47d3a6b35338a3c8618e4335b56530f2cb3b0dc511"},{"version":"3f6d6465811321abc30a1e5f667feed63e5b3917b3d6c8d6645daf96c75f97ba","affectsGlobalScope":true}],"options":{"alwaysStrict":true,"declaration":true,"esModuleInterop":true,"module":6,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitReturns":true,"noImplicitThis":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":true,"target":7,"tsBuildInfoFile":"./.tsbuildinfo"},"fileIdsList":[[260],[48,54,57,81,82,107,147,149,150,151,158,161,162,163,164,166,260],[149,150,260],[149,165,260],[148,260],[107,149,150,153,260],[152,154,260],[152,153,160,260],[156,260],[150,152,154,155,157,158,159,260],[150,260],[55,61,260],[150,158,260],[48,51,107,129,149,260],[184,188,189,260],[184,187,260],[187,260],[188,190,192,260],[184,187,188,189,190,191,260],[184,187,191,195,196,197,260],[184,187,191,198,260],[184,260],[260,286],[184,185,260],[185,186,260],[212,213,214,215,260],[184,187,193,196,198,199,260],[260,289,290,291,292],[199,260],[184,199,204,260],[184,191,199,260],[184,199,207,208,209,260],[184,191,199,205,260],[194,260],[195,197,260,268,271,272],[195,197,260,272],[187,191,195,196,198,260,267,268],[195,260,272],[195,198,260,269],[187,196,198,260],[195,198,260,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283],[195,260,270],[260,267,270],[184,191,195,196,197,198,199,260,269],[195,197,260,268,270],[195,260,269,270],[260,299,300],[260,295,296],[184,260,295],[260,303,304,305],[184,198,199,204,205,206,210,260],[202,203,260],[201,260],[202,260],[122,260],[93,260],[124,260],[121,123,125,126,127,128,129,260],[55,120,260],[51,54,260],[48,59,260],[48,51,54,58,61,260],[48,51,55,58,59,60,260],[47,52,58,260],[47,48,52,58,84,260],[44,48,260],[48,51,52,54,57,58,61,69,70,81,85,102,105,107,111,260],[61,260],[52,54,260],[43,47,260],[48,51,260],[48,52,58,260],[48,51,52,54,56,260],[48,54,55,61,106,260],[48,55,260],[48,61,260],[58,59,61,260],[51,54,58,59,61,62,260],[51,260],[49,50,260],[173,260],[217,260],[220,260],[221,226,260],[222,232,233,240,249,259,260],[222,223,232,240,260],[224,260],[225,226,233,241,260],[226,249,256,260],[227,229,232,240,260],[228,260],[229,230,260],[231,232,260],[232,260],[232,233,234,249,259,260],[232,233,234,249,260],[260,264],[235,240,249,259,260],[232,233,235,236,240,249,256,259,260],[235,237,249,256,259,260],[217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266],[232,238,260],[239,259,260],[229,232,240,249,260],[241,260],[242,260],[220,243,260],[244,258,260,264],[245,260],[246,260],[232,247,260],[247,248,260,262],[232,249,250,251,260],[249,251,260],[249,250,260],[252,260],[253,260],[232,254,255,260],[254,255,260],[226,240,249,256,260],[257,260],[240,258,260],[221,235,246,259,260],[226,260],[249,260,261],[260,262],[260,263],[221,226,232,234,243,249,259,260,262,264],[249,260,265],[48,51,52,260],[140,142,260],[53,139,140,141,142,143,144,145,146,168,169,170,171,260],[140,144,260],[139,260],[48,53,57,82,140,260],[48,57,138,139,260],[139,140,141,260],[142,144,150,167,260],[139,140,260],[48,51,61,112,140,143,145,168,169,260],[184,187,196,199,200,201,204,211,216,260,284,308,309],[260,310],[184,191,193,196,197,201,205,206,210,211,260,285,287,288,293,294,297,298,301,302,306,307],[48,54,63,65,71,260],[48,57,63,69,81,82,102,260],[48,57,63,68,69,70,71,81,82,85,101,102,105,107,260],[48,54,57,58,63,65,68,69,70,82,136,260],[54,260],[48,58,68,69,81,82,260],[48,57,58,65,68,69,71,80,81,82,260],[55,79,260],[48,52,57,58,62,63,68,70,72,83,84,85,101,102,103,104,105,107,108,109,110,112,131,133,134,135,137,260],[131,260],[48,69,101,113,130,260],[48,63,69,71,132,260],[48,52,57,58,69,105,260],[48,58,69,81,82,260],[54,58,63,65,68,69,70,71,260],[48,51,55,58,59,67,260],[64,260],[65,260],[86,100,260],[99,260],[79,260],[73,260],[73,79,260],[55,73,260],[73,74,75,76,77,78,260],[44,260],[93,94,95,96,260],[46,47,260],[46,260],[45,260],[87,260],[43,260],[43,89,260],[47,88,89,90,91,92,260],[43,44,45,46,87,260],[43,44,45,260],[120,260],[114,260],[114,120,260],[55,114,260],[114,115,116,117,118,119,260],[98,260],[93,97,260],[172,174,180,181,260],[174,260],[180,182,183,260,312,313],[172,175,176,180,260],[42,172,176,177,178,179,260],[180,183,260,311,312],[172,180,181],[180,182,183,312,313],[172,180],[172,179],[180,311]],"referencedMap":[[132,1],[163,1],[167,2],[151,3],[166,4],[149,5],[158,6],[155,7],[161,8],[157,9],[152,1],[153,1],[160,10],[154,11],[164,12],[162,13],[150,14],[159,1],[190,15],[189,16],[188,17],[193,18],[192,19],[198,20],[199,21],[285,16],[286,22],[287,23],[288,22],[185,22],[186,24],[187,25],[184,1],[212,1],[213,17],[214,1],[216,26],[215,1],[200,27],[289,1],[293,28],[291,22],[290,1],[292,29],[205,30],[207,31],[210,32],[208,1],[209,33],[294,22],[201,1],[195,34],[194,1],[191,1],[273,35],[274,36],[269,37],[275,38],[276,39],[277,39],[268,40],[284,41],[279,35],[278,42],[280,43],[270,44],[281,38],[282,36],[272,45],[283,42],[271,46],[301,47],[299,1],[300,1],[302,22],[297,48],[296,49],[295,1],[206,22],[298,1],[303,22],[304,1],[306,50],[305,22],[196,16],[307,17],[211,51],[197,1],[204,52],[202,53],[203,54],[124,55],[127,56],[125,57],[130,58],[122,1],[123,55],[121,59],[126,56],[128,56],[71,60],[104,61],[82,62],[61,63],[60,1],[102,64],[85,65],[111,66],[129,1],[112,67],[70,68],[84,69],[48,70],[52,71],[105,72],[57,73],[107,74],[56,75],[81,76],[62,77],[63,78],[54,1],[58,1],[69,1],[147,1],[50,79],[51,80],[49,79],[174,81],[316,1],[173,1],[217,82],[218,82],[220,83],[221,84],[222,85],[223,86],[224,87],[225,88],[226,89],[227,90],[228,91],[229,92],[230,92],[231,93],[232,94],[233,95],[234,96],[219,97],[266,1],[235,98],[236,99],[237,100],[267,101],[238,102],[239,103],[240,104],[241,105],[242,106],[243,107],[244,108],[245,109],[246,110],[247,111],[248,112],[249,113],[251,114],[250,115],[252,116],[253,117],[254,118],[255,119],[256,120],[257,121],[258,122],[259,123],[260,124],[261,125],[262,126],[263,127],[264,128],[265,129],[171,1],[53,130],[143,131],[172,132],[145,133],[139,1],[141,134],[146,135],[140,136],[142,137],[168,138],[144,139],[169,139],[170,140],[175,1],[177,1],[156,1],[309,1],[310,141],[311,142],[308,143],[106,1],[59,1],[134,144],[103,145],[110,146],[137,147],[136,148],[109,149],[83,150],[80,151],[138,152],[113,153],[131,154],[133,155],[135,156],[108,157],[72,158],[68,159],[67,1],[66,80],[65,160],[64,161],[101,162],[100,163],[86,1],[73,164],[76,165],[77,166],[74,167],[75,165],[79,168],[78,164],[96,169],[44,1],[97,170],[45,171],[92,1],[47,172],[87,173],[95,174],[94,174],[89,175],[90,176],[43,1],[93,177],[88,178],[46,179],[91,1],[148,1],[165,5],[114,180],[117,181],[118,182],[115,183],[116,181],[120,184],[119,180],[8,1],[10,1],[9,1],[2,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[3,1],[4,1],[22,1],[19,1],[20,1],[21,1],[23,1],[24,1],[25,1],[5,1],[26,1],[27,1],[28,1],[29,1],[6,1],[30,1],[31,1],[32,1],[33,1],[7,1],[34,1],[39,1],[40,1],[35,1],[36,1],[37,1],[38,1],[1,1],[41,1],[55,1],[99,185],[98,186],[42,1],[182,187],[183,1],[176,188],[314,189],[181,190],[178,1],[180,191],[313,192],[312,1],[179,1],[315,1]],"exportedModulesMap":[[132,1],[163,1],[167,2],[151,3],[166,4],[149,5],[158,6],[155,7],[161,8],[157,9],[152,1],[153,1],[160,10],[154,11],[164,12],[162,13],[150,14],[159,1],[190,15],[189,16],[188,17],[193,18],[192,19],[198,20],[199,21],[285,16],[286,22],[287,23],[288,22],[185,22],[186,24],[187,25],[184,1],[212,1],[213,17],[214,1],[216,26],[215,1],[200,27],[289,1],[293,28],[291,22],[290,1],[292,29],[205,30],[207,31],[210,32],[208,1],[209,33],[294,22],[201,1],[195,34],[194,1],[191,1],[273,35],[274,36],[269,37],[275,38],[276,39],[277,39],[268,40],[284,41],[279,35],[278,42],[280,43],[270,44],[281,38],[282,36],[272,45],[283,42],[271,46],[301,47],[299,1],[300,1],[302,22],[297,48],[296,49],[295,1],[206,22],[298,1],[303,22],[304,1],[306,50],[305,22],[196,16],[307,17],[211,51],[197,1],[204,52],[202,53],[203,54],[124,55],[127,56],[125,57],[130,58],[122,1],[123,55],[121,59],[126,56],[128,56],[71,60],[104,61],[82,62],[61,63],[60,1],[102,64],[85,65],[111,66],[129,1],[112,67],[70,68],[84,69],[48,70],[52,71],[105,72],[57,73],[107,74],[56,75],[81,76],[62,77],[63,78],[54,1],[58,1],[69,1],[147,1],[50,79],[51,80],[49,79],[174,81],[316,1],[173,1],[217,82],[218,82],[220,83],[221,84],[222,85],[223,86],[224,87],[225,88],[226,89],[227,90],[228,91],[229,92],[230,92],[231,93],[232,94],[233,95],[234,96],[219,97],[266,1],[235,98],[236,99],[237,100],[267,101],[238,102],[239,103],[240,104],[241,105],[242,106],[243,107],[244,108],[245,109],[246,110],[247,111],[248,112],[249,113],[251,114],[250,115],[252,116],[253,117],[254,118],[255,119],[256,120],[257,121],[258,122],[259,123],[260,124],[261,125],[262,126],[263,127],[264,128],[265,129],[171,1],[53,130],[143,131],[172,132],[145,133],[139,1],[141,134],[146,135],[140,136],[142,137],[168,138],[144,139],[169,139],[170,140],[175,1],[177,1],[156,1],[309,1],[310,141],[311,142],[308,143],[106,1],[59,1],[134,144],[103,145],[110,146],[137,147],[136,148],[109,149],[83,150],[80,151],[138,152],[113,153],[131,154],[133,155],[135,156],[108,157],[72,158],[68,159],[67,1],[66,80],[65,160],[64,161],[101,162],[100,163],[86,1],[73,164],[76,165],[77,166],[74,167],[75,165],[79,168],[78,164],[96,169],[44,1],[97,170],[45,171],[92,1],[47,172],[87,173],[95,174],[94,174],[89,175],[90,176],[43,1],[93,177],[88,178],[46,179],[91,1],[148,1],[165,5],[114,180],[117,181],[118,182],[115,183],[116,181],[120,184],[119,180],[8,1],[10,1],[9,1],[2,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[3,1],[4,1],[22,1],[19,1],[20,1],[21,1],[23,1],[24,1],[25,1],[5,1],[26,1],[27,1],[28,1],[29,1],[6,1],[30,1],[31,1],[32,1],[33,1],[7,1],[34,1],[39,1],[40,1],[35,1],[36,1],[37,1],[38,1],[1,1],[41,1],[55,1],[99,185],[98,186],[182,193],[314,194],[181,195],[180,196],[313,197],[179,1]],"semanticDiagnosticsPerFile":[132,163,167,151,166,149,158,155,161,157,152,153,160,154,164,162,150,159,190,189,188,193,192,198,199,285,286,287,288,185,186,187,184,212,213,214,216,215,200,289,293,291,290,292,205,207,210,208,209,294,201,195,194,191,273,274,269,275,276,277,268,284,279,278,280,270,281,282,272,283,271,301,299,300,302,297,296,295,206,298,303,304,306,305,196,307,211,197,204,202,203,124,127,125,130,122,123,121,126,128,71,104,82,61,60,102,85,111,129,112,70,84,48,52,105,57,107,56,81,62,63,54,58,69,147,50,51,49,174,316,173,217,218,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,219,266,235,236,237,267,238,239,240,241,242,243,244,245,246,247,248,249,251,250,252,253,254,255,256,257,258,259,260,261,262,263,264,265,171,53,143,172,145,139,141,146,140,142,168,144,169,170,175,177,156,309,310,311,308,106,59,134,103,110,137,136,109,83,80,138,113,131,133,135,108,72,68,67,66,65,64,101,100,86,73,76,77,74,75,79,78,96,44,97,45,92,47,87,95,94,89,90,43,93,88,46,91,148,165,114,117,118,115,116,120,119,8,10,9,2,11,12,13,14,15,16,17,18,3,4,22,19,20,21,23,24,25,5,26,27,28,29,6,30,31,32,33,7,34,39,40,35,36,37,38,1,41,55,99,98,42,182,183,176,314,181,178,180,313,312,179,315]},"version":"4.8.2"}
@@ -1 +0,0 @@
1
- export declare function writeUIntLE(buf: Uint8Array, value: number, offset: number, byteLength: number, noAssert?: boolean): Uint8Array;
@@ -1,24 +0,0 @@
1
- // Adapted from https://github.com/feross/buffer
2
- function checkInt(buf, value, offset, ext, max, min) {
3
- if (value > max || value < min)
4
- throw new RangeError('"value" argument is out of bounds');
5
- if (offset + ext > buf.length)
6
- throw new RangeError("Index out of range");
7
- }
8
- export function writeUIntLE(buf, value, offset, byteLength, noAssert) {
9
- value = +value;
10
- offset = offset >>> 0;
11
- byteLength = byteLength >>> 0;
12
- if (!noAssert) {
13
- const maxBytes = Math.pow(2, 8 * byteLength) - 1;
14
- checkInt(buf, value, offset, byteLength, maxBytes, 0);
15
- }
16
- let mul = 1;
17
- let i = 0;
18
- buf[offset] = value & 0xff;
19
- while (++i < byteLength && (mul *= 0x100)) {
20
- buf[offset + i] = (value / mul) & 0xff;
21
- }
22
- return buf;
23
- }
24
- //# sourceMappingURL=byte_utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"byte_utils.js","sourceRoot":"","sources":["../src/byte_utils.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAEhD,SAAS,QAAQ,CACf,GAAe,EACf,KAAa,EACb,MAAc,EACd,GAAW,EACX,GAAW,EACX,GAAW;IAEX,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG;QAC5B,MAAM,IAAI,UAAU,CAAC,mCAAmC,CAAC,CAAC;IAC5D,IAAI,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM;QAAE,MAAM,IAAI,UAAU,CAAC,oBAAoB,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,GAAe,EACf,KAAa,EACb,MAAc,EACd,UAAkB,EAClB,QAAkB;IAElB,KAAK,GAAG,CAAC,KAAK,CAAC;IACf,MAAM,GAAG,MAAM,KAAK,CAAC,CAAC;IACtB,UAAU,GAAG,UAAU,KAAK,CAAC,CAAC;IAC9B,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QACjD,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;KACvD;IAED,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,CAAC,GAAG,UAAU,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE;QACzC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;KACxC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
package/dist/constants.js DELETED
@@ -1,14 +0,0 @@
1
- export const RLN_ABI = [
2
- "function MEMBERSHIP_DEPOSIT() public view returns(uint256)",
3
- "function register(uint256 pubkey) external payable",
4
- "function withdraw(uint256 secret, uint256 _pubkeyIndex, address payable receiver) external",
5
- "event MemberRegistered(uint256 pubkey, uint256 index)",
6
- "event MemberWithdrawn(uint256 pubkey, uint256 index)",
7
- ];
8
- export const SEPOLIA_CONTRACT = {
9
- chainId: 11155111,
10
- startBlock: 3193048,
11
- address: "0x9C09146844C1326c2dBC41c451766C7138F88155",
12
- abi: RLN_ABI,
13
- };
14
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,4DAA4D;IAC5D,oDAAoD;IACpD,4FAA4F;IAC5F,uDAAuD;IACvD,sDAAsD;CACvD,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE,OAAO;IACnB,OAAO,EAAE,4CAA4C;IACrD,GAAG,EAAE,OAAO;CACb,CAAC"}
package/dist/epoch.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"epoch.js","sourceRoot":"","sources":["../src/epoch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,uBAAuB,GAAG,EAAE,CAAC,CAAC,wCAAwC;AAE5E,MAAM,GAAG,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAEpC,MAAM,UAAU,WAAW,CACzB,SAAe,EACf,mBAA2B,uBAAuB;IAElD,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,gBAAgB,CAAC,CAAC;IACzD,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAiB;IAC/C,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACpC,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,34 +0,0 @@
1
- import { ethers } from "ethers";
2
- import { IdentityCredential, RLNInstance } from "./rln.js";
3
- declare type Member = {
4
- pubkey: string;
5
- index: number;
6
- };
7
- declare type ContractOptions = {
8
- address: string;
9
- provider: ethers.Signer | ethers.providers.Provider;
10
- };
11
- declare type FetchMembersOptions = {
12
- fromBlock?: number;
13
- fetchRange?: number;
14
- fetchChunks?: number;
15
- };
16
- export declare class RLNContract {
17
- private _contract;
18
- private membersFilter;
19
- private merkleRootTracker;
20
- private _members;
21
- static init(rlnInstance: RLNInstance, options: ContractOptions): Promise<RLNContract>;
22
- constructor(rlnInstance: RLNInstance, { address, provider }: ContractOptions);
23
- get contract(): ethers.Contract;
24
- get members(): Member[];
25
- fetchMembers(rlnInstance: RLNInstance, options?: FetchMembersOptions): Promise<void>;
26
- processEvents(rlnInstance: RLNInstance, events: ethers.Event[]): void;
27
- private insertMembers;
28
- private removeMembers;
29
- subscribeToMembers(rlnInstance: RLNInstance): void;
30
- registerWithSignature(rlnInstance: RLNInstance, signature: string): Promise<ethers.Event | undefined>;
31
- registerWithKey(credential: IdentityCredential): Promise<ethers.Event | undefined>;
32
- roots(): Uint8Array[];
33
- }
34
- export {};
@@ -1,159 +0,0 @@
1
- import { ethers } from "ethers";
2
- import { RLN_ABI } from "./constants.js";
3
- import { MerkleRootTracker } from "./root_tracker";
4
- export class RLNContract {
5
- constructor(rlnInstance, { address, provider }) {
6
- this._members = [];
7
- const initialRoot = rlnInstance.getMerkleRoot();
8
- this._contract = new ethers.Contract(address, RLN_ABI, provider);
9
- this.merkleRootTracker = new MerkleRootTracker(5, initialRoot);
10
- this.membersFilter = this.contract.filters.MemberRegistered();
11
- }
12
- static async init(rlnInstance, options) {
13
- const rlnContract = new RLNContract(rlnInstance, options);
14
- await rlnContract.fetchMembers(rlnInstance);
15
- rlnContract.subscribeToMembers(rlnInstance);
16
- return rlnContract;
17
- }
18
- get contract() {
19
- return this._contract;
20
- }
21
- get members() {
22
- return this._members;
23
- }
24
- async fetchMembers(rlnInstance, options = {}) {
25
- const registeredMemberEvents = await queryFilter(this.contract, {
26
- ...options,
27
- membersFilter: this.membersFilter,
28
- });
29
- this.processEvents(rlnInstance, registeredMemberEvents);
30
- }
31
- processEvents(rlnInstance, events) {
32
- const toRemoveTable = new Map();
33
- const toInsertTable = new Map();
34
- events.forEach((evt) => {
35
- if (!evt.args) {
36
- return;
37
- }
38
- if (evt.removed) {
39
- const index = evt.args.index;
40
- const toRemoveVal = toRemoveTable.get(evt.blockNumber);
41
- if (toRemoveVal != undefined) {
42
- toRemoveVal.push(index);
43
- toRemoveTable.set(evt.blockNumber, toRemoveVal);
44
- }
45
- else {
46
- toRemoveTable.set(evt.blockNumber, [index]);
47
- }
48
- }
49
- else {
50
- let eventsPerBlock = toInsertTable.get(evt.blockNumber);
51
- if (eventsPerBlock == undefined) {
52
- eventsPerBlock = [];
53
- }
54
- eventsPerBlock.push(evt);
55
- toInsertTable.set(evt.blockNumber, eventsPerBlock);
56
- }
57
- this.removeMembers(rlnInstance, toRemoveTable);
58
- this.insertMembers(rlnInstance, toInsertTable);
59
- });
60
- }
61
- insertMembers(rlnInstance, toInsert) {
62
- toInsert.forEach((events, blockNumber) => {
63
- events.forEach((evt) => {
64
- if (!evt.args) {
65
- return;
66
- }
67
- const pubkey = evt.args.pubkey;
68
- const index = evt.args.index;
69
- const idCommitment = ethers.utils.zeroPad(ethers.utils.arrayify(pubkey), 32);
70
- rlnInstance.insertMember(idCommitment);
71
- this.members.push({ index, pubkey });
72
- });
73
- const currentRoot = rlnInstance.getMerkleRoot();
74
- this.merkleRootTracker.pushRoot(blockNumber, currentRoot);
75
- });
76
- }
77
- removeMembers(rlnInstance, toRemove) {
78
- const removeDescending = new Map([...toRemove].sort().reverse());
79
- removeDescending.forEach((indexes, blockNumber) => {
80
- indexes.forEach((index) => {
81
- const idx = this.members.findIndex((m) => m.index === index);
82
- if (idx > -1) {
83
- this.members.splice(idx, 1);
84
- }
85
- rlnInstance.deleteMember(index);
86
- });
87
- this.merkleRootTracker.backFill(blockNumber);
88
- });
89
- }
90
- subscribeToMembers(rlnInstance) {
91
- this.contract.on(this.membersFilter, (_pubkey, _index, event) => this.processEvents(rlnInstance, event));
92
- }
93
- async registerWithSignature(rlnInstance, signature) {
94
- const identityCredential = await rlnInstance.generateSeededIdentityCredential(signature);
95
- return this.registerWithKey(identityCredential);
96
- }
97
- async registerWithKey(credential) {
98
- const depositValue = await this.contract.MEMBERSHIP_DEPOSIT();
99
- const txRegisterResponse = await this.contract.register(credential.IDCommitmentBigInt, {
100
- value: depositValue,
101
- });
102
- const txRegisterReceipt = await txRegisterResponse.wait();
103
- return txRegisterReceipt?.events?.[0];
104
- }
105
- roots() {
106
- return this.merkleRootTracker.roots();
107
- }
108
- }
109
- // these value should be tested on other networks
110
- const FETCH_CHUNK = 5;
111
- const BLOCK_RANGE = 3000;
112
- async function queryFilter(contract, options) {
113
- const { fromBlock, membersFilter, fetchRange = BLOCK_RANGE, fetchChunks = FETCH_CHUNK, } = options;
114
- if (!fromBlock) {
115
- return contract.queryFilter(membersFilter);
116
- }
117
- if (!contract.signer.provider) {
118
- throw Error("No provider found on the contract's signer.");
119
- }
120
- const toBlock = await contract.signer.provider.getBlockNumber();
121
- if (toBlock - fromBlock < fetchRange) {
122
- return contract.queryFilter(membersFilter);
123
- }
124
- const events = [];
125
- const chunks = splitToChunks(fromBlock, toBlock, fetchRange);
126
- for (const portion of takeN(chunks, fetchChunks)) {
127
- const promises = portion.map(([left, right]) => ignoreErrors(contract.queryFilter(membersFilter, left, right), []));
128
- const fetchedEvents = await Promise.all(promises);
129
- events.push(fetchedEvents.flatMap((v) => v));
130
- }
131
- return events.flatMap((v) => v);
132
- }
133
- function splitToChunks(from, to, step) {
134
- const chunks = [];
135
- let left = from;
136
- while (left < to) {
137
- const right = left + step < to ? left + step : to;
138
- chunks.push([left, right]);
139
- left = right;
140
- }
141
- return chunks;
142
- }
143
- function* takeN(array, size) {
144
- let start = 0;
145
- let skip = size;
146
- while (skip < array.length) {
147
- const portion = array.slice(start, skip);
148
- yield portion;
149
- start = skip;
150
- skip += size;
151
- }
152
- }
153
- function ignoreErrors(promise, defaultValue) {
154
- return promise.catch((err) => {
155
- console.error(`Ignoring an error during query: ${err?.message}`);
156
- return defaultValue;
157
- });
158
- }
159
- //# sourceMappingURL=rln_contract.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rln_contract.js","sourceRoot":"","sources":["../src/rln_contract.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"witness_calculator.js","sourceRoot":"","sources":["../src/witness_calculator.js"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,mCAAmC;AACnC,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAI,EAAE,OAAO;IAEvC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAExB,IAAI,UAAU,CAAC;IACf,IAAI;QACP,UAAU,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACzC;IAAE,OAAO,GAAG,EAAE;QAClB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;QAC/E,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;KACjB;IAED,IAAI,EAAE,CAAC;IAEP,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,UAAU,EAAE;QACvD,OAAO,EAAE;YACL,gBAAgB,EAAG,UAAS,IAAI;gBAC1C,IAAI,GAAG,CAAC;gBACM,IAAI,IAAI,IAAI,CAAC,EAAE;oBACX,GAAG,GAAG,qBAAqB,CAAC;iBAC/B;qBAAM,IAAI,IAAI,IAAI,CAAC,EAAE;oBAClB,GAAG,GAAG,yBAAyB,CAAC;iBACnC;qBAAM,IAAI,IAAI,IAAI,CAAC,EAAE;oBAClB,GAAG,GAAG,uBAAuB,CAAC;iBAC/C;qBAAM,IAAI,IAAI,IAAI,CAAC,EAAE;oBACJ,GAAG,GAAG,kBAAkB,CAAC;iBAC1C;qBAAM,IAAI,IAAI,IAAI,CAAC,EAAE;oBACJ,GAAG,GAAG,sBAAsB,CAAC;iBAC9C;qBAAM,IAAI,IAAI,IAAI,CAAC,EAAE;oBACJ,GAAG,GAAG,+CAA+C,CAAC;iBACvE;qBAAM;oBACH,GAAG,GAAG,kBAAkB,CAAC;iBACd;gBACD,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;YAClC,CAAC;YACR,iBAAiB,EAAG;gBACvB,MAAM,IAAI,UAAU,EAAE,GAAG,IAAI,CAAC;gBAChB,+BAA+B;YAC1C,CAAC;YACD,kBAAkB,EAAG;gBACvB,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;gBACzB,sFAAsF;gBACtF,IAAI,GAAG,KAAK,IAAI,EAAE;oBACjB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACpB,MAAM,GAAG,EAAE,CAAC;iBACZ;qBAAM;oBACN,oEAAoE;oBACpE,IAAI,MAAM,KAAK,EAAE,EAAE;wBAClB,MAAM,IAAI,GAAG,CAAA;qBACb;oBACD,yDAAyD;oBACzD,MAAM,IAAI,GAAG,CAAC;iBACd;YACC,CAAC;YACD,kBAAkB,EAAG;gBACxB,mBAAmB,EAAG,CAAC;YACb,CAAC;SAEJ;KACJ,CAAC,CAAC;IAEH,MAAM,WAAW,GACb,OAAO,CAAA;IACf,oBAAoB;IACpB,WAAW;IACX,oCAAoC;IACpC,qCAAqC;IACrC,qCAAqC;IACrC,0CAA0C;IAC1C,wCAAwC;IACxC,YAAY;IAGR,EAAE,GAAG,IAAI,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAClD,OAAO,EAAE,CAAC;IAEV,SAAS,UAAU;QACf,IAAI,OAAO,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QACnC,OAAQ,CAAC,IAAI,CAAC,EAAG;YACpB,OAAO,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAClC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;SACzC;QACM,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,SAAS,mBAAmB;QAC/B,MAAM,qBAAqB,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAClE,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,qBAAqB,CAAC,CAAC;QACnD,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,qBAAqB,EAAE,CAAC,EAAE,EAAE;YACxC,GAAG,CAAC,qBAAqB,GAAC,CAAC,GAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;SAC3E;QAED,oEAAoE;QACpE,IAAI,MAAM,KAAK,EAAE,EAAE;YAClB,MAAM,IAAI,GAAG,CAAA;SACb;QACD,uDAAuD;QACvD,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxC,CAAC;AAEF,CAAC;AAAA,CAAC;AAEF,MAAM,iBAAiB;IACnB,YAAY,QAAQ,EAAE,WAAW;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEhC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC3C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAEpD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YAC3B,GAAG,CAAC,IAAI,CAAC,GAAG,GAAC,CAAC,GAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;SACnE;QACD,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAE9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAE1D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAED,cAAc;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW;QAC/C,gEAAgE;QACzD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,aAAa,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,OAAO,CAAE,CAAC,CAAC,EAAE,EAAE;YAChB,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACtE,IAAI,UAAU,GAAG,CAAC,EAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;aACvC;YACD,IAAI,IAAI,CAAC,MAAM,GAAG,UAAU,EAAE;gBACjC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,IAAI,CAAC,CAAC;aACzD;YACD,IAAI,IAAI,CAAC,MAAM,GAAG,UAAU,EAAE;gBACjC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,IAAI,CAAC,CAAC;aACvD;YACM,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9B,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAC,IAAI,CAAC,KAAK,EAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBAC5D,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;oBACzC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,EAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC;iBACpE;gBACD,IAAI;oBACc,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;oBACjE,aAAa,EAAE,CAAC;iBACnB;gBAAC,OAAO,GAAG,EAAE;oBACV,kDAAkD;oBACpC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;iBACtC;aACU;QAEL,CAAC,CAAC,CAAC;QACV,IAAI,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE;YACtD,MAAM,IAAI,KAAK,CAAC,sCAAsC,aAAa,WAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;SACzH;IACE,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW;QAErC,MAAM,CAAC,GAAG,EAAE,CAAC;QAEb,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAEnD,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC/B,GAAG,CAAC,IAAI,CAAC,GAAG,GAAC,CAAC,GAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;aAC/D;YACD,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;SAC5B;QAED,OAAO,CAAC,CAAC;IACb,CAAC;IAGD,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW;QAExC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,GAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,IAAK,UAAU,CAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAEnD,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,GAAG,GAAG,CAAC,GAAC,IAAI,CAAC,GAAG,CAAC;YAChB,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBACzC,MAAM,CAAC,GAAG,GAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;aACjD;SACJ;QAER,OAAO,IAAI,CAAC;IACT,CAAC;IAGD,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW;QAErC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,GAAC,IAAI,CAAC,GAAG,GAAC,IAAI,CAAC,GAAG,GAAC,EAAE,CAAC,CAAC;QAC7E,MAAM,IAAI,GAAG,IAAK,UAAU,CAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAE1D,QAAQ;QACR,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAE3B,WAAW;QACX,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAEd,uBAAuB;QACvB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAEd,cAAc;QACd,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAEd,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,GAAC,CAAC,CAAC;QACtB,gCAAgC;QAChC,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAEjE,UAAU;QACV,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAEf,cAAc;QACd,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAEpC,IAAI,GAAG,GAAG,CAAC,CAAC;QACL,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,CAAC,GAAG,GAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;SACxD;QACR,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;QAEhB,eAAe;QACf,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QAC/B,GAAG,EAAE,CAAC;QAEN,cAAc;QACd,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,GAAG,EAAE,CAAC;QAEN,mBAAmB;QACnB,MAAM,gBAAgB,GAAG,EAAE,GAAC,IAAI,CAAC,WAAW,CAAC;QAC7C,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,GAAG,GAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAErE,GAAG,IAAI,CAAC,CAAC;QACF,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACpC,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBACzC,MAAM,CAAC,GAAG,GAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;aACjD;YACR,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;SACZ;QAER,OAAO,IAAI,CAAC;IACT,CAAC;CAEJ;AAGD,SAAS,SAAS,CAAC,GAAG,EAAC,IAAI;IACvB,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,yCAAyC;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAClC,OAAO,GAAG,EAAE;QACR,GAAG,CAAC,OAAO,CAAE,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;QAClC,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;KACrB;IACD,IAAI,IAAI,EAAE;QACb,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,OAAO,CAAC,GAAC,CAAC,EAAE;YACR,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACf,CAAC,EAAE,CAAC;SACP;KACG;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,GAAG;IACpB,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC/B,GAAG,GAAG,GAAG,GAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KACpC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,CAAC;IAChB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAClB,OAAO,GAAG,CAAC;IAEX,SAAS,SAAS,CAAC,GAAG,EAAE,CAAC;QACrB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAClB,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC3B,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACxB;SACJ;aAAM;YACH,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACf;IACL,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,GAAG;IAChB,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3C,IAAI,IAAI,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QACpC,IAAI,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;QAC9B,IAAI,IAAI,UAAU,CAAC;KACf;IACD,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;IAC1B,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC;AACjB,CAAC"}