zerc20-client-sdk 0.1.0 → 0.1.2

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 (47) hide show
  1. package/dist/assets/abi/Adaptor.json +1 -0
  2. package/dist/assets/abi/Hub.json +1 -1443
  3. package/dist/assets/abi/LiquidityManager.json +1 -0
  4. package/dist/assets/abi/Verifier.json +1 -1935
  5. package/dist/assets/abi/zERC20.json +1 -919
  6. package/dist/assets/wasm/node/zkerc20_wasm.d.ts +2 -2
  7. package/dist/assets/wasm/node/zkerc20_wasm.js +62 -63
  8. package/dist/assets/wasm/node/zkerc20_wasm_bg.wasm +0 -0
  9. package/dist/assets/wasm/node/zkerc20_wasm_bg.wasm.d.ts +4 -4
  10. package/dist/assets/wasm/web/zkerc20_wasm.d.ts +6 -6
  11. package/dist/assets/wasm/web/zkerc20_wasm.js +58 -59
  12. package/dist/assets/wasm/web/zkerc20_wasm_bg.wasm +0 -0
  13. package/dist/assets/wasm/web/zkerc20_wasm_bg.wasm.d.ts +4 -4
  14. package/dist/index.d.ts +1 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +1 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/onchain/contracts.d.ts +15621 -1555
  19. package/dist/onchain/contracts.d.ts.map +1 -1
  20. package/dist/onchain/contracts.js +12 -4
  21. package/dist/onchain/contracts.js.map +1 -1
  22. package/dist/operations/liquidityManager.d.ts +92 -0
  23. package/dist/operations/liquidityManager.d.ts.map +1 -0
  24. package/dist/operations/liquidityManager.js +282 -0
  25. package/dist/operations/liquidityManager.js.map +1 -0
  26. package/dist/registry/tokens.d.ts +4 -0
  27. package/dist/registry/tokens.d.ts.map +1 -1
  28. package/dist/registry/tokens.js +25 -0
  29. package/dist/registry/tokens.js.map +1 -1
  30. package/dist/utils/__tests__/merkle.test.js +6 -6
  31. package/dist/utils/__tests__/merkle.test.js.map +1 -1
  32. package/dist/utils/merkle.d.ts +1 -1
  33. package/dist/utils/merkle.d.ts.map +1 -1
  34. package/dist/utils/merkle.js +22 -9
  35. package/dist/utils/merkle.js.map +1 -1
  36. package/dist/zkp/proofService.d.ts.map +1 -1
  37. package/dist/zkp/proofService.js +2 -0
  38. package/dist/zkp/proofService.js.map +1 -1
  39. package/dist/zkp/proofUtils.d.ts.map +1 -1
  40. package/dist/zkp/proofUtils.js +1 -0
  41. package/dist/zkp/proofUtils.js.map +1 -1
  42. package/package.json +1 -1
  43. package/dist/assets/abi/Minter.json +0 -666
  44. package/dist/operations/minter.d.ts +0 -18
  45. package/dist/operations/minter.d.ts.map +0 -1
  46. package/dist/operations/minter.js +0 -77
  47. package/dist/operations/minter.js.map +0 -1
@@ -1,919 +1 @@
1
- {
2
- "abi": [
3
- { "type": "constructor", "inputs": [], "stateMutability": "nonpayable" },
4
- {
5
- "type": "function",
6
- "name": "allowance",
7
- "inputs": [
8
- { "name": "owner", "type": "address", "internalType": "address" },
9
- { "name": "spender", "type": "address", "internalType": "address" }
10
- ],
11
- "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
12
- "stateMutability": "view"
13
- },
14
- {
15
- "type": "function",
16
- "name": "approve",
17
- "inputs": [
18
- { "name": "spender", "type": "address", "internalType": "address" },
19
- { "name": "amount", "type": "uint256", "internalType": "uint256" }
20
- ],
21
- "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
22
- "stateMutability": "nonpayable"
23
- },
24
- {
25
- "type": "function",
26
- "name": "balanceOf",
27
- "inputs": [{ "name": "account", "type": "address", "internalType": "address" }],
28
- "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
29
- "stateMutability": "view"
30
- },
31
- {
32
- "type": "function",
33
- "name": "burn",
34
- "inputs": [
35
- { "name": "from", "type": "address", "internalType": "address" },
36
- { "name": "value", "type": "uint256", "internalType": "uint256" }
37
- ],
38
- "outputs": [],
39
- "stateMutability": "nonpayable"
40
- },
41
- {
42
- "type": "function",
43
- "name": "decimals",
44
- "inputs": [],
45
- "outputs": [{ "name": "", "type": "uint8", "internalType": "uint8" }],
46
- "stateMutability": "view"
47
- },
48
- {
49
- "type": "function",
50
- "name": "decreaseAllowance",
51
- "inputs": [
52
- { "name": "spender", "type": "address", "internalType": "address" },
53
- { "name": "subtractedValue", "type": "uint256", "internalType": "uint256" }
54
- ],
55
- "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
56
- "stateMutability": "nonpayable"
57
- },
58
- {
59
- "type": "function",
60
- "name": "hashChain",
61
- "inputs": [],
62
- "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
63
- "stateMutability": "view"
64
- },
65
- {
66
- "type": "function",
67
- "name": "increaseAllowance",
68
- "inputs": [
69
- { "name": "spender", "type": "address", "internalType": "address" },
70
- { "name": "addedValue", "type": "uint256", "internalType": "uint256" }
71
- ],
72
- "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
73
- "stateMutability": "nonpayable"
74
- },
75
- {
76
- "type": "function",
77
- "name": "index",
78
- "inputs": [],
79
- "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
80
- "stateMutability": "view"
81
- },
82
- {
83
- "type": "function",
84
- "name": "initialize",
85
- "inputs": [
86
- { "name": "name_", "type": "string", "internalType": "string" },
87
- { "name": "symbol_", "type": "string", "internalType": "string" },
88
- { "name": "initialOwner", "type": "address", "internalType": "address" }
89
- ],
90
- "outputs": [],
91
- "stateMutability": "nonpayable"
92
- },
93
- {
94
- "type": "function",
95
- "name": "mint",
96
- "inputs": [
97
- { "name": "to", "type": "address", "internalType": "address" },
98
- { "name": "value", "type": "uint256", "internalType": "uint256" }
99
- ],
100
- "outputs": [],
101
- "stateMutability": "nonpayable"
102
- },
103
- {
104
- "type": "function",
105
- "name": "minter",
106
- "inputs": [],
107
- "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
108
- "stateMutability": "view"
109
- },
110
- {
111
- "type": "function",
112
- "name": "name",
113
- "inputs": [],
114
- "outputs": [{ "name": "", "type": "string", "internalType": "string" }],
115
- "stateMutability": "view"
116
- },
117
- {
118
- "type": "function",
119
- "name": "owner",
120
- "inputs": [],
121
- "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
122
- "stateMutability": "view"
123
- },
124
- {
125
- "type": "function",
126
- "name": "proxiableUUID",
127
- "inputs": [],
128
- "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }],
129
- "stateMutability": "view"
130
- },
131
- {
132
- "type": "function",
133
- "name": "renounceOwnership",
134
- "inputs": [],
135
- "outputs": [],
136
- "stateMutability": "nonpayable"
137
- },
138
- {
139
- "type": "function",
140
- "name": "setMinter",
141
- "inputs": [{ "name": "newMinter", "type": "address", "internalType": "address" }],
142
- "outputs": [],
143
- "stateMutability": "nonpayable"
144
- },
145
- {
146
- "type": "function",
147
- "name": "setVerifier",
148
- "inputs": [{ "name": "newVerifier", "type": "address", "internalType": "address" }],
149
- "outputs": [],
150
- "stateMutability": "nonpayable"
151
- },
152
- {
153
- "type": "function",
154
- "name": "symbol",
155
- "inputs": [],
156
- "outputs": [{ "name": "", "type": "string", "internalType": "string" }],
157
- "stateMutability": "view"
158
- },
159
- {
160
- "type": "function",
161
- "name": "teleport",
162
- "inputs": [
163
- { "name": "to", "type": "address", "internalType": "address" },
164
- { "name": "value", "type": "uint256", "internalType": "uint256" }
165
- ],
166
- "outputs": [],
167
- "stateMutability": "nonpayable"
168
- },
169
- {
170
- "type": "function",
171
- "name": "totalSupply",
172
- "inputs": [],
173
- "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
174
- "stateMutability": "view"
175
- },
176
- {
177
- "type": "function",
178
- "name": "transfer",
179
- "inputs": [
180
- { "name": "to", "type": "address", "internalType": "address" },
181
- { "name": "amount", "type": "uint256", "internalType": "uint256" }
182
- ],
183
- "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
184
- "stateMutability": "nonpayable"
185
- },
186
- {
187
- "type": "function",
188
- "name": "transferFrom",
189
- "inputs": [
190
- { "name": "from", "type": "address", "internalType": "address" },
191
- { "name": "to", "type": "address", "internalType": "address" },
192
- { "name": "amount", "type": "uint256", "internalType": "uint256" }
193
- ],
194
- "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
195
- "stateMutability": "nonpayable"
196
- },
197
- {
198
- "type": "function",
199
- "name": "transferOwnership",
200
- "inputs": [{ "name": "newOwner", "type": "address", "internalType": "address" }],
201
- "outputs": [],
202
- "stateMutability": "nonpayable"
203
- },
204
- {
205
- "type": "function",
206
- "name": "upgradeTo",
207
- "inputs": [{ "name": "newImplementation", "type": "address", "internalType": "address" }],
208
- "outputs": [],
209
- "stateMutability": "nonpayable"
210
- },
211
- {
212
- "type": "function",
213
- "name": "upgradeToAndCall",
214
- "inputs": [
215
- { "name": "newImplementation", "type": "address", "internalType": "address" },
216
- { "name": "data", "type": "bytes", "internalType": "bytes" }
217
- ],
218
- "outputs": [],
219
- "stateMutability": "payable"
220
- },
221
- {
222
- "type": "function",
223
- "name": "verifier",
224
- "inputs": [],
225
- "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
226
- "stateMutability": "view"
227
- },
228
- {
229
- "type": "event",
230
- "name": "AdminChanged",
231
- "inputs": [
232
- { "name": "previousAdmin", "type": "address", "indexed": false, "internalType": "address" },
233
- { "name": "newAdmin", "type": "address", "indexed": false, "internalType": "address" }
234
- ],
235
- "anonymous": false
236
- },
237
- {
238
- "type": "event",
239
- "name": "Approval",
240
- "inputs": [
241
- { "name": "owner", "type": "address", "indexed": true, "internalType": "address" },
242
- { "name": "spender", "type": "address", "indexed": true, "internalType": "address" },
243
- { "name": "value", "type": "uint256", "indexed": false, "internalType": "uint256" }
244
- ],
245
- "anonymous": false
246
- },
247
- {
248
- "type": "event",
249
- "name": "BeaconUpgraded",
250
- "inputs": [
251
- { "name": "beacon", "type": "address", "indexed": true, "internalType": "address" }
252
- ],
253
- "anonymous": false
254
- },
255
- {
256
- "type": "event",
257
- "name": "IndexedTransfer",
258
- "inputs": [
259
- { "name": "index", "type": "uint256", "indexed": true, "internalType": "uint256" },
260
- { "name": "from", "type": "address", "indexed": false, "internalType": "address" },
261
- { "name": "to", "type": "address", "indexed": false, "internalType": "address" },
262
- { "name": "value", "type": "uint256", "indexed": false, "internalType": "uint256" }
263
- ],
264
- "anonymous": false
265
- },
266
- {
267
- "type": "event",
268
- "name": "Initialized",
269
- "inputs": [{ "name": "version", "type": "uint8", "indexed": false, "internalType": "uint8" }],
270
- "anonymous": false
271
- },
272
- {
273
- "type": "event",
274
- "name": "MinterUpdated",
275
- "inputs": [
276
- { "name": "newMinter", "type": "address", "indexed": true, "internalType": "address" }
277
- ],
278
- "anonymous": false
279
- },
280
- {
281
- "type": "event",
282
- "name": "OwnershipTransferred",
283
- "inputs": [
284
- { "name": "previousOwner", "type": "address", "indexed": true, "internalType": "address" },
285
- { "name": "newOwner", "type": "address", "indexed": true, "internalType": "address" }
286
- ],
287
- "anonymous": false
288
- },
289
- {
290
- "type": "event",
291
- "name": "Teleport",
292
- "inputs": [
293
- { "name": "to", "type": "address", "indexed": true, "internalType": "address" },
294
- { "name": "value", "type": "uint256", "indexed": false, "internalType": "uint256" }
295
- ],
296
- "anonymous": false
297
- },
298
- {
299
- "type": "event",
300
- "name": "Transfer",
301
- "inputs": [
302
- { "name": "from", "type": "address", "indexed": true, "internalType": "address" },
303
- { "name": "to", "type": "address", "indexed": true, "internalType": "address" },
304
- { "name": "value", "type": "uint256", "indexed": false, "internalType": "uint256" }
305
- ],
306
- "anonymous": false
307
- },
308
- {
309
- "type": "event",
310
- "name": "Upgraded",
311
- "inputs": [
312
- { "name": "implementation", "type": "address", "indexed": true, "internalType": "address" }
313
- ],
314
- "anonymous": false
315
- },
316
- {
317
- "type": "event",
318
- "name": "VerifierUpdated",
319
- "inputs": [
320
- { "name": "newVerifier", "type": "address", "indexed": true, "internalType": "address" }
321
- ],
322
- "anonymous": false
323
- },
324
- { "type": "error", "name": "OnlyMinter", "inputs": [] },
325
- { "type": "error", "name": "OnlyVerifier", "inputs": [] },
326
- { "type": "error", "name": "ZeroAddress", "inputs": [] }
327
- ],
328
- "bytecode": {
329
- "object": "0x60a060405230608052348015610013575f5ffd5b5061001c610021565b6100dd565b5f54610100900460ff161561008c5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146100db575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051611dd06101115f395f8181610787015281816107c7015281816108be015281816108fe015261098b0152611dd05ff3fe608060405260043610610195575f3560e01c80634f1ef286116100e75780639dc29fac11610087578063c841eccb11610062578063c841eccb1461046e578063dd62ed3e14610483578063f2fde38b146104a2578063fca3b5aa146104c1575f5ffd5b80639dc29fac14610411578063a457c2d714610430578063a9059cbb1461044f575f5ffd5b806370a08231116100c257806370a0823114610398578063715018a6146103cc5780638da5cb5b146103e057806395d89b41146103fd575f5ffd5b80634f1ef2861461035257806352d1902d146103655780635437988d14610379575f5ffd5b806323b872dd11610152578063313ce5671161012d578063313ce567146102da5780633659cfe6146102f5578063395093511461031457806340c10f1914610333575f5ffd5b806323b872dd146102875780632986c0e5146102a65780632b7ac3f3146102bb575f5ffd5b806304ddf0a51461019957806306fdde03146101ba57806307546172146101e4578063077f224a1461021b578063095ea7b31461023a57806318160ddd14610269575b5f5ffd5b3480156101a4575f5ffd5b506101b86101b336600461186a565b6104e0565b005b3480156101c5575f5ffd5b506101ce61055c565b6040516101db9190611892565b60405180910390f35b3480156101ef575f5ffd5b5060fe54610203906001600160a01b031681565b6040516001600160a01b0390911681526020016101db565b348015610226575f5ffd5b506101b8610235366004611970565b6105ec565b348015610245575f5ffd5b5061025961025436600461186a565b610741565b60405190151581526020016101db565b348015610274575f5ffd5b506035545b6040519081526020016101db565b348015610292575f5ffd5b506102596102a13660046119e4565b61075a565b3480156102b1575f5ffd5b5061027960fc5481565b3480156102c6575f5ffd5b5060fd54610203906001600160a01b031681565b3480156102e5575f5ffd5b50604051601281526020016101db565b348015610300575f5ffd5b506101b861030f366004611a1e565b61077d565b34801561031f575f5ffd5b5061025961032e36600461186a565b61085a565b34801561033e575f5ffd5b506101b861034d36600461186a565b61087b565b6101b8610360366004611a37565b6108b4565b348015610370575f5ffd5b5061027961097f565b348015610384575f5ffd5b506101b8610393366004611a1e565b610a30565b3480156103a3575f5ffd5b506102796103b2366004611a1e565b6001600160a01b03165f9081526033602052604090205490565b3480156103d7575f5ffd5b506101b8610aa8565b3480156103eb575f5ffd5b506065546001600160a01b0316610203565b348015610408575f5ffd5b506101ce610abb565b34801561041c575f5ffd5b506101b861042b36600461186a565b610aca565b34801561043b575f5ffd5b5061025961044a36600461186a565b610aff565b34801561045a575f5ffd5b5061025961046936600461186a565b610b79565b348015610479575f5ffd5b5061027960fb5481565b34801561048e575f5ffd5b5061027961049d366004611a95565b610b86565b3480156104ad575f5ffd5b506101b86104bc366004611a1e565b610bb0565b3480156104cc575f5ffd5b506101b86104db366004611a1e565b610c26565b60fd546001600160a01b0316331461050b57604051633d120d8160e11b815260040160405180910390fd5b6105158282610c9e565b816001600160a01b03167fb7d7623245cb52e55db0c4265c68f0507e52aadd4f195cfdafaf1ea5d107e72d8260405161055091815260200190565b60405180910390a25050565b60606036805461056b90611ac6565b80601f016020809104026020016040519081016040528092919081815260200182805461059790611ac6565b80156105e25780601f106105b9576101008083540402835291602001916105e2565b820191905f5260205f20905b8154815290600101906020018083116105c557829003601f168201915b5050505050905090565b5f54610100900460ff161580801561060a57505f54600160ff909116105b806106235750303b15801561062357505f5460ff166001145b61068b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff1916600117905580156106ac575f805461ff0019166101001790555b6001600160a01b0382166106d35760405163d92e233d60e01b815260040160405180910390fd5b6106dd8484610d64565b6106e5610d94565b6106ed610dc2565b6106f682610de8565b801561073b575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b5f3361074e818585610e39565b60019150505b92915050565b5f33610767858285610f5c565b610772858585610fce565b506001949350505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107c55760405162461bcd60e51b815260040161068290611afe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661080d5f516020611d545f395f51905f52546001600160a01b031690565b6001600160a01b0316146108335760405162461bcd60e51b815260040161068290611b4a565b61083c8161117d565b604080515f8082526020820190925261085791839190611185565b50565b5f3361074e81858561086c8383610b86565b6108769190611baa565b610e39565b60fe546001600160a01b031633146108a657604051639cdc2ed560e01b815260040160405180910390fd5b6108b08282610c9e565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036108fc5760405162461bcd60e51b815260040161068290611afe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166109445f516020611d545f395f51905f52546001600160a01b031690565b6001600160a01b03161461096a5760405162461bcd60e51b815260040161068290611b4a565b6109738261117d565b6108b082826001611185565b5f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a1e5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610682565b505f516020611d545f395f51905f5290565b610a386112f4565b6001600160a01b038116610a5f5760405163d92e233d60e01b815260040160405180910390fd5b60fd80546001600160a01b0319166001600160a01b0383169081179091556040517fd24015cc99cc1700cafca3042840a1d8ac1e3964fd2e0e37ea29c654056ee327905f90a250565b610ab06112f4565b610ab95f610de8565b565b60606037805461056b90611ac6565b60fe546001600160a01b03163314610af557604051639cdc2ed560e01b815260040160405180910390fd5b6108b0828261134e565b5f3381610b0c8286610b86565b905083811015610b6c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610682565b6107728286868403610e39565b5f3361074e818585610fce565b6001600160a01b039182165f90815260346020908152604080832093909416825291909152205490565b610bb86112f4565b6001600160a01b038116610c1d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610682565b61085781610de8565b610c2e6112f4565b6001600160a01b038116610c555760405163d92e233d60e01b815260040160405180910390fd5b60fe80546001600160a01b0319166001600160a01b0383169081179091556040517fad0f299ec81a386c98df0ac27dae11dd020ed1b56963c53a7292e7a3a314539a905f90a250565b6001600160a01b038216610cf45760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610682565b8060355f828254610d059190611baa565b90915550506001600160a01b0382165f818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36108b05f8383611482565b5f54610100900460ff16610d8a5760405162461bcd60e51b815260040161068290611bbd565b6108b082826114f5565b5f54610100900460ff16610dba5760405162461bcd60e51b815260040161068290611bbd565b610ab9611534565b5f54610100900460ff16610ab95760405162461bcd60e51b815260040161068290611bbd565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038316610e9b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610682565b6001600160a01b038216610efc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610682565b6001600160a01b038381165f8181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610f678484610b86565b90505f19811461073b5781811015610fc15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610682565b61073b8484848403610e39565b6001600160a01b0383166110325760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610682565b6001600160a01b0382166110945760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610682565b6001600160a01b0383165f908152603360205260409020548181101561110b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610682565b6001600160a01b038085165f8181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061116a9086815260200190565b60405180910390a361073b848484611482565b6108576112f4565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156111bd576111b883611563565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611217575060408051601f3d908101601f1916820190925261121491810190611c08565b60015b61127a5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610682565b5f516020611d545f395f51905f5281146112e85760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610682565b506111b88383836115fe565b6065546001600160a01b03163314610ab95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610682565b6001600160a01b0382166113ae5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610682565b6001600160a01b0382165f90815260336020526040902054818110156114215760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610682565b6001600160a01b0383165f8181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36111b8835f845b61148f60fb548383611622565b60fb5560fc8054905f6114a183611c1f565b90915550604080516001600160a01b038087168252851660208201529081018390527fb9285eeffc25fae3689fd1d4d3245dbc73f87f3bc8cb50c1de55574221805d0d9060600160405180910390a2505050565b5f54610100900460ff1661151b5760405162461bcd60e51b815260040161068290611bbd565b60366115278382611c82565b5060376111b88282611c82565b5f54610100900460ff1661155a5760405162461bcd60e51b815260040161068290611bbd565b610ab933610de8565b6001600160a01b0381163b6115d05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610682565b5f516020611d545f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b611607836116c6565b5f825111806116135750805b156111b85761073b8383611705565b5f600284848460405160200161165d9392919092835260609190911b6bffffffffffffffffffffffff19166020830152603482015260540190565b60408051601f198184030181529082905261167791611d3d565b602060405180830381855afa158015611692573d5f5f3e3d5ffd5b5050506040513d601f19601f820116820180604052508101906116b59190611c08565b6001600160f81b0316949350505050565b6116cf81611563565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606061172a8383604051806060016040528060278152602001611d7460279139611731565b9392505050565b60605f5f856001600160a01b03168560405161174d9190611d3d565b5f60405180830381855af49150503d805f8114611785576040519150601f19603f3d011682016040523d82523d5f602084013e61178a565b606091505b509150915061179b868383876117a5565b9695505050505050565b606083156118135782515f0361180c576001600160a01b0385163b61180c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610682565b508161181d565b61181d8383611825565b949350505050565b8151156118355781518083602001fd5b8060405162461bcd60e51b81526004016106829190611892565b80356001600160a01b0381168114611865575f5ffd5b919050565b5f5f6040838503121561187b575f5ffd5b6118848361184f565b946020939093013593505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b634e487b7160e01b5f52604160045260245ffd5b5f5f67ffffffffffffffff8411156118f5576118f56118c7565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715611924576119246118c7565b60405283815290508082840185101561193b575f5ffd5b838360208301375f60208583010152509392505050565b5f82601f830112611961575f5ffd5b61172a838335602085016118db565b5f5f5f60608486031215611982575f5ffd5b833567ffffffffffffffff811115611998575f5ffd5b6119a486828701611952565b935050602084013567ffffffffffffffff8111156119c0575f5ffd5b6119cc86828701611952565b9250506119db6040850161184f565b90509250925092565b5f5f5f606084860312156119f6575f5ffd5b6119ff8461184f565b9250611a0d6020850161184f565b929592945050506040919091013590565b5f60208284031215611a2e575f5ffd5b61172a8261184f565b5f5f60408385031215611a48575f5ffd5b611a518361184f565b9150602083013567ffffffffffffffff811115611a6c575f5ffd5b8301601f81018513611a7c575f5ffd5b611a8b858235602084016118db565b9150509250929050565b5f5f60408385031215611aa6575f5ffd5b611aaf8361184f565b9150611abd6020840161184f565b90509250929050565b600181811c90821680611ada57607f821691505b602082108103611af857634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561075457610754611b96565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f60208284031215611c18575f5ffd5b5051919050565b5f60018201611c3057611c30611b96565b5060010190565b601f8211156111b857805f5260205f20601f840160051c81016020851015611c5c5750805b601f840160051c820191505b81811015611c7b575f8155600101611c68565b5050505050565b815167ffffffffffffffff811115611c9c57611c9c6118c7565b611cb081611caa8454611ac6565b84611c37565b6020601f821160018114611ce2575f8315611ccb5750848201515b5f19600385901b1c1916600184901b178455611c7b565b5f84815260208120601f198516915b82811015611d115787850151825560209485019460019092019101611cf1565b5084821015611d2e57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f82518060208501845e5f92019182525091905056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122005736de76748ee413b8b7c84f71869d2bc9963b804b337fd484e23556690f8c964736f6c634300081e0033",
330
- "sourceMap": "476:2052:97:-:0;;;1198:4:43;1155:48;;865:53:97;;;;;;;;;-1:-1:-1;889:22:97;:20;:22::i;:::-;476:2052;;5939:280:42;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:42;;216:2:104;5998:66:42;;;198:21:104;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:104;;;338:37;392:19;;5998:66:42;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:42;6140:15;6125:30;;;;;;6174:28;;564:36:104;;;6174:28:42;;552:2:104;537:18;6174:28:42;;;;;;;6074:139;5939:280::o;422:184:104:-;476:2052:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
331
- "linkReferences": {}
332
- },
333
- "deployedBytecode": {
334
- "object": "0x608060405260043610610195575f3560e01c80634f1ef286116100e75780639dc29fac11610087578063c841eccb11610062578063c841eccb1461046e578063dd62ed3e14610483578063f2fde38b146104a2578063fca3b5aa146104c1575f5ffd5b80639dc29fac14610411578063a457c2d714610430578063a9059cbb1461044f575f5ffd5b806370a08231116100c257806370a0823114610398578063715018a6146103cc5780638da5cb5b146103e057806395d89b41146103fd575f5ffd5b80634f1ef2861461035257806352d1902d146103655780635437988d14610379575f5ffd5b806323b872dd11610152578063313ce5671161012d578063313ce567146102da5780633659cfe6146102f5578063395093511461031457806340c10f1914610333575f5ffd5b806323b872dd146102875780632986c0e5146102a65780632b7ac3f3146102bb575f5ffd5b806304ddf0a51461019957806306fdde03146101ba57806307546172146101e4578063077f224a1461021b578063095ea7b31461023a57806318160ddd14610269575b5f5ffd5b3480156101a4575f5ffd5b506101b86101b336600461186a565b6104e0565b005b3480156101c5575f5ffd5b506101ce61055c565b6040516101db9190611892565b60405180910390f35b3480156101ef575f5ffd5b5060fe54610203906001600160a01b031681565b6040516001600160a01b0390911681526020016101db565b348015610226575f5ffd5b506101b8610235366004611970565b6105ec565b348015610245575f5ffd5b5061025961025436600461186a565b610741565b60405190151581526020016101db565b348015610274575f5ffd5b506035545b6040519081526020016101db565b348015610292575f5ffd5b506102596102a13660046119e4565b61075a565b3480156102b1575f5ffd5b5061027960fc5481565b3480156102c6575f5ffd5b5060fd54610203906001600160a01b031681565b3480156102e5575f5ffd5b50604051601281526020016101db565b348015610300575f5ffd5b506101b861030f366004611a1e565b61077d565b34801561031f575f5ffd5b5061025961032e36600461186a565b61085a565b34801561033e575f5ffd5b506101b861034d36600461186a565b61087b565b6101b8610360366004611a37565b6108b4565b348015610370575f5ffd5b5061027961097f565b348015610384575f5ffd5b506101b8610393366004611a1e565b610a30565b3480156103a3575f5ffd5b506102796103b2366004611a1e565b6001600160a01b03165f9081526033602052604090205490565b3480156103d7575f5ffd5b506101b8610aa8565b3480156103eb575f5ffd5b506065546001600160a01b0316610203565b348015610408575f5ffd5b506101ce610abb565b34801561041c575f5ffd5b506101b861042b36600461186a565b610aca565b34801561043b575f5ffd5b5061025961044a36600461186a565b610aff565b34801561045a575f5ffd5b5061025961046936600461186a565b610b79565b348015610479575f5ffd5b5061027960fb5481565b34801561048e575f5ffd5b5061027961049d366004611a95565b610b86565b3480156104ad575f5ffd5b506101b86104bc366004611a1e565b610bb0565b3480156104cc575f5ffd5b506101b86104db366004611a1e565b610c26565b60fd546001600160a01b0316331461050b57604051633d120d8160e11b815260040160405180910390fd5b6105158282610c9e565b816001600160a01b03167fb7d7623245cb52e55db0c4265c68f0507e52aadd4f195cfdafaf1ea5d107e72d8260405161055091815260200190565b60405180910390a25050565b60606036805461056b90611ac6565b80601f016020809104026020016040519081016040528092919081815260200182805461059790611ac6565b80156105e25780601f106105b9576101008083540402835291602001916105e2565b820191905f5260205f20905b8154815290600101906020018083116105c557829003601f168201915b5050505050905090565b5f54610100900460ff161580801561060a57505f54600160ff909116105b806106235750303b15801561062357505f5460ff166001145b61068b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff1916600117905580156106ac575f805461ff0019166101001790555b6001600160a01b0382166106d35760405163d92e233d60e01b815260040160405180910390fd5b6106dd8484610d64565b6106e5610d94565b6106ed610dc2565b6106f682610de8565b801561073b575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b5f3361074e818585610e39565b60019150505b92915050565b5f33610767858285610f5c565b610772858585610fce565b506001949350505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107c55760405162461bcd60e51b815260040161068290611afe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661080d5f516020611d545f395f51905f52546001600160a01b031690565b6001600160a01b0316146108335760405162461bcd60e51b815260040161068290611b4a565b61083c8161117d565b604080515f8082526020820190925261085791839190611185565b50565b5f3361074e81858561086c8383610b86565b6108769190611baa565b610e39565b60fe546001600160a01b031633146108a657604051639cdc2ed560e01b815260040160405180910390fd5b6108b08282610c9e565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036108fc5760405162461bcd60e51b815260040161068290611afe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166109445f516020611d545f395f51905f52546001600160a01b031690565b6001600160a01b03161461096a5760405162461bcd60e51b815260040161068290611b4a565b6109738261117d565b6108b082826001611185565b5f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a1e5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610682565b505f516020611d545f395f51905f5290565b610a386112f4565b6001600160a01b038116610a5f5760405163d92e233d60e01b815260040160405180910390fd5b60fd80546001600160a01b0319166001600160a01b0383169081179091556040517fd24015cc99cc1700cafca3042840a1d8ac1e3964fd2e0e37ea29c654056ee327905f90a250565b610ab06112f4565b610ab95f610de8565b565b60606037805461056b90611ac6565b60fe546001600160a01b03163314610af557604051639cdc2ed560e01b815260040160405180910390fd5b6108b0828261134e565b5f3381610b0c8286610b86565b905083811015610b6c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610682565b6107728286868403610e39565b5f3361074e818585610fce565b6001600160a01b039182165f90815260346020908152604080832093909416825291909152205490565b610bb86112f4565b6001600160a01b038116610c1d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610682565b61085781610de8565b610c2e6112f4565b6001600160a01b038116610c555760405163d92e233d60e01b815260040160405180910390fd5b60fe80546001600160a01b0319166001600160a01b0383169081179091556040517fad0f299ec81a386c98df0ac27dae11dd020ed1b56963c53a7292e7a3a314539a905f90a250565b6001600160a01b038216610cf45760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610682565b8060355f828254610d059190611baa565b90915550506001600160a01b0382165f818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36108b05f8383611482565b5f54610100900460ff16610d8a5760405162461bcd60e51b815260040161068290611bbd565b6108b082826114f5565b5f54610100900460ff16610dba5760405162461bcd60e51b815260040161068290611bbd565b610ab9611534565b5f54610100900460ff16610ab95760405162461bcd60e51b815260040161068290611bbd565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038316610e9b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610682565b6001600160a01b038216610efc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610682565b6001600160a01b038381165f8181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610f678484610b86565b90505f19811461073b5781811015610fc15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610682565b61073b8484848403610e39565b6001600160a01b0383166110325760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610682565b6001600160a01b0382166110945760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610682565b6001600160a01b0383165f908152603360205260409020548181101561110b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610682565b6001600160a01b038085165f8181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061116a9086815260200190565b60405180910390a361073b848484611482565b6108576112f4565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156111bd576111b883611563565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611217575060408051601f3d908101601f1916820190925261121491810190611c08565b60015b61127a5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610682565b5f516020611d545f395f51905f5281146112e85760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610682565b506111b88383836115fe565b6065546001600160a01b03163314610ab95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610682565b6001600160a01b0382166113ae5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610682565b6001600160a01b0382165f90815260336020526040902054818110156114215760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610682565b6001600160a01b0383165f8181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36111b8835f845b61148f60fb548383611622565b60fb5560fc8054905f6114a183611c1f565b90915550604080516001600160a01b038087168252851660208201529081018390527fb9285eeffc25fae3689fd1d4d3245dbc73f87f3bc8cb50c1de55574221805d0d9060600160405180910390a2505050565b5f54610100900460ff1661151b5760405162461bcd60e51b815260040161068290611bbd565b60366115278382611c82565b5060376111b88282611c82565b5f54610100900460ff1661155a5760405162461bcd60e51b815260040161068290611bbd565b610ab933610de8565b6001600160a01b0381163b6115d05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610682565b5f516020611d545f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b611607836116c6565b5f825111806116135750805b156111b85761073b8383611705565b5f600284848460405160200161165d9392919092835260609190911b6bffffffffffffffffffffffff19166020830152603482015260540190565b60408051601f198184030181529082905261167791611d3d565b602060405180830381855afa158015611692573d5f5f3e3d5ffd5b5050506040513d601f19601f820116820180604052508101906116b59190611c08565b6001600160f81b0316949350505050565b6116cf81611563565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606061172a8383604051806060016040528060278152602001611d7460279139611731565b9392505050565b60605f5f856001600160a01b03168560405161174d9190611d3d565b5f60405180830381855af49150503d805f8114611785576040519150601f19603f3d011682016040523d82523d5f602084013e61178a565b606091505b509150915061179b868383876117a5565b9695505050505050565b606083156118135782515f0361180c576001600160a01b0385163b61180c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610682565b508161181d565b61181d8383611825565b949350505050565b8151156118355781518083602001fd5b8060405162461bcd60e51b81526004016106829190611892565b80356001600160a01b0381168114611865575f5ffd5b919050565b5f5f6040838503121561187b575f5ffd5b6118848361184f565b946020939093013593505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b634e487b7160e01b5f52604160045260245ffd5b5f5f67ffffffffffffffff8411156118f5576118f56118c7565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715611924576119246118c7565b60405283815290508082840185101561193b575f5ffd5b838360208301375f60208583010152509392505050565b5f82601f830112611961575f5ffd5b61172a838335602085016118db565b5f5f5f60608486031215611982575f5ffd5b833567ffffffffffffffff811115611998575f5ffd5b6119a486828701611952565b935050602084013567ffffffffffffffff8111156119c0575f5ffd5b6119cc86828701611952565b9250506119db6040850161184f565b90509250925092565b5f5f5f606084860312156119f6575f5ffd5b6119ff8461184f565b9250611a0d6020850161184f565b929592945050506040919091013590565b5f60208284031215611a2e575f5ffd5b61172a8261184f565b5f5f60408385031215611a48575f5ffd5b611a518361184f565b9150602083013567ffffffffffffffff811115611a6c575f5ffd5b8301601f81018513611a7c575f5ffd5b611a8b858235602084016118db565b9150509250929050565b5f5f60408385031215611aa6575f5ffd5b611aaf8361184f565b9150611abd6020840161184f565b90509250929050565b600181811c90821680611ada57607f821691505b602082108103611af857634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561075457610754611b96565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f60208284031215611c18575f5ffd5b5051919050565b5f60018201611c3057611c30611b96565b5060010190565b601f8211156111b857805f5260205f20601f840160051c81016020851015611c5c5750805b601f840160051c820191505b81811015611c7b575f8155600101611c68565b5050505050565b815167ffffffffffffffff811115611c9c57611c9c6118c7565b611cb081611caa8454611ac6565b84611c37565b6020601f821160018114611ce2575f8315611ccb5750848201515b5f19600385901b1c1916600184901b178455611c7b565b5f84815260208120601f198516915b82811015611d115787850151825560209485019460019092019101611cf1565b5084821015611d2e57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f82518060208501845e5f92019182525091905056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122005736de76748ee413b8b7c84f71869d2bc9963b804b337fd484e23556690f8c964736f6c634300081e0033",
335
- "sourceMap": "476:2052:97:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1320:180;;;;;;;;;;-1:-1:-1;1320:180:97;;;;;:::i;:::-;;:::i;:::-;;2516:98:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;837:21:97;;;;;;;;;;-1:-1:-1;837:21:97;;;;-1:-1:-1;;;;;837:21:97;;;;;;-1:-1:-1;;;;;1084:32:104;;;1066:51;;1054:2;1039:18;837:21:97;920:203:104;924:318:97;;;;;;;;;;-1:-1:-1;924:318:97;;;;;:::i;:::-;;:::i;4802:197:45:-;;;;;;;;;;-1:-1:-1;4802:197:45;;;;;:::i;:::-;;:::i;:::-;;;2990:14:104;;2983:22;2965:41;;2953:2;2938:18;4802:197:45;2825:187:104;3613:106:45;;;;;;;;;;-1:-1:-1;3700:12:45;;3613:106;;;3163:25:104;;;3151:2;3136:18;3613:106:45;3017:177:104;5561:256:45;;;;;;;;;;-1:-1:-1;5561:256:45;;;;;:::i;:::-;;:::i;780:20:97:-;;;;;;;;;;;;;;;;807:23;;;;;;;;;;-1:-1:-1;807:23:97;;;;-1:-1:-1;;;;;807:23:97;;;3462:91:45;;;;;;;;;;-1:-1:-1;3462:91:45;;3544:2;3720:36:104;;3708:2;3693:18;3462:91:45;3578:184:104;3408:195:43;;;;;;;;;;-1:-1:-1;3408:195:43;;;;;:::i;:::-;;:::i;6212:234:45:-;;;;;;;;;;-1:-1:-1;6212:234:45;;;;;:::i;:::-;;:::i;2208:138:97:-;;;;;;;;;;-1:-1:-1;2208:138:97;;;;;:::i;:::-;;:::i;3922:220:43:-;;;;;;:::i;:::-;;:::i;3027:131::-;;;;;;;;;;;;;:::i;1802:204:97:-;;;;;;;;;;-1:-1:-1;1802:204:97;;;;;:::i;:::-;;:::i;3777:125:45:-;;;;;;;;;;-1:-1:-1;3777:125:45;;;;;:::i;:::-;-1:-1:-1;;;;;3877:18:45;3851:7;3877:18;;;:9;:18;;;;;;;3777:125;2085:101:37;;;;;;;;;;;;;:::i;1462:85::-;;;;;;;;;;-1:-1:-1;1534:6:37;;-1:-1:-1;;;;;1534:6:37;1462:85;;2727:102:45;;;;;;;;;;;;;:::i;2352:142:97:-;;;;;;;;;;-1:-1:-1;2352:142:97;;;;;:::i;:::-;;:::i;6933:427:45:-;;;;;;;;;;-1:-1:-1;6933:427:45;;;;;:::i;:::-;;:::i;4098:189::-;;;;;;;;;;-1:-1:-1;4098:189:45;;;;;:::i;:::-;;:::i;749:24:97:-;;;;;;;;;;;;;;;;4345:149:45;;;;;;;;;;-1:-1:-1;4345:149:45;;;;;:::i;:::-;;:::i;2335:198:37:-;;;;;;;;;;-1:-1:-1;2335:198:37;;;;;:::i;:::-;;:::i;2012:190:97:-;;;;;;;;;;-1:-1:-1;2012:190:97;;;;;:::i;:::-;;:::i;1320:180::-;1402:8;;-1:-1:-1;;;;;1402:8:97;1388:10;:22;1384:49;;1419:14;;-1:-1:-1;;;1419:14:97;;;;;;;;;;;1384:49;1443:16;1449:2;1453:5;1443;:16::i;:::-;1483:2;-1:-1:-1;;;;;1474:19:97;;1487:5;1474:19;;;;3163:25:104;;3151:2;3136:18;;3017:177;1474:19:97;;;;;;;;1320:180;;:::o;2516:98:45:-;2570:13;2602:5;2595:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2516:98;:::o;924:318:97:-;3279:19:42;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:42;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:42;1713:19:50;:23;;;3387:66:42;;-1:-1:-1;3436:12:42;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:42;;5521:2:104;3325:201:42;;;5503:21:104;5560:2;5540:18;;;5533:30;5599:34;5579:18;;;5572:62;-1:-1:-1;;;5650:18:104;;;5643:44;5704:19;;3325:201:42;;;;;;;;;3536:12;:16;;-1:-1:-1;;3536:16:42;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:42;;;;;3562:65;-1:-1:-1;;;;;1045:26:97;::::1;1041:52;;1080:13;;-1:-1:-1::0;;;1080:13:97::1;;;;;;;;;;;1041:52;1104:28;1117:5;1124:7;1104:12;:28::i;:::-;1142:16;:14;:16::i;:::-;1168:24;:22;:24::i;:::-;1203:32;1222:12;1203:18;:32::i;:::-;3651:14:42::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:42;;;3721:14;;-1:-1:-1;3720:36:104;;3721:14:42;;3708:2:104;3693:18;3721:14:42;;;;;;;3647:99;3269:483;924:318:97;;;:::o;4802:197:45:-;4885:4;965:10:51;4939:32:45;965:10:51;4955:7:45;4964:6;4939:8;:32::i;:::-;4988:4;4981:11;;;4802:197;;;;;:::o;5561:256::-;5658:4;965:10:51;5714:38:45;5730:4;965:10:51;5745:6:45;5714:15;:38::i;:::-;5762:27;5772:4;5778:2;5782:6;5762:9;:27::i;:::-;-1:-1:-1;5806:4:45;;5561:256;-1:-1:-1;;;;5561:256:45:o;3408:195:43:-;-1:-1:-1;;;;;1764:6:43;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:43;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:43;:20;-1:-1:-1;;;;;;;;;;;1557:65:40;-1:-1:-1;;;;;1557:65:40;;1478:151;1837:20:43;-1:-1:-1;;;;;1837:30:43;;1829:87;;;;-1:-1:-1;;;1829:87:43;;;;;;;:::i;:::-;3489:36:::1;3507:17;3489;:36::i;:::-;3576:12;::::0;;3586:1:::1;3576:12:::0;;;::::1;::::0;::::1;::::0;;;3535:61:::1;::::0;3557:17;;3576:12;3535:21:::1;:61::i;:::-;3408:195:::0;:::o;6212:234:45:-;6300:4;965:10:51;6354:64:45;965:10:51;6370:7:45;6407:10;6379:25;965:10:51;6370:7:45;6379:9;:25::i;:::-;:38;;;;:::i;:::-;6354:8;:64::i;2208:138:97:-;2286:6;;-1:-1:-1;;;;;2286:6:97;2272:10;:20;2268:45;;2301:12;;-1:-1:-1;;;2301:12:97;;;;;;;;;;;2268:45;2323:16;2329:2;2333:5;2323;:16::i;:::-;2208:138;;:::o;3922:220:43:-;-1:-1:-1;;;;;1764:6:43;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:43;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:43;:20;-1:-1:-1;;;;;;;;;;;1557:65:40;-1:-1:-1;;;;;1557:65:40;;1478:151;1837:20:43;-1:-1:-1;;;;;1837:30:43;;1829:87;;;;-1:-1:-1;;;1829:87:43;;;;;;;:::i;:::-;4037:36:::1;4055:17;4037;:36::i;:::-;4083:52;4105:17;4124:4;4130;4083:21;:52::i;3027:131::-:0;3105:7;2190:4;-1:-1:-1;;;;;2199:6:43;2182:23;;2174:92;;;;-1:-1:-1;;;2174:92:43;;7223:2:104;2174:92:43;;;7205:21:104;7262:2;7242:18;;;7235:30;7301:34;7281:18;;;7274:62;7372:26;7352:18;;;7345:54;7416:19;;2174:92:43;7021:420:104;2174:92:43;-1:-1:-1;;;;;;;;;;;;3027:131:43;:::o;1802:204:97:-;1355:13:37;:11;:13::i;:::-;-1:-1:-1;;;;;1877:25:97;::::1;1873:51;;1911:13;;-1:-1:-1::0;;;1911:13:97::1;;;;;;;;;;;1873:51;1934:8;:22:::0;;-1:-1:-1;;;;;;1934:22:97::1;-1:-1:-1::0;;;;;1934:22:97;::::1;::::0;;::::1;::::0;;;1971:28:::1;::::0;::::1;::::0;-1:-1:-1;;1971:28:97::1;1802:204:::0;:::o;2085:101:37:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;2727:102:45:-;2783:13;2815:7;2808:14;;;;;:::i;2352:142:97:-;2432:6;;-1:-1:-1;;;;;2432:6:97;2418:10;:20;2414:45;;2447:12;;-1:-1:-1;;;2447:12:97;;;;;;;;;;;2414:45;2469:18;2475:4;2481:5;2469;:18::i;6933:427:45:-;7026:4;965:10:51;7026:4:45;7107:25;965:10:51;7124:7:45;7107:9;:25::i;:::-;7080:52;;7170:15;7150:16;:35;;7142:85;;;;-1:-1:-1;;;7142:85:45;;7648:2:104;7142:85:45;;;7630:21:104;7687:2;7667:18;;;7660:30;7726:34;7706:18;;;7699:62;-1:-1:-1;;;7777:18:104;;;7770:35;7822:19;;7142:85:45;7446:401:104;7142:85:45;7261:60;7270:5;7277:7;7305:15;7286:16;:34;7261:8;:60::i;4098:189::-;4177:4;965:10:51;4231:28:45;965:10:51;4248:2:45;4252:6;4231:9;:28::i;4345:149::-;-1:-1:-1;;;;;4460:18:45;;;4434:7;4460:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4345:149::o;2335:198:37:-;1355:13;:11;:13::i;:::-;-1:-1:-1;;;;;2423:22:37;::::1;2415:73;;;::::0;-1:-1:-1;;;2415:73:37;;8054:2:104;2415:73:37::1;::::0;::::1;8036:21:104::0;8093:2;8073:18;;;8066:30;8132:34;8112:18;;;8105:62;-1:-1:-1;;;8183:18:104;;;8176:36;8229:19;;2415:73:37::1;7852:402:104::0;2415:73:37::1;2498:28;2517:8;2498:18;:28::i;2012:190:97:-:0;1355:13:37;:11;:13::i;:::-;-1:-1:-1;;;;;2083:23:97;::::1;2079:49;;2115:13;;-1:-1:-1::0;;;2115:13:97::1;;;;;;;;;;;2079:49;2138:6;:18:::0;;-1:-1:-1;;;;;;2138:18:97::1;-1:-1:-1::0;;;;;2138:18:97;::::1;::::0;;::::1;::::0;;;2171:24:::1;::::0;::::1;::::0;-1:-1:-1;;2171:24:97::1;2012:190:::0;:::o;8878:535:45:-;-1:-1:-1;;;;;8961:21:45;;8953:65;;;;-1:-1:-1;;;8953:65:45;;8461:2:104;8953:65:45;;;8443:21:104;8500:2;8480:18;;;8473:30;8539:33;8519:18;;;8512:61;8590:18;;8953:65:45;8259:355:104;8953:65:45;9105:6;9089:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;9257:18:45;;;;;;:9;:18;;;;;;;;:28;;;;;;9310:37;3163:25:104;;;9310:37:45;;3136:18:104;9310:37:45;;;;;;;9358:48;9386:1;9390:7;9399:6;9358:19;:48::i;2139:147::-;5374:13:42;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:42;;;;;;;:::i;:::-;2241:38:45::1;2264:5;2271:7;2241:22;:38::i;1024:95:37:-:0;5374:13:42;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:42;;;;;;;:::i;:::-;1086:26:37::1;:24;:26::i;2290:67:43:-:0;5374:13:42;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:42;;;;;;;:::i;2687:187:37:-;2779:6;;;-1:-1:-1;;;;;2795:17:37;;;-1:-1:-1;;;;;;2795:17:37;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;10815:340:45:-;-1:-1:-1;;;;;10916:19:45;;10908:68;;;;-1:-1:-1;;;10908:68:45;;9233:2:104;10908:68:45;;;9215:21:104;9272:2;9252:18;;;9245:30;9311:34;9291:18;;;9284:62;-1:-1:-1;;;9362:18:104;;;9355:34;9406:19;;10908:68:45;9031:400:104;10908:68:45;-1:-1:-1;;;;;10994:21:45;;10986:68;;;;-1:-1:-1;;;10986:68:45;;9638:2:104;10986:68:45;;;9620:21:104;9677:2;9657:18;;;9650:30;9716:34;9696:18;;;9689:62;-1:-1:-1;;;9767:18:104;;;9760:32;9809:19;;10986:68:45;9436:398:104;10986:68:45;-1:-1:-1;;;;;11065:18:45;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11116:32;;3163:25:104;;;11116:32:45;;3136:18:104;11116:32:45;;;;;;;10815:340;;;:::o;11436:411::-;11536:24;11563:25;11573:5;11580:7;11563:9;:25::i;:::-;11536:52;;-1:-1:-1;;11602:16:45;:37;11598:243;;11683:6;11663:16;:26;;11655:68;;;;-1:-1:-1;;;11655:68:45;;10041:2:104;11655:68:45;;;10023:21:104;10080:2;10060:18;;;10053:30;10119:31;10099:18;;;10092:59;10168:18;;11655:68:45;9839:353:104;11655:68:45;11765:51;11774:5;11781:7;11809:6;11790:16;:25;11765:8;:51::i;7814:788::-;-1:-1:-1;;;;;7910:18:45;;7902:68;;;;-1:-1:-1;;;7902:68:45;;10399:2:104;7902:68:45;;;10381:21:104;10438:2;10418:18;;;10411:30;10477:34;10457:18;;;10450:62;-1:-1:-1;;;10528:18:104;;;10521:35;10573:19;;7902:68:45;10197:401:104;7902:68:45;-1:-1:-1;;;;;7988:16:45;;7980:64;;;;-1:-1:-1;;;7980:64:45;;10805:2:104;7980:64:45;;;10787:21:104;10844:2;10824:18;;;10817:30;10883:34;10863:18;;;10856:62;-1:-1:-1;;;10934:18:104;;;10927:33;10977:19;;7980:64:45;10603:399:104;7980:64:45;-1:-1:-1;;;;;8126:15:45;;8104:19;8126:15;;;:9;:15;;;;;;8159:21;;;;8151:72;;;;-1:-1:-1;;;8151:72:45;;11209:2:104;8151:72:45;;;11191:21:104;11248:2;11228:18;;;11221:30;11287:34;11267:18;;;11260:62;-1:-1:-1;;;11338:18:104;;;11331:36;11384:19;;8151:72:45;11007:402:104;8151:72:45;-1:-1:-1;;;;;8257:15:45;;;;;;;:9;:15;;;;;;8275:20;;;8257:38;;8472:13;;;;;;;;;;:23;;;;;;8521:26;;;;;;8289:6;3163:25:104;;3151:2;3136:18;;3017:177;8521:26:45;;;;;;;;8558:37;8578:4;8584:2;8588:6;8558:19;:37::i;1248:66:97:-;1355:13:37;:11;:13::i;2841:944:40:-;839:66;3257:59;;;3253:526;;;3332:37;3351:17;3332:18;:37::i;:::-;2841:944;;;:::o;3253:526::-;3433:17;-1:-1:-1;;;;;3404:61:40;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3404:63:40;;;;;;;;-1:-1:-1;;3404:63:40;;;;;;;;;;;;:::i;:::-;;;3400:302;;3631:56;;-1:-1:-1;;;3631:56:40;;11805:2:104;3631:56:40;;;11787:21:104;11844:2;11824:18;;;11817:30;11883:34;11863:18;;;11856:62;-1:-1:-1;;;11934:18:104;;;11927:44;11988:19;;3631:56:40;11603:410:104;3400:302:40;-1:-1:-1;;;;;;;;;;;3517:28:40;;3509:82;;;;-1:-1:-1;;;3509:82:40;;12220:2:104;3509:82:40;;;12202:21:104;12259:2;12239:18;;;12232:30;12298:34;12278:18;;;12271:62;-1:-1:-1;;;12349:18:104;;;12342:39;12398:19;;3509:82:40;12018:405:104;3509:82:40;3468:138;3715:53;3733:17;3752:4;3758:9;3715:17;:53::i;1620:130:37:-;1534:6;;-1:-1:-1;;;;;1534:6:37;965:10:51;1683:23:37;1675:68;;;;-1:-1:-1;;;1675:68:37;;12630:2:104;1675:68:37;;;12612:21:104;;;12649:18;;;12642:30;12708:34;12688:18;;;12681:62;12760:18;;1675:68:37;12428:356:104;9733:659:45;-1:-1:-1;;;;;9816:21:45;;9808:67;;;;-1:-1:-1;;;9808:67:45;;12991:2:104;9808:67:45;;;12973:21:104;13030:2;13010:18;;;13003:30;13069:34;13049:18;;;13042:62;-1:-1:-1;;;13120:18:104;;;13113:31;13161:19;;9808:67:45;12789:397:104;9808:67:45;-1:-1:-1;;;;;9971:18:45;;9946:22;9971:18;;;:9;:18;;;;;;10007:24;;;;9999:71;;;;-1:-1:-1;;;9999:71:45;;13393:2:104;9999:71:45;;;13375:21:104;13432:2;13412:18;;;13405:30;13471:34;13451:18;;;13444:62;-1:-1:-1;;;13522:18:104;;;13515:32;13564:19;;9999:71:45;13191:398:104;9999:71:45;-1:-1:-1;;;;;10104:18:45;;;;;;:9;:18;;;;;;;;10125:23;;;10104:44;;10241:12;:22;;;;;;;10289:37;3163:25:104;;;10104:18:45;;;10289:37;;3136:18:104;10289:37:45;;;;;;;10337:48;10357:7;10374:1;10378:6;1506:290:97;1688:45;1712:9;;1723:2;1727:5;1688:23;:45::i;:::-;1676:9;:57;1764:5;:7;;;:5;:7;;;:::i;:::-;;;;-1:-1:-1;1748:41:97;;;-1:-1:-1;;;;;13954:32:104;;;13936:51;;14023:32;;14018:2;14003:18;;13996:60;14072:18;;;14065:34;;;1748:41:97;;13924:2:104;13909:18;1748:41:97;;;;;;;1506:290;;;:::o;2292:159:45:-;5374:13:42;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:42;;;;;;;:::i;:::-;2404:5:45::1;:13;2412:5:::0;2404;:13:::1;:::i;:::-;-1:-1:-1::0;2427:7:45::1;:17;2437:7:::0;2427;:17:::1;:::i;1125:111:37:-:0;5374:13:42;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:42;;;;;;;:::i;:::-;1197:32:37::1;965:10:51::0;1197:18:37::1;:32::i;1720:281:40:-:0;-1:-1:-1;;;;;1713:19:50;;;1793:106:40;;;;-1:-1:-1;;;1793:106:40;;16436:2:104;1793:106:40;;;16418:21:104;16475:2;16455:18;;;16448:30;16514:34;16494:18;;;16487:62;-1:-1:-1;;;16565:18:104;;;16558:43;16618:19;;1793:106:40;16234:409:104;1793:106:40;-1:-1:-1;;;;;;;;;;;1909:85:40;;-1:-1:-1;;;;;;1909:85:40;-1:-1:-1;;;;;1909:85:40;;;;;;;;;;1720:281::o;2393:276::-;2501:29;2512:17;2501:10;:29::i;:::-;2558:1;2544:4;:11;:15;:28;;;;2563:9;2544:28;2540:123;;;2588:64;2628:17;2647:4;2588:39;:64::i;246:254:87:-;329:12;368:43;392:4;398;404:5;375:35;;;;;;;;;16833:19:104;;;16890:2;16886:15;;;;-1:-1:-1;;16882:53:104;16877:2;16868:12;;16861:75;16961:2;16952:12;;16945:28;16998:2;16989:12;;16648:359;375:35:87;;;;-1:-1:-1;;375:35:87;;;;;;;;;;368:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;360:133:87;;246:254;-1:-1:-1;;;;246:254:87:o;2107:152:40:-;2173:37;2192:17;2173:18;:37::i;:::-;2225:27;;-1:-1:-1;;;;;2225:27:40;;;;;;;;2107:152;:::o;6685:198:50:-;6768:12;6799:77;6820:6;6828:4;6799:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6792:84;6685:198;-1:-1:-1;;;6685:198:50:o;7069:325::-;7210:12;7235;7249:23;7276:6;-1:-1:-1;;;;;7276:19:50;7296:4;7276:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7234:67;;;;7318:69;7345:6;7353:7;7362:10;7374:12;7318:26;:69::i;:::-;7311:76;7069:325;-1:-1:-1;;;;;;7069:325:50:o;7682:628::-;7862:12;7890:7;7886:418;;;7917:10;:17;7938:1;7917:22;7913:286;;-1:-1:-1;;;;;1713:19:50;;;8124:60;;;;-1:-1:-1;;;8124:60:50;;17520:2:104;8124:60:50;;;17502:21:104;17559:2;17539:18;;;17532:30;17598:31;17578:18;;;17571:59;17647:18;;8124:60:50;17318:353:104;8124:60:50;-1:-1:-1;8219:10:50;8212:17;;7886:418;8260:33;8268:10;8280:12;8260:7;:33::i;:::-;7682:628;;;;;;:::o;8832:540::-;8991:17;;:21;8987:379;;9219:10;9213:17;9275:15;9262:10;9258:2;9254:19;9247:44;8987:379;9342:12;9335:20;;-1:-1:-1;;;9335:20:50;;;;;;;;:::i;14:173:104:-;82:20;;-1:-1:-1;;;;;131:31:104;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:300::-;260:6;268;321:2;309:9;300:7;296:23;292:32;289:52;;;337:1;334;327:12;289:52;360:29;379:9;360:29;:::i;:::-;350:39;458:2;443:18;;;;430:32;;-1:-1:-1;;;192:300:104:o;497:418::-;646:2;635:9;628:21;609:4;678:6;672:13;721:6;716:2;705:9;701:18;694:34;780:6;775:2;767:6;763:15;758:2;747:9;743:18;737:50;836:1;831:2;822:6;811:9;807:22;803:31;796:42;906:2;899;895:7;890:2;882:6;878:15;874:29;863:9;859:45;855:54;847:62;;;497:418;;;;:::o;1128:127::-;1189:10;1184:3;1180:20;1177:1;1170:31;1220:4;1217:1;1210:15;1244:4;1241:1;1234:15;1260:716;1325:5;1357:1;1381:18;1373:6;1370:30;1367:56;;;1403:18;;:::i;:::-;-1:-1:-1;1558:2:104;1552:9;-1:-1:-1;;1471:2:104;1450:15;;1446:29;;1616:2;1604:15;1600:29;1588:42;;1681:22;;;1660:18;1645:34;;1642:62;1639:88;;;1707:18;;:::i;:::-;1743:2;1736:22;1791;;;1776:6;-1:-1:-1;1776:6:104;1828:16;;;1825:25;-1:-1:-1;1822:45:104;;;1863:1;1860;1853:12;1822:45;1913:6;1908:3;1901:4;1893:6;1889:17;1876:44;1968:1;1961:4;1952:6;1944;1940:19;1936:30;1929:41;;1260:716;;;;;:::o;1981:222::-;2024:5;2077:3;2070:4;2062:6;2058:17;2054:27;2044:55;;2095:1;2092;2085:12;2044:55;2117:80;2193:3;2184:6;2171:20;2164:4;2156:6;2152:17;2117:80;:::i;2208:612::-;2305:6;2313;2321;2374:2;2362:9;2353:7;2349:23;2345:32;2342:52;;;2390:1;2387;2380:12;2342:52;2430:9;2417:23;2463:18;2455:6;2452:30;2449:50;;;2495:1;2492;2485:12;2449:50;2518;2560:7;2551:6;2540:9;2536:22;2518:50;:::i;:::-;2508:60;;;2621:2;2610:9;2606:18;2593:32;2650:18;2640:8;2637:32;2634:52;;;2682:1;2679;2672:12;2634:52;2705;2749:7;2738:8;2727:9;2723:24;2705:52;:::i;:::-;2695:62;;;2776:38;2810:2;2799:9;2795:18;2776:38;:::i;:::-;2766:48;;2208:612;;;;;:::o;3199:374::-;3276:6;3284;3292;3345:2;3333:9;3324:7;3320:23;3316:32;3313:52;;;3361:1;3358;3351:12;3313:52;3384:29;3403:9;3384:29;:::i;:::-;3374:39;;3432:38;3466:2;3455:9;3451:18;3432:38;:::i;:::-;3199:374;;3422:48;;-1:-1:-1;;;3539:2:104;3524:18;;;;3511:32;;3199:374::o;3767:186::-;3826:6;3879:2;3867:9;3858:7;3854:23;3850:32;3847:52;;;3895:1;3892;3885:12;3847:52;3918:29;3937:9;3918:29;:::i;3958:524::-;4035:6;4043;4096:2;4084:9;4075:7;4071:23;4067:32;4064:52;;;4112:1;4109;4102:12;4064:52;4135:29;4154:9;4135:29;:::i;:::-;4125:39;;4215:2;4204:9;4200:18;4187:32;4242:18;4234:6;4231:30;4228:50;;;4274:1;4271;4264:12;4228:50;4297:22;;4350:4;4342:13;;4338:27;-1:-1:-1;4328:55:104;;4379:1;4376;4369:12;4328:55;4402:74;4468:7;4463:2;4450:16;4445:2;4441;4437:11;4402:74;:::i;:::-;4392:84;;;3958:524;;;;;:::o;4669:260::-;4737:6;4745;4798:2;4786:9;4777:7;4773:23;4769:32;4766:52;;;4814:1;4811;4804:12;4766:52;4837:29;4856:9;4837:29;:::i;:::-;4827:39;;4885:38;4919:2;4908:9;4904:18;4885:38;:::i;:::-;4875:48;;4669:260;;;;;:::o;4934:380::-;5013:1;5009:12;;;;5056;;;5077:61;;5131:4;5123:6;5119:17;5109:27;;5077:61;5184:2;5176:6;5173:14;5153:18;5150:38;5147:161;;5230:10;5225:3;5221:20;5218:1;5211:31;5265:4;5262:1;5255:15;5293:4;5290:1;5283:15;5147:161;;4934:380;;;:::o;5933:408::-;6135:2;6117:21;;;6174:2;6154:18;;;6147:30;6213:34;6208:2;6193:18;;6186:62;-1:-1:-1;;;6279:2:104;6264:18;;6257:42;6331:3;6316:19;;5933:408::o;6346:::-;6548:2;6530:21;;;6587:2;6567:18;;;6560:30;6626:34;6621:2;6606:18;;6599:62;-1:-1:-1;;;6692:2:104;6677:18;;6670:42;6744:3;6729:19;;6346:408::o;6759:127::-;6820:10;6815:3;6811:20;6808:1;6801:31;6851:4;6848:1;6841:15;6875:4;6872:1;6865:15;6891:125;6956:9;;;6977:10;;;6974:36;;;6990:18;;:::i;8619:407::-;8821:2;8803:21;;;8860:2;8840:18;;;8833:30;8899:34;8894:2;8879:18;;8872:62;-1:-1:-1;;;8965:2:104;8950:18;;8943:41;9016:3;9001:19;;8619:407::o;11414:184::-;11484:6;11537:2;11525:9;11516:7;11512:23;11508:32;11505:52;;;11553:1;11550;11543:12;11505:52;-1:-1:-1;11576:16:104;;11414:184;-1:-1:-1;11414:184:104:o;13594:135::-;13633:3;13654:17;;;13651:43;;13674:18;;:::i;:::-;-1:-1:-1;13721:1:104;13710:13;;13594:135::o;14236:518::-;14338:2;14333:3;14330:11;14327:421;;;14374:5;14371:1;14364:16;14418:4;14415:1;14405:18;14488:2;14476:10;14472:19;14469:1;14465:27;14459:4;14455:38;14524:4;14512:10;14509:20;14506:47;;;-1:-1:-1;14547:4:104;14506:47;14602:2;14597:3;14593:12;14590:1;14586:20;14580:4;14576:31;14566:41;;14657:81;14675:2;14668:5;14665:13;14657:81;;;14734:1;14720:16;;14701:1;14690:13;14657:81;;;14661:3;;14236:518;;;:::o;14930:1299::-;15056:3;15050:10;15083:18;15075:6;15072:30;15069:56;;;15105:18;;:::i;:::-;15134:97;15224:6;15184:38;15216:4;15210:11;15184:38;:::i;:::-;15178:4;15134:97;:::i;:::-;15280:4;15311:2;15300:14;;15328:1;15323:649;;;;16016:1;16033:6;16030:89;;;-1:-1:-1;16085:19:104;;;16079:26;16030:89;-1:-1:-1;;14887:1:104;14883:11;;;14879:24;14875:29;14865:40;14911:1;14907:11;;;14862:57;16132:81;;15293:930;;15323:649;14183:1;14176:14;;;14220:4;14207:18;;-1:-1:-1;;15359:20:104;;;15477:222;15491:7;15488:1;15485:14;15477:222;;;15573:19;;;15567:26;15552:42;;15680:4;15665:20;;;;15633:1;15621:14;;;;15507:12;15477:222;;;15481:3;15727:6;15718:7;15715:19;15712:201;;;15788:19;;;15782:26;-1:-1:-1;;15871:1:104;15867:14;;;15883:3;15863:24;15859:37;15855:42;15840:58;15825:74;;15712:201;-1:-1:-1;;;;15959:1:104;15943:14;;;15939:22;15926:36;;-1:-1:-1;14930:1299:104:o;17012:301::-;17141:3;17179:6;17173:13;17225:6;17218:4;17210:6;17206:17;17201:3;17195:37;17287:1;17251:16;;17276:13;;;-1:-1:-1;17251:16:104;17012:301;-1:-1:-1;17012:301:104:o",
336
- "linkReferences": {},
337
- "immutableReferences": {
338
- "43171": [
339
- { "start": 1927, "length": 32 },
340
- { "start": 1991, "length": 32 },
341
- { "start": 2238, "length": 32 },
342
- { "start": 2302, "length": 32 },
343
- { "start": 2443, "length": 32 }
344
- ]
345
- }
346
- },
347
- "methodIdentifiers": {
348
- "allowance(address,address)": "dd62ed3e",
349
- "approve(address,uint256)": "095ea7b3",
350
- "balanceOf(address)": "70a08231",
351
- "burn(address,uint256)": "9dc29fac",
352
- "decimals()": "313ce567",
353
- "decreaseAllowance(address,uint256)": "a457c2d7",
354
- "hashChain()": "c841eccb",
355
- "increaseAllowance(address,uint256)": "39509351",
356
- "index()": "2986c0e5",
357
- "initialize(string,string,address)": "077f224a",
358
- "mint(address,uint256)": "40c10f19",
359
- "minter()": "07546172",
360
- "name()": "06fdde03",
361
- "owner()": "8da5cb5b",
362
- "proxiableUUID()": "52d1902d",
363
- "renounceOwnership()": "715018a6",
364
- "setMinter(address)": "fca3b5aa",
365
- "setVerifier(address)": "5437988d",
366
- "symbol()": "95d89b41",
367
- "teleport(address,uint256)": "04ddf0a5",
368
- "totalSupply()": "18160ddd",
369
- "transfer(address,uint256)": "a9059cbb",
370
- "transferFrom(address,address,uint256)": "23b872dd",
371
- "transferOwnership(address)": "f2fde38b",
372
- "upgradeTo(address)": "3659cfe6",
373
- "upgradeToAndCall(address,bytes)": "4f1ef286",
374
- "verifier()": "2b7ac3f3"
375
- },
376
- "rawMetadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"OnlyMinter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyVerifier\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"IndexedTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newMinter\",\"type\":\"address\"}],\"name\":\"MinterUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Teleport\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"VerifierUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hashChain\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"index\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newMinter\",\"type\":\"address\"}],\"name\":\"setMinter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"setVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"teleport\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/zERC20.sol\":\"zERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/lz-evm-messagelib-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/\",\":@layerzerolabs/lz-evm-oapp-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/oapp/\",\":@layerzerolabs/lz-evm-protocol-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":LayerZero-v2/=lib/LayerZero-v2/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":poseidon-solidity/=lib/poseidon-solidity/\",\":solidity-bytes-utils/=lib/solidity-bytes-utils/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c\",\"dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xa9311aeb22f459e57d4dac77ee76cf43fb28ad3215278456211b5852b0e9e970\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebdf0d3e42bd25223e45a213311d6d7e177d56a2c541a78b58c0c9d10bbdfbf9\",\"dweb:/ipfs/QmfMyehJ6pxHrh7yL4793J6i7dofXnS2zH3cTtC8JdQMV9\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol\":{\"keccak256\":\"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f\",\"dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol\":{\"keccak256\":\"0x605434219ebbe4653f703640f06969faa5a1d78f0bfef878e5ddbb1ca369ceeb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c9c634f99dd02d73ce7498b03a6305e251c05eeebb71457306561c1fab0fa7d\",\"dweb:/ipfs/QmbYRBbZHy8YoaQKXdPryiL3CSS7uUaRfRYi1TUj9cTqJQ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"src/interfaces/IzERC20.sol\":{\"keccak256\":\"0x25188a940e154469405a517555941d20c5334aa4f4801daaf706d1dfcf198363\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21ba8aaef2c873eed8958c378bb83d8d55281b354d7ce18436f914e2ffe0558a\",\"dweb:/ipfs/QmaukHu43VnQodh8mPxzJ9JgTcASfbACJBPVi5szb39xtY\"]},\"src/utils/ShaHashChainLib.sol\":{\"keccak256\":\"0x17b60b9552c87f53715fa1650284c78974d556f9e7c58ec274882e1ec5b5ecd1\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://48b5131d3fd2c50a95c506a3f33e051075c2be5d079eeb53ada45de76258e275\",\"dweb:/ipfs/QmPVYDcyG8EoTYmYDysLB6iRVhSFVnwes5Bto5svdV6UWd\"]},\"src/zERC20.sol\":{\"keccak256\":\"0x7c65eb5339a139821f65b92471db156b1bd21957ff43ee92e6d4c6d52bbb39d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f83f6a0cafaae6ea2355d08696ba5bf99b8b657b0d28d5603b7b843911e17bf\",\"dweb:/ipfs/QmTcFXQLC6DCaT26ms2DdVqx66ZYzyR6nmX9r66BBa3urx\"]}},\"version\":1}",
377
- "metadata": {
378
- "compiler": { "version": "0.8.30+commit.73712a01" },
379
- "language": "Solidity",
380
- "output": {
381
- "abi": [
382
- { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" },
383
- { "inputs": [], "type": "error", "name": "OnlyMinter" },
384
- { "inputs": [], "type": "error", "name": "OnlyVerifier" },
385
- { "inputs": [], "type": "error", "name": "ZeroAddress" },
386
- {
387
- "inputs": [
388
- {
389
- "internalType": "address",
390
- "name": "previousAdmin",
391
- "type": "address",
392
- "indexed": false
393
- },
394
- { "internalType": "address", "name": "newAdmin", "type": "address", "indexed": false }
395
- ],
396
- "type": "event",
397
- "name": "AdminChanged",
398
- "anonymous": false
399
- },
400
- {
401
- "inputs": [
402
- { "internalType": "address", "name": "owner", "type": "address", "indexed": true },
403
- { "internalType": "address", "name": "spender", "type": "address", "indexed": true },
404
- { "internalType": "uint256", "name": "value", "type": "uint256", "indexed": false }
405
- ],
406
- "type": "event",
407
- "name": "Approval",
408
- "anonymous": false
409
- },
410
- {
411
- "inputs": [
412
- { "internalType": "address", "name": "beacon", "type": "address", "indexed": true }
413
- ],
414
- "type": "event",
415
- "name": "BeaconUpgraded",
416
- "anonymous": false
417
- },
418
- {
419
- "inputs": [
420
- { "internalType": "uint256", "name": "index", "type": "uint256", "indexed": true },
421
- { "internalType": "address", "name": "from", "type": "address", "indexed": false },
422
- { "internalType": "address", "name": "to", "type": "address", "indexed": false },
423
- { "internalType": "uint256", "name": "value", "type": "uint256", "indexed": false }
424
- ],
425
- "type": "event",
426
- "name": "IndexedTransfer",
427
- "anonymous": false
428
- },
429
- {
430
- "inputs": [
431
- { "internalType": "uint8", "name": "version", "type": "uint8", "indexed": false }
432
- ],
433
- "type": "event",
434
- "name": "Initialized",
435
- "anonymous": false
436
- },
437
- {
438
- "inputs": [
439
- { "internalType": "address", "name": "newMinter", "type": "address", "indexed": true }
440
- ],
441
- "type": "event",
442
- "name": "MinterUpdated",
443
- "anonymous": false
444
- },
445
- {
446
- "inputs": [
447
- {
448
- "internalType": "address",
449
- "name": "previousOwner",
450
- "type": "address",
451
- "indexed": true
452
- },
453
- { "internalType": "address", "name": "newOwner", "type": "address", "indexed": true }
454
- ],
455
- "type": "event",
456
- "name": "OwnershipTransferred",
457
- "anonymous": false
458
- },
459
- {
460
- "inputs": [
461
- { "internalType": "address", "name": "to", "type": "address", "indexed": true },
462
- { "internalType": "uint256", "name": "value", "type": "uint256", "indexed": false }
463
- ],
464
- "type": "event",
465
- "name": "Teleport",
466
- "anonymous": false
467
- },
468
- {
469
- "inputs": [
470
- { "internalType": "address", "name": "from", "type": "address", "indexed": true },
471
- { "internalType": "address", "name": "to", "type": "address", "indexed": true },
472
- { "internalType": "uint256", "name": "value", "type": "uint256", "indexed": false }
473
- ],
474
- "type": "event",
475
- "name": "Transfer",
476
- "anonymous": false
477
- },
478
- {
479
- "inputs": [
480
- {
481
- "internalType": "address",
482
- "name": "implementation",
483
- "type": "address",
484
- "indexed": true
485
- }
486
- ],
487
- "type": "event",
488
- "name": "Upgraded",
489
- "anonymous": false
490
- },
491
- {
492
- "inputs": [
493
- { "internalType": "address", "name": "newVerifier", "type": "address", "indexed": true }
494
- ],
495
- "type": "event",
496
- "name": "VerifierUpdated",
497
- "anonymous": false
498
- },
499
- {
500
- "inputs": [
501
- { "internalType": "address", "name": "owner", "type": "address" },
502
- { "internalType": "address", "name": "spender", "type": "address" }
503
- ],
504
- "stateMutability": "view",
505
- "type": "function",
506
- "name": "allowance",
507
- "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }]
508
- },
509
- {
510
- "inputs": [
511
- { "internalType": "address", "name": "spender", "type": "address" },
512
- { "internalType": "uint256", "name": "amount", "type": "uint256" }
513
- ],
514
- "stateMutability": "nonpayable",
515
- "type": "function",
516
- "name": "approve",
517
- "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }]
518
- },
519
- {
520
- "inputs": [{ "internalType": "address", "name": "account", "type": "address" }],
521
- "stateMutability": "view",
522
- "type": "function",
523
- "name": "balanceOf",
524
- "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }]
525
- },
526
- {
527
- "inputs": [
528
- { "internalType": "address", "name": "from", "type": "address" },
529
- { "internalType": "uint256", "name": "value", "type": "uint256" }
530
- ],
531
- "stateMutability": "nonpayable",
532
- "type": "function",
533
- "name": "burn"
534
- },
535
- {
536
- "inputs": [],
537
- "stateMutability": "view",
538
- "type": "function",
539
- "name": "decimals",
540
- "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }]
541
- },
542
- {
543
- "inputs": [
544
- { "internalType": "address", "name": "spender", "type": "address" },
545
- { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" }
546
- ],
547
- "stateMutability": "nonpayable",
548
- "type": "function",
549
- "name": "decreaseAllowance",
550
- "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }]
551
- },
552
- {
553
- "inputs": [],
554
- "stateMutability": "view",
555
- "type": "function",
556
- "name": "hashChain",
557
- "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }]
558
- },
559
- {
560
- "inputs": [
561
- { "internalType": "address", "name": "spender", "type": "address" },
562
- { "internalType": "uint256", "name": "addedValue", "type": "uint256" }
563
- ],
564
- "stateMutability": "nonpayable",
565
- "type": "function",
566
- "name": "increaseAllowance",
567
- "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }]
568
- },
569
- {
570
- "inputs": [],
571
- "stateMutability": "view",
572
- "type": "function",
573
- "name": "index",
574
- "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }]
575
- },
576
- {
577
- "inputs": [
578
- { "internalType": "string", "name": "name_", "type": "string" },
579
- { "internalType": "string", "name": "symbol_", "type": "string" },
580
- { "internalType": "address", "name": "initialOwner", "type": "address" }
581
- ],
582
- "stateMutability": "nonpayable",
583
- "type": "function",
584
- "name": "initialize"
585
- },
586
- {
587
- "inputs": [
588
- { "internalType": "address", "name": "to", "type": "address" },
589
- { "internalType": "uint256", "name": "value", "type": "uint256" }
590
- ],
591
- "stateMutability": "nonpayable",
592
- "type": "function",
593
- "name": "mint"
594
- },
595
- {
596
- "inputs": [],
597
- "stateMutability": "view",
598
- "type": "function",
599
- "name": "minter",
600
- "outputs": [{ "internalType": "address", "name": "", "type": "address" }]
601
- },
602
- {
603
- "inputs": [],
604
- "stateMutability": "view",
605
- "type": "function",
606
- "name": "name",
607
- "outputs": [{ "internalType": "string", "name": "", "type": "string" }]
608
- },
609
- {
610
- "inputs": [],
611
- "stateMutability": "view",
612
- "type": "function",
613
- "name": "owner",
614
- "outputs": [{ "internalType": "address", "name": "", "type": "address" }]
615
- },
616
- {
617
- "inputs": [],
618
- "stateMutability": "view",
619
- "type": "function",
620
- "name": "proxiableUUID",
621
- "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }]
622
- },
623
- {
624
- "inputs": [],
625
- "stateMutability": "nonpayable",
626
- "type": "function",
627
- "name": "renounceOwnership"
628
- },
629
- {
630
- "inputs": [{ "internalType": "address", "name": "newMinter", "type": "address" }],
631
- "stateMutability": "nonpayable",
632
- "type": "function",
633
- "name": "setMinter"
634
- },
635
- {
636
- "inputs": [{ "internalType": "address", "name": "newVerifier", "type": "address" }],
637
- "stateMutability": "nonpayable",
638
- "type": "function",
639
- "name": "setVerifier"
640
- },
641
- {
642
- "inputs": [],
643
- "stateMutability": "view",
644
- "type": "function",
645
- "name": "symbol",
646
- "outputs": [{ "internalType": "string", "name": "", "type": "string" }]
647
- },
648
- {
649
- "inputs": [
650
- { "internalType": "address", "name": "to", "type": "address" },
651
- { "internalType": "uint256", "name": "value", "type": "uint256" }
652
- ],
653
- "stateMutability": "nonpayable",
654
- "type": "function",
655
- "name": "teleport"
656
- },
657
- {
658
- "inputs": [],
659
- "stateMutability": "view",
660
- "type": "function",
661
- "name": "totalSupply",
662
- "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }]
663
- },
664
- {
665
- "inputs": [
666
- { "internalType": "address", "name": "to", "type": "address" },
667
- { "internalType": "uint256", "name": "amount", "type": "uint256" }
668
- ],
669
- "stateMutability": "nonpayable",
670
- "type": "function",
671
- "name": "transfer",
672
- "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }]
673
- },
674
- {
675
- "inputs": [
676
- { "internalType": "address", "name": "from", "type": "address" },
677
- { "internalType": "address", "name": "to", "type": "address" },
678
- { "internalType": "uint256", "name": "amount", "type": "uint256" }
679
- ],
680
- "stateMutability": "nonpayable",
681
- "type": "function",
682
- "name": "transferFrom",
683
- "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }]
684
- },
685
- {
686
- "inputs": [{ "internalType": "address", "name": "newOwner", "type": "address" }],
687
- "stateMutability": "nonpayable",
688
- "type": "function",
689
- "name": "transferOwnership"
690
- },
691
- {
692
- "inputs": [{ "internalType": "address", "name": "newImplementation", "type": "address" }],
693
- "stateMutability": "nonpayable",
694
- "type": "function",
695
- "name": "upgradeTo"
696
- },
697
- {
698
- "inputs": [
699
- { "internalType": "address", "name": "newImplementation", "type": "address" },
700
- { "internalType": "bytes", "name": "data", "type": "bytes" }
701
- ],
702
- "stateMutability": "payable",
703
- "type": "function",
704
- "name": "upgradeToAndCall"
705
- },
706
- {
707
- "inputs": [],
708
- "stateMutability": "view",
709
- "type": "function",
710
- "name": "verifier",
711
- "outputs": [{ "internalType": "address", "name": "", "type": "address" }]
712
- }
713
- ],
714
- "devdoc": {
715
- "kind": "dev",
716
- "methods": {
717
- "allowance(address,address)": { "details": "See {IERC20-allowance}." },
718
- "approve(address,uint256)": {
719
- "details": "See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."
720
- },
721
- "balanceOf(address)": { "details": "See {IERC20-balanceOf}." },
722
- "decimals()": {
723
- "details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."
724
- },
725
- "decreaseAllowance(address,uint256)": {
726
- "details": "Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."
727
- },
728
- "increaseAllowance(address,uint256)": {
729
- "details": "Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."
730
- },
731
- "name()": { "details": "Returns the name of the token." },
732
- "owner()": { "details": "Returns the address of the current owner." },
733
- "proxiableUUID()": {
734
- "details": "Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."
735
- },
736
- "renounceOwnership()": {
737
- "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."
738
- },
739
- "symbol()": {
740
- "details": "Returns the symbol of the token, usually a shorter version of the name."
741
- },
742
- "totalSupply()": { "details": "See {IERC20-totalSupply}." },
743
- "transfer(address,uint256)": {
744
- "details": "See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."
745
- },
746
- "transferFrom(address,address,uint256)": {
747
- "details": "See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."
748
- },
749
- "transferOwnership(address)": {
750
- "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
751
- },
752
- "upgradeTo(address)": {
753
- "custom:oz-upgrades-unsafe-allow-reachable": "delegatecall",
754
- "details": "Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."
755
- },
756
- "upgradeToAndCall(address,bytes)": {
757
- "custom:oz-upgrades-unsafe-allow-reachable": "delegatecall",
758
- "details": "Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."
759
- }
760
- },
761
- "version": 1
762
- },
763
- "userdoc": { "kind": "user", "methods": {}, "version": 1 }
764
- },
765
- "settings": {
766
- "remappings": [
767
- "@layerzerolabs/lz-evm-messagelib-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/",
768
- "@layerzerolabs/lz-evm-oapp-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/oapp/",
769
- "@layerzerolabs/lz-evm-protocol-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/",
770
- "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
771
- "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
772
- "LayerZero-v2/=lib/LayerZero-v2/",
773
- "forge-std/=lib/forge-std/src/",
774
- "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",
775
- "openzeppelin-contracts/=lib/openzeppelin-contracts/",
776
- "openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/",
777
- "poseidon-solidity/=lib/poseidon-solidity/",
778
- "solidity-bytes-utils/=lib/solidity-bytes-utils/"
779
- ],
780
- "optimizer": { "enabled": true, "runs": 200 },
781
- "metadata": { "bytecodeHash": "ipfs" },
782
- "compilationTarget": { "src/zERC20.sol": "zERC20" },
783
- "evmVersion": "prague",
784
- "libraries": {}
785
- },
786
- "sources": {
787
- "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol": {
788
- "keccak256": "0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e",
789
- "urls": [
790
- "bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c",
791
- "dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16"
792
- ],
793
- "license": "MIT"
794
- },
795
- "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol": {
796
- "keccak256": "0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b",
797
- "urls": [
798
- "bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0",
799
- "dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9"
800
- ],
801
- "license": "MIT"
802
- },
803
- "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol": {
804
- "keccak256": "0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f",
805
- "urls": [
806
- "bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053",
807
- "dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79"
808
- ],
809
- "license": "MIT"
810
- },
811
- "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol": {
812
- "keccak256": "0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8",
813
- "urls": [
814
- "bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0",
815
- "dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9"
816
- ],
817
- "license": "MIT"
818
- },
819
- "lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol": {
820
- "keccak256": "0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908",
821
- "urls": [
822
- "bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1",
823
- "dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ"
824
- ],
825
- "license": "MIT"
826
- },
827
- "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol": {
828
- "keccak256": "0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794",
829
- "urls": [
830
- "bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e",
831
- "dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"
832
- ],
833
- "license": "MIT"
834
- },
835
- "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol": {
836
- "keccak256": "0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33",
837
- "urls": [
838
- "bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f",
839
- "dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99"
840
- ],
841
- "license": "MIT"
842
- },
843
- "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol": {
844
- "keccak256": "0xa9311aeb22f459e57d4dac77ee76cf43fb28ad3215278456211b5852b0e9e970",
845
- "urls": [
846
- "bzz-raw://ebdf0d3e42bd25223e45a213311d6d7e177d56a2c541a78b58c0c9d10bbdfbf9",
847
- "dweb:/ipfs/QmfMyehJ6pxHrh7yL4793J6i7dofXnS2zH3cTtC8JdQMV9"
848
- ],
849
- "license": "MIT"
850
- },
851
- "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol": {
852
- "keccak256": "0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f",
853
- "urls": [
854
- "bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f",
855
- "dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco"
856
- ],
857
- "license": "MIT"
858
- },
859
- "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol": {
860
- "keccak256": "0x605434219ebbe4653f703640f06969faa5a1d78f0bfef878e5ddbb1ca369ceeb",
861
- "urls": [
862
- "bzz-raw://4c9c634f99dd02d73ce7498b03a6305e251c05eeebb71457306561c1fab0fa7d",
863
- "dweb:/ipfs/QmbYRBbZHy8YoaQKXdPryiL3CSS7uUaRfRYi1TUj9cTqJQ"
864
- ],
865
- "license": "MIT"
866
- },
867
- "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol": {
868
- "keccak256": "0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422",
869
- "urls": [
870
- "bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b",
871
- "dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"
872
- ],
873
- "license": "MIT"
874
- },
875
- "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol": {
876
- "keccak256": "0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef",
877
- "urls": [
878
- "bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95",
879
- "dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"
880
- ],
881
- "license": "MIT"
882
- },
883
- "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol": {
884
- "keccak256": "0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908",
885
- "urls": [
886
- "bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685",
887
- "dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy"
888
- ],
889
- "license": "MIT"
890
- },
891
- "src/interfaces/IzERC20.sol": {
892
- "keccak256": "0x25188a940e154469405a517555941d20c5334aa4f4801daaf706d1dfcf198363",
893
- "urls": [
894
- "bzz-raw://21ba8aaef2c873eed8958c378bb83d8d55281b354d7ce18436f914e2ffe0558a",
895
- "dweb:/ipfs/QmaukHu43VnQodh8mPxzJ9JgTcASfbACJBPVi5szb39xtY"
896
- ],
897
- "license": "MIT"
898
- },
899
- "src/utils/ShaHashChainLib.sol": {
900
- "keccak256": "0x17b60b9552c87f53715fa1650284c78974d556f9e7c58ec274882e1ec5b5ecd1",
901
- "urls": [
902
- "bzz-raw://48b5131d3fd2c50a95c506a3f33e051075c2be5d079eeb53ada45de76258e275",
903
- "dweb:/ipfs/QmPVYDcyG8EoTYmYDysLB6iRVhSFVnwes5Bto5svdV6UWd"
904
- ],
905
- "license": "Unlicense"
906
- },
907
- "src/zERC20.sol": {
908
- "keccak256": "0x7c65eb5339a139821f65b92471db156b1bd21957ff43ee92e6d4c6d52bbb39d1",
909
- "urls": [
910
- "bzz-raw://8f83f6a0cafaae6ea2355d08696ba5bf99b8b657b0d28d5603b7b843911e17bf",
911
- "dweb:/ipfs/QmTcFXQLC6DCaT26ms2DdVqx66ZYzyR6nmX9r66BBa3urx"
912
- ],
913
- "license": "MIT"
914
- }
915
- },
916
- "version": 1
917
- },
918
- "id": 97
919
- }
1
+ {"abi":[{"type":"constructor","inputs":[{"name":"endpoint","type":"address","internalType":"address"},{"name":"decimals_","type":"uint8","internalType":"uint8"}],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SEND","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"SEND_AND_CALL","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approvalRequired","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"combineOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_extraOptions","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"decimalConversionRate","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"subtractedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"enforcedOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"hashChain","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"index","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"initialOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveAndRevert","inputs":[{"name":"_packets","type":"tuple[]","internalType":"struct InboundPacket[]","components":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"executor","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"extraData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveSimulate","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"minter","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"msgInspector","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"oApp","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"oftVersion","inputs":[],"outputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"},{"name":"version","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"preCrime","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"quoteOFT","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"amountLD","type":"uint256","internalType":"uint256"},{"name":"minAmountLD","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"oftCmd","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"oftLimit","type":"tuple","internalType":"struct OFTLimit","components":[{"name":"minAmountLD","type":"uint256","internalType":"uint256"},{"name":"maxAmountLD","type":"uint256","internalType":"uint256"}]},{"name":"oftFeeDetails","type":"tuple[]","internalType":"struct OFTFeeDetail[]","components":[{"name":"feeAmountLD","type":"int256","internalType":"int256"},{"name":"description","type":"string","internalType":"string"}]},{"name":"oftReceipt","type":"tuple","internalType":"struct OFTReceipt","components":[{"name":"amountSentLD","type":"uint256","internalType":"uint256"},{"name":"amountReceivedLD","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"quoteSend","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"amountLD","type":"uint256","internalType":"uint256"},{"name":"minAmountLD","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"oftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"msgFee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"amountLD","type":"uint256","internalType":"uint256"},{"name":"minAmountLD","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"oftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"_refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"msgReceipt","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]},{"name":"oftReceipt","type":"tuple","internalType":"struct OFTReceipt","components":[{"name":"amountSentLD","type":"uint256","internalType":"uint256"},{"name":"amountReceivedLD","type":"uint256","internalType":"uint256"}]}],"stateMutability":"payable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEnforcedOptions","inputs":[{"name":"_enforcedOptions","type":"tuple[]","internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMinter","inputs":[{"name":"newMinter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMsgInspector","inputs":[{"name":"_msgInspector","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPreCrime","inputs":[{"name":"_preCrime","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setVerifier","inputs":[{"name":"newVerifier","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sharedDecimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"teleport","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"verifier","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"EnforcedOptionSet","inputs":[{"name":"_enforcedOptions","type":"tuple[]","indexed":false,"internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"event","name":"IndexedTransfer","inputs":[{"name":"index","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"MinterUpdated","inputs":[{"name":"newMinter","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MsgInspectorSet","inputs":[{"name":"inspector","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OFTReceived","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"toAddress","type":"address","indexed":true,"internalType":"address"},{"name":"amountReceivedLD","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OFTSent","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"dstEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fromAddress","type":"address","indexed":true,"internalType":"address"},{"name":"amountSentLD","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amountReceivedLD","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PreCrimeSet","inputs":[{"name":"preCrimeAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Teleport","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VerifierUpdated","inputs":[{"name":"newVerifier","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AmountSDOverflowed","inputs":[{"name":"amountSD","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"InvalidLocalDecimals","inputs":[]},{"type":"error","name":"InvalidOptions","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyMinter","inputs":[]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OnlySelf","inputs":[]},{"type":"error","name":"OnlyVerifier","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SimulationResult","inputs":[{"name":"result","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"SlippageExceeded","inputs":[{"name":"amountLD","type":"uint256","internalType":"uint256"},{"name":"minAmountLD","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ValueTooLarge","inputs":[]},{"type":"error","name":"ZeroAddress","inputs":[]}],"bytecode":{"object":"0x6101006040523060c052348015610014575f5ffd5b506040516152043803806152048339810160408190526100339161017b565b6001600160a01b0382166080528082600660ff83161015610067576040516301e9714b60e41b815260040160405180910390fd5b6100726006836101d7565b61007d90600a6102d9565b60a05250506001600160a01b0382166100a9576040516307def60560e11b815260040160405180910390fd5b60ff811660e0526100b86100bf565b50506102ee565b5f54610100900460ff161561012a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614610179575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f5f6040838503121561018c575f5ffd5b82516001600160a01b03811681146101a2575f5ffd5b602084015190925060ff811681146101b8575f5ffd5b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b60ff82811682821603908111156101f0576101f06101c3565b92915050565b6001815b600184111561023157808504811115610215576102156101c3565b600184161561022357908102905b60019390931c9280026101fa565b935093915050565b5f82610247575060016101f0565b8161025357505f6101f0565b816001811461026957600281146102735761028f565b60019150506101f0565b60ff841115610284576102846101c3565b50506001821b6101f0565b5060208310610133831016604e8410600b84101617156102b2575081810a6101f0565b6102be5f1984846101f6565b805f19048211156102d1576102d16101c3565b029392505050565b5f6102e760ff841683610239565b9392505050565b60805160a05160c05160e051614e816103835f395f6105a501525f818161106a015281816110aa015281816112130152818161125301526112e001525f81816108d80152818161301401528181613086015261329001525f818161075c01528181610edc01528181611c480152818161249101528181612aad015281816133b20152818161388101526139380152614e815ff3fe608060405260043610610392575f3560e01c80636fc1b31e116101de578063b731ea0a11610108578063d045a0dc1161009d578063f2fde38b1161006d578063f2fde38b14610acf578063fc0c546a146106a6578063fca3b5aa14610aee578063ff7bd03d14610b0d575f5ffd5b8063d045a0dc14610a5f578063d424388514610a72578063d505accf14610a91578063dd62ed3e14610ab0575f5ffd5b8063bd815db0116100d8578063bd815db0146109f8578063c7c7f5b314610a0b578063c841eccb14610a2c578063ca5eb5e114610a40575f5ffd5b8063b731ea0a14610969578063b98bd0701461097d578063bb0b6a531461099c578063bc70b354146109d9575f5ffd5b8063857749b01161017e5780639dc29fac1161014e5780639dc29fac146108fa5780639f68b96414610919578063a457c2d71461092b578063a9059cbb1461094a575f5ffd5b8063857749b0146108835780638da5cb5b1461089657806395d89b41146108b3578063963efcaa146108c7575f5ffd5b80637d25a05e116101b95780637d25a05e146107e55780637ecebe001461081e57806382413eac1461083d57806384b0196e1461085c575f5ffd5b80636fc1b31e1461077e57806370a082311461079d578063715018a6146107d1575f5ffd5b80632b7ac3f3116102bf57806340c10f191161025f5780635437988d1161022f5780635437988d146106cc5780635535d461146106eb5780635a0dfe4d1461070a5780635e280f111461074b575f5ffd5b806340c10f19146106745780634f1ef2861461069357806352ae2879146106a657806352d1902d146106b8575f5ffd5b80633644e5151161029a5780633644e515146105f65780633659cfe61461060a57806339509351146106295780633b6f743b14610648575f5ffd5b80632b7ac3f314610583578063313ce567146105975780633400288b146105d7575f5ffd5b806313137d651161033557806318160ddd1161030557806318160ddd1461051e5780631f5e13341461053c57806323b872dd146105505780632986c0e51461056f575f5ffd5b806313137d651461049d578063134d4f25146104b0578063156a0d0f146104d757806317442b70146104fd575f5ffd5b8063077f224a11610370578063077f224a1461040d578063095ea7b31461042c5780630d35b4151461045b578063111ecdad14610489575f5ffd5b806304ddf0a51461039657806306fdde03146103b757806307546172146103e1575b5f5ffd5b3480156103a1575f5ffd5b506103b56103b0366004613bd0565b610b2c565b005b3480156103c2575f5ffd5b506103cb610bb6565b6040516103d89190613c28565b60405180910390f35b3480156103ec575f5ffd5b506103f5610c46565b6040516001600160a01b0390911681526020016103d8565b348015610418575f5ffd5b506103b5610427366004613d25565b610c61565b348015610437575f5ffd5b5061044b610446366004613bd0565b610dc8565b60405190151581526020016103d8565b348015610466575f5ffd5b5061047a610475366004613dab565b610de1565b6040516103d893929190613ddc565b348015610494575f5ffd5b506103f5610ea6565b6103b56104ab366004613ecb565b610eda565b3480156104bb575f5ffd5b506104c4600281565b60405161ffff90911681526020016103d8565b3480156104e2575f5ffd5b506040805162b9270b60e21b815260016020820152016103d8565b348015610508575f5ffd5b50604080516001815260026020820152016103d8565b348015610529575f5ffd5b506067545b6040519081526020016103d8565b348015610547575f5ffd5b506104c4600181565b34801561055b575f5ffd5b5061044b61056a366004613f65565b610f95565b34801561057a575f5ffd5b5061052e610fba565b34801561058e575f5ffd5b506103f5610fcc565b3480156105a2575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b60405160ff90911681526020016103d8565b3480156105e2575f5ffd5b506103b56105f1366004613fbb565b610fe7565b348015610601575f5ffd5b5061052e611052565b348015610615575f5ffd5b506103b5610624366004613fd5565b611060565b348015610634575f5ffd5b5061044b610643366004613bd0565b61113d565b348015610653575f5ffd5b50610667610662366004613ffd565b61115e565b6040516103d8919061404b565b34801561067f575f5ffd5b506103b561068e366004613bd0565b6111c2565b6103b56106a1366004614062565b611209565b3480156106b1575f5ffd5b50306103f5565b3480156106c3575f5ffd5b5061052e6112d4565b3480156106d7575f5ffd5b506103b56106e6366004613fd5565b611385565b3480156106f6575f5ffd5b506103cb6107053660046140d2565b611409565b348015610715575f5ffd5b5061044b610724366004613fbb565b63ffffffff919091165f9081525f516020614de55f395f51905f5260205260409020541490565b348015610756575f5ffd5b506103f57f000000000000000000000000000000000000000000000000000000000000000081565b348015610789575f5ffd5b506103b5610798366004613fd5565b6114e1565b3480156107a8575f5ffd5b5061052e6107b7366004613fd5565b6001600160a01b03165f9081526065602052604090205490565b3480156107dc575f5ffd5b506103b561155d565b3480156107f0575f5ffd5b506108066107ff366004613fbb565b5f92915050565b6040516001600160401b0390911681526020016103d8565b348015610829575f5ffd5b5061052e610838366004613fd5565b611570565b348015610848575f5ffd5b5061044b610857366004614103565b61158d565b348015610867575f5ffd5b506108706115a2565b6040516103d89796959493929190614165565b34801561088e575f5ffd5b5060066105c5565b3480156108a1575f5ffd5b506033546001600160a01b03166103f5565b3480156108be575f5ffd5b506103cb61163b565b3480156108d2575f5ffd5b5061052e7f000000000000000000000000000000000000000000000000000000000000000081565b348015610905575f5ffd5b506103b5610914366004613bd0565b61164a565b348015610924575f5ffd5b505f61044b565b348015610936575f5ffd5b5061044b610945366004613bd0565b61168d565b348015610955575f5ffd5b5061044b610964366004613bd0565b611712565b348015610974575f5ffd5b506103f561171f565b348015610988575f5ffd5b506103b561099736600461423b565b611747565b3480156109a7575f5ffd5b5061052e6109b6366004614279565b63ffffffff165f9081525f516020614de55f395f51905f52602052604090205490565b3480156109e4575f5ffd5b506103cb6109f3366004614292565b6118c3565b6103b5610a0636600461423b565b611a53565b610a1e610a193660046142ee565b611bdf565b6040516103d892919061434b565b348015610a37575f5ffd5b5061052e611c12565b348015610a4b575f5ffd5b506103b5610a5a366004613fd5565b611c21565b6103b5610a6d366004613ecb565b611ca2565b348015610a7d575f5ffd5b506103b5610a8c366004613fd5565b611cd1565b348015610a9c575f5ffd5b506103b5610aab36600461439c565b611d45565b348015610abb575f5ffd5b5061052e610aca36600461440d565b611ea6565b348015610ada575f5ffd5b506103b5610ae9366004613fd5565b611ed0565b348015610af9575f5ffd5b506103b5610b08366004613fd5565b611f46565b348015610b18575f5ffd5b5061044b610b27366004614439565b611fa3565b610b34610fcc565b6001600160a01b0316336001600160a01b031614610b6557604051633d120d8160e11b815260040160405180910390fd5b610b6f8282611fc0565b816001600160a01b03167fb7d7623245cb52e55db0c4265c68f0507e52aadd4f195cfdafaf1ea5d107e72d82604051610baa91815260200190565b60405180910390a25050565b606060688054610bc590614453565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf190614453565b8015610c3c5780601f10610c1357610100808354040283529160200191610c3c565b820191905f5260205f20905b815481529060010190602001808311610c1f57829003601f168201915b5050505050905090565b5f610c4f612086565b600301546001600160a01b0316919050565b5f54610100900460ff1615808015610c7f57505f54600160ff909116105b80610c985750303b158015610c9857505f5460ff166001145b610d005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff191660011790558015610d21575f805461ff0019166101001790555b6001600160a01b038216610d485760405163d92e233d60e01b815260040160405180910390fd5b610d5284846120ff565b610d5b8461212f565b610d63612178565b610d6c826121a6565b610d746121e1565b610d7d82612207565b8015610dc2575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b5f33610dd5818585612258565b60019150505b92915050565b604080518082019091525f80825260208201526060610e1160405180604001604052805f81526020015f81525090565b6040805180820182525f8082525f19602080840182905284518381529081019094529195509182610e64565b604080518082019091525f815260606020820152815260200190600190039081610e3d5790505b5093505f80610e88604089013560608a0135610e8360208c018c614279565b61237b565b60408051808201909152918252602082015296989597505050505050565b5f807f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c005b546001600160a01b031692915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610f25576040516391ac5e4f60e01b8152336004820152602401610cf7565b60208701803590610f3f90610f3a908a614279565b6123b6565b14610f7d57610f516020880188614279565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610cf7565b610f8c878787878787876123ff565b50505050505050565b5f33610fa285828561255d565b610fad8585856125cf565b60019150505b9392505050565b5f610fc3612086565b60010154905090565b5f610fd5612086565b600201546001600160a01b0316919050565b610fef61277e565b63ffffffff82165f8181525f516020614de55f395f51905f52602081815260409283902085905582519384528301849052917f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91015b60405180910390a1505050565b5f61105b6127d8565b905090565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110a85760405162461bcd60e51b8152600401610cf790614485565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166110f05f516020614e055f395f51905f52546001600160a01b031690565b6001600160a01b0316146111165760405162461bcd60e51b8152600401610cf7906144d1565b61111f816127e1565b604080515f8082526020820190925261113a918391906127e9565b50565b5f33610dd581858561114f8383611ea6565b6111599190614531565b612258565b604080518082019091525f80825260208201525f61118c60408501356060860135610e836020880188614279565b9150505f5f61119b8684612958565b90925090506111b86111b06020880188614279565b838388612a98565b9695505050505050565b6111ca610c46565b6001600160a01b0316336001600160a01b0316146111fb57604051639cdc2ed560e01b815260040160405180910390fd5b6112058282611fc0565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112515760405162461bcd60e51b8152600401610cf790614485565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166112995f516020614e055f395f51905f52546001600160a01b031690565b6001600160a01b0316146112bf5760405162461bcd60e51b8152600401610cf7906144d1565b6112c8826127e1565b611205828260016127e9565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113735760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610cf7565b505f516020614e055f395f51905f5290565b61138d61277e565b6001600160a01b0381166113b45760405163d92e233d60e01b815260040160405180910390fd5b806113bd612086565b60020180546001600160a01b0319166001600160a01b03928316179055604051908216907fd24015cc99cc1700cafca3042840a1d8ac1e3964fd2e0e37ea29c654056ee327905f90a250565b63ffffffff82165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff861685529091529091208054606092919061145c90614453565b80601f016020809104026020016040519081016040528092919081815260200182805461148890614453565b80156114d35780601f106114aa576101008083540402835291602001916114d3565b820191905f5260205f20905b8154815290600101906020018083116114b657829003601f168201915b505050505091505092915050565b6114e961277e565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c0080546001600160a01b0319166001600160a01b03831690811782556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a15050565b61156561277e565b61156e5f612207565b565b6001600160a01b0381165f90815260cb6020526040812054610ddb565b6001600160a01b03811630145b949350505050565b5f6060805f5f5f60606097545f5f1b1480156115be5750609854155b6116025760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610cf7565b61160a612b76565b611612612b85565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b606060698054610bc590614453565b611652610c46565b6001600160a01b0316336001600160a01b03161461168357604051639cdc2ed560e01b815260040160405180910390fd5b6112058282612b94565b5f338161169a8286611ea6565b9050838110156116fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610cf7565b6117078286868403612258565b506001949350505050565b5f33610dd58185856125cf565b5f807fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b600610eca565b61174f61277e565b7f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00005f5b82811015611891576117b484848381811061178f5761178f614544565b90506020028101906117a19190614558565b6117af906040810190614576565b612ccc565b8383828181106117c6576117c6614544565b90506020028101906117d89190614558565b6117e6906040810190614576565b835f8787868181106117fa576117fa614544565b905060200281019061180c9190614558565b61181a906020810190614279565b63ffffffff1663ffffffff1681526020019081526020015f205f87878681811061184657611846614544565b90506020028101906118589190614558565b6118699060408101906020016145b8565b61ffff16815260208101919091526040015f2091611888919083614615565b50600101611772565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67483836040516110459291906146f6565b63ffffffff84165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff8816855290915282208054606093919061191590614453565b80601f016020809104026020016040519081016040528092919081815260200182805461194190614453565b801561198c5780601f106119635761010080835404028352916020019161198c565b820191905f5260205f20905b81548152906001019060200180831161196f57829003601f168201915b5050505050905080515f036119db5784848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525092955061159a945050505050565b5f8490036119ec57915061159a9050565b60028410611a36576119fe8585612ccc565b80611a0c85600281896147db565b604051602001611a1e93929190614819565b6040516020818303038152906040529250505061159a565b8484604051639a6d49cd60e01b8152600401610cf7929190614837565b5f5b81811015611b625736838383818110611a7057611a70614544565b9050602002810190611a82919061484a565b9050611ac0611a946020830183614279565b602083013563ffffffff919091165f9081525f516020614de55f395f51905f5260205260409020541490565b611aca5750611b5a565b3063d045a0dc60c08301358360a0810135611ae9610100830183614576565b611afa610100890160e08a01613fd5565b611b086101208a018a614576565b6040518963ffffffff1660e01b8152600401611b2a9796959493929190614873565b5f604051808303818588803b158015611b41575f5ffd5b505af1158015611b53573d5f5f3e3d5ffd5b5050505050505b600101611a55565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611b9e573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611bc591908101906148f8565b604051638351eea760e01b8152600401610cf79190613c28565b611be7613b7c565b604080518082019091525f8082526020820152611c05858585612d0d565b915091505b935093915050565b5f611c1b612086565b54919050565b611c2961277e565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b158015611c89575f5ffd5b505af1158015611c9b573d5f5f3e3d5ffd5b5050505050565b333014611cc25760405163029a949d60e31b815260040160405180910390fd5b610f8c87878787878787610f7d565b611cd961277e565b7fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b60080546001600160a01b0319166001600160a01b03831690811782556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001611551565b83421115611d955760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610cf7565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888611dc38c612e05565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f611e1d82612e2c565b90505f611e2c82878787612e58565b9050896001600160a01b0316816001600160a01b031614611e8f5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610cf7565b611e9a8a8a8a612258565b50505050505050505050565b6001600160a01b039182165f90815260666020908152604080832093909416825291909152205490565b611ed861277e565b6001600160a01b038116611f3d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610cf7565b61113a81612207565b611f4e61277e565b80611f57612086565b60030180546001600160a01b0319166001600160a01b03928316179055604051908216907fad0f299ec81a386c98df0ac27dae11dd020ed1b56963c53a7292e7a3a314539a905f90a250565b5f60208201803590611fb9906109b69085614279565b1492915050565b6001600160a01b0382166120165760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610cf7565b8060675f8282546120279190614531565b90915550506001600160a01b0382165f818152606560209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36112055f8383612e7e565b60408051808201909152601581527407a65726332302e73746f726167652e7a657263323605c1b6020909101527f7f1042a140ce10bd8eddb08508743775e5a518b7a0539cdce9b7c6885d2a61205f908152807fcd5e781c912e334c5bd043d02db19923b6e202919d5c40ac0cfab0473b1e3400610ddb565b5f54610100900460ff166121255760405162461bcd60e51b8152600401610cf79061496c565b6112058282612f27565b5f54610100900460ff166121555760405162461bcd60e51b8152600401610cf79061496c565b61113a81604051806040016040528060018152602001603160f81b815250612f66565b5f54610100900460ff1661219e5760405162461bcd60e51b8152600401610cf79061496c565b61156e612fb3565b5f54610100900460ff166121cc5760405162461bcd60e51b8152600401610cf79061496c565b6121d581612fe2565b6121dd6121e1565b61113a5b5f54610100900460ff1661156e5760405162461bcd60e51b8152600401610cf79061496c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0383166122ba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610cf7565b6001600160a01b03821661231b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610cf7565b6001600160a01b038381165f8181526066602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f5f61238685613011565b915081905083811015611c0a576040516371c4efed60e01b81526004810182905260248101859052604401610cf7565b63ffffffff81165f9081525f516020614de55f395f51905f526020819052604082205480610fb35760405163f6ff4fb760e01b815263ffffffff85166004820152602401610cf7565b5f61241061240d8787613047565b90565b90505f61243b826124296124248a8a61305e565b613080565b61243660208d018d614279565b6130b4565b905060288611156124fb575f61247761245a60608c0160408d016149b7565b61246760208d018d614279565b846124728c8c6130db565b613125565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906124cc9086908d905f9087906004016149d2565b5f604051808303815f87803b1580156124e3575f5ffd5b505af11580156124f5573d5f5f3e3d5ffd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61253460208d018d614279565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b5f6125688484611ea6565b90505f198114610dc257818110156125c25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610cf7565b610dc28484848403612258565b6001600160a01b0383166126335760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610cf7565b6001600160a01b0382166126955760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610cf7565b6001600160a01b0383165f908152606560205260409020548181101561270c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610cf7565b6001600160a01b038085165f8181526065602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061276b9086815260200190565b60405180910390a3610dc2848484612e7e565b6033546001600160a01b0316331461156e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610cf7565b5f61105b613157565b61113a61277e565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156128215761281c836131ca565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561287b575060408051601f3d908101601f1916820190925261287891810190614a02565b60015b6128de5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610cf7565b5f516020614e055f395f51905f52811461294c5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610cf7565b5061281c838383613265565b6060805f6129b3856020013561296d86613289565b61297a60a0890189614576565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506132e292505050565b90935090505f816129c55760016129c8565b60025b90506129e86129da6020880188614279565b826109f360808a018a614576565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c008054919450906001600160a01b03168015612a8d5760405163043a78eb60e01b81526001600160a01b0382169063043a78eb90612a4c9089908990600401614a19565b602060405180830381865afa158015612a67573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a8b9190614a3d565b505b505050509250929050565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001612afa896123b6565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401612b2f929190614a58565b6040805180830381865afa158015612b49573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b6d9190614aff565b95945050505050565b606060998054610bc590614453565b6060609a8054610bc590614453565b6001600160a01b038216612bf45760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610cf7565b6001600160a01b0382165f9081526065602052604090205481811015612c675760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610cf7565b6001600160a01b0383165f8181526065602090815260408083208686039055606780548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361281c835f84612e7e565b5f612cda60028284866147db565b612ce391614b19565b60f01c90506003811461281c578282604051639a6d49cd60e01b8152600401610cf7929190614837565b612d15613b7c565b604080518082019091525f80825260208201525f80612d4a33604089013560608a0135612d4560208c018c614279565b61335c565b915091505f5f612d5a8984612958565b9092509050612d86612d6f60208b018b614279565b8383612d80368d90038d018d614b51565b8b613381565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90612dd4908d018d614279565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b6001600160a01b0381165f90815260cb602052604090208054600181018255905b50919050565b5f610ddb612e386127d8565b8360405161190160f01b8152600281019290925260228201526042902090565b5f5f5f612e6787878787613487565b91509150612e7481613541565b5095945050505050565b6001600160f81b03811115612ea657604051632ad907fb60e01b815260040160405180910390fd5b5f612eaf612086565b90508054612ebf9085858561368a565b8155600181018054905f612ed283614b82565b90915550604080516001600160a01b038088168252861660208201529081018490527fb9285eeffc25fae3689fd1d4d3245dbc73f87f3bc8cb50c1de55574221805d0d9060600160405180910390a250505050565b5f54610100900460ff16612f4d5760405162461bcd60e51b8152600401610cf79061496c565b6068612f598382614b9a565b50606961281c8282614b9a565b5f54610100900460ff16612f8c5760405162461bcd60e51b8152600401610cf79061496c565b6099612f988382614b9a565b50609a612fa58282614b9a565b50505f609781905560985550565b5f54610100900460ff16612fd95760405162461bcd60e51b8152600401610cf79061496c565b61156e33612207565b5f54610100900460ff166130085760405162461bcd60e51b8152600401610cf79061496c565b6121d58161373c565b5f7f000000000000000000000000000000000000000000000000000000000000000061303d8184614c54565b610ddb9190614c73565b5f61305560208284866147db565b610fb391614c8a565b5f61306d6028602084866147db565b61307691614ca7565b60c01c9392505050565b5f610ddb7f00000000000000000000000000000000000000000000000000000000000000006001600160401b038416614c73565b5f6001600160a01b0384166130c95761dead93505b6130d38484611fc0565b509092915050565b60606130ea82602881866147db565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b60608484848460405160200161313e9493929190614cdd565b6040516020818303038152906040529050949350505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61318161376b565b6131896137c3565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6001600160a01b0381163b6132375760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610cf7565b5f516020614e055f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b61326e836137f3565b5f8251118061327a5750805b1561281c57610dc28383613832565b5f806132b57f000000000000000000000000000000000000000000000000000000000000000084614c54565b90506001600160401b03811115610ddb5760405163e2ce941360e01b815260048101829052602401610cf7565b805160609015158061332b57848460405160200161331792919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052613352565b848433856040516020016133429493929190614d17565b6040516020818303038152906040525b9150935093915050565b5f5f61336985858561237b565b90925090506133788683612b94565b94509492505050565b613389613b7c565b5f613396845f0151613857565b6020850151909150156133b0576133b0846020015161387e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016134008c6123b6565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b815260040161343b929190614a58565b60806040518083038185885af1158015613457573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061347c9190614d43565b979650505050505050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156134bc57505f90506003613378565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561350d573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116613535575f60019250925050613378565b965f9650945050505050565b5f81600481111561355457613554614daa565b0361355c5750565b600181600481111561357057613570614daa565b036135bd5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610cf7565b60028160048111156135d1576135d1614daa565b0361361e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610cf7565b600381600481111561363257613632614daa565b0361113a5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610cf7565b5f6002858585856040516020016136d29493929190938452606092831b6bffffffffffffffffffffffff1990811660208601529190921b166034830152604882015260680190565b60408051601f19818403018152908290526136ec91614dbe565b602060405180830381855afa158015613707573d5f5f3e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061372a9190614a02565b6001600160f81b031695945050505050565b5f54610100900460ff166137625760405162461bcd60e51b8152600401610cf79061496c565b61113a8161395d565b5f5f613775612b76565b80519091501561378c578051602090910120919050565b609754801561379b5792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f5f6137cd612b85565b8051909150156137e4578051602090910120919050565b609854801561379b5792915050565b6137fc816131ca565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060610fb38383604051806060016040528060278152602001614e25602791396139aa565b5f81341461387a576040516304fb820960e51b8152346004820152602401610cf7565b5090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156138db573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138ff9190614dc9565b90506001600160a01b038116613928576040516329b99a9560e11b815260040160405180910390fd5b6112056001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085613a14565b5f54610100900460ff166139835760405162461bcd60e51b8152600401610cf79061496c565b6001600160a01b038116611c2957604051632d618d8160e21b815260040160405180910390fd5b60605f5f856001600160a01b0316856040516139c69190614dbe565b5f60405180830381855af49150503d805f81146139fe576040519150601f19603f3d011682016040523d82523d5f602084013e613a03565b606091505b50915091506111b886838387613a6e565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610dc2908590613ae6565b60608315613adc5782515f03613ad5576001600160a01b0385163b613ad55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610cf7565b508161159a565b61159a8383613b52565b5f5f60205f8451602086015f885af180613b05576040513d5f823e3d81fd5b50505f513d91508115613b1c578060011415613b29565b6001600160a01b0384163b155b15610dc257604051635274afe760e01b81526001600160a01b0385166004820152602401610cf7565b815115613b625781518083602001fd5b8060405162461bcd60e51b8152600401610cf79190613c28565b60405180606001604052805f81526020015f6001600160401b03168152602001613bb760405180604001604052805f81526020015f81525090565b905290565b6001600160a01b038116811461113a575f5ffd5b5f5f60408385031215613be1575f5ffd5b8235613bec81613bbc565b946020939093013593505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610fb36020830184613bfa565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715613c7057613c70613c3a565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613c9e57613c9e613c3a565b604052919050565b5f6001600160401b03821115613cbe57613cbe613c3a565b50601f01601f191660200190565b5f613cde613cd984613ca6565b613c76565b9050828152838383011115613cf1575f5ffd5b828260208301375f602084830101529392505050565b5f82601f830112613d16575f5ffd5b610fb383833560208501613ccc565b5f5f5f60608486031215613d37575f5ffd5b83356001600160401b03811115613d4c575f5ffd5b613d5886828701613d07565b93505060208401356001600160401b03811115613d73575f5ffd5b613d7f86828701613d07565b9250506040840135613d9081613bbc565b809150509250925092565b5f60e08284031215612e26575f5ffd5b5f60208284031215613dbb575f5ffd5b81356001600160401b03811115613dd0575f5ffd5b61159a84828501613d9b565b83518152602080850151908201525f60a0820160a0604084015280855180835260c08501915060c08160051b8601019250602087015f5b82811015613e5b5760bf198786030184528151805186526020810151905060406020870152613e456040870182613bfa565b9550506020938401939190910190600101613e13565b505085516060860152505060208401516080840152905061159a565b5f60608284031215612e26575f5ffd5b5f5f83601f840112613e97575f5ffd5b5081356001600160401b03811115613ead575f5ffd5b602083019150836020828501011115613ec4575f5ffd5b9250929050565b5f5f5f5f5f5f5f60e0888a031215613ee1575f5ffd5b613eeb8989613e77565b96506060880135955060808801356001600160401b03811115613f0c575f5ffd5b613f188a828b01613e87565b90965094505060a0880135613f2c81613bbc565b925060c08801356001600160401b03811115613f46575f5ffd5b613f528a828b01613e87565b989b979a50959850939692959293505050565b5f5f5f60608486031215613f77575f5ffd5b8335613f8281613bbc565b92506020840135613f9281613bbc565b929592945050506040919091013590565b803563ffffffff81168114613fb6575f5ffd5b919050565b5f5f60408385031215613fcc575f5ffd5b613bec83613fa3565b5f60208284031215613fe5575f5ffd5b8135610fb381613bbc565b801515811461113a575f5ffd5b5f5f6040838503121561400e575f5ffd5b82356001600160401b03811115614023575f5ffd5b61402f85828601613d9b565b925050602083013561404081613ff0565b809150509250929050565b815181526020808301519082015260408101610ddb565b5f5f60408385031215614073575f5ffd5b823561407e81613bbc565b915060208301356001600160401b03811115614098575f5ffd5b8301601f810185136140a8575f5ffd5b6140b785823560208401613ccc565b9150509250929050565b803561ffff81168114613fb6575f5ffd5b5f5f604083850312156140e3575f5ffd5b6140ec83613fa3565b91506140fa602084016140c1565b90509250929050565b5f5f5f5f60a08587031215614116575f5ffd5b6141208686613e77565b935060608501356001600160401b0381111561413a575f5ffd5b61414687828801613e87565b909450925050608085013561415a81613bbc565b939692955090935050565b60ff60f81b8816815260e060208201525f61418360e0830189613bfa565b82810360408401526141958189613bfa565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b818110156141ea5783518352602093840193909201916001016141cc565b50909b9a5050505050505050505050565b5f5f83601f84011261420b575f5ffd5b5081356001600160401b03811115614221575f5ffd5b6020830191508360208260051b8501011115613ec4575f5ffd5b5f5f6020838503121561424c575f5ffd5b82356001600160401b03811115614261575f5ffd5b61426d858286016141fb565b90969095509350505050565b5f60208284031215614289575f5ffd5b610fb382613fa3565b5f5f5f5f606085870312156142a5575f5ffd5b6142ae85613fa3565b93506142bc602086016140c1565b925060408501356001600160401b038111156142d6575f5ffd5b6142e287828801613e87565b95989497509550505050565b5f5f5f8385036080811215614301575f5ffd5b84356001600160401b03811115614316575f5ffd5b61432287828801613d9b565b9450506040601f1982011215614336575f5ffd5b506020840191506060840135613d9081613bbc565b5f60c082019050835182526001600160401b0360208501511660208301526040840151614385604084018280518252602090810151910152565b5082516080830152602083015160a0830152610fb3565b5f5f5f5f5f5f5f60e0888a0312156143b2575f5ffd5b87356143bd81613bbc565b965060208801356143cd81613bbc565b95506040880135945060608801359350608088013560ff811681146143f0575f5ffd5b9699959850939692959460a0840135945060c09093013592915050565b5f5f6040838503121561441e575f5ffd5b823561442981613bbc565b9150602083013561404081613bbc565b5f60608284031215614449575f5ffd5b610fb38383613e77565b600181811c9082168061446757607f821691505b602082108103612e2657634e487b7160e01b5f52602260045260245ffd5b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610ddb57610ddb61451d565b634e487b7160e01b5f52603260045260245ffd5b5f8235605e1983360301811261456c575f5ffd5b9190910192915050565b5f5f8335601e1984360301811261458b575f5ffd5b8301803591506001600160401b038211156145a4575f5ffd5b602001915036819003821315613ec4575f5ffd5b5f602082840312156145c8575f5ffd5b610fb3826140c1565b601f82111561281c57805f5260205f20601f840160051c810160208510156145f65750805b601f840160051c820191505b81811015611c9b575f8155600101614602565b6001600160401b0383111561462c5761462c613c3a565b6146408361463a8354614453565b836145d1565b5f601f841160018114614671575f851561465a5750838201355b5f19600387901b1c1916600186901b178355611c9b565b5f83815260208120601f198716915b828110156146a05786850135825560209485019460019092019101614680565b50868210156146bc575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b602080825281018290525f6040600584901b830181019083018583605e1936839003015b878210156147ce57868503603f190184528235818112614738575f5ffd5b890163ffffffff61474882613fa3565b16865261ffff61475a602083016140c1565b1660208701526040810135601e19823603018112614776575f5ffd5b016020810190356001600160401b03811115614790575f5ffd5b80360382131561479e575f5ffd5b606060408801526147b36060880182846146ce565b9650505060208301925060208401935060018201915061471a565b5092979650505050505050565b5f5f858511156147e9575f5ffd5b838611156147f5575f5ffd5b5050820193919092039150565b5f81518060208401855e5f93019283525090919050565b5f6148248286614802565b838582375f930192835250909392505050565b602081525f61159a6020830184866146ce565b5f823561013e1983360301811261456c575f5ffd5b6001600160401b038116811461113a575f5ffd5b63ffffffff61488189613fa3565b168152602088810135908201525f604089013561489d8161485f565b6001600160401b03811660408401525087606083015260e060808301526148c860e0830187896146ce565b6001600160a01b03861660a084015282810360c08401526148ea8185876146ce565b9a9950505050505050505050565b5f60208284031215614908575f5ffd5b81516001600160401b0381111561491d575f5ffd5b8201601f8101841361492d575f5ffd5b805161493b613cd982613ca6565b81815285602083850101111561494f575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f602082840312156149c7575f5ffd5b8135610fb38161485f565b60018060a01b038516815283602082015261ffff83166040820152608060608201525f6111b86080830184613bfa565b5f60208284031215614a12575f5ffd5b5051919050565b604081525f614a2b6040830185613bfa565b8281036020840152612b6d8185613bfa565b5f60208284031215614a4d575f5ffd5b8151610fb381613ff0565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a06080840152614a8d60e0840182613bfa565b90506060850151603f198483030160a0850152614aaa8282613bfa565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f60408284031215614ae0575f5ffd5b614ae8613c4e565b825181526020928301519281019290925250919050565b5f60408284031215614b0f575f5ffd5b610fb38383614ad0565b80356001600160f01b03198116906002841015614b4a576001600160f01b0319600285900360031b81901b82161691505b5092915050565b5f6040828403128015614b62575f5ffd5b50614b6b613c4e565b823581526020928301359281019290925250919050565b5f60018201614b9357614b9361451d565b5060010190565b81516001600160401b03811115614bb357614bb3613c3a565b614bc781614bc18454614453565b846145d1565b6020601f821160018114614bf9575f8315614be25750848201515b5f19600385901b1c1916600184901b178455611c9b565b5f84815260208120601f198516915b82811015614c285787850151825560209485019460019092019101614c08565b5084821015614c4557868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f82614c6e57634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610ddb57610ddb61451d565b80356020831015610ddb575f19602084900360031b1b1692915050565b80356001600160c01b03198116906008841015614b4a576001600160c01b031960089490940360031b84901b1690921692915050565b60c085901b6001600160c01b031916815260e084901b6001600160e01b0319166008820152600c81018390525f6111b8602c830184614802565b8481526001600160401b0360c01b8460c01b1660208201528260288201525f6111b86048830184614802565b5f6080828403128015614d54575f5ffd5b50604051606081016001600160401b0381118282101715614d7757614d77613c3a565b604052825181526020830151614d8c8161485f565b6020820152614d9e8460408501614ad0565b60408201529392505050565b634e487b7160e01b5f52602160045260245ffd5b5f610fb38284614802565b5f60208284031215614dd9575f5ffd5b8151610fb381613bbc56fe72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212208919d83629e37860fc15da660ee8b8d20b243bb2725adec77824c9f0b0bd511664736f6c634300081e0033","sourceMap":"1023:6877:173:-:0;;;1198:4:112;1155:48;;2342:227:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1307:42:49;;;;2408:9:173;1307:42:49;5633:1:64;3326:33:::1;::::0;::::1;;3322:68;;;3368:22;;-1:-1:-1::0;;;3368:22:64::1;;;;;;;;;;;3322:68;3431:33;5633:1:::0;3431:14;:33:::1;:::i;:::-;3424:41;::::0;:2:::1;:41;:::i;:::-;3400:65;::::0;-1:-1:-1;;;;;;;2443:22:173;::::1;2439:56;;2474:21;;-1:-1:-1::0;;;2474:21:173::1;;;;;;;;;;;2439:56;2505:25;::::0;::::1;;::::0;2540:22:::1;:20;:22::i;:::-;2342:227:::0;;1023:6877;;5939:280:111;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:111;;2389:2:175;5998:66:111;;;2371:21:175;2428:2;2408:18;;;2401:30;2467:34;2447:18;;;2440:62;-1:-1:-1;;;2518:18:175;;;2511:37;2565:19;;5998:66:111;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:111;6140:15;6125:30;;;;;;6174:28;;2737:36:175;;;6174:28:111;;2725:2:175;2710:18;6174:28:111;;;;;;;6074:139;5939:280::o;14:448:175:-;91:6;99;152:2;140:9;131:7;127:23;123:32;120:52;;;168:1;165;158:12;120:52;194:16;;-1:-1:-1;;;;;239:31:175;;229:42;;219:70;;285:1;282;275:12;219:70;358:2;343:18;;337:25;308:5;;-1:-1:-1;406:4:175;393:18;;381:31;;371:59;;426:1;423;416:12;371:59;449:7;439:17;;;14:448;;;;;:::o;467:127::-;528:10;523:3;519:20;516:1;509:31;559:4;556:1;549:15;583:4;580:1;573:15;599:151;689:4;682:12;;;668;;;664:31;;707:14;;704:40;;;724:18;;:::i;:::-;599:151;;;;:::o;755:375::-;843:1;861:5;875:249;896:1;886:8;883:15;875:249;;;946:4;941:3;937:14;931:4;928:24;925:50;;;955:18;;:::i;:::-;1005:1;995:8;991:16;988:49;;;1019:16;;;;988:49;1102:1;1098:16;;;;;1058:15;;875:249;;;755:375;;;;;;:::o;1135:902::-;1184:5;1214:8;1204:80;;-1:-1:-1;1255:1:175;1269:5;;1204:80;1303:4;1293:76;;-1:-1:-1;1340:1:175;1354:5;;1293:76;1385:4;1403:1;1398:59;;;;1471:1;1466:174;;;;1378:262;;1398:59;1428:1;1419:10;;1442:5;;;1466:174;1503:3;1493:8;1490:17;1487:43;;;1510:18;;:::i;:::-;-1:-1:-1;;1566:1:175;1552:16;;1625:5;;1378:262;;1724:2;1714:8;1711:16;1705:3;1699:4;1696:13;1692:36;1686:2;1676:8;1673:16;1668:2;1662:4;1659:12;1655:35;1652:77;1649:203;;;-1:-1:-1;1761:19:175;;;1837:5;;1649:203;1884:42;-1:-1:-1;;1909:8:175;1903:4;1884:42;:::i;:::-;1962:6;1958:1;1954:6;1950:19;1941:7;1938:32;1935:58;;;1973:18;;:::i;:::-;2011:20;;1135:902;-1:-1:-1;;;1135:902:175:o;2042:140::-;2100:5;2129:47;2170:4;2160:8;2156:19;2150:4;2129:47;:::i;:::-;2120:56;2042:140;-1:-1:-1;;;2042:140:175:o;2595:184::-;1023:6877:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610392575f3560e01c80636fc1b31e116101de578063b731ea0a11610108578063d045a0dc1161009d578063f2fde38b1161006d578063f2fde38b14610acf578063fc0c546a146106a6578063fca3b5aa14610aee578063ff7bd03d14610b0d575f5ffd5b8063d045a0dc14610a5f578063d424388514610a72578063d505accf14610a91578063dd62ed3e14610ab0575f5ffd5b8063bd815db0116100d8578063bd815db0146109f8578063c7c7f5b314610a0b578063c841eccb14610a2c578063ca5eb5e114610a40575f5ffd5b8063b731ea0a14610969578063b98bd0701461097d578063bb0b6a531461099c578063bc70b354146109d9575f5ffd5b8063857749b01161017e5780639dc29fac1161014e5780639dc29fac146108fa5780639f68b96414610919578063a457c2d71461092b578063a9059cbb1461094a575f5ffd5b8063857749b0146108835780638da5cb5b1461089657806395d89b41146108b3578063963efcaa146108c7575f5ffd5b80637d25a05e116101b95780637d25a05e146107e55780637ecebe001461081e57806382413eac1461083d57806384b0196e1461085c575f5ffd5b80636fc1b31e1461077e57806370a082311461079d578063715018a6146107d1575f5ffd5b80632b7ac3f3116102bf57806340c10f191161025f5780635437988d1161022f5780635437988d146106cc5780635535d461146106eb5780635a0dfe4d1461070a5780635e280f111461074b575f5ffd5b806340c10f19146106745780634f1ef2861461069357806352ae2879146106a657806352d1902d146106b8575f5ffd5b80633644e5151161029a5780633644e515146105f65780633659cfe61461060a57806339509351146106295780633b6f743b14610648575f5ffd5b80632b7ac3f314610583578063313ce567146105975780633400288b146105d7575f5ffd5b806313137d651161033557806318160ddd1161030557806318160ddd1461051e5780631f5e13341461053c57806323b872dd146105505780632986c0e51461056f575f5ffd5b806313137d651461049d578063134d4f25146104b0578063156a0d0f146104d757806317442b70146104fd575f5ffd5b8063077f224a11610370578063077f224a1461040d578063095ea7b31461042c5780630d35b4151461045b578063111ecdad14610489575f5ffd5b806304ddf0a51461039657806306fdde03146103b757806307546172146103e1575b5f5ffd5b3480156103a1575f5ffd5b506103b56103b0366004613bd0565b610b2c565b005b3480156103c2575f5ffd5b506103cb610bb6565b6040516103d89190613c28565b60405180910390f35b3480156103ec575f5ffd5b506103f5610c46565b6040516001600160a01b0390911681526020016103d8565b348015610418575f5ffd5b506103b5610427366004613d25565b610c61565b348015610437575f5ffd5b5061044b610446366004613bd0565b610dc8565b60405190151581526020016103d8565b348015610466575f5ffd5b5061047a610475366004613dab565b610de1565b6040516103d893929190613ddc565b348015610494575f5ffd5b506103f5610ea6565b6103b56104ab366004613ecb565b610eda565b3480156104bb575f5ffd5b506104c4600281565b60405161ffff90911681526020016103d8565b3480156104e2575f5ffd5b506040805162b9270b60e21b815260016020820152016103d8565b348015610508575f5ffd5b50604080516001815260026020820152016103d8565b348015610529575f5ffd5b506067545b6040519081526020016103d8565b348015610547575f5ffd5b506104c4600181565b34801561055b575f5ffd5b5061044b61056a366004613f65565b610f95565b34801561057a575f5ffd5b5061052e610fba565b34801561058e575f5ffd5b506103f5610fcc565b3480156105a2575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b60405160ff90911681526020016103d8565b3480156105e2575f5ffd5b506103b56105f1366004613fbb565b610fe7565b348015610601575f5ffd5b5061052e611052565b348015610615575f5ffd5b506103b5610624366004613fd5565b611060565b348015610634575f5ffd5b5061044b610643366004613bd0565b61113d565b348015610653575f5ffd5b50610667610662366004613ffd565b61115e565b6040516103d8919061404b565b34801561067f575f5ffd5b506103b561068e366004613bd0565b6111c2565b6103b56106a1366004614062565b611209565b3480156106b1575f5ffd5b50306103f5565b3480156106c3575f5ffd5b5061052e6112d4565b3480156106d7575f5ffd5b506103b56106e6366004613fd5565b611385565b3480156106f6575f5ffd5b506103cb6107053660046140d2565b611409565b348015610715575f5ffd5b5061044b610724366004613fbb565b63ffffffff919091165f9081525f516020614de55f395f51905f5260205260409020541490565b348015610756575f5ffd5b506103f57f000000000000000000000000000000000000000000000000000000000000000081565b348015610789575f5ffd5b506103b5610798366004613fd5565b6114e1565b3480156107a8575f5ffd5b5061052e6107b7366004613fd5565b6001600160a01b03165f9081526065602052604090205490565b3480156107dc575f5ffd5b506103b561155d565b3480156107f0575f5ffd5b506108066107ff366004613fbb565b5f92915050565b6040516001600160401b0390911681526020016103d8565b348015610829575f5ffd5b5061052e610838366004613fd5565b611570565b348015610848575f5ffd5b5061044b610857366004614103565b61158d565b348015610867575f5ffd5b506108706115a2565b6040516103d89796959493929190614165565b34801561088e575f5ffd5b5060066105c5565b3480156108a1575f5ffd5b506033546001600160a01b03166103f5565b3480156108be575f5ffd5b506103cb61163b565b3480156108d2575f5ffd5b5061052e7f000000000000000000000000000000000000000000000000000000000000000081565b348015610905575f5ffd5b506103b5610914366004613bd0565b61164a565b348015610924575f5ffd5b505f61044b565b348015610936575f5ffd5b5061044b610945366004613bd0565b61168d565b348015610955575f5ffd5b5061044b610964366004613bd0565b611712565b348015610974575f5ffd5b506103f561171f565b348015610988575f5ffd5b506103b561099736600461423b565b611747565b3480156109a7575f5ffd5b5061052e6109b6366004614279565b63ffffffff165f9081525f516020614de55f395f51905f52602052604090205490565b3480156109e4575f5ffd5b506103cb6109f3366004614292565b6118c3565b6103b5610a0636600461423b565b611a53565b610a1e610a193660046142ee565b611bdf565b6040516103d892919061434b565b348015610a37575f5ffd5b5061052e611c12565b348015610a4b575f5ffd5b506103b5610a5a366004613fd5565b611c21565b6103b5610a6d366004613ecb565b611ca2565b348015610a7d575f5ffd5b506103b5610a8c366004613fd5565b611cd1565b348015610a9c575f5ffd5b506103b5610aab36600461439c565b611d45565b348015610abb575f5ffd5b5061052e610aca36600461440d565b611ea6565b348015610ada575f5ffd5b506103b5610ae9366004613fd5565b611ed0565b348015610af9575f5ffd5b506103b5610b08366004613fd5565b611f46565b348015610b18575f5ffd5b5061044b610b27366004614439565b611fa3565b610b34610fcc565b6001600160a01b0316336001600160a01b031614610b6557604051633d120d8160e11b815260040160405180910390fd5b610b6f8282611fc0565b816001600160a01b03167fb7d7623245cb52e55db0c4265c68f0507e52aadd4f195cfdafaf1ea5d107e72d82604051610baa91815260200190565b60405180910390a25050565b606060688054610bc590614453565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf190614453565b8015610c3c5780601f10610c1357610100808354040283529160200191610c3c565b820191905f5260205f20905b815481529060010190602001808311610c1f57829003601f168201915b5050505050905090565b5f610c4f612086565b600301546001600160a01b0316919050565b5f54610100900460ff1615808015610c7f57505f54600160ff909116105b80610c985750303b158015610c9857505f5460ff166001145b610d005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff191660011790558015610d21575f805461ff0019166101001790555b6001600160a01b038216610d485760405163d92e233d60e01b815260040160405180910390fd5b610d5284846120ff565b610d5b8461212f565b610d63612178565b610d6c826121a6565b610d746121e1565b610d7d82612207565b8015610dc2575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b5f33610dd5818585612258565b60019150505b92915050565b604080518082019091525f80825260208201526060610e1160405180604001604052805f81526020015f81525090565b6040805180820182525f8082525f19602080840182905284518381529081019094529195509182610e64565b604080518082019091525f815260606020820152815260200190600190039081610e3d5790505b5093505f80610e88604089013560608a0135610e8360208c018c614279565b61237b565b60408051808201909152918252602082015296989597505050505050565b5f807f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c005b546001600160a01b031692915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610f25576040516391ac5e4f60e01b8152336004820152602401610cf7565b60208701803590610f3f90610f3a908a614279565b6123b6565b14610f7d57610f516020880188614279565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610cf7565b610f8c878787878787876123ff565b50505050505050565b5f33610fa285828561255d565b610fad8585856125cf565b60019150505b9392505050565b5f610fc3612086565b60010154905090565b5f610fd5612086565b600201546001600160a01b0316919050565b610fef61277e565b63ffffffff82165f8181525f516020614de55f395f51905f52602081815260409283902085905582519384528301849052917f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91015b60405180910390a1505050565b5f61105b6127d8565b905090565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110a85760405162461bcd60e51b8152600401610cf790614485565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166110f05f516020614e055f395f51905f52546001600160a01b031690565b6001600160a01b0316146111165760405162461bcd60e51b8152600401610cf7906144d1565b61111f816127e1565b604080515f8082526020820190925261113a918391906127e9565b50565b5f33610dd581858561114f8383611ea6565b6111599190614531565b612258565b604080518082019091525f80825260208201525f61118c60408501356060860135610e836020880188614279565b9150505f5f61119b8684612958565b90925090506111b86111b06020880188614279565b838388612a98565b9695505050505050565b6111ca610c46565b6001600160a01b0316336001600160a01b0316146111fb57604051639cdc2ed560e01b815260040160405180910390fd5b6112058282611fc0565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112515760405162461bcd60e51b8152600401610cf790614485565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166112995f516020614e055f395f51905f52546001600160a01b031690565b6001600160a01b0316146112bf5760405162461bcd60e51b8152600401610cf7906144d1565b6112c8826127e1565b611205828260016127e9565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113735760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610cf7565b505f516020614e055f395f51905f5290565b61138d61277e565b6001600160a01b0381166113b45760405163d92e233d60e01b815260040160405180910390fd5b806113bd612086565b60020180546001600160a01b0319166001600160a01b03928316179055604051908216907fd24015cc99cc1700cafca3042840a1d8ac1e3964fd2e0e37ea29c654056ee327905f90a250565b63ffffffff82165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff861685529091529091208054606092919061145c90614453565b80601f016020809104026020016040519081016040528092919081815260200182805461148890614453565b80156114d35780601f106114aa576101008083540402835291602001916114d3565b820191905f5260205f20905b8154815290600101906020018083116114b657829003601f168201915b505050505091505092915050565b6114e961277e565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c0080546001600160a01b0319166001600160a01b03831690811782556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a15050565b61156561277e565b61156e5f612207565b565b6001600160a01b0381165f90815260cb6020526040812054610ddb565b6001600160a01b03811630145b949350505050565b5f6060805f5f5f60606097545f5f1b1480156115be5750609854155b6116025760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610cf7565b61160a612b76565b611612612b85565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b606060698054610bc590614453565b611652610c46565b6001600160a01b0316336001600160a01b03161461168357604051639cdc2ed560e01b815260040160405180910390fd5b6112058282612b94565b5f338161169a8286611ea6565b9050838110156116fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610cf7565b6117078286868403612258565b506001949350505050565b5f33610dd58185856125cf565b5f807fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b600610eca565b61174f61277e565b7f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00005f5b82811015611891576117b484848381811061178f5761178f614544565b90506020028101906117a19190614558565b6117af906040810190614576565b612ccc565b8383828181106117c6576117c6614544565b90506020028101906117d89190614558565b6117e6906040810190614576565b835f8787868181106117fa576117fa614544565b905060200281019061180c9190614558565b61181a906020810190614279565b63ffffffff1663ffffffff1681526020019081526020015f205f87878681811061184657611846614544565b90506020028101906118589190614558565b6118699060408101906020016145b8565b61ffff16815260208101919091526040015f2091611888919083614615565b50600101611772565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67483836040516110459291906146f6565b63ffffffff84165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff8816855290915282208054606093919061191590614453565b80601f016020809104026020016040519081016040528092919081815260200182805461194190614453565b801561198c5780601f106119635761010080835404028352916020019161198c565b820191905f5260205f20905b81548152906001019060200180831161196f57829003601f168201915b5050505050905080515f036119db5784848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525092955061159a945050505050565b5f8490036119ec57915061159a9050565b60028410611a36576119fe8585612ccc565b80611a0c85600281896147db565b604051602001611a1e93929190614819565b6040516020818303038152906040529250505061159a565b8484604051639a6d49cd60e01b8152600401610cf7929190614837565b5f5b81811015611b625736838383818110611a7057611a70614544565b9050602002810190611a82919061484a565b9050611ac0611a946020830183614279565b602083013563ffffffff919091165f9081525f516020614de55f395f51905f5260205260409020541490565b611aca5750611b5a565b3063d045a0dc60c08301358360a0810135611ae9610100830183614576565b611afa610100890160e08a01613fd5565b611b086101208a018a614576565b6040518963ffffffff1660e01b8152600401611b2a9796959493929190614873565b5f604051808303818588803b158015611b41575f5ffd5b505af1158015611b53573d5f5f3e3d5ffd5b5050505050505b600101611a55565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611b9e573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611bc591908101906148f8565b604051638351eea760e01b8152600401610cf79190613c28565b611be7613b7c565b604080518082019091525f8082526020820152611c05858585612d0d565b915091505b935093915050565b5f611c1b612086565b54919050565b611c2961277e565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b158015611c89575f5ffd5b505af1158015611c9b573d5f5f3e3d5ffd5b5050505050565b333014611cc25760405163029a949d60e31b815260040160405180910390fd5b610f8c87878787878787610f7d565b611cd961277e565b7fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b60080546001600160a01b0319166001600160a01b03831690811782556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001611551565b83421115611d955760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610cf7565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888611dc38c612e05565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f611e1d82612e2c565b90505f611e2c82878787612e58565b9050896001600160a01b0316816001600160a01b031614611e8f5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610cf7565b611e9a8a8a8a612258565b50505050505050505050565b6001600160a01b039182165f90815260666020908152604080832093909416825291909152205490565b611ed861277e565b6001600160a01b038116611f3d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610cf7565b61113a81612207565b611f4e61277e565b80611f57612086565b60030180546001600160a01b0319166001600160a01b03928316179055604051908216907fad0f299ec81a386c98df0ac27dae11dd020ed1b56963c53a7292e7a3a314539a905f90a250565b5f60208201803590611fb9906109b69085614279565b1492915050565b6001600160a01b0382166120165760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610cf7565b8060675f8282546120279190614531565b90915550506001600160a01b0382165f818152606560209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36112055f8383612e7e565b60408051808201909152601581527407a65726332302e73746f726167652e7a657263323605c1b6020909101527f7f1042a140ce10bd8eddb08508743775e5a518b7a0539cdce9b7c6885d2a61205f908152807fcd5e781c912e334c5bd043d02db19923b6e202919d5c40ac0cfab0473b1e3400610ddb565b5f54610100900460ff166121255760405162461bcd60e51b8152600401610cf79061496c565b6112058282612f27565b5f54610100900460ff166121555760405162461bcd60e51b8152600401610cf79061496c565b61113a81604051806040016040528060018152602001603160f81b815250612f66565b5f54610100900460ff1661219e5760405162461bcd60e51b8152600401610cf79061496c565b61156e612fb3565b5f54610100900460ff166121cc5760405162461bcd60e51b8152600401610cf79061496c565b6121d581612fe2565b6121dd6121e1565b61113a5b5f54610100900460ff1661156e5760405162461bcd60e51b8152600401610cf79061496c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0383166122ba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610cf7565b6001600160a01b03821661231b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610cf7565b6001600160a01b038381165f8181526066602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f5f61238685613011565b915081905083811015611c0a576040516371c4efed60e01b81526004810182905260248101859052604401610cf7565b63ffffffff81165f9081525f516020614de55f395f51905f526020819052604082205480610fb35760405163f6ff4fb760e01b815263ffffffff85166004820152602401610cf7565b5f61241061240d8787613047565b90565b90505f61243b826124296124248a8a61305e565b613080565b61243660208d018d614279565b6130b4565b905060288611156124fb575f61247761245a60608c0160408d016149b7565b61246760208d018d614279565b846124728c8c6130db565b613125565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906124cc9086908d905f9087906004016149d2565b5f604051808303815f87803b1580156124e3575f5ffd5b505af11580156124f5573d5f5f3e3d5ffd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61253460208d018d614279565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b5f6125688484611ea6565b90505f198114610dc257818110156125c25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610cf7565b610dc28484848403612258565b6001600160a01b0383166126335760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610cf7565b6001600160a01b0382166126955760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610cf7565b6001600160a01b0383165f908152606560205260409020548181101561270c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610cf7565b6001600160a01b038085165f8181526065602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061276b9086815260200190565b60405180910390a3610dc2848484612e7e565b6033546001600160a01b0316331461156e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610cf7565b5f61105b613157565b61113a61277e565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156128215761281c836131ca565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561287b575060408051601f3d908101601f1916820190925261287891810190614a02565b60015b6128de5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610cf7565b5f516020614e055f395f51905f52811461294c5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610cf7565b5061281c838383613265565b6060805f6129b3856020013561296d86613289565b61297a60a0890189614576565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506132e292505050565b90935090505f816129c55760016129c8565b60025b90506129e86129da6020880188614279565b826109f360808a018a614576565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c008054919450906001600160a01b03168015612a8d5760405163043a78eb60e01b81526001600160a01b0382169063043a78eb90612a4c9089908990600401614a19565b602060405180830381865afa158015612a67573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a8b9190614a3d565b505b505050509250929050565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001612afa896123b6565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401612b2f929190614a58565b6040805180830381865afa158015612b49573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b6d9190614aff565b95945050505050565b606060998054610bc590614453565b6060609a8054610bc590614453565b6001600160a01b038216612bf45760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610cf7565b6001600160a01b0382165f9081526065602052604090205481811015612c675760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610cf7565b6001600160a01b0383165f8181526065602090815260408083208686039055606780548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361281c835f84612e7e565b5f612cda60028284866147db565b612ce391614b19565b60f01c90506003811461281c578282604051639a6d49cd60e01b8152600401610cf7929190614837565b612d15613b7c565b604080518082019091525f80825260208201525f80612d4a33604089013560608a0135612d4560208c018c614279565b61335c565b915091505f5f612d5a8984612958565b9092509050612d86612d6f60208b018b614279565b8383612d80368d90038d018d614b51565b8b613381565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90612dd4908d018d614279565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b6001600160a01b0381165f90815260cb602052604090208054600181018255905b50919050565b5f610ddb612e386127d8565b8360405161190160f01b8152600281019290925260228201526042902090565b5f5f5f612e6787878787613487565b91509150612e7481613541565b5095945050505050565b6001600160f81b03811115612ea657604051632ad907fb60e01b815260040160405180910390fd5b5f612eaf612086565b90508054612ebf9085858561368a565b8155600181018054905f612ed283614b82565b90915550604080516001600160a01b038088168252861660208201529081018490527fb9285eeffc25fae3689fd1d4d3245dbc73f87f3bc8cb50c1de55574221805d0d9060600160405180910390a250505050565b5f54610100900460ff16612f4d5760405162461bcd60e51b8152600401610cf79061496c565b6068612f598382614b9a565b50606961281c8282614b9a565b5f54610100900460ff16612f8c5760405162461bcd60e51b8152600401610cf79061496c565b6099612f988382614b9a565b50609a612fa58282614b9a565b50505f609781905560985550565b5f54610100900460ff16612fd95760405162461bcd60e51b8152600401610cf79061496c565b61156e33612207565b5f54610100900460ff166130085760405162461bcd60e51b8152600401610cf79061496c565b6121d58161373c565b5f7f000000000000000000000000000000000000000000000000000000000000000061303d8184614c54565b610ddb9190614c73565b5f61305560208284866147db565b610fb391614c8a565b5f61306d6028602084866147db565b61307691614ca7565b60c01c9392505050565b5f610ddb7f00000000000000000000000000000000000000000000000000000000000000006001600160401b038416614c73565b5f6001600160a01b0384166130c95761dead93505b6130d38484611fc0565b509092915050565b60606130ea82602881866147db565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b60608484848460405160200161313e9493929190614cdd565b6040516020818303038152906040529050949350505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61318161376b565b6131896137c3565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6001600160a01b0381163b6132375760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610cf7565b5f516020614e055f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b61326e836137f3565b5f8251118061327a5750805b1561281c57610dc28383613832565b5f806132b57f000000000000000000000000000000000000000000000000000000000000000084614c54565b90506001600160401b03811115610ddb5760405163e2ce941360e01b815260048101829052602401610cf7565b805160609015158061332b57848460405160200161331792919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052613352565b848433856040516020016133429493929190614d17565b6040516020818303038152906040525b9150935093915050565b5f5f61336985858561237b565b90925090506133788683612b94565b94509492505050565b613389613b7c565b5f613396845f0151613857565b6020850151909150156133b0576133b0846020015161387e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016134008c6123b6565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b815260040161343b929190614a58565b60806040518083038185885af1158015613457573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061347c9190614d43565b979650505050505050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156134bc57505f90506003613378565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561350d573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116613535575f60019250925050613378565b965f9650945050505050565b5f81600481111561355457613554614daa565b0361355c5750565b600181600481111561357057613570614daa565b036135bd5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610cf7565b60028160048111156135d1576135d1614daa565b0361361e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610cf7565b600381600481111561363257613632614daa565b0361113a5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610cf7565b5f6002858585856040516020016136d29493929190938452606092831b6bffffffffffffffffffffffff1990811660208601529190921b166034830152604882015260680190565b60408051601f19818403018152908290526136ec91614dbe565b602060405180830381855afa158015613707573d5f5f3e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061372a9190614a02565b6001600160f81b031695945050505050565b5f54610100900460ff166137625760405162461bcd60e51b8152600401610cf79061496c565b61113a8161395d565b5f5f613775612b76565b80519091501561378c578051602090910120919050565b609754801561379b5792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f5f6137cd612b85565b8051909150156137e4578051602090910120919050565b609854801561379b5792915050565b6137fc816131ca565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060610fb38383604051806060016040528060278152602001614e25602791396139aa565b5f81341461387a576040516304fb820960e51b8152346004820152602401610cf7565b5090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156138db573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138ff9190614dc9565b90506001600160a01b038116613928576040516329b99a9560e11b815260040160405180910390fd5b6112056001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085613a14565b5f54610100900460ff166139835760405162461bcd60e51b8152600401610cf79061496c565b6001600160a01b038116611c2957604051632d618d8160e21b815260040160405180910390fd5b60605f5f856001600160a01b0316856040516139c69190614dbe565b5f60405180830381855af49150503d805f81146139fe576040519150601f19603f3d011682016040523d82523d5f602084013e613a03565b606091505b50915091506111b886838387613a6e565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610dc2908590613ae6565b60608315613adc5782515f03613ad5576001600160a01b0385163b613ad55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610cf7565b508161159a565b61159a8383613b52565b5f5f60205f8451602086015f885af180613b05576040513d5f823e3d81fd5b50505f513d91508115613b1c578060011415613b29565b6001600160a01b0384163b155b15610dc257604051635274afe760e01b81526001600160a01b0385166004820152602401610cf7565b815115613b625781518083602001fd5b8060405162461bcd60e51b8152600401610cf79190613c28565b60405180606001604052805f81526020015f6001600160401b03168152602001613bb760405180604001604052805f81526020015f81525090565b905290565b6001600160a01b038116811461113a575f5ffd5b5f5f60408385031215613be1575f5ffd5b8235613bec81613bbc565b946020939093013593505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610fb36020830184613bfa565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715613c7057613c70613c3a565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613c9e57613c9e613c3a565b604052919050565b5f6001600160401b03821115613cbe57613cbe613c3a565b50601f01601f191660200190565b5f613cde613cd984613ca6565b613c76565b9050828152838383011115613cf1575f5ffd5b828260208301375f602084830101529392505050565b5f82601f830112613d16575f5ffd5b610fb383833560208501613ccc565b5f5f5f60608486031215613d37575f5ffd5b83356001600160401b03811115613d4c575f5ffd5b613d5886828701613d07565b93505060208401356001600160401b03811115613d73575f5ffd5b613d7f86828701613d07565b9250506040840135613d9081613bbc565b809150509250925092565b5f60e08284031215612e26575f5ffd5b5f60208284031215613dbb575f5ffd5b81356001600160401b03811115613dd0575f5ffd5b61159a84828501613d9b565b83518152602080850151908201525f60a0820160a0604084015280855180835260c08501915060c08160051b8601019250602087015f5b82811015613e5b5760bf198786030184528151805186526020810151905060406020870152613e456040870182613bfa565b9550506020938401939190910190600101613e13565b505085516060860152505060208401516080840152905061159a565b5f60608284031215612e26575f5ffd5b5f5f83601f840112613e97575f5ffd5b5081356001600160401b03811115613ead575f5ffd5b602083019150836020828501011115613ec4575f5ffd5b9250929050565b5f5f5f5f5f5f5f60e0888a031215613ee1575f5ffd5b613eeb8989613e77565b96506060880135955060808801356001600160401b03811115613f0c575f5ffd5b613f188a828b01613e87565b90965094505060a0880135613f2c81613bbc565b925060c08801356001600160401b03811115613f46575f5ffd5b613f528a828b01613e87565b989b979a50959850939692959293505050565b5f5f5f60608486031215613f77575f5ffd5b8335613f8281613bbc565b92506020840135613f9281613bbc565b929592945050506040919091013590565b803563ffffffff81168114613fb6575f5ffd5b919050565b5f5f60408385031215613fcc575f5ffd5b613bec83613fa3565b5f60208284031215613fe5575f5ffd5b8135610fb381613bbc565b801515811461113a575f5ffd5b5f5f6040838503121561400e575f5ffd5b82356001600160401b03811115614023575f5ffd5b61402f85828601613d9b565b925050602083013561404081613ff0565b809150509250929050565b815181526020808301519082015260408101610ddb565b5f5f60408385031215614073575f5ffd5b823561407e81613bbc565b915060208301356001600160401b03811115614098575f5ffd5b8301601f810185136140a8575f5ffd5b6140b785823560208401613ccc565b9150509250929050565b803561ffff81168114613fb6575f5ffd5b5f5f604083850312156140e3575f5ffd5b6140ec83613fa3565b91506140fa602084016140c1565b90509250929050565b5f5f5f5f60a08587031215614116575f5ffd5b6141208686613e77565b935060608501356001600160401b0381111561413a575f5ffd5b61414687828801613e87565b909450925050608085013561415a81613bbc565b939692955090935050565b60ff60f81b8816815260e060208201525f61418360e0830189613bfa565b82810360408401526141958189613bfa565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b818110156141ea5783518352602093840193909201916001016141cc565b50909b9a5050505050505050505050565b5f5f83601f84011261420b575f5ffd5b5081356001600160401b03811115614221575f5ffd5b6020830191508360208260051b8501011115613ec4575f5ffd5b5f5f6020838503121561424c575f5ffd5b82356001600160401b03811115614261575f5ffd5b61426d858286016141fb565b90969095509350505050565b5f60208284031215614289575f5ffd5b610fb382613fa3565b5f5f5f5f606085870312156142a5575f5ffd5b6142ae85613fa3565b93506142bc602086016140c1565b925060408501356001600160401b038111156142d6575f5ffd5b6142e287828801613e87565b95989497509550505050565b5f5f5f8385036080811215614301575f5ffd5b84356001600160401b03811115614316575f5ffd5b61432287828801613d9b565b9450506040601f1982011215614336575f5ffd5b506020840191506060840135613d9081613bbc565b5f60c082019050835182526001600160401b0360208501511660208301526040840151614385604084018280518252602090810151910152565b5082516080830152602083015160a0830152610fb3565b5f5f5f5f5f5f5f60e0888a0312156143b2575f5ffd5b87356143bd81613bbc565b965060208801356143cd81613bbc565b95506040880135945060608801359350608088013560ff811681146143f0575f5ffd5b9699959850939692959460a0840135945060c09093013592915050565b5f5f6040838503121561441e575f5ffd5b823561442981613bbc565b9150602083013561404081613bbc565b5f60608284031215614449575f5ffd5b610fb38383613e77565b600181811c9082168061446757607f821691505b602082108103612e2657634e487b7160e01b5f52602260045260245ffd5b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610ddb57610ddb61451d565b634e487b7160e01b5f52603260045260245ffd5b5f8235605e1983360301811261456c575f5ffd5b9190910192915050565b5f5f8335601e1984360301811261458b575f5ffd5b8301803591506001600160401b038211156145a4575f5ffd5b602001915036819003821315613ec4575f5ffd5b5f602082840312156145c8575f5ffd5b610fb3826140c1565b601f82111561281c57805f5260205f20601f840160051c810160208510156145f65750805b601f840160051c820191505b81811015611c9b575f8155600101614602565b6001600160401b0383111561462c5761462c613c3a565b6146408361463a8354614453565b836145d1565b5f601f841160018114614671575f851561465a5750838201355b5f19600387901b1c1916600186901b178355611c9b565b5f83815260208120601f198716915b828110156146a05786850135825560209485019460019092019101614680565b50868210156146bc575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b602080825281018290525f6040600584901b830181019083018583605e1936839003015b878210156147ce57868503603f190184528235818112614738575f5ffd5b890163ffffffff61474882613fa3565b16865261ffff61475a602083016140c1565b1660208701526040810135601e19823603018112614776575f5ffd5b016020810190356001600160401b03811115614790575f5ffd5b80360382131561479e575f5ffd5b606060408801526147b36060880182846146ce565b9650505060208301925060208401935060018201915061471a565b5092979650505050505050565b5f5f858511156147e9575f5ffd5b838611156147f5575f5ffd5b5050820193919092039150565b5f81518060208401855e5f93019283525090919050565b5f6148248286614802565b838582375f930192835250909392505050565b602081525f61159a6020830184866146ce565b5f823561013e1983360301811261456c575f5ffd5b6001600160401b038116811461113a575f5ffd5b63ffffffff61488189613fa3565b168152602088810135908201525f604089013561489d8161485f565b6001600160401b03811660408401525087606083015260e060808301526148c860e0830187896146ce565b6001600160a01b03861660a084015282810360c08401526148ea8185876146ce565b9a9950505050505050505050565b5f60208284031215614908575f5ffd5b81516001600160401b0381111561491d575f5ffd5b8201601f8101841361492d575f5ffd5b805161493b613cd982613ca6565b81815285602083850101111561494f575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f602082840312156149c7575f5ffd5b8135610fb38161485f565b60018060a01b038516815283602082015261ffff83166040820152608060608201525f6111b86080830184613bfa565b5f60208284031215614a12575f5ffd5b5051919050565b604081525f614a2b6040830185613bfa565b8281036020840152612b6d8185613bfa565b5f60208284031215614a4d575f5ffd5b8151610fb381613ff0565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a06080840152614a8d60e0840182613bfa565b90506060850151603f198483030160a0850152614aaa8282613bfa565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f60408284031215614ae0575f5ffd5b614ae8613c4e565b825181526020928301519281019290925250919050565b5f60408284031215614b0f575f5ffd5b610fb38383614ad0565b80356001600160f01b03198116906002841015614b4a576001600160f01b0319600285900360031b81901b82161691505b5092915050565b5f6040828403128015614b62575f5ffd5b50614b6b613c4e565b823581526020928301359281019290925250919050565b5f60018201614b9357614b9361451d565b5060010190565b81516001600160401b03811115614bb357614bb3613c3a565b614bc781614bc18454614453565b846145d1565b6020601f821160018114614bf9575f8315614be25750848201515b5f19600385901b1c1916600184901b178455611c9b565b5f84815260208120601f198516915b82811015614c285787850151825560209485019460019092019101614c08565b5084821015614c4557868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f82614c6e57634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610ddb57610ddb61451d565b80356020831015610ddb575f19602084900360031b1b1692915050565b80356001600160c01b03198116906008841015614b4a576001600160c01b031960089490940360031b84901b1690921692915050565b60c085901b6001600160c01b031916815260e084901b6001600160e01b0319166008820152600c81018390525f6111b8602c830184614802565b8481526001600160401b0360c01b8460c01b1660208201528260288201525f6111b86048830184614802565b5f6080828403128015614d54575f5ffd5b50604051606081016001600160401b0381118282101715614d7757614d77613c3a565b604052825181526020830151614d8c8161485f565b6020820152614d9e8460408501614ad0565b60408201529392505050565b634e487b7160e01b5f52602160045260245ffd5b5f610fb38284614802565b5f60208284031215614dd9575f5ffd5b8151610fb381613bbc56fe72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212208919d83629e37860fc15da660ee8b8d20b243bb2725adec77824c9f0b0bd511664736f6c634300081e0033","sourceMap":"1023:6877:173:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5371:182;;;;;;;;;;-1:-1:-1;5371:182:173;;;;;:::i;:::-;;:::i;:::-;;2516:98:114;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3992::173;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1205:32:175;;;1187:51;;1175:2;1160:18;3992:98:173;1041:203:175;2815:389:173;;;;;;;;;;-1:-1:-1;2815:389:173;;;;;:::i;:::-;;:::i;4802:197:114:-;;;;;;;;;;-1:-1:-1;4802:197:114;;;;;:::i;:::-;;:::i;:::-;;;3528:14:175;;3521:22;3503:41;;3491:2;3476:18;4802:197:114;3363:187:175;6517:1259:64;;;;;;;;;;-1:-1:-1;6517:1259:64;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;4798:149::-;;;;;;;;;;;;;:::i;4921:708:50:-;;;;;;:::i;:::-;;:::i;2777:40:64:-;;;;;;;;;;;;2816:1;2777:40;;;;;7334:6:175;7322:19;;;7304:38;;7292:2;7277:18;2777:40:64;7160:188:175;3987:140:64;;;;;;;;;;-1:-1:-1;3987:140:64;;;-1:-1:-1;;;7523:52:175;;4118:1:64;7606:2:175;7591:18;;7584:59;7496:18;3987:140:64;7353:296:175;1951:257:52;;;;;;;;;;-1:-1:-1;1951:257:52;;;887:1:51;7824:50:175;;759:1:50;7905:2:175;7890:18;;7883:59;7797:18;1951:257:52;7654:294:175;3613:106:114;;;;;;;;;;-1:-1:-1;3700:12:114;;3613:106;;;8099:25:175;;;8087:2;8072:18;3613:106:114;7953:177:175;2740:31:64;;;;;;;;;;;;2770:1;2740:31;;5561:256:114;;;;;;;;;;-1:-1:-1;5561:256:114;;;;;:::i;:::-;;:::i;3628:96:173:-;;;;;;;;;;;;;:::i;3812:102::-;;;;;;;;;;;;;:::i;4140:94::-;;;;;;;;;;-1:-1:-1;4214:13:173;4140:94;;;8820:4:175;8808:17;;;8790:36;;8778:2;8763:18;4140:94:173;8648:184:175;3028:202:49;;;;;;;;;;-1:-1:-1;3028:202:49;;;;;:::i;:::-;;:::i;3287:113:116:-;;;;;;;;;;;;;:::i;3408:195:112:-;;;;;;;;;;-1:-1:-1;3408:195:112;;;;;:::i;:::-;;:::i;6212:234:114:-;;;;;;;;;;-1:-1:-1;6212:234:114;;;;;:::i;:::-;;:::i;8227:774:64:-;;;;;;;;;;-1:-1:-1;8227:774:64;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7372:140:173:-;;;;;;;;;;-1:-1:-1;7372:140:173;;;;;:::i;:::-;;:::i;3922:220:112:-;;;;;;:::i;:::-;;:::i;2068:93:54:-;;;;;;;;;;-1:-1:-1;2149:4:54;2068:93;;3027:131:112;;;;;;;;;;;;;:::i;6478:224:173:-;;;;;;;;;;-1:-1:-1;6478:224:173;;;;;:::i;:::-;;:::i;1532:222:53:-;;;;;;;;;;-1:-1:-1;1532:222:53;;;;;:::i;:::-;;:::i;17277:132:64:-;;;;;;;;;;-1:-1:-1;17277:132:64;;;;;:::i;:::-;2485:13:49;;;;;17359:4:64;2485:13:49;;;-1:-1:-1;;;;;;;;;;;2485:13:49;;;;;;17382:20:64;;17277:132;1035:46:49;;;;;;;;;;;;;;;5989:222:64;;;;;;;;;;-1:-1:-1;5989:222:64;;;;;:::i;:::-;;:::i;3777:125:114:-;;;;;;;;;;-1:-1:-1;3777:125:114;;;;;:::i;:::-;-1:-1:-1;;;;;3877:18:114;3851:7;3877:18;;;:9;:18;;;;;;;3777:125;2085:101:105;;;;;;;;;;;;;:::i;4060:128:50:-;;;;;;;;;;-1:-1:-1;4060:128:50;;;;;:::i;:::-;4149:12;4060:128;;;;;;;;-1:-1:-1;;;;;12259:31:175;;;12241:50;;12229:2;12214:18;4060:128:50;12097:200:175;3043:126:116;;;;;;;;;;-1:-1:-1;3043:126:116;;;;;:::i;:::-;;:::i;2566:216:50:-;;;;;;;;;;-1:-1:-1;2566:216:50;;;;;:::i;:::-;;:::i;4521:861:125:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;5554:87:64:-;;;;;;;;;;-1:-1:-1;5633:1:64;5554:87;;1462:85:105;;;;;;;;;;-1:-1:-1;1534:6:105;;-1:-1:-1;;;;;1534:6:105;1462:85;;2727:102:114;;;;;;;;;;;;;:::i;2434:46:64:-;;;;;;;;;;;;;;;7754:144:173;;;;;;;;;;-1:-1:-1;7754:144:173;;;;;:::i;:::-;;:::i;4339:95::-;;;;;;;;;;-1:-1:-1;4399:4:173;4339:95;;6933:427:114;;;;;;;;;;-1:-1:-1;6933:427:114;;;;;:::i;:::-;;:::i;4098:189::-;;;;;;;;;;-1:-1:-1;4098:189:114;;;;;:::i;:::-;;:::i;1596:180:54:-;;;;;;;;;;;;;:::i;2513:600:53:-;;;;;;;;;;-1:-1:-1;2513:600:53;;;;;:::i;:::-;;:::i;2342:163:49:-;;;;;;;;;;-1:-1:-1;2342:163:49;;;;;:::i;:::-;2485:13;;2400:7;2485:13;;;-1:-1:-1;;;;;;;;;;;2485:13:49;;;;;;;2342:163;3872:1058:53;;;;;;;;;;-1:-1:-1;3872:1058:53;;;;;:::i;:::-;;:::i;2978:1333:54:-;;;;;;:::i;:::-;;:::i;9689:290:64:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;3424:104:173:-;;;;;;;;;;;;;:::i;4123:105:49:-;;;;;;;;;;-1:-1:-1;4123:105:49;;;;;:::i;:::-;;:::i;4959:409:54:-;;;;;;:::i;:::-;;:::i;2293:226::-;;;;;;;;;;-1:-1:-1;2293:226:54;;;;;:::i;:::-;;:::i;2341:637:116:-;;;;;;;;;;-1:-1:-1;2341:637:116;;;;;:::i;:::-;;:::i;4345:149:114:-;;;;;;;;;;-1:-1:-1;4345:149:114;;;;;:::i;:::-;;:::i;2335:198:105:-;;;;;;;;;;-1:-1:-1;2335:198:105;;;;;:::i;:::-;;:::i;6999:151:173:-;;;;;;;;;;-1:-1:-1;6999:151:173;;;;;:::i;:::-;;:::i;3324:149:50:-;;;;;;;;;;-1:-1:-1;3324:149:50;;;;;:::i;:::-;;:::i;5371:182:173:-;5453:10;:8;:10::i;:::-;-1:-1:-1;;;;;5439:24:173;:10;-1:-1:-1;;;;;5439:24:173;;5435:51;;5472:14;;-1:-1:-1;;;5472:14:173;;;;;;;;;;;5435:51;5496:16;5502:2;5506:5;5496;:16::i;:::-;5536:2;-1:-1:-1;;;;;5527:19:173;;5540:5;5527:19;;;;8099:25:175;;8087:2;8072:18;;7953:177;5527:19:173;;;;;;;;5371:182;;:::o;2516:98:114:-;2570:13;2602:5;2595:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2516:98;:::o;3992::173:-;4031:7;4057:19;:17;:19::i;:::-;:26;;;-1:-1:-1;;;;;4057:26:173;;3992:98;-1:-1:-1;3992:98:173:o;2815:389::-;3279:19:111;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:111;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:111;1713:19:119;:23;;;3387:66:111;;-1:-1:-1;3436:12:111;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:111;;19927:2:175;3325:201:111;;;19909:21:175;19966:2;19946:18;;;19939:30;20005:34;19985:18;;;19978:62;-1:-1:-1;;;20056:18:175;;;20049:44;20110:19;;3325:201:111;;;;;;;;;3536:12;:16;;-1:-1:-1;;3536:16:111;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:111;;;;;3562:65;-1:-1:-1;;;;;2936:26:173;::::1;2932:52;;2971:13;;-1:-1:-1::0;;;2971:13:173::1;;;;;;;;;;;2932:52;2994:28;3007:5;3014:7;2994:12;:28::i;:::-;3032:25;3051:5;3032:18;:25::i;:::-;3067:16;:14;:16::i;:::-;3093:28;3108:12;3093:14;:28::i;:::-;3131:24;:22;:24::i;:::-;3165:32;3184:12;3165:18;:32::i;:::-;3651:14:111::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:111;;;3721:14;;-1:-1:-1;8790:36:175;;3721:14:111;;8778:2:175;8763:18;3721:14:111;;;;;;;3647:99;3269:483;2815:389:173;;;:::o;4802:197:114:-;4885:4;965:10:120;4939:32:114;965:10:120;4955:7:114;4964:6;4939:8;:32::i;:::-;4988:4;4981:11;;;4802:197;;;;;:::o;6517:1259:64:-;-1:-1:-1;;;;;;;;;;;;;;;;;6669:35:64;6706:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;6706:28:64;6925:34;;;;;;;;-1:-1:-1;6925:34:64;;;-1:-1:-1;;6925:34:64;;;;;;;7076:21;;;;;;;;;;;6925:34;;-1:-1:-1;;;7076:21:64;;;-1:-1:-1;;;;;;;;;;;;;;;;;7076:21:64;;;;;;;;;;;;;;;-1:-1:-1;7060:37:64;-1:-1:-1;7534:20:64;;7584:120;7608:19;;;;7641:22;;;;7677:17;;;;7608:10;7677:17;:::i;:::-;7584:10;:120::i;:::-;7727:42;;;;;;;;;;;;;;;;6517:1259;;;;-1:-1:-1;;;;;;6517:1259:64:o;4798:149::-;4843:7;;2993:25;4889:20;4926:14;-1:-1:-1;;;;;4926:14:64;;4798:149;-1:-1:-1;;4798:149:64:o;4921:708:50:-;5234:8;-1:-1:-1;;;;;5226:31:50;5247:10;5226:31;5222:68;;5266:24;;-1:-1:-1;;;5266:24:50;;5279:10;5266:24;;;1187:51:175;1160:18;;5266:24:50;1041:203:175;5222:68:50;5426:14;;;;;;5390:32;;5407:14;;5426:7;5407:14;:::i;:::-;5390:16;:32::i;:::-;:50;5386:103;;5458:14;;;;:7;:14;:::i;:::-;5449:40;;-1:-1:-1;;;5449:40:50;;20541:10:175;20529:23;;;5449:40:50;;;20511:42:175;5474:14:50;;;;20569:18:175;;;20562:34;20484:18;;5449:40:50;20339:263:175;5386:103:50;5563:59;5574:7;5583:5;5590:8;;5600:9;5611:10;;5563;:59::i;:::-;4921:708;;;;;;;:::o;5561:256:114:-;5658:4;965:10:120;5714:38:114;5730:4;965:10:120;5745:6:114;5714:15;:38::i;:::-;5762:27;5772:4;5778:2;5782:6;5762:9;:27::i;:::-;5806:4;5799:11;;;5561:256;;;;;;:::o;3628:96:173:-;3666:7;3692:19;:17;:19::i;:::-;:25;;;3685:32;;3628:96;:::o;3812:102::-;3853:7;3879:19;:17;:19::i;:::-;:28;;;-1:-1:-1;;;;;3879:28:173;;3812:102;-1:-1:-1;3812:102:173:o;3028:202:49:-;1355:13:105;:11;:13::i;:::-;3167::49::1;::::0;::::1;3108:25;3167:13:::0;;;-1:-1:-1;;;;;;;;;;;3167:13:49::1;::::0;;;;;;;;:21;;;3203:20;;20511:42:175;;;20569:18;;20562:34;;;926:26:49;3203:20:::1;::::0;20484:18:175;3203:20:49::1;;;;;;;;3098:132;3028:202:::0;;:::o;3287:113:116:-;3347:7;3373:20;:18;:20::i;:::-;3366:27;;3287:113;:::o;3408:195:112:-;-1:-1:-1;;;;;1764:6:112;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:112;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:112;:20;-1:-1:-1;;;;;;;;;;;1557:65:109;-1:-1:-1;;;;;1557:65:109;;1478:151;1837:20:112;-1:-1:-1;;;;;1837:30:112;;1829:87;;;;-1:-1:-1;;;1829:87:112;;;;;;;:::i;:::-;3489:36:::1;3507:17;3489;:36::i;:::-;3576:12;::::0;;3586:1:::1;3576:12:::0;;;::::1;::::0;::::1;::::0;;;3535:61:::1;::::0;3557:17;;3576:12;3535:21:::1;:61::i;:::-;3408:195:::0;:::o;6212:234:114:-;6300:4;965:10:120;6354:64:114;965:10:120;6370:7:114;6407:10;6379:25;965:10:120;6370:7:114;6379:9;:25::i;:::-;:38;;;;:::i;:::-;6354:8;:64::i;8227:774:64:-;-1:-1:-1;;;;;;;;;;;;;;;;;8561:24:64;8589:74;8600:19;;;;8621:22;;;;8645:17;;;;8600:10;8645:17;:::i;8589:74::-;8558:105;;;8752:20;8774;8798:49;8818:10;8830:16;8798:19;:49::i;:::-;8751:96;;-1:-1:-1;8751:96:64;-1:-1:-1;8936:58:64;8943:17;;;;:10;:17;:::i;:::-;8962:7;8971;8980:13;8936:6;:58::i;:::-;8929:65;8227:774;-1:-1:-1;;;;;;8227:774:64:o;7372:140:173:-;7450:8;:6;:8::i;:::-;-1:-1:-1;;;;;7436:22:173;:10;-1:-1:-1;;;;;7436:22:173;;7432:47;;7467:12;;-1:-1:-1;;;7467:12:173;;;;;;;;;;;7432:47;7489:16;7495:2;7499:5;7489;:16::i;:::-;7372:140;;:::o;3922:220:112:-;-1:-1:-1;;;;;1764:6:112;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:112;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:112;:20;-1:-1:-1;;;;;;;;;;;1557:65:109;-1:-1:-1;;;;;1557:65:109;;1478:151;1837:20:112;-1:-1:-1;;;;;1837:30:112;;1829:87;;;;-1:-1:-1;;;1829:87:112;;;;;;;:::i;:::-;4037:36:::1;4055:17;4037;:36::i;:::-;4083:52;4105:17;4124:4;4130;4083:21;:52::i;3027:131::-:0;3105:7;2190:4;-1:-1:-1;;;;;2199:6:112;2182:23;;2174:92;;;;-1:-1:-1;;;2174:92:112;;21897:2:175;2174:92:112;;;21879:21:175;21936:2;21916:18;;;21909:30;21975:34;21955:18;;;21948:62;22046:26;22026:18;;;22019:54;22090:19;;2174:92:112;21695:420:175;2174:92:112;-1:-1:-1;;;;;;;;;;;;3027:131:112;:::o;6478:224:173:-;1355:13:105;:11;:13::i;:::-;-1:-1:-1;;;;;6553:25:173;::::1;6549:51;;6587:13;;-1:-1:-1::0;;;6587:13:173::1;;;;;;;;;;;6549:51;6641:11;6610:19;:17;:19::i;:::-;:28;;:42:::0;;-1:-1:-1;;;;;;6610:42:173::1;-1:-1:-1::0;;;;;6610:42:173;;::::1;;::::0;;6667:28:::1;::::0;;;::::1;::::0;::::1;::::0;-1:-1:-1;;6667:28:173::1;6478:224:::0;:::o;1532:222:53:-;1714:23;;;1632:33;1714:23;;;1151:36;1714:23;;;;;;;;:33;;;;;;;;;;;1707:40;;1608:12;;1151:36;1714:33;1707:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1532:222;;;;:::o;5989::64:-;1355:13:105;:11;:13::i;:::-;2993:25:64;6129:30;;-1:-1:-1;;;;;;6129:30:64::1;-1:-1:-1::0;;;;;6129:30:64;::::1;::::0;;::::1;::::0;;6174::::1;::::0;1187:51:175;;;6174:30:64::1;::::0;1175:2:175;1160:18;6174:30:64::1;;;;;;;;6062:149;5989:222:::0;:::o;2085:101:105:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;3043:126:116:-;-1:-1:-1;;;;;3138:14:116;;3112:7;3138:14;;;:7;:14;;;;;929::121;3138:24:116;838:112:121;2566:216:50;-1:-1:-1;;;;;2751:24:50;;2770:4;2751:24;2566:216;;;;;;;:::o;4521:861:125:-;4636:13;4663:18;4695:21;4730:15;4759:25;4798:12;4824:27;5087:11;;5102:1;5087:16;;;:39;;;;-1:-1:-1;5107:14:125;;:19;5087:39;5079:73;;;;-1:-1:-1;;;5079:73:125;;22322:2:175;5079:73:125;;;22304:21:175;22361:2;22341:18;;;22334:30;-1:-1:-1;;;22380:18:175;;;22373:51;22441:18;;5079:73:125;22120:345:175;5079:73:125;5214:13;:11;:13::i;:::-;5241:16;:14;:16::i;:::-;5349;;;5333:1;5349:16;;;;;;;;;-1:-1:-1;;;5163:212:125;;;-1:-1:-1;5163:212:125;;-1:-1:-1;5271:13:125;;-1:-1:-1;5306:4:125;;-1:-1:-1;5333:1:125;-1:-1:-1;5349:16:125;-1:-1:-1;5163:212:125;-1:-1:-1;4521:861:125:o;2727:102:114:-;2783:13;2815:7;2808:14;;;;;:::i;7754:144:173:-;7834:8;:6;:8::i;:::-;-1:-1:-1;;;;;7820:22:173;:10;-1:-1:-1;;;;;7820:22:173;;7816:47;;7851:12;;-1:-1:-1;;;7851:12:173;;;;;;;;;;;7816:47;7873:18;7879:4;7885:5;7873;:18::i;6933:427:114:-;7026:4;965:10:120;7026:4:114;7107:25;965:10:120;7124:7:114;7107:9;:25::i;:::-;7080:52;;7170:15;7150:16;:35;;7142:85;;;;-1:-1:-1;;;7142:85:114;;22672:2:175;7142:85:114;;;22654:21:175;22711:2;22691:18;;;22684:30;22750:34;22730:18;;;22723:62;-1:-1:-1;;;22801:18:175;;;22794:35;22846:19;;7142:85:114;22470:401:175;7142:85:114;7261:60;7270:5;7277:7;7305:15;7286:16;:34;7261:8;:60::i;:::-;-1:-1:-1;7349:4:114;;6933:427;-1:-1:-1;;;;6933:427:114:o;4098:189::-;4177:4;965:10:120;4231:28:114;965:10:120;4248:2:114;4252:6;4231:9;:28::i;1596:180:54:-;1648:7;;1200:41;1708:34;1050:207;2513:600:53;1355:13:105;:11;:13::i;:::-;1151:36:53;2625:33:::1;2700:356;2720:27:::0;;::::1;2700:356;;;2882:48;2902:16;;2919:1;2902:19;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:27;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;2882:19;:48::i;:::-;3018:16;;3035:1;3018:19;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:27;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;2944:1:::0;:17:::1;2962:16:::0;;2979:1;2962:19;;::::1;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:23;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;2944:42;;;;;;;;;;;;;;;:71;2987:16;;3004:1;2987:19;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:27;::::0;;;;;::::1;;;:::i;:::-;2944:71;;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;2944:71:53;;:101:::1;::::0;;:71;:101:::1;:::i;:::-;-1:-1:-1::0;2749:3:53::1;;2700:356;;;;3071:35;3089:16;;3071:35;;;;;;;:::i;3872:1058::-:0;4138:23;;;4039:33;4138:23;;;1151:36;4138:23;;;;;;;;:33;;;;;;;;;;4114:57;;4015:12;;4039:33;4138;4114:57;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4300:8;:15;4319:1;4300:20;4296:46;;4329:13;;4322:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4322:20:53;;-1:-1:-1;4322:20:53;;-1:-1:-1;;;;;4322:20:53;4296:46;4427:1;4403:25;;;4399:46;;4437:8;-1:-1:-1;4430:15:53;;-1:-1:-1;4430:15:53;4399:46;4592:1;4568:25;;4564:267;;4609:34;4629:13;;4609:19;:34::i;:::-;4792:8;4802:17;:13;4816:1;4802:13;;:17;:::i;:::-;4779:41;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4772:48;;;;;;4564:267;4909:13;;4894:29;;-1:-1:-1;;;4894:29:53;;;;;;;;;:::i;2978:1333:54:-;3079:9;3074:1037;3094:19;;;3074:1037;;;3134:29;3166:8;;3175:1;3166:11;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;3134:43;-1:-1:-1;3260:50:54;3267:20;;;;3134:43;3267:20;:::i;:::-;3289;;;;2485:13:49;;;;;17359:4:64;2485:13:49;;;-1:-1:-1;;;;;;;;;;;2485:13:49;;;;;;17382:20:64;;17277:132;3260:50:54;3255:65;;3312:8;;;3255:65;3882:4;:22;3913:12;;;;:6;3976:11;;;;4005:14;;;;3913:6;4005:14;:::i;:::-;4037:15;;;;;;;;:::i;:::-;4070:16;;;;:6;:16;:::i;:::-;3882:218;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3120:991;3074:1037;3115:3;;3074:1037;;;;4268:10;-1:-1:-1;;;;;4258:43:54;;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4258:45:54;;;;;;;;;;;;:::i;:::-;4241:63;;-1:-1:-1;;;4241:63:54;;;;;;;;:::i;9689:290:64:-;9850:34;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;9933:39:64;9939:10;9951:4;9957:14;9933:5;:39::i;:::-;9926:46;;;;9689:290;;;;;;;:::o;3424:104:173:-;3466:7;3492:19;:17;:19::i;:::-;:29;;3424:104;-1:-1:-1;3424:104:173:o;4123:105:49:-;1355:13:105;:11;:13::i;:::-;4190:31:49::1;::::0;-1:-1:-1;;;4190:31:49;;-1:-1:-1;;;;;1205:32:175;;;4190:31:49::1;::::0;::::1;1187:51:175::0;4190:8:49::1;:20;::::0;::::1;::::0;1160:18:175;;4190:31:49::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4123:105:::0;:::o;4959:409:54:-;5238:10;5260:4;5238:27;5234:50;;5274:10;;-1:-1:-1;;;5274:10:54;;;;;;;;;;;5234:50;5294:67;5313:7;5322:5;5329:8;;5339:9;5350:10;;5294:18;:67::i;2293:226::-;1355:13:105;:11;:13::i;:::-;1200:41:54;2453:22;;-1:-1:-1;;;;;;2453:22:54::1;-1:-1:-1::0;;;;;2453:22:54;::::1;::::0;;::::1;::::0;;2490::::1;::::0;1187:51:175;;;2490:22:54::1;::::0;1175:2:175;1160:18;2490:22:54::1;1041:203:175::0;2341:637:116;2576:8;2557:15;:27;;2549:69;;;;-1:-1:-1;;;2549:69:116;;31678:2:175;2549:69:116;;;31660:21:175;31717:2;31697:18;;;31690:30;31756:31;31736:18;;;31729:59;31805:18;;2549:69:116;31476:353:175;2549:69:116;2629:18;1372:95;2689:5;2696:7;2705:5;2712:16;2722:5;2712:9;:16::i;:::-;2660:79;;;;;;32121:25:175;;;;-1:-1:-1;;;;;32182:32:175;;;32162:18;;;32155:60;32251:32;;;;32231:18;;;32224:60;32300:18;;;32293:34;32343:19;;;32336:35;32387:19;;;32380:35;;;32093:19;;2660:79:116;;;;;;;;;;;;2650:90;;;;;;2629:111;;2751:12;2766:28;2783:10;2766:16;:28::i;:::-;2751:43;;2805:14;2822:39;2847:4;2853:1;2856;2859;2822:24;:39::i;:::-;2805:56;;2889:5;-1:-1:-1;;;;;2879:15:116;:6;-1:-1:-1;;;;;2879:15:116;;2871:58;;;;-1:-1:-1;;;2871:58:116;;32628:2:175;2871:58:116;;;32610:21:175;32667:2;32647:18;;;32640:30;32706:32;32686:18;;;32679:60;32756:18;;2871:58:116;32426:354:175;2871:58:116;2940:31;2949:5;2956:7;2965:5;2940:8;:31::i;:::-;2539:439;;;2341:637;;;;;;;:::o;4345:149:114:-;-1:-1:-1;;;;;4460:18:114;;;4434:7;4460:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4345:149::o;2335:198:105:-;1355:13;:11;:13::i;:::-;-1:-1:-1;;;;;2423:22:105;::::1;2415:73;;;::::0;-1:-1:-1;;;2415:73:105;;32987:2:175;2415:73:105::1;::::0;::::1;32969:21:175::0;33026:2;33006:18;;;32999:30;33065:34;33045:18;;;33038:62;-1:-1:-1;;;33116:18:175;;;33109:36;33162:19;;2415:73:105::1;32785:402:175::0;2415:73:105::1;2498:28;2517:8;2498:18;:28::i;6999:151:173:-:0;1355:13:105;:11;:13::i;:::-;7095:9:173::1;7066:19;:17;:19::i;:::-;:26;;:38:::0;;-1:-1:-1;;;;;;7066:38:173::1;-1:-1:-1::0;;;;;7066:38:173;;::::1;;::::0;;7119:24:::1;::::0;;;::::1;::::0;::::1;::::0;-1:-1:-1;;7119:24:173::1;6999:151:::0;:::o;3324:149:50:-;3406:4;3453:13;;;;;;3429:20;;3435:13;;3453:6;3435:13;:::i;3429:20::-;:37;;3324:149;-1:-1:-1;;3324:149:50:o;8878:535:114:-;-1:-1:-1;;;;;8961:21:114;;8953:65;;;;-1:-1:-1;;;8953:65:114;;33394:2:175;8953:65:114;;;33376:21:175;33433:2;33413:18;;;33406:30;33472:33;33452:18;;;33445:61;33523:18;;8953:65:114;33192:355:175;8953:65:114;9105:6;9089:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;9257:18:114;;;;;;:9;:18;;;;;;;;:28;;;;;;9310:37;8099:25:175;;;9310:37:114;;8072:18:175;9310:37:114;;;;;;;9358:48;9386:1;9390:7;9399:6;9358:19;:48::i;1396:215:173:-;1497:51;;;;;;;;;;;;-1:-1:-1;;;1497:51:173;;;;;1852:57:149;1447:23:173;1839:71:149;;;1447:23:173;1931:37:149;1497:51:173;1707:277:149;2139:147:114;5374:13:111;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:111;;;;;;;:::i;:::-;2241:38:114::1;2264:5;2271:7;2241:22;:38::i;2064:125:116:-:0;5374:13:111;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:111;;;;;;;:::i;:::-;2148:34:116::1;2172:4;2148:34;;;;;;;;;;;;;-1:-1:-1::0;;;2148:34:116::1;;::::0;:23:::1;:34::i;1024:95:105:-:0;5374:13:111;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:111;;;;;;;:::i;:::-;1086:26:105::1;:24;:26::i;4539:183:64:-:0;5374:13:111;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:111;;;;;;;:::i;:::-;4618:22:64::1;4630:9;4618:11;:22::i;:::-;4650:30;:28;:30::i;:::-;4690:25;2290:67:112::0;5374:13:111;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:111;;;;;;;:::i;2687:187:105:-;2779:6;;;-1:-1:-1;;;;;2795:17:105;;;-1:-1:-1;;;;;;2795:17:105;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;10815:340:114:-;-1:-1:-1;;;;;10916:19:114;;10908:68;;;;-1:-1:-1;;;10908:68:114;;34166:2:175;10908:68:114;;;34148:21:175;34205:2;34185:18;;;34178:30;34244:34;34224:18;;;34217:62;-1:-1:-1;;;34295:18:175;;;34288:34;34339:19;;10908:68:114;33964:400:175;10908:68:114;-1:-1:-1;;;;;10994:21:114;;10986:68;;;;-1:-1:-1;;;10986:68:114;;34571:2:175;10986:68:114;;;34553:21:175;34610:2;34590:18;;;34583:30;34649:34;34629:18;;;34622:62;-1:-1:-1;;;34700:18:175;;;34693:32;34742:19;;10986:68:114;34369:398:175;10986:68:114;-1:-1:-1;;;;;11065:18:114;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11116:32;;8099:25:175;;;11116:32:114;;8072:18:175;11116:32:114;;;;;;;10815:340;;;:::o;19589:668:64:-;19731:20;19753:24;19927:22;19939:9;19927:11;:22::i;:::-;19912:37;;20075:12;20056:31;;20157:12;20138:16;:31;20134:117;;;20192:48;;-1:-1:-1;;;20192:48:64;;;;;34946:25:175;;;34987:18;;;34980:34;;;34919:18;;20192:48:64;34772:248:175;3528:257:49;3691:13;;;3598:7;3691:13;;;-1:-1:-1;;;;;;;;;;;3691:13:49;;;;;;;;;3714:43;;3745:12;;-1:-1:-1;;;3745:12:49;;35199:10:175;35187:23;;3745:12:49;;;35169:42:175;35142:18;;3745:12:49;35025:192:175;14070:1806:64;14547:17;14567:36;:17;:8;;:15;:17::i;:::-;2891:2:67;2780:123;14567:36:64;14547:56;;14736:24;14763:62;14771:9;14782:26;14788:19;:8;;:17;:19::i;:::-;14782:5;:26::i;:::-;14810:14;;;;:7;:14;:::i;:::-;14763:7;:62::i;:::-;14736:89;-1:-1:-1;243:2:67;-1:-1:-1;;14836:955:64;;;14940:23;14966:175;15009:13;;;;;;;;:::i;:::-;15040:14;;;;:7;:14;:::i;:::-;15072:16;15106:21;:8;;:19;:21::i;:::-;14966:25;:175::i;:::-;15688:92;;-1:-1:-1;;;15688:92:64;;14940:201;;-1:-1:-1;;;;;;15688:8:64;:20;;;;:92;;15709:9;;15720:5;;15727:1;;14940:201;;15688:92;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14863:928;14836:955;-1:-1:-1;;;;;15806:63:64;;15818:5;15806:63;15825:14;;;;:7;:14;:::i;:::-;15806:63;;;20541:10:175;20529:23;;;20511:42;;20584:2;20569:18;;20562:34;;;20484:18;15806:63:64;;;;;;;14373:1503;;14070:1806;;;;;;;:::o;11436:411:114:-;11536:24;11563:25;11573:5;11580:7;11563:9;:25::i;:::-;11536:52;;-1:-1:-1;;11602:16:114;:37;11598:243;;11683:6;11663:16;:26;;11655:68;;;;-1:-1:-1;;;11655:68:114;;36426:2:175;11655:68:114;;;36408:21:175;36465:2;36445:18;;;36438:30;36504:31;36484:18;;;36477:59;36553:18;;11655:68:114;36224:353:175;11655:68:114;11765:51;11774:5;11781:7;11809:6;11790:16;:25;11765:8;:51::i;7814:788::-;-1:-1:-1;;;;;7910:18:114;;7902:68;;;;-1:-1:-1;;;7902:68:114;;36784:2:175;7902:68:114;;;36766:21:175;36823:2;36803:18;;;36796:30;36862:34;36842:18;;;36835:62;-1:-1:-1;;;36913:18:175;;;36906:35;36958:19;;7902:68:114;36582:401:175;7902:68:114;-1:-1:-1;;;;;7988:16:114;;7980:64;;;;-1:-1:-1;;;7980:64:114;;37190:2:175;7980:64:114;;;37172:21:175;37229:2;37209:18;;;37202:30;37268:34;37248:18;;;37241:62;-1:-1:-1;;;37319:18:175;;;37312:33;37362:19;;7980:64:114;36988:399:175;7980:64:114;-1:-1:-1;;;;;8126:15:114;;8104:19;8126:15;;;:9;:15;;;;;;8159:21;;;;8151:72;;;;-1:-1:-1;;;8151:72:114;;37594:2:175;8151:72:114;;;37576:21:175;37633:2;37613:18;;;37606:30;37672:34;37652:18;;;37645:62;-1:-1:-1;;;37723:18:175;;;37716:36;37769:19;;8151:72:114;37392:402:175;8151:72:114;-1:-1:-1;;;;;8257:15:114;;;;;;;:9;:15;;;;;;8275:20;;;8257:38;;8472:13;;;;;;;;;;:23;;;;;;8521:26;;;;;;8289:6;8099:25:175;;8087:2;8072:18;;7953:177;8521:26:114;;;;;;;;8558:37;8578:4;8584:2;8588:6;8558:19;:37::i;1620:130:105:-;1534:6;;-1:-1:-1;;;;;1534:6:105;965:10:120;1683:23:105;1675:68;;;;-1:-1:-1;;;1675:68:105;;38001:2:175;1675:68:105;;;37983:21:175;;;38020:18;;;38013:30;38079:34;38059:18;;;38052:62;38131:18;;1675:68:105;37799:356:175;3325:109:125;3378:7;3404:23;:21;:23::i;3269:66:173:-;1355:13:105;:11;:13::i;2841:944:109:-;839:66;3257:59;;;3253:526;;;3332:37;3351:17;3332:18;:37::i;:::-;2841:944;;;:::o;3253:526::-;3433:17;-1:-1:-1;;;;;3404:61:109;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3404:63:109;;;;;;;;-1:-1:-1;;3404:63:109;;;;;;;;;;;;:::i;:::-;;;3400:302;;3631:56;;-1:-1:-1;;;3631:56:109;;38597:2:175;3631:56:109;;;38579:21:175;38636:2;38616:18;;;38609:30;38675:34;38655:18;;;38648:62;-1:-1:-1;;;38726:18:175;;;38719:44;38780:19;;3631:56:109;38395:410:175;3400:302:109;-1:-1:-1;;;;;;;;;;;3517:28:109;;3509:82;;;;-1:-1:-1;;;3509:82:109;;39012:2:175;3509:82:109;;;38994:21:175;39051:2;39031:18;;;39024:30;39090:34;39070:18;;;39063:62;-1:-1:-1;;;39141:18:175;;;39134:39;39190:19;;3509:82:109;38810:405:175;3509:82:109;3468:138;3715:53;3733:17;3752:4;3758:9;3715:17;:53::i;12056:1496:64:-;12188:20;12210;12242:15;12413:324;12445:10;:13;;;12472:16;12478:9;12472:5;:16::i;:::-;12706:21;;;;:10;:21;:::i;:::-;12413:324;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12413:18:64;;-1:-1:-1;;;12413:324:64:i;:::-;12389:348;;-1:-1:-1;12389:348:64;-1:-1:-1;12817:14:64;12389:348;12834:33;;2770:1;12834:33;;;2816:1;12834:33;12817:50;-1:-1:-1;12989:67:64;13004:17;;;;:10;:17;:::i;:::-;13023:7;13032:23;;;;:10;:23;:::i;12989:67::-;2993:25;13372:14;;12979:77;;-1:-1:-1;2993:25:64;-1:-1:-1;;;;;13372:14:64;13466:23;;13462:83;;13491:54;;-1:-1:-1;;;13491:54:64;;-1:-1:-1;;;;;13491:36:64;;;;;:54;;13528:7;;13537;;13491:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13462:83;12232:1320;;;;12056:1496;;;;;:::o;2550:391:51:-;-1:-1:-1;;;;;;;;;;;;;;;;;2771:8:51;-1:-1:-1;;;;;2771:14:51;;2803:86;;;;;;;;2819:7;2803:86;;;;;;2828:25;2845:7;2828:16;:25::i;:::-;2803:86;;;;2855:8;2803:86;;;;2865:8;2803:86;;;;2875:13;2803:86;;;;;2915:4;2771:163;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2752:182;2550:391;-1:-1:-1;;;;;2550:391:51:o;5606:98:125:-;5660:13;5692:5;5685:12;;;;;:::i;5931:104::-;5988:13;6020:8;6013:15;;;;;:::i;9733:659:114:-;-1:-1:-1;;;;;9816:21:114;;9808:67;;;;-1:-1:-1;;;9808:67:114;;41609:2:175;9808:67:114;;;41591:21:175;41648:2;41628:18;;;41621:30;41687:34;41667:18;;;41660:62;-1:-1:-1;;;41738:18:175;;;41731:31;41779:19;;9808:67:114;41407:397:175;9808:67:114;-1:-1:-1;;;;;9971:18:114;;9946:22;9971:18;;;:9;:18;;;;;;10007:24;;;;9999:71;;;;-1:-1:-1;;;9999:71:114;;42011:2:175;9999:71:114;;;41993:21:175;42050:2;42030:18;;;42023:30;42089:34;42069:18;;;42062:62;-1:-1:-1;;;42140:18:175;;;42133:32;42182:19;;9999:71:114;41809:398:175;9999:71:114;-1:-1:-1;;;;;10104:18:114;;;;;;:9;:18;;;;;;;;10125:23;;;10104:44;;10241:12;:22;;;;;;;10289:37;8099:25:175;;;10104:18:114;;;10289:37;;8072:18:175;10289:37:114;;;;;;;10337:48;10357:7;10374:1;10378:6;10337:19;:48::i;5070:218:53:-;5156:18;5191:13;5202:1;5156:18;5191:8;;:13;:::i;:::-;5184:21;;;:::i;:::-;5177:29;;;-1:-1:-1;1003:1:53;5220:28;;5216:65;;5272:8;;5257:24;;-1:-1:-1;;;5257:24:53;;;;;;;;;:::i;10429:1333:64:-;10583:34;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;10981:20:64;;11031:140;11051:10;11075:19;;;;11108:22;;;;11144:17;;;;11075:10;11144:17;:::i;:::-;11031:6;:140::i;:::-;10980:191;;;;11260:20;11282;11306:49;11326:10;11338:16;11306:19;:49::i;:::-;11259:96;;-1:-1:-1;11259:96:64;-1:-1:-1;11478:66:64;11486:17;;;;:10;:17;:::i;:::-;11505:7;11514;11478:66;;;;;;;11523:4;11478:66;:::i;:::-;11529:14;11478:7;:66::i;:::-;11610:42;;;;;;;;;;;;;;;;;;;11676:15;;11465:79;;-1:-1:-1;11610:42:64;;-1:-1:-1;11712:10:64;;11676:15;11668:87;;11693:17;;;;:10;:17;:::i;:::-;11668:87;;;43264:10:175;43252:23;;;43234:42;;43307:2;43292:18;;43285:34;;;43335:18;;43328:34;;;43222:2;43207:18;11668:87:64;;;;;;;10649:1113;;;;10429:1333;;;;;;:::o;3531:214:116:-;-1:-1:-1;;;;;3662:14:116;;3591:15;3662:14;;;:7;:14;;;;;929::121;;1061:1;1043:19;;;;929:14;3721:17:116;3608:137;3531:214;;;:::o;4257:176:125:-;4334:7;4360:66;4393:20;:18;:20::i;:::-;4415:10;8569:4:124;8563:11;-1:-1:-1;;;8587:23:124;;8639:4;8630:14;;8623:39;;;;8691:4;8682:14;;8675:34;8745:4;8730:20;;;8369:397;6620:232;6705:7;6725:17;6744:18;6766:25;6777:4;6783:1;6786;6789;6766:10;:25::i;:::-;6724:67;;;;6801:18;6813:5;6801:11;:18::i;:::-;-1:-1:-1;6836:9:124;6620:232;-1:-1:-1;;;;;6620:232:124:o;5790:438:173:-;-1:-1:-1;;;;;5930:25:173;;5926:53;;;5964:15;;-1:-1:-1;;;5964:15:173;;;;;;;;;;;5926:53;5989:23;6015:19;:17;:19::i;:::-;5989:45;;6134:11;;6110:53;;6147:4;6153:2;6157:5;6110:23;:53::i;:::-;6096:67;;6194:7;;;:9;;;6096:11;6194:9;;;:::i;:::-;;;;-1:-1:-1;6178:43:173;;;-1:-1:-1;;;;;43733:32:175;;;43715:51;;43802:32;;43797:2;43782:18;;43775:60;43851:18;;;43844:34;;;6178:43:173;;43703:2:175;43688:18;6178:43:173;;;;;;;5916:312;5790:438;;;:::o;2292:159:114:-;5374:13:111;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:111;;;;;;;:::i;:::-;2404:5:114::1;:13;2412:5:::0;2404;:13:::1;:::i;:::-;-1:-1:-1::0;2427:7:114::1;:17;2437:7:::0;2427;:17:::1;:::i;2972:267:125:-:0;5374:13:111;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:111;;;;;;;:::i;:::-;3084:5:125::1;:12;3092:4:::0;3084:5;:12:::1;:::i;:::-;-1:-1:-1::0;3106:8:125::1;:18;3117:7:::0;3106:8;:18:::1;:::i;:::-;-1:-1:-1::0;;3203:1:125::1;3189:11;:15:::0;;;3214:14:::1;:18:::0;-1:-1:-1;2972:267:125:o;1125:111:105:-;5374:13:111;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:111;;;;;;;:::i;:::-;1197:32:105::1;965:10:120::0;1197:18:105::1;:32::i;1456:189:52:-:0;5374:13:111;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:111;;;;;;;:::i;:::-;1532:26:52::1;1548:9;1532:15;:26::i;17803:172:64:-:0;17874:16;17947:21;17910:33;17947:21;17910:9;:33;:::i;:::-;17909:59;;;;:::i;1573:123:67:-;1633:7;1667:21;188:2;1633:7;1667:4;;:21;:::i;:::-;1659:30;;;:::i;1874:152::-;1936:6;1975:42;243:2;188;1975:4;;:42;:::i;:::-;1968:50;;;:::i;:::-;1961:58;;;1874:152;-1:-1:-1;;;1874:152:67:o;18199:139:64:-;18263:16;18298:33;18310:21;-1:-1:-1;;;;;18298:33:64;;;:::i;4769:293:173:-;4890:24;-1:-1:-1;;;;;4934:17:173;;4930:69;;4981:6;4967:21;;4930:69;5008:21;5014:3;5019:9;5008:5;:21::i;:::-;-1:-1:-1;5046:9:173;;4769:293;-1:-1:-1;;4769:293:173:o;2186:130:67:-;2250:12;2281:28;:4;243:2;2281:4;;:28;:::i;:::-;2274:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2274:35:67;;2186:130;-1:-1:-1;;;;;;2186:130:67:o;640:284:66:-;824:17;877:6;885:7;894:9;905:11;860:57;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;853:64;;640:284;;;;;;:::o;3440:192:125:-;3495:7;1934:95;3554:17;:15;:17::i;:::-;3573:20;:18;:20::i;:::-;3531:93;;;;;;46938:25:175;;;;46979:18;;46972:34;;;;47022:18;;;47015:34;3595:13:125;47065:18:175;;;47058:34;3618:4:125;47108:19:175;;;47101:61;46910:19;;3531:93:125;;;;;;;;;;;;3521:104;;;;;;3514:111;;3440:192;:::o;1720:281:109:-;-1:-1:-1;;;;;1713:19:119;;;1793:106:109;;;;-1:-1:-1;;;1793:106:109;;47375:2:175;1793:106:109;;;47357:21:175;47414:2;47394:18;;;47387:30;47453:34;47433:18;;;47426:62;-1:-1:-1;;;47504:18:175;;;47497:43;47557:19;;1793:106:109;47173:409:175;1793:106:109;-1:-1:-1;;;;;;;;;;;1909:85:109;;-1:-1:-1;;;;;;1909:85:109;-1:-1:-1;;;;;1909:85:109;;;;;;;;;;1720:281::o;2393:276::-;2501:29;2512:17;2501:10;:29::i;:::-;2558:1;2544:4;:11;:15;:28;;;;2563:9;2544:28;2540:123;;;2588:64;2628:17;2647:4;2588:39;:64::i;18738:266:64:-;18803:15;;18850:33;18862:21;18850:9;:33;:::i;:::-;18830:53;-1:-1:-1;;;;;;18897:28:64;;18893:70;;;18934:29;;-1:-1:-1;;;18934:29:64;;;;;8099:25:175;;;8072:18;;18934:29:64;7953:177:175;598:506:67;791:18;;732:17;;791:22;;;934:163;;1074:7;1083:13;1057:40;;;;;;;;47742:19:175;;;47817:3;47795:16;-1:-1:-1;;;;;;47791:51:175;47786:2;47777:12;;47770:73;47868:2;47859:12;;47587:290;1057:40:67;;;;;;;;;;;;;934:163;;;976:7;985:13;1017:10;1030:11;959:83;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;934:163;927:170;;598:506;;;;;;:::o;4440:323:173:-;4579:20;4601:24;4676:44;4687:9;4698:12;4712:7;4676:10;:44::i;:::-;4641:79;;-1:-1:-1;4641:79:173;-1:-1:-1;4730:26:173;4736:5;4641:79;4730:5;:26::i;:::-;4440:323;;;;;;;:::o;3700:766:51:-;3901:31;;:::i;:::-;4066:20;4089:26;4100:4;:14;;;4089:10;:26::i;:::-;4129:15;;;;4066:49;;-1:-1:-1;4129:19:51;4125:53;;4150:28;4162:4;:15;;;4150:11;:28::i;:::-;4267:8;-1:-1:-1;;;;;4267:13:51;;4289:12;4321:92;;;;;;;;4337:7;4321:92;;;;;;4346:25;4363:7;4346:16;:25::i;:::-;4321:92;;;;4373:8;4321:92;;;;4383:8;4321:92;;;;4411:1;4393:4;:15;;;:19;4321:92;;;;;4431:14;4267:192;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4189:270;3700:766;-1:-1:-1;;;;;;;3700:766:51:o;5031:1456:124:-;5119:7;;6043:66;6030:79;;6026:161;;;-1:-1:-1;6141:1:124;;-1:-1:-1;6145:30:124;6125:51;;6026:161;6298:24;;;6281:14;6298:24;;;;;;;;;49338:25:175;;;49411:4;49399:17;;49379:18;;;49372:45;;;;49433:18;;;49426:34;;;49476:18;;;49469:34;;;6298:24:124;;49310:19:175;;6298:24:124;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6298:24:124;;-1:-1:-1;;6298:24:124;;;-1:-1:-1;;;;;;;6336:20:124;;6332:101;;6388:1;6392:29;6372:50;;;;;;;6332:101;6451:6;6459:20;;-1:-1:-1;5031:1456:124;-1:-1:-1;;;;;5031:1456:124:o;592:511::-;669:20;660:5;:29;;;;;;;;:::i;:::-;;656:441;;592:511;:::o;656:441::-;765:29;756:5;:38;;;;;;;;:::i;:::-;;752:345;;810:34;;-1:-1:-1;;;810:34:124;;49848:2:175;810:34:124;;;49830:21:175;49887:2;49867:18;;;49860:30;49926:26;49906:18;;;49899:54;49970:18;;810:34:124;49646:348:175;752:345:124;874:35;865:5;:44;;;;;;;;:::i;:::-;;861:236;;925:41;;-1:-1:-1;;;925:41:124;;50201:2:175;925:41:124;;;50183:21:175;50240:2;50220:18;;;50213:30;50279:33;50259:18;;;50252:61;50330:18;;925:41:124;49999:355:175;861:236:124;996:30;987:5;:39;;;;;;;;:::i;:::-;;983:114;;1042:44;;-1:-1:-1;;;1042:44:124;;50561:2:175;1042:44:124;;;50543:21:175;50600:2;50580:18;;;50573:30;50639:34;50619:18;;;50612:62;-1:-1:-1;;;50690:18:175;;;50683:32;50732:19;;1042:44:124;50359:398:175;259:270:167;354:12;393:47;417:4;423;429:2;433:5;400:39;;;;;;;;;;50975:19:175;;;51032:2;51028:15;;;-1:-1:-1;;51024:53:175;;;51019:2;51010:12;;51003:75;51112:15;;;;51108:53;51103:2;51094:12;;51087:75;51187:2;51178:12;;51171:28;51224:3;51215:13;;50762:472;400:39:167;;;;-1:-1:-1;;400:39:167;;;;;;;;;;393:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;385:137:167;;259:270;-1:-1:-1;;;;;259:270:167:o;1787:123:49:-;5374:13:111;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:111;;;;;;;:::i;:::-;1867:36:49::1;1893:9;1867:25;:36::i;6250:630:125:-:0;6300:7;6319:18;6340:13;:11;:13::i;:::-;6367:18;;6319:34;;-1:-1:-1;6367:22:125;6363:511;;6412:22;;;;;;;;6250:630;-1:-1:-1;6250:630:125:o;6363:511::-;6709:11;;6738:15;;6734:130;;6780:10;6250:630;-1:-1:-1;;6250:630:125:o;6734:130::-;6836:13;6829:20;;;;6250:630;:::o;7101:666::-;7154:7;7173:21;7197:16;:14;:16::i;:::-;7227:21;;7173:40;;-1:-1:-1;7227:25:125;7223:538;;7275:25;;;;;;;;7101:666;-1:-1:-1;7101:666:125:o;7223:538::-;7587:14;;7619:18;;7615:136;;7664:13;7101:666;-1:-1:-1;;7101:666:125:o;2107:152:109:-;2173:37;2192:17;2173:18;:37::i;:::-;2225:27;;-1:-1:-1;;;;;2225:27:109;;;;;;;;2107:152;:::o;6685:198:119:-;6768:12;6799:77;6820:6;6828:4;6799:77;;;;;;;;;;;;;;;;;:20;:77::i;5162:191:51:-;5228:17;5274:10;5261:9;:23;5257:62;;5293:26;;-1:-1:-1;;;5293:26:51;;5309:9;5293:26;;;8099:25:175;8072:18;;5293:26:51;7953:177:175;5257:62:51;-1:-1:-1;5336:10:51;5162:191::o;5730:410::-;5883:15;5901:8;-1:-1:-1;;;;;5901:16:51;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5883:36;-1:-1:-1;;;;;;5933:21:51;;5929:54;;5963:20;;-1:-1:-1;;;5963:20:51;;;;;;;;;;;5929:54;6057:76;-1:-1:-1;;;;;6057:32:51;;6090:10;6110:8;6121:11;6057:32;:76::i;1916:191:49:-;5374:13:111;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:111;;;;;;;:::i;:::-;-1:-1:-1;;;;;2010:23:49;::::1;2006:53;;2042:17;;-1:-1:-1::0;;;2042:17:49::1;;;;;;;;;;;7069:325:119::0;7210:12;7235;7249:23;7276:6;-1:-1:-1;;;;;7276:19:119;7296:4;7276:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7234:67;;;;7318:69;7345:6;7353:7;7362:10;7374:12;7318:26;:69::i;1618:188:142:-;1745:53;;;-1:-1:-1;;;;;43733:32:175;;;1745:53:142;;;43715:51:175;43802:32;;43782:18;;;43775:60;43851:18;;;;43844:34;;;1745:53:142;;;;;;;;;;43688:18:175;;;;1745:53:142;;;;;;;;-1:-1:-1;;;;;1745:53:142;-1:-1:-1;;;1745:53:142;;;1718:81;;1738:5;;1718:19;:81::i;7682:628:119:-;7862:12;7890:7;7886:418;;;7917:10;:17;7938:1;7917:22;7913:286;;-1:-1:-1;;;;;1713:19:119;;;8124:60;;;;-1:-1:-1;;;8124:60:119;;51891:2:175;8124:60:119;;;51873:21:175;51930:2;51910:18;;;51903:30;51969:31;51949:18;;;51942:59;52018:18;;8124:60:119;51689:353:175;8124:60:119;-1:-1:-1;8219:10:119;8212:17;;7886:418;8260:33;8268:10;8280:12;8260:7;:33::i;8370:720:142:-;8450:18;8478:19;8616:4;8613:1;8606:4;8600:11;8593:4;8587;8583:15;8580:1;8573:5;8566;8561:60;8673:7;8663:176;;8717:4;8711:11;8762:16;8759:1;8754:3;8739:40;8808:16;8803:3;8796:29;8663:176;-1:-1:-1;;8916:1:142;8910:8;8866:16;;-1:-1:-1;8942:15:142;;:68;;8994:11;9009:1;8994:16;;8942:68;;;-1:-1:-1;;;;;8960:26:142;;;:31;8942:68;8938:146;;;9033:40;;-1:-1:-1;;;9033:40:142;;-1:-1:-1;;;;;1205:32:175;;9033:40:142;;;1187:51:175;1160:18;;9033:40:142;1041:203:175;8832:540:119;8991:17;;:21;8987:379;;9219:10;9213:17;9275:15;9262:10;9258:2;9254:19;9247:44;8987:379;9342:12;9335:20;;-1:-1:-1;;;9335:20:119;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:131:175:-;-1:-1:-1;;;;;89:31:175;;79:42;;69:70;;135:1;132;125:12;150:367;218:6;226;279:2;267:9;258:7;254:23;250:32;247:52;;;295:1;292;285:12;247:52;334:9;321:23;353:31;378:5;353:31;:::i;:::-;403:5;481:2;466:18;;;;453:32;;-1:-1:-1;;;150:367:175:o;522:289::-;564:3;602:5;596:12;629:6;624:3;617:19;685:6;678:4;671:5;667:16;660:4;655:3;651:14;645:47;737:1;730:4;721:6;716:3;712:16;708:27;701:38;800:4;793:2;789:7;784:2;776:6;772:15;768:29;763:3;759:39;755:50;748:57;;;522:289;;;;:::o;816:220::-;965:2;954:9;947:21;928:4;985:45;1026:2;1015:9;1011:18;1003:6;985:45;:::i;1249:127::-;1310:10;1305:3;1301:20;1298:1;1291:31;1341:4;1338:1;1331:15;1365:4;1362:1;1355:15;1381:257;1453:4;1447:11;;;1485:17;;-1:-1:-1;;;;;1517:34:175;;1553:22;;;1514:62;1511:88;;;1579:18;;:::i;:::-;1615:4;1608:24;1381:257;:::o;1643:275::-;1714:2;1708:9;1779:2;1760:13;;-1:-1:-1;;1756:27:175;1744:40;;-1:-1:-1;;;;;1799:34:175;;1835:22;;;1796:62;1793:88;;;1861:18;;:::i;:::-;1897:2;1890:22;1643:275;;-1:-1:-1;1643:275:175:o;1923:187::-;1972:4;-1:-1:-1;;;;;1997:6:175;1994:30;1991:56;;;2027:18;;:::i;:::-;-1:-1:-1;2093:2:175;2072:15;-1:-1:-1;;2068:29:175;2099:4;2064:40;;1923:187::o;2115:338::-;2180:5;2209:53;2225:36;2254:6;2225:36;:::i;:::-;2209:53;:::i;:::-;2200:62;;2285:6;2278:5;2271:21;2325:3;2316:6;2311:3;2307:16;2304:25;2301:45;;;2342:1;2339;2332:12;2301:45;2391:6;2386:3;2379:4;2372:5;2368:16;2355:43;2445:1;2438:4;2429:6;2422:5;2418:18;2414:29;2407:40;2115:338;;;;;:::o;2458:222::-;2501:5;2554:3;2547:4;2539:6;2535:17;2531:27;2521:55;;2572:1;2569;2562:12;2521:55;2594:80;2670:3;2661:6;2648:20;2641:4;2633:6;2629:17;2594:80;:::i;2685:673::-;2782:6;2790;2798;2851:2;2839:9;2830:7;2826:23;2822:32;2819:52;;;2867:1;2864;2857:12;2819:52;2907:9;2894:23;-1:-1:-1;;;;;2932:6:175;2929:30;2926:50;;;2972:1;2969;2962:12;2926:50;2995;3037:7;3028:6;3017:9;3013:22;2995:50;:::i;:::-;2985:60;;;3098:2;3087:9;3083:18;3070:32;-1:-1:-1;;;;;3117:8:175;3114:32;3111:52;;;3159:1;3156;3149:12;3111:52;3182;3226:7;3215:8;3204:9;3200:24;3182:52;:::i;:::-;3172:62;;;3284:2;3273:9;3269:18;3256:32;3297:31;3322:5;3297:31;:::i;:::-;3347:5;3337:15;;;2685:673;;;;;:::o;3555:158::-;3617:5;3662:3;3653:6;3648:3;3644:16;3640:26;3637:46;;;3679:1;3676;3669:12;3718:361;3807:6;3860:2;3848:9;3839:7;3835:23;3831:32;3828:52;;;3876:1;3873;3866:12;3828:52;3916:9;3903:23;-1:-1:-1;;;;;3941:6:175;3938:30;3935:50;;;3981:1;3978;3971:12;3935:50;4004:69;4065:7;4056:6;4045:9;4041:22;4004:69;:::i;4238:1306::-;4158:12;;4146:25;;4220:4;4209:16;;;4203:23;4187:14;;;4180:47;4610:4;4658:3;4643:19;;4752:3;4747:2;4736:9;4732:18;4725:31;4776:6;4811;4805:13;4842:6;4834;4827:22;4880:3;4869:9;4865:19;4858:26;;4943:3;4933:6;4930:1;4926:14;4915:9;4911:30;4907:40;4893:54;;4982:4;4974:6;4970:17;5005:1;5015:437;5029:6;5026:1;5023:13;5015:437;;;5122:3;5118:8;5106:9;5098:6;5094:22;5090:37;5085:3;5078:50;5157:6;5151:13;5198:2;5192:9;5184:6;5177:25;5249:4;5245:2;5241:13;5235:20;5215:40;;5294:2;5287:4;5279:6;5275:17;5268:29;5320:48;5364:2;5356:6;5352:15;5338:12;5320:48;:::i;:::-;5310:58;-1:-1:-1;;5403:4:175;5428:14;;;;5391:17;;;;;5051:1;5044:9;5015:437;;;-1:-1:-1;;4158:12:175;;5534:2;5519:18;;4146:25;-1:-1:-1;;4220:4:175;4209:16;;4203:23;4187:14;;;4180:47;5469:6;-1:-1:-1;5484:54:175;4084:149;5549:154;5608:5;5653:2;5644:6;5639:3;5635:16;5631:25;5628:45;;;5669:1;5666;5659:12;5708:347;5759:8;5769:6;5823:3;5816:4;5808:6;5804:17;5800:27;5790:55;;5841:1;5838;5831:12;5790:55;-1:-1:-1;5864:20:175;;-1:-1:-1;;;;;5896:30:175;;5893:50;;;5939:1;5936;5929:12;5893:50;5976:4;5968:6;5964:17;5952:29;;6028:3;6021:4;6012:6;6004;6000:19;5996:30;5993:39;5990:59;;;6045:1;6042;6035:12;5990:59;5708:347;;;;;:::o;6060:1095::-;6203:6;6211;6219;6227;6235;6243;6251;6304:3;6292:9;6283:7;6279:23;6275:33;6272:53;;;6321:1;6318;6311:12;6272:53;6344;6389:7;6378:9;6344:53;:::i;:::-;6334:63;-1:-1:-1;6466:2:175;6451:18;;6438:32;;-1:-1:-1;6545:3:175;6530:19;;6517:33;-1:-1:-1;;;;;6562:30:175;;6559:50;;;6605:1;6602;6595:12;6559:50;6644:58;6694:7;6685:6;6674:9;6670:22;6644:58;:::i;:::-;6721:8;;-1:-1:-1;6618:84:175;-1:-1:-1;;6808:3:175;6793:19;;6780:33;6822;6780;6822;:::i;:::-;6874:7;-1:-1:-1;6934:3:175;6919:19;;6906:33;-1:-1:-1;;;;;6951:32:175;;6948:52;;;6996:1;6993;6986:12;6948:52;7035:60;7087:7;7076:8;7065:9;7061:24;7035:60;:::i;:::-;6060:1095;;;;-1:-1:-1;6060:1095:175;;-1:-1:-1;6060:1095:175;;;;7009:86;;-1:-1:-1;;;6060:1095:175:o;8135:508::-;8212:6;8220;8228;8281:2;8269:9;8260:7;8256:23;8252:32;8249:52;;;8297:1;8294;8287:12;8249:52;8336:9;8323:23;8355:31;8380:5;8355:31;:::i;:::-;8405:5;-1:-1:-1;8462:2:175;8447:18;;8434:32;8475:33;8434:32;8475:33;:::i;:::-;8135:508;;8527:7;;-1:-1:-1;;;8607:2:175;8592:18;;;;8579:32;;8135:508::o;8837:163::-;8904:20;;8964:10;8953:22;;8943:33;;8933:61;;8990:1;8987;8980:12;8933:61;8837:163;;;:::o;9005:298::-;9072:6;9080;9133:2;9121:9;9112:7;9108:23;9104:32;9101:52;;;9149:1;9146;9139:12;9101:52;9172:28;9190:9;9172:28;:::i;9490:247::-;9549:6;9602:2;9590:9;9581:7;9577:23;9573:32;9570:52;;;9618:1;9615;9608:12;9570:52;9657:9;9644:23;9676:31;9701:5;9676:31;:::i;9742:118::-;9828:5;9821:13;9814:21;9807:5;9804:32;9794:60;;9850:1;9847;9840:12;9865:490;9960:6;9968;10021:2;10009:9;10000:7;9996:23;9992:32;9989:52;;;10037:1;10034;10027:12;9989:52;10077:9;10064:23;-1:-1:-1;;;;;10102:6:175;10099:30;10096:50;;;10142:1;10139;10132:12;10096:50;10165:69;10226:7;10217:6;10206:9;10202:22;10165:69;:::i;:::-;10155:79;;;10284:2;10273:9;10269:18;10256:32;10297:28;10319:5;10297:28;:::i;:::-;10344:5;10334:15;;;9865:490;;;;;:::o;10360:257::-;4158:12;;4146:25;;4220:4;4209:16;;;4203:23;4187:14;;;4180:47;10554:2;10539:18;;10566:45;4084:149;10622:585;10699:6;10707;10760:2;10748:9;10739:7;10735:23;10731:32;10728:52;;;10776:1;10773;10766:12;10728:52;10815:9;10802:23;10834:31;10859:5;10834:31;:::i;:::-;10884:5;-1:-1:-1;10940:2:175;10925:18;;10912:32;-1:-1:-1;;;;;10956:30:175;;10953:50;;;10999:1;10996;10989:12;10953:50;11022:22;;11075:4;11067:13;;11063:27;-1:-1:-1;11053:55:175;;11104:1;11101;11094:12;11053:55;11127:74;11193:7;11188:2;11175:16;11170:2;11166;11162:11;11127:74;:::i;:::-;11117:84;;;10622:585;;;;;:::o;11212:159::-;11279:20;;11339:6;11328:18;;11318:29;;11308:57;;11361:1;11358;11351:12;11376:256;11442:6;11450;11503:2;11491:9;11482:7;11478:23;11474:32;11471:52;;;11519:1;11516;11509:12;11471:52;11542:28;11560:9;11542:28;:::i;:::-;11532:38;;11589:37;11622:2;11611:9;11607:18;11589:37;:::i;:::-;11579:47;;11376:256;;;;;:::o;12302:670::-;12416:6;12424;12432;12440;12493:3;12481:9;12472:7;12468:23;12464:33;12461:53;;;12510:1;12507;12500:12;12461:53;12533;12578:7;12567:9;12533:53;:::i;:::-;12523:63;;12637:2;12626:9;12622:18;12609:32;-1:-1:-1;;;;;12656:6:175;12653:30;12650:50;;;12696:1;12693;12686:12;12650:50;12735:58;12785:7;12776:6;12765:9;12761:22;12735:58;:::i;:::-;12812:8;;-1:-1:-1;12709:84:175;-1:-1:-1;;12897:3:175;12882:19;;12869:33;12911:31;12869:33;12911:31;:::i;:::-;12302:670;;;;-1:-1:-1;12302:670:175;;-1:-1:-1;;12302:670:175:o;12977:1238::-;13383:3;13378;13374:13;13366:6;13362:26;13351:9;13344:45;13425:3;13420:2;13409:9;13405:18;13398:31;13325:4;13452:46;13493:3;13482:9;13478:19;13470:6;13452:46;:::i;:::-;13546:9;13538:6;13534:22;13529:2;13518:9;13514:18;13507:50;13580:33;13606:6;13598;13580:33;:::i;:::-;13644:2;13629:18;;13622:34;;;-1:-1:-1;;;;;13693:32:175;;13687:3;13672:19;;13665:61;13713:3;13742:19;;13735:35;;;13807:22;;;13801:3;13786:19;;13779:51;13879:13;;13901:22;;;13951:2;13977:15;;;;-1:-1:-1;13939:15:175;;;;-1:-1:-1;14020:169:175;14034:6;14031:1;14028:13;14020:169;;;14095:13;;14083:26;;14138:2;14164:15;;;;14129:12;;;;14056:1;14049:9;14020:169;;;-1:-1:-1;14206:3:175;;12977:1238;-1:-1:-1;;;;;;;;;;;12977:1238:175:o;14220:395::-;14311:8;14321:6;14375:3;14368:4;14360:6;14356:17;14352:27;14342:55;;14393:1;14390;14383:12;14342:55;-1:-1:-1;14416:20:175;;-1:-1:-1;;;;;14448:30:175;;14445:50;;;14491:1;14488;14481:12;14445:50;14528:4;14520:6;14516:17;14504:29;;14588:3;14581:4;14571:6;14568:1;14564:14;14556:6;14552:27;14548:38;14545:47;14542:67;;;14605:1;14602;14595:12;14620:505;14746:6;14754;14807:2;14795:9;14786:7;14782:23;14778:32;14775:52;;;14823:1;14820;14813:12;14775:52;14863:9;14850:23;-1:-1:-1;;;;;14888:6:175;14885:30;14882:50;;;14928:1;14925;14918:12;14882:50;14967:98;15057:7;15048:6;15037:9;15033:22;14967:98;:::i;:::-;15084:8;;14941:124;;-1:-1:-1;14620:505:175;-1:-1:-1;;;;14620:505:175:o;15130:184::-;15188:6;15241:2;15229:9;15220:7;15216:23;15212:32;15209:52;;;15257:1;15254;15247:12;15209:52;15280:28;15298:9;15280:28;:::i;15319:553::-;15405:6;15413;15421;15429;15482:2;15470:9;15461:7;15457:23;15453:32;15450:52;;;15498:1;15495;15488:12;15450:52;15521:28;15539:9;15521:28;:::i;:::-;15511:38;;15568:37;15601:2;15590:9;15586:18;15568:37;:::i;:::-;15558:47;;15656:2;15645:9;15641:18;15628:32;-1:-1:-1;;;;;15675:6:175;15672:30;15669:50;;;15715:1;15712;15705:12;15669:50;15754:58;15804:7;15795:6;15784:9;15780:22;15754:58;:::i;:::-;15319:553;;;;-1:-1:-1;15831:8:175;-1:-1:-1;;;;15319:553:175:o;16381:658::-;16520:6;16528;16536;16580:9;16571:7;16567:23;16610:3;16606:2;16602:12;16599:32;;;16627:1;16624;16617:12;16599:32;16667:9;16654:23;-1:-1:-1;;;;;16692:6:175;16689:30;16686:50;;;16732:1;16729;16722:12;16686:50;16755:69;16816:7;16807:6;16796:9;16792:22;16755:69;:::i;:::-;16745:79;-1:-1:-1;;16858:2:175;-1:-1:-1;;16840:16:175;;16836:25;16833:45;;;16874:1;16871;16864:12;16833:45;;16912:2;16901:9;16897:18;16887:28;;16965:2;16954:9;16950:18;16937:32;16978:31;17003:5;16978:31;:::i;17044:615::-;17290:4;17332:3;17321:9;17317:19;17309:27;;17369:6;17363:13;17352:9;17345:32;-1:-1:-1;;;;;17437:4:175;17429:6;17425:17;17419:24;17415:49;17408:4;17397:9;17393:20;17386:79;17512:4;17504:6;17500:17;17494:24;17527:62;17583:4;17572:9;17568:20;17554:12;4158;;4146:25;;4220:4;4209:16;;;4203:23;4187:14;;4180:47;4084:149;17527:62;-1:-1:-1;4158:12:175;;17648:3;17633:19;;4146:25;4220:4;4209:16;;4203:23;4187:14;;;4180:47;17598:55;4084:149;17664:1037;17775:6;17783;17791;17799;17807;17815;17823;17876:3;17864:9;17855:7;17851:23;17847:33;17844:53;;;17893:1;17890;17883:12;17844:53;17932:9;17919:23;17951:31;17976:5;17951:31;:::i;:::-;18001:5;-1:-1:-1;18058:2:175;18043:18;;18030:32;18071:33;18030:32;18071:33;:::i;:::-;18123:7;-1:-1:-1;18203:2:175;18188:18;;18175:32;;-1:-1:-1;18306:2:175;18291:18;;18278:32;;-1:-1:-1;18388:3:175;18373:19;;18360:33;18437:4;18424:18;;18412:31;;18402:59;;18457:1;18454;18447:12;18402:59;17664:1037;;;;-1:-1:-1;17664:1037:175;;;;18480:7;18560:3;18545:19;;18532:33;;-1:-1:-1;18664:3:175;18649:19;;;18636:33;;17664:1037;-1:-1:-1;;17664:1037:175:o;18706:388::-;18774:6;18782;18835:2;18823:9;18814:7;18810:23;18806:32;18803:52;;;18851:1;18848;18841:12;18803:52;18890:9;18877:23;18909:31;18934:5;18909:31;:::i;:::-;18959:5;-1:-1:-1;19016:2:175;19001:18;;18988:32;19029:33;18988:32;19029:33;:::i;19099:236::-;19184:6;19237:2;19225:9;19216:7;19212:23;19208:32;19205:52;;;19253:1;19250;19243:12;19205:52;19276:53;19321:7;19310:9;19276:53;:::i;19340:380::-;19419:1;19415:12;;;;19462;;;19483:61;;19537:4;19529:6;19525:17;19515:27;;19483:61;19590:2;19582:6;19579:14;19559:18;19556:38;19553:161;;19636:10;19631:3;19627:20;19624:1;19617:31;19671:4;19668:1;19661:15;19699:4;19696:1;19689:15;20607:408;20809:2;20791:21;;;20848:2;20828:18;;;20821:30;20887:34;20882:2;20867:18;;20860:62;-1:-1:-1;;;20953:2:175;20938:18;;20931:42;21005:3;20990:19;;20607:408::o;21020:::-;21222:2;21204:21;;;21261:2;21241:18;;;21234:30;21300:34;21295:2;21280:18;;21273:62;-1:-1:-1;;;21366:2:175;21351:18;;21344:42;21418:3;21403:19;;21020:408::o;21433:127::-;21494:10;21489:3;21485:20;21482:1;21475:31;21525:4;21522:1;21515:15;21549:4;21546:1;21539:15;21565:125;21630:9;;;21651:10;;;21648:36;;;21664:18;;:::i;22876:127::-;22937:10;22932:3;22928:20;22925:1;22918:31;22968:4;22965:1;22958:15;22992:4;22989:1;22982:15;23008:337;23114:4;23172:11;23159:25;23266:2;23262:7;23251:8;23235:14;23231:29;23227:43;23207:18;23203:68;23193:96;;23285:1;23282;23275:12;23193:96;23306:33;;;;;23008:337;-1:-1:-1;;23008:337:175:o;23350:521::-;23427:4;23433:6;23493:11;23480:25;23587:2;23583:7;23572:8;23556:14;23552:29;23548:43;23528:18;23524:68;23514:96;;23606:1;23603;23596:12;23514:96;23633:33;;23685:20;;;-1:-1:-1;;;;;;23717:30:175;;23714:50;;;23760:1;23757;23750:12;23714:50;23793:4;23781:17;;-1:-1:-1;23824:14:175;23820:27;;;23810:38;;23807:58;;;23861:1;23858;23851:12;23876:184;23934:6;23987:2;23975:9;23966:7;23962:23;23958:32;23955:52;;;24003:1;24000;23993:12;23955:52;24026:28;24044:9;24026:28;:::i;24190:517::-;24291:2;24286:3;24283:11;24280:421;;;24327:5;24324:1;24317:16;24371:4;24368:1;24358:18;24441:2;24429:10;24425:19;24422:1;24418:27;24412:4;24408:38;24477:4;24465:10;24462:20;24459:47;;;-1:-1:-1;24500:4:175;24459:47;24555:2;24550:3;24546:12;24543:1;24539:20;24533:4;24529:31;24519:41;;24610:81;24628:2;24621:5;24618:13;24610:81;;;24687:1;24673:16;;24654:1;24643:13;24610:81;;24883:1194;-1:-1:-1;;;;;25000:3:175;24997:27;24994:53;;;25027:18;;:::i;:::-;25056:93;25145:3;25105:38;25137:4;25131:11;25105:38;:::i;:::-;25099:4;25056:93;:::i;:::-;25175:1;25200:2;25195:3;25192:11;25217:1;25212:607;;;;25863:1;25880:3;25877:93;;;-1:-1:-1;25936:19:175;;;25923:33;25877:93;-1:-1:-1;;24840:1:175;24836:11;;;24832:24;24828:29;24818:40;24864:1;24860:11;;;24815:57;25983:78;;25185:886;;25212:607;24137:1;24130:14;;;24174:4;24161:18;;-1:-1:-1;;25248:17:175;;;25362:229;25376:7;25373:1;25370:14;25362:229;;;25465:19;;;25452:33;25437:49;;25572:4;25557:20;;;;25525:1;25513:14;;;;25392:12;25362:229;;;25366:3;25619;25610:7;25607:16;25604:159;;;25743:1;25739:6;25733:3;25727;25724:1;25720:11;25716:21;25712:34;25708:39;25695:9;25690:3;25686:19;25673:33;25669:79;25661:6;25654:95;25604:159;;;25806:1;25800:3;25797:1;25793:11;25789:19;25783:4;25776:33;25185:886;;24883:1194;;;:::o;26082:266::-;26170:6;26165:3;26158:19;26222:6;26215:5;26208:4;26203:3;26199:14;26186:43;-1:-1:-1;26274:1:175;26249:16;;;26267:4;26245:27;;;26238:38;;;;26330:2;26309:15;;;-1:-1:-1;;26305:29:175;26296:39;;;26292:50;;26082:266::o;26353:1732::-;26631:2;26643:21;;;26616:18;;26699:22;;;-1:-1:-1;26752:2:175;26801:1;26797:14;;;26782:30;;26778:39;;;26737:18;;26840:6;-1:-1:-1;;;26892:14:175;26888:27;;;26884:41;26934:1122;26948:6;26945:1;26942:13;26934:1122;;;27013:22;;;-1:-1:-1;;27009:36:175;26997:49;;27085:20;;27128:27;;;27118:55;;27169:1;27166;27159:12;27118:55;27199:31;;27288:10;27262:24;27199:31;27262:24;:::i;:::-;27258:41;27250:6;27243:57;27376:6;27341:33;27370:2;27363:5;27359:14;27341:33;:::i;:::-;27337:46;27332:2;27324:6;27320:15;27313:71;27449:2;27442:5;27438:14;27425:28;27538:2;27534:7;27526:5;27510:14;27506:26;27502:40;27480:20;27476:67;27466:95;;27557:1;27554;27547:12;27466:95;27589:32;27710:2;27697:16;;;27648:21;-1:-1:-1;;;;;27729:30:175;;27726:50;;;27772:1;27769;27762:12;27726:50;27825:6;27809:14;27805:27;27796:7;27792:41;27789:61;;;27846:1;27843;27836:12;27789:61;27887:4;27882:2;27874:6;27870:15;27863:29;27915:61;27970:4;27962:6;27958:17;27950:6;27941:7;27915:61;:::i;:::-;27905:71;;;;28011:2;28003:6;27999:15;27989:25;;28043:2;28038:3;28034:12;28027:19;;26970:1;26967;26963:9;26958:14;;26934:1122;;;-1:-1:-1;28073:6:175;;26353:1732;-1:-1:-1;;;;;;;26353:1732:175:o;28090:331::-;28195:9;28206;28248:8;28236:10;28233:24;28230:44;;;28270:1;28267;28260:12;28230:44;28299:6;28289:8;28286:20;28283:40;;;28319:1;28316;28309:12;28283:40;-1:-1:-1;;28345:23:175;;;28390:25;;;;;-1:-1:-1;28090:331:175:o;28426:211::-;28467:3;28505:5;28499:12;28549:6;28542:4;28535:5;28531:16;28526:3;28520:36;28611:1;28575:16;;28600:13;;;-1:-1:-1;28575:16:175;;28426:211;-1:-1:-1;28426:211:175:o;28642:369::-;28833:3;28861:29;28886:3;28878:6;28861:29;:::i;:::-;28924:6;28916;28912:2;28899:32;28985:1;28950:15;;28974:13;;;-1:-1:-1;28950:15:175;;28642:369;-1:-1:-1;;;28642:369:175:o;29016:244::-;29173:2;29162:9;29155:21;29136:4;29193:61;29250:2;29239:9;29235:18;29227:6;29219;29193:61;:::i;29265:332::-;29365:4;29423:11;29410:25;29517:3;29513:8;29502;29486:14;29482:29;29478:44;29458:18;29454:69;29444:97;;29537:1;29534;29527:12;29602:129;-1:-1:-1;;;;;29680:5:175;29676:30;29669:5;29666:41;29656:69;;29721:1;29718;29711:12;29736:1044;30114:10;30087:25;30105:6;30087:25;:::i;:::-;30083:42;30065:61;;30192:4;30180:17;;;30167:31;30214:20;;;30207:35;30046:4;30291;30279:17;;30266:31;30306:32;30266:31;30306:32;:::i;:::-;-1:-1:-1;;;;;30380:7:175;30376:32;30369:4;30358:9;30354:20;30347:62;;30445:6;30440:2;30429:9;30425:18;30418:34;30489:3;30483;30472:9;30468:19;30461:32;30516:62;30573:3;30562:9;30558:19;30550:6;30542;30516:62;:::i;:::-;-1:-1:-1;;;;;30615:32:175;;30635:3;30594:19;;30587:61;30685:22;;;30679:3;30664:19;;30657:51;30725:49;30689:6;30759;30751;30725:49;:::i;:::-;30717:57;29736:1044;-1:-1:-1;;;;;;;;;;29736:1044:175:o;30785:686::-;30864:6;30917:2;30905:9;30896:7;30892:23;30888:32;30885:52;;;30933:1;30930;30923:12;30885:52;30966:9;30960:16;-1:-1:-1;;;;;30991:6:175;30988:30;30985:50;;;31031:1;31028;31021:12;30985:50;31054:22;;31107:4;31099:13;;31095:27;-1:-1:-1;31085:55:175;;31136:1;31133;31126:12;31085:55;31169:2;31163:9;31194:53;31210:36;31239:6;31210:36;:::i;31194:53::-;31270:6;31263:5;31256:21;31318:7;31313:2;31304:6;31300:2;31296:15;31292:24;31289:37;31286:57;;;31339:1;31336;31329:12;31286:57;31387:6;31382:2;31378;31374:11;31369:2;31362:5;31358:14;31352:42;31439:1;31414:18;;;31434:2;31410:27;31403:38;;;;31418:5;30785:686;-1:-1:-1;;;;30785:686:175:o;33552:407::-;33754:2;33736:21;;;33793:2;33773:18;;;33766:30;33832:34;33827:2;33812:18;;33805:62;-1:-1:-1;;;33898:2:175;33883:18;;33876:41;33949:3;33934:19;;33552:407::o;35222:245::-;35280:6;35333:2;35321:9;35312:7;35308:23;35304:32;35301:52;;;35349:1;35346;35339:12;35301:52;35388:9;35375:23;35407:30;35431:5;35407:30;:::i;35472:479::-;35739:1;35735;35730:3;35726:11;35722:19;35714:6;35710:32;35699:9;35692:51;35779:6;35774:2;35763:9;35759:18;35752:34;35834:6;35826;35822:19;35817:2;35806:9;35802:18;35795:47;35878:3;35873:2;35862:9;35858:18;35851:31;35673:4;35899:46;35940:3;35929:9;35925:19;35917:6;35899:46;:::i;38160:230::-;38230:6;38283:2;38271:9;38262:7;38258:23;38254:32;38251:52;;;38299:1;38296;38289:12;38251:52;-1:-1:-1;38344:16:175;;38160:230;-1:-1:-1;38160:230:175:o;39220:379::-;39413:2;39402:9;39395:21;39376:4;39439:45;39480:2;39469:9;39465:18;39457:6;39439:45;:::i;:::-;39532:9;39524:6;39520:22;39515:2;39504:9;39500:18;39493:50;39560:33;39586:6;39578;39560:33;:::i;39604:245::-;39671:6;39724:2;39712:9;39703:7;39699:23;39695:32;39692:52;;;39740:1;39737;39730:12;39692:52;39772:9;39766:16;39791:28;39813:5;39791:28;:::i;39854:891::-;40077:2;40066:9;40059:21;40135:10;40126:6;40120:13;40116:30;40111:2;40100:9;40096:18;40089:58;40201:4;40193:6;40189:17;40183:24;40178:2;40167:9;40163:18;40156:52;40040:4;40255:2;40247:6;40243:15;40237:22;40296:4;40290:3;40279:9;40275:19;40268:33;40324:52;40371:3;40360:9;40356:19;40342:12;40324:52;:::i;:::-;40310:66;;40425:2;40417:6;40413:15;40407:22;40499:2;40495:7;40483:9;40475:6;40471:22;40467:36;40460:4;40449:9;40445:20;40438:66;40527:41;40561:6;40545:14;40527:41;:::i;:::-;40637:3;40625:16;;;;40619:23;40612:31;40605:39;40599:3;40584:19;;40577:68;-1:-1:-1;;;;;;;;40706:32:175;;;;40699:4;40684:20;;;40677:62;40513:55;39854:891::o;40750:388::-;40820:5;40868:4;40856:9;40851:3;40847:19;40843:30;40840:50;;;40886:1;40883;40876:12;40840:50;40908:22;;:::i;:::-;40975:16;;41000:22;;41088:2;41073:18;;;41067:25;41108:14;;;41101:31;;;;-1:-1:-1;40899:31:175;40750:388;-1:-1:-1;40750:388:175:o;41143:259::-;41243:6;41296:2;41284:9;41275:7;41271:23;41267:32;41264:52;;;41312:1;41309;41302:12;41264:52;41335:61;41388:7;41377:9;41335:61;:::i;42212:323::-;42332:19;;-1:-1:-1;;;;;;42369:24:175;;;42413:1;42405:10;;42402:127;;;-1:-1:-1;;;;;;42474:1:175;42470:11;;;42467:1;42463:19;42459:41;;;42451:50;;42447:72;;-1:-1:-1;42402:127:175;;42212:323;;;;:::o;42540:489::-;42629:6;42689:2;42677:9;42668:7;42664:23;42660:32;42704:2;42701:22;;;42719:1;42716;42709:12;42701:22;-1:-1:-1;42761:22:175;;:::i;:::-;42828:23;;42860:22;;42955:2;42940:18;;;42927:32;42975:14;;;42968:31;;;;-1:-1:-1;42867:5:175;42540:489;-1:-1:-1;42540:489:175:o;43373:135::-;43412:3;43433:17;;;43430:43;;43453:18;;:::i;:::-;-1:-1:-1;43500:1:175;43489:13;;43373:135::o;43889:1297::-;44015:3;44009:10;-1:-1:-1;;;;;44034:6:175;44031:30;44028:56;;;44064:18;;:::i;:::-;44093:96;44182:6;44142:38;44174:4;44168:11;44142:38;:::i;:::-;44136:4;44093:96;:::i;:::-;44238:4;44269:2;44258:14;;44286:1;44281:648;;;;44973:1;44990:6;44987:89;;;-1:-1:-1;45042:19:175;;;45036:26;44987:89;-1:-1:-1;;24840:1:175;24836:11;;;24832:24;24828:29;24818:40;24864:1;24860:11;;;24815:57;45089:81;;44251:929;;44281:648;24137:1;24130:14;;;24174:4;24161:18;;-1:-1:-1;;44317:20:175;;;44434:222;44448:7;44445:1;44442:14;44434:222;;;44530:19;;;44524:26;44509:42;;44637:4;44622:20;;;;44590:1;44578:14;;;;44464:12;44434:222;;;44438:3;44684:6;44675:7;44672:19;44669:201;;;44745:19;;;44739:26;-1:-1:-1;;44828:1:175;44824:14;;;44840:3;44820:24;44816:37;44812:42;44797:58;44782:74;;44669:201;-1:-1:-1;;;;44916:1:175;44900:14;;;44896:22;44883:36;;-1:-1:-1;43889:1297:175:o;45191:217::-;45231:1;45257;45247:132;;45301:10;45296:3;45292:20;45289:1;45282:31;45336:4;45333:1;45326:15;45364:4;45361:1;45354:15;45247:132;-1:-1:-1;45393:9:175;;45191:217::o;45413:168::-;45486:9;;;45517;;45534:15;;;45528:22;;45514:37;45504:71;;45555:18;;:::i;45586:255::-;45706:19;;45745:2;45737:11;;45734:101;;;-1:-1:-1;;45806:2:175;45802:12;;;45799:1;45795:20;45791:33;45780:45;45586:255;;;;:::o;45846:362::-;45966:19;;-1:-1:-1;;;;;;46003:37:175;;;46060:1;46052:10;;46049:153;;;-1:-1:-1;;;;;;46121:1:175;46117:11;;;;46114:1;46110:19;46106:54;;;46098:63;46094:98;;;;45846:362;-1:-1:-1;;45846:362:175:o;46213:461::-;46478:3;46456:16;;;-1:-1:-1;;;;;;46452:51:175;46440:64;;46559:3;46537:16;;;-1:-1:-1;;;;;;46533:43:175;46529:1;46520:11;;46513:64;46602:2;46593:12;;46586:28;;;-1:-1:-1;46630:38:175;46664:2;46655:12;;46647:6;46630:38;:::i;47882:427::-;48123:6;48118:3;48111:19;-1:-1:-1;;;;;48186:3:175;48182:28;48173:6;48168:3;48164:16;48160:51;48155:2;48150:3;48146:12;48139:73;48242:6;48237:2;48232:3;48228:12;48221:28;48093:3;48265:38;48299:2;48294:3;48290:12;48282:6;48265:38;:::i;48314:792::-;48418:6;48478:3;48466:9;48457:7;48453:23;48449:33;48494:2;48491:22;;;48509:1;48506;48499:12;48491:22;-1:-1:-1;48578:2:175;48572:9;48620:4;48608:17;;-1:-1:-1;;;;;48640:34:175;;48676:22;;;48637:62;48634:88;;;48702:18;;:::i;:::-;48738:2;48731:22;48794:16;;48819:21;;48885:2;48870:18;;48864:25;48898:32;48864:25;48898:32;:::i;:::-;48958:2;48946:15;;48939:32;49004:70;49066:7;49061:2;49046:18;;49004:70;:::i;:::-;48999:2;48987:15;;48980:95;48991:6;48314:792;-1:-1:-1;;;48314:792:175:o;49514:127::-;49575:10;49570:3;49566:20;49563:1;49556:31;49606:4;49603:1;49596:15;49630:4;49627:1;49620:15;51239:189;51368:3;51393:29;51418:3;51410:6;51393:29;:::i;51433:251::-;51503:6;51556:2;51544:9;51535:7;51531:23;51527:32;51524:52;;;51572:1;51569;51562:12;51524:52;51604:9;51598:16;51623:31;51648:5;51623:31;:::i","linkReferences":{},"immutableReferences":{"10127":[{"start":1884,"length":32},{"start":3804,"length":32},{"start":7240,"length":32},{"start":9361,"length":32},{"start":10925,"length":32},{"start":13234,"length":32},{"start":14465,"length":32},{"start":14648,"length":32}],"11965":[{"start":2264,"length":32},{"start":12308,"length":32},{"start":12422,"length":32},{"start":12944,"length":32}],"65793":[{"start":4202,"length":32},{"start":4266,"length":32},{"start":4627,"length":32},{"start":4691,"length":32},{"start":4832,"length":32}],"83783":[{"start":1445,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","SEND()":"1f5e1334","SEND_AND_CALL()":"134d4f25","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","allowance(address,address)":"dd62ed3e","approvalRequired()":"9f68b964","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","combineOptions(uint32,uint16,bytes)":"bc70b354","decimalConversionRate()":"963efcaa","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","eip712Domain()":"84b0196e","endpoint()":"5e280f11","enforcedOptions(uint32,uint16)":"5535d461","hashChain()":"c841eccb","increaseAllowance(address,uint256)":"39509351","index()":"2986c0e5","initialize(string,string,address)":"077f224a","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","isPeer(uint32,bytes32)":"5a0dfe4d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","mint(address,uint256)":"40c10f19","minter()":"07546172","msgInspector()":"111ecdad","name()":"06fdde03","nextNonce(uint32,bytes32)":"7d25a05e","nonces(address)":"7ecebe00","oApp()":"52ae2879","oAppVersion()":"17442b70","oftVersion()":"156a0d0f","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","preCrime()":"b731ea0a","proxiableUUID()":"52d1902d","quoteOFT((uint32,bytes32,uint256,uint256,bytes,bytes,bytes))":"0d35b415","quoteSend((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),bool)":"3b6f743b","renounceOwnership()":"715018a6","send((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),(uint256,uint256),address)":"c7c7f5b3","setDelegate(address)":"ca5eb5e1","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","setMinter(address)":"fca3b5aa","setMsgInspector(address)":"6fc1b31e","setPeer(uint32,bytes32)":"3400288b","setPreCrime(address)":"d4243885","setVerifier(address)":"5437988d","sharedDecimals()":"857749b0","symbol()":"95d89b41","teleport(address,uint256)":"04ddf0a5","token()":"fc0c546a","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286","verifier()":"2b7ac3f3"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"endpoint\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountSD\",\"type\":\"uint256\"}],\"name\":\"AmountSDOverflowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLocalDecimals\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyMinter\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyVerifier\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountLD\",\"type\":\"uint256\"}],\"name\":\"SlippageExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValueTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"IndexedTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newMinter\",\"type\":\"address\"}],\"name\":\"MinterUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inspector\",\"type\":\"address\"}],\"name\":\"MsgInspectorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountReceivedLD\",\"type\":\"uint256\"}],\"name\":\"OFTReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountSentLD\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountReceivedLD\",\"type\":\"uint256\"}],\"name\":\"OFTSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Teleport\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"VerifierUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEND\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEND_AND_CALL\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimalConversionRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hashChain\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"index\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgInspector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountLD\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"oftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"}],\"name\":\"quoteOFT\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minAmountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountLD\",\"type\":\"uint256\"}],\"internalType\":\"struct OFTLimit\",\"name\":\"oftLimit\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int256\",\"name\":\"feeAmountLD\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"internalType\":\"struct OFTFeeDetail[]\",\"name\":\"oftFeeDetails\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amountSentLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountReceivedLD\",\"type\":\"uint256\"}],\"internalType\":\"struct OFTReceipt\",\"name\":\"oftReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountLD\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"oftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"msgFee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountLD\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"oftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"msgReceipt\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amountSentLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountReceivedLD\",\"type\":\"uint256\"}],\"internalType\":\"struct OFTReceipt\",\"name\":\"oftReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newMinter\",\"type\":\"address\"}],\"name\":\"setMinter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_msgInspector\",\"type\":\"address\"}],\"name\":\"setMsgInspector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"setVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sharedDecimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"teleport\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approvalRequired()\":{\"details\":\"Allows things like wallet implementers to determine integration requirements, without understanding the underlying token implementation.\",\"returns\":{\"_0\":\"requiresApproval Needs approval of the underlying token implementation.\"}},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(address,uint256)\":{\"params\":{\"from\":\"Holder whose balance is reduced to release the underlying asset.\",\"value\":\"Amount burned 1:1 with withdrawn liquidity.\"}},\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"eip712Domain()\":{\"details\":\"See {EIP-5267}. _Available since v4.9._\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"initialize(string,string,address)\":{\"params\":{\"initialOwner\":\"Account receiving ownership, LayerZero delegate permissions, and upgrade authority.\",\"name_\":\"ERC20 name.\",\"symbol_\":\"ERC20 symbol.\"}},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"isPeer(uint32,bytes32)\":{\"details\":\"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\",\"params\":{\"_eid\":\"The endpoint ID to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"mint(address,uint256)\":{\"params\":{\"to\":\"Recipient of the freshly minted zERC20.\",\"value\":\"Amount minted 1:1 with deposited liquidity.\"}},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"oftVersion()\":{\"details\":\"interfaceId: This specific interface ID is '0x02e49c2c'.version: Indicates a cross-chain compatible msg encoding with other OFTs.If a new feature is added to the OFT cross-chain msg encoding, the version will be incremented. ie. localOFT version(x,1) CAN send messages to remoteOFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID.\",\"version\":\"The version.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"peers(uint32)\":{\"params\":{\"_eid\":\"The endpoint ID.\"},\"returns\":{\"_0\":\"peer The address of the peer associated with the specified endpoint.\"}},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.\"},\"preCrime()\":{\"details\":\"Retrieves the address of the preCrime contract implementation.\",\"returns\":{\"_0\":\"The address of the preCrime contract.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"quoteOFT((uint32,bytes32,uint256,uint256,bytes,bytes,bytes))\":{\"params\":{\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"oftFeeDetails\":\"The details of OFT fees.\",\"oftLimit\":\"The OFT limit information.\",\"oftReceipt\":\"The OFT receipt information.\"}},\"quoteSend((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),bool)\":{\"details\":\"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"params\":{\"_payInLzToken\":\"Flag indicating whether the caller is paying in the LZ token.\",\"_sendParam\":\"The parameters for the send() operation.\"},\"returns\":{\"msgFee\":\"The calculated LayerZero messaging fee from the send() operation.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"send((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"details\":\"Executes the send operation.MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.\",\"params\":{\"_fee\":\"The calculated fee for the send() operation. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"_refundAddress\":\"The address to receive any excess funds.\",\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"msgReceipt\":\"The receipt for the send operation.\",\"oftReceipt\":\"The OFT receipt information.\"}},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"setMinter(address)\":{\"details\":\"Unlike verifier, the spec allows disabling the minter by setting address(0) on chains without deposits.\",\"params\":{\"newMinter\":\"Contract that exercises `mint`/`burn` for bridge deposits.\"}},\"setMsgInspector(address)\":{\"details\":\"Sets the message inspector address for the OFT.This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.\",\"params\":{\"_msgInspector\":\"The address of the message inspector.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"setVerifier(address)\":{\"details\":\"Prevents the zero address because the Verifier role is mandatory for teleport mints.\",\"params\":{\"newVerifier\":\"LayerZero-aware Verifier contract.\"}},\"sharedDecimals()\":{\"details\":\"Retrieves the shared decimals of the OFT.Sets an implicit cap on the amount of tokens, over uint64.max() will need some sort of outbound cap / totalSupply cap Lowest common decimal denominator between chains. Defaults to 6 decimal places to provide up to 18,446,744,073,709.551615 units (max uint64). For tokens exceeding this totalSupply(), they will need to override the sharedDecimals function with something smaller. ie. 4 sharedDecimals would be 1,844,674,407,370,955.1615\",\"returns\":{\"_0\":\"The shared decimals of the OFT.\"}},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"teleport(address,uint256)\":{\"details\":\"Called exclusively by the Verifier once a teleport proof succeeds.\",\"params\":{\"to\":\"Recipient mandated by the zero-knowledge proof (already hashed into the public inputs).\",\"value\":\"Mint amount corresponding to the delta proven in Verifier.teleport.\"}},\"token()\":{\"returns\":{\"_0\":\"token The address of the ERC20 token implementation.\"}},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"title\":\"zERC20\",\"version\":1},\"userdoc\":{\"errors\":{\"OnlyMinter()\":[{\"notice\":\"Reverts when a caller other than the minter invokes a minter-only entrypoint.\"}],\"OnlyVerifier()\":[{\"notice\":\"Reverts when a caller other than the verifier invokes a verifier-only entrypoint.\"}],\"ValueTooLarge()\":[{\"notice\":\"Reverts when a value exceeds the supported 248-bit range.\"}],\"ZeroAddress()\":[{\"notice\":\"Reverts when an operation receives the zero address.\"}]},\"events\":{\"IndexedTransfer(uint256,address,address,uint256)\":{\"notice\":\"Emitted after every transfer, capturing the leaf index and transfer tuple.\"},\"MinterUpdated(address)\":{\"notice\":\"Emitted when the minter address changes.\"},\"Teleport(address,uint256)\":{\"notice\":\"Emitted when a verifier-authorized teleport mints new tokens.\"},\"VerifierUpdated(address)\":{\"notice\":\"Emitted when the verifier address changes.\"}},\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"approvalRequired()\":{\"notice\":\"Indicates whether the OFT contract requires approval of the 'token()' to send.\"},\"burn(address,uint256)\":{\"notice\":\"Burns tokens under the Minter role prior to native/ERC20 withdrawals.\"},\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"constructor\":{\"notice\":\"Locks implementation contracts on deployment.\"},\"decimals()\":{\"notice\":\"Returns the token decimals.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"hashChain()\":{\"notice\":\"Hash chain committing every transfer's destination and value pair.\"},\"index()\":{\"notice\":\"Index of the next transfer, matching the off-chain Merkle tree leaf position.\"},\"initialize(string,string,address)\":{\"notice\":\"Initializes token metadata and ownership.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"mint(address,uint256)\":{\"notice\":\"Mints tokens under the Minter role defined by the deposit / redemption flow.\"},\"minter()\":{\"notice\":\"Address allowed to mint and burn under the minter role.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"oftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the OFT.\"},\"peers(uint32)\":{\"notice\":\"Returns the peer address (OApp instance) associated with a specific endpoint.\"},\"quoteOFT((uint32,bytes32,uint256,uint256,bytes,bytes,bytes))\":{\"notice\":\"Provides a quote for OFT-related operations.\"},\"quoteSend((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),bool)\":{\"notice\":\"Provides a quote for the send() operation.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setMinter(address)\":{\"notice\":\"Sets the Minter contract that can mint/burn to balance deposit liquidity.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"},\"setVerifier(address)\":{\"notice\":\"Sets the Verifier contract that is allowed to relay teleport mints.\"},\"teleport(address,uint256)\":{\"notice\":\"Mints tokens according to a proof validated by the verifier.\"},\"token()\":{\"notice\":\"Retrieves the address of the token associated with the OFT.\"},\"verifier()\":{\"notice\":\"Address allowed to call verifier-only functions such as teleport.\"}},\"notice\":\"Upgradeable ERC20 token that feeds the zk circuits by enforcing 248-bit transfer values, hashing `(from, to, value)` triples into a SHA-256 chain, and gating mint/burn roles for the Verifier and Minter flows. Also implements the LayerZero V2 OFT interface for omnichain transfers.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/zERC20.sol\":\"zERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/lz-evm-messagelib-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/\",\":@layerzerolabs/lz-evm-protocol-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/\",\":@layerzerolabs/lz-evm-v1-0.7/=lib/lz-evm-v1-0.7/\",\":@layerzerolabs/oapp-evm-upgradeable/=lib/devtools/packages/oapp-evm-upgradeable/\",\":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/\",\":@layerzerolabs/oft-evm-upgradeable/=lib/devtools/packages/oft-evm-upgradeable/\",\":@layerzerolabs/oft-evm/=lib/devtools/packages/oft-evm/\",\":@layerzerolabs/test-devtools-evm-foundry/=lib/devtools/packages/test-devtools-evm-foundry/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":LayerZero-v2/=lib/LayerZero-v2/\",\":devtools/=lib/devtools/packages/toolbox-foundry/src/\",\":forge-std/=lib/forge-std/src/\",\":lz-evm-v1-0.7/=lib/lz-evm-v1-0.7/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":poseidon-solidity/=lib/poseidon-solidity/\",\":solidity-bytes-utils/=lib/solidity-bytes-utils/\"]},\"sources\":{\"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0xd710f9efe703982e8eabe15d19d6114af753ef42f2796551da782a0fb6633e4b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5c9c874871469c871004d49a1cb5304e63ea3faaf366bfed9d718abbb9cc20a\",\"dweb:/ipfs/QmarXxE4dezAa5gBe82KCrcvWcMwa3BYqkfXbDQ3rRjfEB\"]},\"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol\":{\"keccak256\":\"0xbe135fd35bf12c97aeb701caeb6c5d0c1c28c1ac2ab1d4219d15f8384951c140\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a5cec12ab6677830bf2daefa94c402d848c223a2a081e4892985c1f4b06d30e4\",\"dweb:/ipfs/QmSV6NwuXCfWMZVFDRmeBgeWGBApwxqQxRbForCC2NTtgd\"]},\"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol\":{\"keccak256\":\"0xa38e5d26d044331212af7fc69dbbdebf25f527811bbd0492a4cee9ecdd3bd671\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://13a70adbbf5e9299a71811663b98bf62cce797ba9029d0572fa2fa7aa8c5e85d\",\"dweb:/ipfs/QmaTx7dN5XAKXy6bY7r4QCLWRuoP3kcWfLd7VnHf38ysgH\"]},\"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol\":{\"keccak256\":\"0x4e13557c5dc7c983f69d32911572efdbddea071a03bf2fc50e1cad92ddf0ef49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c455f606d0d1e3390a8d2189c50110ac4b5a85ce1be47b4a2e36de92122728a\",\"dweb:/ipfs/QmfH7dQKjCZ4THCRZaPEzaTtv5r69k5F1LbmWQGrYHV76y\"]},\"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppUpgradeable.sol\":{\"keccak256\":\"0xc298cebb8133eed14fcc29865cb8bc5dbeba7b49a3127eea05653b738ceeb71c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9287b693b56b09524bc35411da88b32cf3b7cad7dabebe7d5208bc124550ad35\",\"dweb:/ipfs/QmadrXttz2wimqVYkRNvoMRAm6XBtSbU9sVjULHswgEURu\"]},\"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/libs/OAppOptionsType3Upgradeable.sol\":{\"keccak256\":\"0x86290701e499aa0b3c95a544001b0a52b6246e134856f135080f3f6e39f6329a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7c33dfe24a72828f4905bd7a217650e3ce4a849ed85b92b17defa4bbc8da6d7\",\"dweb:/ipfs/Qmcf4qagMpdbf6pgHsxLDdA4NcPLnNVz2PVFaD2engESka\"]},\"lib/devtools/packages/oapp-evm-upgradeable/contracts/precrime/OAppPreCrimeSimulatorUpgradeable.sol\":{\"keccak256\":\"0x4db480709caa7ab95f964a0ef2998072ba4e9398a6dc9d8d2d2bba51002d070e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4298491d55c299fd392cdf4e4fa21c8b76823dba00fa1b5fe470724b9d89b59\",\"dweb:/ipfs/QmPBzbeMeA6k52CjFGQ7sBWAiLr5ioK7qaKBcSqVbrBnJ9\"]},\"lib/devtools/packages/oapp-evm/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"lib/devtools/packages/oapp-evm/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]},\"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"lib/devtools/packages/oapp-evm/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"lib/devtools/packages/oapp-evm/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"lib/devtools/packages/oapp-evm/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"lib/devtools/packages/oft-evm-upgradeable/contracts/oft/OFTCoreUpgradeable.sol\":{\"keccak256\":\"0x06eb4871b41d7cbe307297c248450295fa0b03becfd0c48d6fe1594c4d198e23\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://687c58eabe39d33fe6ba423d53cb349ae17ab14df20772be483031b4c7953f59\",\"dweb:/ipfs/QmXb8LorHb1i3P3QNvr4HqxGV4gtCjt4KLGF1zKUti6qAT\"]},\"lib/devtools/packages/oft-evm/contracts/interfaces/IOFT.sol\":{\"keccak256\":\"0xc60c7b4374b3d89f33b8de982f463c92374a8548800c816fe776f0ec76351fb0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e2ae9efc2a93373e822b148b3a3b50e3562c8c317f2e71d73cf4a11dede9d15\",\"dweb:/ipfs/QmahCbqvqEcWLJpqE6EbHHTuSbnGWyo35ZBVqoyKv18BSF\"]},\"lib/devtools/packages/oft-evm/contracts/libs/OFTComposeMsgCodec.sol\":{\"keccak256\":\"0xaae73d6eb8b9561c43f1802f3c416c00ccd35f172b711f9781ccdf1b25a40db5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7beda2d895ae9e15269dd261a492ce0a29b498e5bebf088ed6f2ae6a5185719e\",\"dweb:/ipfs/QmScog2tW1YVyEPLVcUVqGGc85ub46sA28nUKNzFEZcFdK\"]},\"lib/devtools/packages/oft-evm/contracts/libs/OFTMsgCodec.sol\":{\"keccak256\":\"0x5358948017669c03e157f871d8c38e988f9004dbd0801ad3119d2487f0d40b0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c7d0f1bf32a80af9b99cd93fefa373dac5c27463351cc35f62b9c2439d5b9258\",\"dweb:/ipfs/Qmb81qoxzMwV3PkPANRvnXf4fJTsZ5sjJ8r2df9V2vhh6q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c\",\"dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC5267Upgradeable.sol\":{\"keccak256\":\"0xe562dab443278837fa50faddb76743399e942181881db8dccaea3bd1712994db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79ebe0e661396045cefe94f4256398cf632756d779a6871319db374c9eb128c9\",\"dweb:/ipfs/QmfCTCivb9fFhyCX8hzushzcKunvKL2N9RDsnRNdvbd11M\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xa9311aeb22f459e57d4dac77ee76cf43fb28ad3215278456211b5852b0e9e970\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebdf0d3e42bd25223e45a213311d6d7e177d56a2c541a78b58c0c9d10bbdfbf9\",\"dweb:/ipfs/QmfMyehJ6pxHrh7yL4793J6i7dofXnS2zH3cTtC8JdQMV9\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol\":{\"keccak256\":\"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f\",\"dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol\":{\"keccak256\":\"0x3d159b9049d4ef465c1fb41f7ff7620f18f52bf6f8f3018bae4ed95c2df537d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38f7cfa624d878eec3c97e30dac64c6c00a79c65aa2799cebbf683e74488cd27\",\"dweb:/ipfs/QmdtMH3xSGXNqvBcndsxWCUfmjta6kebnUYwKasJZucTfP\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol\":{\"keccak256\":\"0x605434219ebbe4653f703640f06969faa5a1d78f0bfef878e5ddbb1ca369ceeb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c9c634f99dd02d73ce7498b03a6305e251c05eeebb71457306561c1fab0fa7d\",\"dweb:/ipfs/QmbYRBbZHy8YoaQKXdPryiL3CSS7uUaRfRYi1TUj9cTqJQ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20PermitUpgradeable.sol\":{\"keccak256\":\"0x07e881de3b9f6d2c07909f193f24b96c7fe4ea60013260f3f25aecd8bab3c2f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fed09b97ccb0ff9ba9b6a94224f1d489026bf6b4b7279bfe64fb6e8749dee4d\",\"dweb:/ipfs/QmcRAzaSP1UnGr4vrGkfJmB2L9aiTYoXfV1Lg9gqrVRWn8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/CountersUpgradeable.sol\":{\"keccak256\":\"0x798741e231b22b81e2dd2eddaaf8832dee4baf5cd8e2dbaa5c1dd12a1c053c4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c41e8a7a906b8f362c8b760a44edadc61782008ea2ecf377ac5b5325bf6c3912\",\"dweb:/ipfs/QmcXr19zuH3YLzD6RZNE6UTzvsKSckdxZQnagPoDGkCHu2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol\":{\"keccak256\":\"0xa014f65d84b02827055d99993ccdbfb4b56b2c9e91eb278d82a93330659d06e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50a7e716a74f3d48a7f549086faa94afcd58b9f18ac8e9f74af4571f3a1d8d5c\",\"dweb:/ipfs/QmTkDNWkq5o9Cv2jS7s6JvSmsPBkeunZhPe7Z2njGL31wo\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0x7077d7f3369b21f286840c0d69b09a8a6d3d6e522fff67bfc240fd0a6cdf178c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f59e7a19530bd6ee236285f9a87c930d27b73464f6b7398e29a6f4cfc2670ac\",\"dweb:/ipfs/QmVfN4gHvJNac7KiuhLhtgtbdDo5a6Mw5hMcwJkzYugq5R\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"src/interfaces/IzERC20.sol\":{\"keccak256\":\"0x6c7ee27de91c844f721a3b2784641edbda479f257c61e487b7f6e990e5f010cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe5a68078453c19d13d1e28333f408126b0896cdbf1d2230271e96f87814e3c8\",\"dweb:/ipfs/QmP1q9pF7zAQzMDSJaYsEeDBU45xPns5s9nLuDeTEJxDPn\"]},\"src/utils/ShaHashChainLib.sol\":{\"keccak256\":\"0xc782a8c7ef2ae7223a6d24f85d43cf1d39f4feb2d6f29f975d1b8ebf45da4cdb\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://5393d1368802bcfffea7cfbdde3b021ebbf88821a0999c75ac9997c7db815bff\",\"dweb:/ipfs/QmcfsR22dUHuFnZTrnLH3SUEiFGZrquvYGDafFa3sCqqo3\"]},\"src/zERC20.sol\":{\"keccak256\":\"0x68f53df73a65cb17cc86248a3d6c31b6f85074fe06e5fe85d3cb11cdac0ddb64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3122c59f1ad45c4178f08d5896cf71bd232f11123412f716bc4e16e73f888a14\",\"dweb:/ipfs/QmQW3rVMdrqaiof7M2tbPzAv3hi5BgYnPumX4G9RvuuQtR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"endpoint","type":"address"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"amountSD","type":"uint256"}],"type":"error","name":"AmountSDOverflowed"},{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[],"type":"error","name":"InvalidLocalDecimals"},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InvalidOptions"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"OnlyEndpoint"},{"inputs":[],"type":"error","name":"OnlyMinter"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[],"type":"error","name":"OnlySelf"},{"inputs":[],"type":"error","name":"OnlyVerifier"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"type":"error","name":"SimulationResult"},{"inputs":[{"internalType":"uint256","name":"amountLD","type":"uint256"},{"internalType":"uint256","name":"minAmountLD","type":"uint256"}],"type":"error","name":"SlippageExceeded"},{"inputs":[],"type":"error","name":"ValueTooLarge"},{"inputs":[],"type":"error","name":"ZeroAddress"},{"inputs":[{"internalType":"address","name":"previousAdmin","type":"address","indexed":false},{"internalType":"address","name":"newAdmin","type":"address","indexed":false}],"type":"event","name":"AdminChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"beacon","type":"address","indexed":true}],"type":"event","name":"BeaconUpgraded","anonymous":false},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false}],"type":"event","name":"EnforcedOptionSet","anonymous":false},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"IndexedTransfer","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"newMinter","type":"address","indexed":true}],"type":"event","name":"MinterUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"inspector","type":"address","indexed":false}],"type":"event","name":"MsgInspectorSet","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"address","name":"toAddress","type":"address","indexed":true},{"internalType":"uint256","name":"amountReceivedLD","type":"uint256","indexed":false}],"type":"event","name":"OFTReceived","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"dstEid","type":"uint32","indexed":false},{"internalType":"address","name":"fromAddress","type":"address","indexed":true},{"internalType":"uint256","name":"amountSentLD","type":"uint256","indexed":false},{"internalType":"uint256","name":"amountReceivedLD","type":"uint256","indexed":false}],"type":"event","name":"OFTSent","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[{"internalType":"address","name":"preCrimeAddress","type":"address","indexed":false}],"type":"event","name":"PreCrimeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Teleport","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"address","name":"newVerifier","type":"address","indexed":true}],"type":"event","name":"VerifierUpdated","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND_AND_CALL","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"approvalRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"stateMutability":"view","type":"function","name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimalConversionRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"}],"stateMutability":"view","type":"function","name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hashChain","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"index","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"struct Origin","name":"","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]","components":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"lzReceiveAndRevert"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceiveSimulate"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"minter","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"msgInspector","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"oftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"amountLD","type":"uint256"},{"internalType":"uint256","name":"minAmountLD","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"oftCmd","type":"bytes"}]}],"stateMutability":"view","type":"function","name":"quoteOFT","outputs":[{"internalType":"struct OFTLimit","name":"oftLimit","type":"tuple","components":[{"internalType":"uint256","name":"minAmountLD","type":"uint256"},{"internalType":"uint256","name":"maxAmountLD","type":"uint256"}]},{"internalType":"struct OFTFeeDetail[]","name":"oftFeeDetails","type":"tuple[]","components":[{"internalType":"int256","name":"feeAmountLD","type":"int256"},{"internalType":"string","name":"description","type":"string"}]},{"internalType":"struct OFTReceipt","name":"oftReceipt","type":"tuple","components":[{"internalType":"uint256","name":"amountSentLD","type":"uint256"},{"internalType":"uint256","name":"amountReceivedLD","type":"uint256"}]}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"amountLD","type":"uint256"},{"internalType":"uint256","name":"minAmountLD","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"oftCmd","type":"bytes"}]},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quoteSend","outputs":[{"internalType":"struct MessagingFee","name":"msgFee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"amountLD","type":"uint256"},{"internalType":"uint256","name":"minAmountLD","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"oftCmd","type":"bytes"}]},{"internalType":"struct MessagingFee","name":"_fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"address","name":"_refundAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"msgReceipt","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"internalType":"struct OFTReceipt","name":"oftReceipt","type":"tuple","components":[{"internalType":"uint256","name":"amountSentLD","type":"uint256"},{"internalType":"uint256","name":"amountReceivedLD","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setEnforcedOptions"},{"inputs":[{"internalType":"address","name":"newMinter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMinter"},{"inputs":[{"internalType":"address","name":"_msgInspector","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMsgInspector"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPreCrime"},{"inputs":[{"internalType":"address","name":"newVerifier","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setVerifier"},{"inputs":[],"stateMutability":"pure","type":"function","name":"sharedDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"teleport"},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgradeTo"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"verifier","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approvalRequired()":{"details":"Allows things like wallet implementers to determine integration requirements, without understanding the underlying token implementation.","returns":{"_0":"requiresApproval Needs approval of the underlying token implementation."}},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"burn(address,uint256)":{"params":{"from":"Holder whose balance is reduced to release the underlying asset.","value":"Amount burned 1:1 with withdrawn liquidity."}},"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"eip712Domain()":{"details":"See {EIP-5267}. _Available since v4.9._"},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"initialize(string,string,address)":{"params":{"initialOwner":"Account receiving ownership, LayerZero delegate permissions, and upgrade authority.","name_":"ERC20 name.","symbol_":"ERC20 symbol."}},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"isPeer(uint32,bytes32)":{"details":"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.","params":{"_eid":"The endpoint ID to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"mint(address,uint256)":{"params":{"to":"Recipient of the freshly minted zERC20.","value":"Amount minted 1:1 with deposited liquidity."}},"name()":{"details":"Returns the name of the token."},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"oftVersion()":{"details":"interfaceId: This specific interface ID is '0x02e49c2c'.version: Indicates a cross-chain compatible msg encoding with other OFTs.If a new feature is added to the OFT cross-chain msg encoding, the version will be incremented. ie. localOFT version(x,1) CAN send messages to remoteOFT version(x,1)","returns":{"interfaceId":"The interface ID.","version":"The version."}},"owner()":{"details":"Returns the address of the current owner."},"peers(uint32)":{"params":{"_eid":"The endpoint ID."},"returns":{"_0":"peer The address of the peer associated with the specified endpoint."}},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above."},"preCrime()":{"details":"Retrieves the address of the preCrime contract implementation.","returns":{"_0":"The address of the preCrime contract."}},"proxiableUUID()":{"details":"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"quoteOFT((uint32,bytes32,uint256,uint256,bytes,bytes,bytes))":{"params":{"_sendParam":"The parameters for the send operation."},"returns":{"oftFeeDetails":"The details of OFT fees.","oftLimit":"The OFT limit information.","oftReceipt":"The OFT receipt information."}},"quoteSend((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),bool)":{"details":"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","params":{"_payInLzToken":"Flag indicating whether the caller is paying in the LZ token.","_sendParam":"The parameters for the send() operation."},"returns":{"msgFee":"The calculated LayerZero messaging fee from the send() operation."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"send((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"details":"Executes the send operation.MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.","params":{"_fee":"The calculated fee for the send() operation. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","_refundAddress":"The address to receive any excess funds.","_sendParam":"The parameters for the send operation."},"returns":{"msgReceipt":"The receipt for the send operation.","oftReceipt":"The OFT receipt information."}},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"setMinter(address)":{"details":"Unlike verifier, the spec allows disabling the minter by setting address(0) on chains without deposits.","params":{"newMinter":"Contract that exercises `mint`/`burn` for bridge deposits."}},"setMsgInspector(address)":{"details":"Sets the message inspector address for the OFT.This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.","params":{"_msgInspector":"The address of the message inspector."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"setVerifier(address)":{"details":"Prevents the zero address because the Verifier role is mandatory for teleport mints.","params":{"newVerifier":"LayerZero-aware Verifier contract."}},"sharedDecimals()":{"details":"Retrieves the shared decimals of the OFT.Sets an implicit cap on the amount of tokens, over uint64.max() will need some sort of outbound cap / totalSupply cap Lowest common decimal denominator between chains. Defaults to 6 decimal places to provide up to 18,446,744,073,709.551615 units (max uint64). For tokens exceeding this totalSupply(), they will need to override the sharedDecimals function with something smaller. ie. 4 sharedDecimals would be 1,844,674,407,370,955.1615","returns":{"_0":"The shared decimals of the OFT."}},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"teleport(address,uint256)":{"details":"Called exclusively by the Verifier once a teleport proof succeeds.","params":{"to":"Recipient mandated by the zero-knowledge proof (already hashed into the public inputs).","value":"Mint amount corresponding to the delta proven in Verifier.teleport."}},"token()":{"returns":{"_0":"token The address of the ERC20 token implementation."}},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeTo(address)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"approvalRequired()":{"notice":"Indicates whether the OFT contract requires approval of the 'token()' to send."},"burn(address,uint256)":{"notice":"Burns tokens under the Minter role prior to native/ERC20 withdrawals."},"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"constructor":{"notice":"Locks implementation contracts on deployment."},"decimals()":{"notice":"Returns the token decimals."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"hashChain()":{"notice":"Hash chain committing every transfer's destination and value pair."},"index()":{"notice":"Index of the next transfer, matching the off-chain Merkle tree leaf position."},"initialize(string,string,address)":{"notice":"Initializes token metadata and ownership."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"mint(address,uint256)":{"notice":"Mints tokens under the Minter role defined by the deposit / redemption flow."},"minter()":{"notice":"Address allowed to mint and burn under the minter role."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"oftVersion()":{"notice":"Retrieves interfaceID and the version of the OFT."},"peers(uint32)":{"notice":"Returns the peer address (OApp instance) associated with a specific endpoint."},"quoteOFT((uint32,bytes32,uint256,uint256,bytes,bytes,bytes))":{"notice":"Provides a quote for OFT-related operations."},"quoteSend((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),bool)":{"notice":"Provides a quote for the send() operation."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setMinter(address)":{"notice":"Sets the Minter contract that can mint/burn to balance deposit liquidity."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."},"setVerifier(address)":{"notice":"Sets the Verifier contract that is allowed to relay teleport mints."},"teleport(address,uint256)":{"notice":"Mints tokens according to a proof validated by the verifier."},"token()":{"notice":"Retrieves the address of the token associated with the OFT."},"verifier()":{"notice":"Address allowed to call verifier-only functions such as teleport."}},"version":1}},"settings":{"remappings":["@layerzerolabs/lz-evm-messagelib-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/","@layerzerolabs/lz-evm-protocol-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/","@layerzerolabs/lz-evm-v1-0.7/=lib/lz-evm-v1-0.7/","@layerzerolabs/oapp-evm-upgradeable/=lib/devtools/packages/oapp-evm-upgradeable/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@layerzerolabs/oft-evm-upgradeable/=lib/devtools/packages/oft-evm-upgradeable/","@layerzerolabs/oft-evm/=lib/devtools/packages/oft-evm/","@layerzerolabs/test-devtools-evm-foundry/=lib/devtools/packages/test-devtools-evm-foundry/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","LayerZero-v2/=lib/LayerZero-v2/","devtools/=lib/devtools/packages/toolbox-foundry/src/","forge-std/=lib/forge-std/src/","lz-evm-v1-0.7/=lib/lz-evm-v1-0.7/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/","poseidon-solidity/=lib/poseidon-solidity/","solidity-bytes-utils/=lib/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/zERC20.sol":"zERC20"},"evmVersion":"prague","libraries":{}},"sources":{"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0xd710f9efe703982e8eabe15d19d6114af753ef42f2796551da782a0fb6633e4b","urls":["bzz-raw://b5c9c874871469c871004d49a1cb5304e63ea3faaf366bfed9d718abbb9cc20a","dweb:/ipfs/QmarXxE4dezAa5gBe82KCrcvWcMwa3BYqkfXbDQ3rRjfEB"],"license":"MIT"},"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol":{"keccak256":"0xbe135fd35bf12c97aeb701caeb6c5d0c1c28c1ac2ab1d4219d15f8384951c140","urls":["bzz-raw://a5cec12ab6677830bf2daefa94c402d848c223a2a081e4892985c1f4b06d30e4","dweb:/ipfs/QmSV6NwuXCfWMZVFDRmeBgeWGBApwxqQxRbForCC2NTtgd"],"license":"MIT"},"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol":{"keccak256":"0xa38e5d26d044331212af7fc69dbbdebf25f527811bbd0492a4cee9ecdd3bd671","urls":["bzz-raw://13a70adbbf5e9299a71811663b98bf62cce797ba9029d0572fa2fa7aa8c5e85d","dweb:/ipfs/QmaTx7dN5XAKXy6bY7r4QCLWRuoP3kcWfLd7VnHf38ysgH"],"license":"MIT"},"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol":{"keccak256":"0x4e13557c5dc7c983f69d32911572efdbddea071a03bf2fc50e1cad92ddf0ef49","urls":["bzz-raw://0c455f606d0d1e3390a8d2189c50110ac4b5a85ce1be47b4a2e36de92122728a","dweb:/ipfs/QmfH7dQKjCZ4THCRZaPEzaTtv5r69k5F1LbmWQGrYHV76y"],"license":"MIT"},"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppUpgradeable.sol":{"keccak256":"0xc298cebb8133eed14fcc29865cb8bc5dbeba7b49a3127eea05653b738ceeb71c","urls":["bzz-raw://9287b693b56b09524bc35411da88b32cf3b7cad7dabebe7d5208bc124550ad35","dweb:/ipfs/QmadrXttz2wimqVYkRNvoMRAm6XBtSbU9sVjULHswgEURu"],"license":"MIT"},"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/libs/OAppOptionsType3Upgradeable.sol":{"keccak256":"0x86290701e499aa0b3c95a544001b0a52b6246e134856f135080f3f6e39f6329a","urls":["bzz-raw://d7c33dfe24a72828f4905bd7a217650e3ce4a849ed85b92b17defa4bbc8da6d7","dweb:/ipfs/Qmcf4qagMpdbf6pgHsxLDdA4NcPLnNVz2PVFaD2engESka"],"license":"MIT"},"lib/devtools/packages/oapp-evm-upgradeable/contracts/precrime/OAppPreCrimeSimulatorUpgradeable.sol":{"keccak256":"0x4db480709caa7ab95f964a0ef2998072ba4e9398a6dc9d8d2d2bba51002d070e","urls":["bzz-raw://c4298491d55c299fd392cdf4e4fa21c8b76823dba00fa1b5fe470724b9d89b59","dweb:/ipfs/QmPBzbeMeA6k52CjFGQ7sBWAiLr5ioK7qaKBcSqVbrBnJ9"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"lib/devtools/packages/oft-evm-upgradeable/contracts/oft/OFTCoreUpgradeable.sol":{"keccak256":"0x06eb4871b41d7cbe307297c248450295fa0b03becfd0c48d6fe1594c4d198e23","urls":["bzz-raw://687c58eabe39d33fe6ba423d53cb349ae17ab14df20772be483031b4c7953f59","dweb:/ipfs/QmXb8LorHb1i3P3QNvr4HqxGV4gtCjt4KLGF1zKUti6qAT"],"license":"MIT"},"lib/devtools/packages/oft-evm/contracts/interfaces/IOFT.sol":{"keccak256":"0xc60c7b4374b3d89f33b8de982f463c92374a8548800c816fe776f0ec76351fb0","urls":["bzz-raw://9e2ae9efc2a93373e822b148b3a3b50e3562c8c317f2e71d73cf4a11dede9d15","dweb:/ipfs/QmahCbqvqEcWLJpqE6EbHHTuSbnGWyo35ZBVqoyKv18BSF"],"license":"MIT"},"lib/devtools/packages/oft-evm/contracts/libs/OFTComposeMsgCodec.sol":{"keccak256":"0xaae73d6eb8b9561c43f1802f3c416c00ccd35f172b711f9781ccdf1b25a40db5","urls":["bzz-raw://7beda2d895ae9e15269dd261a492ce0a29b498e5bebf088ed6f2ae6a5185719e","dweb:/ipfs/QmScog2tW1YVyEPLVcUVqGGc85ub46sA28nUKNzFEZcFdK"],"license":"MIT"},"lib/devtools/packages/oft-evm/contracts/libs/OFTMsgCodec.sol":{"keccak256":"0x5358948017669c03e157f871d8c38e988f9004dbd0801ad3119d2487f0d40b0b","urls":["bzz-raw://c7d0f1bf32a80af9b99cd93fefa373dac5c27463351cc35f62b9c2439d5b9258","dweb:/ipfs/Qmb81qoxzMwV3PkPANRvnXf4fJTsZ5sjJ8r2df9V2vhh6q"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e","urls":["bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c","dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol":{"keccak256":"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b","urls":["bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0","dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC5267Upgradeable.sol":{"keccak256":"0xe562dab443278837fa50faddb76743399e942181881db8dccaea3bd1712994db","urls":["bzz-raw://79ebe0e661396045cefe94f4256398cf632756d779a6871319db374c9eb128c9","dweb:/ipfs/QmfCTCivb9fFhyCX8hzushzcKunvKL2N9RDsnRNdvbd11M"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol":{"keccak256":"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f","urls":["bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053","dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol":{"keccak256":"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8","urls":["bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0","dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol":{"keccak256":"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908","urls":["bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1","dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33","urls":["bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f","dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0xa9311aeb22f459e57d4dac77ee76cf43fb28ad3215278456211b5852b0e9e970","urls":["bzz-raw://ebdf0d3e42bd25223e45a213311d6d7e177d56a2c541a78b58c0c9d10bbdfbf9","dweb:/ipfs/QmfMyehJ6pxHrh7yL4793J6i7dofXnS2zH3cTtC8JdQMV9"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol":{"keccak256":"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f","urls":["bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f","dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol":{"keccak256":"0x3d159b9049d4ef465c1fb41f7ff7620f18f52bf6f8f3018bae4ed95c2df537d3","urls":["bzz-raw://38f7cfa624d878eec3c97e30dac64c6c00a79c65aa2799cebbf683e74488cd27","dweb:/ipfs/QmdtMH3xSGXNqvBcndsxWCUfmjta6kebnUYwKasJZucTfP"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol":{"keccak256":"0x605434219ebbe4653f703640f06969faa5a1d78f0bfef878e5ddbb1ca369ceeb","urls":["bzz-raw://4c9c634f99dd02d73ce7498b03a6305e251c05eeebb71457306561c1fab0fa7d","dweb:/ipfs/QmbYRBbZHy8YoaQKXdPryiL3CSS7uUaRfRYi1TUj9cTqJQ"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20PermitUpgradeable.sol":{"keccak256":"0x07e881de3b9f6d2c07909f193f24b96c7fe4ea60013260f3f25aecd8bab3c2f8","urls":["bzz-raw://1fed09b97ccb0ff9ba9b6a94224f1d489026bf6b4b7279bfe64fb6e8749dee4d","dweb:/ipfs/QmcRAzaSP1UnGr4vrGkfJmB2L9aiTYoXfV1Lg9gqrVRWn8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/CountersUpgradeable.sol":{"keccak256":"0x798741e231b22b81e2dd2eddaaf8832dee4baf5cd8e2dbaa5c1dd12a1c053c4d","urls":["bzz-raw://c41e8a7a906b8f362c8b760a44edadc61782008ea2ecf377ac5b5325bf6c3912","dweb:/ipfs/QmcXr19zuH3YLzD6RZNE6UTzvsKSckdxZQnagPoDGkCHu2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol":{"keccak256":"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908","urls":["bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685","dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol":{"keccak256":"0xa014f65d84b02827055d99993ccdbfb4b56b2c9e91eb278d82a93330659d06e4","urls":["bzz-raw://50a7e716a74f3d48a7f549086faa94afcd58b9f18ac8e9f74af4571f3a1d8d5c","dweb:/ipfs/QmTkDNWkq5o9Cv2jS7s6JvSmsPBkeunZhPe7Z2njGL31wo"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol":{"keccak256":"0x7077d7f3369b21f286840c0d69b09a8a6d3d6e522fff67bfc240fd0a6cdf178c","urls":["bzz-raw://0f59e7a19530bd6ee236285f9a87c930d27b73464f6b7398e29a6f4cfc2670ac","dweb:/ipfs/QmVfN4gHvJNac7KiuhLhtgtbdDo5a6Mw5hMcwJkzYugq5R"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d","urls":["bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100","dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc","urls":["bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037","dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44","urls":["bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d","dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5","urls":["bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508","dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"src/interfaces/IzERC20.sol":{"keccak256":"0x6c7ee27de91c844f721a3b2784641edbda479f257c61e487b7f6e990e5f010cd","urls":["bzz-raw://fe5a68078453c19d13d1e28333f408126b0896cdbf1d2230271e96f87814e3c8","dweb:/ipfs/QmP1q9pF7zAQzMDSJaYsEeDBU45xPns5s9nLuDeTEJxDPn"],"license":"MIT"},"src/utils/ShaHashChainLib.sol":{"keccak256":"0xc782a8c7ef2ae7223a6d24f85d43cf1d39f4feb2d6f29f975d1b8ebf45da4cdb","urls":["bzz-raw://5393d1368802bcfffea7cfbdde3b021ebbf88821a0999c75ac9997c7db815bff","dweb:/ipfs/QmcfsR22dUHuFnZTrnLH3SUEiFGZrquvYGDafFa3sCqqo3"],"license":"Unlicense"},"src/zERC20.sol":{"keccak256":"0x68f53df73a65cb17cc86248a3d6c31b6f85074fe06e5fe85d3cb11cdac0ddb64","urls":["bzz-raw://3122c59f1ad45c4178f08d5896cf71bd232f11123412f716bc4e16e73f888a14","dweb:/ipfs/QmQW3rVMdrqaiof7M2tbPzAv3hi5BgYnPumX4G9RvuuQtR"],"license":"MIT"}},"version":1},"id":173}