@aztec/l1-artifacts 0.30.1 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dest/AvailabilityOracleBytecode.d.ts +1 -1
  2. package/dest/AvailabilityOracleBytecode.d.ts.map +1 -1
  3. package/dest/AvailabilityOracleBytecode.js +2 -2
  4. package/dest/GasPortalBytecode.d.ts +1 -1
  5. package/dest/GasPortalBytecode.d.ts.map +1 -1
  6. package/dest/GasPortalBytecode.js +2 -2
  7. package/dest/InboxAbi.d.ts +3 -3
  8. package/dest/InboxAbi.js +4 -4
  9. package/dest/InboxBytecode.d.ts +1 -1
  10. package/dest/InboxBytecode.d.ts.map +1 -1
  11. package/dest/InboxBytecode.js +2 -2
  12. package/dest/OutboxAbi.d.ts +131 -125
  13. package/dest/OutboxAbi.d.ts.map +1 -1
  14. package/dest/OutboxAbi.js +152 -148
  15. package/dest/OutboxBytecode.d.ts +1 -1
  16. package/dest/OutboxBytecode.d.ts.map +1 -1
  17. package/dest/OutboxBytecode.js +2 -2
  18. package/dest/RegistryBytecode.d.ts +1 -1
  19. package/dest/RegistryBytecode.js +1 -1
  20. package/dest/RollupAbi.d.ts +10 -4
  21. package/dest/RollupAbi.d.ts.map +1 -1
  22. package/dest/RollupAbi.js +14 -6
  23. package/dest/RollupBytecode.d.ts +1 -1
  24. package/dest/RollupBytecode.d.ts.map +1 -1
  25. package/dest/RollupBytecode.js +2 -2
  26. package/dest/TokenPortalAbi.d.ts +13 -5
  27. package/dest/TokenPortalAbi.d.ts.map +1 -1
  28. package/dest/TokenPortalAbi.js +16 -7
  29. package/dest/TokenPortalBytecode.d.ts +1 -1
  30. package/dest/TokenPortalBytecode.d.ts.map +1 -1
  31. package/dest/TokenPortalBytecode.js +2 -2
  32. package/dest/UniswapPortalAbi.d.ts +34 -0
  33. package/dest/UniswapPortalAbi.d.ts.map +1 -1
  34. package/dest/UniswapPortalAbi.js +45 -1
  35. package/dest/UniswapPortalBytecode.d.ts +1 -1
  36. package/dest/UniswapPortalBytecode.d.ts.map +1 -1
  37. package/dest/UniswapPortalBytecode.js +2 -2
  38. package/generated/AvailabilityOracleBytecode.ts +1 -1
  39. package/generated/GasPortalBytecode.ts +1 -1
  40. package/generated/InboxAbi.ts +3 -3
  41. package/generated/InboxBytecode.ts +1 -1
  42. package/generated/OutboxAbi.ts +151 -147
  43. package/generated/OutboxBytecode.ts +1 -1
  44. package/generated/RegistryBytecode.ts +1 -1
  45. package/generated/RollupAbi.ts +13 -5
  46. package/generated/RollupBytecode.ts +1 -1
  47. package/generated/TokenPortalAbi.ts +15 -6
  48. package/generated/TokenPortalBytecode.ts +1 -1
  49. package/generated/UniswapPortalAbi.ts +44 -0
  50. package/generated/UniswapPortalBytecode.ts +1 -1
  51. package/package.json +1 -1
@@ -6,7 +6,7 @@ export const OutboxAbi = [
6
6
  "type": "constructor",
7
7
  "inputs": [
8
8
  {
9
- "name": "_registry",
9
+ "name": "_rollup",
10
10
  "type": "address",
11
11
  "internalType": "address"
12
12
  }
@@ -15,20 +15,20 @@ export const OutboxAbi = [
15
15
  },
16
16
  {
17
17
  "type": "function",
18
- "name": "REGISTRY",
18
+ "name": "ROLLUP_CONTRACT",
19
19
  "inputs": [],
20
20
  "outputs": [
21
21
  {
22
22
  "name": "",
23
23
  "type": "address",
24
- "internalType": "contract IRegistry"
24
+ "internalType": "address"
25
25
  }
26
26
  ],
27
27
  "stateMutability": "view"
28
28
  },
29
29
  {
30
30
  "type": "function",
31
- "name": "computeEntryKey",
31
+ "name": "consume",
32
32
  "inputs": [
33
33
  {
34
34
  "name": "_message",
@@ -75,85 +75,39 @@ export const OutboxAbi = [
75
75
  "internalType": "bytes32"
76
76
  }
77
77
  ]
78
- }
79
- ],
80
- "outputs": [
78
+ },
81
79
  {
82
- "name": "",
83
- "type": "bytes32",
84
- "internalType": "bytes32"
85
- }
86
- ],
87
- "stateMutability": "pure"
88
- },
89
- {
90
- "type": "function",
91
- "name": "consume",
92
- "inputs": [
80
+ "name": "_l2BlockNumber",
81
+ "type": "uint256",
82
+ "internalType": "uint256"
83
+ },
93
84
  {
94
- "name": "_message",
95
- "type": "tuple",
96
- "internalType": "struct DataStructures.L2ToL1Msg",
97
- "components": [
98
- {
99
- "name": "sender",
100
- "type": "tuple",
101
- "internalType": "struct DataStructures.L2Actor",
102
- "components": [
103
- {
104
- "name": "actor",
105
- "type": "bytes32",
106
- "internalType": "bytes32"
107
- },
108
- {
109
- "name": "version",
110
- "type": "uint256",
111
- "internalType": "uint256"
112
- }
113
- ]
114
- },
115
- {
116
- "name": "recipient",
117
- "type": "tuple",
118
- "internalType": "struct DataStructures.L1Actor",
119
- "components": [
120
- {
121
- "name": "actor",
122
- "type": "address",
123
- "internalType": "address"
124
- },
125
- {
126
- "name": "chainId",
127
- "type": "uint256",
128
- "internalType": "uint256"
129
- }
130
- ]
131
- },
132
- {
133
- "name": "content",
134
- "type": "bytes32",
135
- "internalType": "bytes32"
136
- }
137
- ]
138
- }
139
- ],
140
- "outputs": [
85
+ "name": "_leafIndex",
86
+ "type": "uint256",
87
+ "internalType": "uint256"
88
+ },
141
89
  {
142
- "name": "entryKey",
143
- "type": "bytes32",
144
- "internalType": "bytes32"
90
+ "name": "_path",
91
+ "type": "bytes32[]",
92
+ "internalType": "bytes32[]"
145
93
  }
146
94
  ],
95
+ "outputs": [],
147
96
  "stateMutability": "nonpayable"
148
97
  },
149
98
  {
150
99
  "type": "function",
151
- "name": "contains",
100
+ "name": "hasMessageBeenConsumedAtBlockAndIndex",
152
101
  "inputs": [
153
102
  {
154
- "name": "_entryKey",
155
- "type": "bytes32",
156
- "internalType": "bytes32"
103
+ "name": "_l2BlockNumber",
104
+ "type": "uint256",
105
+ "internalType": "uint256"
106
+ },
107
+ {
108
+ "name": "_leafIndex",
109
+ "type": "uint256",
110
+ "internalType": "uint256"
157
111
  }
158
112
  ],
159
113
  "outputs": [
@@ -167,131 +121,154 @@ export const OutboxAbi = [
167
121
  },
168
122
  {
169
123
  "type": "function",
170
- "name": "get",
124
+ "name": "insert",
171
125
  "inputs": [
172
126
  {
173
- "name": "_entryKey",
127
+ "name": "_l2BlockNumber",
128
+ "type": "uint256",
129
+ "internalType": "uint256"
130
+ },
131
+ {
132
+ "name": "_root",
174
133
  "type": "bytes32",
175
134
  "internalType": "bytes32"
176
- }
177
- ],
178
- "outputs": [
135
+ },
179
136
  {
180
- "name": "",
181
- "type": "tuple",
182
- "internalType": "struct DataStructures.Entry",
183
- "components": [
184
- {
185
- "name": "fee",
186
- "type": "uint64",
187
- "internalType": "uint64"
188
- },
189
- {
190
- "name": "count",
191
- "type": "uint32",
192
- "internalType": "uint32"
193
- },
194
- {
195
- "name": "version",
196
- "type": "uint32",
197
- "internalType": "uint32"
198
- },
199
- {
200
- "name": "deadline",
201
- "type": "uint32",
202
- "internalType": "uint32"
203
- }
204
- ]
137
+ "name": "_height",
138
+ "type": "uint256",
139
+ "internalType": "uint256"
205
140
  }
206
141
  ],
207
- "stateMutability": "view"
142
+ "outputs": [],
143
+ "stateMutability": "nonpayable"
208
144
  },
209
145
  {
210
146
  "type": "function",
211
- "name": "sendL1Messages",
147
+ "name": "roots",
212
148
  "inputs": [
213
149
  {
214
- "name": "_entryKeys",
215
- "type": "bytes32[]",
216
- "internalType": "bytes32[]"
150
+ "name": "l2BlockNumber",
151
+ "type": "uint256",
152
+ "internalType": "uint256"
217
153
  }
218
154
  ],
219
- "outputs": [],
220
- "stateMutability": "nonpayable"
155
+ "outputs": [
156
+ {
157
+ "name": "root",
158
+ "type": "bytes32",
159
+ "internalType": "bytes32"
160
+ },
161
+ {
162
+ "name": "height",
163
+ "type": "uint256",
164
+ "internalType": "uint256"
165
+ }
166
+ ],
167
+ "stateMutability": "view"
221
168
  },
222
169
  {
223
170
  "type": "event",
224
- "name": "MessageAdded",
171
+ "name": "MessageConsumed",
225
172
  "inputs": [
226
173
  {
227
- "name": "entryKey",
174
+ "name": "l2BlockNumber",
175
+ "type": "uint256",
176
+ "indexed": true,
177
+ "internalType": "uint256"
178
+ },
179
+ {
180
+ "name": "root",
228
181
  "type": "bytes32",
229
182
  "indexed": true,
230
183
  "internalType": "bytes32"
184
+ },
185
+ {
186
+ "name": "messageHash",
187
+ "type": "bytes32",
188
+ "indexed": true,
189
+ "internalType": "bytes32"
190
+ },
191
+ {
192
+ "name": "leafIndex",
193
+ "type": "uint256",
194
+ "indexed": false,
195
+ "internalType": "uint256"
231
196
  }
232
197
  ],
233
198
  "anonymous": false
234
199
  },
235
200
  {
236
201
  "type": "event",
237
- "name": "MessageConsumed",
202
+ "name": "RootAdded",
238
203
  "inputs": [
239
204
  {
240
- "name": "entryKey",
205
+ "name": "l2BlockNumber",
206
+ "type": "uint256",
207
+ "indexed": true,
208
+ "internalType": "uint256"
209
+ },
210
+ {
211
+ "name": "root",
241
212
  "type": "bytes32",
242
213
  "indexed": true,
243
214
  "internalType": "bytes32"
244
215
  },
245
216
  {
246
- "name": "recipient",
247
- "type": "address",
248
- "indexed": true,
249
- "internalType": "address"
217
+ "name": "height",
218
+ "type": "uint256",
219
+ "indexed": false,
220
+ "internalType": "uint256"
250
221
  }
251
222
  ],
252
223
  "anonymous": false
253
224
  },
254
225
  {
255
226
  "type": "error",
256
- "name": "Outbox__IncompatibleEntryArguments",
227
+ "name": "MerkleLib__InvalidRoot",
257
228
  "inputs": [
258
229
  {
259
- "name": "entryKey",
230
+ "name": "expected",
260
231
  "type": "bytes32",
261
232
  "internalType": "bytes32"
262
233
  },
263
234
  {
264
- "name": "storedFee",
265
- "type": "uint64",
266
- "internalType": "uint64"
267
- },
268
- {
269
- "name": "feePassed",
270
- "type": "uint64",
271
- "internalType": "uint64"
235
+ "name": "actual",
236
+ "type": "bytes32",
237
+ "internalType": "bytes32"
272
238
  },
273
239
  {
274
- "name": "storedVersion",
275
- "type": "uint32",
276
- "internalType": "uint32"
240
+ "name": "leaf",
241
+ "type": "bytes32",
242
+ "internalType": "bytes32"
277
243
  },
278
244
  {
279
- "name": "versionPassed",
280
- "type": "uint32",
281
- "internalType": "uint32"
282
- },
245
+ "name": "leafIndex",
246
+ "type": "uint256",
247
+ "internalType": "uint256"
248
+ }
249
+ ]
250
+ },
251
+ {
252
+ "type": "error",
253
+ "name": "Outbox__AlreadyNullified",
254
+ "inputs": [
283
255
  {
284
- "name": "storedDeadline",
285
- "type": "uint32",
286
- "internalType": "uint32"
256
+ "name": "l2BlockNumber",
257
+ "type": "uint256",
258
+ "internalType": "uint256"
287
259
  },
288
260
  {
289
- "name": "deadlinePassed",
290
- "type": "uint32",
291
- "internalType": "uint32"
261
+ "name": "leafIndex",
262
+ "type": "uint256",
263
+ "internalType": "uint256"
292
264
  }
293
265
  ]
294
266
  },
267
+ {
268
+ "type": "error",
269
+ "name": "Outbox__InsertingInvalidRoot",
270
+ "inputs": []
271
+ },
295
272
  {
296
273
  "type": "error",
297
274
  "name": "Outbox__InvalidChainId",
@@ -299,15 +276,15 @@ export const OutboxAbi = [
299
276
  },
300
277
  {
301
278
  "type": "error",
302
- "name": "Outbox__InvalidVersion",
279
+ "name": "Outbox__InvalidPathLength",
303
280
  "inputs": [
304
281
  {
305
- "name": "entry",
282
+ "name": "expected",
306
283
  "type": "uint256",
307
284
  "internalType": "uint256"
308
285
  },
309
286
  {
310
- "name": "message",
287
+ "name": "actual",
311
288
  "type": "uint256",
312
289
  "internalType": "uint256"
313
290
  }
@@ -315,12 +292,39 @@ export const OutboxAbi = [
315
292
  },
316
293
  {
317
294
  "type": "error",
318
- "name": "Outbox__NothingToConsume",
295
+ "name": "Outbox__InvalidRecipient",
319
296
  "inputs": [
320
297
  {
321
- "name": "entryKey",
322
- "type": "bytes32",
323
- "internalType": "bytes32"
298
+ "name": "expected",
299
+ "type": "address",
300
+ "internalType": "address"
301
+ },
302
+ {
303
+ "name": "actual",
304
+ "type": "address",
305
+ "internalType": "address"
306
+ }
307
+ ]
308
+ },
309
+ {
310
+ "type": "error",
311
+ "name": "Outbox__NothingToConsumeAtBlock",
312
+ "inputs": [
313
+ {
314
+ "name": "l2BlockNumber",
315
+ "type": "uint256",
316
+ "internalType": "uint256"
317
+ }
318
+ ]
319
+ },
320
+ {
321
+ "type": "error",
322
+ "name": "Outbox__RootAlreadySetAtBlock",
323
+ "inputs": [
324
+ {
325
+ "name": "l2BlockNumber",
326
+ "type": "uint256",
327
+ "internalType": "uint256"
324
328
  }
325
329
  ]
326
330
  },
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * Outbox bytecode.
3
3
  */
4
- export const OutboxBytecode = "0x60a060405234801561001057600080fd5b50604051610bca380380610bca83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610b3961009160003960008181606c01526102f80152610b396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806306433b1b1461006757806313608c9d146100ab5780631d1a696d146100cc578063613ed116146100ef5780638eaa6ac014610102578063e7424d6414610160575b600080fd5b61008e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100be6100b93660046108cc565b610175565b6040519081526020016100a2565b6100df6100da36600461096a565b61027e565b60405190151581526020016100a2565b6100be6100fd3660046108cc565b6102a3565b61011561011036600461096a565b6102ae565b6040516100a29190815167ffffffffffffffff16815260208083015163ffffffff90811691830191909152604080840151821690830152606092830151169181019190915260800190565b61017361016e366004610983565b6102e0565b005b6020810151516000906001600160a01b031633146101a65760405163164a486160e11b815260040160405180910390fd5b81602001516020015146146101ce576040516315dfb1f160e21b815260040160405180910390fd5b6101d7826102a3565b905060006101e8818361041f61043b565b9050826000015160200151816040015163ffffffff161461023d576040818101518451602001519151631ae4072360e21b815263ffffffff909116600482015260248101919091526044015b60405180910390fd5b61024b60008361041f6104d3565b604051339083907f03c42c74926b989d87b4ba4c2fb467c6aa96404abf1aa90a43f59b125250ce5d90600090a350919050565b600081815260208190526040812054600160401b900463ffffffff1615155b92915050565b600061029d82610546565b60408051608081018252600080825260208201819052918101829052606081019190915261029d60008361041f61043b565b60405163fe8beb7160e01b81523360048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063fe8beb7190602401602060405180830381865afa158015610347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036b9190610a29565b905060005b825181101561041a576000801b83828151811061038f5761038f610a42565b60200260200101510315610412576103cb8382815181106103b2576103b2610a42565b60209081029190910101516000908185816105a26105fa565b8281815181106103dd576103dd610a42565b60200260200101517f2faea3886735264943b7ccb3a9334dd45a334ea8ed2467cdaa68a7bbb1b32c9d60405160405180910390a25b600101610370565b505050565b604051637da7da8360e11b815260048101829052602401610234565b6040805160808101825260008082526020820181905291810182905260608101919091526000838152602085815260408083208151608081018352905467ffffffffffffffff8116825263ffffffff600160401b82048116948301859052600160601b8204811693830193909352600160801b9004909116606082015291036104cb576104cb848463ffffffff16565b949350505050565b600082815260208490526040812080549091600160401b90910463ffffffff16900361050657610506838363ffffffff16565b8054600160401b900463ffffffff1681600861052183610a6e565b91906101000a81548163ffffffff021916908363ffffffff1602179055505050505050565b80516020808301516040808501518151855181860152948401519185019190915281516001600160a01b03166060850152910151608083015260a082015260009061029d9060c0016040516020818303038152906040526107bc565b60405163179e27cd60e21b81526004810188905267ffffffffffffffff80881660248301528616604482015263ffffffff8086166064830152808516608483015280841660a4830152821660c482015260e401610234565b600085815260208781526040918290208251608081018452905467ffffffffffffffff811680835263ffffffff600160401b8304811694840194909452600160601b8204841694830194909452600160801b90049091166060820152901580159061067d57508467ffffffffffffffff16816000015167ffffffffffffffff1614155b806106ac5750606081015163ffffffff16158015906106ac57508263ffffffff16816060015163ffffffff1614155b806106db5750604081015163ffffffff16158015906106db57508363ffffffff16816040015163ffffffff1614155b156106ff576106ff868260000151878460400151888660600151898963ffffffff16565b6001816020018181516107129190610a8e565b63ffffffff90811690915267ffffffffffffffff968716835294851660408084019182529486166060840190815260009889526020998a5294909720825181549990930151975194518616600160801b0263ffffffff60801b19958716600160601b029590951667ffffffffffffffff60601b1998909616600160401b026bffffffffffffffffffffffff1990991692909616919091179690961794909416919091171790555050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016002836040516107ef9190610ab2565b602060405180830381855afa15801561080c573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061082f9190610a29565b61029d9190610ae1565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561087257610872610839565b60405290565b6040805190810167ffffffffffffffff8111828210171561087257610872610839565b604051601f8201601f1916810167ffffffffffffffff811182821017156108c4576108c4610839565b604052919050565b600081830360a08112156108df57600080fd5b6108e761084f565b60408212156108f557600080fd5b6108fd610878565b843581526020808601359082015281526040603f198301121561091f57600080fd5b610927610878565b915060408401356001600160a01b038116811461094357600080fd5b82526060840135602080840191909152810191909152608090920135604083015250919050565b60006020828403121561097c57600080fd5b5035919050565b6000602080838503121561099657600080fd5b823567ffffffffffffffff808211156109ae57600080fd5b818501915085601f8301126109c257600080fd5b8135818111156109d4576109d4610839565b8060051b91506109e584830161089b565b81815291830184019184810190888411156109ff57600080fd5b938501935b83851015610a1d57843582529385019390850190610a04565b98975050505050505050565b600060208284031215610a3b57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600063ffffffff821680610a8457610a84610a58565b6000190192915050565b63ffffffff818116838216019080821115610aab57610aab610a58565b5092915050565b6000825160005b81811015610ad35760208186018101518583015201610ab9565b506000920191825250919050565b600082610afe57634e487b7160e01b600052601260045260246000fd5b50069056fea2646970667358221220e2f0803d1a38eeab3f9f20062e57a0e9d3bc4d6c4de86d4d6c6ae3801179290364736f6c63430008170033";
4
+ export const OutboxBytecode = "0x60a060405234801561001057600080fd5b5060405161096b38038061096b83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516108da6100916000396000818160ce015261014f01526108da6000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633d96c2c91461005c5780637fb349671461007157806384f15db2146100845780638770d707146100c9578063c2b40ae414610108575b600080fd5b61006f61006a3660046105be565b610144565b005b61006f61007f3660046105ea565b610232565b6100b461009236600461068a565b6000918252602082815260408084209284526002909201905290205460ff1690565b60405190151581526020015b60405180910390f35b6100f07f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100c0565b61012f6101163660046106ac565b6000602081905290815260409020805460019091015482565b604080519283526020830191909152016100c0565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461018d5760405163164a486160e11b815260040160405180910390fd5b600083815260208190526040902054156101c257604051631f667e9f60e11b8152600481018490526024015b60405180910390fd5b816101e0576040516339e16d6560e11b815260040160405180910390fd5b600083815260208181526040918290208481556001018390559051828152839185917fd3fab397eb3e47fb43090430543ca9623e09aeddf27bfde1bf7bdca871ee9ebc910160405180910390a3505050565b61024260608601604087016106e1565b6001600160a01b0316336001600160a01b0316146102955761026a60608601604087016106e1565b6040516357aad58160e01b81526001600160a01b0390911660048201523360248201526044016101b9565b466060860135146102b9576040516315dfb1f160e21b815260040160405180910390fd5b6000848152602081905260408120805490918190036102ee57604051635228479160e11b8152600481018790526024016101b9565b600085815260028301602052604090205460ff161561032a57604051633f5c70b560e21b815260048101879052602481018690526044016101b9565b600182015483811461035957604051631206f36760e21b815260048101829052602481018590526044016101b9565b600061037261036d368b90038b018b61073a565b6103e7565b90506103818686838a8761044a565b600087815260028501602052604090819020805460ff1916600117905551819084908a907f34bc3301c4660a5642d2246e175e7fea498c94258d39dcaa555a52464dbb083d906103d4908c815260200190565b60405180910390a4505050505050505050565b80516020808301516040808501518151855181860152948401519185019190915281516001600160a01b03166060850152910151608083015260a08201526000906104449060c0015b604051602081830303815290604052610526565b92915050565b828260005b868110156104e4576001808316148061049e57610499848a8a85818110610478576104786107f3565b90506020020135604051602001610430929190918252602082015260400190565b6104d5565b6104d58989848181106104b3576104b36107f3565b9050602002013585604051602001610430929190918252602082015260400190565b935050600191821c910161044f565b5082821461051d57604051635f216bf160e01b8152600481018490526024810183905260448101869052606481018590526084016101b9565b50505050505050565b604080516001808252818301909252600091602082018180368337019050506002836040516105559190610839565b602060405180830381855afa158015610572573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906105959190610845565b6040516020016105a692919061085e565b6040516020818303038152906040526104449061087d565b6000806000606084860312156105d357600080fd5b505081359360208301359350604090920135919050565b600080600080600085870361010081121561060457600080fd5b60a081121561061257600080fd5b5085945060a0860135935060c0860135925060e086013567ffffffffffffffff8082111561063f57600080fd5b818801915088601f83011261065357600080fd5b81358181111561066257600080fd5b8960208260051b850101111561067757600080fd5b9699959850939650602001949392505050565b6000806040838503121561069d57600080fd5b50508035926020909101359150565b6000602082840312156106be57600080fd5b5035919050565b80356001600160a01b03811681146106dc57600080fd5b919050565b6000602082840312156106f357600080fd5b6106fc826106c5565b9392505050565b6040805190810167ffffffffffffffff8111828210171561073457634e487b7160e01b600052604160045260246000fd5b60405290565b600081830360a081121561074d57600080fd5b604080516060810181811067ffffffffffffffff8211171561077f57634e487b7160e01b600052604160045260246000fd5b82528183121561078e57600080fd5b610796610703565b85358152602080870135908201528152603f1983018213156107b757600080fd5b6107bf610703565b92506107cc8286016106c5565b83526060850135602084015282602082015260808501358282015280935050505092915050565b634e487b7160e01b600052603260045260246000fd5b6000815160005b8181101561082a5760208185018101518683015201610810565b50600093019283525090919050565b60006106fc8284610809565b60006020828403121561085757600080fd5b5051919050565b600061086a8285610809565b60ff199390931683525050601f01919050565b8051602080830151919081101561089e576000198160200360031b1b821691505b5091905056fea2646970667358221220d4d438090c643465eb89a9b8fb3dff5976490ffde142ebfdd9955a484e29aecb64736f6c63430008170033";
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * Registry bytecode.
3
3
  */
4
- export const RegistryBytecode = "0x608060405234801561001057600080fd5b5061001e61dead8080610024565b5061018d565b6001600160a01b0383166000908152600660205260408120541580159061006d57604051633c34eabf60e01b81526001600160a01b038616600482015260240160405180910390fd5b604080516080810182526001600160a01b03808816808352878216602084018190529187169383018490524360608401819052600180546001600160a01b03199081169093179055600280548316909317909255600380549091169093179092556004919091556000805481806100e383610166565b909155506000818152600560209081526040808320865181546001600160a01b03199081166001600160a01b03928316178355888501516001840180548316918416919091179055888401516002840180549092169083161790556060909701516003909101559990941681526006909352969091208690555093949350505050565b60006001820161018657634e487b7160e01b600052601160045260246000fd5b5060010190565b6104bf8061019c6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063a4d2342a1161005b578063a4d2342a146101a0578063f000999e146101b1578063f6fc7eb6146101c4578063fe8beb711461022657600080fd5b8063368c093c1461008d5780635a4ce7ba146100b757806376f10ad0146100ce578063a32fbb7b1461018f575b600080fd5b6002546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b6100c060005481565b6040519081526020016100ae565b61014f6100dc3660046103c8565b6040805160808082018352600080835260208084018290528385018290526060938401829052948152600585528390208351918201845280546001600160a01b03908116835260018201548116958301959095526002810154909416928101929092526003909201549181019190915290565b6040805182516001600160a01b039081168252602080850151821690830152838301511691810191909152606091820151918101919091526080016100ae565b6003546001600160a01b031661009a565b6001546001600160a01b031661009a565b6100c06101bf3660046103fd565b610239565b61014f60408051608081018252600080825260208201819052918101829052606081019190915250604080516080810182526001546001600160a01b039081168252600254811660208301526003541691810191909152600454606082015290565b6100c0610234366004610440565b61037c565b6001600160a01b0383166000908152600660205260408120541580159061028357604051633c34eabf60e01b81526001600160a01b03861660048201526024015b60405180910390fd5b604080516080810182526001600160a01b03808816808352878216602084018190529187169383018490524360608401819052600180546001600160a01b03199081169093179055600280548316909317909255600380549091169093179092556004919091556000805481806102f983610462565b909155506000818152600560209081526040808320865181546001600160a01b03199081166001600160a01b03928316178355888501516001840180548316918416919091179055888401516002840180549092169083161790556060909701516003909101559990941681526006909352969091208690555093949350505050565b6001600160a01b038116600090815260066020526040812054801515806103c15760405163a1fee4cf60e01b81526001600160a01b038516600482015260240161027a565b5092915050565b6000602082840312156103da57600080fd5b5035919050565b80356001600160a01b03811681146103f857600080fd5b919050565b60008060006060848603121561041257600080fd5b61041b846103e1565b9250610429602085016103e1565b9150610437604085016103e1565b90509250925092565b60006020828403121561045257600080fd5b61045b826103e1565b9392505050565b60006001820161048257634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212202e3ea51da9545770e43b633b2e4188f7a4e66e2e5828760c5987b22a37bc1e8364736f6c63430008170033";
4
+ export const RegistryBytecode = "0x608060405234801561001057600080fd5b5061001e61dead8080610024565b5061018d565b6001600160a01b0383166000908152600660205260408120541580159061006d57604051633c34eabf60e01b81526001600160a01b038616600482015260240160405180910390fd5b604080516080810182526001600160a01b03808816808352878216602084018190529187169383018490524360608401819052600180546001600160a01b03199081169093179055600280548316909317909255600380549091169093179092556004919091556000805481806100e383610166565b909155506000818152600560209081526040808320865181546001600160a01b03199081166001600160a01b03928316178355888501516001840180548316918416919091179055888401516002840180549092169083161790556060909701516003909101559990941681526006909352969091208690555093949350505050565b60006001820161018657634e487b7160e01b600052601160045260246000fd5b5060010190565b6104bf8061019c6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063a4d2342a1161005b578063a4d2342a146101a0578063f000999e146101b1578063f6fc7eb6146101c4578063fe8beb711461022657600080fd5b8063368c093c1461008d5780635a4ce7ba146100b757806376f10ad0146100ce578063a32fbb7b1461018f575b600080fd5b6002546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b6100c060005481565b6040519081526020016100ae565b61014f6100dc3660046103c8565b6040805160808082018352600080835260208084018290528385018290526060938401829052948152600585528390208351918201845280546001600160a01b03908116835260018201548116958301959095526002810154909416928101929092526003909201549181019190915290565b6040805182516001600160a01b039081168252602080850151821690830152838301511691810191909152606091820151918101919091526080016100ae565b6003546001600160a01b031661009a565b6001546001600160a01b031661009a565b6100c06101bf3660046103fd565b610239565b61014f60408051608081018252600080825260208201819052918101829052606081019190915250604080516080810182526001546001600160a01b039081168252600254811660208301526003541691810191909152600454606082015290565b6100c0610234366004610440565b61037c565b6001600160a01b0383166000908152600660205260408120541580159061028357604051633c34eabf60e01b81526001600160a01b03861660048201526024015b60405180910390fd5b604080516080810182526001600160a01b03808816808352878216602084018190529187169383018490524360608401819052600180546001600160a01b03199081169093179055600280548316909317909255600380549091169093179092556004919091556000805481806102f983610462565b909155506000818152600560209081526040808320865181546001600160a01b03199081166001600160a01b03928316178355888501516001840180548316918416919091179055888401516002840180549092169083161790556060909701516003909101559990941681526006909352969091208690555093949350505050565b6001600160a01b038116600090815260066020526040812054801515806103c15760405163a1fee4cf60e01b81526001600160a01b038516600482015260240161027a565b5092915050565b6000602082840312156103da57600080fd5b5035919050565b80356001600160a01b03811681146103f857600080fd5b919050565b60008060006060848603121561041257600080fd5b61041b846103e1565b9250610429602085016103e1565b9150610437604085016103e1565b90509250925092565b60006020828403121561045257600080fd5b61045b826103e1565b9392505050565b60006001820161048257634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212209c63efefcab7f8abf07fb44a36e45438c63f42798a1b742f96674acfa7eb161b64736f6c63430008170033";
@@ -44,6 +44,19 @@ export const RollupAbi = [
44
44
  ],
45
45
  "stateMutability": "view"
46
46
  },
47
+ {
48
+ "type": "function",
49
+ "name": "OUTBOX",
50
+ "inputs": [],
51
+ "outputs": [
52
+ {
53
+ "name": "",
54
+ "type": "address",
55
+ "internalType": "contract IOutbox"
56
+ }
57
+ ],
58
+ "stateMutability": "view"
59
+ },
47
60
  {
48
61
  "type": "function",
49
62
  "name": "REGISTRY",
@@ -136,11 +149,6 @@ export const RollupAbi = [
136
149
  "type": "bytes32",
137
150
  "internalType": "bytes32"
138
151
  },
139
- {
140
- "name": "_body",
141
- "type": "bytes",
142
- "internalType": "bytes"
143
- },
144
152
  {
145
153
  "name": "_proof",
146
154
  "type": "bytes",
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * Rollup bytecode.
3
3
  */
4
- export const RollupBytecode = "0x6101206040523480156200001257600080fd5b506040516200349e3803806200349e83398101604081905262000035916200010f565b6040516200004390620000da565b604051809103906000f08015801562000060573d6000803e3d6000fd5b506001600160a01b0390811660805282811660a052811660c05260405130906004906200008d90620000e8565b6001600160a01b0390921682526020820152604001604051809103906000f080158015620000bf573d6000803e3d6000fd5b506001600160a01b031660e05250506001610100526200014e565b610177806200155883390190565b611dcf80620016cf83390190565b6001600160a01b03811681146200010c57600080fd5b50565b600080604083850312156200012357600080fd5b82516200013081620000f6565b60208401519092506200014381620000f6565b809150509250929050565b60805160a05160c05160e051610100516113a4620001b46000396000818161019401526101ca01526000818161014601526103e801526000818161016d015261021301526000818160b901526104ad01526000818160f8015261034101526113a46000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80630e4f3c8e116100665780630e4f3c8e146101235780639518832d1461012c578063b701069714610141578063ded2f5e714610168578063ffa1ad741461018f57600080fd5b806302a214601461009857806306433b1b146100b457806308c84e70146100f35780630c7c745e1461011a575b600080fd5b6100a160005481565b6040519081526020015b60405180910390f35b6100db7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100ab565b6100db7f000000000000000000000000000000000000000000000000000000000000000081565b6100a160025481565b6100a160015481565b61013f61013a366004610f83565b6101b6565b005b6100db7f000000000000000000000000000000000000000000000000000000000000000081565b6100db7f000000000000000000000000000000000000000000000000000000000000000081565b6100a17f000000000000000000000000000000000000000000000000000000000000000081565b60006101c287876105d0565b90506101f4817f00000000000000000000000000000000000000000000000000000000000000006001546000546108eb565b60208181015101516040516389b6f02760e01b815260048101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906389b6f02790602401602060405180830381865afa158015610262573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102869190611091565b6102b85780602001516020015160405163414906c360e01b81526004016102af91815260200190565b60405180910390fd5b60006102c485856109f1565b935060009250600191506102d59050565b6040519080825280602002602001820160405280156102fe578160200160208202803683370190505b50905061030c898989610d00565b8160008151811061031f5761031f6110ba565b6020908102919091010152604051633a94343960e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ea50d0e4906103789087908590600401611130565b602060405180830381865afa158015610395573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b99190611091565b6103d65760405163a5b2ba1760e01b815260040160405180910390fd5b866000819055504260018190555060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631dedc6f76040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610446573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046a919061117a565b905080846020015160400151146104a9578084602001516040015160405163cd6f423360e01b81526004016102af929190918252602082015260400190565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a32fbb7b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052d9190611193565b6040516339d0935960e21b81529091506001600160a01b0382169063e7424d649061055c9087906004016111bc565b600060405180830381600087803b15801561057657600080fd5b505af115801561058a573d6000803e3d6000fd5b505050508460600151604001517f655779015b9b95c7fd18f01ea4619ab4c31289bbe134ba85c5b20bcdeb1dabf360405160405180910390a25050505050505050505050565b6105d8610e15565b6101e882146106055760405163f3ccb24760e01b81526101e86004820152602481018390526044016102af565b61060d610e15565b60408051808201909152806106266020600087896111cf565b61062f916111f9565b81526020908101906106459060249087896111cf565b61064e91611217565b60e01c905281526106636044602485876111cf565b61066c916111f9565b6020820151526106806064604485876111cf565b610689916111f9565b602080830151015261069f6084606485876111cf565b6106a8916111f9565b6020820151604001526106bf60a4608485876111cf565b6106c8916111f9565b60208201516060015260408051808201909152806106ea60c460a487896111cf565b6106f3916111f9565b815260200161070660c860c487896111cf565b61070f91611217565b60e01c90526040808301519190915280518082019091528061073560e860c887896111cf565b61073e916111f9565b815260200161075160ec60e887896111cf565b61075a91611217565b60e01c9052604080830151602001519190915280518082019091528061078561010c60ec87896111cf565b61078e916111f9565b81526020016107a361011061010c87896111cf565b6107ac91611217565b60e01c905260408083015160209081015101919091528051808201909152806107db61013061011087896111cf565b6107e4916111f9565b81526020016107f961013461013087896111cf565b61080291611217565b60e01c90526040820151602001516060015261082461015461013485876111cf565b61082d916111f9565b60608201515261084361017461015485876111cf565b61084c916111f9565b60608201516020015261086561019461017485876111cf565b61086e916111f9565b6060820151604001526108876101b461019485876111cf565b610890916111f9565b60608083015101526108a86101c86101b485876111cf565b6108b191611247565b60608281015191901c6080909101526108d06101e86101c885876111cf565b6108d9916111f9565b606082015160a0015290505b92915050565b606084015151461461092057606084015151604051631bdade0960e11b815260048101919091524660248201526044016102af565b828460600151602001511461095c576060840151602001516040516327bcc1e560e21b81526004810191909152602481018490526044016102af565b42846060015160600151111561098557604051635e0e748b60e11b815260040160405180910390fd5b8184606001516060015110156109ae576040516372ed9c8160e01b815260040160405180910390fd5b80158015906109bf57508351518114155b156109eb57835151604051635b41520760e11b81526102af918391600401918252602082015260400190565b50505050565b604080516010808252610220820190925260009182916060918291906020820161020080368337019050509150600080610a2c888884610d36565b9050610a39600483611290565b9150602081028289016020860137610a528160206112a3565b610a5c9083611290565b91506000610a6b898985610d36565b9050610a78600484611290565b9250610a856002826112a3565b67ffffffffffffffff811115610a9d57610a9d610f6d565b604051908082528060200260200182016040528015610ac6578160200160208202803683370190505b50935060005b81811015610c1557610adf8a8a86610d67565b9250610aec600185611290565b9350610af98360206112a3565b610b039085611290565b9350610b108a8a86610d67565b9250610b1d600185611290565b9350610b2a8360206112a3565b610b349085611290565b9350610b418a8a86610d67565b9250610b4e600185611290565b93506000610b5d8460206112a3565b90508315610b84576000610b726002846112a3565b905081868d016020830260208a010137505b610b8e8186611290565b945050610b9c8a8a86610d67565b9250610ba9600185611290565b9350610bb68360406112a3565b610bc09085611290565b93506000610bcf8b8b87610d36565b9050610bdc816004611290565b610be69086611290565b9450610bf38b8b87610d36565b9050610c00816004611290565b610c0a9086611290565b945050600101610acc565b50600285604051602001610c2991906112ba565b60408051601f1981840301815290829052610c43916112f0565b602060405180830381855afa158015610c60573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610c83919061117a565b9650600284604051602001610c9891906112ba565b60408051601f1981840301815290829052610cb2916112f0565b602060405180830381855afa158015610ccf573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610cf2919061117a565b955050505092959194509250565b6000610d2e848484604051602001610d1a9392919061130c565b604051602081830303815290604052610d98565b949350505050565b6000838284610d46826004611290565b92610d53939291906111cf565b610d5c91611217565b60e01c949350505050565b6000838284610d77826001611290565b92610d84939291906111cf565b610d8d9161131e565b60f81c949350505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001600283604051610dcb91906112f0565b602060405180830381855afa158015610de8573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610e0b919061117a565b6108e5919061134c565b6040805160c0810182526000608080830182815260a084018390528352835190810184528181526020808201839052818501839052606082019290925290820152908101610e61610e9e565b81526040805160c08101825260008082526020828101829052928201819052606082018190526080820181905260a082015291015290565b905290565b604080516080808201835260008284018181526060808501839052908452845160c08101865292830182815260a084018390528352845180860186528281526020818101849052808501919091528551808701875283815280820184905284870152855180870190965282865285810192909252929390840192610e9992919082019083565b60008083601f840112610f3657600080fd5b50813567ffffffffffffffff811115610f4e57600080fd5b602083019150836020828501011115610f6657600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060808789031215610f9c57600080fd5b863567ffffffffffffffff80821115610fb457600080fd5b610fc08a838b01610f24565b9098509650602089013595506040890135915080821115610fe057600080fd5b610fec8a838b01610f24565b9095509350606089013591508082111561100557600080fd5b818901915089601f83011261101957600080fd5b81358181111561102b5761102b610f6d565b604051601f8201601f19908116603f0116810190838211818310171561105357611053610f6d565b816040528281528c602084870101111561106c57600080fd5b8260208601602083013760006020848301015280955050505050509295509295509295565b6000602082840312156110a357600080fd5b815180151581146110b357600080fd5b9392505050565b634e487b7160e01b600052603260045260246000fd5b60005b838110156110eb5781810151838201526020016110d3565b50506000910152565b60008151808452602080850194506020840160005b8381101561112557815187529582019590820190600101611109565b509495945050505050565b604081526000835180604084015261114f8160608501602088016110d0565b601f01601f1916820182810360609081016020850152611171908201856110f4565b95945050505050565b60006020828403121561118c57600080fd5b5051919050565b6000602082840312156111a557600080fd5b81516001600160a01b03811681146110b357600080fd5b6020815260006110b360208301846110f4565b600080858511156111df57600080fd5b838611156111ec57600080fd5b5050820193919092039150565b803560208310156108e557600019602084900360031b1b1692915050565b6001600160e01b0319813581811691600485101561123f5780818660040360031b1b83161692505b505092915050565b6bffffffffffffffffffffffff19813581811691601485101561123f5760149490940360031b84901b1690921692915050565b634e487b7160e01b600052601160045260246000fd5b808201808211156108e5576108e561127a565b80820281158282048414176108e5576108e561127a565b815160009082906020808601845b838110156112e4578151855293820193908201906001016112c8565b50929695505050505050565b600082516113028184602087016110d0565b9190910192915050565b82848237909101908152602001919050565b6001600160f81b0319813581811691600185101561123f5760019490940360031b84901b1690921692915050565b60008261136957634e487b7160e01b600052601260045260246000fd5b50069056fea2646970667358221220ea1d5ca3def52e20e93941d8c645a498c7ef36c57aec802a36b7fb9f65cb5a3f64736f6c63430008170033608060405234801561001057600080fd5b50610157806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063ea50d0e414610030575b600080fd5b61004861003e36600461005c565b6001949350505050565b604051901515815260200160405180910390f35b6000806000806040858703121561007257600080fd5b843567ffffffffffffffff8082111561008a57600080fd5b818701915087601f83011261009e57600080fd5b8135818111156100ad57600080fd5b8860208285010111156100bf57600080fd5b6020928301965094509086013590808211156100da57600080fd5b818701915087601f8301126100ee57600080fd5b8135818111156100fd57600080fd5b8860208260051b850101111561011257600080fd5b9598949750506020019450505056fea264697066735822122070a22f5a8fc3c513cd1ded6697436e1e1330fc1bdab18d1b4a6487ff3fd5e3f364736f6c63430008170033610100604052600160005560018062000019919062000167565b6001553480156200002957600080fd5b5060405162001dcf38038062001dcf8339810160408190526200004c9162000183565b6001600160a01b03821660805260a08190526200006b816002620002bc565b60c0526040516000908290620000819062000143565b908152602001604051809103906000f080158015620000a4573d6000803e3d6000fd5b5060015460009081526002602090815260409182902080546001600160a01b0319166001600160a01b038516908117909155825163ebf0c71760e01b815292519394509263ebf0c7179260048082019392918290030181865afa15801562000110573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001369190620002d1565b60e05250620002eb915050565b61092b80620014a483390190565b634e487b7160e01b600052601160045260246000fd5b808201808211156200017d576200017d62000151565b92915050565b600080604083850312156200019757600080fd5b82516001600160a01b0381168114620001af57600080fd5b6020939093015192949293505050565b600181815b8085111562000200578160001904821115620001e457620001e462000151565b80851615620001f257918102915b93841c9390800290620001c4565b509250929050565b60008262000219575060016200017d565b8162000228575060006200017d565b81600181146200024157600281146200024c576200026c565b60019150506200017d565b60ff84111562000260576200026062000151565b50506001821b6200017d565b5060208310610133831016604e8410600b841016171562000291575081810a6200017d565b6200029d8383620001bf565b8060001904821115620002b457620002b462000151565b029392505050565b6000620002ca838362000208565b9392505050565b600060208284031215620002e457600080fd5b5051919050565b60805160a05160c05160e0516111766200032e600039600061013d0152600050506000818161021d015261042a01526000818160a7015260f901526111766000f3fe60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80631dedc6f714620000635780631f6d510b14620000805780638735181314620000975780639611c5c214620000a1578063abe839f814620000e2575b600080fd5b6200006d620000ec565b6040519081526020015b60405180910390f35b6200006d6200009136600462000699565b620002bb565b6200006d60015481565b620000c97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200162000077565b6200006d60005481565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614620001385760405163e5336a6b60e01b815260040160405180910390fd5b6000547f00000000000000000000000000000000000000000000000000000000000000009060011015620001e5576000805481526002602090815260409182902054825163ebf0c71760e01b815292516001600160a01b039091169263ebf0c7179260048083019391928290030181865afa158015620001bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e291906200071a565b90505b6001546000546001620001f991906200074a565b036200029c5760018060008282546200021391906200074a565b90915550506040517f00000000000000000000000000000000000000000000000000000000000000009062000248906200068b565b908152602001604051809103906000f0801580156200026b573d6000803e3d6000fd5b50600154600090815260026020526040902080546001600160a01b0319166001600160a01b03929092169190911790555b6001600080828254620002b091906200074a565b909155509092915050565b6000620002d960016000805160206200112183398151915262000760565b84511115620003065783516040516353bb503760e11b815260048101919091526024015b60405180910390fd5b6200032260016000805160206200112183398151915262000760565b83111562000347576040516311d1480560e21b815260048101849052602401620002fd565b6200036360016000805160206200112183398151915262000760565b8211156200038857604051633b379f8b60e21b815260048101839052602401620002fd565b600154600090815260026020908152604091829020548251635d5e9ecd60e11b815292516001600160a01b0390911692839263babd3d9a926004808401938290030181865afa158015620003e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000406919062000776565b15620004a65760018060008282546200042091906200074a565b90915550506040517f00000000000000000000000000000000000000000000000000000000000000009062000455906200068b565b908152602001604051809103906000f08015801562000478573d6000803e3d6000fd5b50600154600090815260026020526040902080546001600160a01b0319166001600160a01b03831617905590505b6040805160c08101825233608082019081524660a0830152815260208101879052908101859052606081018490526000620004e182620005a8565b604051635c8b80ab60e01b8152600481018290529091506000906001600160a01b03851690635c8b80ab906024016020604051808303816000875af11580156200052f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200055591906200071a565b90506001547fb1ed68d7f28526a37d35f307ac2c7e3f13dfcd207b048eb3d4d743ef26f48bba828460405162000595929190918252602082015260400190565b60405180910390a2509695505050505050565b8051602080830151604080850151606080870151835187516001600160a01b03168188015296860151938701939093528351908601529190920151608084015260a083015260c0820152600090620006129060e00160405160208183030381529060405262000618565b92915050565b6000600080516020620011218339815191526002836040516200063c9190620007a1565b602060405180830381855afa1580156200065a573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906200067f91906200071a565b620006129190620007d2565b61092b80620007f683390190565b60008060008385036080811215620006b057600080fd5b6040811215620006bf57600080fd5b506040516040810181811067ffffffffffffffff82111715620006f257634e487b7160e01b600052604160045260246000fd5b6040908152853582526020808701359083015290969085013595506060909401359392505050565b6000602082840312156200072d57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111562000612576200061262000734565b8181038181111562000612576200061262000734565b6000602082840312156200078957600080fd5b815180151581146200079a57600080fd5b9392505050565b6000825160005b81811015620007c45760208186018101518583015201620007a8565b506000920191825250919050565b600082620007f057634e487b7160e01b600052601260045260246000fd5b50069056fe60c0604052600080553480156200001557600080fd5b506040516200092b3803806200092b83398101604081905262000038916200016f565b60808190526200004a8160026200029e565b60a052600080805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5560015b60805181116200016757600280600062000098600185620002b3565b81526020019081526020016000205460026000600185620000ba9190620002b3565b815260200190815260200160002054604051602001620000e4929190918252602082015260400190565b60408051601f19818403018152908290526200010091620002c9565b602060405180830381855afa1580156200011e573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906200014391906200016f565b600082815260026020526040902055806200015e81620002fa565b9150506200007c565b505062000316565b6000602082840312156200018257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620001e0578160001904821115620001c457620001c462000189565b80851615620001d257918102915b93841c9390800290620001a4565b509250929050565b600082620001f95750600162000298565b81620002085750600062000298565b81600181146200022157600281146200022c576200024c565b600191505062000298565b60ff84111562000240576200024062000189565b50506001821b62000298565b5060208310610133831016604e8410600b841016171562000271575081810a62000298565b6200027d83836200019f565b806000190482111562000294576200029462000189565b0290505b92915050565b6000620002ac8383620001e8565b9392505050565b8181038181111562000298576200029862000189565b6000825160005b81811015620002ec5760208186018101518583015201620002d0565b506000920191825250919050565b6000600182016200030f576200030f62000189565b5060010190565b60805160a0516105ce6200035d6000396000818160f701528181610128015261028601526000818160ad01528181610253015281816102af015261031301526105ce6000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063babd3d9a1161005b578063babd3d9a146100ef578063bdffd28214610123578063e82955881461014a578063ebf0c7171461016a57600080fd5b80635c8b80ab1461008257806369ea80d5146100a85780636e0c3fee146100cf575b600080fd5b6100956100903660046104ef565b610172565b6040519081526020015b60405180910390f35b6100957f000000000000000000000000000000000000000000000000000000000000000081565b6100956100dd3660046104ef565b60016020526000908152604090205481565b6000546040517f0000000000000000000000000000000000000000000000000000000000000000909114815260200161009f565b6100957f000000000000000000000000000000000000000000000000000000000000000081565b6100956101583660046104ef565b60026020526000908152604090205481565b610095610244565b6000805481610180826104c3565b90508360005b82811015610217576000818152600160209081526040918290205482519182015290810183905260029060600160408051601f19818403018152908290526101cd91610508565b602060405180830381855afa1580156101ea573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061020d9190610537565b9150600101610186565b5060008281526001602052604081208290558054908061023683610566565b909155509295945050505050565b600080548082036102845750507f000000000000000000000000000000000000000000000000000000000000000060009081526002602052604090205490565b7f000000000000000000000000000000000000000000000000000000000000000081036102e05750507f000000000000000000000000000000000000000000000000000000000000000060009081526001602052604090205490565b60006102ed60018361057f565b905060006102fa826104c3565b60008181526001602052604090205490915082821c825b7f00000000000000000000000000000000000000000000000000000000000000008110156104b85760018083161480156104225760008281526001602052604090205484900361039c5760405162461bcd60e51b81526020600482015260126024820152714d697374616b65732077657265206d61646560701b604482015260640160405180910390fd5b6000828152600160209081526040918290205482519182015290810185905260029060600160408051601f19818403018152908290526103db91610508565b602060405180830381855afa1580156103f8573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061041b9190610537565b93506104ab565b600082815260026020818152604092839020549251919261044e92889201918252602082015260400190565b60408051601f198184030181529082905261046891610508565b602060405180830381855afa158015610485573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906104a89190610537565b93505b50600191821c9101610311565b509095945050505050565b600080825b806001166001036104e857816104dd81610566565b92505060011c6104c8565b5092915050565b60006020828403121561050157600080fd5b5035919050565b6000825160005b81811015610529576020818601810151858301520161050f565b506000920191825250919050565b60006020828403121561054957600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60006001820161057857610578610550565b5060010190565b8181038181111561059257610592610550565b9291505056fea26469706673582212207f07fd04cb1d04476d06afde60b289b2df65281880c56a4548c42cc7b2455fcc64736f6c6343000817003330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a264697066735822122059f0d4db3209bc51d22696b0c87c86091a037c55e81ead8be3cd11dcd0e1767f64736f6c6343000817003360c0604052600080553480156200001557600080fd5b506040516200092b3803806200092b83398101604081905262000038916200016f565b60808190526200004a8160026200029e565b60a052600080805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5560015b60805181116200016757600280600062000098600185620002b3565b81526020019081526020016000205460026000600185620000ba9190620002b3565b815260200190815260200160002054604051602001620000e4929190918252602082015260400190565b60408051601f19818403018152908290526200010091620002c9565b602060405180830381855afa1580156200011e573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906200014391906200016f565b600082815260026020526040902055806200015e81620002fa565b9150506200007c565b505062000316565b6000602082840312156200018257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620001e0578160001904821115620001c457620001c462000189565b80851615620001d257918102915b93841c9390800290620001a4565b509250929050565b600082620001f95750600162000298565b81620002085750600062000298565b81600181146200022157600281146200022c576200024c565b600191505062000298565b60ff84111562000240576200024062000189565b50506001821b62000298565b5060208310610133831016604e8410600b841016171562000271575081810a62000298565b6200027d83836200019f565b806000190482111562000294576200029462000189565b0290505b92915050565b6000620002ac8383620001e8565b9392505050565b8181038181111562000298576200029862000189565b6000825160005b81811015620002ec5760208186018101518583015201620002d0565b506000920191825250919050565b6000600182016200030f576200030f62000189565b5060010190565b60805160a0516105ce6200035d6000396000818160f701528181610128015261028601526000818160ad01528181610253015281816102af015261031301526105ce6000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063babd3d9a1161005b578063babd3d9a146100ef578063bdffd28214610123578063e82955881461014a578063ebf0c7171461016a57600080fd5b80635c8b80ab1461008257806369ea80d5146100a85780636e0c3fee146100cf575b600080fd5b6100956100903660046104ef565b610172565b6040519081526020015b60405180910390f35b6100957f000000000000000000000000000000000000000000000000000000000000000081565b6100956100dd3660046104ef565b60016020526000908152604090205481565b6000546040517f0000000000000000000000000000000000000000000000000000000000000000909114815260200161009f565b6100957f000000000000000000000000000000000000000000000000000000000000000081565b6100956101583660046104ef565b60026020526000908152604090205481565b610095610244565b6000805481610180826104c3565b90508360005b82811015610217576000818152600160209081526040918290205482519182015290810183905260029060600160408051601f19818403018152908290526101cd91610508565b602060405180830381855afa1580156101ea573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061020d9190610537565b9150600101610186565b5060008281526001602052604081208290558054908061023683610566565b909155509295945050505050565b600080548082036102845750507f000000000000000000000000000000000000000000000000000000000000000060009081526002602052604090205490565b7f000000000000000000000000000000000000000000000000000000000000000081036102e05750507f000000000000000000000000000000000000000000000000000000000000000060009081526001602052604090205490565b60006102ed60018361057f565b905060006102fa826104c3565b60008181526001602052604090205490915082821c825b7f00000000000000000000000000000000000000000000000000000000000000008110156104b85760018083161480156104225760008281526001602052604090205484900361039c5760405162461bcd60e51b81526020600482015260126024820152714d697374616b65732077657265206d61646560701b604482015260640160405180910390fd5b6000828152600160209081526040918290205482519182015290810185905260029060600160408051601f19818403018152908290526103db91610508565b602060405180830381855afa1580156103f8573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061041b9190610537565b93506104ab565b600082815260026020818152604092839020549251919261044e92889201918252602082015260400190565b60408051601f198184030181529082905261046891610508565b602060405180830381855afa158015610485573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906104a89190610537565b93505b50600191821c9101610311565b509095945050505050565b600080825b806001166001036104e857816104dd81610566565b92505060011c6104c8565b5092915050565b60006020828403121561050157600080fd5b5035919050565b6000825160005b81811015610529576020818601810151858301520161050f565b506000920191825250919050565b60006020828403121561054957600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60006001820161057857610578610550565b5060010190565b8181038181111561059257610592610550565b9291505056fea26469706673582212207f07fd04cb1d04476d06afde60b289b2df65281880c56a4548c42cc7b2455fcc64736f6c63430008170033";
4
+ export const RollupBytecode = "0x6101406040523480156200001257600080fd5b5060405162003bf638038062003bf6833981016040819052620000359162000168565b604051620000439062000125565b604051809103906000f08015801562000060573d6000803e3d6000fd5b506001600160a01b0390811660805282811660a052811660c05260405130906004906200008d9062000133565b6001600160a01b0390921682526020820152604001604051809103906000f080158015620000bf573d6000803e3d6000fd5b506001600160a01b031660e0526040513090620000dc9062000141565b6001600160a01b039091168152602001604051809103906000f08015801562000109573d6000803e3d6000fd5b506001600160a01b0316610100525050600161012052620001a7565b610177806200115d83390190565b611fb780620012d483390190565b61096b806200328b83390190565b6001600160a01b03811681146200016557600080fd5b50565b600080604083850312156200017c57600080fd5b825162000189816200014f565b60208401519092506200019c816200014f565b809150509250929050565b60805160a05160c05160e0516101005161012051610f4462000219600039600081816101c601526101fc01526000818161013c015261050a01526000818161017801526103f301526000818161019f01526102450152600060c4015260008181610103015261034c0152610f446000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80631b142ea7116100665780631b142ea71461013757806350fd9b9e1461015e578063b701069714610173578063ded2f5e71461019a578063ffa1ad74146101c157600080fd5b806302a21460146100a357806306433b1b146100bf57806308c84e70146100fe5780630c7c745e146101255780630e4f3c8e1461012e575b600080fd5b6100ac60005481565b6040519081526020015b60405180910390f35b6100e67f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100b6565b6100e67f000000000000000000000000000000000000000000000000000000000000000081565b6100ac60025481565b6100ac60015481565b6100e67f000000000000000000000000000000000000000000000000000000000000000081565b61017161016c366004610bb9565b6101e8565b005b6100e67f000000000000000000000000000000000000000000000000000000000000000081565b6100e67f000000000000000000000000000000000000000000000000000000000000000081565b6100ac7f000000000000000000000000000000000000000000000000000000000000000081565b60006101f485856105a5565b9050610226817f00000000000000000000000000000000000000000000000000000000000000006001546000546108c0565b60208181015101516040516389b6f02760e01b815260048101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906389b6f02790602401602060405180830381865afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190610cc9565b6102ea5780602001516020015160405163414906c360e01b81526004016102e191815260200190565b60405180910390fd5b604080516001808252818301909252600091602080830190803683370190505090506103178686866109c6565b8160008151811061032a5761032a610cf2565b6020908102919091010152604051633a94343960e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ea50d0e4906103839086908590600401610d2c565b602060405180830381865afa1580156103a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c49190610cc9565b6103e15760405163a5b2ba1760e01b815260040160405180910390fd5b836000819055504260018190555060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631dedc6f76040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610451573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104759190610dab565b905080836020015160400151146104b4578083602001516040015160405163cd6f423360e01b81526004016102e1929190918252602082015260400190565b6020830151516000906104c8906001610dc4565b6060808601516040908101516020880151909201519051633d96c2c960e01b815260048101929092526024820152604481018290529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633d96c2c990606401600060405180830381600087803b15801561054e57600080fd5b505af1158015610562573d6000803e3d6000fd5b505050508360600151604001517f655779015b9b95c7fd18f01ea4619ab4c31289bbe134ba85c5b20bcdeb1dabf360405160405180910390a25050505050505050565b6105ad610a94565b6101e882146105da5760405163f3ccb24760e01b81526101e86004820152602481018390526044016102e1565b6105e2610a94565b60408051808201909152806105fb602060008789610de5565b61060491610e0f565b815260209081019061061a906024908789610de5565b61062391610e2d565b60e01c90528152610638604460248587610de5565b61064191610e0f565b602082015152610655606460448587610de5565b61065e91610e0f565b6020808301510152610674608460648587610de5565b61067d91610e0f565b60208201516040015261069460a460848587610de5565b61069d91610e0f565b60208201516060015260408051808201909152806106bf60c460a48789610de5565b6106c891610e0f565b81526020016106db60c860c48789610de5565b6106e491610e2d565b60e01c90526040808301519190915280518082019091528061070a60e860c88789610de5565b61071391610e0f565b815260200161072660ec60e88789610de5565b61072f91610e2d565b60e01c9052604080830151602001519190915280518082019091528061075a61010c60ec8789610de5565b61076391610e0f565b815260200161077861011061010c8789610de5565b61078191610e2d565b60e01c905260408083015160209081015101919091528051808201909152806107b06101306101108789610de5565b6107b991610e0f565b81526020016107ce6101346101308789610de5565b6107d791610e2d565b60e01c9052604082015160200151606001526107f96101546101348587610de5565b61080291610e0f565b6060820151526108186101746101548587610de5565b61082191610e0f565b60608201516020015261083a6101946101748587610de5565b61084391610e0f565b60608201516040015261085c6101b46101948587610de5565b61086591610e0f565b606080830151015261087d6101c86101b48587610de5565b61088691610e5d565b60608281015191901c6080909101526108a56101e86101c88587610de5565b6108ae91610e0f565b606082015160a0015290505b92915050565b60608401515146146108f557606084015151604051631bdade0960e11b815260048101919091524660248201526044016102e1565b8284606001516020015114610931576060840151602001516040516327bcc1e560e21b81526004810191909152602481018490526044016102e1565b42846060015160600151111561095a57604051635e0e748b60e11b815260040160405180910390fd5b818460600151606001511015610983576040516372ed9c8160e01b815260040160405180910390fd5b801580159061099457508351518114155b156109c057835151604051635b41520760e11b81526102e1918391600401918252602082015260400190565b50505050565b60006109f48484846040516020016109e093929190610e90565b6040516020818303038152906040526109fc565b949350505050565b60408051600180825281830190925260009160208201818036833701905050600283604051610a2b9190610ea2565b602060405180830381855afa158015610a48573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610a6b9190610dab565b604051602001610a7c929190610ebe565b6040516020818303038152906040526108ba90610ee7565b6040805160c0810182526000608080830182815260a084018390528352835190810184528181526020808201839052818501839052606082019290925290820152908101610ae0610b1d565b81526040805160c08101825260008082526020828101829052928201819052606082018190526080820181905260a082015291015290565b905290565b604080516080808201835260008284018181526060808501839052908452845160c08101865292830182815260a084018390528352845180860186528281526020818101849052808501919091528551808701875283815280820184905284870152855180870190965282865285810192909252929390840192610b1892919082019083565b634e487b7160e01b600052604160045260246000fd5b60008060008060608587031215610bcf57600080fd5b843567ffffffffffffffff80821115610be757600080fd5b818701915087601f830112610bfb57600080fd5b813581811115610c0a57600080fd5b60208981838601011115610c1d57600080fd5b80840197508196508089013595506040890135935082841115610c3f57600080fd5b838901935089601f850112610c5357600080fd5b8335915082821115610c6757610c67610ba3565b604051601f8301601f19908116603f01168101908482118183101715610c8f57610c8f610ba3565b816040528381528b83858801011115610ca757600080fd5b8383870184830137600083858301015280965050505050505092959194509250565b600060208284031215610cdb57600080fd5b81518015158114610ceb57600080fd5b9392505050565b634e487b7160e01b600052603260045260246000fd5b60005b83811015610d23578181015183820152602001610d0b565b50506000910152565b60408152600083518060408401526020610d4d826060860160208901610d08565b601f19601f83011684019150606082016060858403016020860152808651808352608085019150602088019450600092505b80831015610d9f5784518252938301936001929092019190830190610d7f565b50979650505050505050565b600060208284031215610dbd57600080fd5b5051919050565b808201808211156108ba57634e487b7160e01b600052601160045260246000fd5b60008085851115610df557600080fd5b83861115610e0257600080fd5b5050820193919092039150565b803560208310156108ba57600019602084900360031b1b1692915050565b6001600160e01b03198135818116916004851015610e555780818660040360031b1b83161692505b505092915050565b6bffffffffffffffffffffffff198135818116916014851015610e555760149490940360031b84901b1690921692915050565b82848237909101908152602001919050565b60008251610eb4818460208701610d08565b9190910192915050565b60008351610ed0818460208801610d08565b60ff199390931691909201908152601f0192915050565b80516020808301519190811015610f08576000198160200360031b1b821691505b5091905056fea2646970667358221220c6a2fc4bc15c11bee01c524d7d48d46e6dc3301c9c8fdfeec1e6149eb9595fa164736f6c63430008170033608060405234801561001057600080fd5b50610157806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063ea50d0e414610030575b600080fd5b61004861003e36600461005c565b6001949350505050565b604051901515815260200160405180910390f35b6000806000806040858703121561007257600080fd5b843567ffffffffffffffff8082111561008a57600080fd5b818701915087601f83011261009e57600080fd5b8135818111156100ad57600080fd5b8860208285010111156100bf57600080fd5b6020928301965094509086013590808211156100da57600080fd5b818701915087601f8301126100ee57600080fd5b8135818111156100fd57600080fd5b8860208260051b850101111561011257600080fd5b9598949750506020019450505056fea264697066735822122070a22f5a8fc3c513cd1ded6697436e1e1330fc1bdab18d1b4a6487ff3fd5e3f364736f6c63430008170033610100604052600160005560018062000019919062000167565b6001553480156200002957600080fd5b5060405162001fb738038062001fb78339810160408190526200004c9162000183565b6001600160a01b03821660805260a08190526200006b816002620002bc565b60c0526040516000908290620000819062000143565b908152602001604051809103906000f080158015620000a4573d6000803e3d6000fd5b5060015460009081526002602090815260409182902080546001600160a01b0319166001600160a01b038516908117909155825163ebf0c71760e01b815292519394509263ebf0c7179260048082019392918290030181865afa15801562000110573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001369190620002d1565b60e05250620002eb915050565b6109e480620015d383390190565b634e487b7160e01b600052601160045260246000fd5b808201808211156200017d576200017d62000151565b92915050565b600080604083850312156200019757600080fd5b82516001600160a01b0381168114620001af57600080fd5b6020939093015192949293505050565b600181815b8085111562000200578160001904821115620001e457620001e462000151565b80851615620001f257918102915b93841c9390800290620001c4565b509250929050565b60008262000219575060016200017d565b8162000228575060006200017d565b81600181146200024157600281146200024c576200026c565b60019150506200017d565b60ff84111562000260576200026062000151565b50506001821b6200017d565b5060208310610133831016604e8410600b841016171562000291575081810a6200017d565b6200029d8383620001bf565b8060001904821115620002b457620002b462000151565b029392505050565b6000620002ca838362000208565b9392505050565b600060208284031215620002e457600080fd5b5051919050565b60805160a05160c05160e0516112a56200032e600039600061013d0152600050506000818161021d015261045d01526000818160a7015260f901526112a56000f3fe60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80631dedc6f714620000635780631f6d510b14620000805780638735181314620000975780639611c5c214620000a1578063abe839f814620000e2575b600080fd5b6200006d620000ec565b6040519081526020015b60405180910390f35b6200006d62000091366004620006fa565b620002bb565b6200006d60015481565b620000c97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200162000077565b6200006d60005481565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614620001385760405163e5336a6b60e01b815260040160405180910390fd5b6000547f00000000000000000000000000000000000000000000000000000000000000009060011015620001e5576000805481526002602090815260409182902054825163ebf0c71760e01b815292516001600160a01b039091169263ebf0c7179260048083019391928290030181865afa158015620001bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e291906200077b565b90505b6001546000546001620001f99190620007ab565b036200029c576001806000828254620002139190620007ab565b90915550506040517f0000000000000000000000000000000000000000000000000000000000000000906200024890620006ec565b908152602001604051809103906000f0801580156200026b573d6000803e3d6000fd5b50600154600090815260026020526040902080546001600160a01b0319166001600160a01b03929092169190911790555b6001600080828254620002b09190620007ab565b909155509092915050565b6000620002ea60017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001620007c1565b84511115620003175783516040516353bb503760e11b815260048101919091526024015b60405180910390fd5b6200034460017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001620007c1565b83111562000369576040516311d1480560e21b8152600481018490526024016200030e565b6200039660017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001620007c1565b821115620003bb57604051633b379f8b60e21b8152600481018390526024016200030e565b600154600090815260026020908152604091829020548251635d5e9ecd60e11b815292516001600160a01b0390911692839263babd3d9a926004808401938290030181865afa15801562000413573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004399190620007d7565b15620004d9576001806000828254620004539190620007ab565b90915550506040517f0000000000000000000000000000000000000000000000000000000000000000906200048890620006ec565b908152602001604051809103906000f080158015620004ab573d6000803e3d6000fd5b50600154600090815260026020526040902080546001600160a01b0319166001600160a01b03831617905590505b6040805160c08101825233608082019081524660a08301528152602081018790529081018590526060810184905260006200051482620005db565b604051635c8b80ab60e01b8152600481018290529091506000906001600160a01b03851690635c8b80ab906024016020604051808303816000875af115801562000562573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200058891906200077b565b90506001547f1f0faf82fa8c7b10dd392417c6976d0ed764deb80fb07211d5928c2944ddb80d8284604051620005c8929190918252602082015260400190565b60405180910390a2509695505050505050565b8051602080830151604080850151606080870151835187516001600160a01b03168188015296860151938701939093528351908601529190920151608084015260a083015260c0820152600090620006459060e0016040516020818303038152906040526200064b565b92915050565b604080516001808252818301909252600091602082018180368337019050506002836040516200067c919062000834565b602060405180830381855afa1580156200069a573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190620006bf91906200077b565b604051602001620006d292919062000842565b604051602081830303815290604052620006459062000863565b6109e4806200088c83390190565b600080600083850360808112156200071157600080fd5b60408112156200072057600080fd5b506040516040810181811067ffffffffffffffff821117156200075357634e487b7160e01b600052604160045260246000fd5b6040908152853582526020808701359083015290969085013595506060909401359392505050565b6000602082840312156200078e57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111562000645576200064562000795565b8181038181111562000645576200064562000795565b600060208284031215620007ea57600080fd5b81518015158114620007fb57600080fd5b9392505050565b6000815160005b8181101562000825576020818501810151868301520162000809565b50600093019283525090919050565b6000620007fb828462000802565b600062000850828562000802565b60ff199390931683525050601f01919050565b8051602080830151919081101562000885576000198160200360031b1b821691505b5091905056fe60c0604052600080553480156200001557600080fd5b50604051620009e4380380620009e48339810160408190526200003891620001d0565b60808190526200004a816002620002fd565b60a052600080805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5560015b60805181116200012157620000fd600260006200009b60018562000312565b81526020019081526020016000205460026000600185620000bd919062000312565b815260200190815260200160002054604051602001620000e7929190918252602082015260400190565b60408051601f1981840301815291905262000129565b60008281526002602052604090205580620001188162000328565b9150506200007c565b5050620003cd565b604080516001808252818301909252600091602082018180368337019050506002836040516200015a919062000376565b602060405180830381855afa15801562000178573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906200019d9190620001d0565b604051602001620001b092919062000384565b604051602081830303815290604052620001ca90620003a5565b92915050565b600060208284031215620001e357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000241578160001904821115620002255762000225620001ea565b808516156200023357918102915b93841c939080029062000205565b509250929050565b6000826200025a57506001620001ca565b816200026957506000620001ca565b81600181146200028257600281146200028d57620002ad565b6001915050620001ca565b60ff841115620002a157620002a1620001ea565b50506001821b620001ca565b5060208310610133831016604e8410600b8410161715620002d2575081810a620001ca565b620002de838362000200565b8060001904821115620002f557620002f5620001ea565b029392505050565b60006200030b838362000249565b9392505050565b81810381811115620001ca57620001ca620001ea565b6000600182016200033d576200033d620001ea565b5060010190565b6000815160005b818110156200036757602081850181015186830152016200034b565b50600093019283525090919050565b60006200030b828462000344565b600062000392828562000344565b60ff199390931683525050601f01919050565b80516020808301519190811015620003c7576000198160200360031b1b821691505b50919050565b60805160a0516105d0620004146000396000818160f701528181610128015261024201526000818160ad0152818161020f0152818161026b01526102cf01526105d06000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063babd3d9a1161005b578063babd3d9a146100ef578063bdffd28214610123578063e82955881461014a578063ebf0c7171461016a57600080fd5b80635c8b80ab1461008257806369ea80d5146100a85780636e0c3fee146100cf575b600080fd5b61009561009036600461049d565b610172565b6040519081526020015b60405180910390f35b6100957f000000000000000000000000000000000000000000000000000000000000000081565b6100956100dd36600461049d565b60016020526000908152604090205481565b6000546040517f0000000000000000000000000000000000000000000000000000000000000000909114815260200161009f565b6100957f000000000000000000000000000000000000000000000000000000000000000081565b61009561015836600461049d565b60026020526000908152604090205481565b610095610200565b6000805481610180826103d3565b90508360005b828110156101d357600081815260016020908152604091829020548251918201529081018390526101c9906060015b6040516020818303038152906040526103ff565b9150600101610186565b506000828152600160205260408120829055805490806101f2836104cc565b909155509295945050505050565b600080548082036102405750507f000000000000000000000000000000000000000000000000000000000000000060009081526002602052604090205490565b7f0000000000000000000000000000000000000000000000000000000000000000810361029c5750507f000000000000000000000000000000000000000000000000000000000000000060009081526001602052604090205490565b60006102a96001836104e5565b905060006102b6826103d3565b60008181526001602052604090205490915082821c825b7f00000000000000000000000000000000000000000000000000000000000000008110156103c857600180831614801561038a576000828152600160205260409020548490036103585760405162461bcd60e51b81526020600482015260126024820152714d697374616b65732077657265206d61646560701b604482015260640160405180910390fd5b60008281526001602090815260409182902054825191820152908101859052610383906060016101b5565b93506103bb565b6000828152600260209081526040918290205491516103b8926101b592889201918252602082015260400190565b93505b50600191821c91016102cd565b509095945050505050565b600080825b806001166001036103f857816103ed816104cc565b92505060011c6103d8565b5092915050565b6040805160018082528183019092526000916020820181803683370190505060028360405161042e9190610528565b602060405180830381855afa15801561044b573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061046e919061053b565b60405160200161047f929190610554565b60405160208183030381529060405261049790610573565b92915050565b6000602082840312156104af57600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b6000600182016104de576104de6104b6565b5060010190565b81810381811115610497576104976104b6565b6000815160005b8181101561051957602081850181015186830152016104ff565b50600093019283525090919050565b600061053482846104f8565b9392505050565b60006020828403121561054d57600080fd5b5051919050565b600061056082856104f8565b60ff199390931683525050601f01919050565b80516020808301519190811015610594576000198160200360031b1b821691505b5091905056fea26469706673582212209164b845aa0c4528472e745de1e3ed1ba52b093aef40dc06f13c88c44753198764736f6c63430008170033a264697066735822122036fed5f9816dc0793f87d1dfbfd34ae250ccd8fe7d0604c35185156f0de5ba8d64736f6c6343000817003360c0604052600080553480156200001557600080fd5b50604051620009e4380380620009e48339810160408190526200003891620001d0565b60808190526200004a816002620002fd565b60a052600080805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5560015b60805181116200012157620000fd600260006200009b60018562000312565b81526020019081526020016000205460026000600185620000bd919062000312565b815260200190815260200160002054604051602001620000e7929190918252602082015260400190565b60408051601f1981840301815291905262000129565b60008281526002602052604090205580620001188162000328565b9150506200007c565b5050620003cd565b604080516001808252818301909252600091602082018180368337019050506002836040516200015a919062000376565b602060405180830381855afa15801562000178573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906200019d9190620001d0565b604051602001620001b092919062000384565b604051602081830303815290604052620001ca90620003a5565b92915050565b600060208284031215620001e357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000241578160001904821115620002255762000225620001ea565b808516156200023357918102915b93841c939080029062000205565b509250929050565b6000826200025a57506001620001ca565b816200026957506000620001ca565b81600181146200028257600281146200028d57620002ad565b6001915050620001ca565b60ff841115620002a157620002a1620001ea565b50506001821b620001ca565b5060208310610133831016604e8410600b8410161715620002d2575081810a620001ca565b620002de838362000200565b8060001904821115620002f557620002f5620001ea565b029392505050565b60006200030b838362000249565b9392505050565b81810381811115620001ca57620001ca620001ea565b6000600182016200033d576200033d620001ea565b5060010190565b6000815160005b818110156200036757602081850181015186830152016200034b565b50600093019283525090919050565b60006200030b828462000344565b600062000392828562000344565b60ff199390931683525050601f01919050565b80516020808301519190811015620003c7576000198160200360031b1b821691505b50919050565b60805160a0516105d0620004146000396000818160f701528181610128015261024201526000818160ad0152818161020f0152818161026b01526102cf01526105d06000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063babd3d9a1161005b578063babd3d9a146100ef578063bdffd28214610123578063e82955881461014a578063ebf0c7171461016a57600080fd5b80635c8b80ab1461008257806369ea80d5146100a85780636e0c3fee146100cf575b600080fd5b61009561009036600461049d565b610172565b6040519081526020015b60405180910390f35b6100957f000000000000000000000000000000000000000000000000000000000000000081565b6100956100dd36600461049d565b60016020526000908152604090205481565b6000546040517f0000000000000000000000000000000000000000000000000000000000000000909114815260200161009f565b6100957f000000000000000000000000000000000000000000000000000000000000000081565b61009561015836600461049d565b60026020526000908152604090205481565b610095610200565b6000805481610180826103d3565b90508360005b828110156101d357600081815260016020908152604091829020548251918201529081018390526101c9906060015b6040516020818303038152906040526103ff565b9150600101610186565b506000828152600160205260408120829055805490806101f2836104cc565b909155509295945050505050565b600080548082036102405750507f000000000000000000000000000000000000000000000000000000000000000060009081526002602052604090205490565b7f0000000000000000000000000000000000000000000000000000000000000000810361029c5750507f000000000000000000000000000000000000000000000000000000000000000060009081526001602052604090205490565b60006102a96001836104e5565b905060006102b6826103d3565b60008181526001602052604090205490915082821c825b7f00000000000000000000000000000000000000000000000000000000000000008110156103c857600180831614801561038a576000828152600160205260409020548490036103585760405162461bcd60e51b81526020600482015260126024820152714d697374616b65732077657265206d61646560701b604482015260640160405180910390fd5b60008281526001602090815260409182902054825191820152908101859052610383906060016101b5565b93506103bb565b6000828152600260209081526040918290205491516103b8926101b592889201918252602082015260400190565b93505b50600191821c91016102cd565b509095945050505050565b600080825b806001166001036103f857816103ed816104cc565b92505060011c6103d8565b5092915050565b6040805160018082528183019092526000916020820181803683370190505060028360405161042e9190610528565b602060405180830381855afa15801561044b573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061046e919061053b565b60405160200161047f929190610554565b60405160208183030381529060405261049790610573565b92915050565b6000602082840312156104af57600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b6000600182016104de576104de6104b6565b5060010190565b81810381811115610497576104976104b6565b6000815160005b8181101561051957602081850181015186830152016104ff565b50600093019283525090919050565b600061053482846104f8565b9392505050565b60006020828403121561054d57600080fd5b5051919050565b600061056082856104f8565b60ff199390931683525050601f01919050565b80516020808301519190811015610594576000198160200360031b1b821691505b5091905056fea26469706673582212209164b845aa0c4528472e745de1e3ed1ba52b093aef40dc06f13c88c44753198764736f6c6343000817003360a060405234801561001057600080fd5b5060405161096b38038061096b83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516108da6100916000396000818160ce015261014f01526108da6000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633d96c2c91461005c5780637fb349671461007157806384f15db2146100845780638770d707146100c9578063c2b40ae414610108575b600080fd5b61006f61006a3660046105be565b610144565b005b61006f61007f3660046105ea565b610232565b6100b461009236600461068a565b6000918252602082815260408084209284526002909201905290205460ff1690565b60405190151581526020015b60405180910390f35b6100f07f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100c0565b61012f6101163660046106ac565b6000602081905290815260409020805460019091015482565b604080519283526020830191909152016100c0565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461018d5760405163164a486160e11b815260040160405180910390fd5b600083815260208190526040902054156101c257604051631f667e9f60e11b8152600481018490526024015b60405180910390fd5b816101e0576040516339e16d6560e11b815260040160405180910390fd5b600083815260208181526040918290208481556001018390559051828152839185917fd3fab397eb3e47fb43090430543ca9623e09aeddf27bfde1bf7bdca871ee9ebc910160405180910390a3505050565b61024260608601604087016106e1565b6001600160a01b0316336001600160a01b0316146102955761026a60608601604087016106e1565b6040516357aad58160e01b81526001600160a01b0390911660048201523360248201526044016101b9565b466060860135146102b9576040516315dfb1f160e21b815260040160405180910390fd5b6000848152602081905260408120805490918190036102ee57604051635228479160e11b8152600481018790526024016101b9565b600085815260028301602052604090205460ff161561032a57604051633f5c70b560e21b815260048101879052602481018690526044016101b9565b600182015483811461035957604051631206f36760e21b815260048101829052602481018590526044016101b9565b600061037261036d368b90038b018b61073a565b6103e7565b90506103818686838a8761044a565b600087815260028501602052604090819020805460ff1916600117905551819084908a907f34bc3301c4660a5642d2246e175e7fea498c94258d39dcaa555a52464dbb083d906103d4908c815260200190565b60405180910390a4505050505050505050565b80516020808301516040808501518151855181860152948401519185019190915281516001600160a01b03166060850152910151608083015260a08201526000906104449060c0015b604051602081830303815290604052610526565b92915050565b828260005b868110156104e4576001808316148061049e57610499848a8a85818110610478576104786107f3565b90506020020135604051602001610430929190918252602082015260400190565b6104d5565b6104d58989848181106104b3576104b36107f3565b9050602002013585604051602001610430929190918252602082015260400190565b935050600191821c910161044f565b5082821461051d57604051635f216bf160e01b8152600481018490526024810183905260448101869052606481018590526084016101b9565b50505050505050565b604080516001808252818301909252600091602082018180368337019050506002836040516105559190610839565b602060405180830381855afa158015610572573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906105959190610845565b6040516020016105a692919061085e565b6040516020818303038152906040526104449061087d565b6000806000606084860312156105d357600080fd5b505081359360208301359350604090920135919050565b600080600080600085870361010081121561060457600080fd5b60a081121561061257600080fd5b5085945060a0860135935060c0860135925060e086013567ffffffffffffffff8082111561063f57600080fd5b818801915088601f83011261065357600080fd5b81358181111561066257600080fd5b8960208260051b850101111561067757600080fd5b9699959850939650602001949392505050565b6000806040838503121561069d57600080fd5b50508035926020909101359150565b6000602082840312156106be57600080fd5b5035919050565b80356001600160a01b03811681146106dc57600080fd5b919050565b6000602082840312156106f357600080fd5b6106fc826106c5565b9392505050565b6040805190810167ffffffffffffffff8111828210171561073457634e487b7160e01b600052604160045260246000fd5b60405290565b600081830360a081121561074d57600080fd5b604080516060810181811067ffffffffffffffff8211171561077f57634e487b7160e01b600052604160045260246000fd5b82528183121561078e57600080fd5b610796610703565b85358152602080870135908201528152603f1983018213156107b757600080fd5b6107bf610703565b92506107cc8286016106c5565b83526060850135602084015282602082015260808501358282015280935050505092915050565b634e487b7160e01b600052603260045260246000fd5b6000815160005b8181101561082a5760208185018101518683015201610810565b50600093019283525090919050565b60006106fc8284610809565b60006020828403121561085757600080fd5b5051919050565b600061086a8285610809565b60ff199390931683525050601f01919050565b8051602080830151919081101561089e576000198160200360031b1b821691505b5091905056fea2646970667358221220d4d438090c643465eb89a9b8fb3dff5976490ffde142ebfdd9955a484e29aecb64736f6c63430008170033";