@keep-network/tbtc-v2 0.1.1-dev.22 → 0.1.1-dev.25
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.
- package/README.adoc +12 -0
- package/artifacts/TBTC.json +11 -10
- package/artifacts/TBTCToken.json +11 -10
- package/artifacts/VendingMachine.json +12 -11
- package/artifacts/solcInputs/7823c0ea8f2f46d2393b3380efff7ecb.json +191 -0
- package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
- package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
- package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
- package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
- package/build/contracts/bridge/Bridge.sol/Bridge.json +440 -27
- package/build/contracts/bridge/Bridge.sol/IRelay.dbg.json +1 -1
- package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +4 -0
- package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.json +10 -0
- package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
- package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +4 -0
- package/build/contracts/bridge/Wallets.sol/Wallets.json +138 -0
- package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
- package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
- package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
- package/contracts/bridge/Bridge.sol +236 -158
- package/contracts/bridge/EcdsaLib.sol +30 -0
- package/contracts/bridge/Wallets.sol +520 -0
- package/package.json +20 -17
- package/artifacts/solcInputs/e2b5f983e9c69369a4f41eb2f0688e3c.json +0 -140
|
@@ -20,6 +20,11 @@
|
|
|
20
20
|
"name": "_treasury",
|
|
21
21
|
"type": "address"
|
|
22
22
|
},
|
|
23
|
+
{
|
|
24
|
+
"internalType": "address",
|
|
25
|
+
"name": "_ecdsaWalletRegistry",
|
|
26
|
+
"type": "address"
|
|
27
|
+
},
|
|
23
28
|
{
|
|
24
29
|
"internalType": "uint256",
|
|
25
30
|
"name": "_txProofDifficultyFactor",
|
|
@@ -109,6 +114,31 @@
|
|
|
109
114
|
"name": "DepositsSwept",
|
|
110
115
|
"type": "event"
|
|
111
116
|
},
|
|
117
|
+
{
|
|
118
|
+
"anonymous": false,
|
|
119
|
+
"inputs": [
|
|
120
|
+
{
|
|
121
|
+
"indexed": true,
|
|
122
|
+
"internalType": "bytes32",
|
|
123
|
+
"name": "ecdsaWalletID",
|
|
124
|
+
"type": "bytes32"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"indexed": true,
|
|
128
|
+
"internalType": "bytes20",
|
|
129
|
+
"name": "walletPubKeyHash",
|
|
130
|
+
"type": "bytes20"
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
"name": "NewWalletRegistered",
|
|
134
|
+
"type": "event"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"anonymous": false,
|
|
138
|
+
"inputs": [],
|
|
139
|
+
"name": "NewWalletRequested",
|
|
140
|
+
"type": "event"
|
|
141
|
+
},
|
|
112
142
|
{
|
|
113
143
|
"anonymous": false,
|
|
114
144
|
"inputs": [
|
|
@@ -209,6 +239,154 @@
|
|
|
209
239
|
"name": "VaultStatusUpdated",
|
|
210
240
|
"type": "event"
|
|
211
241
|
},
|
|
242
|
+
{
|
|
243
|
+
"anonymous": false,
|
|
244
|
+
"inputs": [
|
|
245
|
+
{
|
|
246
|
+
"indexed": false,
|
|
247
|
+
"internalType": "uint64",
|
|
248
|
+
"name": "newMinBtcBalance",
|
|
249
|
+
"type": "uint64"
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"indexed": false,
|
|
253
|
+
"internalType": "uint64",
|
|
254
|
+
"name": "newMaxBtcBalance",
|
|
255
|
+
"type": "uint64"
|
|
256
|
+
}
|
|
257
|
+
],
|
|
258
|
+
"name": "WalletBtcBalanceRangeUpdated",
|
|
259
|
+
"type": "event"
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
"anonymous": false,
|
|
263
|
+
"inputs": [
|
|
264
|
+
{
|
|
265
|
+
"indexed": true,
|
|
266
|
+
"internalType": "bytes32",
|
|
267
|
+
"name": "ecdsaWalletID",
|
|
268
|
+
"type": "bytes32"
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
"indexed": true,
|
|
272
|
+
"internalType": "bytes20",
|
|
273
|
+
"name": "walletPubKeyHash",
|
|
274
|
+
"type": "bytes20"
|
|
275
|
+
}
|
|
276
|
+
],
|
|
277
|
+
"name": "WalletClosed",
|
|
278
|
+
"type": "event"
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
"anonymous": false,
|
|
282
|
+
"inputs": [
|
|
283
|
+
{
|
|
284
|
+
"indexed": false,
|
|
285
|
+
"internalType": "uint32",
|
|
286
|
+
"name": "newCreationPeriod",
|
|
287
|
+
"type": "uint32"
|
|
288
|
+
}
|
|
289
|
+
],
|
|
290
|
+
"name": "WalletCreationPeriodUpdated",
|
|
291
|
+
"type": "event"
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
"anonymous": false,
|
|
295
|
+
"inputs": [
|
|
296
|
+
{
|
|
297
|
+
"indexed": false,
|
|
298
|
+
"internalType": "uint32",
|
|
299
|
+
"name": "newMaxAge",
|
|
300
|
+
"type": "uint32"
|
|
301
|
+
}
|
|
302
|
+
],
|
|
303
|
+
"name": "WalletMaxAgeUpdated",
|
|
304
|
+
"type": "event"
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"anonymous": false,
|
|
308
|
+
"inputs": [
|
|
309
|
+
{
|
|
310
|
+
"indexed": true,
|
|
311
|
+
"internalType": "bytes32",
|
|
312
|
+
"name": "ecdsaWalletID",
|
|
313
|
+
"type": "bytes32"
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
"indexed": true,
|
|
317
|
+
"internalType": "bytes20",
|
|
318
|
+
"name": "walletPubKeyHash",
|
|
319
|
+
"type": "bytes20"
|
|
320
|
+
}
|
|
321
|
+
],
|
|
322
|
+
"name": "WalletMovingFunds",
|
|
323
|
+
"type": "event"
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
"anonymous": false,
|
|
327
|
+
"inputs": [
|
|
328
|
+
{
|
|
329
|
+
"indexed": true,
|
|
330
|
+
"internalType": "bytes32",
|
|
331
|
+
"name": "ecdsaWalletID",
|
|
332
|
+
"type": "bytes32"
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
"indexed": true,
|
|
336
|
+
"internalType": "bytes20",
|
|
337
|
+
"name": "walletPubKeyHash",
|
|
338
|
+
"type": "bytes20"
|
|
339
|
+
}
|
|
340
|
+
],
|
|
341
|
+
"name": "WalletTerminated",
|
|
342
|
+
"type": "event"
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
"inputs": [
|
|
346
|
+
{
|
|
347
|
+
"internalType": "bytes32",
|
|
348
|
+
"name": "ecdsaWalletID",
|
|
349
|
+
"type": "bytes32"
|
|
350
|
+
},
|
|
351
|
+
{
|
|
352
|
+
"internalType": "bytes32",
|
|
353
|
+
"name": "publicKeyX",
|
|
354
|
+
"type": "bytes32"
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
"internalType": "bytes32",
|
|
358
|
+
"name": "publicKeyY",
|
|
359
|
+
"type": "bytes32"
|
|
360
|
+
}
|
|
361
|
+
],
|
|
362
|
+
"name": "__ecdsaWalletCreatedCallback",
|
|
363
|
+
"outputs": [],
|
|
364
|
+
"stateMutability": "nonpayable",
|
|
365
|
+
"type": "function"
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
"inputs": [
|
|
369
|
+
{
|
|
370
|
+
"internalType": "bytes32",
|
|
371
|
+
"name": "",
|
|
372
|
+
"type": "bytes32"
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
"internalType": "bytes32",
|
|
376
|
+
"name": "publicKeyX",
|
|
377
|
+
"type": "bytes32"
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
"internalType": "bytes32",
|
|
381
|
+
"name": "publicKeyY",
|
|
382
|
+
"type": "bytes32"
|
|
383
|
+
}
|
|
384
|
+
],
|
|
385
|
+
"name": "__ecdsaWalletHeartbeatFailedCallback",
|
|
386
|
+
"outputs": [],
|
|
387
|
+
"stateMutability": "nonpayable",
|
|
388
|
+
"type": "function"
|
|
389
|
+
},
|
|
212
390
|
{
|
|
213
391
|
"inputs": [],
|
|
214
392
|
"name": "bank",
|
|
@@ -222,6 +400,19 @@
|
|
|
222
400
|
"stateMutability": "view",
|
|
223
401
|
"type": "function"
|
|
224
402
|
},
|
|
403
|
+
{
|
|
404
|
+
"inputs": [],
|
|
405
|
+
"name": "depositDustThreshold",
|
|
406
|
+
"outputs": [
|
|
407
|
+
{
|
|
408
|
+
"internalType": "uint64",
|
|
409
|
+
"name": "",
|
|
410
|
+
"type": "uint64"
|
|
411
|
+
}
|
|
412
|
+
],
|
|
413
|
+
"stateMutability": "view",
|
|
414
|
+
"type": "function"
|
|
415
|
+
},
|
|
225
416
|
{
|
|
226
417
|
"inputs": [],
|
|
227
418
|
"name": "depositTreasuryFeeDivisor",
|
|
@@ -292,6 +483,98 @@
|
|
|
292
483
|
"stateMutability": "view",
|
|
293
484
|
"type": "function"
|
|
294
485
|
},
|
|
486
|
+
{
|
|
487
|
+
"inputs": [],
|
|
488
|
+
"name": "getActiveWalletPubKeyHash",
|
|
489
|
+
"outputs": [
|
|
490
|
+
{
|
|
491
|
+
"internalType": "bytes20",
|
|
492
|
+
"name": "",
|
|
493
|
+
"type": "bytes20"
|
|
494
|
+
}
|
|
495
|
+
],
|
|
496
|
+
"stateMutability": "view",
|
|
497
|
+
"type": "function"
|
|
498
|
+
},
|
|
499
|
+
{
|
|
500
|
+
"inputs": [
|
|
501
|
+
{
|
|
502
|
+
"internalType": "bytes20",
|
|
503
|
+
"name": "walletPubKeyHash",
|
|
504
|
+
"type": "bytes20"
|
|
505
|
+
}
|
|
506
|
+
],
|
|
507
|
+
"name": "getWallet",
|
|
508
|
+
"outputs": [
|
|
509
|
+
{
|
|
510
|
+
"components": [
|
|
511
|
+
{
|
|
512
|
+
"internalType": "bytes32",
|
|
513
|
+
"name": "ecdsaWalletID",
|
|
514
|
+
"type": "bytes32"
|
|
515
|
+
},
|
|
516
|
+
{
|
|
517
|
+
"internalType": "bytes32",
|
|
518
|
+
"name": "mainUtxoHash",
|
|
519
|
+
"type": "bytes32"
|
|
520
|
+
},
|
|
521
|
+
{
|
|
522
|
+
"internalType": "uint64",
|
|
523
|
+
"name": "pendingRedemptionsValue",
|
|
524
|
+
"type": "uint64"
|
|
525
|
+
},
|
|
526
|
+
{
|
|
527
|
+
"internalType": "uint32",
|
|
528
|
+
"name": "createdAt",
|
|
529
|
+
"type": "uint32"
|
|
530
|
+
},
|
|
531
|
+
{
|
|
532
|
+
"internalType": "uint32",
|
|
533
|
+
"name": "moveFundsRequestedAt",
|
|
534
|
+
"type": "uint32"
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
"internalType": "enum Wallets.WalletState",
|
|
538
|
+
"name": "state",
|
|
539
|
+
"type": "uint8"
|
|
540
|
+
}
|
|
541
|
+
],
|
|
542
|
+
"internalType": "struct Wallets.Wallet",
|
|
543
|
+
"name": "",
|
|
544
|
+
"type": "tuple"
|
|
545
|
+
}
|
|
546
|
+
],
|
|
547
|
+
"stateMutability": "view",
|
|
548
|
+
"type": "function"
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
"inputs": [],
|
|
552
|
+
"name": "getWalletsParameters",
|
|
553
|
+
"outputs": [
|
|
554
|
+
{
|
|
555
|
+
"internalType": "uint32",
|
|
556
|
+
"name": "creationPeriod",
|
|
557
|
+
"type": "uint32"
|
|
558
|
+
},
|
|
559
|
+
{
|
|
560
|
+
"internalType": "uint64",
|
|
561
|
+
"name": "minBtcBalance",
|
|
562
|
+
"type": "uint64"
|
|
563
|
+
},
|
|
564
|
+
{
|
|
565
|
+
"internalType": "uint64",
|
|
566
|
+
"name": "maxBtcBalance",
|
|
567
|
+
"type": "uint64"
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
"internalType": "uint32",
|
|
571
|
+
"name": "maxAge",
|
|
572
|
+
"type": "uint32"
|
|
573
|
+
}
|
|
574
|
+
],
|
|
575
|
+
"stateMutability": "view",
|
|
576
|
+
"type": "function"
|
|
577
|
+
},
|
|
295
578
|
{
|
|
296
579
|
"inputs": [
|
|
297
580
|
{
|
|
@@ -315,19 +598,35 @@
|
|
|
315
598
|
"inputs": [
|
|
316
599
|
{
|
|
317
600
|
"internalType": "bytes20",
|
|
318
|
-
"name": "",
|
|
601
|
+
"name": "walletPubKeyHash",
|
|
319
602
|
"type": "bytes20"
|
|
320
|
-
}
|
|
321
|
-
],
|
|
322
|
-
"name": "mainUtxos",
|
|
323
|
-
"outputs": [
|
|
603
|
+
},
|
|
324
604
|
{
|
|
325
|
-
"
|
|
326
|
-
|
|
327
|
-
|
|
605
|
+
"components": [
|
|
606
|
+
{
|
|
607
|
+
"internalType": "bytes32",
|
|
608
|
+
"name": "txHash",
|
|
609
|
+
"type": "bytes32"
|
|
610
|
+
},
|
|
611
|
+
{
|
|
612
|
+
"internalType": "uint32",
|
|
613
|
+
"name": "txOutputIndex",
|
|
614
|
+
"type": "uint32"
|
|
615
|
+
},
|
|
616
|
+
{
|
|
617
|
+
"internalType": "uint64",
|
|
618
|
+
"name": "txOutputValue",
|
|
619
|
+
"type": "uint64"
|
|
620
|
+
}
|
|
621
|
+
],
|
|
622
|
+
"internalType": "struct BitcoinTx.UTXO",
|
|
623
|
+
"name": "walletMainUtxo",
|
|
624
|
+
"type": "tuple"
|
|
328
625
|
}
|
|
329
626
|
],
|
|
330
|
-
"
|
|
627
|
+
"name": "notifyCloseableWallet",
|
|
628
|
+
"outputs": [],
|
|
629
|
+
"stateMutability": "nonpayable",
|
|
331
630
|
"type": "function"
|
|
332
631
|
},
|
|
333
632
|
{
|
|
@@ -454,6 +753,36 @@
|
|
|
454
753
|
"stateMutability": "nonpayable",
|
|
455
754
|
"type": "function"
|
|
456
755
|
},
|
|
756
|
+
{
|
|
757
|
+
"inputs": [
|
|
758
|
+
{
|
|
759
|
+
"components": [
|
|
760
|
+
{
|
|
761
|
+
"internalType": "bytes32",
|
|
762
|
+
"name": "txHash",
|
|
763
|
+
"type": "bytes32"
|
|
764
|
+
},
|
|
765
|
+
{
|
|
766
|
+
"internalType": "uint32",
|
|
767
|
+
"name": "txOutputIndex",
|
|
768
|
+
"type": "uint32"
|
|
769
|
+
},
|
|
770
|
+
{
|
|
771
|
+
"internalType": "uint64",
|
|
772
|
+
"name": "txOutputValue",
|
|
773
|
+
"type": "uint64"
|
|
774
|
+
}
|
|
775
|
+
],
|
|
776
|
+
"internalType": "struct BitcoinTx.UTXO",
|
|
777
|
+
"name": "activeWalletMainUtxo",
|
|
778
|
+
"type": "tuple"
|
|
779
|
+
}
|
|
780
|
+
],
|
|
781
|
+
"name": "requestNewWallet",
|
|
782
|
+
"outputs": [],
|
|
783
|
+
"stateMutability": "nonpayable",
|
|
784
|
+
"type": "function"
|
|
785
|
+
},
|
|
457
786
|
{
|
|
458
787
|
"inputs": [
|
|
459
788
|
{
|
|
@@ -838,40 +1167,92 @@
|
|
|
838
1167
|
{
|
|
839
1168
|
"inputs": [
|
|
840
1169
|
{
|
|
841
|
-
"internalType": "
|
|
842
|
-
"name": "",
|
|
843
|
-
"type": "
|
|
844
|
-
}
|
|
845
|
-
],
|
|
846
|
-
"name": "wallets",
|
|
847
|
-
"outputs": [
|
|
1170
|
+
"internalType": "uint32",
|
|
1171
|
+
"name": "creationPeriod",
|
|
1172
|
+
"type": "uint32"
|
|
1173
|
+
},
|
|
848
1174
|
{
|
|
849
|
-
"internalType": "
|
|
850
|
-
"name": "
|
|
851
|
-
"type": "
|
|
1175
|
+
"internalType": "uint64",
|
|
1176
|
+
"name": "minBtcBalance",
|
|
1177
|
+
"type": "uint64"
|
|
852
1178
|
},
|
|
853
1179
|
{
|
|
854
1180
|
"internalType": "uint64",
|
|
855
|
-
"name": "
|
|
1181
|
+
"name": "maxBtcBalance",
|
|
856
1182
|
"type": "uint64"
|
|
1183
|
+
},
|
|
1184
|
+
{
|
|
1185
|
+
"internalType": "uint32",
|
|
1186
|
+
"name": "maxAge",
|
|
1187
|
+
"type": "uint32"
|
|
857
1188
|
}
|
|
858
1189
|
],
|
|
859
|
-
"
|
|
1190
|
+
"name": "updateWalletsParameters",
|
|
1191
|
+
"outputs": [],
|
|
1192
|
+
"stateMutability": "nonpayable",
|
|
860
1193
|
"type": "function"
|
|
861
1194
|
}
|
|
862
1195
|
],
|
|
863
|
-
"bytecode": "0x6101006040523480156200001257600080fd5b5060405162004cdb38038062004cdb83398101604081905262000035916200021d565b6200004033620001b0565b6001600160a01b0384166200009c5760405162461bcd60e51b815260206004820152601b60248201527f42616e6b20616464726573732063616e6e6f74206265207a65726f000000000060448201526064015b60405180910390fd5b6001600160a01b0380851660a0528316620000fa5760405162461bcd60e51b815260206004820152601c60248201527f52656c617920616464726573732063616e6e6f74206265207a65726f00000000604482015260640162000093565b6001600160a01b0380841660c0528216620001585760405162461bcd60e51b815260206004820152601f60248201527f547265617375727920616464726573732063616e6e6f74206265207a65726f00604482015260640162000093565b6001600160a01b039190911660e052608052505060008054600160a01b600160e01b031916607d60a41b1790557903e800000000000007d000000000000f424000000000000003e86001556202a3006002556200026f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200021857600080fd5b919050565b600080600080608085870312156200023457600080fd5b6200023f8562000200565b93506200024f6020860162000200565b92506200025f6040860162000200565b6060959095015193969295505050565b60805160a05160c05160e0516149ec620002ef6000396000818161035701528181610afe01526117720152600081816104d8015281816120bf015261215901526000818161039e01528181610a6b01528181610b2d015281816116d9015281816117aa0152611f470152600081816102f501526121ef01526149ec6000f3fe608060405234801561001057600080fd5b50600436106101985760003560e01c80638da5cb5b116100e3578063cb7f3a091161008c578063e65e19d511610066578063e65e19d51461056d578063e95eb7a8146105ae578063f2fde38b146105c857600080fd5b8063cb7f3a0914610514578063d6eccdf014610527578063e53c0b551461053a57600080fd5b8063b34b3216116100bd578063b34b3216146104c0578063b59589d1146104d3578063bdf9fca9146104fa57600080fd5b80638da5cb5b146103e0578063a588f059146103f1578063b02c43d01461040b57600080fd5b80635c0b481211610145578063715018a61161011f578063715018a61461039157806376cdb03b1461039957806383a43428146103c057600080fd5b80635c0b48121461032c57806360d712fc1461033f57806361d027b31461035257600080fd5b80631fff4e70116101765780631fff4e70146102d95780632bb818c2146102f057806359a9d90a1461031757600080fd5b806303d952f71461019d578063079bf52c146102485780630b6ba19d1461027a575b600080fd5b6101fc6101ab366004613dc2565b600660205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b604080516001600160a01b0390961686526001600160401b0394851660208701529284169285019290925291909116606083015263ffffffff16608082015260a0015b60405180910390f35b60005461026290600160a01b90046001600160401b031681565b6040516001600160401b03909116815260200161023f565b6101fc610288366004613dc2565b600760205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b6102e260025481565b60405190815260200161023f565b6102e27f000000000000000000000000000000000000000000000000000000000000000081565b61032a610325366004613e05565b6105db565b005b61032a61033a366004613e70565b610b99565b61032a61034d366004613ee6565b611235565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161023f565b61032a6112ee565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b6102e26103ce366004613f3a565b60056020526000908152604090205481565b6000546001600160a01b0316610379565b60015461026290600160c01b90046001600160401b031681565b610470610419366004613dc2565b600460205260009081526040902080546001909101546001600160a01b03808316926001600160401b03600160a01b80830482169463ffffffff600160e01b94859004811695821694928204909316929190041686565b604080516001600160a01b0397881681526001600160401b03968716602082015263ffffffff958616918101919091529590921660608601529290921660808401521660a082015260c00161023f565b61032a6104ce366004613f55565b611354565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b60015461026290600160401b90046001600160401b031681565b600154610262906001600160401b031681565b61032a610535366004613ff1565b611811565b61055d610548366004614096565b60036020526000908152604090205460ff1681565b604051901515815260200161023f565b6105a061057b366004613f3a565b60086020526000908152604090205460ff81169061010090046001600160401b031682565b60405161023f9291906140c7565b60015461026290600160801b90046001600160401b031681565b61032a6105d6366004614096565b611fb7565b600073__$a0a90fa014aeccc935ad103f88ed15a604$__639d7ae1348585610601612099565b6040518463ffffffff1660e01b815260040161061f93929190614187565b60206040518083038186803b15801561063757600080fd5b505af415801561064b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066f9190614282565b90506000806106be610684604088018861429b565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061221692505050565b60408051606081018252600080825260208083018290528284018290526001600160601b0319861682526005905291909120549294509092509080156107d8578086356107116040890160208a016142f5565b61072160608a0160408b01614310565b60405160200161075e9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146107c65760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064015b60405180910390fd5b6107d536879003870187614341565b91505b60006108266107ea60208b018b61429b565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250612349915050565b9050600080806108498460000151886001600160401b03168660400151516128c4565b60015491935091506001600160401b031661086482846143c9565b11156108b25760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e2066656520697320746f6f2068696768000000000060448201526064016107bd565b60005b8460400151518110156109a057600060018660400151516108d691906143e1565b82146108e257836108ec565b6108ec83856143c9565b90508086606001518381518110610905576109056143f8565b602002602001015187604001518481518110610923576109236143f8565b602002602001015161093591906143e1565b61093f91906143e1565b86604001518381518110610955576109556143f8565b60200260200101818152505085606001518281518110610977576109776143f8565b60200260200101518561098a91906143c9565b94505080806109989061440e565b9150506108b5565b5060408051602081018b90526000918101919091526001600160c01b031960c089901b166044820152604c0160408051808303601f1901815282825280516020918201206001600160601b03198c1660008181526005845284902091909155835282018b90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a1602084015160408086015190517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263266a123a92610a9e92600401614429565b600060405180830381600087803b158015610ab857600080fd5b505af1158015610acc573d6000803e3d6000fd5b50506040517f5b86f5990000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018790527f0000000000000000000000000000000000000000000000000000000000000000169250635b86f5999150604401600060405180830381600087803b158015610b7357600080fd5b505af1158015610b87573d6000803e3d6000fd5b50505050505050505050505050505050565b6000610bab60e0830160c08401614096565b6001600160a01b03161480610bed575060036000610bcf60e0840160c08501614096565b6001600160a01b0316815260208101919091526040016000205460ff165b610c395760405162461bcd60e51b815260206004820152601460248201527f5661756c74206973206e6f74207472757374656400000000000000000000000060448201526064016107bd565b6000610c4b6040830160208401614096565b610c5b60608401604085016144ad565b610c6b6080850160608601613f3a565b610c7b60a0860160808701613f3a565b610c8b60c0870160a088016144d7565b604051602001610c9f9594939291906144f2565b60408051601f1981840301815291905290506000610d13610cc360208501856142f5565b63ffffffff16610cd6604087018761429b565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506129009050565b90506000610d2082612acb565b9050805160141415610da657610d3583612d71565b6001600160601b031916610d4a826000612d98565b6001600160601b03191614610da15760405162461bcd60e51b815260206004820152601960248201527f57726f6e672032302d627974652073637269707420686173680000000000000060448201526064016107bd565b610e9e565b805160201415610e5657600283604051610dc091906147a2565b602060405180830381855afa158015610ddd573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610e009190614282565b610e0982612dae565b14610da15760405162461bcd60e51b815260206004820152601960248201527f57726f6e672033322d627974652073637269707420686173680000000000000060448201526064016107bd565b60405162461bcd60e51b815260206004820152601860248201527f57726f6e67207363726970742068617368206c656e677468000000000000000060448201526064016107bd565b6000610f03610eb060208801886144d7565b610ebd602089018961429b565b610eca60408b018b61429b565b610eda60808d0160608e016144d7565b604051602001610eef969594939291906147ae565b604051602081830303815290604052612dca565b9050600060048183610f1860208a018a6142f5565b604051602001610f3f92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615610fc35760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616c72656164792072657665616c6564000000000000000060448201526064016107bd565b6000610fce85612df1565b82547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b0383160217835590506110176040880160208901614096565b82546001600160a01b03919091167bffffffffffffffff000000000000000000000000000000000000000090911617600160e01b4263ffffffff160217825561106660e0880160c08901614096565b60018301805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055600054600160a01b90046001600160401b03166110b35760006110d0565b6000546110d090600160a01b90046001600160401b031682614806565b6001830180546001600160401b0392909216600160a01b027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff9092169190911790557fa7382159a693ed317a024daf0fd1ba30805cdf9928ee09550af517c516e2ef058361114160208a018a6142f5565b61115160408b0160208c01614096565b8461116260608d0160408e016144ad565b61117260808e0160608f01613f3a565b8d60800160208101906111859190613f3a565b8e60a001602081019061119891906144d7565b8f60c00160208101906111ab9190614096565b60408051998a5263ffffffff90981660208a01526001600160a01b03968716978901979097526001600160401b0390941660608801526001600160c01b031990921660808701526001600160601b031990811660a08701521660c08501526001600160e01b03191660e0840152166101008201526101200160405180910390a15050505050505050565b6000546001600160a01b0316331461128f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107bd565b6001600160a01b038216600081815260036020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6000546001600160a01b031633146113485760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107bd565b6113526000612e67565b565b600073__$a0a90fa014aeccc935ad103f88ed15a604$__639d7ae134868661137a612099565b6040518463ffffffff1660e01b815260040161139893929190614187565b60206040518083038186803b1580156113b057600080fd5b505af41580156113c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e89190614282565b90506114386113fa602087018761429b565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250869150612ec49050565b6001600160601b0319821660009081526008602052604090205460ff166001816004811115611469576114696140b1565b148061148657506002816004811115611484576114846140b1565b145b6114f85760405162461bcd60e51b815260206004820152602c60248201527f57616c6c6574206d75737420626520696e20416374697665206f72204d6f766960448201527f6e6746756473207374617465000000000000000000000000000000000000000060648201526084016107bd565b600061154661150a604089018961429b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508892506130c9915050565b60608101519091506001600160401b0316156115d95782816040015182606001516040516020016115a49392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f1981840301815291815281516020928301206001600160601b03198716600090815260059093529120556115f4565b6001600160601b031984166000908152600560205260408120555b80516001600160601b031985166000908152600860205260409020805460019061162d90849061010090046001600160401b031661482c565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe84846040516116979291906001600160601b0319929092168252602082015260400190565b60405180910390a180516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063392aee4390602401600060405180830381600087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b5050505060208101516040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526001600160401b0390921660248201527f0000000000000000000000000000000000000000000000000000000000000000909116906356a6d9ef90604401600060405180830381600087803b1580156117f057600080fd5b505af1158015611804573d6000803e3d6000fd5b5050505050505050505050565b60016001600160601b0319861660009081526008602052604090205460ff166004811115611841576118416140b1565b1461188e5760405162461bcd60e51b815260206004820152601e60248201527f57616c6c6574206d75737420626520696e20416374697665207374617465000060448201526064016107bd565b6001600160601b031985166000908152600560205260409020548061191b5760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c6560448201527f740000000000000000000000000000000000000000000000000000000000000060648201526084016107bd565b80853561192e60408801602089016142f5565b61193e6060890160408a01614310565b60405160200161197b9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146119de5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016107bd565b6000611a10600060c01b86866040516020016119fc93929190614854565b604051602081830303815290604052612acb565b90506000815111611a895760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e64617264207479706500000000000000000000000000000000000060648201526084016107bd565b808051906020012087604051602001611ab291906001600160601b031991909116815260140190565b604051602081830303815290604052805190602001201415611b3c5760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b4800000000000000000060648201526084016107bd565b6001546001600160401b03600160401b90910481169084161015611ba25760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c000000000060448201526064016107bd565b6000878686604051602001611bb993929190614878565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff1615611c8a5760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a4016107bd565b600154600090600160801b90046001600160401b0316611cab576000611cc8565b600154611cc890600160801b90046001600160401b031686614806565b600154909150600160c01b90046001600160401b0316611ce8828761482c565b6001600160601b03198b1660009081526008602052604090208054600190611d1f90849061010090046001600160401b031661489c565b82546001600160401b0391821661010093840a90810290830219909116179092556001600160601b03198d166000908152600860205260409081902054919091049091169150611d759060608c01908c01614310565b6001600160401b03161015611dcc5760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e64730000000000000060448201526064016107bd565b6040805160a081018252338082526001600160401b03808a1660208085019182528783168587019081528784166060870190815263ffffffff4281166080890190815260008d81526006909552938990209751885495518716600160a01b026001600160e01b03199096166001600160a01b03919091161794909417875590516001909601805491519251909316600160801b027fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff928516600160401b027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216969094169590951794909417939093161790915590517f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d9591611efc918d918c918c91908c90899089906148c7565b60405180910390a16040517f7c6db49c0000000000000000000000000000000000000000000000000000000081523360048201523060248201526001600160401b03871660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637c6db49c90606401600060405180830381600087803b158015611f9357600080fd5b505af1158015611fa7573d6000803e3d6000fd5b5050505050505050505050505050565b6000546001600160a01b031633146120115760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107bd565b6001600160a01b03811661208d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107bd565b61209681612e67565b50565b6120bd60405180606001604052806000815260200160008152602001600081525090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663113764be6040518163ffffffff1660e01b815260040160206040518083038186803b15801561211657600080fd5b505afa15801561212a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214e9190614282565b8160000181815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b1580156121b057600080fd5b505afa1580156121c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e89190614282565b60208201527f0000000000000000000000000000000000000000000000000000000000000000604082015290565b6000806000612224846136de565b9150508060011461229d5760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f757470757400000000000000000000000000000000000000000060648201526084016107bd565b60006122a98582612900565b90506122b481612df1565b925060006122c182612acb565b9050805160141461233a5760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f766520323020627974657300000000000000000000000000000000000000000060648201526084016107bd565b60208101519450505050915091565b6123746040518060800160405280600081526020016060815260200160608152602001606081525090565b8151151560008080612385876136de565b909250905060006123978360016143c9565b905084156123af576123aa6001836143e1565b6123b1565b815b6001600160401b038111156123c8576123c861432b565b6040519080825280602002602001820160405280156123f1578160200160208202803683370190505b5060208701819052516001600160401b038111156124115761241161432b565b60405190808252806020026020018201604052801561243a578160200160208202803683370190505b5060408701526020860151516001600160401b0381111561245d5761245d61432b565b604051908082528060200260200182016040528015612486578160200160208202803683370190505b5060608701526000805b838110156127c75760008060006124a78d876136f5565b92509250925060006004600085856040516020016124dc92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615612718576001810154600160e01b900463ffffffff16156125775760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016107bd565b8b60200151518614156125f25760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016107bd565b6001810180547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b4263ffffffff1602179055805460208d015180516001600160a01b03909216918890811061264b5761264b6143f8565b6001600160a01b039290921660209283029190910190910152805460408d01518051600160a01b9092046001600160401b0316918890811061268f5761268f6143f8565b6020026020010181815250508b6040015186815181106126b1576126b16143f8565b60200260200101518c6000018181516126ca91906143c9565b905250600181015460608d01518051600160a01b9092046001600160401b031691889081106126fb576126fb6143f8565b6020908102919091010152856127108161440e565b9650506127a4565b8915158b15151415801561272c57508c5184145b1561275c578c604001516001600160401b03168c60000181815161275091906143c9565b905250600199506127a4565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e7075742074797065000000000000000000000000000060448201526064016107bd565b6127ae82886143c9565b96505050505080806127bf9061440e565b915050612490565b506000811161283e5760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f7369740000000000000000000000000060648201526084016107bd565b841515861515146128b75760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016107bd565b5050505050505b92915050565b600080806128d285876143e1565b90506128de848261492a565b9150836128eb83836143e1565b6128f5919061493e565b925050935093915050565b606060008061290e856136de565b90925090506000198214156129705760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016107bd565b8084106129bf5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016107bd565b6000806129cd8460016143c9565b905060005b86811015612a56576129e4888361374d565b9250600019831415612a385760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016107bd565b612a4283836143c9565b915080612a4e8161440e565b9150506129d2565b50612a61878261374d565b9150600019821415612ab55760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016107bd565b612ac08782846137bc565b979650505050505050565b6060600082600881518110612ae257612ae26143f8565b0160200151835160f89190911c9150612afc826009614952565b60ff1614612b1a575050604080516020810190915260008152919050565b82600981518110612b2d57612b2d6143f8565b016020015160f81c612bd35760028160ff161015612b5b575050604080516020810190915260008152919050565b600083600a81518110612b7057612b706143f8565b016020015160f81c9050612b85600283614977565b60ff1681141580612ba3575080602014158015612ba3575080601414155b15612bbf57505060408051602081019091526000815292915050565b612bcb84600b836137bc565b949350505050565b6000612be0846008612d98565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415612cbd5783600b81518110612c3f57612c3f6143f8565b60209101015160f81c6014141580612c945750612c6a60028551612c6391906143e1565b8590612d98565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b15612cb057505060408051602081019091526000815292915050565b612bcb84600c60146137bc565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415612d5a578360018551612d1691906143e1565b81518110612d2657612d266143f8565b60209101015160f81c608714612d4d57505060408051602081019091526000815292915050565b612bcb84600b60146137bc565b505050604080516020810190915260008152919050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6000612da78383016020015190565b9392505050565b6000815160001415612dc257506000919050565b506020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b600080612dfd83613886565b60c01c90506000612bcb8264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160601b0319811660009081526005602052604090205480612f2b5760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c657400000060448201526064016107bd565b808335612f3e60408601602087016142f5565b612f4e6060870160408801614310565b604051602001612f8b9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014612fee5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016107bd565b600080612ffa86613892565b9092509050843582148015613029575063ffffffff811661302160408701602088016142f5565b63ffffffff16145b6130c15760405162461bcd60e51b815260206004820152604160248201527f526564656d7074696f6e207472616e73616374696f6e20696e707574206d757360448201527f7420706f696e7420746f207468652077616c6c65742773206d61696e2055545860648201527f4f00000000000000000000000000000000000000000000000000000000000000608482015260a4016107bd565b505050505050565b604080516080810182526000808252602082018190529181018290526060810182905290806130f7856136de565b909250905060006131098360016143c9565b604080517f1976a914000000000000000000000000000000000000000000000000000000006020808301919091526001600160601b031989166024830181905261222b60f21b60388401528351601a818503018152603a840185528051908301207f1600140000000000000000000000000000000000000000000000000000000000605a850152605d8401919091528351605181850301815260719093019093528151910120919250906000805b858110156136675760006131cb8b8761374d565b905060006131da8c88846137bc565b905060006131e782612df1565b9050600061320560088085516131fd91906143e1565b8591906137bc565b90508b606001516001600160401b0316600014801561323857508051602082012088148061323857508051602082012087145b801561324d57506000826001600160401b0316115b156132725763ffffffff851660408d01526001600160401b03821660608d0152613644565b60008d8260405160200161328792919061499a565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff1615613491576000818152600660205260408120600181015481549192916132f9916001600160401b0390811691600160a01b90041661482c565b60018301549091506001600160401b038087169161332091600160401b909104168361482c565b6001600160401b0316111580156133495750806001600160401b0316856001600160401b031611155b6133e15760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a4016107bd565b808f6000018181516133f3919061489c565b9150906001600160401b031690816001600160401b0316815250508160010160009054906101000a90046001600160401b03168f602001818151613437919061489c565b6001600160401b0316905250600083815260066020526040902080546001600160e01b0319168155600101805473ffffffffffffffffffffffffffffffffffffffff19169055886134878161440e565b9950505050613642565b60008181526007602052604090206001810154600160801b900463ffffffff166135225760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016107bd565b6001810154815460009161354a916001600160401b0391821691600160a01b9091041661482c565b60018301549091506001600160401b038087169161357191600160401b909104168361482c565b6001600160401b03161115801561359a5750806001600160401b0316856001600160401b031611155b6136325760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a4016107bd565b8861363c8161440e565b99505050505b505b61364e848a6143c9565b985050505050808061365f9061440e565b9150506131b7565b50600081116128b75760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e000000000060648201526084016107bd565b6000806136ec836000613947565b91509150915091565b600080806137038585612d98565b92506137386137128686613ac3565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b91506137448585613ada565b90509250925092565b600061375a8260096143c9565b8351101561376b57506000196128be565b6000806137828561377d8660086143c9565b613947565b909250905060001982141561379d57600019925050506128be565b806137a98360096143c9565b6137b391906143c9565b95945050505050565b6060816137d85750604080516020810190915260008152612da7565b60006137e483856143c9565b905083811180156137f6575080855110155b6138425760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016107bd565b604051915082604083010160405282825283850182038460208701018481015b8082101561387b57815183830152602082019150613862565b505050509392505050565b60006128be8282612d98565b60008060006138a0846136de565b915050806001146139195760405162461bcd60e51b815260206004820152602f60248201527f526564656d7074696f6e207472616e73616374696f6e206d757374206861766560448201527f20612073696e676c6520696e707574000000000000000000000000000000000060648201526084016107bd565b60006139258582613b25565b905061393081613cda565b935061393e61371282613ce7565b92505050915091565b60008060006139568585613cf4565b905060ff8116613988576000858581518110613974576139746143f8565b016020015190935060f81c9150613abc9050565b83613994826001614952565b60ff166139a191906143c9565b855110156139b85760001960009250925050613abc565b60008160ff16600214156139fd576139f26139de6139d78760016143c9565b8890612d98565b62ffff0060e882901c1660f89190911c1790565b61ffff169050613ab2565b8160ff1660041415613a2757613a1a6137126139d78760016143c9565b63ffffffff169050613ab2565b8160ff1660081415613ab257613aa6613a446139d78760016143c9565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b6000612da7613ad38360206143c9565b8490612d98565b6000806000613ae98585613d80565b9092509050600019821415613b0457600019925050506128be565b80613b108360256143c9565b613b1a91906143c9565b6137b39060046143c9565b6060600080613b33856136de565b9092509050600019821415613b955760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016107bd565b808410613be45760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e0000000000000000000000000000000060448201526064016107bd565b600080613bf28460016143c9565b905060005b86811015613c7b57613c098883613ada565b9250600019831415613c5d5760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016107bd565b613c6783836143c9565b915080613c738161440e565b915050613bf7565b50613c868782613ada565b9150600019821415612ab55760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016107bd565b60208101516000906128be565b60006128be826020612d98565b6000828281518110613d0857613d086143f8565b60209101015160f81c60ff1415613d21575060086128be565b828281518110613d3357613d336143f8565b60209101015160f81c60fe1415613d4c575060046128be565b828281518110613d5e57613d5e6143f8565b60209101015160f81c60fd1415613d77575060026128be565b50600092915050565b600080613d8e8360256143c9565b84511015613da3575060001990506000613abc565b600080613db58661377d8760246143c9565b9097909650945050505050565b600060208284031215613dd457600080fd5b5035919050565b600060808284031215613ded57600080fd5b50919050565b600060608284031215613ded57600080fd5b600080600060a08486031215613e1a57600080fd5b83356001600160401b0380821115613e3157600080fd5b613e3d87838801613ddb565b94506020860135915080821115613e5357600080fd5b50613e6086828701613df3565b9250506137448560408601613df3565b600080828403610100811215613e8557600080fd5b83356001600160401b03811115613e9b57600080fd5b613ea786828701613ddb565b93505060e0601f1982011215613ebc57600080fd5b506020830190509250929050565b80356001600160a01b0381168114613ee157600080fd5b919050565b60008060408385031215613ef957600080fd5b613f0283613eca565b915060208301358015158114613f1757600080fd5b809150509250929050565b80356001600160601b031981168114613ee157600080fd5b600060208284031215613f4c57600080fd5b612da782613f22565b60008060008060c08587031215613f6b57600080fd5b84356001600160401b0380821115613f8257600080fd5b613f8e88838901613ddb565b95506020870135915080821115613fa457600080fd5b50613fb187828801613df3565b935050613fc18660408701613df3565b9150613fcf60a08601613f22565b905092959194509250565b80356001600160401b0381168114613ee157600080fd5b600080600080600060c0868803121561400957600080fd5b61401286613f22565b94506140218760208801613df3565b935060808601356001600160401b038082111561403d57600080fd5b818801915088601f83011261405157600080fd5b81358181111561406057600080fd5b89602082850101111561407257600080fd5b60208301955080945050505061408a60a08701613fda565b90509295509295909350565b6000602082840312156140a857600080fd5b612da782613eca565b634e487b7160e01b600052602160045260246000fd5b60408101600584106140e957634e487b7160e01b600052602160045260246000fd5b9281526001600160401b039190911660209091015290565b80356001600160e01b031981168114613ee157600080fd5b6000808335601e1984360301811261413057600080fd5b83016020810192503590506001600160401b0381111561414f57600080fd5b803603831315613abc57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60a0815260006001600160e01b0319806141a087614101565b1660a08401526141b36020870187614119565b608060c08601526141c96101208601828461415e565b9150506141d96040880188614119565b858303609f190160e08701526141f083828461415e565b925050508161420160608901614101565b16610100850152838103602085015261421a8687614119565b92506060825261422e60608301848361415e565b925050602086013560208201526142486040870187614119565b828403604084015261425b84828461415e565b945050505050612bcb60408301848051825260208082015190830152604090810151910152565b60006020828403121561429457600080fd5b5051919050565b6000808335601e198436030181126142b257600080fd5b8301803591506001600160401b038211156142cc57600080fd5b602001915036819003821315613abc57600080fd5b803563ffffffff81168114613ee157600080fd5b60006020828403121561430757600080fd5b612da7826142e1565b60006020828403121561432257600080fd5b612da782613fda565b634e487b7160e01b600052604160045260246000fd5b60006060828403121561435357600080fd5b604051606081018181106001600160401b038211171561438357634e487b7160e01b600052604160045260246000fd5b60405282358152614396602084016142e1565b60208201526143a760408401613fda565b60408201529392505050565b634e487b7160e01b600052601160045260246000fd5b600082198211156143dc576143dc6143b3565b500190565b6000828210156143f3576143f36143b3565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415614422576144226143b3565b5060010190565b604080825283519082018190526000906020906060840190828701845b8281101561446b5781516001600160a01b031684529284019290840190600101614446565b5050508381038285015284518082528583019183019060005b818110156144a057835183529284019291840191600101614484565b5090979650505050505050565b6000602082840312156144bf57600080fd5b81356001600160c01b031981168114612da757600080fd5b6000602082840312156144e957600080fd5b612da782614101565b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f080000000000000000000000000000000000000000000000000000000000000060168201526001600160c01b031985166017820152607560f81b601f82015260006145c66145b9614590602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f630000000000000000000000000000000000000000000000000000000000000060158201526146856145b961459061456761465c601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b6005820152905061475b61473260068301614633565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000815160005b81811015614788576020818501810151868301520161476e565b81811115614797576000828601525b509290920192915050565b6000612da78284614767565b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680614820576148206147f0565b92169190910492915050565b60006001600160401b038381169083168181101561484c5761484c6143b3565b039392505050565b6001600160c01b031984168152818360088301376000910160080190815292915050565b6001600160601b031984168152818360148301376000910160140190815292915050565b60006001600160401b038083168185168083038211156148be576148be6143b3565b01949350505050565b6bffffffffffffffffffffffff198816815260c0602082015260006148f060c08301888a61415e565b6001600160a01b03969096166040830152506001600160401b039384166060820152918316608083015290911660a0909101529392505050565b600082614939576149396147f0565b500690565b60008261494d5761494d6147f0565b500490565b600060ff821660ff84168060ff0382111561496f5761496f6143b3565b019392505050565b600060ff821660ff841680821015614991576149916143b3565b90039392505050565b6001600160601b0319831681526000612bcb601483018461476756fea264697066735822122004d089b6d7ee7df533a75e96055f0d9c61bafe7e0707287b2a83e34f7a81bbd664736f6c63430008090033",
|
|
864
|
-
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101985760003560e01c80638da5cb5b116100e3578063cb7f3a091161008c578063e65e19d511610066578063e65e19d51461056d578063e95eb7a8146105ae578063f2fde38b146105c857600080fd5b8063cb7f3a0914610514578063d6eccdf014610527578063e53c0b551461053a57600080fd5b8063b34b3216116100bd578063b34b3216146104c0578063b59589d1146104d3578063bdf9fca9146104fa57600080fd5b80638da5cb5b146103e0578063a588f059146103f1578063b02c43d01461040b57600080fd5b80635c0b481211610145578063715018a61161011f578063715018a61461039157806376cdb03b1461039957806383a43428146103c057600080fd5b80635c0b48121461032c57806360d712fc1461033f57806361d027b31461035257600080fd5b80631fff4e70116101765780631fff4e70146102d95780632bb818c2146102f057806359a9d90a1461031757600080fd5b806303d952f71461019d578063079bf52c146102485780630b6ba19d1461027a575b600080fd5b6101fc6101ab366004613dc2565b600660205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b604080516001600160a01b0390961686526001600160401b0394851660208701529284169285019290925291909116606083015263ffffffff16608082015260a0015b60405180910390f35b60005461026290600160a01b90046001600160401b031681565b6040516001600160401b03909116815260200161023f565b6101fc610288366004613dc2565b600760205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b6102e260025481565b60405190815260200161023f565b6102e27f000000000000000000000000000000000000000000000000000000000000000081565b61032a610325366004613e05565b6105db565b005b61032a61033a366004613e70565b610b99565b61032a61034d366004613ee6565b611235565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161023f565b61032a6112ee565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b6102e26103ce366004613f3a565b60056020526000908152604090205481565b6000546001600160a01b0316610379565b60015461026290600160c01b90046001600160401b031681565b610470610419366004613dc2565b600460205260009081526040902080546001909101546001600160a01b03808316926001600160401b03600160a01b80830482169463ffffffff600160e01b94859004811695821694928204909316929190041686565b604080516001600160a01b0397881681526001600160401b03968716602082015263ffffffff958616918101919091529590921660608601529290921660808401521660a082015260c00161023f565b61032a6104ce366004613f55565b611354565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b60015461026290600160401b90046001600160401b031681565b600154610262906001600160401b031681565b61032a610535366004613ff1565b611811565b61055d610548366004614096565b60036020526000908152604090205460ff1681565b604051901515815260200161023f565b6105a061057b366004613f3a565b60086020526000908152604090205460ff81169061010090046001600160401b031682565b60405161023f9291906140c7565b60015461026290600160801b90046001600160401b031681565b61032a6105d6366004614096565b611fb7565b600073__$a0a90fa014aeccc935ad103f88ed15a604$__639d7ae1348585610601612099565b6040518463ffffffff1660e01b815260040161061f93929190614187565b60206040518083038186803b15801561063757600080fd5b505af415801561064b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066f9190614282565b90506000806106be610684604088018861429b565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061221692505050565b60408051606081018252600080825260208083018290528284018290526001600160601b0319861682526005905291909120549294509092509080156107d8578086356107116040890160208a016142f5565b61072160608a0160408b01614310565b60405160200161075e9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146107c65760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064015b60405180910390fd5b6107d536879003870187614341565b91505b60006108266107ea60208b018b61429b565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250612349915050565b9050600080806108498460000151886001600160401b03168660400151516128c4565b60015491935091506001600160401b031661086482846143c9565b11156108b25760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e2066656520697320746f6f2068696768000000000060448201526064016107bd565b60005b8460400151518110156109a057600060018660400151516108d691906143e1565b82146108e257836108ec565b6108ec83856143c9565b90508086606001518381518110610905576109056143f8565b602002602001015187604001518481518110610923576109236143f8565b602002602001015161093591906143e1565b61093f91906143e1565b86604001518381518110610955576109556143f8565b60200260200101818152505085606001518281518110610977576109776143f8565b60200260200101518561098a91906143c9565b94505080806109989061440e565b9150506108b5565b5060408051602081018b90526000918101919091526001600160c01b031960c089901b166044820152604c0160408051808303601f1901815282825280516020918201206001600160601b03198c1660008181526005845284902091909155835282018b90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a1602084015160408086015190517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263266a123a92610a9e92600401614429565b600060405180830381600087803b158015610ab857600080fd5b505af1158015610acc573d6000803e3d6000fd5b50506040517f5b86f5990000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018790527f0000000000000000000000000000000000000000000000000000000000000000169250635b86f5999150604401600060405180830381600087803b158015610b7357600080fd5b505af1158015610b87573d6000803e3d6000fd5b50505050505050505050505050505050565b6000610bab60e0830160c08401614096565b6001600160a01b03161480610bed575060036000610bcf60e0840160c08501614096565b6001600160a01b0316815260208101919091526040016000205460ff165b610c395760405162461bcd60e51b815260206004820152601460248201527f5661756c74206973206e6f74207472757374656400000000000000000000000060448201526064016107bd565b6000610c4b6040830160208401614096565b610c5b60608401604085016144ad565b610c6b6080850160608601613f3a565b610c7b60a0860160808701613f3a565b610c8b60c0870160a088016144d7565b604051602001610c9f9594939291906144f2565b60408051601f1981840301815291905290506000610d13610cc360208501856142f5565b63ffffffff16610cd6604087018761429b565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506129009050565b90506000610d2082612acb565b9050805160141415610da657610d3583612d71565b6001600160601b031916610d4a826000612d98565b6001600160601b03191614610da15760405162461bcd60e51b815260206004820152601960248201527f57726f6e672032302d627974652073637269707420686173680000000000000060448201526064016107bd565b610e9e565b805160201415610e5657600283604051610dc091906147a2565b602060405180830381855afa158015610ddd573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610e009190614282565b610e0982612dae565b14610da15760405162461bcd60e51b815260206004820152601960248201527f57726f6e672033322d627974652073637269707420686173680000000000000060448201526064016107bd565b60405162461bcd60e51b815260206004820152601860248201527f57726f6e67207363726970742068617368206c656e677468000000000000000060448201526064016107bd565b6000610f03610eb060208801886144d7565b610ebd602089018961429b565b610eca60408b018b61429b565b610eda60808d0160608e016144d7565b604051602001610eef969594939291906147ae565b604051602081830303815290604052612dca565b9050600060048183610f1860208a018a6142f5565b604051602001610f3f92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615610fc35760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616c72656164792072657665616c6564000000000000000060448201526064016107bd565b6000610fce85612df1565b82547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b0383160217835590506110176040880160208901614096565b82546001600160a01b03919091167bffffffffffffffff000000000000000000000000000000000000000090911617600160e01b4263ffffffff160217825561106660e0880160c08901614096565b60018301805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055600054600160a01b90046001600160401b03166110b35760006110d0565b6000546110d090600160a01b90046001600160401b031682614806565b6001830180546001600160401b0392909216600160a01b027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff9092169190911790557fa7382159a693ed317a024daf0fd1ba30805cdf9928ee09550af517c516e2ef058361114160208a018a6142f5565b61115160408b0160208c01614096565b8461116260608d0160408e016144ad565b61117260808e0160608f01613f3a565b8d60800160208101906111859190613f3a565b8e60a001602081019061119891906144d7565b8f60c00160208101906111ab9190614096565b60408051998a5263ffffffff90981660208a01526001600160a01b03968716978901979097526001600160401b0390941660608801526001600160c01b031990921660808701526001600160601b031990811660a08701521660c08501526001600160e01b03191660e0840152166101008201526101200160405180910390a15050505050505050565b6000546001600160a01b0316331461128f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107bd565b6001600160a01b038216600081815260036020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6000546001600160a01b031633146113485760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107bd565b6113526000612e67565b565b600073__$a0a90fa014aeccc935ad103f88ed15a604$__639d7ae134868661137a612099565b6040518463ffffffff1660e01b815260040161139893929190614187565b60206040518083038186803b1580156113b057600080fd5b505af41580156113c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e89190614282565b90506114386113fa602087018761429b565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250869150612ec49050565b6001600160601b0319821660009081526008602052604090205460ff166001816004811115611469576114696140b1565b148061148657506002816004811115611484576114846140b1565b145b6114f85760405162461bcd60e51b815260206004820152602c60248201527f57616c6c6574206d75737420626520696e20416374697665206f72204d6f766960448201527f6e6746756473207374617465000000000000000000000000000000000000000060648201526084016107bd565b600061154661150a604089018961429b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508892506130c9915050565b60608101519091506001600160401b0316156115d95782816040015182606001516040516020016115a49392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f1981840301815291815281516020928301206001600160601b03198716600090815260059093529120556115f4565b6001600160601b031984166000908152600560205260408120555b80516001600160601b031985166000908152600860205260409020805460019061162d90849061010090046001600160401b031661482c565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe84846040516116979291906001600160601b0319929092168252602082015260400190565b60405180910390a180516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063392aee4390602401600060405180830381600087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b5050505060208101516040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526001600160401b0390921660248201527f0000000000000000000000000000000000000000000000000000000000000000909116906356a6d9ef90604401600060405180830381600087803b1580156117f057600080fd5b505af1158015611804573d6000803e3d6000fd5b5050505050505050505050565b60016001600160601b0319861660009081526008602052604090205460ff166004811115611841576118416140b1565b1461188e5760405162461bcd60e51b815260206004820152601e60248201527f57616c6c6574206d75737420626520696e20416374697665207374617465000060448201526064016107bd565b6001600160601b031985166000908152600560205260409020548061191b5760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c6560448201527f740000000000000000000000000000000000000000000000000000000000000060648201526084016107bd565b80853561192e60408801602089016142f5565b61193e6060890160408a01614310565b60405160200161197b9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146119de5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016107bd565b6000611a10600060c01b86866040516020016119fc93929190614854565b604051602081830303815290604052612acb565b90506000815111611a895760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e64617264207479706500000000000000000000000000000000000060648201526084016107bd565b808051906020012087604051602001611ab291906001600160601b031991909116815260140190565b604051602081830303815290604052805190602001201415611b3c5760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b4800000000000000000060648201526084016107bd565b6001546001600160401b03600160401b90910481169084161015611ba25760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c000000000060448201526064016107bd565b6000878686604051602001611bb993929190614878565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff1615611c8a5760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a4016107bd565b600154600090600160801b90046001600160401b0316611cab576000611cc8565b600154611cc890600160801b90046001600160401b031686614806565b600154909150600160c01b90046001600160401b0316611ce8828761482c565b6001600160601b03198b1660009081526008602052604090208054600190611d1f90849061010090046001600160401b031661489c565b82546001600160401b0391821661010093840a90810290830219909116179092556001600160601b03198d166000908152600860205260409081902054919091049091169150611d759060608c01908c01614310565b6001600160401b03161015611dcc5760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e64730000000000000060448201526064016107bd565b6040805160a081018252338082526001600160401b03808a1660208085019182528783168587019081528784166060870190815263ffffffff4281166080890190815260008d81526006909552938990209751885495518716600160a01b026001600160e01b03199096166001600160a01b03919091161794909417875590516001909601805491519251909316600160801b027fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff928516600160401b027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216969094169590951794909417939093161790915590517f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d9591611efc918d918c918c91908c90899089906148c7565b60405180910390a16040517f7c6db49c0000000000000000000000000000000000000000000000000000000081523360048201523060248201526001600160401b03871660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637c6db49c90606401600060405180830381600087803b158015611f9357600080fd5b505af1158015611fa7573d6000803e3d6000fd5b5050505050505050505050505050565b6000546001600160a01b031633146120115760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107bd565b6001600160a01b03811661208d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107bd565b61209681612e67565b50565b6120bd60405180606001604052806000815260200160008152602001600081525090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663113764be6040518163ffffffff1660e01b815260040160206040518083038186803b15801561211657600080fd5b505afa15801561212a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214e9190614282565b8160000181815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b1580156121b057600080fd5b505afa1580156121c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e89190614282565b60208201527f0000000000000000000000000000000000000000000000000000000000000000604082015290565b6000806000612224846136de565b9150508060011461229d5760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f757470757400000000000000000000000000000000000000000060648201526084016107bd565b60006122a98582612900565b90506122b481612df1565b925060006122c182612acb565b9050805160141461233a5760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f766520323020627974657300000000000000000000000000000000000000000060648201526084016107bd565b60208101519450505050915091565b6123746040518060800160405280600081526020016060815260200160608152602001606081525090565b8151151560008080612385876136de565b909250905060006123978360016143c9565b905084156123af576123aa6001836143e1565b6123b1565b815b6001600160401b038111156123c8576123c861432b565b6040519080825280602002602001820160405280156123f1578160200160208202803683370190505b5060208701819052516001600160401b038111156124115761241161432b565b60405190808252806020026020018201604052801561243a578160200160208202803683370190505b5060408701526020860151516001600160401b0381111561245d5761245d61432b565b604051908082528060200260200182016040528015612486578160200160208202803683370190505b5060608701526000805b838110156127c75760008060006124a78d876136f5565b92509250925060006004600085856040516020016124dc92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615612718576001810154600160e01b900463ffffffff16156125775760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016107bd565b8b60200151518614156125f25760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016107bd565b6001810180547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b4263ffffffff1602179055805460208d015180516001600160a01b03909216918890811061264b5761264b6143f8565b6001600160a01b039290921660209283029190910190910152805460408d01518051600160a01b9092046001600160401b0316918890811061268f5761268f6143f8565b6020026020010181815250508b6040015186815181106126b1576126b16143f8565b60200260200101518c6000018181516126ca91906143c9565b905250600181015460608d01518051600160a01b9092046001600160401b031691889081106126fb576126fb6143f8565b6020908102919091010152856127108161440e565b9650506127a4565b8915158b15151415801561272c57508c5184145b1561275c578c604001516001600160401b03168c60000181815161275091906143c9565b905250600199506127a4565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e7075742074797065000000000000000000000000000060448201526064016107bd565b6127ae82886143c9565b96505050505080806127bf9061440e565b915050612490565b506000811161283e5760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f7369740000000000000000000000000060648201526084016107bd565b841515861515146128b75760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016107bd565b5050505050505b92915050565b600080806128d285876143e1565b90506128de848261492a565b9150836128eb83836143e1565b6128f5919061493e565b925050935093915050565b606060008061290e856136de565b90925090506000198214156129705760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016107bd565b8084106129bf5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016107bd565b6000806129cd8460016143c9565b905060005b86811015612a56576129e4888361374d565b9250600019831415612a385760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016107bd565b612a4283836143c9565b915080612a4e8161440e565b9150506129d2565b50612a61878261374d565b9150600019821415612ab55760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016107bd565b612ac08782846137bc565b979650505050505050565b6060600082600881518110612ae257612ae26143f8565b0160200151835160f89190911c9150612afc826009614952565b60ff1614612b1a575050604080516020810190915260008152919050565b82600981518110612b2d57612b2d6143f8565b016020015160f81c612bd35760028160ff161015612b5b575050604080516020810190915260008152919050565b600083600a81518110612b7057612b706143f8565b016020015160f81c9050612b85600283614977565b60ff1681141580612ba3575080602014158015612ba3575080601414155b15612bbf57505060408051602081019091526000815292915050565b612bcb84600b836137bc565b949350505050565b6000612be0846008612d98565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415612cbd5783600b81518110612c3f57612c3f6143f8565b60209101015160f81c6014141580612c945750612c6a60028551612c6391906143e1565b8590612d98565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b15612cb057505060408051602081019091526000815292915050565b612bcb84600c60146137bc565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415612d5a578360018551612d1691906143e1565b81518110612d2657612d266143f8565b60209101015160f81c608714612d4d57505060408051602081019091526000815292915050565b612bcb84600b60146137bc565b505050604080516020810190915260008152919050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6000612da78383016020015190565b9392505050565b6000815160001415612dc257506000919050565b506020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b600080612dfd83613886565b60c01c90506000612bcb8264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160601b0319811660009081526005602052604090205480612f2b5760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c657400000060448201526064016107bd565b808335612f3e60408601602087016142f5565b612f4e6060870160408801614310565b604051602001612f8b9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014612fee5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016107bd565b600080612ffa86613892565b9092509050843582148015613029575063ffffffff811661302160408701602088016142f5565b63ffffffff16145b6130c15760405162461bcd60e51b815260206004820152604160248201527f526564656d7074696f6e207472616e73616374696f6e20696e707574206d757360448201527f7420706f696e7420746f207468652077616c6c65742773206d61696e2055545860648201527f4f00000000000000000000000000000000000000000000000000000000000000608482015260a4016107bd565b505050505050565b604080516080810182526000808252602082018190529181018290526060810182905290806130f7856136de565b909250905060006131098360016143c9565b604080517f1976a914000000000000000000000000000000000000000000000000000000006020808301919091526001600160601b031989166024830181905261222b60f21b60388401528351601a818503018152603a840185528051908301207f1600140000000000000000000000000000000000000000000000000000000000605a850152605d8401919091528351605181850301815260719093019093528151910120919250906000805b858110156136675760006131cb8b8761374d565b905060006131da8c88846137bc565b905060006131e782612df1565b9050600061320560088085516131fd91906143e1565b8591906137bc565b90508b606001516001600160401b0316600014801561323857508051602082012088148061323857508051602082012087145b801561324d57506000826001600160401b0316115b156132725763ffffffff851660408d01526001600160401b03821660608d0152613644565b60008d8260405160200161328792919061499a565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff1615613491576000818152600660205260408120600181015481549192916132f9916001600160401b0390811691600160a01b90041661482c565b60018301549091506001600160401b038087169161332091600160401b909104168361482c565b6001600160401b0316111580156133495750806001600160401b0316856001600160401b031611155b6133e15760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a4016107bd565b808f6000018181516133f3919061489c565b9150906001600160401b031690816001600160401b0316815250508160010160009054906101000a90046001600160401b03168f602001818151613437919061489c565b6001600160401b0316905250600083815260066020526040902080546001600160e01b0319168155600101805473ffffffffffffffffffffffffffffffffffffffff19169055886134878161440e565b9950505050613642565b60008181526007602052604090206001810154600160801b900463ffffffff166135225760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016107bd565b6001810154815460009161354a916001600160401b0391821691600160a01b9091041661482c565b60018301549091506001600160401b038087169161357191600160401b909104168361482c565b6001600160401b03161115801561359a5750806001600160401b0316856001600160401b031611155b6136325760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a4016107bd565b8861363c8161440e565b99505050505b505b61364e848a6143c9565b985050505050808061365f9061440e565b9150506131b7565b50600081116128b75760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e000000000060648201526084016107bd565b6000806136ec836000613947565b91509150915091565b600080806137038585612d98565b92506137386137128686613ac3565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b91506137448585613ada565b90509250925092565b600061375a8260096143c9565b8351101561376b57506000196128be565b6000806137828561377d8660086143c9565b613947565b909250905060001982141561379d57600019925050506128be565b806137a98360096143c9565b6137b391906143c9565b95945050505050565b6060816137d85750604080516020810190915260008152612da7565b60006137e483856143c9565b905083811180156137f6575080855110155b6138425760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016107bd565b604051915082604083010160405282825283850182038460208701018481015b8082101561387b57815183830152602082019150613862565b505050509392505050565b60006128be8282612d98565b60008060006138a0846136de565b915050806001146139195760405162461bcd60e51b815260206004820152602f60248201527f526564656d7074696f6e207472616e73616374696f6e206d757374206861766560448201527f20612073696e676c6520696e707574000000000000000000000000000000000060648201526084016107bd565b60006139258582613b25565b905061393081613cda565b935061393e61371282613ce7565b92505050915091565b60008060006139568585613cf4565b905060ff8116613988576000858581518110613974576139746143f8565b016020015190935060f81c9150613abc9050565b83613994826001614952565b60ff166139a191906143c9565b855110156139b85760001960009250925050613abc565b60008160ff16600214156139fd576139f26139de6139d78760016143c9565b8890612d98565b62ffff0060e882901c1660f89190911c1790565b61ffff169050613ab2565b8160ff1660041415613a2757613a1a6137126139d78760016143c9565b63ffffffff169050613ab2565b8160ff1660081415613ab257613aa6613a446139d78760016143c9565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b6000612da7613ad38360206143c9565b8490612d98565b6000806000613ae98585613d80565b9092509050600019821415613b0457600019925050506128be565b80613b108360256143c9565b613b1a91906143c9565b6137b39060046143c9565b6060600080613b33856136de565b9092509050600019821415613b955760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016107bd565b808410613be45760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e0000000000000000000000000000000060448201526064016107bd565b600080613bf28460016143c9565b905060005b86811015613c7b57613c098883613ada565b9250600019831415613c5d5760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016107bd565b613c6783836143c9565b915080613c738161440e565b915050613bf7565b50613c868782613ada565b9150600019821415612ab55760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016107bd565b60208101516000906128be565b60006128be826020612d98565b6000828281518110613d0857613d086143f8565b60209101015160f81c60ff1415613d21575060086128be565b828281518110613d3357613d336143f8565b60209101015160f81c60fe1415613d4c575060046128be565b828281518110613d5e57613d5e6143f8565b60209101015160f81c60fd1415613d77575060026128be565b50600092915050565b600080613d8e8360256143c9565b84511015613da3575060001990506000613abc565b600080613db58661377d8760246143c9565b9097909650945050505050565b600060208284031215613dd457600080fd5b5035919050565b600060808284031215613ded57600080fd5b50919050565b600060608284031215613ded57600080fd5b600080600060a08486031215613e1a57600080fd5b83356001600160401b0380821115613e3157600080fd5b613e3d87838801613ddb565b94506020860135915080821115613e5357600080fd5b50613e6086828701613df3565b9250506137448560408601613df3565b600080828403610100811215613e8557600080fd5b83356001600160401b03811115613e9b57600080fd5b613ea786828701613ddb565b93505060e0601f1982011215613ebc57600080fd5b506020830190509250929050565b80356001600160a01b0381168114613ee157600080fd5b919050565b60008060408385031215613ef957600080fd5b613f0283613eca565b915060208301358015158114613f1757600080fd5b809150509250929050565b80356001600160601b031981168114613ee157600080fd5b600060208284031215613f4c57600080fd5b612da782613f22565b60008060008060c08587031215613f6b57600080fd5b84356001600160401b0380821115613f8257600080fd5b613f8e88838901613ddb565b95506020870135915080821115613fa457600080fd5b50613fb187828801613df3565b935050613fc18660408701613df3565b9150613fcf60a08601613f22565b905092959194509250565b80356001600160401b0381168114613ee157600080fd5b600080600080600060c0868803121561400957600080fd5b61401286613f22565b94506140218760208801613df3565b935060808601356001600160401b038082111561403d57600080fd5b818801915088601f83011261405157600080fd5b81358181111561406057600080fd5b89602082850101111561407257600080fd5b60208301955080945050505061408a60a08701613fda565b90509295509295909350565b6000602082840312156140a857600080fd5b612da782613eca565b634e487b7160e01b600052602160045260246000fd5b60408101600584106140e957634e487b7160e01b600052602160045260246000fd5b9281526001600160401b039190911660209091015290565b80356001600160e01b031981168114613ee157600080fd5b6000808335601e1984360301811261413057600080fd5b83016020810192503590506001600160401b0381111561414f57600080fd5b803603831315613abc57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60a0815260006001600160e01b0319806141a087614101565b1660a08401526141b36020870187614119565b608060c08601526141c96101208601828461415e565b9150506141d96040880188614119565b858303609f190160e08701526141f083828461415e565b925050508161420160608901614101565b16610100850152838103602085015261421a8687614119565b92506060825261422e60608301848361415e565b925050602086013560208201526142486040870187614119565b828403604084015261425b84828461415e565b945050505050612bcb60408301848051825260208082015190830152604090810151910152565b60006020828403121561429457600080fd5b5051919050565b6000808335601e198436030181126142b257600080fd5b8301803591506001600160401b038211156142cc57600080fd5b602001915036819003821315613abc57600080fd5b803563ffffffff81168114613ee157600080fd5b60006020828403121561430757600080fd5b612da7826142e1565b60006020828403121561432257600080fd5b612da782613fda565b634e487b7160e01b600052604160045260246000fd5b60006060828403121561435357600080fd5b604051606081018181106001600160401b038211171561438357634e487b7160e01b600052604160045260246000fd5b60405282358152614396602084016142e1565b60208201526143a760408401613fda565b60408201529392505050565b634e487b7160e01b600052601160045260246000fd5b600082198211156143dc576143dc6143b3565b500190565b6000828210156143f3576143f36143b3565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415614422576144226143b3565b5060010190565b604080825283519082018190526000906020906060840190828701845b8281101561446b5781516001600160a01b031684529284019290840190600101614446565b5050508381038285015284518082528583019183019060005b818110156144a057835183529284019291840191600101614484565b5090979650505050505050565b6000602082840312156144bf57600080fd5b81356001600160c01b031981168114612da757600080fd5b6000602082840312156144e957600080fd5b612da782614101565b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f080000000000000000000000000000000000000000000000000000000000000060168201526001600160c01b031985166017820152607560f81b601f82015260006145c66145b9614590602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f630000000000000000000000000000000000000000000000000000000000000060158201526146856145b961459061456761465c601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b6005820152905061475b61473260068301614633565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000815160005b81811015614788576020818501810151868301520161476e565b81811115614797576000828601525b509290920192915050565b6000612da78284614767565b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680614820576148206147f0565b92169190910492915050565b60006001600160401b038381169083168181101561484c5761484c6143b3565b039392505050565b6001600160c01b031984168152818360088301376000910160080190815292915050565b6001600160601b031984168152818360148301376000910160140190815292915050565b60006001600160401b038083168185168083038211156148be576148be6143b3565b01949350505050565b6bffffffffffffffffffffffff198816815260c0602082015260006148f060c08301888a61415e565b6001600160a01b03969096166040830152506001600160401b039384166060820152918316608083015290911660a0909101529392505050565b600082614939576149396147f0565b500690565b60008261494d5761494d6147f0565b500490565b600060ff821660ff84168060ff0382111561496f5761496f6143b3565b019392505050565b600060ff821660ff841680821015614991576149916143b3565b90039392505050565b6001600160601b0319831681526000612bcb601483018461476756fea264697066735822122004d089b6d7ee7df533a75e96055f0d9c61bafe7e0707287b2a83e34f7a81bbd664736f6c63430008090033",
|
|
1196
|
+
"bytecode": "0x6101006040523480156200001257600080fd5b506040516200560c3803806200560c8339810160408190526200003591620003fa565b62000040336200038d565b6001600160a01b0385166200009c5760405162461bcd60e51b815260206004820152601b60248201527f42616e6b20616464726573732063616e6e6f74206265207a65726f000000000060448201526064015b60405180910390fd5b6001600160a01b0380861660a0528416620000fa5760405162461bcd60e51b815260206004820152601c60248201527f52656c617920616464726573732063616e6e6f74206265207a65726f00000000604482015260640162000093565b6001600160a01b0380851660c0528316620001585760405162461bcd60e51b815260206004820152601f60248201527f547265617375727920616464726573732063616e6e6f74206265207a65726f00604482015260640162000093565b6001600160a01b0383811660e052608082905260008054600160a01b600160e01b031916613d0960a61b1790557907d000000000000f424000000000000003e800000000000007d0600155600280546103e86001600160401b03199091161790556202a30060035560405163f832341d60e01b815260086004820152908316602482015273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063f832341d9060440160006040518083038186803b1580156200021457600080fd5b505af415801562000229573d6000803e3d6000fd5b505060405163041aee9960e01b81526008600482015262093a80602482015273__$0f118c52967a3847a37f0a2ef02ffcee04$__925063041aee99915060440160006040518083038186803b1580156200028257600080fd5b505af415801562000297573d6000803e3d6000fd5b5050604051632662d59360e21b8152600860048201526305f5e1006024820152633b9aca00604482015273__$0f118c52967a3847a37f0a2ef02ffcee04$__925063998b564c915060640160006040518083038186803b158015620002fb57600080fd5b505af415801562000310573d6000803e3d6000fd5b505060405163117665a760e21b81526008600482015262eff100602482015273__$0f118c52967a3847a37f0a2ef02ffcee04$__92506345d9969c915060440160006040518083038186803b1580156200036957600080fd5b505af41580156200037e573d6000803e3d6000fd5b50505050505050505062000461565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620003f557600080fd5b919050565b600080600080600060a086880312156200041357600080fd5b6200041e86620003dd565b94506200042e60208701620003dd565b93506200043e60408701620003dd565b92506200044e60608701620003dd565b9150608086015190509295509295909350565b60805160a05160c05160e05161512b620004e1600039600081816103dd01528181610d190152611b850152600081816105ff0152818161268e015261272801526000818161042401528181610c8601528181610d4801528181611aec01528181611bbd015261231201526000818161033b01526127be015261512b6000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80638da5cb5b1161010f578063b59589d1116100a2578063e53c0b5511610071578063e53c0b5514610668578063e95eb7a81461069b578063f2fde38b146106b5578063fd562080146106c857600080fd5b8063b59589d1146105fa578063bdf9fca914610621578063cb7f3a091461063b578063d6eccdf01461065557600080fd5b8063a588f059116100de578063a588f0591461050c578063a8fa0f421461051f578063b02c43d014610532578063b34b3216146105e757600080fd5b80638da5cb5b146104755780638dd0f79a146104865780638fa4ad28146104d9578063a145e2d5146104f957600080fd5b806359a9d90a1161018757806361d027b31161015657806361d027b3146103d8578063715018a61461041757806376cdb03b1461041f578063793bb4731461044657600080fd5b806359a9d90a146103855780635afb143c146103985780635c0b4812146103b257806360d712fc146103c557600080fd5b80631fff4e70116101c35780631fff4e701461031f5780632bb818c2146103365780633dce98121461035d578063575e42791461037257600080fd5b806303d952f7146101ea578063079bf52c146102955780630b6ba19d146102c0575b600080fd5b6102496101f836600461438c565b600660205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b604080516001600160a01b0390961686526001600160401b0394851660208701529284169285019290925291909116606083015263ffffffff16608082015260a0015b60405180910390f35b6001546102a8906001600160401b031681565b6040516001600160401b03909116815260200161028c565b6102496102ce36600461438c565b600760205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b61032860035481565b60405190815260200161028c565b6103287f000000000000000000000000000000000000000000000000000000000000000081565b61037061036b3660046143a5565b6106db565b005b610370610380366004614406565b61076b565b61037061039336600461444c565b6107f4565b6000546102a890600160a01b90046001600160401b031681565b6103706103c03660046144b7565b610db5565b6103706103d3366004614528565b6114aa565b6103ff7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161028c565b610370611563565b6103ff7f000000000000000000000000000000000000000000000000000000000000000081565b6009546c01000000000000000000000000900460601b6040516001600160601b0319909116815260200161028c565b6000546001600160a01b03166103ff565b6008546009546040805163ffffffff600160a01b8504811682526001600160401b03600160c01b9095048516602083015293831691810191909152600160401b909104909116606082015260800161028c565b6104ec6104e7366004614564565b6115c9565b60405161028c9190614595565b61037061050736600461460e565b6116b0565b6002546102a8906001600160401b031681565b61037061052d3660046143a5565b611736565b61059761054036600461438c565b600560205260009081526040902080546001909101546001600160a01b03808316926001600160401b03600160a01b80830482169463ffffffff600160e01b94859004811695821694928204909316929190041686565b604080516001600160a01b0397881681526001600160401b03968716602082015263ffffffff958616918101919091529590921660608601529290921660808401521660a082015260c00161028c565b6103706105f536600461462a565b61179c565b6103ff7f000000000000000000000000000000000000000000000000000000000000000081565b6001546102a890600160801b90046001600160401b031681565b6001546102a890600160401b90046001600160401b031681565b6103706106633660046146c6565b611c25565b61068b61067636600461476b565b60046020526000908152604090205460ff1681565b604051901515815260200161028c565b6001546102a890600160c01b90046001600160401b031681565b6103706106c336600461476b565b612383565b6103706106d636600461479a565b612465565b6040517f1803c09e00000000000000000000000000000000000000000000000000000000815260086004820152602481018390526044810182905273__$0f118c52967a3847a37f0a2ef02ffcee04$__90631803c09e906064015b60006040518083038186803b15801561074e57600080fd5b505af4158015610762573d6000803e3d6000fd5b50505050505050565b6040517f9655f02b00000000000000000000000000000000000000000000000000000000815273__$0f118c52967a3847a37f0a2ef02ffcee04$__90639655f02b906107c0906008908690869060040161481c565b60006040518083038186803b1580156107d857600080fd5b505af41580156107ec573d6000803e3d6000fd5b505050505050565b600073__$a0a90fa014aeccc935ad103f88ed15a604$__639d7ae134858561081a612668565b6040518463ffffffff1660e01b8152600401610838939291906148c6565b60206040518083038186803b15801561085057600080fd5b505af4158015610864573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088891906149c1565b90506000806108d761089d60408801886149da565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506127e592505050565b6001600160601b031982166000908152600a6020908152604080832081516060810183528481529283018490529082019290925260018201549395509193509180156109f75780873561093060408a0160208b01614a20565b61094060608b0160408c01614a3b565b60405160200161097d9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146109e55760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064015b60405180910390fd5b6109f436889003880188614a6c565b91505b6000610a45610a0960208c018c6149da565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250612918915050565b905060008080610a688460000151896001600160401b0316866040015151612e93565b6001549193509150600160401b90046001600160401b0316610a8a8284614af4565b1115610ad85760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e2066656520697320746f6f2068696768000000000060448201526064016109dc565b60005b846040015151811015610bc65760006001866040015151610afc9190614b0c565b8214610b085783610b12565b610b128385614af4565b90508086606001518381518110610b2b57610b2b614b23565b602002602001015187604001518481518110610b4957610b49614b23565b6020026020010151610b5b9190614b0c565b610b659190614b0c565b86604001518381518110610b7b57610b7b614b23565b60200260200101818152505085606001518281518110610b9d57610b9d614b23565b602002602001015185610bb09190614af4565b9450508080610bbe90614b39565b915050610adb565b5060408051602081018c90526000918101919091526001600160c01b031960c08a901b166044820152604c0160408051808303601f19018152828252805160209182012060018b01556001600160601b03198c16835282018c90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a1602084015160408086015190517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263266a123a92610cb992600401614b54565b600060405180830381600087803b158015610cd357600080fd5b505af1158015610ce7573d6000803e3d6000fd5b50506040517f5b86f5990000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018790527f0000000000000000000000000000000000000000000000000000000000000000169250635b86f5999150604401600060405180830381600087803b158015610d8e57600080fd5b505af1158015610da2573d6000803e3d6000fd5b5050505050505050505050505050505050565b6000610dc760e0830160c0840161476b565b6001600160a01b03161480610e09575060046000610deb60e0840160c0850161476b565b6001600160a01b0316815260208101919091526040016000205460ff165b610e555760405162461bcd60e51b815260206004820152601460248201527f5661756c74206973206e6f74207472757374656400000000000000000000000060448201526064016109dc565b6000610e67604083016020840161476b565b610e776060840160408501614bd8565b610e876080850160608601614564565b610e9760a0860160808701614564565b610ea760c0870160a08801614c02565b604051602001610ebb959493929190614c1d565b60408051601f1981840301815291905290506000610f2f610edf6020850185614a20565b63ffffffff16610ef260408701876149da565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050612ecf9050565b90506000610f3c8261309a565b9050805160141415610fc257610f5183613340565b6001600160601b031916610f66826000613367565b6001600160601b03191614610fbd5760405162461bcd60e51b815260206004820152601960248201527f57726f6e672032302d627974652073637269707420686173680000000000000060448201526064016109dc565b6110ba565b80516020141561107257600283604051610fdc9190614ecd565b602060405180830381855afa158015610ff9573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061101c91906149c1565b6110258261337d565b14610fbd5760405162461bcd60e51b815260206004820152601960248201527f57726f6e672033322d627974652073637269707420686173680000000000000060448201526064016109dc565b60405162461bcd60e51b815260206004820152601860248201527f57726f6e67207363726970742068617368206c656e677468000000000000000060448201526064016109dc565b600061111f6110cc6020880188614c02565b6110d960208901896149da565b6110e660408b018b6149da565b6110f660808d0160608e01614c02565b60405160200161110b96959493929190614ed9565b604051602081830303815290604052613399565b905060006005818361113460208a018a614a20565b60405160200161115b92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff16156111df5760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616c72656164792072657665616c6564000000000000000060448201526064016109dc565b60006111ea856133c0565b6000549091506001600160401b03600160a01b909104811690821610156112535760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616d6f756e7420746f6f20736d616c6c000000000000000060448201526064016109dc565b81547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b0383160217825561129a604088016020890161476b565b82546001600160a01b03919091167bffffffffffffffff000000000000000000000000000000000000000090911617600160e01b4263ffffffff16021782556112e960e0880160c0890161476b565b6001838101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039390931692909217909155546001600160401b031661132f576000611345565b600154611345906001600160401b031682614f31565b6001830180546001600160401b0392909216600160a01b027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff9092169190911790557fa7382159a693ed317a024daf0fd1ba30805cdf9928ee09550af517c516e2ef05836113b660208a018a614a20565b6113c660408b0160208c0161476b565b846113d760608d0160408e01614bd8565b6113e760808e0160608f01614564565b8d60800160208101906113fa9190614564565b8e60a001602081019061140d9190614c02565b8f60c0016020810190611420919061476b565b60408051998a5263ffffffff90981660208a01526001600160a01b03968716978901979097526001600160401b0390941660608801526001600160c01b031990921660808701526001600160601b031990811660a08701521660c08501526001600160e01b03191660e0840152166101008201526101200160405180910390a15050505050505050565b6000546001600160a01b031633146115045760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109dc565b6001600160a01b038216600081815260046020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6000546001600160a01b031633146115bd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109dc565b6115c76000613436565b565b6115ff6040805160c08101825260008082526020820181905291810182905260608101829052608081018290529060a082015290565b6001600160601b031982166000908152600a6020908152604091829020825160c0810184528154815260018201549281019290925260028101546001600160401b0381169383019390935263ffffffff600160401b8404811660608401526c010000000000000000000000008404166080830152909160a083019060ff600160801b9091041660048111156116965761169661457f565b60048111156116a7576116a761457f565b90525092915050565b6040517fb4e671f400000000000000000000000000000000000000000000000000000000815273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063b4e671f490611703906008908590600401614f57565b60006040518083038186803b15801561171b57600080fd5b505af415801561172f573d6000803e3d6000fd5b5050505050565b6040517f4fd7d4860000000000000000000000000000000000000000000000000000000081526008600482015260248101849052604481018390526064810182905273__$0f118c52967a3847a37f0a2ef02ffcee04$__90634fd7d48690608401610736565b600073__$a0a90fa014aeccc935ad103f88ed15a604$__639d7ae13486866117c2612668565b6040518463ffffffff1660e01b81526004016117e0939291906148c6565b60206040518083038186803b1580156117f857600080fd5b505af415801561180c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183091906149c1565b905061188061184260208701876149da565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508792508691506134939050565b6001600160601b031982166000908152600a602052604090206002810154600160801b900460ff1660018160048111156118bc576118bc61457f565b14806118d9575060028160048111156118d7576118d761457f565b145b61194b5760405162461bcd60e51b815260206004820152602a60248201527f57616c6c6574206d75737420626520696e204c697665206f72204d6f76696e6760448201527f467564732073746174650000000000000000000000000000000000000000000060648201526084016109dc565b600061199961195d60408a018a6149da565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250899250613693915050565b60608101519091506001600160401b031615611a195783816040015182606001516040516020016119f79392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f1981840301815291905280516020909101206001840155611a21565b600060018401555b8051600284018054600090611a409084906001600160401b0316614f6b565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe8585604051611aaa9291906001600160601b0319929092168252602082015260400190565b60405180910390a180516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063392aee4390602401600060405180830381600087803b158015611b3857600080fd5b505af1158015611b4c573d6000803e3d6000fd5b5050505060208101516040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526001600160401b0390921660248201527f0000000000000000000000000000000000000000000000000000000000000000909116906356a6d9ef90604401600060405180830381600087803b158015611c0357600080fd5b505af1158015611c17573d6000803e3d6000fd5b505050505050505050505050565b6001600160601b031985166000908152600a6020526040902060016002820154600160801b900460ff166004811115611c6057611c6061457f565b14611cad5760405162461bcd60e51b815260206004820152601c60248201527f57616c6c6574206d75737420626520696e204c6976652073746174650000000060448201526064016109dc565b600181015480611d255760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c6560448201527f740000000000000000000000000000000000000000000000000000000000000060648201526084016109dc565b808635611d386040890160208a01614a20565b611d4860608a0160408b01614a3b565b604051602001611d859392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014611de85760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016109dc565b6000611e1a600060c01b8787604051602001611e0693929190614f93565b60405160208183030381529060405261309a565b90506000815111611e935760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e64617264207479706500000000000000000000000000000000000060648201526084016109dc565b808051906020012088604051602001611ebc91906001600160601b031991909116815260140190565b604051602081830303815290604052805190602001201415611f465760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b4800000000000000000060648201526084016109dc565b6001546001600160401b03600160801b90910481169085161015611fac5760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c000000000060448201526064016109dc565b6000888787604051602001611fc393929190614fb7565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff16156120945760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a4016109dc565b600154600090600160c01b90046001600160401b03166120b55760006120d2565b6001546120d290600160c01b90046001600160401b031687614f31565b6002549091506001600160401b03166120eb8288614f6b565b6002870180546000906121089084906001600160401b0316614fdb565b82546101009290920a6001600160401b03818102199093169183160217909155600288015416905061214060608c0160408d01614a3b565b6001600160401b031610156121975760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e64730000000000000060448201526064016109dc565b6040805160a081018252338082526001600160401b03808b1660208085019182528783168587019081528784166060870190815263ffffffff4281166080890190815260008d81526006909552938990209751885495518716600160a01b026001600160e01b03199096166001600160a01b03919091161794909417875590516001909601805491519251909316600160801b027fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff928516600160401b027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216969094169590951794909417939093161790915590517f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d95916122c7918e918d918d91908d9089908990615006565b60405180910390a16040517f7c6db49c0000000000000000000000000000000000000000000000000000000081523360048201523060248201526001600160401b03881660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637c6db49c90606401600060405180830381600087803b15801561235e57600080fd5b505af1158015612372573d6000803e3d6000fd5b505050505050505050505050505050565b6000546001600160a01b031633146123dd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109dc565b6001600160a01b0381166124595760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016109dc565b61246281613436565b50565b6000546001600160a01b031633146124bf5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109dc565b6040517f041aee990000000000000000000000000000000000000000000000000000000081526008600482015263ffffffff8516602482015273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063041aee999060440160006040518083038186803b15801561252f57600080fd5b505af4158015612543573d6000803e3d6000fd5b50506040517f998b564c000000000000000000000000000000000000000000000000000000008152600860048201526001600160401b0380871660248301528516604482015273__$0f118c52967a3847a37f0a2ef02ffcee04$__925063998b564c915060640160006040518083038186803b1580156125c257600080fd5b505af41580156125d6573d6000803e3d6000fd5b50506040517f45d9969c0000000000000000000000000000000000000000000000000000000081526008600482015263ffffffff8416602482015273__$0f118c52967a3847a37f0a2ef02ffcee04$__92506345d9969c915060440160006040518083038186803b15801561264a57600080fd5b505af415801561265e573d6000803e3d6000fd5b5050505050505050565b61268c60405180606001604052806000815260200160008152602001600081525090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663113764be6040518163ffffffff1660e01b815260040160206040518083038186803b1580156126e557600080fd5b505afa1580156126f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271d91906149c1565b8160000181815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b15801561277f57600080fd5b505afa158015612793573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b791906149c1565b60208201527f0000000000000000000000000000000000000000000000000000000000000000604082015290565b60008060006127f384613ca8565b9150508060011461286c5760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f757470757400000000000000000000000000000000000000000060648201526084016109dc565b60006128788582612ecf565b9050612883816133c0565b925060006128908261309a565b905080516014146129095760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f766520323020627974657300000000000000000000000000000000000000000060648201526084016109dc565b60208101519450505050915091565b6129436040518060800160405280600081526020016060815260200160608152602001606081525090565b815115156000808061295487613ca8565b90925090506000612966836001614af4565b9050841561297e57612979600183614b0c565b612980565b815b6001600160401b0381111561299757612997614a56565b6040519080825280602002602001820160405280156129c0578160200160208202803683370190505b5060208701819052516001600160401b038111156129e0576129e0614a56565b604051908082528060200260200182016040528015612a09578160200160208202803683370190505b5060408701526020860151516001600160401b03811115612a2c57612a2c614a56565b604051908082528060200260200182016040528015612a55578160200160208202803683370190505b5060608701526000805b83811015612d96576000806000612a768d87613cbf565b9250925092506000600560008585604051602001612aab92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615612ce7576001810154600160e01b900463ffffffff1615612b465760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016109dc565b8b6020015151861415612bc15760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016109dc565b6001810180547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b4263ffffffff1602179055805460208d015180516001600160a01b039092169188908110612c1a57612c1a614b23565b6001600160a01b039290921660209283029190910190910152805460408d01518051600160a01b9092046001600160401b03169188908110612c5e57612c5e614b23565b6020026020010181815250508b604001518681518110612c8057612c80614b23565b60200260200101518c600001818151612c999190614af4565b905250600181015460608d01518051600160a01b9092046001600160401b03169188908110612cca57612cca614b23565b602090810291909101015285612cdf81614b39565b965050612d73565b8915158b151514158015612cfb57508c5184145b15612d2b578c604001516001600160401b03168c600001818151612d1f9190614af4565b90525060019950612d73565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e7075742074797065000000000000000000000000000060448201526064016109dc565b612d7d8288614af4565b9650505050508080612d8e90614b39565b915050612a5f565b5060008111612e0d5760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f7369740000000000000000000000000060648201526084016109dc565b84151586151514612e865760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016109dc565b5050505050505b92915050565b60008080612ea18587614b0c565b9050612ead8482615069565b915083612eba8383614b0c565b612ec4919061507d565b925050935093915050565b6060600080612edd85613ca8565b9092509050600019821415612f3f5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016109dc565b808410612f8e5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016109dc565b600080612f9c846001614af4565b905060005b8681101561302557612fb38883613d17565b92506000198314156130075760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016109dc565b6130118383614af4565b91508061301d81614b39565b915050612fa1565b506130308782613d17565b91506000198214156130845760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016109dc565b61308f878284613d86565b979650505050505050565b60606000826008815181106130b1576130b1614b23565b0160200151835160f89190911c91506130cb826009615091565b60ff16146130e9575050604080516020810190915260008152919050565b826009815181106130fc576130fc614b23565b016020015160f81c6131a25760028160ff16101561312a575050604080516020810190915260008152919050565b600083600a8151811061313f5761313f614b23565b016020015160f81c90506131546002836150b6565b60ff1681141580613172575080602014158015613172575080601414155b1561318e57505060408051602081019091526000815292915050565b61319a84600b83613d86565b949350505050565b60006131af846008613367565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff00000000000000000000000000000000000000000000000000000000008216141561328c5783600b8151811061320e5761320e614b23565b60209101015160f81c60141415806132635750613239600285516132329190614b0c565b8590613367565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b1561327f57505060408051602081019091526000815292915050565b61319a84600c6014613d86565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000821614156133295783600185516132e59190614b0c565b815181106132f5576132f5614b23565b60209101015160f81c60871461331c57505060408051602081019091526000815292915050565b61319a84600b6014613d86565b505050604080516020810190915260008152919050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b60006133768383016020015190565b9392505050565b600081516000141561339157506000919050565b506020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806133cc83613e50565b60c01c9050600061319a8264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160601b031981166000908152600a6020526040902060010154806134fd5760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c657400000060448201526064016109dc565b8083356135106040860160208701614a20565b6135206060870160408801614a3b565b60405160200161355d9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146135c05760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016109dc565b6000806135cc86613e5c565b90925090508435821480156135fb575063ffffffff81166135f36040870160208801614a20565b63ffffffff16145b6107ec5760405162461bcd60e51b815260206004820152604160248201527f526564656d7074696f6e207472616e73616374696f6e20696e707574206d757360448201527f7420706f696e7420746f207468652077616c6c65742773206d61696e2055545860648201527f4f00000000000000000000000000000000000000000000000000000000000000608482015260a4016109dc565b604080516080810182526000808252602082018190529181018290526060810182905290806136c185613ca8565b909250905060006136d3836001614af4565b604080517f1976a914000000000000000000000000000000000000000000000000000000006020808301919091526001600160601b031989166024830181905261222b60f21b60388401528351601a818503018152603a840185528051908301207f1600140000000000000000000000000000000000000000000000000000000000605a850152605d8401919091528351605181850301815260719093019093528151910120919250906000805b85811015613c315760006137958b87613d17565b905060006137a48c8884613d86565b905060006137b1826133c0565b905060006137cf60088085516137c79190614b0c565b859190613d86565b90508b606001516001600160401b0316600014801561380257508051602082012088148061380257508051602082012087145b801561381757506000826001600160401b0316115b1561383c5763ffffffff851660408d01526001600160401b03821660608d0152613c0e565b60008d826040516020016138519291906150d9565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff1615613a5b576000818152600660205260408120600181015481549192916138c3916001600160401b0390811691600160a01b900416614f6b565b60018301549091506001600160401b03808716916138ea91600160401b9091041683614f6b565b6001600160401b0316111580156139135750806001600160401b0316856001600160401b031611155b6139ab5760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a4016109dc565b808f6000018181516139bd9190614fdb565b9150906001600160401b031690816001600160401b0316815250508160010160009054906101000a90046001600160401b03168f602001818151613a019190614fdb565b6001600160401b0316905250600083815260066020526040902080546001600160e01b0319168155600101805473ffffffffffffffffffffffffffffffffffffffff1916905588613a5181614b39565b9950505050613c0c565b60008181526007602052604090206001810154600160801b900463ffffffff16613aec5760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016109dc565b60018101548154600091613b14916001600160401b0391821691600160a01b90910416614f6b565b60018301549091506001600160401b0380871691613b3b91600160401b9091041683614f6b565b6001600160401b031611158015613b645750806001600160401b0316856001600160401b031611155b613bfc5760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a4016109dc565b88613c0681614b39565b99505050505b505b613c18848a614af4565b9850505050508080613c2990614b39565b915050613781565b5060008111612e865760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e000000000060648201526084016109dc565b600080613cb6836000613f11565b91509150915091565b60008080613ccd8585613367565b9250613d02613cdc868661408d565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b9150613d0e85856140a4565b90509250925092565b6000613d24826009614af4565b83511015613d355750600019612e8d565b600080613d4c85613d47866008614af4565b613f11565b9092509050600019821415613d675760001992505050612e8d565b80613d73836009614af4565b613d7d9190614af4565b95945050505050565b606081613da25750604080516020810190915260008152613376565b6000613dae8385614af4565b90508381118015613dc0575080855110155b613e0c5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016109dc565b604051915082604083010160405282825283850182038460208701018481015b80821015613e4557815183830152602082019150613e2c565b505050509392505050565b6000612e8d8282613367565b6000806000613e6a84613ca8565b91505080600114613ee35760405162461bcd60e51b815260206004820152602f60248201527f526564656d7074696f6e207472616e73616374696f6e206d757374206861766560448201527f20612073696e676c6520696e707574000000000000000000000000000000000060648201526084016109dc565b6000613eef85826140ef565b9050613efa816142a4565b9350613f08613cdc826142b1565b92505050915091565b6000806000613f2085856142be565b905060ff8116613f52576000858581518110613f3e57613f3e614b23565b016020015190935060f81c91506140869050565b83613f5e826001615091565b60ff16613f6b9190614af4565b85511015613f825760001960009250925050614086565b60008160ff1660021415613fc757613fbc613fa8613fa1876001614af4565b8890613367565b62ffff0060e882901c1660f89190911c1790565b61ffff16905061407c565b8160ff1660041415613ff157613fe4613cdc613fa1876001614af4565b63ffffffff16905061407c565b8160ff166008141561407c5761407061400e613fa1876001614af4565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b600061337661409d836020614af4565b8490613367565b60008060006140b3858561434a565b90925090506000198214156140ce5760001992505050612e8d565b806140da836025614af4565b6140e49190614af4565b613d7d906004614af4565b60606000806140fd85613ca8565b909250905060001982141561415f5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016109dc565b8084106141ae5760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e0000000000000000000000000000000060448201526064016109dc565b6000806141bc846001614af4565b905060005b86811015614245576141d388836140a4565b92506000198314156142275760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016109dc565b6142318383614af4565b91508061423d81614b39565b9150506141c1565b5061425087826140a4565b91506000198214156130845760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016109dc565b6020810151600090612e8d565b6000612e8d826020613367565b60008282815181106142d2576142d2614b23565b60209101015160f81c60ff14156142eb57506008612e8d565b8282815181106142fd576142fd614b23565b60209101015160f81c60fe141561431657506004612e8d565b82828151811061432857614328614b23565b60209101015160f81c60fd141561434157506002612e8d565b50600092915050565b600080614358836025614af4565b8451101561436d575060001990506000614086565b60008061437f86613d47876024614af4565b9097909650945050505050565b60006020828403121561439e57600080fd5b5035919050565b6000806000606084860312156143ba57600080fd5b505081359360208301359350604090920135919050565b80356001600160601b0319811681146143e957600080fd5b919050565b60006060828403121561440057600080fd5b50919050565b6000806080838503121561441957600080fd5b614422836143d1565b915061443184602085016143ee565b90509250929050565b60006080828403121561440057600080fd5b600080600060a0848603121561446157600080fd5b83356001600160401b038082111561447857600080fd5b6144848783880161443a565b9450602086013591508082111561449a57600080fd5b506144a7868287016143ee565b925050613d0e85604086016143ee565b6000808284036101008112156144cc57600080fd5b83356001600160401b038111156144e257600080fd5b6144ee8682870161443a565b93505060e0601f198201121561450357600080fd5b506020830190509250929050565b80356001600160a01b03811681146143e957600080fd5b6000806040838503121561453b57600080fd5b61454483614511565b91506020830135801515811461455957600080fd5b809150509250929050565b60006020828403121561457657600080fd5b613376826143d1565b634e487b7160e01b600052602160045260246000fd5b600060c08201905082518252602083015160208301526001600160401b036040840151166040830152606083015163ffffffff8082166060850152806080860151166080850152505060a08301516005811061460157634e487b7160e01b600052602160045260246000fd5b8060a08401525092915050565b60006060828403121561462057600080fd5b61337683836143ee565b60008060008060c0858703121561464057600080fd5b84356001600160401b038082111561465757600080fd5b6146638883890161443a565b9550602087013591508082111561467957600080fd5b50614686878288016143ee565b93505061469686604087016143ee565b91506146a460a086016143d1565b905092959194509250565b80356001600160401b03811681146143e957600080fd5b600080600080600060c086880312156146de57600080fd5b6146e7866143d1565b94506146f687602088016143ee565b935060808601356001600160401b038082111561471257600080fd5b818801915088601f83011261472657600080fd5b81358181111561473557600080fd5b89602082850101111561474757600080fd5b60208301955080945050505061475f60a087016146af565b90509295509295909350565b60006020828403121561477d57600080fd5b61337682614511565b803563ffffffff811681146143e957600080fd5b600080600080608085870312156147b057600080fd5b6147b985614786565b93506147c7602086016146af565b92506147d5604086016146af565b91506146a460608601614786565b8035825263ffffffff6147f860208301614786565b1660208301526001600160401b03614812604083016146af565b1660408301525050565b8381526001600160601b03198316602082015260a0810161319a60408301846147e3565b80356001600160e01b0319811681146143e957600080fd5b6000808335601e1984360301811261486f57600080fd5b83016020810192503590506001600160401b0381111561488e57600080fd5b80360383131561408657600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60a0815260006001600160e01b0319806148df87614840565b1660a08401526148f26020870187614858565b608060c08601526149086101208601828461489d565b9150506149186040880188614858565b858303609f190160e087015261492f83828461489d565b925050508161494060608901614840565b1661010085015283810360208501526149598687614858565b92506060825261496d60608301848361489d565b925050602086013560208201526149876040870187614858565b828403604084015261499a84828461489d565b94505050505061319a60408301848051825260208082015190830152604090810151910152565b6000602082840312156149d357600080fd5b5051919050565b6000808335601e198436030181126149f157600080fd5b8301803591506001600160401b03821115614a0b57600080fd5b60200191503681900382131561408657600080fd5b600060208284031215614a3257600080fd5b61337682614786565b600060208284031215614a4d57600080fd5b613376826146af565b634e487b7160e01b600052604160045260246000fd5b600060608284031215614a7e57600080fd5b604051606081018181106001600160401b0382111715614aae57634e487b7160e01b600052604160045260246000fd5b60405282358152614ac160208401614786565b6020820152614ad2604084016146af565b60408201529392505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115614b0757614b07614ade565b500190565b600082821015614b1e57614b1e614ade565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415614b4d57614b4d614ade565b5060010190565b604080825283519082018190526000906020906060840190828701845b82811015614b965781516001600160a01b031684529284019290840190600101614b71565b5050508381038285015284518082528583019183019060005b81811015614bcb57835183529284019291840191600101614baf565b5090979650505050505050565b600060208284031215614bea57600080fd5b81356001600160c01b03198116811461337657600080fd5b600060208284031215614c1457600080fd5b61337682614840565b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f080000000000000000000000000000000000000000000000000000000000000060168201526001600160c01b031985166017820152607560f81b601f8201526000614cf1614ce4614cbb602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f63000000000000000000000000000000000000000000000000000000000000006015820152614db0614ce4614cbb614c92614d87601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b60058201529050614e86614e5d60068301614d5e565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000815160005b81811015614eb35760208185018101518683015201614e99565b81811115614ec2576000828601525b509290920192915050565b60006133768284614e92565b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680614f4b57614f4b614f1b565b92169190910492915050565b8281526080810161337660208301846147e3565b60006001600160401b0383811690831681811015614f8b57614f8b614ade565b039392505050565b6001600160c01b031984168152818360088301376000910160080190815292915050565b6001600160601b031984168152818360148301376000910160140190815292915050565b60006001600160401b03808316818516808303821115614ffd57614ffd614ade565b01949350505050565b6bffffffffffffffffffffffff198816815260c06020820152600061502f60c08301888a61489d565b6001600160a01b03969096166040830152506001600160401b039384166060820152918316608083015290911660a0909101529392505050565b60008261507857615078614f1b565b500690565b60008261508c5761508c614f1b565b500490565b600060ff821660ff84168060ff038211156150ae576150ae614ade565b019392505050565b600060ff821660ff8416808210156150d0576150d0614ade565b90039392505050565b6001600160601b031983168152600061319a6014830184614e9256fea2646970667358221220e15ae8692e57acd42a0a97b49487055a9333e7645a8a5236534a5fb3db6abed064736f6c63430008090033",
|
|
1197
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80638da5cb5b1161010f578063b59589d1116100a2578063e53c0b5511610071578063e53c0b5514610668578063e95eb7a81461069b578063f2fde38b146106b5578063fd562080146106c857600080fd5b8063b59589d1146105fa578063bdf9fca914610621578063cb7f3a091461063b578063d6eccdf01461065557600080fd5b8063a588f059116100de578063a588f0591461050c578063a8fa0f421461051f578063b02c43d014610532578063b34b3216146105e757600080fd5b80638da5cb5b146104755780638dd0f79a146104865780638fa4ad28146104d9578063a145e2d5146104f957600080fd5b806359a9d90a1161018757806361d027b31161015657806361d027b3146103d8578063715018a61461041757806376cdb03b1461041f578063793bb4731461044657600080fd5b806359a9d90a146103855780635afb143c146103985780635c0b4812146103b257806360d712fc146103c557600080fd5b80631fff4e70116101c35780631fff4e701461031f5780632bb818c2146103365780633dce98121461035d578063575e42791461037257600080fd5b806303d952f7146101ea578063079bf52c146102955780630b6ba19d146102c0575b600080fd5b6102496101f836600461438c565b600660205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b604080516001600160a01b0390961686526001600160401b0394851660208701529284169285019290925291909116606083015263ffffffff16608082015260a0015b60405180910390f35b6001546102a8906001600160401b031681565b6040516001600160401b03909116815260200161028c565b6102496102ce36600461438c565b600760205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b61032860035481565b60405190815260200161028c565b6103287f000000000000000000000000000000000000000000000000000000000000000081565b61037061036b3660046143a5565b6106db565b005b610370610380366004614406565b61076b565b61037061039336600461444c565b6107f4565b6000546102a890600160a01b90046001600160401b031681565b6103706103c03660046144b7565b610db5565b6103706103d3366004614528565b6114aa565b6103ff7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161028c565b610370611563565b6103ff7f000000000000000000000000000000000000000000000000000000000000000081565b6009546c01000000000000000000000000900460601b6040516001600160601b0319909116815260200161028c565b6000546001600160a01b03166103ff565b6008546009546040805163ffffffff600160a01b8504811682526001600160401b03600160c01b9095048516602083015293831691810191909152600160401b909104909116606082015260800161028c565b6104ec6104e7366004614564565b6115c9565b60405161028c9190614595565b61037061050736600461460e565b6116b0565b6002546102a8906001600160401b031681565b61037061052d3660046143a5565b611736565b61059761054036600461438c565b600560205260009081526040902080546001909101546001600160a01b03808316926001600160401b03600160a01b80830482169463ffffffff600160e01b94859004811695821694928204909316929190041686565b604080516001600160a01b0397881681526001600160401b03968716602082015263ffffffff958616918101919091529590921660608601529290921660808401521660a082015260c00161028c565b6103706105f536600461462a565b61179c565b6103ff7f000000000000000000000000000000000000000000000000000000000000000081565b6001546102a890600160801b90046001600160401b031681565b6001546102a890600160401b90046001600160401b031681565b6103706106633660046146c6565b611c25565b61068b61067636600461476b565b60046020526000908152604090205460ff1681565b604051901515815260200161028c565b6001546102a890600160c01b90046001600160401b031681565b6103706106c336600461476b565b612383565b6103706106d636600461479a565b612465565b6040517f1803c09e00000000000000000000000000000000000000000000000000000000815260086004820152602481018390526044810182905273__$0f118c52967a3847a37f0a2ef02ffcee04$__90631803c09e906064015b60006040518083038186803b15801561074e57600080fd5b505af4158015610762573d6000803e3d6000fd5b50505050505050565b6040517f9655f02b00000000000000000000000000000000000000000000000000000000815273__$0f118c52967a3847a37f0a2ef02ffcee04$__90639655f02b906107c0906008908690869060040161481c565b60006040518083038186803b1580156107d857600080fd5b505af41580156107ec573d6000803e3d6000fd5b505050505050565b600073__$a0a90fa014aeccc935ad103f88ed15a604$__639d7ae134858561081a612668565b6040518463ffffffff1660e01b8152600401610838939291906148c6565b60206040518083038186803b15801561085057600080fd5b505af4158015610864573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088891906149c1565b90506000806108d761089d60408801886149da565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506127e592505050565b6001600160601b031982166000908152600a6020908152604080832081516060810183528481529283018490529082019290925260018201549395509193509180156109f75780873561093060408a0160208b01614a20565b61094060608b0160408c01614a3b565b60405160200161097d9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146109e55760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064015b60405180910390fd5b6109f436889003880188614a6c565b91505b6000610a45610a0960208c018c6149da565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250612918915050565b905060008080610a688460000151896001600160401b0316866040015151612e93565b6001549193509150600160401b90046001600160401b0316610a8a8284614af4565b1115610ad85760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e2066656520697320746f6f2068696768000000000060448201526064016109dc565b60005b846040015151811015610bc65760006001866040015151610afc9190614b0c565b8214610b085783610b12565b610b128385614af4565b90508086606001518381518110610b2b57610b2b614b23565b602002602001015187604001518481518110610b4957610b49614b23565b6020026020010151610b5b9190614b0c565b610b659190614b0c565b86604001518381518110610b7b57610b7b614b23565b60200260200101818152505085606001518281518110610b9d57610b9d614b23565b602002602001015185610bb09190614af4565b9450508080610bbe90614b39565b915050610adb565b5060408051602081018c90526000918101919091526001600160c01b031960c08a901b166044820152604c0160408051808303601f19018152828252805160209182012060018b01556001600160601b03198c16835282018c90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a1602084015160408086015190517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263266a123a92610cb992600401614b54565b600060405180830381600087803b158015610cd357600080fd5b505af1158015610ce7573d6000803e3d6000fd5b50506040517f5b86f5990000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018790527f0000000000000000000000000000000000000000000000000000000000000000169250635b86f5999150604401600060405180830381600087803b158015610d8e57600080fd5b505af1158015610da2573d6000803e3d6000fd5b5050505050505050505050505050505050565b6000610dc760e0830160c0840161476b565b6001600160a01b03161480610e09575060046000610deb60e0840160c0850161476b565b6001600160a01b0316815260208101919091526040016000205460ff165b610e555760405162461bcd60e51b815260206004820152601460248201527f5661756c74206973206e6f74207472757374656400000000000000000000000060448201526064016109dc565b6000610e67604083016020840161476b565b610e776060840160408501614bd8565b610e876080850160608601614564565b610e9760a0860160808701614564565b610ea760c0870160a08801614c02565b604051602001610ebb959493929190614c1d565b60408051601f1981840301815291905290506000610f2f610edf6020850185614a20565b63ffffffff16610ef260408701876149da565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050612ecf9050565b90506000610f3c8261309a565b9050805160141415610fc257610f5183613340565b6001600160601b031916610f66826000613367565b6001600160601b03191614610fbd5760405162461bcd60e51b815260206004820152601960248201527f57726f6e672032302d627974652073637269707420686173680000000000000060448201526064016109dc565b6110ba565b80516020141561107257600283604051610fdc9190614ecd565b602060405180830381855afa158015610ff9573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061101c91906149c1565b6110258261337d565b14610fbd5760405162461bcd60e51b815260206004820152601960248201527f57726f6e672033322d627974652073637269707420686173680000000000000060448201526064016109dc565b60405162461bcd60e51b815260206004820152601860248201527f57726f6e67207363726970742068617368206c656e677468000000000000000060448201526064016109dc565b600061111f6110cc6020880188614c02565b6110d960208901896149da565b6110e660408b018b6149da565b6110f660808d0160608e01614c02565b60405160200161110b96959493929190614ed9565b604051602081830303815290604052613399565b905060006005818361113460208a018a614a20565b60405160200161115b92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff16156111df5760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616c72656164792072657665616c6564000000000000000060448201526064016109dc565b60006111ea856133c0565b6000549091506001600160401b03600160a01b909104811690821610156112535760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616d6f756e7420746f6f20736d616c6c000000000000000060448201526064016109dc565b81547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b0383160217825561129a604088016020890161476b565b82546001600160a01b03919091167bffffffffffffffff000000000000000000000000000000000000000090911617600160e01b4263ffffffff16021782556112e960e0880160c0890161476b565b6001838101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039390931692909217909155546001600160401b031661132f576000611345565b600154611345906001600160401b031682614f31565b6001830180546001600160401b0392909216600160a01b027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff9092169190911790557fa7382159a693ed317a024daf0fd1ba30805cdf9928ee09550af517c516e2ef05836113b660208a018a614a20565b6113c660408b0160208c0161476b565b846113d760608d0160408e01614bd8565b6113e760808e0160608f01614564565b8d60800160208101906113fa9190614564565b8e60a001602081019061140d9190614c02565b8f60c0016020810190611420919061476b565b60408051998a5263ffffffff90981660208a01526001600160a01b03968716978901979097526001600160401b0390941660608801526001600160c01b031990921660808701526001600160601b031990811660a08701521660c08501526001600160e01b03191660e0840152166101008201526101200160405180910390a15050505050505050565b6000546001600160a01b031633146115045760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109dc565b6001600160a01b038216600081815260046020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6000546001600160a01b031633146115bd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109dc565b6115c76000613436565b565b6115ff6040805160c08101825260008082526020820181905291810182905260608101829052608081018290529060a082015290565b6001600160601b031982166000908152600a6020908152604091829020825160c0810184528154815260018201549281019290925260028101546001600160401b0381169383019390935263ffffffff600160401b8404811660608401526c010000000000000000000000008404166080830152909160a083019060ff600160801b9091041660048111156116965761169661457f565b60048111156116a7576116a761457f565b90525092915050565b6040517fb4e671f400000000000000000000000000000000000000000000000000000000815273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063b4e671f490611703906008908590600401614f57565b60006040518083038186803b15801561171b57600080fd5b505af415801561172f573d6000803e3d6000fd5b5050505050565b6040517f4fd7d4860000000000000000000000000000000000000000000000000000000081526008600482015260248101849052604481018390526064810182905273__$0f118c52967a3847a37f0a2ef02ffcee04$__90634fd7d48690608401610736565b600073__$a0a90fa014aeccc935ad103f88ed15a604$__639d7ae13486866117c2612668565b6040518463ffffffff1660e01b81526004016117e0939291906148c6565b60206040518083038186803b1580156117f857600080fd5b505af415801561180c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183091906149c1565b905061188061184260208701876149da565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508792508691506134939050565b6001600160601b031982166000908152600a602052604090206002810154600160801b900460ff1660018160048111156118bc576118bc61457f565b14806118d9575060028160048111156118d7576118d761457f565b145b61194b5760405162461bcd60e51b815260206004820152602a60248201527f57616c6c6574206d75737420626520696e204c697665206f72204d6f76696e6760448201527f467564732073746174650000000000000000000000000000000000000000000060648201526084016109dc565b600061199961195d60408a018a6149da565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250899250613693915050565b60608101519091506001600160401b031615611a195783816040015182606001516040516020016119f79392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f1981840301815291905280516020909101206001840155611a21565b600060018401555b8051600284018054600090611a409084906001600160401b0316614f6b565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe8585604051611aaa9291906001600160601b0319929092168252602082015260400190565b60405180910390a180516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063392aee4390602401600060405180830381600087803b158015611b3857600080fd5b505af1158015611b4c573d6000803e3d6000fd5b5050505060208101516040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526001600160401b0390921660248201527f0000000000000000000000000000000000000000000000000000000000000000909116906356a6d9ef90604401600060405180830381600087803b158015611c0357600080fd5b505af1158015611c17573d6000803e3d6000fd5b505050505050505050505050565b6001600160601b031985166000908152600a6020526040902060016002820154600160801b900460ff166004811115611c6057611c6061457f565b14611cad5760405162461bcd60e51b815260206004820152601c60248201527f57616c6c6574206d75737420626520696e204c6976652073746174650000000060448201526064016109dc565b600181015480611d255760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c6560448201527f740000000000000000000000000000000000000000000000000000000000000060648201526084016109dc565b808635611d386040890160208a01614a20565b611d4860608a0160408b01614a3b565b604051602001611d859392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014611de85760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016109dc565b6000611e1a600060c01b8787604051602001611e0693929190614f93565b60405160208183030381529060405261309a565b90506000815111611e935760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e64617264207479706500000000000000000000000000000000000060648201526084016109dc565b808051906020012088604051602001611ebc91906001600160601b031991909116815260140190565b604051602081830303815290604052805190602001201415611f465760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b4800000000000000000060648201526084016109dc565b6001546001600160401b03600160801b90910481169085161015611fac5760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c000000000060448201526064016109dc565b6000888787604051602001611fc393929190614fb7565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff16156120945760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a4016109dc565b600154600090600160c01b90046001600160401b03166120b55760006120d2565b6001546120d290600160c01b90046001600160401b031687614f31565b6002549091506001600160401b03166120eb8288614f6b565b6002870180546000906121089084906001600160401b0316614fdb565b82546101009290920a6001600160401b03818102199093169183160217909155600288015416905061214060608c0160408d01614a3b565b6001600160401b031610156121975760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e64730000000000000060448201526064016109dc565b6040805160a081018252338082526001600160401b03808b1660208085019182528783168587019081528784166060870190815263ffffffff4281166080890190815260008d81526006909552938990209751885495518716600160a01b026001600160e01b03199096166001600160a01b03919091161794909417875590516001909601805491519251909316600160801b027fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff928516600160401b027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216969094169590951794909417939093161790915590517f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d95916122c7918e918d918d91908d9089908990615006565b60405180910390a16040517f7c6db49c0000000000000000000000000000000000000000000000000000000081523360048201523060248201526001600160401b03881660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637c6db49c90606401600060405180830381600087803b15801561235e57600080fd5b505af1158015612372573d6000803e3d6000fd5b505050505050505050505050505050565b6000546001600160a01b031633146123dd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109dc565b6001600160a01b0381166124595760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016109dc565b61246281613436565b50565b6000546001600160a01b031633146124bf5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109dc565b6040517f041aee990000000000000000000000000000000000000000000000000000000081526008600482015263ffffffff8516602482015273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063041aee999060440160006040518083038186803b15801561252f57600080fd5b505af4158015612543573d6000803e3d6000fd5b50506040517f998b564c000000000000000000000000000000000000000000000000000000008152600860048201526001600160401b0380871660248301528516604482015273__$0f118c52967a3847a37f0a2ef02ffcee04$__925063998b564c915060640160006040518083038186803b1580156125c257600080fd5b505af41580156125d6573d6000803e3d6000fd5b50506040517f45d9969c0000000000000000000000000000000000000000000000000000000081526008600482015263ffffffff8416602482015273__$0f118c52967a3847a37f0a2ef02ffcee04$__92506345d9969c915060440160006040518083038186803b15801561264a57600080fd5b505af415801561265e573d6000803e3d6000fd5b5050505050505050565b61268c60405180606001604052806000815260200160008152602001600081525090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663113764be6040518163ffffffff1660e01b815260040160206040518083038186803b1580156126e557600080fd5b505afa1580156126f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271d91906149c1565b8160000181815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b15801561277f57600080fd5b505afa158015612793573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b791906149c1565b60208201527f0000000000000000000000000000000000000000000000000000000000000000604082015290565b60008060006127f384613ca8565b9150508060011461286c5760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f757470757400000000000000000000000000000000000000000060648201526084016109dc565b60006128788582612ecf565b9050612883816133c0565b925060006128908261309a565b905080516014146129095760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f766520323020627974657300000000000000000000000000000000000000000060648201526084016109dc565b60208101519450505050915091565b6129436040518060800160405280600081526020016060815260200160608152602001606081525090565b815115156000808061295487613ca8565b90925090506000612966836001614af4565b9050841561297e57612979600183614b0c565b612980565b815b6001600160401b0381111561299757612997614a56565b6040519080825280602002602001820160405280156129c0578160200160208202803683370190505b5060208701819052516001600160401b038111156129e0576129e0614a56565b604051908082528060200260200182016040528015612a09578160200160208202803683370190505b5060408701526020860151516001600160401b03811115612a2c57612a2c614a56565b604051908082528060200260200182016040528015612a55578160200160208202803683370190505b5060608701526000805b83811015612d96576000806000612a768d87613cbf565b9250925092506000600560008585604051602001612aab92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615612ce7576001810154600160e01b900463ffffffff1615612b465760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016109dc565b8b6020015151861415612bc15760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016109dc565b6001810180547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b4263ffffffff1602179055805460208d015180516001600160a01b039092169188908110612c1a57612c1a614b23565b6001600160a01b039290921660209283029190910190910152805460408d01518051600160a01b9092046001600160401b03169188908110612c5e57612c5e614b23565b6020026020010181815250508b604001518681518110612c8057612c80614b23565b60200260200101518c600001818151612c999190614af4565b905250600181015460608d01518051600160a01b9092046001600160401b03169188908110612cca57612cca614b23565b602090810291909101015285612cdf81614b39565b965050612d73565b8915158b151514158015612cfb57508c5184145b15612d2b578c604001516001600160401b03168c600001818151612d1f9190614af4565b90525060019950612d73565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e7075742074797065000000000000000000000000000060448201526064016109dc565b612d7d8288614af4565b9650505050508080612d8e90614b39565b915050612a5f565b5060008111612e0d5760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f7369740000000000000000000000000060648201526084016109dc565b84151586151514612e865760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016109dc565b5050505050505b92915050565b60008080612ea18587614b0c565b9050612ead8482615069565b915083612eba8383614b0c565b612ec4919061507d565b925050935093915050565b6060600080612edd85613ca8565b9092509050600019821415612f3f5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016109dc565b808410612f8e5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016109dc565b600080612f9c846001614af4565b905060005b8681101561302557612fb38883613d17565b92506000198314156130075760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016109dc565b6130118383614af4565b91508061301d81614b39565b915050612fa1565b506130308782613d17565b91506000198214156130845760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016109dc565b61308f878284613d86565b979650505050505050565b60606000826008815181106130b1576130b1614b23565b0160200151835160f89190911c91506130cb826009615091565b60ff16146130e9575050604080516020810190915260008152919050565b826009815181106130fc576130fc614b23565b016020015160f81c6131a25760028160ff16101561312a575050604080516020810190915260008152919050565b600083600a8151811061313f5761313f614b23565b016020015160f81c90506131546002836150b6565b60ff1681141580613172575080602014158015613172575080601414155b1561318e57505060408051602081019091526000815292915050565b61319a84600b83613d86565b949350505050565b60006131af846008613367565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff00000000000000000000000000000000000000000000000000000000008216141561328c5783600b8151811061320e5761320e614b23565b60209101015160f81c60141415806132635750613239600285516132329190614b0c565b8590613367565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b1561327f57505060408051602081019091526000815292915050565b61319a84600c6014613d86565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000821614156133295783600185516132e59190614b0c565b815181106132f5576132f5614b23565b60209101015160f81c60871461331c57505060408051602081019091526000815292915050565b61319a84600b6014613d86565b505050604080516020810190915260008152919050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b60006133768383016020015190565b9392505050565b600081516000141561339157506000919050565b506020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806133cc83613e50565b60c01c9050600061319a8264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160601b031981166000908152600a6020526040902060010154806134fd5760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c657400000060448201526064016109dc565b8083356135106040860160208701614a20565b6135206060870160408801614a3b565b60405160200161355d9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146135c05760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016109dc565b6000806135cc86613e5c565b90925090508435821480156135fb575063ffffffff81166135f36040870160208801614a20565b63ffffffff16145b6107ec5760405162461bcd60e51b815260206004820152604160248201527f526564656d7074696f6e207472616e73616374696f6e20696e707574206d757360448201527f7420706f696e7420746f207468652077616c6c65742773206d61696e2055545860648201527f4f00000000000000000000000000000000000000000000000000000000000000608482015260a4016109dc565b604080516080810182526000808252602082018190529181018290526060810182905290806136c185613ca8565b909250905060006136d3836001614af4565b604080517f1976a914000000000000000000000000000000000000000000000000000000006020808301919091526001600160601b031989166024830181905261222b60f21b60388401528351601a818503018152603a840185528051908301207f1600140000000000000000000000000000000000000000000000000000000000605a850152605d8401919091528351605181850301815260719093019093528151910120919250906000805b85811015613c315760006137958b87613d17565b905060006137a48c8884613d86565b905060006137b1826133c0565b905060006137cf60088085516137c79190614b0c565b859190613d86565b90508b606001516001600160401b0316600014801561380257508051602082012088148061380257508051602082012087145b801561381757506000826001600160401b0316115b1561383c5763ffffffff851660408d01526001600160401b03821660608d0152613c0e565b60008d826040516020016138519291906150d9565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff1615613a5b576000818152600660205260408120600181015481549192916138c3916001600160401b0390811691600160a01b900416614f6b565b60018301549091506001600160401b03808716916138ea91600160401b9091041683614f6b565b6001600160401b0316111580156139135750806001600160401b0316856001600160401b031611155b6139ab5760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a4016109dc565b808f6000018181516139bd9190614fdb565b9150906001600160401b031690816001600160401b0316815250508160010160009054906101000a90046001600160401b03168f602001818151613a019190614fdb565b6001600160401b0316905250600083815260066020526040902080546001600160e01b0319168155600101805473ffffffffffffffffffffffffffffffffffffffff1916905588613a5181614b39565b9950505050613c0c565b60008181526007602052604090206001810154600160801b900463ffffffff16613aec5760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016109dc565b60018101548154600091613b14916001600160401b0391821691600160a01b90910416614f6b565b60018301549091506001600160401b0380871691613b3b91600160401b9091041683614f6b565b6001600160401b031611158015613b645750806001600160401b0316856001600160401b031611155b613bfc5760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a4016109dc565b88613c0681614b39565b99505050505b505b613c18848a614af4565b9850505050508080613c2990614b39565b915050613781565b5060008111612e865760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e000000000060648201526084016109dc565b600080613cb6836000613f11565b91509150915091565b60008080613ccd8585613367565b9250613d02613cdc868661408d565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b9150613d0e85856140a4565b90509250925092565b6000613d24826009614af4565b83511015613d355750600019612e8d565b600080613d4c85613d47866008614af4565b613f11565b9092509050600019821415613d675760001992505050612e8d565b80613d73836009614af4565b613d7d9190614af4565b95945050505050565b606081613da25750604080516020810190915260008152613376565b6000613dae8385614af4565b90508381118015613dc0575080855110155b613e0c5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016109dc565b604051915082604083010160405282825283850182038460208701018481015b80821015613e4557815183830152602082019150613e2c565b505050509392505050565b6000612e8d8282613367565b6000806000613e6a84613ca8565b91505080600114613ee35760405162461bcd60e51b815260206004820152602f60248201527f526564656d7074696f6e207472616e73616374696f6e206d757374206861766560448201527f20612073696e676c6520696e707574000000000000000000000000000000000060648201526084016109dc565b6000613eef85826140ef565b9050613efa816142a4565b9350613f08613cdc826142b1565b92505050915091565b6000806000613f2085856142be565b905060ff8116613f52576000858581518110613f3e57613f3e614b23565b016020015190935060f81c91506140869050565b83613f5e826001615091565b60ff16613f6b9190614af4565b85511015613f825760001960009250925050614086565b60008160ff1660021415613fc757613fbc613fa8613fa1876001614af4565b8890613367565b62ffff0060e882901c1660f89190911c1790565b61ffff16905061407c565b8160ff1660041415613ff157613fe4613cdc613fa1876001614af4565b63ffffffff16905061407c565b8160ff166008141561407c5761407061400e613fa1876001614af4565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b600061337661409d836020614af4565b8490613367565b60008060006140b3858561434a565b90925090506000198214156140ce5760001992505050612e8d565b806140da836025614af4565b6140e49190614af4565b613d7d906004614af4565b60606000806140fd85613ca8565b909250905060001982141561415f5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016109dc565b8084106141ae5760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e0000000000000000000000000000000060448201526064016109dc565b6000806141bc846001614af4565b905060005b86811015614245576141d388836140a4565b92506000198314156142275760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016109dc565b6142318383614af4565b91508061423d81614b39565b9150506141c1565b5061425087826140a4565b91506000198214156130845760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016109dc565b6020810151600090612e8d565b6000612e8d826020613367565b60008282815181106142d2576142d2614b23565b60209101015160f81c60ff14156142eb57506008612e8d565b8282815181106142fd576142fd614b23565b60209101015160f81c60fe141561431657506004612e8d565b82828151811061432857614328614b23565b60209101015160f81c60fd141561434157506002612e8d565b50600092915050565b600080614358836025614af4565b8451101561436d575060001990506000614086565b60008061437f86613d47876024614af4565b9097909650945050505050565b60006020828403121561439e57600080fd5b5035919050565b6000806000606084860312156143ba57600080fd5b505081359360208301359350604090920135919050565b80356001600160601b0319811681146143e957600080fd5b919050565b60006060828403121561440057600080fd5b50919050565b6000806080838503121561441957600080fd5b614422836143d1565b915061443184602085016143ee565b90509250929050565b60006080828403121561440057600080fd5b600080600060a0848603121561446157600080fd5b83356001600160401b038082111561447857600080fd5b6144848783880161443a565b9450602086013591508082111561449a57600080fd5b506144a7868287016143ee565b925050613d0e85604086016143ee565b6000808284036101008112156144cc57600080fd5b83356001600160401b038111156144e257600080fd5b6144ee8682870161443a565b93505060e0601f198201121561450357600080fd5b506020830190509250929050565b80356001600160a01b03811681146143e957600080fd5b6000806040838503121561453b57600080fd5b61454483614511565b91506020830135801515811461455957600080fd5b809150509250929050565b60006020828403121561457657600080fd5b613376826143d1565b634e487b7160e01b600052602160045260246000fd5b600060c08201905082518252602083015160208301526001600160401b036040840151166040830152606083015163ffffffff8082166060850152806080860151166080850152505060a08301516005811061460157634e487b7160e01b600052602160045260246000fd5b8060a08401525092915050565b60006060828403121561462057600080fd5b61337683836143ee565b60008060008060c0858703121561464057600080fd5b84356001600160401b038082111561465757600080fd5b6146638883890161443a565b9550602087013591508082111561467957600080fd5b50614686878288016143ee565b93505061469686604087016143ee565b91506146a460a086016143d1565b905092959194509250565b80356001600160401b03811681146143e957600080fd5b600080600080600060c086880312156146de57600080fd5b6146e7866143d1565b94506146f687602088016143ee565b935060808601356001600160401b038082111561471257600080fd5b818801915088601f83011261472657600080fd5b81358181111561473557600080fd5b89602082850101111561474757600080fd5b60208301955080945050505061475f60a087016146af565b90509295509295909350565b60006020828403121561477d57600080fd5b61337682614511565b803563ffffffff811681146143e957600080fd5b600080600080608085870312156147b057600080fd5b6147b985614786565b93506147c7602086016146af565b92506147d5604086016146af565b91506146a460608601614786565b8035825263ffffffff6147f860208301614786565b1660208301526001600160401b03614812604083016146af565b1660408301525050565b8381526001600160601b03198316602082015260a0810161319a60408301846147e3565b80356001600160e01b0319811681146143e957600080fd5b6000808335601e1984360301811261486f57600080fd5b83016020810192503590506001600160401b0381111561488e57600080fd5b80360383131561408657600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60a0815260006001600160e01b0319806148df87614840565b1660a08401526148f26020870187614858565b608060c08601526149086101208601828461489d565b9150506149186040880188614858565b858303609f190160e087015261492f83828461489d565b925050508161494060608901614840565b1661010085015283810360208501526149598687614858565b92506060825261496d60608301848361489d565b925050602086013560208201526149876040870187614858565b828403604084015261499a84828461489d565b94505050505061319a60408301848051825260208082015190830152604090810151910152565b6000602082840312156149d357600080fd5b5051919050565b6000808335601e198436030181126149f157600080fd5b8301803591506001600160401b03821115614a0b57600080fd5b60200191503681900382131561408657600080fd5b600060208284031215614a3257600080fd5b61337682614786565b600060208284031215614a4d57600080fd5b613376826146af565b634e487b7160e01b600052604160045260246000fd5b600060608284031215614a7e57600080fd5b604051606081018181106001600160401b0382111715614aae57634e487b7160e01b600052604160045260246000fd5b60405282358152614ac160208401614786565b6020820152614ad2604084016146af565b60408201529392505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115614b0757614b07614ade565b500190565b600082821015614b1e57614b1e614ade565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415614b4d57614b4d614ade565b5060010190565b604080825283519082018190526000906020906060840190828701845b82811015614b965781516001600160a01b031684529284019290840190600101614b71565b5050508381038285015284518082528583019183019060005b81811015614bcb57835183529284019291840191600101614baf565b5090979650505050505050565b600060208284031215614bea57600080fd5b81356001600160c01b03198116811461337657600080fd5b600060208284031215614c1457600080fd5b61337682614840565b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f080000000000000000000000000000000000000000000000000000000000000060168201526001600160c01b031985166017820152607560f81b601f8201526000614cf1614ce4614cbb602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f63000000000000000000000000000000000000000000000000000000000000006015820152614db0614ce4614cbb614c92614d87601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b60058201529050614e86614e5d60068301614d5e565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000815160005b81811015614eb35760208185018101518683015201614e99565b81811115614ec2576000828601525b509290920192915050565b60006133768284614e92565b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680614f4b57614f4b614f1b565b92169190910492915050565b8281526080810161337660208301846147e3565b60006001600160401b0383811690831681811015614f8b57614f8b614ade565b039392505050565b6001600160c01b031984168152818360088301376000910160080190815292915050565b6001600160601b031984168152818360148301376000910160140190815292915050565b60006001600160401b03808316818516808303821115614ffd57614ffd614ade565b01949350505050565b6bffffffffffffffffffffffff198816815260c06020820152600061502f60c08301888a61489d565b6001600160a01b03969096166040830152506001600160401b039384166060820152918316608083015290911660a0909101529392505050565b60008261507857615078614f1b565b500690565b60008261508c5761508c614f1b565b500490565b600060ff821660ff84168060ff038211156150ae576150ae614ade565b019392505050565b600060ff821660ff8416808210156150d0576150d0614ade565b90039392505050565b6001600160601b031983168152600061319a6014830184614e9256fea2646970667358221220e15ae8692e57acd42a0a97b49487055a9333e7645a8a5236534a5fb3db6abed064736f6c63430008090033",
|
|
865
1198
|
"linkReferences": {
|
|
866
1199
|
"contracts/bridge/BitcoinTx.sol": {
|
|
867
1200
|
"BitcoinTx": [
|
|
868
1201
|
{
|
|
869
1202
|
"length": 20,
|
|
870
|
-
"start":
|
|
1203
|
+
"start": 3289
|
|
1204
|
+
},
|
|
1205
|
+
{
|
|
1206
|
+
"length": 20,
|
|
1207
|
+
"start": 7297
|
|
1208
|
+
}
|
|
1209
|
+
]
|
|
1210
|
+
},
|
|
1211
|
+
"contracts/bridge/Wallets.sol": {
|
|
1212
|
+
"Wallets": [
|
|
1213
|
+
{
|
|
1214
|
+
"length": 20,
|
|
1215
|
+
"start": 478
|
|
1216
|
+
},
|
|
1217
|
+
{
|
|
1218
|
+
"length": 20,
|
|
1219
|
+
"start": 586
|
|
871
1220
|
},
|
|
872
1221
|
{
|
|
873
1222
|
"length": 20,
|
|
874
|
-
"start":
|
|
1223
|
+
"start": 707
|
|
1224
|
+
},
|
|
1225
|
+
{
|
|
1226
|
+
"length": 20,
|
|
1227
|
+
"start": 817
|
|
1228
|
+
},
|
|
1229
|
+
{
|
|
1230
|
+
"length": 20,
|
|
1231
|
+
"start": 3065
|
|
1232
|
+
},
|
|
1233
|
+
{
|
|
1234
|
+
"length": 20,
|
|
1235
|
+
"start": 3188
|
|
1236
|
+
},
|
|
1237
|
+
{
|
|
1238
|
+
"length": 20,
|
|
1239
|
+
"start": 7097
|
|
1240
|
+
},
|
|
1241
|
+
{
|
|
1242
|
+
"length": 20,
|
|
1243
|
+
"start": 7259
|
|
1244
|
+
},
|
|
1245
|
+
{
|
|
1246
|
+
"length": 20,
|
|
1247
|
+
"start": 10715
|
|
1248
|
+
},
|
|
1249
|
+
{
|
|
1250
|
+
"length": 20,
|
|
1251
|
+
"start": 10860
|
|
1252
|
+
},
|
|
1253
|
+
{
|
|
1254
|
+
"length": 20,
|
|
1255
|
+
"start": 10996
|
|
875
1256
|
}
|
|
876
1257
|
]
|
|
877
1258
|
}
|
|
@@ -881,11 +1262,43 @@
|
|
|
881
1262
|
"BitcoinTx": [
|
|
882
1263
|
{
|
|
883
1264
|
"length": 20,
|
|
884
|
-
"start":
|
|
1265
|
+
"start": 2040
|
|
1266
|
+
},
|
|
1267
|
+
{
|
|
1268
|
+
"length": 20,
|
|
1269
|
+
"start": 6048
|
|
1270
|
+
}
|
|
1271
|
+
]
|
|
1272
|
+
},
|
|
1273
|
+
"contracts/bridge/Wallets.sol": {
|
|
1274
|
+
"Wallets": [
|
|
1275
|
+
{
|
|
1276
|
+
"length": 20,
|
|
1277
|
+
"start": 1816
|
|
1278
|
+
},
|
|
1279
|
+
{
|
|
1280
|
+
"length": 20,
|
|
1281
|
+
"start": 1939
|
|
1282
|
+
},
|
|
1283
|
+
{
|
|
1284
|
+
"length": 20,
|
|
1285
|
+
"start": 5848
|
|
1286
|
+
},
|
|
1287
|
+
{
|
|
1288
|
+
"length": 20,
|
|
1289
|
+
"start": 6010
|
|
1290
|
+
},
|
|
1291
|
+
{
|
|
1292
|
+
"length": 20,
|
|
1293
|
+
"start": 9466
|
|
1294
|
+
},
|
|
1295
|
+
{
|
|
1296
|
+
"length": 20,
|
|
1297
|
+
"start": 9611
|
|
885
1298
|
},
|
|
886
1299
|
{
|
|
887
1300
|
"length": 20,
|
|
888
|
-
"start":
|
|
1301
|
+
"start": 9747
|
|
889
1302
|
}
|
|
890
1303
|
]
|
|
891
1304
|
}
|