forked from balancer/balancer-deployments
-
Notifications
You must be signed in to change notification settings - Fork 0
/
FeeDistributor.json
493 lines (493 loc) · 50.1 KB
/
FeeDistributor.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
{
"_format": "hh-sol-artifact-1",
"contractName": "FeeDistributor",
"sourceName": "contracts/fee-distribution/FeeDistributor.sol",
"abi": [
{
"inputs": [
{
"internalType": "contract IVotingEscrow",
"name": "votingEscrow",
"type": "address"
},
{
"internalType": "uint256",
"name": "startTime",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "enabled",
"type": "bool"
}
],
"name": "OnlyCallerOptIn",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "contract IERC20",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "lastCheckpointTimestamp",
"type": "uint256"
}
],
"name": "TokenCheckpointed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "contract IERC20",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "userTokenTimeCursor",
"type": "uint256"
}
],
"name": "TokensClaimed",
"type": "event"
},
{
"inputs": [],
"name": "checkpoint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IERC20",
"name": "token",
"type": "address"
}
],
"name": "checkpointToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IERC20[]",
"name": "tokens",
"type": "address[]"
}
],
"name": "checkpointTokens",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "checkpointUser",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "contract IERC20",
"name": "token",
"type": "address"
}
],
"name": "claimToken",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "contract IERC20[]",
"name": "tokens",
"type": "address[]"
}
],
"name": "claimTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IERC20",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "depositToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IERC20[]",
"name": "tokens",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"name": "depositTokens",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getDomainSeparator",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "getNextNonce",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTimeCursor",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IERC20",
"name": "token",
"type": "address"
}
],
"name": "getTokenLastBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IERC20",
"name": "token",
"type": "address"
}
],
"name": "getTokenTimeCursor",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IERC20",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
}
],
"name": "getTokensDistributedInWeek",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
}
],
"name": "getTotalSupplyAtTimestamp",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
}
],
"name": "getUserBalanceAtTimestamp",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getUserTimeCursor",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "contract IERC20",
"name": "token",
"type": "address"
}
],
"name": "getUserTokenTimeCursor",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getVotingEscrow",
"outputs": [
{
"internalType": "contract IVotingEscrow",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "isOnlyCallerEnabled",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "enabled",
"type": "bool"
}
],
"name": "setOnlyCallerCheck",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "bool",
"name": "enabled",
"type": "bool"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
}
],
"name": "setOnlyCallerCheckWithSignature",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x6101206040523480156200001257600080fd5b5060405162002977380380620029778339810160408190526200003591620001d0565b604080518082018252600e81526d2332b2a234b9ba3934b13aba37b960911b602080830191825283518085019094526001808552603160f81b9185019182529251909120608052915190912060a0527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60c0526002556001600160601b0319606083901b1660e052620000c881620001c4565b90506000620000d742620001c4565b905080821015620001055760405162461bcd60e51b8152600401620000fc9062000223565b60405180910390fd5b80821415620001b35760405163bd85b03960e01b81526000906001600160a01b0385169063bd85b039906200013f908590600401620002a0565b60206040518083038186803b1580156200015857600080fd5b505afa1580156200016d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019391906200020a565b11620001b35760405162461bcd60e51b8152600401620000fc9062000258565b5061010081905260035550620002a9565b62093a80908190040290565b60008060408385031215620001e3578182fd5b82516001600160a01b0381168114620001fa578283fd5b6020939093015192949293505050565b6000602082840312156200021c578081fd5b5051919050565b6020808252818101527f43616e6e6f74207374617274206265666f72652063757272656e74207765656b604082015260600190565b60208082526028908201527f5a65726f20746f74616c20737570706c7920726573756c747320696e206c6f736040820152677420746f6b656e7360c01b606082015260800190565b90815260200190565b60805160a05160c05160e05160601c6101005161265e62000319600039806109ab5280610b0a5280610b6f5280610eec52508061033e52806108cd5280610a7a5280610c825280611453528061152752806119bc5250806118805250806118c25250806118a1525061265e6000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c806390193b7c116100d8578063ca31879d1161008c578063e811f44b11610066578063e811f44b1461030e578063ed24911d14610321578063fcaa54ee1461032957610182565b8063ca31879d146102d5578063d3dc4ca1146102e8578063de681faf146102fb57610182565b8063a1648aa5116100bd578063a1648aa51461029a578063acbc1428146102ba578063c2c4c5c1146102cd57610182565b806390193b7c14610274578063905d10ac1461028757610182565b80634f3c50901161013a57806382aa5ad41161011457806382aa5ad414610239578063876e69a114610241578063887204671461025457610182565b80634f3c5090146102005780637b8d6221146102135780638050a7ee1461022657610182565b80632308805b1161016b5780632308805b146101ba578063338b5dea146101da5780633902b9bc146101ed57610182565b806308b0308a1461018757806314866e08146101a5575b600080fd5b61018f61033c565b60405161019c91906122df565b60405180910390f35b6101b86101b3366004611f44565b610360565b005b6101cd6101c8366004611f44565b61037c565b60405161019c91906123f8565b6101b86101e83660046120ba565b6103ca565b6101b86101fb366004611f44565b610416565b6101cd61020e36600461225d565b610429565b6101b8610221366004612125565b61043b565b6101cd610234366004612082565b61051e565b6101cd610533565b6101cd61024f366004611f44565b610539565b610267610262366004611f60565b610577565b60405161019c91906123b5565b6101cd610282366004611f44565b61065a565b6101b86102953660046120e5565b610682565b6102ad6102a8366004611f44565b6106b7565b60405161019c91906123ed565b6101cd6102c8366004611f44565b6106e2565b6101b8610720565b6101cd6102e3366004612082565b61073a565b6101cd6102f63660046120ba565b610782565b6101cd6103093660046120ba565b6107b7565b6101b861031c36600461218e565b6107ec565b6101cd6107f6565b6101b8610337366004611fb3565b610805565b7f000000000000000000000000000000000000000000000000000000000000000090565b610368610876565b6103718161088d565b610379610e5d565b50565b73ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1690565b6103d2610876565b6103dd826000610e64565b6103ff73ffffffffffffffffffffffffffffffffffffffff831633308461128e565b61040a826001610e64565b610412610e5d565b5050565b61041e610876565b610371816001610e64565b60009081526004602052604090205490565b610443610876565b61044d8382611331565b8260005b8181101561050e5761048486868381811061046857fe5b905060200201602081019061047d9190611f44565b6000610e64565b6104db333086868581811061049557fe5b905060200201358989868181106104a857fe5b90506020020160208101906104bd9190611f44565b73ffffffffffffffffffffffffffffffffffffffff1692919061128e565b6105068686838181106104ea57fe5b90506020020160208101906104ff9190611f44565b6001610e64565b600101610451565b5050610518610e5d565b50505050565b600061052a838361133e565b90505b92915050565b60035490565b73ffffffffffffffffffffffffffffffffffffffff1660009081526007602052604090205468010000000000000000900467ffffffffffffffff1690565b6060610581610876565b8361058b816113d6565b610593611428565b61059c8561088d565b8260608167ffffffffffffffff811180156105b657600080fd5b506040519080825280602002602001820160405280156105e0578160200160208202803683370190505b50905060005b82811015610646576105fd87878381811061046857fe5b6106278888888481811061060d57fe5b90506020020160208101906106229190611f44565b6115d2565b82828151811061063357fe5b60209081029190910101526001016105e6565b5092505050610653610e5d565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b61068a610876565b8060005b818110156106ad576106a58484838181106104ea57fe5b60010161068e565b5050610412610e5d565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205468010000000000000000900467ffffffffffffffff1690565b610728610876565b610730611428565b610738610e5d565b565b6000610744610876565b8261074e816113d6565b610756611428565b61075f8461088d565b61076a836000610e64565b600061077685856115d2565b9250505061052d610e5d565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152600660209081526040808320938352929052205490565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152600860209081526040808320938352929052205490565b61037933826117ef565b600061080061187c565b905090565b60007fbd291ffccec065968fe20c5f8debdad73ab50837733f357eeae8814178015a9084846108338761065a565b6040516020016108469493929190612401565b60405160208183030381529060405280519060200120905061086c8482846101f8611919565b61051884846117ef565b610887600280541415610190611946565b60028055565b6040517f010ae75700000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063010ae757906109029085906004016122df565b60206040518083038186803b15801561091a57600080fd5b505afa15801561092e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109529190612275565b90508061095f5750610379565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600760205260408120805490916801000000000000000090910467ffffffffffffffff1690816109d9576109d2857f0000000000000000000000000000000000000000000000000000000000000000600087611954565b9050610a2c565b4282106109e95750505050610379565b50815470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660148185031115610a2c57610a2985838387611954565b90505b80610a35575060015b610a3d611ebb565b6040517f28d09d4700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906328d09d4790610ab1908990869060040161238f565b60806040518083038186803b158015610ac957600080fd5b505afa158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190612206565b905082610bd5577f00000000000000000000000000000000000000000000000000000000000000004211610b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6190612548565b60405180910390fd5b610ba07f0000000000000000000000000000000000000000000000000000000000000000610b9b8360400151611a75565b611a85565b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff821617855592505b610bdd611ebb565b60005b6032811015610dc25782604001518510158015610bfd5750868411155b15610d115760018401935082915086841115610c455760405180608001604052806000600f0b81526020016000600f0b81526020016000815260200160008152509250610d0c565b6040517f28d09d4700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906328d09d4790610cb9908b90889060040161238f565b60806040518083038186803b158015610cd157600080fd5b505afa158015610ce5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d099190612206565b92505b610dba565b428510610d1d57610dc2565b6000826040015186039050600081846020015102600f0b8460000151600f0b13610d48576000610d59565b81846020015102846000015103600f0b5b905080158015610d6857508886115b15610d7f57610d7642611a75565b96505050610dc2565b73ffffffffffffffffffffffffffffffffffffffff8a1660009081526008602090815260408083208a84529091529020555062093a80909401935b600101610be0565b505083546fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9290920167ffffffffffffffff90811670010000000000000000000000000000000002929092177fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff1668010000000000000000939092169290920217909155505050565b6001600255565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600560205260408120805490916801000000000000000090910467ffffffffffffffff169081610f4857429150610eb642611a9c565b83547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff919091161783557f00000000000000000000000000000000000000000000000000000000000000004211610f43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6190612548565b610f9a565b814203905083610f9a576000610f5d83611a9c565b610f6642611a9c565b14905060006201518042610f7942611a75565b03109050818015610f88575080155b15610f97575050505050610412565b50505b82547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff16680100000000000000004267ffffffffffffffff16021783556040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8716906370a082319061102c9030906004016122df565b60206040518083038186803b15801561104457600080fd5b505afa158015611058573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107c9190612275565b84549091506000906110b590839070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16611aa8565b9050806110c6575050505050610412565b6fffffffffffffffffffffffffffffffff821115611110576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6190612511565b84546fffffffffffffffffffffffffffffffff808416700100000000000000000000000000000000029116178555600061114985611a9c565b73ffffffffffffffffffffffffffffffffffffffff8916600090815260066020526040812091925090815b6014811015611246578362093a80019250824210156111e4578615801561119a57508742145b156111b85760008481526020839052604090208054860190556111df565b868842038602816111c557fe5b600086815260208590526040902080549290910490910190555b611246565b861580156111f157508783145b1561120f576000848152602083905260409020805486019055611236565b8688840386028161121c57fe5b600086815260208590526040902080549290910490910190555b9196508692508291600101611174565b507f9b7f1a85a4c9b4e59e1b6527d9969c50cdfb3a1a467d0c4a51fb0ed8bf07f1308a858960405161127a939291906124e3565b60405180910390a150505050505050505050565b610518846323b872dd60e01b8585856040516024016112af93929190612300565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611ab6565b6104128183146067611946565b73ffffffffffffffffffffffffffffffffffffffff8083166000908152600960209081526040808320938516835292905290812054801561138057905061052d565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260076020908152604080832054938716835260059091529020546113ce9167ffffffffffffffff9081169116611a85565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff1615610379576103793373ffffffffffffffffffffffffffffffffffffffff831614610191611946565b600354600061143642611a9c565b90508082118061144557504281145b15611451575050610738565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c2c4c5c16040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156114b957600080fd5b505af11580156114cd573d6000803e3d6000fd5b5050505060005b60148110156115cb57818311156114ea576115cb565b6040517fbd85b03900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063bd85b0399061155c9086906004016123f8565b60206040518083038186803b15801561157457600080fd5b505afa158015611588573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ac9190612275565b60008481526004602052604090205562093a80909201916001016114d4565b5050600355565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260056020526040812081611602858561133e565b60035473ffffffffffffffffffffffffffffffffffffffff8716600090815260076020526040812054929350916116829161165c91611657919068010000000000000000900467ffffffffffffffff16611b63565b611a75565b845461167d9068010000000000000000900467ffffffffffffffff16611a9c565b611b63565b73ffffffffffffffffffffffffffffffffffffffff8087166000908152600660209081526040808320938b16835260089091528120929350909190805b6014811015611713578486106116d457611713565b600086815260046020908152604080832054868352818420549288905292205402816116fc57fe5b62093a8097909701960491909101906001016116bf565b5073ffffffffffffffffffffffffffffffffffffffff808a166000908152600960209081526040808320938c1683529290522085905580156117e35785546fffffffffffffffffffffffffffffffff700100000000000000000000000000000000808304821684900382160291161786556117a573ffffffffffffffffffffffffffffffffffffffff89168a83611b72565b7fff097c7d8b1957a4ff09ef1361b5fb54dcede3941ba836d0beb9d10bec725de6898983886040516117da9493929190612359565b60405180910390a15b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016831515179055517fac9874a7a931a3f5c9f202c6d9cf40de5d21506993c9f9c38ca8265add89584c906118709084908490612331565b60405180910390a15050565b60007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006118e9611b96565b306040516020016118fe959493929190612434565b60405160208183030381529060405280519060200120905090565b6105188484847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85611b9a565b816104125761041281611bfe565b60008282825b6080811015611a695781831061196f57611a69565b600282840181010461197f611ebb565b6040517f28d09d4700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906328d09d47906119f3908d90869060040161238f565b60806040518083038186803b158015611a0b57600080fd5b505afa158015611a1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a439190612206565b905088816040015111611a5857819450611a5f565b6001820393505b505060010161195a565b50909695505050505050565b600061052d62093a7f8301611a9c565b600081831015611a95578161052a565b5090919050565b62093a80908190040290565b600061052a83836001611c6b565b600060608373ffffffffffffffffffffffffffffffffffffffff1683604051611adf919061228d565b6000604051808303816000865af19150503d8060008114611b1c576040519150601f19603f3d011682016040523d82523d6000602084013e611b21565b606091505b50915091506000821415611b39573d6000803e3d6000fd5b610518815160001480611b5b575081806020019051810190611b5b91906121aa565b6101a2611946565b6000818310611a95578161052a565b611b918363a9059cbb60e01b84846040516024016112af92919061238f565b505050565b4690565b6000611ba585611c81565b9050611bbb611bb5878387611cba565b83611946565b611bca428410156101b8611946565b50505073ffffffffffffffffffffffffffffffffffffffff9092166000908152602081905260409020805460010190555050565b7f08c379a0000000000000000000000000000000000000000000000000000000006000908152602060045260076024526642414c23000030600a808404818106603090810160081b95839006959095019082900491820690940160101b939093010160c81b604452606490fd5b6000611c7a8484111583611946565b5050900390565b6000611c8b61187c565b82604051602001611c9d9291906122a9565b604051602081830303815290604052805190602001209050919050565b6000611cdb8473ffffffffffffffffffffffffffffffffffffffff16611dc2565b15611db0576040517f1626ba7e000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff861690631626ba7e90611d36908790879060040161246d565b60206040518083038186803b158015611d4e57600080fd5b505afa158015611d62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8691906121c6565b7fffffffff0000000000000000000000000000000000000000000000000000000016149050610653565b611dbb848484611dc8565b9050610653565b3b151590565b6000611dda82516041146101b9611946565b60208281015160408085015160608601518251600080825295019283905292939092811a91600190611e139089908590889088906124c5565b6020604051602081039080840390855afa158015611e35573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906117e357508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161498975050505050505050565b60405180608001604052806000600f0b81526020016000600f0b815260200160008152602001600081525090565b60008083601f840112611efa578182fd5b50813567ffffffffffffffff811115611f11578182fd5b6020830191508360208083028501011115611f2b57600080fd5b9250929050565b8051600f81900b811461052d57600080fd5b600060208284031215611f55578081fd5b8135610653816125f8565b600080600060408486031215611f74578182fd5b8335611f7f816125f8565b9250602084013567ffffffffffffffff811115611f9a578283fd5b611fa686828701611ee9565b9497909650939450505050565b600080600060608486031215611fc7578283fd5b8335611fd2816125f8565b9250602084810135611fe38161261a565b9250604085013567ffffffffffffffff80821115611fff578384fd5b818701915087601f830112612012578384fd5b813581811115612020578485fd5b612050847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016125a5565b91508082528884828501011115612065578485fd5b808484018584013784848284010152508093505050509250925092565b60008060408385031215612094578182fd5b823561209f816125f8565b915060208301356120af816125f8565b809150509250929050565b600080604083850312156120cc578182fd5b82356120d7816125f8565b946020939093013593505050565b600080602083850312156120f7578182fd5b823567ffffffffffffffff81111561210d578283fd5b61211985828601611ee9565b90969095509350505050565b6000806000806040858703121561213a578081fd5b843567ffffffffffffffff80821115612151578283fd5b61215d88838901611ee9565b90965094506020870135915080821115612175578283fd5b5061218287828801611ee9565b95989497509550505050565b60006020828403121561219f578081fd5b81356106538161261a565b6000602082840312156121bb578081fd5b81516106538161261a565b6000602082840312156121d7578081fd5b81517fffffffff0000000000000000000000000000000000000000000000000000000081168114610653578182fd5b600060808284031215612217578081fd5b61222160806125a5565b61222b8484611f32565b815261223a8460208501611f32565b602082015260408301516040820152606083015160608201528091505092915050565b60006020828403121561226e578081fd5b5035919050565b600060208284031215612286578081fd5b5051919050565b6000825161229f8184602087016125cc565b9190910192915050565b7f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff9290921682521515602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260800190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015611a69578351835292840192918401916001016123d1565b901515815260200190565b90815260200190565b93845273ffffffffffffffffffffffffffffffffffffffff92909216602084015215156040830152606082015260800190565b94855260208501939093526040840191909152606083015273ffffffffffffffffffffffffffffffffffffffff16608082015260a00190565b60008382526040602083015282518060408401526124928160608501602087016125cc565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b93845260ff9290921660208401526040830152606082015260800190565b73ffffffffffffffffffffffffffffffffffffffff9390931683526020830191909152604082015260600190565b6020808252601e908201527f4d6178696d756d20746f6b656e2062616c616e63652065786365656465640000604082015260600190565b60208082526024908201527f46656520646973747269627574696f6e20686173206e6f74207374617274656460408201527f2079657400000000000000000000000000000000000000000000000000000000606082015260800190565b60405181810167ffffffffffffffff811182821017156125c457600080fd5b604052919050565b60005b838110156125e75781810151838201526020016125cf565b838111156105185750506000910152565b73ffffffffffffffffffffffffffffffffffffffff8116811461037957600080fd5b801515811461037957600080fdfea26469706673582212206e91ba3bf7fae396c65faebeef9a2ad330d9087256688eb7df956fb362f6a77264736f6c63430007010033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101825760003560e01c806390193b7c116100d8578063ca31879d1161008c578063e811f44b11610066578063e811f44b1461030e578063ed24911d14610321578063fcaa54ee1461032957610182565b8063ca31879d146102d5578063d3dc4ca1146102e8578063de681faf146102fb57610182565b8063a1648aa5116100bd578063a1648aa51461029a578063acbc1428146102ba578063c2c4c5c1146102cd57610182565b806390193b7c14610274578063905d10ac1461028757610182565b80634f3c50901161013a57806382aa5ad41161011457806382aa5ad414610239578063876e69a114610241578063887204671461025457610182565b80634f3c5090146102005780637b8d6221146102135780638050a7ee1461022657610182565b80632308805b1161016b5780632308805b146101ba578063338b5dea146101da5780633902b9bc146101ed57610182565b806308b0308a1461018757806314866e08146101a5575b600080fd5b61018f61033c565b60405161019c91906122df565b60405180910390f35b6101b86101b3366004611f44565b610360565b005b6101cd6101c8366004611f44565b61037c565b60405161019c91906123f8565b6101b86101e83660046120ba565b6103ca565b6101b86101fb366004611f44565b610416565b6101cd61020e36600461225d565b610429565b6101b8610221366004612125565b61043b565b6101cd610234366004612082565b61051e565b6101cd610533565b6101cd61024f366004611f44565b610539565b610267610262366004611f60565b610577565b60405161019c91906123b5565b6101cd610282366004611f44565b61065a565b6101b86102953660046120e5565b610682565b6102ad6102a8366004611f44565b6106b7565b60405161019c91906123ed565b6101cd6102c8366004611f44565b6106e2565b6101b8610720565b6101cd6102e3366004612082565b61073a565b6101cd6102f63660046120ba565b610782565b6101cd6103093660046120ba565b6107b7565b6101b861031c36600461218e565b6107ec565b6101cd6107f6565b6101b8610337366004611fb3565b610805565b7f000000000000000000000000000000000000000000000000000000000000000090565b610368610876565b6103718161088d565b610379610e5d565b50565b73ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1690565b6103d2610876565b6103dd826000610e64565b6103ff73ffffffffffffffffffffffffffffffffffffffff831633308461128e565b61040a826001610e64565b610412610e5d565b5050565b61041e610876565b610371816001610e64565b60009081526004602052604090205490565b610443610876565b61044d8382611331565b8260005b8181101561050e5761048486868381811061046857fe5b905060200201602081019061047d9190611f44565b6000610e64565b6104db333086868581811061049557fe5b905060200201358989868181106104a857fe5b90506020020160208101906104bd9190611f44565b73ffffffffffffffffffffffffffffffffffffffff1692919061128e565b6105068686838181106104ea57fe5b90506020020160208101906104ff9190611f44565b6001610e64565b600101610451565b5050610518610e5d565b50505050565b600061052a838361133e565b90505b92915050565b60035490565b73ffffffffffffffffffffffffffffffffffffffff1660009081526007602052604090205468010000000000000000900467ffffffffffffffff1690565b6060610581610876565b8361058b816113d6565b610593611428565b61059c8561088d565b8260608167ffffffffffffffff811180156105b657600080fd5b506040519080825280602002602001820160405280156105e0578160200160208202803683370190505b50905060005b82811015610646576105fd87878381811061046857fe5b6106278888888481811061060d57fe5b90506020020160208101906106229190611f44565b6115d2565b82828151811061063357fe5b60209081029190910101526001016105e6565b5092505050610653610e5d565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b61068a610876565b8060005b818110156106ad576106a58484838181106104ea57fe5b60010161068e565b5050610412610e5d565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205468010000000000000000900467ffffffffffffffff1690565b610728610876565b610730611428565b610738610e5d565b565b6000610744610876565b8261074e816113d6565b610756611428565b61075f8461088d565b61076a836000610e64565b600061077685856115d2565b9250505061052d610e5d565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152600660209081526040808320938352929052205490565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152600860209081526040808320938352929052205490565b61037933826117ef565b600061080061187c565b905090565b60007fbd291ffccec065968fe20c5f8debdad73ab50837733f357eeae8814178015a9084846108338761065a565b6040516020016108469493929190612401565b60405160208183030381529060405280519060200120905061086c8482846101f8611919565b61051884846117ef565b610887600280541415610190611946565b60028055565b6040517f010ae75700000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063010ae757906109029085906004016122df565b60206040518083038186803b15801561091a57600080fd5b505afa15801561092e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109529190612275565b90508061095f5750610379565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600760205260408120805490916801000000000000000090910467ffffffffffffffff1690816109d9576109d2857f0000000000000000000000000000000000000000000000000000000000000000600087611954565b9050610a2c565b4282106109e95750505050610379565b50815470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660148185031115610a2c57610a2985838387611954565b90505b80610a35575060015b610a3d611ebb565b6040517f28d09d4700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906328d09d4790610ab1908990869060040161238f565b60806040518083038186803b158015610ac957600080fd5b505afa158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190612206565b905082610bd5577f00000000000000000000000000000000000000000000000000000000000000004211610b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6190612548565b60405180910390fd5b610ba07f0000000000000000000000000000000000000000000000000000000000000000610b9b8360400151611a75565b611a85565b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff821617855592505b610bdd611ebb565b60005b6032811015610dc25782604001518510158015610bfd5750868411155b15610d115760018401935082915086841115610c455760405180608001604052806000600f0b81526020016000600f0b81526020016000815260200160008152509250610d0c565b6040517f28d09d4700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906328d09d4790610cb9908b90889060040161238f565b60806040518083038186803b158015610cd157600080fd5b505afa158015610ce5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d099190612206565b92505b610dba565b428510610d1d57610dc2565b6000826040015186039050600081846020015102600f0b8460000151600f0b13610d48576000610d59565b81846020015102846000015103600f0b5b905080158015610d6857508886115b15610d7f57610d7642611a75565b96505050610dc2565b73ffffffffffffffffffffffffffffffffffffffff8a1660009081526008602090815260408083208a84529091529020555062093a80909401935b600101610be0565b505083546fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9290920167ffffffffffffffff90811670010000000000000000000000000000000002929092177fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff1668010000000000000000939092169290920217909155505050565b6001600255565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600560205260408120805490916801000000000000000090910467ffffffffffffffff169081610f4857429150610eb642611a9c565b83547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff919091161783557f00000000000000000000000000000000000000000000000000000000000000004211610f43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6190612548565b610f9a565b814203905083610f9a576000610f5d83611a9c565b610f6642611a9c565b14905060006201518042610f7942611a75565b03109050818015610f88575080155b15610f97575050505050610412565b50505b82547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff16680100000000000000004267ffffffffffffffff16021783556040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8716906370a082319061102c9030906004016122df565b60206040518083038186803b15801561104457600080fd5b505afa158015611058573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107c9190612275565b84549091506000906110b590839070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16611aa8565b9050806110c6575050505050610412565b6fffffffffffffffffffffffffffffffff821115611110576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6190612511565b84546fffffffffffffffffffffffffffffffff808416700100000000000000000000000000000000029116178555600061114985611a9c565b73ffffffffffffffffffffffffffffffffffffffff8916600090815260066020526040812091925090815b6014811015611246578362093a80019250824210156111e4578615801561119a57508742145b156111b85760008481526020839052604090208054860190556111df565b868842038602816111c557fe5b600086815260208590526040902080549290910490910190555b611246565b861580156111f157508783145b1561120f576000848152602083905260409020805486019055611236565b8688840386028161121c57fe5b600086815260208590526040902080549290910490910190555b9196508692508291600101611174565b507f9b7f1a85a4c9b4e59e1b6527d9969c50cdfb3a1a467d0c4a51fb0ed8bf07f1308a858960405161127a939291906124e3565b60405180910390a150505050505050505050565b610518846323b872dd60e01b8585856040516024016112af93929190612300565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611ab6565b6104128183146067611946565b73ffffffffffffffffffffffffffffffffffffffff8083166000908152600960209081526040808320938516835292905290812054801561138057905061052d565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260076020908152604080832054938716835260059091529020546113ce9167ffffffffffffffff9081169116611a85565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff1615610379576103793373ffffffffffffffffffffffffffffffffffffffff831614610191611946565b600354600061143642611a9c565b90508082118061144557504281145b15611451575050610738565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c2c4c5c16040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156114b957600080fd5b505af11580156114cd573d6000803e3d6000fd5b5050505060005b60148110156115cb57818311156114ea576115cb565b6040517fbd85b03900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063bd85b0399061155c9086906004016123f8565b60206040518083038186803b15801561157457600080fd5b505afa158015611588573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ac9190612275565b60008481526004602052604090205562093a80909201916001016114d4565b5050600355565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260056020526040812081611602858561133e565b60035473ffffffffffffffffffffffffffffffffffffffff8716600090815260076020526040812054929350916116829161165c91611657919068010000000000000000900467ffffffffffffffff16611b63565b611a75565b845461167d9068010000000000000000900467ffffffffffffffff16611a9c565b611b63565b73ffffffffffffffffffffffffffffffffffffffff8087166000908152600660209081526040808320938b16835260089091528120929350909190805b6014811015611713578486106116d457611713565b600086815260046020908152604080832054868352818420549288905292205402816116fc57fe5b62093a8097909701960491909101906001016116bf565b5073ffffffffffffffffffffffffffffffffffffffff808a166000908152600960209081526040808320938c1683529290522085905580156117e35785546fffffffffffffffffffffffffffffffff700100000000000000000000000000000000808304821684900382160291161786556117a573ffffffffffffffffffffffffffffffffffffffff89168a83611b72565b7fff097c7d8b1957a4ff09ef1361b5fb54dcede3941ba836d0beb9d10bec725de6898983886040516117da9493929190612359565b60405180910390a15b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016831515179055517fac9874a7a931a3f5c9f202c6d9cf40de5d21506993c9f9c38ca8265add89584c906118709084908490612331565b60405180910390a15050565b60007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006118e9611b96565b306040516020016118fe959493929190612434565b60405160208183030381529060405280519060200120905090565b6105188484847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85611b9a565b816104125761041281611bfe565b60008282825b6080811015611a695781831061196f57611a69565b600282840181010461197f611ebb565b6040517f28d09d4700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906328d09d47906119f3908d90869060040161238f565b60806040518083038186803b158015611a0b57600080fd5b505afa158015611a1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a439190612206565b905088816040015111611a5857819450611a5f565b6001820393505b505060010161195a565b50909695505050505050565b600061052d62093a7f8301611a9c565b600081831015611a95578161052a565b5090919050565b62093a80908190040290565b600061052a83836001611c6b565b600060608373ffffffffffffffffffffffffffffffffffffffff1683604051611adf919061228d565b6000604051808303816000865af19150503d8060008114611b1c576040519150601f19603f3d011682016040523d82523d6000602084013e611b21565b606091505b50915091506000821415611b39573d6000803e3d6000fd5b610518815160001480611b5b575081806020019051810190611b5b91906121aa565b6101a2611946565b6000818310611a95578161052a565b611b918363a9059cbb60e01b84846040516024016112af92919061238f565b505050565b4690565b6000611ba585611c81565b9050611bbb611bb5878387611cba565b83611946565b611bca428410156101b8611946565b50505073ffffffffffffffffffffffffffffffffffffffff9092166000908152602081905260409020805460010190555050565b7f08c379a0000000000000000000000000000000000000000000000000000000006000908152602060045260076024526642414c23000030600a808404818106603090810160081b95839006959095019082900491820690940160101b939093010160c81b604452606490fd5b6000611c7a8484111583611946565b5050900390565b6000611c8b61187c565b82604051602001611c9d9291906122a9565b604051602081830303815290604052805190602001209050919050565b6000611cdb8473ffffffffffffffffffffffffffffffffffffffff16611dc2565b15611db0576040517f1626ba7e000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff861690631626ba7e90611d36908790879060040161246d565b60206040518083038186803b158015611d4e57600080fd5b505afa158015611d62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8691906121c6565b7fffffffff0000000000000000000000000000000000000000000000000000000016149050610653565b611dbb848484611dc8565b9050610653565b3b151590565b6000611dda82516041146101b9611946565b60208281015160408085015160608601518251600080825295019283905292939092811a91600190611e139089908590889088906124c5565b6020604051602081039080840390855afa158015611e35573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906117e357508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161498975050505050505050565b60405180608001604052806000600f0b81526020016000600f0b815260200160008152602001600081525090565b60008083601f840112611efa578182fd5b50813567ffffffffffffffff811115611f11578182fd5b6020830191508360208083028501011115611f2b57600080fd5b9250929050565b8051600f81900b811461052d57600080fd5b600060208284031215611f55578081fd5b8135610653816125f8565b600080600060408486031215611f74578182fd5b8335611f7f816125f8565b9250602084013567ffffffffffffffff811115611f9a578283fd5b611fa686828701611ee9565b9497909650939450505050565b600080600060608486031215611fc7578283fd5b8335611fd2816125f8565b9250602084810135611fe38161261a565b9250604085013567ffffffffffffffff80821115611fff578384fd5b818701915087601f830112612012578384fd5b813581811115612020578485fd5b612050847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016125a5565b91508082528884828501011115612065578485fd5b808484018584013784848284010152508093505050509250925092565b60008060408385031215612094578182fd5b823561209f816125f8565b915060208301356120af816125f8565b809150509250929050565b600080604083850312156120cc578182fd5b82356120d7816125f8565b946020939093013593505050565b600080602083850312156120f7578182fd5b823567ffffffffffffffff81111561210d578283fd5b61211985828601611ee9565b90969095509350505050565b6000806000806040858703121561213a578081fd5b843567ffffffffffffffff80821115612151578283fd5b61215d88838901611ee9565b90965094506020870135915080821115612175578283fd5b5061218287828801611ee9565b95989497509550505050565b60006020828403121561219f578081fd5b81356106538161261a565b6000602082840312156121bb578081fd5b81516106538161261a565b6000602082840312156121d7578081fd5b81517fffffffff0000000000000000000000000000000000000000000000000000000081168114610653578182fd5b600060808284031215612217578081fd5b61222160806125a5565b61222b8484611f32565b815261223a8460208501611f32565b602082015260408301516040820152606083015160608201528091505092915050565b60006020828403121561226e578081fd5b5035919050565b600060208284031215612286578081fd5b5051919050565b6000825161229f8184602087016125cc565b9190910192915050565b7f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff9290921682521515602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260800190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015611a69578351835292840192918401916001016123d1565b901515815260200190565b90815260200190565b93845273ffffffffffffffffffffffffffffffffffffffff92909216602084015215156040830152606082015260800190565b94855260208501939093526040840191909152606083015273ffffffffffffffffffffffffffffffffffffffff16608082015260a00190565b60008382526040602083015282518060408401526124928160608501602087016125cc565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b93845260ff9290921660208401526040830152606082015260800190565b73ffffffffffffffffffffffffffffffffffffffff9390931683526020830191909152604082015260600190565b6020808252601e908201527f4d6178696d756d20746f6b656e2062616c616e63652065786365656465640000604082015260600190565b60208082526024908201527f46656520646973747269627574696f6e20686173206e6f74207374617274656460408201527f2079657400000000000000000000000000000000000000000000000000000000606082015260800190565b60405181810167ffffffffffffffff811182821017156125c457600080fd5b604052919050565b60005b838110156125e75781810151838201526020016125cf565b838111156105185750506000910152565b73ffffffffffffffffffffffffffffffffffffffff8116811461037957600080fd5b801515811461037957600080fdfea26469706673582212206e91ba3bf7fae396c65faebeef9a2ad330d9087256688eb7df956fb362f6a77264736f6c63430007010033",
"linkReferences": {},
"deployedLinkReferences": {}
}