@gooddollar/goodprotocol 2.0.34-beta.3 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/artifacts/abis/Faucet.min.json +1 -1
  2. package/artifacts/abis/FuseFaucetV2.min.json +1 -1
  3. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +1 -1
  4. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.json +34 -2
  5. package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +1 -1
  6. package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.json +34 -2
  7. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  8. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.json +2 -2
  9. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  10. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.json +2 -2
  11. package/contracts/fuseFaucet/Faucet.sol +6 -0
  12. package/contracts/fuseFaucet/FuseFaucetV2.sol +10 -0
  13. package/contracts/utils/ProxyFactory1967.sol +19 -16
  14. package/hardhat.config.ts +25 -20
  15. package/package.json +1 -1
  16. package/releases/olddao.json +1 -1
  17. package/scripts/fv.ts +0 -2
  18. package/scripts/multichain-deploy/fulldeploy.sh +17 -17
  19. package/scripts/proposals/gip-25-xdc-upgrade-ubi.ts +443 -0
  20. package/scripts/upgrades/upgradeFaucet.ts +46 -0
  21. package/types/contracts/fuseFaucet/Faucet.ts +43 -0
  22. package/types/contracts/fuseFaucet/FuseFaucetV2.ts +43 -0
  23. package/types/factories/contracts/fuseFaucet/Faucet__factory.ts +33 -1
  24. package/types/factories/contracts/fuseFaucet/FuseFaucetV2__factory.ts +33 -1
  25. package/types/factories/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy__factory.ts +1 -1
  26. package/types/factories/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967__factory.ts +1 -1
  27. package/contracts/IQuoter.sol +0 -108
  28. package/scripts/multichain-deploy/verify.ts +0 -41
  29. package/scripts/proposals/gip-25-xdc-upgrade.ts +0 -438
@@ -31,6 +31,8 @@ export interface FaucetInterface extends utils.Interface {
31
31
  functions: {
32
32
  "DEFAULT_ADMIN_ROLE()": FunctionFragment;
33
33
  "RELAYER_ROLE()": FunctionFragment;
34
+ "banAddress(address)": FunctionFragment;
35
+ "bans(address)": FunctionFragment;
34
36
  "canTop(address)": FunctionFragment;
35
37
  "currentDay()": FunctionFragment;
36
38
  "dailyNewWalletsCount()": FunctionFragment;
@@ -76,6 +78,8 @@ export interface FaucetInterface extends utils.Interface {
76
78
  nameOrSignatureOrTopic:
77
79
  | "DEFAULT_ADMIN_ROLE"
78
80
  | "RELAYER_ROLE"
81
+ | "banAddress"
82
+ | "bans"
79
83
  | "canTop"
80
84
  | "currentDay"
81
85
  | "dailyNewWalletsCount"
@@ -125,6 +129,8 @@ export interface FaucetInterface extends utils.Interface {
125
129
  functionFragment: "RELAYER_ROLE",
126
130
  values?: undefined
127
131
  ): string;
132
+ encodeFunctionData(functionFragment: "banAddress", values: [string]): string;
133
+ encodeFunctionData(functionFragment: "bans", values: [string]): string;
128
134
  encodeFunctionData(functionFragment: "canTop", values: [string]): string;
129
135
  encodeFunctionData(
130
136
  functionFragment: "currentDay",
@@ -266,6 +272,8 @@ export interface FaucetInterface extends utils.Interface {
266
272
  functionFragment: "RELAYER_ROLE",
267
273
  data: BytesLike
268
274
  ): Result;
275
+ decodeFunctionResult(functionFragment: "banAddress", data: BytesLike): Result;
276
+ decodeFunctionResult(functionFragment: "bans", data: BytesLike): Result;
269
277
  decodeFunctionResult(functionFragment: "canTop", data: BytesLike): Result;
270
278
  decodeFunctionResult(functionFragment: "currentDay", data: BytesLike): Result;
271
279
  decodeFunctionResult(
@@ -512,6 +520,13 @@ export interface Faucet extends BaseContract {
512
520
 
513
521
  RELAYER_ROLE(overrides?: CallOverrides): Promise<[string]>;
514
522
 
523
+ banAddress(
524
+ _user: string,
525
+ overrides?: Overrides & { from?: string }
526
+ ): Promise<ContractTransaction>;
527
+
528
+ bans(arg0: string, overrides?: CallOverrides): Promise<[BigNumber]>;
529
+
515
530
  canTop(_user: string, overrides?: CallOverrides): Promise<[boolean]>;
516
531
 
517
532
  currentDay(overrides?: CallOverrides): Promise<[BigNumber]>;
@@ -664,6 +679,13 @@ export interface Faucet extends BaseContract {
664
679
 
665
680
  RELAYER_ROLE(overrides?: CallOverrides): Promise<string>;
666
681
 
682
+ banAddress(
683
+ _user: string,
684
+ overrides?: Overrides & { from?: string }
685
+ ): Promise<ContractTransaction>;
686
+
687
+ bans(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
688
+
667
689
  canTop(_user: string, overrides?: CallOverrides): Promise<boolean>;
668
690
 
669
691
  currentDay(overrides?: CallOverrides): Promise<BigNumber>;
@@ -816,6 +838,10 @@ export interface Faucet extends BaseContract {
816
838
 
817
839
  RELAYER_ROLE(overrides?: CallOverrides): Promise<string>;
818
840
 
841
+ banAddress(_user: string, overrides?: CallOverrides): Promise<void>;
842
+
843
+ bans(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
844
+
819
845
  canTop(_user: string, overrides?: CallOverrides): Promise<boolean>;
820
846
 
821
847
  currentDay(overrides?: CallOverrides): Promise<BigNumber>;
@@ -1031,6 +1057,13 @@ export interface Faucet extends BaseContract {
1031
1057
 
1032
1058
  RELAYER_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
1033
1059
 
1060
+ banAddress(
1061
+ _user: string,
1062
+ overrides?: Overrides & { from?: string }
1063
+ ): Promise<BigNumber>;
1064
+
1065
+ bans(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
1066
+
1034
1067
  canTop(_user: string, overrides?: CallOverrides): Promise<BigNumber>;
1035
1068
 
1036
1069
  currentDay(overrides?: CallOverrides): Promise<BigNumber>;
@@ -1179,6 +1212,16 @@ export interface Faucet extends BaseContract {
1179
1212
 
1180
1213
  RELAYER_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
1181
1214
 
1215
+ banAddress(
1216
+ _user: string,
1217
+ overrides?: Overrides & { from?: string }
1218
+ ): Promise<PopulatedTransaction>;
1219
+
1220
+ bans(
1221
+ arg0: string,
1222
+ overrides?: CallOverrides
1223
+ ): Promise<PopulatedTransaction>;
1224
+
1182
1225
  canTop(
1183
1226
  _user: string,
1184
1227
  overrides?: CallOverrides
@@ -28,6 +28,8 @@ import type {
28
28
 
29
29
  export interface FuseFaucetV2Interface extends utils.Interface {
30
30
  functions: {
31
+ "banAddress(address)": FunctionFragment;
32
+ "bans(address)": FunctionFragment;
31
33
  "canTop(address)": FunctionFragment;
32
34
  "currentDay()": FunctionFragment;
33
35
  "dailyNewWalletsCount()": FunctionFragment;
@@ -64,6 +66,8 @@ export interface FuseFaucetV2Interface extends utils.Interface {
64
66
 
65
67
  getFunction(
66
68
  nameOrSignatureOrTopic:
69
+ | "banAddress"
70
+ | "bans"
67
71
  | "canTop"
68
72
  | "currentDay"
69
73
  | "dailyNewWalletsCount"
@@ -98,6 +102,8 @@ export interface FuseFaucetV2Interface extends utils.Interface {
98
102
  | "wallets"
99
103
  ): FunctionFragment;
100
104
 
105
+ encodeFunctionData(functionFragment: "banAddress", values: [string]): string;
106
+ encodeFunctionData(functionFragment: "bans", values: [string]): string;
101
107
  encodeFunctionData(functionFragment: "canTop", values: [string]): string;
102
108
  encodeFunctionData(
103
109
  functionFragment: "currentDay",
@@ -194,6 +200,8 @@ export interface FuseFaucetV2Interface extends utils.Interface {
194
200
  encodeFunctionData(functionFragment: "version", values?: undefined): string;
195
201
  encodeFunctionData(functionFragment: "wallets", values: [string]): string;
196
202
 
203
+ decodeFunctionResult(functionFragment: "banAddress", data: BytesLike): Result;
204
+ decodeFunctionResult(functionFragment: "bans", data: BytesLike): Result;
197
205
  decodeFunctionResult(functionFragment: "canTop", data: BytesLike): Result;
198
206
  decodeFunctionResult(functionFragment: "currentDay", data: BytesLike): Result;
199
207
  decodeFunctionResult(
@@ -328,6 +336,13 @@ export interface FuseFaucetV2 extends BaseContract {
328
336
  removeListener: OnEvent<this>;
329
337
 
330
338
  functions: {
339
+ banAddress(
340
+ _user: string,
341
+ overrides?: Overrides & { from?: string }
342
+ ): Promise<ContractTransaction>;
343
+
344
+ bans(arg0: string, overrides?: CallOverrides): Promise<[BigNumber]>;
345
+
331
346
  canTop(_user: string, overrides?: CallOverrides): Promise<[boolean]>;
332
347
 
333
348
  currentDay(overrides?: CallOverrides): Promise<[BigNumber]>;
@@ -438,6 +453,13 @@ export interface FuseFaucetV2 extends BaseContract {
438
453
  >;
439
454
  };
440
455
 
456
+ banAddress(
457
+ _user: string,
458
+ overrides?: Overrides & { from?: string }
459
+ ): Promise<ContractTransaction>;
460
+
461
+ bans(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
462
+
441
463
  canTop(_user: string, overrides?: CallOverrides): Promise<boolean>;
442
464
 
443
465
  currentDay(overrides?: CallOverrides): Promise<BigNumber>;
@@ -548,6 +570,10 @@ export interface FuseFaucetV2 extends BaseContract {
548
570
  >;
549
571
 
550
572
  callStatic: {
573
+ banAddress(_user: string, overrides?: CallOverrides): Promise<void>;
574
+
575
+ bans(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
576
+
551
577
  canTop(_user: string, overrides?: CallOverrides): Promise<boolean>;
552
578
 
553
579
  currentDay(overrides?: CallOverrides): Promise<BigNumber>;
@@ -666,6 +692,13 @@ export interface FuseFaucetV2 extends BaseContract {
666
692
  };
667
693
 
668
694
  estimateGas: {
695
+ banAddress(
696
+ _user: string,
697
+ overrides?: Overrides & { from?: string }
698
+ ): Promise<BigNumber>;
699
+
700
+ bans(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
701
+
669
702
  canTop(_user: string, overrides?: CallOverrides): Promise<BigNumber>;
670
703
 
671
704
  currentDay(overrides?: CallOverrides): Promise<BigNumber>;
@@ -767,6 +800,16 @@ export interface FuseFaucetV2 extends BaseContract {
767
800
  };
768
801
 
769
802
  populateTransaction: {
803
+ banAddress(
804
+ _user: string,
805
+ overrides?: Overrides & { from?: string }
806
+ ): Promise<PopulatedTransaction>;
807
+
808
+ bans(
809
+ arg0: string,
810
+ overrides?: CallOverrides
811
+ ): Promise<PopulatedTransaction>;
812
+
770
813
  canTop(
771
814
  _user: string,
772
815
  overrides?: CallOverrides
@@ -199,6 +199,38 @@ const _abi = [
199
199
  stateMutability: "view",
200
200
  type: "function",
201
201
  },
202
+ {
203
+ inputs: [
204
+ {
205
+ internalType: "address",
206
+ name: "_user",
207
+ type: "address",
208
+ },
209
+ ],
210
+ name: "banAddress",
211
+ outputs: [],
212
+ stateMutability: "nonpayable",
213
+ type: "function",
214
+ },
215
+ {
216
+ inputs: [
217
+ {
218
+ internalType: "address",
219
+ name: "",
220
+ type: "address",
221
+ },
222
+ ],
223
+ name: "bans",
224
+ outputs: [
225
+ {
226
+ internalType: "uint256",
227
+ name: "",
228
+ type: "uint256",
229
+ },
230
+ ],
231
+ stateMutability: "view",
232
+ type: "function",
233
+ },
202
234
  {
203
235
  inputs: [
204
236
  {
@@ -837,7 +869,7 @@ const _abi = [
837
869
  ] as const;
838
870
 
839
871
  const _bytecode =
840
- "0x60a06040523060805234801561001457600080fd5b50608051612a7f61004c600039600081816109a1015281816109e101528181610f9001528181610fd001526110480152612a7f6000f3fe6080604052600436106101da5760003560e01c806301ffc9a7146101e6578063089c25fa1461021b57806315126799146102495780631ece9b121461025e578063248a9ca31461028c5780632f2ff15d146102ac5780632f5a3d15146102ce57806336568abe146102e45780633659cfe61461030457806336afc6fa146103245780633771dcf8146103395780633e6326fc146103595780634f1ef2861461037a57806352d1902d1461038d57806354fd4d50146103a25780635b61e2c1146103dc5780635bc758e21461041c5780635c9302c9146104325780636294c311146104485780636bdd72421461046857806370c635911461048857806378e97925146104a85780637befab10146104be57806389b08f11146104e357806391d1485414610575578063926d7d7f1461059557806393a08de4146105b7578063969172c9146105d5578063a069c1ac146105fa578063a217fddf1461061a578063a4c0ed361461062f578063aa31e4591461064f578063aaab4c1d14610680578063c1fc006a146106b4578063c573cb40146106d5578063c5da1033146106f6578063c8eb75491461072f578063d547741f1461074f578063e97eefd21461076f578063f84b40f51461078f578063fe173b97146107a557600080fd5b366101e157005b600080fd5b3480156101f257600080fd5b5061020661020136600461231b565b6107cd565b60405190151581526020015b60405180910390f35b34801561022757600080fd5b5061023b61023636600461235a565b610804565b604051908152602001610212565b34801561025557600080fd5b5061023b6108ce565b34801561026a57600080fd5b506101055461027f906001600160a01b031681565b6040516102129190612377565b34801561029857600080fd5b5061023b6102a736600461238b565b6108de565b3480156102b857600080fd5b506102cc6102c73660046123a4565b6108f3565b005b3480156102da57600080fd5b5061023b60fc5481565b3480156102f057600080fd5b506102cc6102ff3660046123a4565b610914565b34801561031057600080fd5b506102cc61031f36600461235a565b610997565b34801561033057600080fd5b5061027f610a5f565b34801561034557600080fd5b506102cc61035436600461235a565b610ae6565b34801561036557600080fd5b506101005461027f906001600160a01b031681565b6102cc61038836600461241a565b610f86565b34801561039957600080fd5b5061023b61103b565b3480156103ae57600080fd5b50610106546103c790600160401b900463ffffffff1681565b60405163ffffffff9091168152602001610212565b3480156103e857600080fd5b506101055461040490600160a01b90046001600160401b031681565b6040516001600160401b039091168152602001610212565b34801561042857600080fd5b5061023b60fd5481565b34801561043e57600080fd5b5061023b60ff5481565b34801561045457600080fd5b506102cc6104633660046124dd565b6110e9565b34801561047457600080fd5b506102cc610483366004612537565b6112e2565b34801561049457600080fd5b506102cc6104a336600461238b565b61131b565b3480156104b457600080fd5b5061023b60fe5481565b3480156104ca57600080fd5b50610104546103c790600160601b900463ffffffff1681565b3480156104ef57600080fd5b5061053c6104fe36600461235a565b61010360205260009081526040902080546005909101546001600160801b038083169263ffffffff600160801b918290041692808316929190041684565b604080516001600160801b03958616815263ffffffff909416602085015291841691830191909152919091166060820152608001610212565b34801561058157600080fd5b506102066105903660046123a4565b61133d565b3480156105a157600080fd5b5061023b600080516020612a0383398151915281565b3480156105c357600080fd5b50610104546103c79063ffffffff1681565b3480156105e157600080fd5b50610104546103c790600160801b900463ffffffff1681565b34801561060657600080fd5b506102cc61061536600461235a565b611368565b34801561062657600080fd5b5061023b600081565b34801561063b57600080fd5b5061020661064a366004612552565b611397565b34801561065b57600080fd5b5061020661066a36600461235a565b6101026020526000908152604090205460ff1681565b34801561068c57600080fd5b50610106546106a290600160601b900460ff1681565b60405160ff9091168152602001610212565b3480156106c057600080fd5b506101075461027f906001600160a01b031681565b3480156106e157600080fd5b5061010654610404906001600160401b031681565b34801561070257600080fd5b5061023b6107113660046123a4565b61010160209081526000928352604080842090915290825290205481565b34801561073b57600080fd5b506102cc61074a3660046125da565b611582565b34801561075b57600080fd5b506102cc61076a3660046123a4565b6115af565b34801561077b57600080fd5b5061020661078a36600461235a565b6115cb565b34801561079b57600080fd5b5061023b60fb5481565b3480156107b157600080fd5b506101045461040490600160201b90046001600160401b031681565b60006001600160e01b03198216637965db0b60e01b14806107fe57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6101045460fc54600091829161082a91600160201b90046001600160401b031690612613565b610107549091506001600160a01b0316156107fe57610107546040516370a0823160e01b81526001600160a01b03909116906370a0823190610870908690600401612377565b602060405180830381865afa9250505080156108a9575060408051601f3d908101601f191682019092526108a69181019061262a565b60015b156107fe5780156108c7576108bf826002612613565b949350505050565b5092915050565b60006108d933610804565b905090565b600090815260c9602052604090206001015490565b6108fc826108de565b61090581611852565b61090f838361185c565b505050565b6001600160a01b03811633146109895760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61099382826118e2565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109df5760405162461bcd60e51b815260040161098090612643565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a11611949565b6001600160a01b031614610a375760405162461bcd60e51b81526004016109809061267d565b610a4081611965565b60408051600080825260208201909252610a5c91839190611970565b50565b6101005460405163bf40fac160e01b81526020600482015260086024820152674944454e5449545960c01b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa158015610ac2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d991906126b7565b60005a9050816000610af6610a5f565b6001600160a01b0316632d0e9b46836040518263ffffffff1660e01b8152600401610b219190612377565b602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906126b7565b90506001600160a01b03811615610b795780610b7b565b815b60ff54909250610b89611adb565b8060ff5414610ba45761010680546001600160401b03191690555b60ff546001600160a01b038416600090815261010360205260409020546001600160801b039081169116141580610c095750610104546001600160a01b0384166000908152610103602052604090205463ffffffff918216600160801b909104909116105b610c4a5760405162461bcd60e51b81526020600482015260126024820152716d6178206461696c7920746f7070696e677360701b6044820152606401610980565b6001600160a01b0383166000908152610102602052604090205460ff16158015610c8d575061010554610106546001600160401b03600160a01b90920482169116105b80610ca057506001600160a01b03821615155b610cfb5760405162461bcd60e51b815260206004820152602660248201527f55736572206e6f742077686974656c6973746564206f72206e6f742066697273604482015265742074696d6560d01b6064820152608401610980565b6001600160a01b0383166000908152610103602052604090206005015462093a8090610d3790600160801b90046001600160801b0316426126d4565b10610d6c576001600160a01b038316600090815261010360205260409020426001600160801b0316600160801b026005909101555b6101045460fb54600160601b820463ffffffff1691610d9c91600160201b9091046001600160401b031690612613565b610da69190612613565b6001600160a01b038416600090815261010360205260409020600501546001600160801b031610610e365760405162461bcd60e51b815260206004820152603460248201527f557365722077616c6c657420686173206265656e20746f7070656420746f6f206044820152736d616e792074696d65732074686973207765656b60601b6064820152608401610980565b846000610e41610a5f565b6001600160a01b0316632d0e9b46836040518263ffffffff1660e01b8152600401610e6c9190612377565b602060405180830381865afa158015610e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ead91906126b7565b6001600160a01b0316141580610ed65750610ed6600080516020612a038339815191523361133d565b610f135760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b6044820152606401610980565b610f1c86611afc565b505050505a610f2b90826126d4565b610f379061a4106126e7565b6101045490915033906108fc90610f5e90600160201b90046001600160401b031684612613565b6040518115909202916000818181858888f1935050505015801561090f573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610fce5760405162461bcd60e51b815260040161098090612643565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611000611949565b6001600160a01b0316146110265760405162461bcd60e51b81526004016109809061267d565b61102f82611965565b61099382826001611970565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110d65760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610980565b506000805160206129e383398151915290565b600054610100900460ff16158080156111095750600054600160ff909116105b8061112a575061111830611e53565b15801561112a575060005460ff166001145b61118d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610980565b6000805460ff1916600117905580156111b0576000805461ff0019166101001790555b6111b8611e62565b6111c3600083611ecf565b6001600160a01b038316156111ea576111ea600080516020612a0383398151915284611ecf565b6101048054600160201b600160601b031916600160201b6001600160401b03871602179055620f424060fc819055611223906002612613565b60fb5561010480544260fe5561010080546001600160a01b0319166001600160a01b03891617905563ffffffff63ffffffff60601b0119166003600160611b011790556101058054600160a01b600160e01b03191661027160a31b179055610106805460ff60601b1916600f60601b17905580156112db576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60006112ed81611852565b5061010480546001600160401b03909216600160201b02600160201b600160601b0319909216919091179055565b600061132681611852565b60fc829055611336826002612613565b60fb555050565b600091825260c9602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600061137381611852565b5061010780546001600160a01b0319166001600160a01b0392909216919091179055565b6000806113a68385018561235a565b604080516002808252606082018352929350839260009260208301908036833701905050905033816000815181106113e0576113e06126fa565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561143e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146291906126b7565b81600181518110611475576114756126fa565b6001600160a01b03928316602091820292909201015260405163095ea7b360e01b815290841660048201526000196024820152339063095ea7b3906044016020604051808303816000875af11580156114d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f69190612710565b506040516318cbafe560e01b81526001600160a01b038316906318cbafe59061152c908a9060009086908e904290600401612732565b6000604051808303816000875af115801561154b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261157391908101906127a3565b50600198975050505050505050565b600061158d81611852565b50610106805460ff909216600160601b0260ff60601b19909216919091179055565b6115b8826108de565b6115c181611852565b61090f83836118e2565b6000806115d783610804565b9050826001600160a01b0316318110156115f45750600092915050565b600061160a6001600160a01b03851631836126d4565b61010654909150600160601b900460ff1682611627836064612613565b611631919061283c565b1015611641575060009392505050565b600061164b610a5f565b6001600160a01b0316632d0e9b46866040518263ffffffff1660e01b81526004016116769190612377565b602060405180830381865afa158015611693573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b791906126b7565b90506001600160a01b038116156116ce57806116d0565b845b945060006201518060fe54426116e691906126d4565b6116f0919061283c565b6001600160a01b03871660009081526101036020526040812054919250906001600160801b03808416911614158061174f57506001600160a01b038716600090815261010360205260409020546003600160801b90910463ffffffff16105b80156117ac57506001600160a01b0387166000908152610102602052604090205460ff16158015611799575061010554610106546001600160401b03600160a01b90920482169116105b806117ac57506001600160a01b03831615155b6001600160a01b038816600090815261010360205260409020600501549091506001600160801b038082169162093a80916117ef91600160801b900416426126d4565b106117f8575060005b81801561184657506101045460fb54600160601b820463ffffffff169161183091600160201b9091046001600160401b031690612613565b61183a9190612613565b816001600160801b0316105b98975050505050505050565b610a5c8133611ed9565b611866828261133d565b61099357600082815260c9602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561189e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6118ec828261133d565b1561099357600082815260c9602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000805160206129e3833981519152546001600160a01b031690565b600061099381611852565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156119a35761090f83611f32565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156119fd575060408051601f3d908101601f191682019092526119fa9181019061262a565b60015b611a605760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610980565b6000805160206129e38339815191528114611acf5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610980565b5061090f838383611fcc565b6201518060fe5442611aed91906126d4565b611af7919061283c565b60ff55565b806000611b07610a5f565b6001600160a01b0316632d0e9b46846040518263ffffffff1660e01b8152600401611b329190612377565b602060405180830381865afa158015611b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7391906126b7565b90506001600160a01b03811615611b8a5780611b8c565b825b92506000611b9984610804565b90506000611bb16001600160a01b03861631836126d4565b61010654909150600160601b900460ff1682611bce836064612613565b611bd8919061283c565b1015611c125760405162461bcd60e51b815260206004820152600960248201526806c6f7720746f546f760bc1b6044820152606401610980565b60ff546001600160a01b038616600090815261010360205260409020546001600160801b03918216911603611c9e576001600160a01b038516600090815261010360205260409020805460019190601090611c7b908490600160801b900463ffffffff1661285e565b92506101000a81548163ffffffff021916908363ffffffff160217905550611ccc565b6001600160a01b038516600090815261010360205260409020805463ffffffff60801b1916600160801b1790555b60ff546001600160a01b03861660009081526101036020526040812080546001600160801b0319166001600160801b0393841617815560050180548493919291611d189185911661287b565b82546001600160801b039182166101009390930a9283029190920219909116179055506001600160a01b0385166000908152610102602052604090205460ff16158015611d6c57506001600160a01b038316155b15611db15761010680546001600160401b0316906000611d8b8361289b565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b6001600160a01b0380861660009081526101026020526040808220805460ff19166001179055519186169183156108fc0291849190818181858888f19350505050158015611e03573d6000803e3d6000fd5b50604080518281526001600160a01b0385811660208301523392908716917f7872034fbcc87890e73d66eac55389e0ffdba157b89a73bd2011157ebac1d66e910160405180910390a35050505050565b6001600160a01b03163b151590565b600054610100900460ff16611ecd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610980565b565b610993828261185c565b611ee3828261133d565b61099357611ef081611ff7565b611efb836020612009565b604051602001611f0c9291906128ed565b60408051601f198184030181529082905262461bcd60e51b82526109809160040161295c565b611f3b81611e53565b611f9d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610980565b6000805160206129e383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611fd5836121ab565b600082511180611fe25750805b1561090f57611ff183836121eb565b50505050565b60606107fe6001600160a01b03831660145b60606000612018836002612613565b6120239060026126e7565b6001600160401b0381111561203a5761203a6123d4565b6040519080825280601f01601f191660200182016040528015612064576020820181803683370190505b509050600360fc1b8160008151811061207f5761207f6126fa565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106120ae576120ae6126fa565b60200101906001600160f81b031916908160001a90535060006120d2846002612613565b6120dd9060016126e7565b90505b6001811115612155576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612111576121116126fa565b1a60f81b828281518110612127576121276126fa565b60200101906001600160f81b031916908160001a90535060049490941c9361214e8161298f565b90506120e0565b5083156121a45760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610980565b9392505050565b6121b481611f32565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606121f683611e53565b6122515760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610980565b600080846001600160a01b03168460405161226c91906129a6565b600060405180830381855af49150503d80600081146122a7576040519150601f19603f3d011682016040523d82523d6000602084013e6122ac565b606091505b50915091506122d48282604051806060016040528060278152602001612a23602791396122dd565b95945050505050565b606083156122ec5750816121a4565b6121a483838151156123015781518083602001fd5b8060405162461bcd60e51b8152600401610980919061295c565b60006020828403121561232d57600080fd5b81356001600160e01b0319811681146121a457600080fd5b6001600160a01b0381168114610a5c57600080fd5b60006020828403121561236c57600080fd5b81356121a481612345565b6001600160a01b0391909116815260200190565b60006020828403121561239d57600080fd5b5035919050565b600080604083850312156123b757600080fd5b8235915060208301356123c981612345565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612412576124126123d4565b604052919050565b6000806040838503121561242d57600080fd5b823561243881612345565b91506020838101356001600160401b038082111561245557600080fd5b818601915086601f83011261246957600080fd5b81358181111561247b5761247b6123d4565b61248d601f8201601f191685016123ea565b915080825287848285010111156124a357600080fd5b80848401858401376000848284010152508093505050509250929050565b80356001600160401b03811681146124d857600080fd5b919050565b600080600080608085870312156124f357600080fd5b84356124fe81612345565b935061250c602086016124c1565b9250604085013561251c81612345565b9150606085013561252c81612345565b939692955090935050565b60006020828403121561254957600080fd5b6121a4826124c1565b6000806000806060858703121561256857600080fd5b843561257381612345565b93506020850135925060408501356001600160401b038082111561259657600080fd5b818701915087601f8301126125aa57600080fd5b8135818111156125b957600080fd5b8860208285010111156125cb57600080fd5b95989497505060200194505050565b6000602082840312156125ec57600080fd5b813560ff811681146121a457600080fd5b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176107fe576107fe6125fd565b60006020828403121561263c57600080fd5b5051919050565b6020808252602c908201526000805160206129c383398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201526000805160206129c383398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6000602082840312156126c957600080fd5b81516121a481612345565b818103818111156107fe576107fe6125fd565b808201808211156107fe576107fe6125fd565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561272257600080fd5b815180151581146121a457600080fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127825784516001600160a01b03168352938301939183019160010161275d565b50506001600160a01b03969096166060850152505050608001529392505050565b600060208083850312156127b657600080fd5b82516001600160401b03808211156127cd57600080fd5b818501915085601f8301126127e157600080fd5b8151818111156127f3576127f36123d4565b8060051b91506128048483016123ea565b818152918301840191848101908884111561281e57600080fd5b938501935b8385101561184657845182529385019390850190612823565b60008261285957634e487b7160e01b600052601260045260246000fd5b500490565b63ffffffff8181168382160190808211156108c7576108c76125fd565b6001600160801b038181168382160190808211156108c7576108c76125fd565b60006001600160401b038281166002600160401b031981016128bf576128bf6125fd565b6001019392505050565b60005b838110156128e45781810151838201526020016128cc565b50506000910152565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b81526000835161291f8160178501602088016128c9565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516129508160288401602088016128c9565b01602801949350505050565b602081526000825180602084015261297b8160408501602087016128c9565b601f01601f19169190910160400192915050565b60008161299e5761299e6125fd565b506000190190565b600082516129b88184602087016128c9565b919091019291505056fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc802cf867c2da464d4ff0ebc4dfcccdfbd65d75a8bc1c273fb02e80bf3446b516416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f678fbd18a354efa7cc1fdf1c6863a8b359e520292dd3ed16b5482c92d15182c64736f6c63430008130033";
872
+ "0x60a06040523060805234801561001457600080fd5b50608051612b7a61004c60003960008181610a0501528181610a45015281816110450152818161108501526110fd0152612b7a6000f3fe6080604052600436106101f05760003560e01c806301ffc9a7146101fc578063089c25fa14610231578063151267991461025f5780631ece9b1214610274578063248a9ca3146102a25780632f2ff15d146102c25780632f5a3d15146102e457806336568abe146102fa5780633659cfe61461031a57806336afc6fa1461033a5780633771dcf81461034f5780633e6326fc1461036f5780634f1ef2861461039057806352d1902d146103a357806354fd4d50146103b85780635b61e2c1146103f25780635bc758e2146104325780635c9302c9146104485780636294c3111461045e5780636bdd72421461047e57806370c635911461049e57806378e97925146104be5780637befab10146104d45780637f49f709146104f957806389b08f111461051957806391d14854146105ab578063926d7d7f146105cb57806393a08de4146105ed578063969172c91461060b578063a069c1ac14610630578063a217fddf14610650578063a4c0ed3614610665578063aa31e45914610685578063aaab4c1d146106b6578063ad285cad146106ea578063c1fc006a14610718578063c573cb4014610739578063c5da10331461075a578063c8eb754914610793578063d547741f146107b3578063e97eefd2146107d3578063f84b40f5146107f3578063fe173b971461080957600080fd5b366101f757005b600080fd5b34801561020857600080fd5b5061021c610217366004612416565b610831565b60405190151581526020015b60405180910390f35b34801561023d57600080fd5b5061025161024c366004612455565b610868565b604051908152602001610228565b34801561026b57600080fd5b50610251610932565b34801561028057600080fd5b5061010554610295906001600160a01b031681565b6040516102289190612472565b3480156102ae57600080fd5b506102516102bd366004612486565b610942565b3480156102ce57600080fd5b506102e26102dd36600461249f565b610957565b005b3480156102f057600080fd5b5061025160fc5481565b34801561030657600080fd5b506102e261031536600461249f565b610978565b34801561032657600080fd5b506102e2610335366004612455565b6109fb565b34801561034657600080fd5b50610295610ac3565b34801561035b57600080fd5b506102e261036a366004612455565b610b4a565b34801561037b57600080fd5b5061010054610295906001600160a01b031681565b6102e261039e366004612515565b61103b565b3480156103af57600080fd5b506102516110f0565b3480156103c457600080fd5b50610106546103dd90600160401b900463ffffffff1681565b60405163ffffffff9091168152602001610228565b3480156103fe57600080fd5b506101055461041a90600160a01b90046001600160401b031681565b6040516001600160401b039091168152602001610228565b34801561043e57600080fd5b5061025160fd5481565b34801561045457600080fd5b5061025160ff5481565b34801561046a57600080fd5b506102e26104793660046125d8565b61119e565b34801561048a57600080fd5b506102e2610499366004612632565b611397565b3480156104aa57600080fd5b506102e26104b9366004612486565b6113d0565b3480156104ca57600080fd5b5061025160fe5481565b3480156104e057600080fd5b50610104546103dd90600160601b900463ffffffff1681565b34801561050557600080fd5b506102e2610514366004612455565b6113f2565b34801561052557600080fd5b50610572610534366004612455565b61010360205260009081526040902080546005909101546001600160801b038083169263ffffffff600160801b918290041692808316929190041684565b604080516001600160801b03958616815263ffffffff909416602085015291841691830191909152919091166060820152608001610228565b3480156105b757600080fd5b5061021c6105c636600461249f565b611438565b3480156105d757600080fd5b50610251600080516020612afe83398151915281565b3480156105f957600080fd5b50610104546103dd9063ffffffff1681565b34801561061757600080fd5b50610104546103dd90600160801b900463ffffffff1681565b34801561063c57600080fd5b506102e261064b366004612455565b611463565b34801561065c57600080fd5b50610251600081565b34801561067157600080fd5b5061021c61068036600461264d565b611492565b34801561069157600080fd5b5061021c6106a0366004612455565b6101026020526000908152604090205460ff1681565b3480156106c257600080fd5b50610106546106d890600160601b900460ff1681565b60405160ff9091168152602001610228565b3480156106f657600080fd5b50610251610705366004612455565b6101086020526000908152604090205481565b34801561072457600080fd5b5061010754610295906001600160a01b031681565b34801561074557600080fd5b506101065461041a906001600160401b031681565b34801561076657600080fd5b5061025161077536600461249f565b61010160209081526000928352604080842090915290825290205481565b34801561079f57600080fd5b506102e26107ae3660046126d5565b61167d565b3480156107bf57600080fd5b506102e26107ce36600461249f565b6116aa565b3480156107df57600080fd5b5061021c6107ee366004612455565b6116c6565b3480156107ff57600080fd5b5061025160fb5481565b34801561081557600080fd5b506101045461041a90600160201b90046001600160401b031681565b60006001600160e01b03198216637965db0b60e01b148061086257506301ffc9a760e01b6001600160e01b03198316145b92915050565b6101045460fc54600091829161088e91600160201b90046001600160401b03169061270e565b610107549091506001600160a01b03161561086257610107546040516370a0823160e01b81526001600160a01b03909116906370a08231906108d4908690600401612472565b602060405180830381865afa92505050801561090d575060408051601f3d908101601f1916820190925261090a91810190612725565b60015b1561086257801561092b5761092382600261270e565b949350505050565b5092915050565b600061093d33610868565b905090565b600090815260c9602052604090206001015490565b61096082610942565b6109698161194d565b6109738383611957565b505050565b6001600160a01b03811633146109ed5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6109f782826119dd565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a435760405162461bcd60e51b81526004016109e49061273e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a75611a44565b6001600160a01b031614610a9b5760405162461bcd60e51b81526004016109e490612778565b610aa481611a60565b60408051600080825260208201909252610ac091839190611a6b565b50565b6101005460405163bf40fac160e01b81526020600482015260086024820152674944454e5449545960c01b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa158015610b26573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093d91906127b2565b60005a9050816000610b5a610ac3565b6001600160a01b0316632d0e9b46836040518263ffffffff1660e01b8152600401610b859190612472565b602060405180830381865afa158015610ba2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc691906127b2565b90506001600160a01b03811615610bdd5780610bdf565b815b60ff54909250610bed611bd6565b8060ff5414610c085761010680546001600160401b03191690555b60ff546001600160a01b038416600090815261010360205260409020546001600160801b039081169116141580610c6d5750610104546001600160a01b0384166000908152610103602052604090205463ffffffff918216600160801b909104909116105b610cae5760405162461bcd60e51b81526020600482015260126024820152716d6178206461696c7920746f7070696e677360701b60448201526064016109e4565b6001600160a01b0383166000908152610102602052604090205460ff16158015610cf1575061010554610106546001600160401b03600160a01b90920482169116105b80610d0457506001600160a01b03821615155b610d5f5760405162461bcd60e51b815260206004820152602660248201527f55736572206e6f742077686974656c6973746564206f72206e6f742066697273604482015265742074696d6560d01b60648201526084016109e4565b6001600160a01b0383166000908152610103602052604090206005015462093a8090610d9b90600160801b90046001600160801b0316426127cf565b10610dd0576001600160a01b038316600090815261010360205260409020426001600160801b0316600160801b026005909101555b6101045460fb54600160601b820463ffffffff1691610e0091600160201b9091046001600160401b03169061270e565b610e0a919061270e565b6001600160a01b038416600090815261010360205260409020600501546001600160801b031610610e9a5760405162461bcd60e51b815260206004820152603460248201527f557365722077616c6c657420686173206265656e20746f7070656420746f6f206044820152736d616e792074696d65732074686973207765656b60601b60648201526084016109e4565b846000610ea5610ac3565b6001600160a01b0316632d0e9b46836040518263ffffffff1660e01b8152600401610ed09190612472565b602060405180830381865afa158015610eed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1191906127b2565b6001600160a01b0316141580610f3a5750610f3a600080516020612afe83398151915233611438565b610f775760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b60448201526064016109e4565b6001600160a01b038116600090815261010860205260409020544211610fc85760405162461bcd60e51b815260206004820152600660248201526518985b9b995960d21b60448201526064016109e4565b610fd186611bf7565b505050505a610fe090826127cf565b610fec9061a4106127e2565b6101045490915033906108fc9061101390600160201b90046001600160401b03168461270e565b6040518115909202916000818181858888f19350505050158015610973573d6000803e3d6000fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110835760405162461bcd60e51b81526004016109e49061273e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166110b5611a44565b6001600160a01b0316146110db5760405162461bcd60e51b81526004016109e490612778565b6110e482611a60565b6109f782826001611a6b565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461118b5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b60648201526084016109e4565b50600080516020612ade83398151915290565b600054610100900460ff16158080156111be5750600054600160ff909116105b806111df57506111cd30611f4e565b1580156111df575060005460ff166001145b6112425760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109e4565b6000805460ff191660011790558015611265576000805461ff0019166101001790555b61126d611f5d565b611278600083611fca565b6001600160a01b0383161561129f5761129f600080516020612afe83398151915284611fca565b6101048054600160201b600160601b031916600160201b6001600160401b03871602179055620f424060fc8190556112d890600261270e565b60fb5561010480544260fe5561010080546001600160a01b0319166001600160a01b03891617905563ffffffff63ffffffff60601b0119166003600160611b011790556101058054600160a01b600160e01b03191661027160a31b179055610106805460ff60601b1916600f60601b1790558015611390576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60006113a28161194d565b5061010480546001600160401b03909216600160201b02600160201b600160601b0319909216919091179055565b60006113db8161194d565b60fc8290556113eb82600261270e565b60fb555050565b600080516020612afe83398151915261140a8161194d565b611417426203f4806127e2565b6001600160a01b039092166000908152610108602052604090209190915550565b600091825260c9602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600061146e8161194d565b5061010780546001600160a01b0319166001600160a01b0392909216919091179055565b6000806114a183850185612455565b604080516002808252606082018352929350839260009260208301908036833701905050905033816000815181106114db576114db6127f5565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611539573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155d91906127b2565b81600181518110611570576115706127f5565b6001600160a01b03928316602091820292909201015260405163095ea7b360e01b815290841660048201526000196024820152339063095ea7b3906044016020604051808303816000875af11580156115cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f1919061280b565b506040516318cbafe560e01b81526001600160a01b038316906318cbafe590611627908a9060009086908e90429060040161282d565b6000604051808303816000875af1158015611646573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261166e919081019061289e565b50600198975050505050505050565b60006116888161194d565b50610106805460ff909216600160601b0260ff60601b19909216919091179055565b6116b382610942565b6116bc8161194d565b61097383836119dd565b6000806116d283610868565b9050826001600160a01b0316318110156116ef5750600092915050565b60006117056001600160a01b03851631836127cf565b61010654909150600160601b900460ff168261172283606461270e565b61172c9190612937565b101561173c575060009392505050565b6000611746610ac3565b6001600160a01b0316632d0e9b46866040518263ffffffff1660e01b81526004016117719190612472565b602060405180830381865afa15801561178e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b291906127b2565b90506001600160a01b038116156117c957806117cb565b845b945060006201518060fe54426117e191906127cf565b6117eb9190612937565b6001600160a01b03871660009081526101036020526040812054919250906001600160801b03808416911614158061184a57506001600160a01b038716600090815261010360205260409020546003600160801b90910463ffffffff16105b80156118a757506001600160a01b0387166000908152610102602052604090205460ff16158015611894575061010554610106546001600160401b03600160a01b90920482169116105b806118a757506001600160a01b03831615155b6001600160a01b038816600090815261010360205260409020600501549091506001600160801b038082169162093a80916118ea91600160801b900416426127cf565b106118f3575060005b81801561194157506101045460fb54600160601b820463ffffffff169161192b91600160201b9091046001600160401b03169061270e565b611935919061270e565b816001600160801b0316105b98975050505050505050565b610ac08133611fd4565b6119618282611438565b6109f757600082815260c9602090815260408083206001600160a01b03851684529091529020805460ff191660011790556119993390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6119e78282611438565b156109f757600082815260c9602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600080516020612ade833981519152546001600160a01b031690565b60006109f78161194d565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611a9e576109738361202d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611af8575060408051601f3d908101601f19168201909252611af591810190612725565b60015b611b5b5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016109e4565b600080516020612ade8339815191528114611bca5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016109e4565b506109738383836120c7565b6201518060fe5442611be891906127cf565b611bf29190612937565b60ff55565b806000611c02610ac3565b6001600160a01b0316632d0e9b46846040518263ffffffff1660e01b8152600401611c2d9190612472565b602060405180830381865afa158015611c4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c6e91906127b2565b90506001600160a01b03811615611c855780611c87565b825b92506000611c9484610868565b90506000611cac6001600160a01b03861631836127cf565b61010654909150600160601b900460ff1682611cc983606461270e565b611cd39190612937565b1015611d0d5760405162461bcd60e51b815260206004820152600960248201526806c6f7720746f546f760bc1b60448201526064016109e4565b60ff546001600160a01b038616600090815261010360205260409020546001600160801b03918216911603611d99576001600160a01b038516600090815261010360205260409020805460019190601090611d76908490600160801b900463ffffffff16612959565b92506101000a81548163ffffffff021916908363ffffffff160217905550611dc7565b6001600160a01b038516600090815261010360205260409020805463ffffffff60801b1916600160801b1790555b60ff546001600160a01b03861660009081526101036020526040812080546001600160801b0319166001600160801b0393841617815560050180548493919291611e1391859116612976565b82546001600160801b039182166101009390930a9283029190920219909116179055506001600160a01b0385166000908152610102602052604090205460ff16158015611e6757506001600160a01b038316155b15611eac5761010680546001600160401b0316906000611e8683612996565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b6001600160a01b0380861660009081526101026020526040808220805460ff19166001179055519186169183156108fc0291849190818181858888f19350505050158015611efe573d6000803e3d6000fd5b50604080518281526001600160a01b0385811660208301523392908716917f7872034fbcc87890e73d66eac55389e0ffdba157b89a73bd2011157ebac1d66e910160405180910390a35050505050565b6001600160a01b03163b151590565b600054610100900460ff16611fc85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016109e4565b565b6109f78282611957565b611fde8282611438565b6109f757611feb816120f2565b611ff6836020612104565b6040516020016120079291906129e8565b60408051601f198184030181529082905262461bcd60e51b82526109e491600401612a57565b61203681611f4e565b6120985760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016109e4565b600080516020612ade83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6120d0836122a6565b6000825111806120dd5750805b15610973576120ec83836122e6565b50505050565b60606108626001600160a01b03831660145b6060600061211383600261270e565b61211e9060026127e2565b6001600160401b03811115612135576121356124cf565b6040519080825280601f01601f19166020018201604052801561215f576020820181803683370190505b509050600360fc1b8160008151811061217a5761217a6127f5565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106121a9576121a96127f5565b60200101906001600160f81b031916908160001a90535060006121cd84600261270e565b6121d89060016127e2565b90505b6001811115612250576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061220c5761220c6127f5565b1a60f81b828281518110612222576122226127f5565b60200101906001600160f81b031916908160001a90535060049490941c9361224981612a8a565b90506121db565b50831561229f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016109e4565b9392505050565b6122af8161202d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606122f183611f4e565b61234c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016109e4565b600080846001600160a01b0316846040516123679190612aa1565b600060405180830381855af49150503d80600081146123a2576040519150601f19603f3d011682016040523d82523d6000602084013e6123a7565b606091505b50915091506123cf8282604051806060016040528060278152602001612b1e602791396123d8565b95945050505050565b606083156123e757508161229f565b61229f83838151156123fc5781518083602001fd5b8060405162461bcd60e51b81526004016109e49190612a57565b60006020828403121561242857600080fd5b81356001600160e01b03198116811461229f57600080fd5b6001600160a01b0381168114610ac057600080fd5b60006020828403121561246757600080fd5b813561229f81612440565b6001600160a01b0391909116815260200190565b60006020828403121561249857600080fd5b5035919050565b600080604083850312156124b257600080fd5b8235915060208301356124c481612440565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561250d5761250d6124cf565b604052919050565b6000806040838503121561252857600080fd5b823561253381612440565b91506020838101356001600160401b038082111561255057600080fd5b818601915086601f83011261256457600080fd5b813581811115612576576125766124cf565b612588601f8201601f191685016124e5565b9150808252878482850101111561259e57600080fd5b80848401858401376000848284010152508093505050509250929050565b80356001600160401b03811681146125d357600080fd5b919050565b600080600080608085870312156125ee57600080fd5b84356125f981612440565b9350612607602086016125bc565b9250604085013561261781612440565b9150606085013561262781612440565b939692955090935050565b60006020828403121561264457600080fd5b61229f826125bc565b6000806000806060858703121561266357600080fd5b843561266e81612440565b93506020850135925060408501356001600160401b038082111561269157600080fd5b818701915087601f8301126126a557600080fd5b8135818111156126b457600080fd5b8860208285010111156126c657600080fd5b95989497505060200194505050565b6000602082840312156126e757600080fd5b813560ff8116811461229f57600080fd5b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610862576108626126f8565b60006020828403121561273757600080fd5b5051919050565b6020808252602c90820152600080516020612abe83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020612abe83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6000602082840312156127c457600080fd5b815161229f81612440565b81810381811115610862576108626126f8565b80820180821115610862576108626126f8565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561281d57600080fd5b8151801515811461229f57600080fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561287d5784516001600160a01b031683529383019391830191600101612858565b50506001600160a01b03969096166060850152505050608001529392505050565b600060208083850312156128b157600080fd5b82516001600160401b03808211156128c857600080fd5b818501915085601f8301126128dc57600080fd5b8151818111156128ee576128ee6124cf565b8060051b91506128ff8483016124e5565b818152918301840191848101908884111561291957600080fd5b938501935b838510156119415784518252938501939085019061291e565b60008261295457634e487b7160e01b600052601260045260246000fd5b500490565b63ffffffff81811683821601908082111561092b5761092b6126f8565b6001600160801b0381811683821601908082111561092b5761092b6126f8565b60006001600160401b038281166002600160401b031981016129ba576129ba6126f8565b6001019392505050565b60005b838110156129df5781810151838201526020016129c7565b50506000910152565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351612a1a8160178501602088016129c4565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612a4b8160288401602088016129c4565b01602801949350505050565b6020815260008251806020840152612a768160408501602087016129c4565b601f01601f19169190910160400192915050565b600081612a9957612a996126f8565b506000190190565b60008251612ab38184602087016129c4565b919091019291505056fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc802cf867c2da464d4ff0ebc4dfcccdfbd65d75a8bc1c273fb02e80bf3446b516416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212209d3455454eacdbe220904004600003bd586e158664be3bab2db85237b9a931c864736f6c63430008130033";
841
873
 
842
874
  type FaucetConstructorParams =
843
875
  | [signer?: Signer]
@@ -53,6 +53,38 @@ const _abi = [
53
53
  name: "WalletTopped",
54
54
  type: "event",
55
55
  },
56
+ {
57
+ inputs: [
58
+ {
59
+ internalType: "address",
60
+ name: "_user",
61
+ type: "address",
62
+ },
63
+ ],
64
+ name: "banAddress",
65
+ outputs: [],
66
+ stateMutability: "nonpayable",
67
+ type: "function",
68
+ },
69
+ {
70
+ inputs: [
71
+ {
72
+ internalType: "address",
73
+ name: "",
74
+ type: "address",
75
+ },
76
+ ],
77
+ name: "bans",
78
+ outputs: [
79
+ {
80
+ internalType: "uint256",
81
+ name: "",
82
+ type: "uint256",
83
+ },
84
+ ],
85
+ stateMutability: "view",
86
+ type: "function",
87
+ },
56
88
  {
57
89
  inputs: [
58
90
  {
@@ -545,7 +577,7 @@ const _abi = [
545
577
  ] as const;
546
578
 
547
579
  const _bytecode =
548
- "0x608060405234801561001057600080fd5b506120d5806100206000396000f3fe6080604052600436106101775760003560e01c806315126799146101835780631ece9b12146101ab5780632f5a3d15146101d857806336afc6fa146101ee5780633771dcf8146102035780633e6326fc1461022557806354fd4d50146102455780635b61e2c11461027e5780635bc758e2146102bd5780635c9302c9146102d35780636bdd7242146102e957806370c635911461030957806378e97925146103295780637befab101461033f5780638406c0791461036357806389b08f111461038a5780638da5cb5b146103f357806393a08de414610413578063a4c0ed3614610430578063aa31e45914610460578063aaab4c1d14610490578063c25673d5146104c3578063c573cb40146104d8578063c5da1033146104f8578063c8eb754914610530578063cce987d414610550578063d1c8e12514610574578063e97eefd214610594578063f000999e146105b4578063f83ecf99146105d4578063f84b40f5146105f4578063fe173b971461060a57600080fd5b3661017e57005b600080fd5b34801561018f57600080fd5b50610198610631565b6040519081526020015b60405180910390f35b3480156101b757600080fd5b50600b546101cb906001600160a01b031681565b6040516101a29190611b3e565b3480156101e457600080fd5b5061019860025481565b3480156101fa57600080fd5b506101cb61065a565b34801561020f57600080fd5b5061022361021e366004611b6a565b6106e0565b005b34801561023157600080fd5b506006546101cb906001600160a01b031681565b34801561025157600080fd5b50600d5461026990600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101a2565b34801561028a57600080fd5b50600b546102a590600160a01b90046001600160401b031681565b6040516001600160401b0390911681526020016101a2565b3480156102c957600080fd5b5061019860035481565b3480156102df57600080fd5b5061019860055481565b3480156102f557600080fd5b50610223610304366004611baa565b610c70565b34801561031557600080fd5b50610223610324366004611bc5565b610cc6565b34801561033557600080fd5b5061019860045481565b34801561034b57600080fd5b50600a5461026990600160601b900463ffffffff1681565b34801561036f57600080fd5b50600c546101cb90600160401b90046001600160a01b031681565b34801561039657600080fd5b506103cf6103a5366004611b6a565b6009602052600090815260409020546001600160801b03811690600160801b900463ffffffff1682565b604080516001600160801b03909316835263ffffffff9091166020830152016101a2565b3480156103ff57600080fd5b50600d546101cb906001600160a01b031681565b34801561041f57600080fd5b50600a546102699063ffffffff1681565b34801561043c57600080fd5b5061045061044b366004611bde565b610d06565b60405190151581526020016101a2565b34801561046c57600080fd5b5061045061047b366004611b6a565b60086020526000908152604090205460ff1681565b34801561049c57600080fd5b50600d546104b190600160c01b900460ff1681565b60405160ff90911681526020016101a2565b3480156104cf57600080fd5b50610223610f3d565b3480156104e457600080fd5b50600c546102a5906001600160401b031681565b34801561050457600080fd5b50610198610513366004611c66565b600760209081526000928352604080842090915290825290205481565b34801561053c57600080fd5b5061022361054b366004611c96565b610ff2565b34801561055c57600080fd5b50600a5461026990600160801b900463ffffffff1681565b34801561058057600080fd5b5061022361058f366004611cb9565b61103c565b3480156105a057600080fd5b506104506105af366004611b6a565b611220565b3480156105c057600080fd5b506102236105cf366004611d11565b6115e7565b3480156105e057600080fd5b506102236105ef366004611b6a565b6116e5565b34801561060057600080fd5b5061019860015481565b34801561061657600080fd5b50600a546102a590600160201b90046001600160401b031681565b600a5460025460009161065591600160201b9091046001600160401b031690611d72565b905090565b60065460405163bf40fac160e01b81526020600482015260086024820152674944454e5449545960c01b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa1580156106bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106559190611d8f565b60005a90508160006106f061065a565b6001600160a01b0316632d0e9b46836040518263ffffffff1660e01b815260040161071b9190611b3e565b602060405180830381865afa158015610738573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075c9190611d8f565b90506001600160a01b038116156107735780610775565b815b600554909250610783611788565b806005541461079d57600c80546001600160401b03191690555b6005546001600160a01b0384166000908152600960205260409020546001600160801b0390811691161415806107ff5750600a546001600160a01b03841660009081526009602052604090205463ffffffff918216600160801b909104909116105b6108455760405162461bcd60e51b81526020600482015260126024820152716d6178206461696c7920746f7070696e677360701b60448201526064015b60405180910390fd5b6001600160a01b03831660009081526008602052604090205460ff161580156108855750600b54600c546001600160401b03600160a01b90920482169116105b8061089857506001600160a01b03821615155b6108f35760405162461bcd60e51b815260206004820152602660248201527f55736572206e6f742077686974656c6973746564206f72206e6f742066697273604482015265742074696d6560d01b606482015260840161083c565b600060076005546109049190611dc2565b6001600160a01b0385166000908152600960205260408120546005549293509091610938916001600160801b031690611dd6565b905060078111610948578061094b565b60075b905081811161095a5780610965565b610965826001611de9565b9050600081610975846001611de9565b61097f9190611dd6565b90505b8281116109f7576001600160a01b038616600090815260096020526040812060010182600781106109b5576109b5611dfc565b600291828204019190066010026101000a8154816001600160801b0302191690836001600160801b0316021790555080806109ef90611e12565b915050610982565b506000805b838111610a6d576001600160a01b03871660009081526009602052604090206001018160078110610a2f57610a2f611dfc565b600291828204019190066010029054906101000a90046001600160801b031682610a599190611e2b565b915080610a6581611e12565b9150506109fc565b50600a54600154600160601b820463ffffffff1691610a9d91600160201b9091046001600160401b031690611d72565b610aa79190611d72565b816001600160801b031610610b1b5760405162461bcd60e51b815260206004820152603460248201527f557365722077616c6c657420686173206265656e20746f7070656420746f6f206044820152736d616e792074696d65732074686973207765656b60601b606482015260840161083c565b876000610b2661065a565b6001600160a01b0316632d0e9b46836040518263ffffffff1660e01b8152600401610b519190611b3e565b602060405180830381865afa158015610b6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b929190611d8f565b6001600160a01b0316141580610bb95750600c54600160401b90046001600160a01b031633145b610bf65760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b604482015260640161083c565b610bff896117a9565b505050505050505a610c119082611dd6565b610c1d9061a410611de9565b600a5490915033906108fc90610c4390600160201b90046001600160401b031684611d72565b6040518115909202916000818181858888f19350505050158015610c6b573d6000803e3d6000fd5b505050565b600d546001600160a01b03163314610c9a5760405162461bcd60e51b815260040161083c90611e52565b600a80546001600160401b03909216600160201b02600160201b600160601b0319909216919091179055565b600d546001600160a01b03163314610cf05760405162461bcd60e51b815260040161083c90611e52565b6002818155610d00908290611d72565b60015550565b600a54600090600160801b900463ffffffff16841115610d535760405162461bcd60e51b8152602060048201526008602482015267736c69707061676560c01b604482015260640161083c565b6000610d6183850185611b6a565b60408051600280825260608201835292935083926000926020830190803683370190505090503381600081518110610d9b57610d9b611dfc565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1d9190611d8f565b81600181518110610e3057610e30611dfc565b6001600160a01b03928316602091820292909201015260405163095ea7b360e01b815290841660048201526000196024820152339063095ea7b3906044016020604051808303816000875af1158015610e8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb19190611e8b565b506040516318cbafe560e01b81526001600160a01b038316906318cbafe590610ee7908a9060009086908e904290600401611ead565b6000604051808303816000875af1158015610f06573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f2e9190810190611f1e565b50600198975050505050505050565b6003610f4a600182611fdb565b600d54600160a01b900463ffffffff908116911614610f7b5760405162461bcd60e51b815260040161083c90611ff8565b600d8054600160a01b900463ffffffff16906014610f9883612027565b91906101000a81548163ffffffff021916908363ffffffff16021790555050600a60049054906101000a90046001600160401b03166001600160401b0316600254610fe3919061204a565b6002818155610d009190611d72565b600d546001600160a01b0316331461101c5760405162461bcd60e51b815260040161083c90611e52565b600d805460ff909216600160c01b0260ff60c01b19909216919091179055565b600054610100900460ff161580801561105c5750600054600160ff909116105b806110765750303b158015611076575060005460ff166001145b6110d95760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161083c565b6000805460ff1916600117905580156110fc576000805461ff0019166101001790555b600c8054600160401b600160e01b031916600160401b6001600160a01b03861602179055600a8054600160201b600160601b031916600160201b6001600160401b0387811691909102919091179091558216600281815561115d9190611d72565b600155600a805442600455600680546001600160a01b0319166001600160a01b03891617905563ffffffff600160601b03600160a01b03191660036501f40000000160611b01179055600b8054600160a01b600160e01b03191661027160a31b179055600d805460ff60c01b1916600f60c01b1790558015611219576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000816001600160a01b031631611235610631565b101561124357506000919050565b6000826001600160a01b031631611258610631565b6112629190611dd6565b600d54909150600160c01b900460ff1661127a610631565b611285836064611d72565b61128f919061204a565b101561129e5750600092915050565b60006112a861065a565b6001600160a01b0316632d0e9b46856040518263ffffffff1660e01b81526004016112d39190611b3e565b602060405180830381865afa1580156112f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113149190611d8f565b90506001600160a01b0381161561132b578061132d565b835b9350600062015180600454426113439190611dd6565b61134d919061204a565b6001600160a01b038616600090815260096020526040812054919250906001600160801b0380841691161415806113aa57506001600160a01b0386166000908152600960205260409020546003600160801b90910463ffffffff16105b801561140457506001600160a01b03861660009081526008602052604090205460ff161580156113f15750600b54600c546001600160401b03600160a01b90920482169116105b8061140457506001600160a01b03831615155b6001600160a01b038716600090815260096020526040808220815160e0810192839052939450919291600101906007908285855b82829054906101000a90046001600160801b03166001600160801b031681526020019060100190602082600f010492830192600103820291508084116114385790505050505050905060006007846114909190611dc2565b6001600160a01b038916600090815260096020526040812054919250906114c0906001600160801b031686611dd6565b9050600781116114d057806114d3565b60075b90508181116114e257806114ed565b6114ed826001611de9565b90506000816114fd846001611de9565b6115079190611dd6565b90505b82811161154a57600084826007811061152557611525611dfc565b6001600160801b0390921660209290920201528061154281611e12565b91505061150a565b506000805b83811161158b5784816007811061156857611568611dfc565b60200201516115779083611e2b565b91508061158381611e12565b91505061154f565b508480156115d95750600a54600154600160601b820463ffffffff16916115c391600160201b9091046001600160401b031690611d72565b6115cd9190611d72565b816001600160801b0316105b9a9950505050505050505050565b60016115f38180611fdb565b600d54600160a01b900463ffffffff9081169116146116245760405162461bcd60e51b815260040161083c90611ff8565b600d8054600160a01b900463ffffffff1690601461164183612027565b82546101009290920a63ffffffff81810219909316919092169190910217905550600d80546001600160a01b0319166001600160a01b038516179055600b54600160a01b90046001600160401b03166000036116b257600b8054600160a01b600160e01b03191661027160a31b1790555b600c8054600160401b600160e01b031916600160401b6001600160a01b038716021790556116df826116e5565b50505050565b60026116f2600182611fdb565b600d54600160a01b900463ffffffff9081169116146117235760405162461bcd60e51b815260040161083c90611ff8565b600d8054600160a01b900463ffffffff1690601461174083612027565b82546101009290920a63ffffffff81810219909316919092169190910217905550600680546001600160a01b0319166001600160a01b038416179055611784610f3d565b5050565b620151806004544261179a9190611dd6565b6117a4919061204a565b600555565b8060006117b461065a565b6001600160a01b0316632d0e9b46846040518263ffffffff1660e01b81526004016117df9190611b3e565b602060405180830381865afa1580156117fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118209190611d8f565b90506001600160a01b038116156118375780611839565b825b92506000836001600160a01b031631611850610631565b61185a9190611dd6565b600d54909150600160c01b900460ff16611872610631565b61187d836064611d72565b611887919061204a565b10156118c15760405162461bcd60e51b815260206004820152600960248201526806c6f7720746f546f760bc1b604482015260640161083c565b600060076005546118d29190611dc2565b6005546001600160a01b0387166000908152600960205260409020549192506001600160801b0390811691160361195f576001600160a01b038516600090815260096020526040902080546001919060109061193c908490600160801b900463ffffffff1661205e565b92506101000a81548163ffffffff021916908363ffffffff16021790555061198c565b6001600160a01b0385166000908152600960205260409020805463ffffffff60801b1916600160801b1790555b6005546001600160a01b038616600090815260096020526040902080546001600160801b0319166001600160801b03909216919091178155829060010182600781106119da576119da611dfc565b600291828204019190066010028282829054906101000a90046001600160801b0316611a069190611e2b565b82546001600160801b039182166101009390930a9283029190920219909116179055506001600160a01b03851660009081526008602052604090205460ff16158015611a5957506001600160a01b038316155b15611a9d57600c80546001600160401b0316906000611a778361207b565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b6001600160a01b03808616600090815260086020526040808220805460ff19166001179055519186169184156108fc0291859190818181858888f19350505050158015611aee573d6000803e3d6000fd5b50604080518381526001600160a01b0385811660208301523392908716917f7872034fbcc87890e73d66eac55389e0ffdba157b89a73bd2011157ebac1d66e910160405180910390a35050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0381168114611b6757600080fd5b50565b600060208284031215611b7c57600080fd5b8135611b8781611b52565b9392505050565b80356001600160401b0381168114611ba557600080fd5b919050565b600060208284031215611bbc57600080fd5b611b8782611b8e565b600060208284031215611bd757600080fd5b5035919050565b60008060008060608587031215611bf457600080fd5b8435611bff81611b52565b93506020850135925060408501356001600160401b0380821115611c2257600080fd5b818701915087601f830112611c3657600080fd5b813581811115611c4557600080fd5b886020828501011115611c5757600080fd5b95989497505060200194505050565b60008060408385031215611c7957600080fd5b823591506020830135611c8b81611b52565b809150509250929050565b600060208284031215611ca857600080fd5b813560ff81168114611b8757600080fd5b60008060008060808587031215611ccf57600080fd5b8435611cda81611b52565b9350611ce860208601611b8e565b92506040850135611cf881611b52565b9150611d0660608601611b8e565b905092959194509250565b600080600060608486031215611d2657600080fd5b8335611d3181611b52565b92506020840135611d4181611b52565b91506040840135611d5181611b52565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417611d8957611d89611d5c565b92915050565b600060208284031215611da157600080fd5b8151611b8781611b52565b634e487b7160e01b600052601260045260246000fd5b600082611dd157611dd1611dac565b500690565b81810381811115611d8957611d89611d5c565b80820180821115611d8957611d89611d5c565b634e487b7160e01b600052603260045260246000fd5b600060018201611e2457611e24611d5c565b5060010190565b6001600160801b03818116838216019080821115611e4b57611e4b611d5c565b5092915050565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611e9d57600080fd5b81518015158114611b8757600080fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611efd5784516001600160a01b031683529383019391830191600101611ed8565b50506001600160a01b03969096166060850152505050608001529392505050565b60006020808385031215611f3157600080fd5b82516001600160401b0380821115611f4857600080fd5b818501915085601f830112611f5c57600080fd5b815181811115611f6e57611f6e611e75565b8060051b604051601f19603f83011681018181108582111715611f9357611f93611e75565b604052918252848201925083810185019188831115611fb157600080fd5b938501935b82851015611fcf57845184529385019392850192611fb6565b98975050505050505050565b63ffffffff828116828216039080821115611e4b57611e4b611d5c565b6020808252601590820152743bb937b733903ab833b930b232903b32b939b4b7b760591b604082015260600190565b600063ffffffff80831681810361204057612040611d5c565b6001019392505050565b60008261205957612059611dac565b500490565b63ffffffff818116838216019080821115611e4b57611e4b611d5c565b60006001600160401b038281166002600160401b0319810161204057612040611d5c56fea2646970667358221220e7353ea7e0406e35f710e0a5cbc700032a901ee844b91194a60c9ecda4f27cd064736f6c63430008130033";
580
+ "0x608060405234801561001057600080fd5b506121db806100206000396000f3fe60806040526004361061018d5760003560e01c806315126799146101995780631ece9b12146101c15780632f5a3d15146101ee57806336afc6fa146102045780633771dcf8146102195780633e6326fc1461023b57806354fd4d501461025b5780635b61e2c1146102945780635bc758e2146102d35780635c9302c9146102e95780636bdd7242146102ff57806370c635911461031f57806378e979251461033f5780637befab10146103555780637f49f709146103795780638406c0791461039957806389b08f11146103c05780638da5cb5b1461042957806393a08de414610449578063a4c0ed3614610466578063aa31e45914610496578063aaab4c1d146104c6578063ad285cad146104f9578063c25673d514610526578063c573cb401461053b578063c5da10331461055b578063c8eb754914610593578063cce987d4146105b3578063d1c8e125146105d7578063e97eefd2146105f7578063f000999e14610617578063f83ecf9914610637578063f84b40f514610657578063fe173b971461066d57600080fd5b3661019457005b600080fd5b3480156101a557600080fd5b506101ae610694565b6040519081526020015b60405180910390f35b3480156101cd57600080fd5b50600b546101e1906001600160a01b031681565b6040516101b89190611c44565b3480156101fa57600080fd5b506101ae60025481565b34801561021057600080fd5b506101e16106bd565b34801561022557600080fd5b50610239610234366004611c70565b610743565b005b34801561024757600080fd5b506006546101e1906001600160a01b031681565b34801561026757600080fd5b50600d5461027f90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101b8565b3480156102a057600080fd5b50600b546102bb90600160a01b90046001600160401b031681565b6040516001600160401b0390911681526020016101b8565b3480156102df57600080fd5b506101ae60035481565b3480156102f557600080fd5b506101ae60055481565b34801561030b57600080fd5b5061023961031a366004611cb0565b610d23565b34801561032b57600080fd5b5061023961033a366004611ccb565b610d79565b34801561034b57600080fd5b506101ae60045481565b34801561036157600080fd5b50600a5461027f90600160601b900463ffffffff1681565b34801561038557600080fd5b50610239610394366004611c70565b610db9565b3480156103a557600080fd5b50600c546101e190600160401b90046001600160a01b031681565b3480156103cc57600080fd5b506104056103db366004611c70565b6009602052600090815260409020546001600160801b03811690600160801b900463ffffffff1682565b604080516001600160801b03909316835263ffffffff9091166020830152016101b8565b34801561043557600080fd5b50600d546101e1906001600160a01b031681565b34801561045557600080fd5b50600a5461027f9063ffffffff1681565b34801561047257600080fd5b50610486610481366004611ce4565b610e0c565b60405190151581526020016101b8565b3480156104a257600080fd5b506104866104b1366004611c70565b60086020526000908152604090205460ff1681565b3480156104d257600080fd5b50600d546104e790600160c01b900460ff1681565b60405160ff90911681526020016101b8565b34801561050557600080fd5b506101ae610514366004611c70565b600e6020526000908152604090205481565b34801561053257600080fd5b50610239611043565b34801561054757600080fd5b50600c546102bb906001600160401b031681565b34801561056757600080fd5b506101ae610576366004611d6c565b600760209081526000928352604080842090915290825290205481565b34801561059f57600080fd5b506102396105ae366004611d9c565b6110f8565b3480156105bf57600080fd5b50600a5461027f90600160801b900463ffffffff1681565b3480156105e357600080fd5b506102396105f2366004611dbf565b611142565b34801561060357600080fd5b50610486610612366004611c70565b611326565b34801561062357600080fd5b50610239610632366004611e17565b6116ed565b34801561064357600080fd5b50610239610652366004611c70565b6117eb565b34801561066357600080fd5b506101ae60015481565b34801561067957600080fd5b50600a546102bb90600160201b90046001600160401b031681565b600a546002546000916106b891600160201b9091046001600160401b031690611e78565b905090565b60065460405163bf40fac160e01b81526020600482015260086024820152674944454e5449545960c01b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa15801561071f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b89190611e95565b60005a90508160006107536106bd565b6001600160a01b0316632d0e9b46836040518263ffffffff1660e01b815260040161077e9190611c44565b602060405180830381865afa15801561079b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bf9190611e95565b90506001600160a01b038116156107d657806107d8565b815b6005549092506107e661188e565b806005541461080057600c80546001600160401b03191690555b6005546001600160a01b0384166000908152600960205260409020546001600160801b0390811691161415806108625750600a546001600160a01b03841660009081526009602052604090205463ffffffff918216600160801b909104909116105b6108a85760405162461bcd60e51b81526020600482015260126024820152716d6178206461696c7920746f7070696e677360701b60448201526064015b60405180910390fd5b6001600160a01b03831660009081526008602052604090205460ff161580156108e85750600b54600c546001600160401b03600160a01b90920482169116105b806108fb57506001600160a01b03821615155b6109565760405162461bcd60e51b815260206004820152602660248201527f55736572206e6f742077686974656c6973746564206f72206e6f742066697273604482015265742074696d6560d01b606482015260840161089f565b600060076005546109679190611ec8565b6001600160a01b038516600090815260096020526040812054600554929350909161099b916001600160801b031690611edc565b9050600781116109ab57806109ae565b60075b90508181116109bd57806109c8565b6109c8826001611eef565b90506000816109d8846001611eef565b6109e29190611edc565b90505b828111610a5a576001600160a01b03861660009081526009602052604081206001018260078110610a1857610a18611f02565b600291828204019190066010026101000a8154816001600160801b0302191690836001600160801b031602179055508080610a5290611f18565b9150506109e5565b506000805b838111610ad0576001600160a01b03871660009081526009602052604090206001018160078110610a9257610a92611f02565b600291828204019190066010029054906101000a90046001600160801b031682610abc9190611f31565b915080610ac881611f18565b915050610a5f565b50600a54600154600160601b820463ffffffff1691610b0091600160201b9091046001600160401b031690611e78565b610b0a9190611e78565b816001600160801b031610610b7e5760405162461bcd60e51b815260206004820152603460248201527f557365722077616c6c657420686173206265656e20746f7070656420746f6f206044820152736d616e792074696d65732074686973207765656b60601b606482015260840161089f565b876000610b896106bd565b6001600160a01b0316632d0e9b46836040518263ffffffff1660e01b8152600401610bb49190611c44565b602060405180830381865afa158015610bd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf59190611e95565b6001600160a01b0316141580610c1c5750600c54600160401b90046001600160a01b031633145b610c595760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b604482015260640161089f565b6001600160a01b0381166000908152600e60205260409020544211610ca95760405162461bcd60e51b815260206004820152600660248201526518985b9b995960d21b604482015260640161089f565b610cb2896118af565b505050505050505a610cc49082611edc565b610cd09061a410611eef565b600a5490915033906108fc90610cf690600160201b90046001600160401b031684611e78565b6040518115909202916000818181858888f19350505050158015610d1e573d6000803e3d6000fd5b505050565b600d546001600160a01b03163314610d4d5760405162461bcd60e51b815260040161089f90611f58565b600a80546001600160401b03909216600160201b02600160201b600160601b0319909216919091179055565b600d546001600160a01b03163314610da35760405162461bcd60e51b815260040161089f90611f58565b6002818155610db3908290611e78565b60015550565b600d546001600160a01b03163314610de35760405162461bcd60e51b815260040161089f90611f58565b610df0426203f480611eef565b6001600160a01b039091166000908152600e6020526040902055565b600a54600090600160801b900463ffffffff16841115610e595760405162461bcd60e51b8152602060048201526008602482015267736c69707061676560c01b604482015260640161089f565b6000610e6783850185611c70565b60408051600280825260608201835292935083926000926020830190803683370190505090503381600081518110610ea157610ea1611f02565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f239190611e95565b81600181518110610f3657610f36611f02565b6001600160a01b03928316602091820292909201015260405163095ea7b360e01b815290841660048201526000196024820152339063095ea7b3906044016020604051808303816000875af1158015610f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb79190611f91565b506040516318cbafe560e01b81526001600160a01b038316906318cbafe590610fed908a9060009086908e904290600401611fb3565b6000604051808303816000875af115801561100c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110349190810190612024565b50600198975050505050505050565b60036110506001826120e1565b600d54600160a01b900463ffffffff9081169116146110815760405162461bcd60e51b815260040161089f906120fe565b600d8054600160a01b900463ffffffff1690601461109e8361212d565b91906101000a81548163ffffffff021916908363ffffffff16021790555050600a60049054906101000a90046001600160401b03166001600160401b03166002546110e99190612150565b6002818155610db39190611e78565b600d546001600160a01b031633146111225760405162461bcd60e51b815260040161089f90611f58565b600d805460ff909216600160c01b0260ff60c01b19909216919091179055565b600054610100900460ff16158080156111625750600054600160ff909116105b8061117c5750303b15801561117c575060005460ff166001145b6111df5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089f565b6000805460ff191660011790558015611202576000805461ff0019166101001790555b600c8054600160401b600160e01b031916600160401b6001600160a01b03861602179055600a8054600160201b600160601b031916600160201b6001600160401b038781169190910291909117909155821660028181556112639190611e78565b600155600a805442600455600680546001600160a01b0319166001600160a01b03891617905563ffffffff600160601b03600160a01b03191660036501f40000000160611b01179055600b8054600160a01b600160e01b03191661027160a31b179055600d805460ff60c01b1916600f60c01b179055801561131f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000816001600160a01b03163161133b610694565b101561134957506000919050565b6000826001600160a01b03163161135e610694565b6113689190611edc565b600d54909150600160c01b900460ff16611380610694565b61138b836064611e78565b6113959190612150565b10156113a45750600092915050565b60006113ae6106bd565b6001600160a01b0316632d0e9b46856040518263ffffffff1660e01b81526004016113d99190611c44565b602060405180830381865afa1580156113f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141a9190611e95565b90506001600160a01b038116156114315780611433565b835b9350600062015180600454426114499190611edc565b6114539190612150565b6001600160a01b038616600090815260096020526040812054919250906001600160801b0380841691161415806114b057506001600160a01b0386166000908152600960205260409020546003600160801b90910463ffffffff16105b801561150a57506001600160a01b03861660009081526008602052604090205460ff161580156114f75750600b54600c546001600160401b03600160a01b90920482169116105b8061150a57506001600160a01b03831615155b6001600160a01b038716600090815260096020526040808220815160e0810192839052939450919291600101906007908285855b82829054906101000a90046001600160801b03166001600160801b031681526020019060100190602082600f0104928301926001038202915080841161153e5790505050505050905060006007846115969190611ec8565b6001600160a01b038916600090815260096020526040812054919250906115c6906001600160801b031686611edc565b9050600781116115d657806115d9565b60075b90508181116115e857806115f3565b6115f3826001611eef565b9050600081611603846001611eef565b61160d9190611edc565b90505b82811161165057600084826007811061162b5761162b611f02565b6001600160801b0390921660209290920201528061164881611f18565b915050611610565b506000805b8381116116915784816007811061166e5761166e611f02565b602002015161167d9083611f31565b91508061168981611f18565b915050611655565b508480156116df5750600a54600154600160601b820463ffffffff16916116c991600160201b9091046001600160401b031690611e78565b6116d39190611e78565b816001600160801b0316105b9a9950505050505050505050565b60016116f981806120e1565b600d54600160a01b900463ffffffff90811691161461172a5760405162461bcd60e51b815260040161089f906120fe565b600d8054600160a01b900463ffffffff169060146117478361212d565b82546101009290920a63ffffffff81810219909316919092169190910217905550600d80546001600160a01b0319166001600160a01b038516179055600b54600160a01b90046001600160401b03166000036117b857600b8054600160a01b600160e01b03191661027160a31b1790555b600c8054600160401b600160e01b031916600160401b6001600160a01b038716021790556117e5826117eb565b50505050565b60026117f86001826120e1565b600d54600160a01b900463ffffffff9081169116146118295760405162461bcd60e51b815260040161089f906120fe565b600d8054600160a01b900463ffffffff169060146118468361212d565b82546101009290920a63ffffffff81810219909316919092169190910217905550600680546001600160a01b0319166001600160a01b03841617905561188a611043565b5050565b62015180600454426118a09190611edc565b6118aa9190612150565b600555565b8060006118ba6106bd565b6001600160a01b0316632d0e9b46846040518263ffffffff1660e01b81526004016118e59190611c44565b602060405180830381865afa158015611902573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119269190611e95565b90506001600160a01b0381161561193d578061193f565b825b92506000836001600160a01b031631611956610694565b6119609190611edc565b600d54909150600160c01b900460ff16611978610694565b611983836064611e78565b61198d9190612150565b10156119c75760405162461bcd60e51b815260206004820152600960248201526806c6f7720746f546f760bc1b604482015260640161089f565b600060076005546119d89190611ec8565b6005546001600160a01b0387166000908152600960205260409020549192506001600160801b03908116911603611a65576001600160a01b0385166000908152600960205260409020805460019190601090611a42908490600160801b900463ffffffff16612164565b92506101000a81548163ffffffff021916908363ffffffff160217905550611a92565b6001600160a01b0385166000908152600960205260409020805463ffffffff60801b1916600160801b1790555b6005546001600160a01b038616600090815260096020526040902080546001600160801b0319166001600160801b0390921691909117815582906001018260078110611ae057611ae0611f02565b600291828204019190066010028282829054906101000a90046001600160801b0316611b0c9190611f31565b82546001600160801b039182166101009390930a9283029190920219909116179055506001600160a01b03851660009081526008602052604090205460ff16158015611b5f57506001600160a01b038316155b15611ba357600c80546001600160401b0316906000611b7d83612181565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b6001600160a01b03808616600090815260086020526040808220805460ff19166001179055519186169184156108fc0291859190818181858888f19350505050158015611bf4573d6000803e3d6000fd5b50604080518381526001600160a01b0385811660208301523392908716917f7872034fbcc87890e73d66eac55389e0ffdba157b89a73bd2011157ebac1d66e910160405180910390a35050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0381168114611c6d57600080fd5b50565b600060208284031215611c8257600080fd5b8135611c8d81611c58565b9392505050565b80356001600160401b0381168114611cab57600080fd5b919050565b600060208284031215611cc257600080fd5b611c8d82611c94565b600060208284031215611cdd57600080fd5b5035919050565b60008060008060608587031215611cfa57600080fd5b8435611d0581611c58565b93506020850135925060408501356001600160401b0380821115611d2857600080fd5b818701915087601f830112611d3c57600080fd5b813581811115611d4b57600080fd5b886020828501011115611d5d57600080fd5b95989497505060200194505050565b60008060408385031215611d7f57600080fd5b823591506020830135611d9181611c58565b809150509250929050565b600060208284031215611dae57600080fd5b813560ff81168114611c8d57600080fd5b60008060008060808587031215611dd557600080fd5b8435611de081611c58565b9350611dee60208601611c94565b92506040850135611dfe81611c58565b9150611e0c60608601611c94565b905092959194509250565b600080600060608486031215611e2c57600080fd5b8335611e3781611c58565b92506020840135611e4781611c58565b91506040840135611e5781611c58565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417611e8f57611e8f611e62565b92915050565b600060208284031215611ea757600080fd5b8151611c8d81611c58565b634e487b7160e01b600052601260045260246000fd5b600082611ed757611ed7611eb2565b500690565b81810381811115611e8f57611e8f611e62565b80820180821115611e8f57611e8f611e62565b634e487b7160e01b600052603260045260246000fd5b600060018201611f2a57611f2a611e62565b5060010190565b6001600160801b03818116838216019080821115611f5157611f51611e62565b5092915050565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611fa357600080fd5b81518015158114611c8d57600080fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120035784516001600160a01b031683529383019391830191600101611fde565b50506001600160a01b03969096166060850152505050608001529392505050565b6000602080838503121561203757600080fd5b82516001600160401b038082111561204e57600080fd5b818501915085601f83011261206257600080fd5b81518181111561207457612074611f7b565b8060051b604051601f19603f8301168101818110858211171561209957612099611f7b565b6040529182528482019250838101850191888311156120b757600080fd5b938501935b828510156120d5578451845293850193928501926120bc565b98975050505050505050565b63ffffffff828116828216039080821115611f5157611f51611e62565b6020808252601590820152743bb937b733903ab833b930b232903b32b939b4b7b760591b604082015260600190565b600063ffffffff80831681810361214657612146611e62565b6001019392505050565b60008261215f5761215f611eb2565b500490565b63ffffffff818116838216019080821115611f5157611f51611e62565b60006001600160401b038281166002600160401b0319810161214657612146611e6256fea2646970667358221220ac2bad2fb462df9850451a920ca418093b3e066945ffdae6cf77b707e939d4b464736f6c63430008130033";
549
581
 
550
582
  type FuseFaucetV2ConstructorParams =
551
583
  | [signer?: Signer]
@@ -83,7 +83,7 @@ const _abi = [
83
83
  ] as const;
84
84
 
85
85
  const _bytecode =
86
- "0x608060405234801561001057600080fd5b506105a6806100206000396000f3fe6080604052600436106100225760003560e01c8063d1f578941461003957610031565b366100315761002f61004c565b005b61002f61004c565b61002f6100473660046103ef565b61005e565b61005c61005761013d565b61014c565b565b6000610068610170565b6001600160a01b0316146100b15760405162461bcd60e51b815260206004820152600b60248201526a1a5b9a5d1a585b1a5e995960aa1b60448201526064015b60405180910390fd5b6100dc60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61047f565b60008051602061052a833981519152146100f8576100f86104a0565b6101388383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061018c915050565b505050565b6000610147610170565b905090565b3660008037600080366000845af43d6000803e80801561016b573d6000f35b3d6000fd5b60008051602061052a833981519152546001600160a01b031690565b610195836101b7565b6000825111806101a25750805b15610138576101b183836101f7565b50505050565b6101c081610225565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061021c838360405180606001604052806027815260200161054a602791396102bf565b90505b92915050565b61022e81610337565b6102905760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016100a8565b60008051602061052a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b0316856040516102dc91906104da565b600060405180830381855af49150503d8060008114610317576040519150601f19603f3d011682016040523d82523d6000602084013e61031c565b606091505b509150915061032d86838387610346565b9695505050505050565b6001600160a01b03163b151590565b606083156103b35782516000036103ac5761036085610337565b6103ac5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016100a8565b50816103bd565b6103bd83836103c5565b949350505050565b8151156103d55781518083602001fd5b8060405162461bcd60e51b81526004016100a891906104f6565b60008060006040848603121561040457600080fd5b83356001600160a01b038116811461041b57600080fd5b925060208401356001600160401b038082111561043757600080fd5b818601915086601f83011261044b57600080fd5b81358181111561045a57600080fd5b87602082850101111561046c57600080fd5b6020830194508093505050509250925092565b8181038181111561021f57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60005b838110156104d15781810151838201526020016104b9565b50506000910152565b600082516104ec8184602087016104b6565b9190910192915050565b60208152600082518060208401526105158160408501602087016104b6565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200e6166433af0aedd2d00610e79bdf008f29d6e0f5d0ecbcb775fac40004d953e64736f6c63430008130033";
86
+ "0x608060405234801561001057600080fd5b506105a6806100206000396000f3fe6080604052600436106100225760003560e01c8063d1f578941461003957610031565b366100315761002f61004c565b005b61002f61004c565b61002f6100473660046103ef565b61005e565b61005c61005761013d565b61014c565b565b6000610068610170565b6001600160a01b0316146100b15760405162461bcd60e51b815260206004820152600b60248201526a1a5b9a5d1a585b1a5e995960aa1b60448201526064015b60405180910390fd5b6100dc60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61047f565b60008051602061052a833981519152146100f8576100f86104a0565b6101388383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061018c915050565b505050565b6000610147610170565b905090565b3660008037600080366000845af43d6000803e80801561016b573d6000f35b3d6000fd5b60008051602061052a833981519152546001600160a01b031690565b610195836101b7565b6000825111806101a25750805b15610138576101b183836101f7565b50505050565b6101c081610225565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061021c838360405180606001604052806027815260200161054a602791396102bf565b90505b92915050565b61022e81610337565b6102905760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016100a8565b60008051602061052a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b0316856040516102dc91906104da565b600060405180830381855af49150503d8060008114610317576040519150601f19603f3d011682016040523d82523d6000602084013e61031c565b606091505b509150915061032d86838387610346565b9695505050505050565b6001600160a01b03163b151590565b606083156103b35782516000036103ac5761036085610337565b6103ac5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016100a8565b50816103bd565b6103bd83836103c5565b949350505050565b8151156103d55781518083602001fd5b8060405162461bcd60e51b81526004016100a891906104f6565b60008060006040848603121561040457600080fd5b83356001600160a01b038116811461041b57600080fd5b925060208401356001600160401b038082111561043757600080fd5b818601915086601f83011261044b57600080fd5b81358181111561045a57600080fd5b87602082850101111561046c57600080fd5b6020830194508093505050509250925092565b8181038181111561021f57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60005b838110156104d15781810151838201526020016104b9565b50506000910152565b600082516104ec8184602087016104b6565b9190910192915050565b60208152600082518060208401526105158160408501602087016104b6565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a6a0379f729b3d5f342e415d650b0de57ffd3cbf98bb1933f3a9e1c7bb15271864736f6c63430008130033";
87
87
 
88
88
  type ERC1967ProxyConstructorParams =
89
89
  | [signer?: Signer]
@@ -173,7 +173,7 @@ const _abi = [
173
173
  ] as const;
174
174
 
175
175
  const _bytecode =
176
- "0x608060405234801561001057600080fd5b5060405161002060208201610044565b601f1982820381018352601f90910116604052805160209190910120600055610051565b6105c680610d8383390190565b610d23806100606000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630bf61a011461005c5780631b903b841461008557806340ad200d1461009857806381ae1f5b146100ab578063b3eeb5e2146100be575b600080fd5b61006f61006a366004610512565b6100d1565b60405161007c9190610568565b60405180910390f35b61006f61009336600461057c565b6100e7565b61006f6100a63660046105f7565b61016c565b61006f6100b936600461062c565b6101df565b61006f6100cc366004610658565b6101f5565b60006100df848484336102f2565b949350505050565b60008061012b853386868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103cd92505050565b90507fcf78cf0d6f3d8371e1075c69c492ab4ec5d8cf23a1a239b6a51a1d00be7ca3128160405161015c9190610568565b60405180910390a1949350505050565b60008061017985856103fe565b6040516001600160f81b031960208201526001600160601b03193060601b166021820152603581018290526055810185905290915060009060750160408051808303601f1901815291905280516020909101206001600160a01b03169695505050505050565b60006101ee838360005461016c565b9392505050565b6000808360601b9050604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528160148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09250507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349826040516102709190610568565b60405180910390a18251156102eb576000826001600160a01b03168460405161029991906106c9565b6000604051808303816000865af19150503d80600081146102d6576040519150601f19603f3d011682016040523d82523d6000602084013e6102db565b606091505b50509050806102e957600080fd5b505b5092915050565b6000806040518060200161030590610447565b601f1982820381018352601f90910116604052905060006103278785846103cd565b60405163347d5e2560e21b815290915081906001600160a01b0382169063d1f578949061035a908a908a906004016106e5565b600060405180830381600087803b15801561037457600080fd5b505af1158015610388573d6000803e3d6000fd5b505050507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349816040516103ba9190610568565b60405180910390a1979650505050505050565b60008060006103dc86866103fe565b9050808451602086016000f59150813b6103f557600080fd5b50949350505050565b6000828260405160200161042992919091825260601b6001600160601b031916602082015260340190565b60405160208183030381529060405280519060200120905092915050565b6105c68061072883390190565b80356001600160a01b038116811461046b57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261049757600080fd5b81356001600160401b03808211156104b1576104b1610470565b604051601f8301601f19908116603f011681019082821181831017156104d9576104d9610470565b816040528381528660208588010111156104f257600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121561052757600080fd5b8335925061053760208501610454565b915060408401356001600160401b0381111561055257600080fd5b61055e86828701610486565b9150509250925092565b6001600160a01b0391909116815260200190565b60008060006040848603121561059157600080fd5b8335925060208401356001600160401b03808211156105af57600080fd5b818601915086601f8301126105c357600080fd5b8135818111156105d257600080fd5b8760208285010111156105e457600080fd5b6020830194508093505050509250925092565b60008060006060848603121561060c57600080fd5b8335925061061c60208501610454565b9150604084013590509250925092565b6000806040838503121561063f57600080fd5b8235915061064f60208401610454565b90509250929050565b6000806040838503121561066b57600080fd5b61067483610454565b915060208301356001600160401b0381111561068f57600080fd5b61069b85828601610486565b9150509250929050565b60005b838110156106c05781810151838201526020016106a8565b50506000910152565b600082516106db8184602087016106a5565b9190910192915050565b60018060a01b038316815260406020820152600082518060408401526107128160608501602087016106a5565b601f01601f191691909101606001939250505056fe608060405234801561001057600080fd5b506105a6806100206000396000f3fe6080604052600436106100225760003560e01c8063d1f578941461003957610031565b366100315761002f61004c565b005b61002f61004c565b61002f6100473660046103ef565b61005e565b61005c61005761013d565b61014c565b565b6000610068610170565b6001600160a01b0316146100b15760405162461bcd60e51b815260206004820152600b60248201526a1a5b9a5d1a585b1a5e995960aa1b60448201526064015b60405180910390fd5b6100dc60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61047f565b60008051602061052a833981519152146100f8576100f86104a0565b6101388383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061018c915050565b505050565b6000610147610170565b905090565b3660008037600080366000845af43d6000803e80801561016b573d6000f35b3d6000fd5b60008051602061052a833981519152546001600160a01b031690565b610195836101b7565b6000825111806101a25750805b15610138576101b183836101f7565b50505050565b6101c081610225565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061021c838360405180606001604052806027815260200161054a602791396102bf565b90505b92915050565b61022e81610337565b6102905760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016100a8565b60008051602061052a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b0316856040516102dc91906104da565b600060405180830381855af49150503d8060008114610317576040519150601f19603f3d011682016040523d82523d6000602084013e61031c565b606091505b509150915061032d86838387610346565b9695505050505050565b6001600160a01b03163b151590565b606083156103b35782516000036103ac5761036085610337565b6103ac5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016100a8565b50816103bd565b6103bd83836103c5565b949350505050565b8151156103d55781518083602001fd5b8060405162461bcd60e51b81526004016100a891906104f6565b60008060006040848603121561040457600080fd5b83356001600160a01b038116811461041b57600080fd5b925060208401356001600160401b038082111561043757600080fd5b818601915086601f83011261044b57600080fd5b81358181111561045a57600080fd5b87602082850101111561046c57600080fd5b6020830194508093505050509250925092565b8181038181111561021f57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60005b838110156104d15781810151838201526020016104b9565b50506000910152565b600082516104ec8184602087016104b6565b9190910192915050565b60208152600082518060208401526105158160408501602087016104b6565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200e6166433af0aedd2d00610e79bdf008f29d6e0f5d0ecbcb775fac40004d953e64736f6c63430008130033a2646970667358221220692640a4c39c212fc492192c3f1a222f3611bc814d0e23bff4d232f5f02e366f64736f6c63430008130033608060405234801561001057600080fd5b506105a6806100206000396000f3fe6080604052600436106100225760003560e01c8063d1f578941461003957610031565b366100315761002f61004c565b005b61002f61004c565b61002f6100473660046103ef565b61005e565b61005c61005761013d565b61014c565b565b6000610068610170565b6001600160a01b0316146100b15760405162461bcd60e51b815260206004820152600b60248201526a1a5b9a5d1a585b1a5e995960aa1b60448201526064015b60405180910390fd5b6100dc60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61047f565b60008051602061052a833981519152146100f8576100f86104a0565b6101388383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061018c915050565b505050565b6000610147610170565b905090565b3660008037600080366000845af43d6000803e80801561016b573d6000f35b3d6000fd5b60008051602061052a833981519152546001600160a01b031690565b610195836101b7565b6000825111806101a25750805b15610138576101b183836101f7565b50505050565b6101c081610225565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061021c838360405180606001604052806027815260200161054a602791396102bf565b90505b92915050565b61022e81610337565b6102905760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016100a8565b60008051602061052a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b0316856040516102dc91906104da565b600060405180830381855af49150503d8060008114610317576040519150601f19603f3d011682016040523d82523d6000602084013e61031c565b606091505b509150915061032d86838387610346565b9695505050505050565b6001600160a01b03163b151590565b606083156103b35782516000036103ac5761036085610337565b6103ac5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016100a8565b50816103bd565b6103bd83836103c5565b949350505050565b8151156103d55781518083602001fd5b8060405162461bcd60e51b81526004016100a891906104f6565b60008060006040848603121561040457600080fd5b83356001600160a01b038116811461041b57600080fd5b925060208401356001600160401b038082111561043757600080fd5b818601915086601f83011261044b57600080fd5b81358181111561045a57600080fd5b87602082850101111561046c57600080fd5b6020830194508093505050509250925092565b8181038181111561021f57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60005b838110156104d15781810151838201526020016104b9565b50506000910152565b600082516104ec8184602087016104b6565b9190910192915050565b60208152600082518060208401526105158160408501602087016104b6565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200e6166433af0aedd2d00610e79bdf008f29d6e0f5d0ecbcb775fac40004d953e64736f6c63430008130033";
176
+ "0x608060405234801561001057600080fd5b5060405161002060208201610044565b601f1982820381018352601f90910116604052805160209190910120600055610051565b6105c680610d8383390190565b610d23806100606000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630bf61a011461005c5780631b903b841461008557806340ad200d1461009857806381ae1f5b146100ab578063b3eeb5e2146100be575b600080fd5b61006f61006a366004610512565b6100d1565b60405161007c9190610568565b60405180910390f35b61006f61009336600461057c565b6100e7565b61006f6100a63660046105f7565b61016c565b61006f6100b936600461062c565b6101df565b61006f6100cc366004610658565b6101f5565b60006100df848484336102f2565b949350505050565b60008061012b853386868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103cd92505050565b90507fcf78cf0d6f3d8371e1075c69c492ab4ec5d8cf23a1a239b6a51a1d00be7ca3128160405161015c9190610568565b60405180910390a1949350505050565b60008061017985856103fe565b6040516001600160f81b031960208201526001600160601b03193060601b166021820152603581018290526055810185905290915060009060750160408051808303601f1901815291905280516020909101206001600160a01b03169695505050505050565b60006101ee838360005461016c565b9392505050565b6000808360601b9050604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528160148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09250507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349826040516102709190610568565b60405180910390a18251156102eb576000826001600160a01b03168460405161029991906106c9565b6000604051808303816000865af19150503d80600081146102d6576040519150601f19603f3d011682016040523d82523d6000602084013e6102db565b606091505b50509050806102e957600080fd5b505b5092915050565b6000806040518060200161030590610447565b601f1982820381018352601f90910116604052905060006103278785846103cd565b60405163347d5e2560e21b815290915081906001600160a01b0382169063d1f578949061035a908a908a906004016106e5565b600060405180830381600087803b15801561037457600080fd5b505af1158015610388573d6000803e3d6000fd5b505050507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349816040516103ba9190610568565b60405180910390a1979650505050505050565b60008060006103dc86866103fe565b9050808451602086016000f59150813b6103f557600080fd5b50949350505050565b6000828260405160200161042992919091825260601b6001600160601b031916602082015260340190565b60405160208183030381529060405280519060200120905092915050565b6105c68061072883390190565b80356001600160a01b038116811461046b57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261049757600080fd5b81356001600160401b03808211156104b1576104b1610470565b604051601f8301601f19908116603f011681019082821181831017156104d9576104d9610470565b816040528381528660208588010111156104f257600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121561052757600080fd5b8335925061053760208501610454565b915060408401356001600160401b0381111561055257600080fd5b61055e86828701610486565b9150509250925092565b6001600160a01b0391909116815260200190565b60008060006040848603121561059157600080fd5b8335925060208401356001600160401b03808211156105af57600080fd5b818601915086601f8301126105c357600080fd5b8135818111156105d257600080fd5b8760208285010111156105e457600080fd5b6020830194508093505050509250925092565b60008060006060848603121561060c57600080fd5b8335925061061c60208501610454565b9150604084013590509250925092565b6000806040838503121561063f57600080fd5b8235915061064f60208401610454565b90509250929050565b6000806040838503121561066b57600080fd5b61067483610454565b915060208301356001600160401b0381111561068f57600080fd5b61069b85828601610486565b9150509250929050565b60005b838110156106c05781810151838201526020016106a8565b50506000910152565b600082516106db8184602087016106a5565b9190910192915050565b60018060a01b038316815260406020820152600082518060408401526107128160608501602087016106a5565b601f01601f191691909101606001939250505056fe608060405234801561001057600080fd5b506105a6806100206000396000f3fe6080604052600436106100225760003560e01c8063d1f578941461003957610031565b366100315761002f61004c565b005b61002f61004c565b61002f6100473660046103ef565b61005e565b61005c61005761013d565b61014c565b565b6000610068610170565b6001600160a01b0316146100b15760405162461bcd60e51b815260206004820152600b60248201526a1a5b9a5d1a585b1a5e995960aa1b60448201526064015b60405180910390fd5b6100dc60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61047f565b60008051602061052a833981519152146100f8576100f86104a0565b6101388383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061018c915050565b505050565b6000610147610170565b905090565b3660008037600080366000845af43d6000803e80801561016b573d6000f35b3d6000fd5b60008051602061052a833981519152546001600160a01b031690565b610195836101b7565b6000825111806101a25750805b15610138576101b183836101f7565b50505050565b6101c081610225565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061021c838360405180606001604052806027815260200161054a602791396102bf565b90505b92915050565b61022e81610337565b6102905760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016100a8565b60008051602061052a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b0316856040516102dc91906104da565b600060405180830381855af49150503d8060008114610317576040519150601f19603f3d011682016040523d82523d6000602084013e61031c565b606091505b509150915061032d86838387610346565b9695505050505050565b6001600160a01b03163b151590565b606083156103b35782516000036103ac5761036085610337565b6103ac5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016100a8565b50816103bd565b6103bd83836103c5565b949350505050565b8151156103d55781518083602001fd5b8060405162461bcd60e51b81526004016100a891906104f6565b60008060006040848603121561040457600080fd5b83356001600160a01b038116811461041b57600080fd5b925060208401356001600160401b038082111561043757600080fd5b818601915086601f83011261044b57600080fd5b81358181111561045a57600080fd5b87602082850101111561046c57600080fd5b6020830194508093505050509250925092565b8181038181111561021f57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60005b838110156104d15781810151838201526020016104b9565b50506000910152565b600082516104ec8184602087016104b6565b9190910192915050565b60208152600082518060208401526105158160408501602087016104b6565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a6a0379f729b3d5f342e415d650b0de57ffd3cbf98bb1933f3a9e1c7bb15271864736f6c63430008130033a264697066735822122018486827b8070d6f459d1609384feb373e84dccc212fc79f3e64b90a35a45d1564736f6c63430008130033608060405234801561001057600080fd5b506105a6806100206000396000f3fe6080604052600436106100225760003560e01c8063d1f578941461003957610031565b366100315761002f61004c565b005b61002f61004c565b61002f6100473660046103ef565b61005e565b61005c61005761013d565b61014c565b565b6000610068610170565b6001600160a01b0316146100b15760405162461bcd60e51b815260206004820152600b60248201526a1a5b9a5d1a585b1a5e995960aa1b60448201526064015b60405180910390fd5b6100dc60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61047f565b60008051602061052a833981519152146100f8576100f86104a0565b6101388383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061018c915050565b505050565b6000610147610170565b905090565b3660008037600080366000845af43d6000803e80801561016b573d6000f35b3d6000fd5b60008051602061052a833981519152546001600160a01b031690565b610195836101b7565b6000825111806101a25750805b15610138576101b183836101f7565b50505050565b6101c081610225565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061021c838360405180606001604052806027815260200161054a602791396102bf565b90505b92915050565b61022e81610337565b6102905760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016100a8565b60008051602061052a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b0316856040516102dc91906104da565b600060405180830381855af49150503d8060008114610317576040519150601f19603f3d011682016040523d82523d6000602084013e61031c565b606091505b509150915061032d86838387610346565b9695505050505050565b6001600160a01b03163b151590565b606083156103b35782516000036103ac5761036085610337565b6103ac5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016100a8565b50816103bd565b6103bd83836103c5565b949350505050565b8151156103d55781518083602001fd5b8060405162461bcd60e51b81526004016100a891906104f6565b60008060006040848603121561040457600080fd5b83356001600160a01b038116811461041b57600080fd5b925060208401356001600160401b038082111561043757600080fd5b818601915086601f83011261044b57600080fd5b81358181111561045a57600080fd5b87602082850101111561046c57600080fd5b6020830194508093505050509250925092565b8181038181111561021f57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60005b838110156104d15781810151838201526020016104b9565b50506000910152565b600082516104ec8184602087016104b6565b9190910192915050565b60208152600082518060208401526105158160408501602087016104b6565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a6a0379f729b3d5f342e415d650b0de57ffd3cbf98bb1933f3a9e1c7bb15271864736f6c63430008130033";
177
177
 
178
178
  type ProxyFactory1967ConstructorParams =
179
179
  | [signer?: Signer]